| ; RUN: opt -passes='function(require<domtree>),extract-blocks,function(verify<domtree>)' -disable-output %s |
| |
| ; The landing pad split runs even with an empty block list, so the CFG changes. |
| ; Ensure that we properly invalidate analyses. |
| |
| define void @foo() personality ptr @__gxx_personality_v0 { |
| entry: |
| invoke void @bar() |
| to label %exit unwind label %lpad |
| |
| lpad: |
| %0 = landingpad { ptr, i32 } |
| catch ptr null |
| invoke void @bar() |
| to label %exit unwind label %lpad2 |
| |
| lpad2: |
| %1 = landingpad { ptr, i32 } |
| cleanup |
| invoke void @bar() |
| to label %exit unwind label %lpad |
| |
| exit: |
| ret void |
| } |
| |
| declare void @bar() |
| |
| declare i32 @__gxx_personality_v0(...) |