(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
asan/
pointer-compare-3.c
       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" } */
       4  
       5  int foo(char *p, char *q) {
       6    return p <= q;
       7  }
       8  
       9  char global[8192] = {};
      10  char small_global[7] = {};
      11  
      12  int main() {
      13    // Heap allocated memory.
      14    char *p = (char *)__builtin_malloc(42);
      15    int r = foo(p, 0);
      16    __builtin_free(p);
      17  
      18    p = (char *)__builtin_malloc(1024);
      19    foo(0, p);
      20    __builtin_free(p);
      21  
      22    p = (char *)__builtin_malloc(4096);
      23    foo(p, 0);
      24    __builtin_free(p);
      25  
      26    // Global variable.
      27    foo(&global[0], 0);
      28    foo(&global[1000], 0);
      29  
      30    p = &small_global[0];
      31    foo(p, 0);
      32  
      33    // Stack variable.
      34    char stack[10000];
      35    foo(&stack[0], 0);
      36    foo(0, &stack[9000]);
      37  
      38    return 0;
      39  }