This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/57149] [4.8/4.9 Regression] wrong -Wmaybe-uninitialized warning with -Os
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 07 May 2013 07:00:58 +0000
- Subject: [Bug tree-optimization/57149] [4.8/4.9 Regression] wrong -Wmaybe-uninitialized warning with -Os
- Auto-submitted: auto-generated
- References: <bug-57149-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57149
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-05-07 07:00:58 UTC ---
The difference in *.uninit before/after that commit is small, just:
@@ -78,7 +79,7 @@ fn4 (struct F * x, unsigned int k)
goto <bb 7>;
<bb 7>:
- # retval_25 = PHI <0(3), retval_26(6)>
+ # err_25 = PHI <0(3), retval_26(6)>
_12 = y_9->f;
if (_12 == 0)
goto <bb 9>;
@@ -89,17 +90,17 @@ fn4 (struct F * x, unsigned int k)
goto <bb 13>;
<bb 9>:
- if (retval_25 > 0)
+ if (err_25 > 0)
goto <bb 10>;
else
goto <bb 11>;
<bb 10>:
- retval_14 = fn0 ();
+ err_14 = fn0 ();
<bb 11>:
- # retval_2 = PHI <retval_25(9), retval_14(10)>
- if (retval_2 < 0)
+ # err_2 = PHI <err_25(9), err_14(10)>
+ if (err_2 < 0)
goto <bb 12>;
else
goto <bb 8>;
and in both cases there is
# retval_26 = PHI <retval_27(D)(4), retval_21(5)>
that is the reason for the warning. The important thing is that the retval
decl has TREE_NO_WARNING set (because of the retval = retval uninit warning
suppression), while err doesn't.
Trying a patch not to consider TREE_NO_WARNING SSA_NAME_VARs
ssa_undefined_value_p when inside of tree-ssa-uninit.c now.