1 | // REQUIRES: !asan, compiler-rt, lldb |
2 | // UNSUPPORTED: system-windows |
3 | // Zorg configures the ASAN stage2 bots to not build the asan |
4 | // compiler-rt. Only run this test on non-asanified configurations. |
5 | // |
6 | // RUN: %clang -std=gnu11 --driver-mode=gcc -O0 -glldb -fblocks -arch x86_64 \ |
7 | // RUN: -fsanitize=address %s -o %t |
8 | // RUN: %dexter --fail-lt 1.0 -w \ |
9 | // RUN: --binary %t --debugger 'lldb' -- %s |
10 | |
11 | struct S { |
12 | int a[8]; |
13 | }; |
14 | |
15 | int f(struct S s, unsigned i) { |
16 | return s.a[i]; // DexLabel('asan') |
17 | } |
18 | |
19 | int main(int argc, const char **argv) { |
20 | struct S s = {.a: {0, 1, 2, 3, 4, 5, 6, 7}}; |
21 | if (f(s, i: 4) == 4) |
22 | return f(s, i: 0); |
23 | return 0; |
24 | } |
25 | |
26 | // DexExpectWatchValue('s.a[0]', '0', on_line=ref('asan')) |
27 | // DexExpectWatchValue('s.a[1]', '1', on_line=ref('asan')) |
28 | // DexExpectWatchValue('s.a[7]', '7', on_line=ref('asan')) |
29 | |
30 | |