https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91825
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|bootstrap |tree-optimization Summary|Top-of-tree GCC does not |[10 regression] Bogus |bootstrap (uninitialized |-Wmaybe-uninitialized with |warning) |r275744 breaks bootstrap --- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> --- OK, I'm confident now that this is not a problem with the front-end output. The only difference from r275744 is that some indexing expressions are represented in gimple as ar[idx] rather than *(&ar+idx), e.g. _119 = scalar_int_mode::operator machine_mode (&int_mode_to); - _120 = (sizetype) _119; - _121 = &mode_class + _120; - _122 = *_121; - if (_122 == 2) goto <D>; else goto <D>; + _120 = (long int) _119; + _121 = mode_class[_120]; + if (_121 == 2) goto <D>; else goto <D>; By the time we get to the uninit pass I see some differences in the gimple, such as references to 'cstore' + # cstore_2229 = PHI <mode_69(90), mode_69(85), int_mode_87(D)(82), mode_69(93 ), mode_69(113)> ... + # cstore_2844 = PHI <mode_69(47), cstore_2229(100)> ... - mode.96_671 = (int) mode_69; + mode.96_671 = (int) cstore_2844; It's not clear to me how this affects uninit. I can wait to reapply r275744 until I'm ready to commit the operator<=> patch, but it would be good if someone could fix the tree-ssa issue before then.