> It broke GCC bootstrap: > > https://gcc.gnu.org/pipermail/gcc-regression/2021-November/075676.html > > In file included from ../../src-master/gcc/coretypes.h:474, > from ../../src-master/gcc/expmed.c:26: > In function ‘poly_uint16 mode_to_bytes(machine_mode)’, > inlined from ‘typename if_nonpoly<typename > T::measurement_type>::type GET_MODE_SIZE(const T&) [with T = > scalar_int_mode]’ at ../../src-master/gcc/machmode.h:647:24, > inlined from ‘rtx_def* emit_store_flag_1(rtx, rtx_code, rtx, rtx, > machine_mode, int, int, machine_mode)’ at > ../../src-master/gcc/expmed.c:5723:56: > ../../src-master/gcc/machmode.h:550:49: warning: ‘*(unsigned > int*)((char*)&int_mode + offsetof(scalar_int_mode, > scalar_int_mode::m_mode))’ may be used uninitialized in this function > [-Wmaybe-uninitialized] > 550 | ? mode_size_inline (mode) : mode_size[mode]); > | ^~~~ > ../../src-master/gcc/expmed.c: In function ‘rtx_def* > emit_store_flag_1(rtx, rtx_code, rtx, rtx, machine_mode, int, int, > machine_mode)’: > ../../src-master/gcc/expmed.c:5652:19: note: ‘*(unsigned > int*)((char*)&int_mode + offsetof(scalar_int_mode, > scalar_int_mode::m_mode))’ was declared here > 5652 | scalar_int_mode int_mode; > | ^~~~~~~~
I seem to be able to bootstrap normally, so perhaps it is related to --with-arch=native. I will try with that config. However looking at the code scalar_int_mode int_mode; if (is_int_mode (mode, &int_mode) && GET_MODE_BITSIZE (int_mode) == BITS_PER_WORD * 2 the int_mode is indeed set conditionally and it is possible that this may trigger false positive. I will however try again that we get same modref summaries before and after patch. There is PR103040 that shows wrong code bug in my earlier modref change I am testinf fix for, but if that is the culprint it should have reproduced earlier than with this commit. Honza