blob: 2d6bab4c578ed73529b3f0023528914e7ec983a1 [file] [log] [blame]
/* { dg-do run } */
/* { dg-require-effective-target hwaddress_exec } */
/* { dg-shouldfail "hwasan" } */
/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
/* { dg-additional-options "-fdump-tree-asan1 -save-temps" } */
/* Here to check that the ASAN_POISON stuff works just fine.
This mechanism isn't very often used, but I should at least go through the
code-path once in my testfile. */
int
main ()
{
int *ptr = 0;
{
int a;
ptr = &a;
*ptr = 12345;
}
return *ptr;
}
/* { dg-final { scan-tree-dump-times "ASAN_POISON" 1 "asan1" } } */
/* { dg-final { scan-assembler-times "bl\\s*__hwasan_tag_mismatch4" 1 } } */
/* { dg-output "HWAddressSanitizer: tag-mismatch on address 0x\[0-9a-f\]*.*" } */
/* { dg-output "READ of size 4 at 0x\[0-9a-f\]* tags: \[\[:xdigit:\]\]\[\[:xdigit:\]\]/00 \\(ptr/mem\\) in thread T0.*" } */
/* { dg-output "Address 0x\[0-9a-f\]* is located in stack of thread T0.*" } */
/* { dg-output "SUMMARY: HWAddressSanitizer: tag-mismatch \[^\n\]*.*" } */