This patch has no functional changes; it merely cleans up some warning
messages.
Thanks to Jan-Benedict for pointing them out, off-list.
Andrew
amdgcn: Silence warnings in gcn.c
This fixes a few cases of "unquoted identifier or keyword", one "spurious
trailing punctuation sequence", and a "may be used uninitialized".
gcc/ChangeLog:
* config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
%> quote markers to error messages.
(gcn_goacc_validate_dims): Likewise.
(gcn_conditional_register_usage): Remove exclaimation mark from error
message.
(gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.
diff --git a/gcc/config/gcn/gcn.c b/gcc/config/gcn/gcn.c
index e8bb0b63756..22da37e2532 100644
--- a/gcc/config/gcn/gcn.c
+++ b/gcc/config/gcn/gcn.c
@@ -228,7 +228,7 @@ gcn_parse_amdgpu_hsa_kernel_attribute (struct gcn_kernel_args *args,
const char *str;
if (TREE_CODE (TREE_VALUE (list)) != STRING_CST)
{
- error ("amdgpu_hsa_kernel attribute requires string constant "
+ error ("% attribute requires string constant "
"arguments");
break;
}
@@ -241,13 +241,14 @@ gcn_parse_amdgpu_hsa_kernel_attribute (struct gcn_kernel_args *args,
}
if (a == GCN_KERNEL_ARG_TYPES)
{
- error ("unknown specifier %s in amdgpu_hsa_kernel attribute", str);
+ error ("unknown specifier %qs in %",
+ str);
err = true;
break;
}
if (args->requested & (1 << a))
{
- error ("duplicated parameter specifier %s in amdgpu_hsa_kernel "
+ error ("duplicated parameter specifier %qs in % "
"attribute", str);
err = true;
break;
@@ -2102,7 +2103,7 @@ gcn_conditional_register_usage (void)
/* Requesting a set of args different from the default violates the ABI. */
if (!leaf_function_p ())
warning (0, "A non-default set of initial values has been requested, "
- "which violates the ABI!");
+ "which violates the ABI");
for (int i = SGPR_REGNO (0); i < SGPR_REGNO (14); i++)
fixed_regs[i] = 0;
@@ -3983,6 +3984,8 @@ gcn_vectorize_vec_perm_const (machine_mode vmode, rtx dst,
unsigned int perm[64];
for (unsigned int i = 0; i < nelt; ++i)
perm[i] = sel[i] & (2 * nelt - 1);
+ for (unsigned int i = nelt; i < 64; ++i)
+perm[i] = 0;
src0 = force_reg (vmode, src0);
src1 = force_reg (vmode, src1);
@@ -4882,8 +4885,8 @@ gcn_goacc_validate_dims (tree decl, int dims[], int fn_level,
warning_at (decl ? DECL_SOURCE_LOCATION (decl) : UNKNOWN_LOCATION,
OPT_Wopenacc_dims,
(dims[GOMP_DIM_VECTOR]
- ? G_("using vector_length (64), ignoring %d")
- : G_("using vector_length (64), "
+ ? G_("using %, ignoring %d")
+ : G_("using %, "
"ignoring runtime setting")),
dims[GOMP_DIM_VECTOR]);
dims[GOMP_DIM_VECTOR] = 1;
@@ -4895,7 +4898,7 @@ gcn_goacc_validate_dims (tree decl, int dims[], int fn_level,
{
warning_at (decl ? DECL_SOURCE_LOCATION (decl) : UNKNOWN_LOCATION,
OPT_Wopenacc_dims,
- "using num_workers (%d), ignoring %d",
+ "using %, ignoring %d",
max_workers, dims[GOMP_DIM_WORKER]);
dims[GOMP_DIM_WORKER] = max_workers;
changed = true;