dwarf2 abort with block extern decl for inline function

Jim Wilson wilson@cygnus.com
Wed Jul 26 21:23:00 GMT 2000


I spent some more time looking at this, and discovered that my initial
analysis was wrong.  I got the right testcase, and the right patch, but
I was looking at the wrong part of the patch.

The real problem is the change in the argument to gen_abstract_function.

In the FUNCTION_DECL case in gen_decl_die, the original code calls
    gen_abstract_function (decl_ultimate_origin (decl));
and then it calls gen_subprogram_die which does
    add_abstract_origin_attribute (subr_die, decl_ultimate_origin (decl));
and add_abstract_origin_attribute does a lookup to get the die that was
created earlier.

The new code however just does
    gen_abstract_function (decl);
and when we later do the lookup for the origin die, there is none, because
we never created one.  The change in the gen_abstract_function call looks
wrong to me.  However, I can't be sure about this because there isn't
much useful info (e.g. no testcase) in the message describing the patch.
       http://gcc.gnu.org/ml/gcc-patches/2000-04/msg01014.html

Jim


More information about the Gcc-bugs mailing list