[LLVMdev] LLVMdev Digest, Vol 86, Issue 5

Bill Wendling wendling at apple.com
Thu Aug 4 15:20:01 PDT 2011


On Aug 4, 2011, at 2:58 PM, Peter Lawrence wrote:

> Bill,
>        I suspect we're talking about two different aspects,
> I think you are saying that there is an ability for the DWARF Actions Table
> to contain multiple lists, including multiple filter lists - no disagreement
> there,
> I am saying that for any one landing-pad it might not make sense
> for it to be able to have more than one filter list.
> 
In general, it's not bad. But there is one problem, which your example illustrates.

	void foo() throw() { /* ... */ }

When "foo()" is inlined into its caller, the resulting function's EH table should be set up to disallow exceptions thrown for the inlined contents of foo(). Our current scheme is to mark foo() as "nounwind" and make it a normal "call" instruction. Some care will have to be taken during inlining to keep the "no throwing" attribute around for the code that cares about it.

-bw




More information about the llvm-dev mailing list