http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56356
Bug #: 56356 Summary: DJGPP compiler crashing Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: fabrizio...@tiscali.it I am building gcc as cross-compiler for DJGPP, running on an Ubuntu 12.04 machine. I downloaded the sources of binutils 2.23.1 and gcc 4.7.2. binutils compiled with no problems. gcc's build proceeded for a while, so that the compiler was actually built, but, while compiling libstdc++, the cross-compiler crashed. This is the command (part of the build process) that caused the crash /home/fabrizio/dev/djgpp/cross/gcc/./gcc/xgcc -v -shared-libgcc -B/home/fabrizio/dev/djgpp/cross/gcc/./gcc -nostdinc++ -L/home/fabrizio/dev/djgpp/cross/gcc/i586-pc-msdosdjgpp/libstdc++-v3/src -L/home/fabrizio/dev/djgpp/cross/gcc/i586-pc-msdosdjgpp/libstdc++-v3/src/.libs -B/home/fabrizio/dev/djgpp/i586-pc-msdosdjgpp/bin/ -B/home/fabrizio/dev/djgpp/i586-pc-msdosdjgpp/lib/ -isystem /home/fabrizio/dev/djgpp/i586-pc-msdosdjgpp/include -isystem /home/fabrizio/dev/djgpp/i586-pc-msdosdjgpp/sys-include -I/home/fabrizio/dev/djgpp/cross/gcc-4.7.2/libstdc++-v3/../libgcc -I/home/fabrizio/dev/djgpp/cross/gcc/i586-pc-msdosdjgpp/libstdc++-v3/include/i586-pc-msdosdjgpp -I/home/fabrizio/dev/djgpp/cross/gcc/i586-pc-msdosdjgpp/libstdc++-v3/include -I/home/fabrizio/dev/djgpp/cross/gcc-4.7.2/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=strstream.lo -g -O2 -I/home/fabrizio/dev/djgpp/cross/gcc/i586-pc-msdosdjgpp/libstdc++-v3/include/backward -Wno-deprecated -c ../../../../../gcc-4.7.2/libstdc++-v3/src/c++98/strstream.cc -o strstream.o I even tried to use gdb to debug cc1plus. gdb --args "/home/fabrizio/dev/djgpp/cross/gcc/./gcc/cc1plus" "-quiet" "-nostdinc++" "-v" "-I" "/home/fabrizio/dev/djgpp/cross/gcc-4.7.2/libstdc++-v3/../libgcc" "-I" "/home/fabrizio/dev/djgpp/cross/gcc/i586-pc-msdosdjgpp/libstdc++-v3/include/i586-pc-msdosdjgpp" "-I" "/home/fabrizio/dev/djgpp/cross/gcc/i586-pc-msdosdjgpp/libstdc++-v3/include" "-I" "/home/fabrizio/dev/djgpp/cross/gcc-4.7.2/libstdc++-v3/libsupc++" "-I" "/home/fabrizio/dev/djgpp/cross/gcc/i586-pc-msdosdjgpp/libstdc++-v3/include/backward" "-iprefix" "/home/fabrizio/dev/djgpp/cross/gcc/gcc/../lib/gcc/i586-pc-msdosdjgpp/4.7.2/" "-isystem" "/home/fabrizio/dev/djgpp/cross/gcc/./gcc/include" "-isystem" "/home/fabrizio/dev/djgpp/cross/gcc/./gcc/include-fixed" "-remap" "-imacros" "/home/fabrizio/dev/djgpp/i586-pc-msdosdjgpp/bin/../include/sys/version.h" "-isystem" "/home/fabrizio/dev/djgpp/i586-pc-msdosdjgpp/include" "-isystem" "/home/fabrizio/dev/djgpp/i586-pc-msdosdjgpp/sys-include" "../../../../../gcc-4.7.2/libstdc++-v3/src/c++98/strstream.cc" "-quiet" "-dumpbase" "strstream.cc" "-mtune=pentium" "-march=pentium" "-auxbase-strip" "strstream.o" "-g" "-O2" "-Wall" "-Wextra" "-Wwrite-strings" "-Wcast-qual" "-Wabi" "-Wno-deprecated" "-version" "-fno-implicit-templates" "-fdiagnostics-show-location=once" "-ffunction-sections" "-fdata-sections" "-frandom-seed=strstream.lo" "-o" "/tmp/ccqldaCk.s" And this is the result Program received signal SIGSEGV, Segmentation fault. eliminate_regs_1 (x=0x0, mem_mode=VOIDmode, insn=0x0, may_use_invariant=0 '\000', for_costs=0 '\000') at ../../gcc-4.7.2/gcc/reload1.c:2549 2549 enum rtx_code code = GET_CODE (x); (gdb) ba #0 eliminate_regs_1 (x=0x0, mem_mode=VOIDmode, insn=0x0, may_use_invariant=0 '\000', for_costs=0 '\000') at ../../gcc-4.7.2/gcc/reload1.c:2549 #1 0x00000000007d42da in eliminate_regs (x=<optimised out>, mem_mode=mem_mode@entry=VOIDmode, insn=insn@entry=0x0) at ../../gcc-4.7.2/gcc/reload1.c:2960 #2 0x00000000007ed561 in sdbout_parms (parms=0x7ffff5e8a440) at ../../gcc-4.7.2/gcc/sdbout.c:1278 #3 sdbout_end_prologue (line=<optimised out>, file=<optimised out>) at ../../gcc-4.7.2/gcc/sdbout.c:1594 #4 sdbout_begin_prologue (line=<optimised out>, file=<optimised out>) at ../../gcc-4.7.2/gcc/sdbout.c:1585 #5 0x00000000006aea43 in final_start_function (first=<optimised out>, file=0x13751d0, optimize_p=<optimised out>) at ../../gcc-4.7.2/gcc/final.c:1543 #6 0x00000000009aa10e in x86_output_mi_thunk (file=0x13751d0, thunk=<optimised out>, delta=-8, vcall_offset=0, function=<optimised out>) at ../../gcc-4.7.2/gcc/config/i386/i386.c:32312 #7 0x000000000061e2f2 in assemble_thunk (node=0x7ffff5e99000) at ../../gcc-4.7.2/gcc/cgraphunit.c:1641 #8 assemble_thunks_and_aliases (node=<optimised out>, node=<optimised out>) at ../../gcc-4.7.2/gcc/cgraphunit.c:1802 #9 0x000000000061e231 in assemble_thunks_and_aliases (node=0x7ffff5e80b40, ---Type <return> to continue, or q <return> to quit--- node=0x7ffff5e80b40) at ../../gcc-4.7.2/gcc/cgraphunit.c:1817 #10 0x000000000061fae7 in cgraph_expand_function (node=0x7ffff5e80b40) at ../../gcc-4.7.2/gcc/cgraphunit.c:1850 #11 0x000000000062122c in cgraph_expand_all_functions () at ../../gcc-4.7.2/gcc/cgraphunit.c:1904 #12 cgraph_optimize () at ../../gcc-4.7.2/gcc/cgraphunit.c:2218 #13 0x000000000062177a in cgraph_finalize_compilation_unit () at ../../gcc-4.7.2/gcc/cgraphunit.c:1344 #14 0x00000000004fed1e in cp_write_global_declarations () at ../../gcc-4.7.2/gcc/cp/decl2.c:4057 #15 0x0000000000827448 in compile_file () at ../../gcc-4.7.2/gcc/toplev.c:573 #16 do_compile () at ../../gcc-4.7.2/gcc/toplev.c:1938 #17 toplev_main (argc=51, argv=0x7fffffffda08) at ../../gcc-4.7.2/gcc/toplev.c:2014 #18 0x00007ffff715876d in __libc_start_main (main=0x4a0510 <main>, argc=51, ubp_av=0x7fffffffda08, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffffffd9f8) at libc-start.c:226 #19 0x00000000004a0541 in _start () (gdb) up 2 #2 0x00000000007ed561 in sdbout_parms (parms=0x7ffff5e8a440) at ../../gcc-4.7.2/gcc/sdbout.c:1278 1278 = eliminate_regs (DECL_INCOMING_RTL (parms), VOIDmode, NULL_RTX); (gdb) p parms->parm_decl .incoming_rtl $1 = (rtx) 0x0 So it is a null-pointer dereference