[Issue 15817] ICE (with no stacktrace) instead of 'cannot index null array counts' with CTFE AA
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Mon Mar 21 00:38:41 PDT 2016
    
    
  
https://issues.dlang.org/show_bug.cgi?id=15817
Timothee Cour <timothee.cour2 at gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |timothee.cour2 at gmail.com
--- Comment #1 from Timothee Cour <timothee.cour2 at gmail.com> ---
update: the problem is the count[a]++; 
workaround without -version=v_ICE below:
// https://issues.dlang.org/show_bug.cgi?id=15817
module bugs.bug_D20160320T235820;
import std.string;
import std.array;
int fun(string b){
  auto targets=b.split.array;
  uint[string]counts;
  foreach(a;targets){
    version(v_ICE){
      counts[a]++;
    } else{
      auto ptr=a in counts;
      if(ptr)
        *ptr=*ptr+1;
      else
        counts[a]=1;
    }
  }
  return 0;
}
void fun2(){
  enum a=`a1.a2 b1.b2`;
  static int b=fun(a);
}
--
    
    
More information about the Digitalmars-d-bugs
mailing list