This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix some narrowing conversion issues
- From: Jakub Jelinek <jakub at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 27 Jun 2017 07:48:24 +0200
- Subject: [PATCH] Fix some narrowing conversion issues
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=jakub at redhat dot com
- Dkim-filter: OpenDKIM Filter v2.11.0 mx1.redhat.com DCCEE80C0D
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com DCCEE80C0D
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
Hi!
We build gcc with -Wno-narrowing, for some reason I ended up with old
Makefile without that and discovered a couple of -Wnarrowing errors.
This patch fixes them. Bootstrapped/regtested on x86_64-linux (i686-linux
fails to bootstrap with/without this patch), ok for trunk?
2017-06-27 Jakub Jelinek <jakub@redhat.com>
* predict.c (test_prediction_value_range): Use -1U instead of -1
to avoid narrowing conversion warning.
* dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
to avoid narrowing conversion warning.
* opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
-1.
* optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
--- gcc/predict.c.jj 2017-06-21 16:53:37.000000000 +0200
+++ gcc/predict.c 2017-06-26 18:39:33.640190953 +0200
@@ -4031,7 +4031,7 @@ test_prediction_value_range ()
{
branch_predictor predictors[] = {
#include "predict.def"
- {NULL, -1}
+ {NULL, -1U}
};
for (unsigned i = 0; predictors[i].name != NULL; i++)
--- gcc/dumpfile.c.jj 2017-06-19 08:27:22.000000000 +0200
+++ gcc/dumpfile.c 2017-06-26 18:38:44.383762664 +0200
@@ -110,9 +110,9 @@ static const struct dump_option_value_in
{"missed", MSG_MISSED_OPTIMIZATION},
{"note", MSG_NOTE},
{"optall", MSG_ALL},
- {"all", ~(TDF_RAW | TDF_SLIM | TDF_LINENO | TDF_GRAPH | TDF_STMTADDR
- | TDF_RHS_ONLY | TDF_NOUID | TDF_ENUMERATE_LOCALS | TDF_SCEV
- | TDF_GIMPLE)},
+ {"all", dump_flags_t (~(TDF_RAW | TDF_SLIM | TDF_LINENO | TDF_GRAPH
+ | TDF_STMTADDR | TDF_RHS_ONLY | TDF_NOUID
+ | TDF_ENUMERATE_LOCALS | TDF_SCEV | TDF_GIMPLE))},
{NULL, 0}
};
--- gcc/opt-functions.awk.jj 2017-01-08 17:41:19.000000000 +0100
+++ gcc/opt-functions.awk 2017-06-26 18:54:15.174940306 +0200
@@ -275,7 +275,7 @@ function var_ref(name, flags)
return "offsetof (struct gcc_options, x_target_flags)"
if (opt_args("InverseMask", flags) != "")
return "offsetof (struct gcc_options, x_target_flags)"
- return "-1"
+ return "(unsigned short) -1"
}
# Given the option called NAME return a sanitized version of its name.
--- gcc/optc-gen.awk.jj 2017-02-25 00:15:02.000000000 +0100
+++ gcc/optc-gen.awk 2017-06-26 18:55:41.613928361 +0200
@@ -336,7 +336,7 @@ for (i = 0; i < n_opts; i++) {
alias_posarg = nth_arg(1, alias_arg)
alias_negarg = nth_arg(2, alias_arg)
- if (var_ref(opts[i], flags[i]) != "-1")
+ if (var_ref(opts[i], flags[i]) != "(unsigned short) -1")
print "#error Alias setting variable"
if (alias_posarg != "" && alias_negarg == "") {
Jakub