This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Workaround -Wmaybe-uninitialized false positives during profiledbootstrap
- From: Jakub Jelinek <jakub at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 15 Jan 2015 12:10:38 +0100
- Subject: [PATCH] Workaround -Wmaybe-uninitialized false positives during profiledbootstrap
- Authentication-results: sourceware.org; auth=none
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
Hi!
I ran into -Werror=maybe-uninitialized errors during profiledbootstrap
(../configure --enable-languages=c,c++ --enable-checking=release;
make -j16 profiledboostrap) before I hit a miscompilation I'm going to file.
Is this ok for trunk, or do we want to work around them differently?
2015-01-14 Jakub Jelinek <jakub@redhat.com>
* gengtype.c (create_user_defined_type): Workaround
-Wmaybe-uninitialized false positives.
* cse.c (fold_rtx): Likewise.
* loop-invariant.c (gain_for_invariant): Likewise.
--- gcc/gengtype.c.jj 2015-01-14 17:46:50.000000000 +0100
+++ gcc/gengtype.c 2015-01-14 18:15:19.285494736 +0100
@@ -611,7 +611,7 @@ create_user_defined_type (const char *ty
comma-separated list of strings, implicitly assumed to
be type names, potentially with "*" characters. */
char *arg = open_bracket + 1;
- char *next;
+ char *next = NULL;
char *type_id = strtoken (arg, ",>", &next);
pair_p fields = 0;
while (type_id)
--- gcc/cse.c.jj 2015-01-14 17:49:01.000000000 +0100
+++ gcc/cse.c 2015-01-14 19:02:40.638325329 +0100
@@ -3093,8 +3093,8 @@ fold_rtx (rtx x, rtx_insn *insn)
int changed = 0;
/* Operands of X. */
- rtx folded_arg0;
- rtx folded_arg1;
+ rtx folded_arg0 = NULL_RTX;
+ rtx folded_arg1 = NULL_RTX;
/* Constant equivalents of first three operands of X;
0 when no such equivalent is known. */
--- gcc/loop-invariant.c.jj 2015-01-14 17:50:10.000000000 +0100
+++ gcc/loop-invariant.c 2015-01-14 21:13:23.780857707 +0100
@@ -1268,7 +1268,7 @@ gain_for_invariant (struct invariant *in
bool speed, bool call_p)
{
int comp_cost, size_cost;
- enum reg_class cl;
+ enum reg_class cl = NO_REGS;
int ret;
actual_stamp++;
Jakub