If I compile the testcase like this $ llc -enable-eh report.bc then block invcont131 is removed (this is the first block to be removed). It should not be removed. If I turn off tail merging then it is no longer removed. Here is a valid path through the function: entry -> bb -> cond_next44 -> cond_true80 -> cond_next109 -> invcont131 -> cond_next618 (returns)
Created attachment 1000 [details] testcase .ll
I'll look.
Indeed tail merging wasn't right for landing pads. Fixed. http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070604/050215.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070604/050217.html
Closing per following comment (from private e-mail) Yup, that fixed it - thanks a lot! Best wishes, Duncan.