diff options
Diffstat (limited to 'test/Transforms/ObjCARC/pr12270.ll')
-rw-r--r-- | test/Transforms/ObjCARC/pr12270.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/Transforms/ObjCARC/pr12270.ll b/test/Transforms/ObjCARC/pr12270.ll new file mode 100644 index 0000000..1faae5f --- /dev/null +++ b/test/Transforms/ObjCARC/pr12270.ll @@ -0,0 +1,21 @@ +; RUN: opt -disable-output -objc-arc-contract %s +; test that we don't crash on unreachable code +%2 = type opaque + +define void @_i_Test__foo(%2 *%x) { +entry: + unreachable + +return: ; No predecessors! + %bar = bitcast %2* %x to i8* + %foo = call i8* @objc_autoreleaseReturnValue(i8* %bar) nounwind + call void @callee() + call void @use_pointer(i8* %foo) + call void @objc_release(i8* %foo) nounwind + ret void +} + +declare i8* @objc_autoreleaseReturnValue(i8*) +declare void @objc_release(i8*) +declare void @callee() +declare void @use_pointer(i8*) |