https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81094
Bug ID: 81094
Summary: -fsanitize=object-size does not instrument aggregate
call arguments
Product: gcc
Version: 7.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: sanitizer
Assignee: unassigned at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at
gcc dot gnu.org
Target Milestone: ---
#define N 20
struct S { int i; };
__attribute__((noinline, noclone)) void
f0 (struct S s)
{
asm volatile ("" : : "r" (s.i) : "memory");
}
__attribute__((noinline, noclone)) void
f1 (int i)
{
char *orig;
struct S *p;
orig = (char *) __builtin_calloc (N, sizeof (struct S));
p = (struct S *) orig;
f0 (*(p + i));
f0 (p[i]);
p++;
f0 (p[i - 1]);
f0 (*(p + i - 1));
__builtin_free (orig);
}
does not instrument the aggregate arguments of calls, similarly to PR81005.