mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 02:29:18 +00:00
After the -asan pass had been split into -asan (function-level) and -asan-module (module-level) some of the tests have silently stopped working, because they didn't instrument the globals anymore. We've decided to have every test using both passes, irrespective of the presence of globals in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204335 91177308-0d34-0410-b5e6-96231b3b80d8
26 lines
936 B
LLVM
26 lines
936 B
LLVM
; Test that AddressSanitizer instruments "(*a)++" only once.
|
|
; RUN: opt < %s -asan -asan-module -S -asan-opt=1 | FileCheck %s -check-prefix=OPT1
|
|
; RUN: opt < %s -asan -asan-module -S -asan-opt=0 | FileCheck %s -check-prefix=OPT0
|
|
|
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
define void @IncrementMe(i32* %a) sanitize_address {
|
|
entry:
|
|
%tmp1 = load i32* %a, align 4
|
|
%tmp2 = add i32 %tmp1, 1
|
|
store i32 %tmp2, i32* %a, align 4
|
|
ret void
|
|
}
|
|
|
|
; With optimizations enabled we should see only one call to __asan_report_*
|
|
; OPT1: IncrementMe
|
|
; OPT1: __asan_report_
|
|
; OPT1-NOT: __asan_report_
|
|
; OPT1: asan.module_ctor
|
|
|
|
; Without optimizations we should see two calls to __asan_report_*
|
|
; OPT0: IncrementMe
|
|
; OPT0: __asan_report_
|
|
; OPT0: __asan_report_
|
|
; OPT0: asan.module_ctor
|