[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