/* { dg-do compile } */ /* { dg-additional-options "-fno-sanitize=hwaddress -fsanitize=kernel-hwaddress" } */ /* Defaults to check for kernel-hwaddress. 1) No stack tagging => no calls to __hwasan_tag_memory. 2) No block scope tagging (same again). 3) Use sanitize-recover by default (everything ends in noabort). */ int __attribute__ ((noinline)) accessing_pointers (int *left, int *right) { int x = right[2]; left[3] = right[1]; return right[1] + left[2]; } int __attribute__ ((noinline)) using_stack (int num) { int big_array[10]; int other_array[20]; accessing_pointers(other_array, big_array); return big_array[num]; } #ifndef ARG #define ARG 0 #endif int __attribute__ ((noinline)) main () { using_stack (ARG); return 0; } /* { dg-final { scan-assembler-not "__hwasan_tag_memory" } } */ /* { dg-final { scan-assembler-not "__hwasan_(load|store)\\d(?!_noabort)" } } */