https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104088
Bug ID: 104088 Summary: [12 Regression] '-O2' (or higher) GCN offloading (only) 'libgomp.oacc-c-c++-common/vprop.c' excess errors: 'warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]' Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: diagnostic, openacc Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: tschwinge at gcc dot gnu.org CC: ams at gcc dot gnu.org, jules at gcc dot gnu.org, msebor at gcc dot gnu.org Target Milestone: --- Target: gcn The recent commit r12-6592-g72332337e3d8acbb21398b8d123f1bfe77a8327e "Use enclosing object size if it's smaller than member [PR 101475]" causes a regression with '-O2' (or higher) GCN offloading (only): PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vprop.c -DACC_DEVICE_TYPE_radeon=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa -O0 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vprop.c -DACC_DEVICE_TYPE_radeon=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa -O0 execution test [-PASS:-]{+FAIL:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vprop.c -DACC_DEVICE_TYPE_radeon=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vprop.c -DACC_DEVICE_TYPE_radeon=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa -O2 execution test In function 'test_char._omp_fn.0': lto1: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] lto1: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] PASS: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/vprop.c -DACC_DEVICE_TYPE_radeon=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa -O0 (test for excess errors) PASS: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/vprop.c -DACC_DEVICE_TYPE_radeon=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa -O0 execution test [-PASS:-]{+FAIL:+} libgomp.oacc-c++/../libgomp.oacc-c-c++-common/vprop.c -DACC_DEVICE_TYPE_radeon=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa -O2 (test for excess errors) PASS: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/vprop.c -DACC_DEVICE_TYPE_radeon=1 -DACC_MEM_SHARED=0 -foffload=amdgcn-amdhsa -O2 execution test In function '_Z9test_charv._omp_fn.0': lto1: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] lto1: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] There is no (!) meaningful difference if good vs. bad '-foffload=amdgcn-amdhsa=-fdump-tree-all\ -fdump-ipa-all\ -fdump-rtl-all' dump files. I'm happy to supply any dump files etc. to help resolve this.