This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB 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]

Re: dwarf-frame.c question


Richard Henderson <rth@redhat.com> writes:

> [ Pasted from web archives, sorry.  ]
> 
> Mark Kettenis:
> >  Andrew, it seems that we should tweak the frame code
> > to make sure that frame_unwind_by_pc is always passed a PC *within* the
> > function.
> 
> Andrew Cagney:
> > True, but how? It would effectively be frame_unwind_address_in_block() but
> > how reliably/where could it be used?
> 
> Careful; this silliness of subtracting one is not universal.
> 
> ABI's with more thought in them (e.g. IA64) require the compiler
> to put *something* after a noreturn call that ends a function.
> This being a relatively uncommon case, it does not add much code
> size, and it solves some of the ambiguity problems you're seeing.

Note that it is not only noreturn calls that end a function that pose
a problem.  As Andrew and Alexandre pointed out, branch instructions
pose a problem too.

Do you think we should require (or politely ask ;-)) the compiler to
put something after a noreturn call on other targets as well?

Mark


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