internal compiler error when compiling a class

Timo Sintonen t.sintonen at luukku.com
Sat Aug 31 10:13:07 PDT 2013


On Thursday, 22 August 2013 at 19:19:08 UTC, Timo Sintonen wrote:
> On Thursday, 22 August 2013 at 15:11:15 UTC, Johannes Pfau 
> wrote:
>> Am Tue, 20 Aug 2013 18:40:09 +0200
>> schrieb "Timo Sintonen" <t.sintonen at luukku.com>:
>>
>>> I just updated my arm cross compiler to the latest head of 
>>> gdc and gcc. Now I get this every time when I try to compile 
>>> a file that has a class:
>>> 
>>> internal compiler error: Segmentation fault
>>> 0x99b39f crash_signal
>>> 	../../gcc/gcc/toplev.c:335
>>> 0x8413ec tree_check
>>> 	../../gcc/gcc/tree.h:3689
>>> 0x8413ec get_odr_type(tree_node*, bool)
>>> 	../../gcc/gcc/ipa-devirt.c:263
>>> 0x841ac2 build_type_inheritance_graph()
>>> 	../../gcc/gcc/ipa-devirt.c:360
>>> 0x6b6e21 analyze_functions
>>> 	../../gcc/gcc/cgraphunit.c:854
>>> 0x6b8285 finalize_compilation_unit()
>>> 	../../gcc/gcc/cgraphunit.c:2151
>>> 0x5fe5b4 d_write_global_declarations
>>> 	../../gcc/gcc/d/d-lang.cc:619
>>> 
>>> This occurs every time in the last line of the last function 
>>> in a class, no matter what the line or the function contains.
>>> 
>>> Is this a bug in gdc or gcc or just in my system?
>>
>> This is strange. I haven't built a cross compiler recently but 
>> this
>> does not seem to be cross-compiler specific. I've built a 
>> recent native
>> ARM compiler and can't reproduce this.
>  Yes, it seems not to be arm related. I tried to build a native 
> compiler for normal Intel/pc/64-bit with the same result. I can 
> compile both native and cross compiler with c and c++ only and 
> install them and use them. The D compiler compiles fine without 
> the library but as soon as there is a d class, I get this error.
>
> The problem may be related to 64 bit linux. If I had something 
> wrong im my system or there would be a bug in gcc, I think I 
> could not be able to compile a c++ compiler.

I installed a totally new system (Slackware Linux 64 bit) and 
took the latest heads of gcc and gdc. The problem is still the 
same. Then I took 4.8.1 gcc and 4.8 gdc and everything is ok with 
them. Then I tested mixing. It seems it is still possible to mix 
gcc 4.8 with gdc 4.9 and gcc 4.9 with gdc 4.8. These will compile 
fine but I have no idea how they would behave in real work.

Anyway in all cases gcc 4.8.1 works and gcc 4.9 does not, so this 
may be a gcc issue. I just wonder if gcc has such kind of code 
that only a d program triggers this error.


More information about the D.gnu mailing list