This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/17406] [4.0 regression] ICE dwarf2out_frame_debug_expr, at dwarf2out.c:1692


------- Additional Comments From aaronavay62 at aaronwl dot com  2004-09-14 06:54 -------
It fails at -O1 -g, but not with -g or with -O1 without the other, and not when
neither is specified.

I tried again and this still fails on GNU C version 4.0.0 20040914
(experimental) (i686-pc-mingw32).

Debugging information is better this time for some reason (I think I may have
bootstrapped from a different compiler) and now its reporting the assert in
frame 1 as:
1692 gcc_assert (cfa_temp.reg == (unsigned) regno);
1693 offset -= cfa_temp.offset;

(gdb) print cfa_temp
$8 = {reg = 0, offset = 6180, base_offset = 0, indirect = 0}

(gdb) print regno
$9 = 6

The value of cfa_temp->reg is set within a previous call of that function:
Old value = 6
New value = 0
dwarf2out_frame_debug_expr (expr=0x1890230, label=0xa71d40 "*LCFI8")
    at ../../../src/cvs/head/gcc/gcc/dwarf2out.c:1604
1604              cfa_temp.offset = INTVAL (src);

What all of this means is a mystery to me. :-)

Perhaps it is supposed to be initialized somewhere and it is not being initialized?

I will continue to debug and see if I can come up with anything else, but all of
this part of the compiler is unknown to me.  Any assistance would be appreciated!


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17406


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]