http://d.puremagic.com/issues/show_bug.cgi?id=2564


Don <clugd...@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch




--- Comment #1 from Don <clugd...@yahoo.com.au>  2009-08-25 00:15:16 PDT ---
Actually it's nothing to do with foreach. Reduced test case shows it is use of
'enum' manifest constants. They're not getting constant-folded correctly.

int bug2564()
{
    enum int Q=0;
    string [2] s = ["a", "b"];    
    assert(s[Q].dup=="a");
    return 0;
}

static int bug2564b = bug2564();

PATCH:
In interpret.c, getVarExp.
-    if ((v->isConst() || v->isInvariant()) && v->init 
+    if ((v->isConst() || v->isInvariant() || v->storage_class & STCmanifest)
&& v->init

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to