blob: 28525e0ff0d92d71bd36f8610069d34eba44ad62 [file] [log] [blame]
/* This tests that when faced with two references to the same memory
location in the same basic block, the second reference should not
be instrumented by the Address Sanitizer. But in case of access to
overlapping regions we must be precise. */
/* { dg-options "-fdump-tree-asan0" } */
/* { dg-do compile } */
/* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */
int
main ()
{
char tab[5];
/* Here, we instrument the access at offset 0 and access at offset
4. */
__builtin_memset (tab, 1, sizeof (tab));
/* We instrumented access at offset 0 above already, so only access
at offset 3 is instrumented. */
__builtin_memset (tab, 1, 3);
}
/* { dg-final { scan-tree-dump-times "__builtin___asan_report_store1" 3 "asan0" } } */
/* { dg-final { scan-tree-dump-times "__builtin___asan_report" 3 "asan0" } } */
/* { dg-final { cleanup-tree-dump "asan0" } } */