From: Philipp K. K. <pk...@sp...> - 2012-04-12 12:05:35
|
Revision #7570 of the optralloc-hc08 branch is a spill-everything allocator (i.e. the assignment found by the new allocaotr is not really used and instead everything is spilt). However I get a SIGSEGV when spilling one of the variables in a regression test: philipp@phoinikas:~/sdcc-ohc08/support/regression$ gdb --args ../../bin/sdcc --fverbose-asm -DNO_VARARGS --nostdinc -I../.. -mhc08 --less-pedantic --out-fmt-ihx -DREENTRANT=__reentrant -I./fwk/include -I./tests -I../../device/include -c gen/hc08/bug2719592/bug2719592.c -o gen/hc08/bug2719592/bug2719592.rel GNU gdb (GDB) 7.4-debian Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/philipp/sdcc-ohc08/bin/sdcc...done. (gdb) run Starting program: /home/philipp/sdcc-ohc08/bin/sdcc --fverbose-asm -DNO_VARARGS --nostdinc -I../.. -mhc08 --less-pedantic --out-fmt-ihx -DREENTRANT=__reentrant -I./fwk/include -I./tests -I../../device/include -c gen/hc08/bug2719592/bug2719592.c -o gen/hc08/bug2719592/bug2719592.rel Program received signal SIGSEGV, Segmentation fault. addSet (list=0x40, item=0x9438d0) at SDCCset.c:163 163 if (*list == NULL) (gdb) bt #0 addSet (list=0x40, item=0x9438d0) at SDCCset.c:163 #1 0x0000000000439afd in allocIntoSeg (sym=0x9438d0) at SDCCmem.c:377 #2 0x00000000005a15dd in createStackSpil (sym=0x936c70) at ralloc.c:584 #3 0x00000000005a3d2c in spillThis (sym=0x936c70) at ralloc.c:649 #4 0x00000000005a6009 in RegFix (count=2, ebbs=0x93bfd0) at ralloc.c:2982 #5 hc08_ralloc (ebbi=0x93bff0) at ralloc.c:3251 #6 0x0000000000423f9d in eBBlockFromiCode (ic=<optimized out>) at SDCCopt.c:2142 #7 0x0000000000438c65 in createFunction (name=0x9324e0, body=0x934590) at SDCCast.c:6680 #8 0x000000000040d568 in yyparse () at SDCC.y:193 #9 0x0000000000407b17 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at SDCCmain.c:2564 |