This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/69726] [6 Regression] Bogus warnings with -O3 -Wuninitialized because dead code after if-conversion
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 09 Feb 2016 09:46:35 +0000
- Subject: [Bug tree-optimization/69726] [6 Regression] Bogus warnings with -O3 -Wuninitialized because dead code after if-conversion
- Auto-submitted: auto-generated
- References: <bug-69726-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69726
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
It solved itself with
2016-02-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/69719
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
Properly use absolute of the difference of the two offsets to
compare or adjust the segment length.
and no longer vectorizing (too many versioning for alias checks - another
missed optimization).
The following patch would have avoided the warning:
Index: gcc/tree-ssa-uninit.c
===================================================================
--- gcc/tree-ssa-uninit.c (revision 233239)
+++ gcc/tree-ssa-uninit.c (working copy)
@@ -231,6 +231,24 @@ warn_uninitialized_vars (bool warn_possi
|| is_global_var (base))
continue;
+ /* Do not confuse ourselves with dead code. See PR69726. */
+ bool dont_warn = false;
+ gimple *use_stmt = stmt;
+ use_operand_p use_p;
+ tree lhs;
+ do
+ {
+ lhs = gimple_assign_lhs (use_stmt);
+ if (TREE_CODE (lhs) != SSA_NAME)
+ break;
+ if (has_zero_uses (lhs))
+ {
+ dont_warn = true;
+ continue;
+ }
+ }
+ while (single_imm_use (lhs, &use_p, &use_stmt));
+
if (always_executed)
warn_uninit (OPT_Wuninitialized, use,
gimple_assign_rhs1 (stmt), base,