[cfe-dev] Unwind behaviour in Clang/LLVM

Rafael EspĂ­ndola rafael.espindola at gmail.com
Sun Feb 9 18:54:24 PST 2014


On 6 February 2014 08:29, Renato Golin <renato.golin at linaro.org> wrote:
> Folks,
>
> We're having some discussions about the behaviour of exception handling and
> Dwarf sharing unwind logic, tables, etc. and it seems that the code around
> it wasn't designed with any particular goal in mind, but evolved (like the
> EHABI) and now we're seeing the results from it.
>
> The problems below are assuming C vs. C++, but it actually apply to any
> possibly-exceptional vs. never-exceptional cases.
>
>
> 1. C vs. C++
>
> We have two unwind flags: nounwind, which flags functions that can't unwind
> (leaf, nothrow, etc) and uwtable, which forces generation of the table
> regardless of nounwind. It seems sensible that C++ code with exceptions
> enabled should generate the tables for all functions, in case they're called
> by (or call) external functions. In C we don't want any of that.

Depends on the ABI. On X86-64 we should produce the tables even with C
according to the ABI.

Cheers,
Rafael



More information about the cfe-dev mailing list