blob: 481e780f3acf070fe8cece9e507c85f35c4c5367 [file] [log] [blame]
; Remove possible memory effects from functions that are invalidated by
; AddressSanitizer instrumentation.
; RUN: opt -passes='asan<use-after-scope>' -S %s | FileCheck %s
; CHECK: @foo(ptr writeonly) #[[ATTRS_FOO:[0-9]+]]
declare void @foo(ptr writeonly) memory(argmem: write)
; CHECK: @bar() #[[ATTRS_BAR:[0-9]+]]
define void @bar() sanitize_address {
entry:
%x = alloca i32, align 4
call void @llvm.lifetime.start.p0(i64 4, ptr %x)
call void @foo(ptr %x)
call void @llvm.lifetime.end.p0(i64 4, ptr %x)
ret void
}
; CHECK: attributes #[[ATTRS_FOO]] = { nobuiltin }
; CHECK: attributes #[[ATTRS_BAR]] = { sanitize_address }