Require target lra in gcc.dg/pr108095.c
[official-gcc.git] / gcc / testsuite / c-c++-common / asan / pointer-compare-3.c
blob7156e494aebbe1ac61e37910bf728a40ff287bd7
1 /* { dg-do run } */
2 /* { dg-set-target-env-var ASAN_OPTIONS "detect_invalid_pointer_pairs=1:halt_on_error=1" } */
3 /* { dg-options "-fsanitize=address,pointer-compare" } */
5 int foo(char *p, char *q) {
6 return p <= q;
9 char global[8192] = {};
10 char small_global[7] = {};
12 int main() {
13 // Heap allocated memory.
14 char *p = (char *)__builtin_malloc(42);
15 int r = foo(p, 0);
16 __builtin_free(p);
18 p = (char *)__builtin_malloc(1024);
19 foo(0, p);
20 __builtin_free(p);
22 p = (char *)__builtin_malloc(4096);
23 foo(p, 0);
24 __builtin_free(p);
26 // Global variable.
27 foo(&global[0], 0);
28 foo(&global[1000], 0);
30 p = &small_global[0];
31 foo(p, 0);
33 // Stack variable.
34 char stack[10000];
35 foo(&stack[0], 0);
36 foo(0, &stack[9000]);
38 return 0;