Internal compiler error hint
Tobias Ringstrom
tobias@it.chalmers.se
Mon Sep 29 07:28:00 GMT 1997
Regarding my bug report
http://www.cygnus.com/ml/egcs-bugs/1997-Sep/0207.html , I have found that
the error disappears if I back out the following patch.
Tue Sep 16 14:22:36 1997 Jason Merrill <jason@yorick.cygnus.com>
* integrate.c (expand_inline_function): Move expand_start_bindings
after expanding the arguments.
diff -Nrc3p egcs-970910/gcc/integrate.c egcs-970917/gcc/integrate.c
*** egcs-970910/gcc/integrate.c Fri Sep 5 13:03:37 1997
--- egcs-970917/gcc/integrate.c Tue Sep 16 14:23:59 1997
*************** expand_inline_function (fndecl, parms, t
*** 1299,1308 ****
parameter declarations. */
pushlevel (0);
- /* Make a fresh binding contour that we can easily remove. */
- pushlevel (0);
- expand_start_bindings (0);
-
/* Expand the function arguments. Do this first so that any
new registers get created before we allocate the maps. */
--- 1299,1304 ----
*************** expand_inline_function (fndecl, parms, t
*** 1737,1742 ****
--- 1733,1743 ----
}
else
abort ();
+
+ /* Make a fresh binding contour that we can easily remove. Do this after
+ expanding our arguments so cleanups are properly scoped. */
+ pushlevel (0);
+ expand_start_bindings (0);
/* Make new label equivalences for the labels in the called function. */
for (i = min_labelno; i < max_labelno; i++)
The stack trace looks like this:
Program received signal SIGSEGV, Segmentation fault.
0xf4be0 in add_insn_after (insn=0x448fb0, after=0x0) at emit-rtl.c:2312
2312 if (optimize && INSN_DELETED_P (after))
(gdb) i s
#0 0xf4be0 in add_insn_after (insn=0x448fb0, after=0x0) at emit-rtl.c:2312
#1 0xf51b4 in emit_insn_after (pattern=0x448fa0, after=0x0) at emit-rtl.c:2619
#2 0x1248ec in copy_rtx_and_substitute (orig=0x448f88, map=0xefffd088) at integrate.c:2294
#3 0x124fec in copy_rtx_and_substitute (orig=0x43eed0, map=0xefffd088) at integrate.c:2559
#4 0x124e8c in copy_rtx_and_substitute (orig=0x43eec8, map=0xefffd088) at integrate.c:2528
#5 0x124fec in copy_rtx_and_substitute (orig=0x43ef28, map=0xefffd088) at integrate.c:2559
#6 0x123fbc in expand_inline_function (fndecl=0x427188, parms=0x43ef28, target=0x0, ignore=0, type=0x2714b0,
structure_value_addr=0x0) at integrate.c:1840
#7 0xcd024 in expand_call (exp=0x433c50, target=0x0, ignore=0) at calls.c:724
#8 0xc3144 in expand_expr (exp=0x433c50, target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL) at expr.c:5951
#9 0xc18e4 in expand_expr (exp=0x264888, target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL) at expr.c:5211
#10 0xb4120 in expand_cleanups (list=0x2648a0, dont_do=0x0, in_fixup=1, reachable=1) at stmt.c:4199
#11 0xaf77c in fixup_gotos (thisblock=0x281680, stack_level=0x0, cleanup_list=0x264c28, first_insn=0x433b38,
dont_jump_in=1) at stmt.c:1263
#12 0xb3148 in expand_end_bindings (vars=0x433b50, mark_ends=1, dont_jump_in=1) at stmt.c:3457
#13 0x33f54 in do_poplevel () at pt.c:2347
#14 0x5e810 in yyparse () at parse.y:3280
#15 0x8d210 in compile_file (name=0xefffe3e0 "egcs-bug.ii") at toplev.c:2486
#16 0x90a3c in main (argc=4, argv=0xefffe1a4, envp=0xefffe1b8) at toplev.c:4331
(gdb)
/ Tobias
More information about the Gcc
mailing list