diff options
Diffstat (limited to 'test/Transforms')
-rw-r--r-- | test/Transforms/Inline/crash.ll | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/Transforms/Inline/crash.ll b/test/Transforms/Inline/crash.ll index f34b44c..1df4d60 100644 --- a/test/Transforms/Inline/crash.ll +++ b/test/Transforms/Inline/crash.ll @@ -86,3 +86,34 @@ bb260: lpad: unwind } + + + +;; This exposed a crash handling devirtualized calls. +define void @f1(void ()* %f) ssp { +entry: + call void %f() + ret void +} + +define void @f4(i32 %size) ssp { +entry: + invoke void @f1(void ()* @f3) + to label %invcont3 unwind label %lpad18 + +invcont3: ; preds = %bb1 + ret void + +lpad18: ; preds = %invcont3, %bb1 + unreachable +} + +define void @f3() ssp { +entry: + unreachable +} + +declare void @f5() ssp + + + |