r50 gdc crash on 4.0.3, mingw32

David Friedman dvdfrdmn at users.ess-eff.net
Wed Dec 6 18:39:19 PST 2006


Downs,

Can you tell me where to get the rest of the code?  Thanks!

BTW, if you want debug internal compiler errors, put a breakpoint on 
'fancy_abort'.

David

Downs wrote:
> Trying to compile the file html.d
> ( http://paste.dprogramming.com/dpba895x.php )
> with a recently compiled r50 of gdc on gcc 4.0.3 on mingw32,
> I encountered the following error:
>  > html.d: In member function 'apply':
>  > html.d:211: internal compiler error: Arithmetic exception
>  > (that's actually an assert, I just made it an arithmetic
>  > exception so's I could get the stacktrace .. the original line was
>  > Assertion failed: func_type!=NULL, file 
> ../../gcc-4.0.3/gcc/d/d-codegen.cc, line 854
>  > Please submit a full bug report yada yada.
> 
> The stack trace at the time of the crash is:
> E:\code\dmono>gdb c:\gdc\libexec\gcc\i686-pc-mingw32\4.0.3\cc1d.exe
> GNU gdb 5.2.1
> Copyright 2002 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you 
> are
> welcome to change it and/or distribute copies of it under certain 
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i686-pc-mingw32"...
> (gdb) r html.d -dumpbase html.d -auxbase-strip obj/html.o 
> -fversion=Windows -ipr
> efix C:/gdc/lib/gcc/i686-pc-mingw32/4.0.3 -IC:/gdc/include/d/4.0.3 -o 
> test.s
> Starting program: c:\gdc\libexec\gcc\i686-pc-mingw32\4.0.3\cc1d.exe 
> html.d -dump
> base html.d -auxbase-strip obj/html.o -fversion=Windows -iprefix 
> C:/gdc/lib/gcc/
> i686-pc-mingw32/4.0.3 -IC:/gdc/include/d/4.0.3 -o test.s
> 
> Program received signal SIGFPE, Arithmetic exception.
> 0x004ba10f in IRState::call(TypeFunction*, tree_node*, tree_node*, 
> Array*) (
>     this=0x203cb70, func_type=0x0, callable=0x20737e0, object=0x20737c0,
>     arguments=0x15afd60) at ../../gcc-4.0.3/gcc/d/d-codegen.cc:854
> 854         if (func_type==NULL) { int a=0; a=0/a; }
> Current language:  auto; currently c++
> (gdb) bt
> #0  0x004ba10f in IRState::call(TypeFunction*, tree_node*, tree_node*, 
> Array*)
>     (this=0x203cb70, func_type=0x0, callable=0x20737e0, object=0x20737c0,
>     arguments=0x15afd60) at ../../gcc-4.0.3/gcc/d/d-codegen.cc:854
> #1  0x004ba783 in IRState::call(Expression*, Array*) (this=0x203cb70,
>     expr=0x15afd28, arguments=0x15afd60)
>     at ../../gcc-4.0.3/gcc/d/d-codegen.cc:824
> #2  0x004c4e39 in CallExp::toElem(IRState*) (this=0x15afd88, irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:1491
> #3  0x004b9e1e in IRState::convertTo(Expression*, Type*) (this=0x203cb70,
>     exp=0x15afd88, target_type=0x15841b0)
>     at ../../gcc-4.0.3/gcc/d/d-codegen.cc:239
> #4  0x004bf12f in CastExp::toElem(IRState*) (this=0x1eaafa8, irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:1318
> #5  0x004b9dc1 in IRState::convertForAssignment(Expression*, Type*) (
>     this=0x203cb70, exp=0x1eaafa8, target_type=0x15841b0)
>     at ../../gcc-4.0.3/gcc/d/d-codegen.cc:549
> #6  0x004c75c9 in AssignExp::toElem(IRState*) (this=0x1eaae70, 
> irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:1130
> #7  0x004be23f in CommaExp::toElem(IRState*) (this=0x1eaaea8, 
> irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:1200
> #8  0x004be21b in CommaExp::toElem(IRState*) (this=0x1eaaf18, 
> irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:1199
> #9  0x004b9e1e in IRState::convertTo(Expression*, Type*) (this=0x203cb70,
> ---Type <return> to continue, or q <return> to quit---
>     exp=0x1eaaf18, target_type=0x1e6d8f0)
>     at ../../gcc-4.0.3/gcc/d/d-codegen.cc:239
> #10 0x004bf12f in CastExp::toElem(IRState*) (this=0x1eaafe0, irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:1318
> #11 0x004ba080 in IRState::convertForArgument(Expression*, Argument*) (
>     this=0x203cb70, exp=0x1eaafe0, arg=0x15a4f00)
>     at ../../gcc-4.0.3/gcc/d/d-codegen.cc:490
> #12 0x004ba330 in IRState::call(TypeFunction*, tree_node*, tree_node*, 
> Array*)
>     (this=0x203cb70, func_type=0x1e6e2a8, callable=0x2066dc0,
>     object=0x2072140, arguments=0x15af258)
>     at ../../gcc-4.0.3/gcc/d/d-codegen.cc:907
> #13 0x004ba542 in IRState::call(FuncDeclaration*, tree_node*, Array*) (
>     this=0x203cb70, func_decl=0x15a4f30, object=0x2072140, args=0x15af258)
>     at ../../gcc-4.0.3/gcc/d/d-codegen.cc:838
> #14 0x004c335e in NewExp::toElem(IRState*) (this=0x15afdc0, irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:1975
> #15 0x004b9e1e in IRState::convertTo(Expression*, Type*) (this=0x203cb70,
>     exp=0x15afdc0, target_type=0x15841b0)
>     at ../../gcc-4.0.3/gcc/d/d-codegen.cc:239
> #16 0x004bf12f in CastExp::toElem(IRState*) (this=0x1eab018, irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:1318
> #17 0x004c63c2 in CatAssignExp::toElem(IRState*) (this=0x15afe10,
>     irs=0x203cb70) at ../../gcc-4.0.3/gcc/d/d-glue.cc:883
> ---Type <return> to continue, or q <return> to quit---
> #18 0x004bdd31 in ExpStatement::toIR(IRState*) (this=0x15afe48, 
> irs=0x203cb70)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:3949
> #19 0x004bd9ff in CompoundStatement::toIR(IRState*) (this=0x15b0318,
>     irs=0x203cb70) at ../../gcc-4.0.3/gcc/d/d-glue.cc:3917
> #20 0x004bd9ff in CompoundStatement::toIR(IRState*) (this=0x1eab768,
>     irs=0x203cb70) at ../../gcc-4.0.3/gcc/d/d-glue.cc:3917
> #21 0x004c2079 in FuncDeclaration::toObjFile() (this=0x15ae330)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:2636
> #22 0x004aacd3 in _ZN16ClassDeclaration9toObjFileEv (this=0x15ad8f8)
>     at ../../gcc-4.0.3/gcc/d/dmd/toobj.c:310
> #23 0x004c0d6a in Module::genobjfile() (this=0x1583d30)
>     at ../../gcc-4.0.3/gcc/d/d-glue.cc:2779
> #24 0x004b1aed in d_parse_file(int) () at 
> ../../gcc-4.0.3/gcc/d/d-lang.cc:1017
> #25 0x00527df3 in compile_file () at ../../gcc-4.0.3/gcc/toplev.c:1010
> #26 0x005298d0 in do_compile () at ../../gcc-4.0.3/gcc/toplev.c:2125
> #27 0x00529935 in toplev_main (argc=12, argv=0x3e2710)
>     at ../../gcc-4.0.3/gcc/toplev.c:2157
> #28 0x004e9bda in main (argc=2293684, argv=0x4011a0)
>     at ../../gcc-4.0.3/gcc/main.c:35
> (gdb)
> 
> 
> Greetings, thanks and good luck! :D
> --downs



More information about the D.gnu mailing list