avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] [AVR] RTL prologue/epilogue ver.3


From: Weddington, Eric
Subject: Re: [avr-gcc-list] [AVR] RTL prologue/epilogue ver.3
Date: Thu, 13 Oct 2011 14:28:13 -0600


> -----Original Message-----
> From: Georg-Johann Lay [mailto:address@hidden
> Sent: Thursday, October 13, 2011 12:10 PM
> To: Weddington, Eric
> Cc: Boyapati, Anitha; address@hidden
> Subject: Re: [avr-gcc-list] [AVR] RTL prologue/epilogue ver.3
> 
> For the compiler, assume:
> 
> void __attribute__((noreturn,noinline)) b (void);
> 
> void a (void)
> {
>     b();
> }
> 
> void b (void)
> {
>     while (1);
> }
> 
> avr-gcc ab.c -S -Os -fno-toplevel-reorder
> 
> a:
>       rcall b
> 
> b:
> .L3:
>       rjmp .L3
> 
> But there is symbol information for b despite rcall .+0
> 

See! I thought you might come up with a counter-example. ;-)

Is the problem really about matching up 'returns' with the 'calls'? If
that is true, then the above doesn't necessarily fit the problem as
function 'b' is a noreturn function.

But I can also see where it could be a problem where in that example
above, the 'rcall 0' is a valid subroutine call.

There will probably have to be some info in the DWARF debug info for the
debugger to track...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]