xref: /llvm-project/llvm/test/Transforms/ObjCARC/pr12270.ll (revision 01e4f41b43b57dee751146fde9992c660bd7c714)
1; RUN: opt -disable-output -passes=objc-arc-contract < %s
2; test that we don't crash on unreachable code
3%2 = type opaque
4
5define void @_i_Test__foo(ptr %x) {
6entry:
7  unreachable
8
9return:                                           ; No predecessors!
10  %foo = call ptr @llvm.objc.autoreleaseReturnValue(ptr %x) nounwind
11  call void @callee()
12  call void @use_pointer(ptr %foo)
13  call void @llvm.objc.release(ptr %foo) nounwind
14  ret void
15}
16
17declare ptr @llvm.objc.autoreleaseReturnValue(ptr)
18declare void @llvm.objc.release(ptr)
19declare void @callee()
20declare void @use_pointer(ptr)
21