From caca8eddd9356777f5fe28454eb083b1779adc26 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 21 Jan 2022 13:57:12 +0100 Subject: [PATCH] sanitizer/99673 - bad -Wstringop-overread diagnostic with asan The testcase got fixed by lowering of &MEM[ptr + CST] to ptr + CST. 2022-01-21 Richard Biener PR sanitizer/99673 * gcc.dg/asan/pr99673.c: New testcase. --- gcc/testsuite/gcc.dg/asan/pr99673.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/asan/pr99673.c diff --git a/gcc/testsuite/gcc.dg/asan/pr99673.c b/gcc/testsuite/gcc.dg/asan/pr99673.c new file mode 100644 index 0000000..05857fd --- /dev/null +++ b/gcc/testsuite/gcc.dg/asan/pr99673.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-Wstringop-overread" } */ + +struct B { + int i; + struct A { + short sa[8]; + } a[2]; +}; + +struct C { + char n, ax[]; +}; + +struct D { int i, j, k; }; + +int f (const short[8]); + +void g (struct C *pc, struct D *pd, int i) +{ + struct B *pb = (void *)pc->ax; + pd->i = pb->i; + + const short *psa = pb->a[i].sa; + if (f (psa)) + return; +} -- 2.7.4