public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* 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  4:22 Dwarf2 and inlined functions Richard Kenner
@ 2002-03-03 13:31 ` Richard Henderson
  0 siblings, 0 replies; 9+ messages in thread
From: Richard Henderson @ 2002-03-03 13:31 UTC (permalink / raw)
  To: Richard Kenner; +Cc: gcc

On Sun, Mar 03, 2002 at 07:18:18AM -0500, Richard Kenner wrote:
> But I don't see where *that* is called in this case either.  The inlined
> function in question is top-level.

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


r~

^ 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

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

On Mar  3, 2002, kenner@vlsi1.ultra.nyu.edu (Richard Kenner) wrote:

>     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.

Hmm...  I suspected it might have actually exposed the bug you ran
into, but I don't see how.  Anyway, my patch included a new testcase,
that was failing in C and that was preventing bootstrap with -O3 -g on
all DWARF-2 platforms.  I'm not sure I remember having seen a testcase
about the newly-exposed bug, though.  May I have access to it?

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer

^ 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 14:29 Richard Kenner
@ 2002-03-03 14:37 ` Richard Henderson
  0 siblings, 0 replies; 9+ messages in thread
From: Richard Henderson @ 2002-03-03 14:37 UTC (permalink / raw)
  To: Richard Kenner; +Cc: gcc

On Sun, Mar 03, 2002 at 05:25:36PM -0500, Richard Kenner wrote:
> 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.

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

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.


r~

^ 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-02  7:33 Richard Kenner
@ 2002-03-02 13:53 ` Richard Henderson
  0 siblings, 0 replies; 9+ messages in thread
From: Richard Henderson @ 2002-03-02 13:53 UTC (permalink / raw)
  To: Richard Kenner; +Cc: gcc

On Sat, Mar 02, 2002 at 10:29:38AM -0500, Richard Kenner wrote:
> 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?

IIRC, see gen_inlined_subroutine_die and the call therein
to dwarf2out_abstract_function.


r~

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

* 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

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-03  4:22 Dwarf2 and inlined functions Richard Kenner
2002-03-03 13:31 ` Richard Henderson
  -- strict thread matches above, loose matches on Subject: below --
2002-03-03 15:53 Richard Kenner
2002-03-03 14:53 Richard Kenner
2002-03-03 15:51 ` Alexandre Oliva
2002-03-03 14:29 Richard Kenner
2002-03-03 14:37 ` Richard Henderson
2002-03-02  7:33 Richard Kenner
2002-03-02 13:53 ` Richard Henderson

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).