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