Bug ID | 146 |
---|---|
Summary | ICE (segmentation fault) |
Product | GDC |
Version | 4.9.x |
Hardware | x86_64 |
OS | Linux |
Status | NEW |
Severity | normal |
Priority | Normal |
Component | gdc |
Assignee | ibuclaw@gdcproject.org |
Reporter | maor@weka.io |
Created attachment 72 [details]
The code that breaks gdc (after reduction using Dumtmite), just untar and run
'gdc main.d bucket.d'
The attached reduced code (2 files) causes gdc on Linux/Intel 64bit to seg
fault while dmd compiles the code (the non reduced code is also running fine).
output of 'gdc --version': gdc (Ubuntu 4.9.0-9ubuntu2) 4.9.0
the backtrace extracted by running 'gdc -wrapper gdb,--args main.d bucket.d
-I.' :
(gdb) run
Starting program: /usr/lib/gcc/x86_64-linux-gnu/4.9/cc1d main.d -quiet
-dumpbase main.d -mtune=generic -march=x86-64 -auxbase main -imultiarch
x86_64-linux-gnu -I . -o /tmp/ccKYPvW3.s
Program received signal SIGSEGV, Segmentation fault.
0x000000000063ef14 in Type::baseElemOf() ()
(gdb) bt
#0 0x000000000063ef14 in Type::baseElemOf() ()
#1 0x00000000006bfbf8 in TypeFunction::toCtype() ()
#2 0x000000000068da35 in FuncDeclaration::toSymbol() ()
#3 0x00000000006c0432 in TypeClass::toCtype() ()
#4 0x000000000068f686 in declaration_type(Declaration*) ()
#5 0x0000000000692d78 in layout_aggregate_type(AggLayout*,
AggregateDeclaration*) ()
#6 0x00000000006c0384 in TypeClass::toCtype() ()
#7 0x00000000006c0197 in TypePointer::toCtype() ()
#8 0x00000000006c370a in IndexExp::toElem(IRState*) ()
#9 0x00000000006c2bbc in AssignExp::toElem(IRState*) ()
#10 0x00000000006c4aec in Expression::toElemDtor(IRState*) ()
#11 0x00000000006c8ca8 in ExpStatement::toIR(IRState*) ()
#12 0x00000000006c8ba9 in CompoundStatement::toIR(IRState*) ()
#13 0x00000000006c8ba9 in CompoundStatement::toIR(IRState*) ()
#14 0x000000000069b6c5 in FuncDeclaration::toObjFile(int) ()
#15 0x000000000069a2bf in ClassDeclaration::toObjFile(int) ()
#16 0x000000000069cd4f in Module::genobjfile(int) ()
#17 0x000000000068ce28 in d_parse_file() ()
#18 0x0000000000997712 in ?? ()
#19 0x0000000000999310 in toplev_main(int, char**) ()
#20 0x00007ffff69e6ec5 in __libc_start_main (main=0x5a67d0 <main>, argc=15,
argv=0x7fffffffddd8, init=<optimized out>, fini=<optimized out>,