[cfe-dev] [LLVMdev] Unwind behaviour in Clang/LLVM

Renato Golin renato.golin at linaro.org
Tue Feb 18 06:46:21 PST 2014


On 18 February 2014 13:44, Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote:
> I would prefer to keep uwtable with its current meaning: It is
> possible to unwind past this function. That has nothing to do with
> exception handling, except that some ABIs might choose to use the same
> tables for unwinding when an exception is thrown.

I agree this is sensible. uwtable has *only* to do with unwinding and
it's the job of the exception handling mechanism to either use the
unwinding semantics or not, based on how the platform expects EH to
work, which may be different across systems. I'm not saying this is
the simplest implementation, but it's the simplest semantics.

Maybe the attribute nounwind should actually be called nothrow?


> So any combination of uwtable and another attribute still gets an
> entry in .eh_table and a debugger or profiler can go past it.

Yes!

Though, Clang seems not to generate -munwind-tables when -g or -pg is
present on ARM. This is probably a bug.

--renato




More information about the cfe-dev mailing list