[llvm-commits] Patch for correct landing pad code emission

Anton Korobeynikov asl at math.spbu.ru
Wed May 23 09:32:17 PDT 2007


Hello, Everyone.

Please find attached patch, which fixes LLVM's behaviour during code
emission in LPs.

Currently AddLandingPad() function emits llvm.eh.exception only for
TRY_EXCEPT blocks. But sometimes (see, e.g. g++.dg/eh/unexpected1.C) gcc
generates code of form:

try {
 throw();
} finally {
 ....
 Unwind_Resume();
}

so, the exception is rethrown upper. In order to correctly handle this
situation we should emit landing pad info for TRY_FINALLY blocks also.
Attached patch does this.

-- 
With best regards, Anton Korobeynikov.

Faculty of Mathematics & Mechanics, Saint Petersburg State University.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: try_finally.diff
Type: text/x-patch
Size: 2744 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070523/c0914b7c/attachment.bin>


More information about the llvm-commits mailing list