Bug 11926 – Segmentation fault when using const in an enum

Status
RESOLVED
Resolution
FIXED
Severity
major
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Linux
Creation time
2014-01-14T15:32:00Z
Last change time
2014-01-14T23:28:43Z
Keywords
ice, pull
Assigned to
nobody
Creator
michaelpm394

Comments

Comment #0 by michaelpm394 — 2014-01-14T15:32:12Z
Doing: enum { const a = 1, const b = 2 } will result in a segmentation fault.
Comment #1 by ibuclaw — 2014-01-14T15:49:27Z
Raising to major - a corrupt Identifier pointer causes the ICE. { <RootObject> = {_vptr.RootObject = 0x0}, value = 25720336, string = 0x5a95dc, // Unreadable address len = 0 } (gdb) bt #0 0x00000000005a755c in Dsymbol::toChars (this=<optimised out>) at ../../gcc-devel/gcc/d/dfrontend/dsymbol.c:203 #1 0x00000000005a79aa in Dsymbol::toPrettyChars (this=0x18a2720) at ../../gcc-devel/gcc/d/dfrontend/dsymbol.c:218 #2 0x00000000005a95dc in ScopeDsymbol::multiplyDefined (loc=..., s1=0x18a28c0, s2=0x18a2720) at ../../gcc-devel/gcc/d/dfrontend/dsymbol.c:1049 #3 0x00000000005a96ea in Dsymbol::addMember (this=0x7fffffffd978, sc=0x0, sd=0x1887610, memnum=0) at ../../gcc-devel/gcc/d/dfrontend/dsymbol.c:610 #4 0x00000000005aadfe in EnumDeclaration::addMember (this=0x18a24a0, sc=0x0, sd=<optimised out>, memnum=1) at ../../gcc-devel/gcc/d/dfrontend/enum.c: 105 #5 0x000000000061480e in Module::importAll (this=0x7fffffffd978, prevsc=0x0) at ../../gcc-devel/gcc/d/dfrontend/module.c:659 #6 0x000000000065aff0 in d_parse_file () at ../../gcc-devel/gcc/d/d-lang.cc:988 #7 0x0000000000a3a9c5 in compile_file () at ../../gcc-devel/gcc/toplev.c:547 #8 0x0000000000a3c922 in do_compile () at ../../gcc-devel/gcc/toplev.c:1887 #9 toplev_main (argc=18, argv=0x7fffffffdc58) at ../../gcc-devel/gcc/toplev.c:1963 #10 0x00007ffff6e43de5 in __libc_start_main (main=0x5734f0 <main(int, char**)>, argc=18, ubp_av=0x7fffffffdc58, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffffffdc48) at libc-start.c:260 #11 0x00000000005735c8 in _start ()
Comment #2 by k.hara.pg — 2014-01-14T18:20:17Z
Comment #3 by github-bugzilla — 2014-01-14T23:27:31Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/c89e6d30d4c392c9ec942e0b08b29d4eab3546ec fix Issue 11926 - Segmentation fault when using const in an enum https://github.com/D-Programming-Language/dmd/commit/df5b5365fbccb9c571ccce7cc43232e4f49b646c Merge pull request #3098 from 9rnsr/fix11926 Issue 11926 - Segmentation fault when using const in an enum
Comment #4 by ibuclaw — 2014-01-14T23:28:43Z