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.

Reply via email to