On Mär 31 2021, Jan Hubicka via Gcc-cvs wrote: > https://gcc.gnu.org/g:e7fd3b783238d034018443e43a58ff87908b4db6 > > commit r11-7940-ge7fd3b783238d034018443e43a58ff87908b4db6 > Author: Jan Hubicka <j...@suse.cz> > Date: Wed Mar 31 22:44:20 2021 +0200 > > Make USES_COMDAT_LOCAL CIF_FINAL_NORMAL > > USES_COMDAT_LOCAL is incorrectly defined as CIF_FINAL_ERROR which makes > inliner > to mis some inlines of functions in comdat section that was previously > split. > > 2021-03-31 Jan Hubicka <hubi...@ucw.cz> > > PR ipa/98265 > * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
This breaks bootstrap on riscv64: In function ‘alloca_type_and_limit alloca_call_type(range_query&, gimple*, bool ’, inlined from ‘virtual unsigned int pass_walloca::execute(function*)’ at ../../gcc/gimple-ssa-warn-alloca.c:295:25: ../../gcc/gimple-ssa-warn-alloca.c:206:13: error: ‘*(long int*)((char*)&ret + offsetof(alloca_type_and_limit, alloca_type_and_limit::limit.generic_wide_int<wide_int_storage>::<unnamed>.wide_int_storage::val[0]))’ may be used uninitialized -Werror=maybe-uninitialized] 206 | ret = alloca_type_and_limit (ALLOCA_OK); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../gcc/gimple-ssa-warn-alloca.c: In member function ‘virtual unsigned int pass_walloca::execute(function*)’: ../../gcc/gimple-ssa-warn-alloca.c:200:32: note: ‘ret’ declared here 200 | struct alloca_type_and_limit ret = alloca_type_and_limit (ALLOCA_OK); | ^~~ In function ‘alloca_type_and_limit alloca_call_type(range_query&, gimple*, bool ’, inlined from ‘virtual unsigned int pass_walloca::execute(function*)’ at ../../gcc/gimple-ssa-warn-alloca.c:295:25: ../../gcc/gimple-ssa-warn-alloca.c:206:13: error: ‘*(long int*)((char*)&ret + offsetof(alloca_type_and_limit, alloca_type_and_limit::limit.generic_wide_int<wide_int_storage>::<unnamed>.wide_int_storage::val[1]))’ may be used uninitialized -Werror=maybe-uninitialized] 206 | ret = alloca_type_and_limit (ALLOCA_OK); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../gcc/gimple-ssa-warn-alloca.c: In member function ‘virtual unsigned int pass_walloca::execute(function*)’: ../../gcc/gimple-ssa-warn-alloca.c:200:32: note: ‘ret’ declared here 200 | struct alloca_type_and_limit ret = alloca_type_and_limit (ALLOCA_OK); | ^~~ In function ‘alloca_type_and_limit alloca_call_type(range_query&, gimple*, bool ’, inlined from ‘virtual unsigned int pass_walloca::execute(function*)’ at ../../gcc/gimple-ssa-warn-alloca.c:295:25: ../../gcc/gimple-ssa-warn-alloca.c:206:13: error: ‘*(long int*)((char*)&ret + offsetof(alloca_type_and_limit, alloca_type_and_limit::limit.generic_wide_int<wide_int_storage>::<unnamed>.wide_int_storage::val[2]))’ may be used uninitialized -Werror=maybe-uninitialized] 206 | ret = alloca_type_and_limit (ALLOCA_OK); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../gcc/gimple-ssa-warn-alloca.c: In member function ‘virtual unsigned int pass_walloca::execute(function*)’: ../../gcc/gimple-ssa-warn-alloca.c:200:32: note: ‘ret’ declared here 200 | struct alloca_type_and_limit ret = alloca_type_and_limit (ALLOCA_OK); | ^~~ In function ‘alloca_type_and_limit alloca_call_type(range_query&, gimple*, bool ’, inlined from ‘virtual unsigned int pass_walloca::execute(function*)’ at ../../gcc/gimple-ssa-warn-alloca.c:295:25: ../../gcc/gimple-ssa-warn-alloca.c:206:13: error: ‘*(unsigned int*)((char*)&ret + offsetof(alloca_type_and_limit, alloca_type_and_limit::limit.generic_wide_int<wide_int_storage>::<unnamed>.wide_int_storage::len))’ may be used uninitialized [-Werror=maybe-uninitialized] 206 | ret = alloca_type_and_limit (ALLOCA_OK); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../gcc/gimple-ssa-warn-alloca.c: In member function ‘virtual unsigned int pass_walloca::execute(function*)’: ../../gcc/gimple-ssa-warn-alloca.c:200:32: note: ‘ret’ declared here 200 | struct alloca_type_and_limit ret = alloca_type_and_limit (ALLOCA_OK); | ^~~ In function ‘alloca_type_and_limit alloca_call_type(range_query&, gimple*, bool ’, inlined from ‘virtual unsigned int pass_walloca::execute(function*)’ at ../../gcc/gimple-ssa-warn-alloca.c:295:25: ../../gcc/gimple-ssa-warn-alloca.c:206:13: error: ‘*(unsigned int*)((char*)&ret + offsetof(alloca_type_and_limit, alloca_type_and_limit::limit.generic_wide_int<wide_int_storage>::<unnamed>.wide_int_storage::precision))’ may be used uninitialized [-Werror=maybe-uninitialized] 206 | ret = alloca_type_and_limit (ALLOCA_OK); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../gcc/gimple-ssa-warn-alloca.c: In member function ‘virtual unsigned int pass_walloca::execute(function*)’: ../../gcc/gimple-ssa-warn-alloca.c:200:32: note: ‘ret’ declared here 200 | struct alloca_type_and_limit ret = alloca_type_and_limit (ALLOCA_OK); | ^~~ cc1plus: all warnings being treated as errors make[3]: *** [Makefile:1142: gimple-ssa-warn-alloca.o] Error 1 Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."