| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 |
| ; RUN: opt < %s -passes='asan<use-after-scope>' -S | FileCheck %s |
| |
| define void @test() #1 { |
| ; CHECK-LABEL: define void @test( |
| ; CHECK-SAME: ) #[[ATTR0:[0-9]+]] { |
| ; CHECK-NEXT: [[ENTRY:.*:]] |
| ; CHECK-NEXT: [[CTX_PG:%.*]] = alloca <vscale x 16 x i1>, align 2 |
| ; CHECK-NEXT: call void @llvm.lifetime.start.p0(ptr [[CTX_PG]]) |
| ; CHECK-NEXT: [[TMP0:%.*]] = load i8, ptr inttoptr (i64 17592186044416 to ptr), align 1 |
| ; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i8 [[TMP0]], 0 |
| ; CHECK-NEXT: br i1 [[TMP1]], label %[[BB2:.*]], label %[[BB3:.*]] |
| ; CHECK: [[BB2]]: |
| ; CHECK-NEXT: call void @__asan_report_store8(i64 0) #[[ATTR4:[0-9]+]] |
| ; CHECK-NEXT: unreachable |
| ; CHECK: [[BB3]]: |
| ; CHECK-NEXT: store ptr [[CTX_PG]], ptr null, align 8 |
| ; CHECK-NEXT: ret void |
| ; |
| entry: |
| %ctx_pg = alloca <vscale x 16 x i1>, align 2 |
| call void @llvm.lifetime.start.p0(ptr %ctx_pg) |
| store ptr %ctx_pg, ptr null, align 8 |
| ret void |
| } |
| |
| attributes #1 = { sanitize_address } |