https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109449
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- As expected that causes FAIL: c-c++-common/Wstringop-truncation.c -std=gnu++98 bug 77293 (test for warn ings, line 271) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, lin e 49) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, lin e 50) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, lin e 51) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, lin e 55) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, line 56) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, line 57) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, line 61) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, line 62) FAIL: g++.dg/warn/Wplacement-new-size-7.C -std=gnu++98 (test for warnings, line 63) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 28) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 29) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 30) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 50) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 51) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 52) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 53) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 127) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 128) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 129) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 131) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 132) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 135) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 136) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 137) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 139) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 140) FAIL: gcc.dg/Wstringop-overflow-37.c note (test for warnings, line 194) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 195) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 213) FAIL: gcc.dg/Wstringop-overflow-37.c note (test for warnings, line 230) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 231) FAIL: gcc.dg/Wstringop-overflow-37.c note (test for warnings, line 236) FAIL: gcc.dg/Wstringop-overflow-37.c (test for warnings, line 237) FAIL: gcc.dg/Wstringop-overflow-37.c (test for excess errors) FAIL: gcc.dg/Wstringop-overflow-40.c (test for warnings, line 103) FAIL: gcc.dg/Wstringop-overflow-40.c (test for excess errors) FAIL: gcc.dg/pr56837.c scan-tree-dump-times optimized "memset ..c, 68, 16384.;" 1 FAIL: gcc.dg/warn-strnlen-no-nul.c (test for warnings, line 150) FAIL: gcc.dg/warn-strnlen-no-nul.c (test for warnings, line 154) FAIL: c-c++-common/Wstringop-truncation.c -Wc++-compat bug 77293 (test for warnings, line 271) as those all explicitely test for this "misbehavior" (aka _FORTIFY_SOURCE=2). Note -Wstringop-overflow=1 diagnoses this the same. The workaround in the source would be to use for example uint8_t *tdp = (uint8_t *)drlg.transDirMap; or simply use two-dimensional array accesses directly to transDirMap. So as a summary, the diagnostic works this way by design (a design not everyone agrees to, me included, esp. for the case of multidimensional arrays).