diff options
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Transforms/InstCombine/call_nonnull_arg.ll | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/call_nonnull_arg.ll b/llvm/test/Transforms/InstCombine/call_nonnull_arg.ll new file mode 100644 index 00000000000..cac53d3d47a --- /dev/null +++ b/llvm/test/Transforms/InstCombine/call_nonnull_arg.ll @@ -0,0 +1,17 @@ +; RUN: opt < %s -instcombine -S | FileCheck %s + +; InstCombine should mark null-checked argument as nonnull at callsite +declare void @dummy(i32*) + +define void @test(i32* %a) { +; CHECK-LABEL: @test +; CHECK: call void @dummy(i32* nonnull %a) +entry: + %cond = icmp eq i32* %a, null + br i1 %cond, label %is_null, label %not_null +not_null: + call void @dummy(i32* %a) + ret void +is_null: + unreachable +} |