[Issue 6215] ICE(el.c) DMD segfaults when built on system with XCode 4.2

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Aug 11 16:16:27 PDT 2011


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


Sean Kelly <sean at invisibleduck.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sean at invisibleduck.org


--- Comment #3 from Sean Kelly <sean at invisibleduck.org> 2011-08-11 16:16:23 PDT ---
The first problem is in el_calloc():

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x00000000
0x0009fc2f in el_calloc () at el.c:189
189        *e = ezero;                         /* clear it             */
(gdb) p e
$1 = (elem *) 0xa4e7bc
Current language:  auto; currently c++
(gdb) 

I can't explain why this isn't working, but it's easily fixed by replacing the
assignment with:

memset(e, 0, sizeof(elem));

That gets us to the next error:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x00000000
0x000aa08d in evalu8 (e=0xa50988) at evalu8.c:625
625            esave = *e;
(gdb) p e
$1 = (elem *) 0xa50988
Current language:  auto; currently c++
(gdb) 

Which is similarly fixed by replacing the assignment with:

memcpy(&esave, e, sizeof(elem));

These two changes are enough for LLVM-DMD to build druntime.

Given the two errors above, the problem seems to be with the default assignment
operator LLVM generates for the elem struct.  It's a very weird problem though.

-- 
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