The testcase got fixed by lowering of &MEM[ptr + CST] to ptr + CST.
2022-01-21 Richard Biener <rguenther@suse.de>
PR sanitizer/99673
* gcc.dg/asan/pr99673.c: New testcase.
--- /dev/null
+/* { 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;
+}