[Issue 2773] ICE(go.c) array assignment through a pointer, only with -O.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed May 20 06:49:01 PDT 2009


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


Don <clugdbug at yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|ICE(go.c) compiling a big   |ICE(go.c) array assignment
                   |program with -O -inline     |through a pointer, only
                   |-release                    |with -O.




--- Comment #5 from Don <clugdbug at yahoo.com.au>  2009-05-20 06:49:00 PDT ---
Here's a slightly reduced test case, which only requires -O (doesn't need
-inline -release), and ICEs on both D1 and D2. On D2, you still get an ICE if
you remove all references to the class, and just set S2773* pointer = &dat.

struct S2773{
  int[4] data;    
}

S2773 dat;

class C2773 {
  S2773* get()    {  return &dat;  }
}

void main()
{
  C2773 inst = null;
  S2773* pointer = inst.get();
  pointer.data[] = 0;
  pointer.data[] = 0;
}

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


More information about the Digitalmars-d-bugs mailing list