public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Dwarf2 and inlined functions
@ 2002-03-02  7:33 Richard Kenner
  2002-03-02 13:53 ` Richard Henderson
  0 siblings, 1 reply; 9+ messages in thread
From: Richard Kenner @ 2002-03-02  7:33 UTC (permalink / raw)
  To: gcc

I'm confused.  dwarf2out.c has no hook for deferred_inline_function.  But if
the function is never "outlined" (e.g., is always inlined) how do the
DIEs for the DECL_ABSTRACT_ORIGIN values in the usage of the inlined function
ever get made?

I'm seeing an ICE compiling the Ada RTS on x86 for this: it started happening
about a week or so ago.

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: Dwarf2 and inlined functions
@ 2002-03-03  4:22 Richard Kenner
  2002-03-03 13:31 ` Richard Henderson
  0 siblings, 1 reply; 9+ messages in thread
From: Richard Kenner @ 2002-03-03  4:22 UTC (permalink / raw)
  To: rth; +Cc: gcc

    IIRC, see gen_inlined_subroutine_die and the call therein
    to dwarf2out_abstract_function.

But I don't see where *that* is called in this case either.  The inlined
function in question is top-level.

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: Dwarf2 and inlined functions
@ 2002-03-03 14:29 Richard Kenner
  2002-03-03 14:37 ` Richard Henderson
  0 siblings, 1 reply; 9+ messages in thread
From: Richard Kenner @ 2002-03-03 14:29 UTC (permalink / raw)
  To: rth; +Cc: gcc

    It should be called when emitting the function that the
    inlined function was inlined into.

I was playing with this more this morning and getting even more confused.

As near as I can tell, the reason that gen_inlined_subroutine_die didn't
do anything was that the block in question was marked abstract.  So it
appears that some decl containing this block is being marked abstract but
we're still trying to output debugging information for things that are
supposed to be abstract.

If you want to look at this, I can tell you how to reproduce.

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: Dwarf2 and inlined functions
@ 2002-03-03 14:53 Richard Kenner
  2002-03-03 15:51 ` Alexandre Oliva
  0 siblings, 1 reply; 9+ messages in thread
From: Richard Kenner @ 2002-03-03 14:53 UTC (permalink / raw)
  To: rth; +Cc: gcc

    I don't suppose this was on a function that was inlined into a
    function that was inlined into the actual function being emitted?

Yes, I think it was something like that, though I failed to create a
simple test case.

    I'd have thought that would have been addressed by 

    2002-02-26  Alexandre Oliva  <aoliva@redhat.com>

        * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
        generate a die for the lexical block.

Actually, I suspect that change *caused* the problem, judging by the dates.

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: Dwarf2 and inlined functions
@ 2002-03-03 15:53 Richard Kenner
  0 siblings, 0 replies; 9+ messages in thread
From: Richard Kenner @ 2002-03-03 15:53 UTC (permalink / raw)
  To: aoliva; +Cc: gcc

    I'm not sure I remember having seen a testcase about the newly-exposed
    bug, though.  May I have access to it?

The only one I know about is in the Ada library: I've been trying to
make one in C.  When you make an x86 compiler, do
	make gnatlib THREAD_KIND=fsu
All it needs is to do the ln's.

Then you can run gnat1 with
	./gnat1 -Iada/rts -gnatpgn -O2 -g ada/rts/s-tasdeb.adb

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2002-03-03 23:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-02  7:33 Dwarf2 and inlined functions Richard Kenner
2002-03-02 13:53 ` Richard Henderson
2002-03-03  4:22 Richard Kenner
2002-03-03 13:31 ` Richard Henderson
2002-03-03 14:29 Richard Kenner
2002-03-03 14:37 ` Richard Henderson
2002-03-03 14:53 Richard Kenner
2002-03-03 15:51 ` Alexandre Oliva
2002-03-03 15:53 Richard Kenner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).