re PR target/80003 (i386.c: %s placeholder is no semantic grammar unit)

PR target/80003
	* config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
	doesn't start with a capital letter and doesn't end with a dot.
	(ix86_function_arg_boundary): Make sure diagnostics doesn't start
	with a capital letter.
	(ix86_mangle_function_version_assembler_name): Likewise.
	(ix86_generate_version_dispatcher_body): Likewise.
	(fold_builtin_cpu): Likewise.
	(get_builtin_code_for_version): Likewise.  Remove extraneous space.
	(ix86_handle_interrupt_attribute): Make the diagnostics easier for
	translators, wrap full type name in %qs.

	* gcc.target/i386/pr68657.c: Adjust expected diagnostics wording.
	* gcc.target/i386/interrupt-6.c: Likewise.
	* g++.target/i386/pr57362.C: Adjust capitalization in dg-prune-output.

From-SVN: r269471
This commit is contained in:
Jakub Jelinek 2019-03-07 22:32:21 +01:00 committed by Jakub Jelinek
parent c04d666671
commit 74d1f65102
6 changed files with 39 additions and 19 deletions

View File

@ -1,5 +1,17 @@
2019-03-07 Jakub Jelinek <jakub@redhat.com>
PR target/80003
* config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
doesn't start with a capital letter and doesn't end with a dot.
(ix86_function_arg_boundary): Make sure diagnostics doesn't start
with a capital letter.
(ix86_mangle_function_version_assembler_name): Likewise.
(ix86_generate_version_dispatcher_body): Likewise.
(fold_builtin_cpu): Likewise.
(get_builtin_code_for_version): Likewise. Remove extraneous space.
(ix86_handle_interrupt_attribute): Make the diagnostics easier for
translators, wrap full type name in %qs.
PR translation/79999
* gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
depend clause with source (or sink) modifier.

View File

@ -5800,8 +5800,8 @@ ix86_set_func_type (tree fndecl)
/* Only dwarf2out.c can handle -WORD(AP) as a pointer argument. */
if (write_symbols != NO_DEBUG && write_symbols != DWARF2_DEBUG)
sorry ("Only DWARF debug format is supported for interrupt "
"service routine.");
sorry ("only DWARF debug format is supported for interrupt "
"service routine");
}
else
{
@ -9069,7 +9069,7 @@ ix86_function_arg_boundary (machine_mode mode, const_tree type)
{
warned = true;
inform (input_location,
"The ABI for passing parameters with %d-byte"
"the ABI for passing parameters with %d-byte"
" alignment has changed in GCC 4.6",
align / BITS_PER_UNIT);
}
@ -32116,7 +32116,7 @@ get_builtin_code_for_version (tree decl, tree *predicate_list)
if (predicate_list && arg_str == NULL)
{
error_at (DECL_SOURCE_LOCATION (decl),
"No dispatcher found for the versioning attributes");
"no dispatcher found for the versioning attributes");
return 0;
}
@ -32166,7 +32166,7 @@ get_builtin_code_for_version (tree decl, tree *predicate_list)
if (predicate_list && i == NUM_FEATURES)
{
error_at (DECL_SOURCE_LOCATION (decl),
"No dispatcher found for %s", token);
"no dispatcher found for %s", token);
return 0;
}
token = strtok (NULL, ",");
@ -32176,7 +32176,7 @@ get_builtin_code_for_version (tree decl, tree *predicate_list)
if (predicate_list && predicate_chain == NULL_TREE)
{
error_at (DECL_SOURCE_LOCATION (decl),
"No dispatcher found for the versioning attributes : %s",
"no dispatcher found for the versioning attributes: %s",
attrs_str);
return 0;
}
@ -32338,12 +32338,12 @@ ix86_mangle_function_version_assembler_name (tree decl, tree id)
&& lookup_attribute ("gnu_inline",
DECL_ATTRIBUTES (decl)))
error_at (DECL_SOURCE_LOCATION (decl),
"Function versions cannot be marked as gnu_inline,"
"function versions cannot be marked as gnu_inline,"
" bodies have to be generated");
if (DECL_VIRTUAL_P (decl)
|| DECL_VINDEX (decl))
sorry ("Virtual function multiversioning not supported");
sorry ("virtual function multiversioning not supported");
version_attr = lookup_attribute ("target", DECL_ATTRIBUTES (decl));
@ -32619,7 +32619,7 @@ ix86_generate_version_dispatcher_body (void *node_p)
virtual methods in base classes but are not explicitly marked as
virtual. */
if (DECL_VINDEX (versn->decl))
sorry ("Virtual function multiversioning not supported");
sorry ("virtual function multiversioning not supported");
fn_ver_vec.safe_push (versn->decl);
}
@ -32898,7 +32898,7 @@ fold_builtin_cpu (tree fndecl, tree *args)
STRING_CST. */
if (!EXPR_P (param_string_cst))
{
error ("Parameter to builtin must be a string constant or literal");
error ("parameter to builtin must be a string constant or literal");
return integer_zero_node;
}
param_string_cst = TREE_OPERAND (EXPR_CHECK (param_string_cst), 0);
@ -32923,7 +32923,7 @@ fold_builtin_cpu (tree fndecl, tree *args)
if (i == NUM_ARCH_NAMES)
{
error ("Parameter to builtin not valid: %s",
error ("parameter to builtin not valid: %s",
TREE_STRING_POINTER (param_string_cst));
return integer_zero_node;
}
@ -32973,7 +32973,7 @@ fold_builtin_cpu (tree fndecl, tree *args)
if (i == NUM_ISA_NAMES)
{
error ("Parameter to builtin not valid: %s",
error ("parameter to builtin not valid: %s",
TREE_STRING_POINTER (param_string_cst));
return integer_zero_node;
}
@ -41417,11 +41417,12 @@ ix86_handle_interrupt_attribute (tree *node, tree, tree, int, bool *)
{
if (TREE_CODE (TREE_VALUE (current_arg_type)) != INTEGER_TYPE
|| TYPE_MODE (TREE_VALUE (current_arg_type)) != word_mode)
error ("interrupt service routine should have unsigned %s"
"int as the second argument",
error ("interrupt service routine should have %qs "
"as the second argument",
TARGET_64BIT
? (TARGET_X32 ? "long long " : "long ")
: "");
? (TARGET_X32 ? "unsigned long long int"
: "unsigned long int")
: "unsigned int");
}
nargs++;
current_arg_type = TREE_CHAIN (current_arg_type);

View File

@ -1,3 +1,10 @@
2019-03-07 Jakub Jelinek <jakub@redhat.com>
PR target/80003
* gcc.target/i386/pr68657.c: Adjust expected diagnostics wording.
* gcc.target/i386/interrupt-6.c: Likewise.
* g++.target/i386/pr57362.C: Adjust capitalization in dg-prune-output.
2019-03-07 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84518

View File

@ -199,4 +199,4 @@ int foo(void) { return 1; }
/* { dg-prune-output "attribute.* is unknown" } */
/* { dg-prune-output "missing 'target' attribute*" } */
/* { dg-prune-output "redefinition of 'int foo" } */
/* { dg-prune-output "No dispatcher found for" } */
/* { dg-prune-output "no dispatcher found for" } */

View File

@ -8,7 +8,7 @@ extern int error;
__attribute__((interrupt))
void
fn1 (void *p, short error_code)
{ /* { dg-error "interrupt service routine should have unsigned \(long long |long |\)int as the second argument" } */
{ /* { dg-error "interrupt service routine should have 'unsigned \(long long |long |\)int' as the second argument" } */
}
__attribute__((interrupt))

View File

@ -4,7 +4,7 @@
typedef int V __attribute__((vector_size (64)));
void foo (V x, V *y) { /* { dg-error "AVX512F vector argument without AVX512F enabled" } */
/* { dg-message "The ABI for passing parameters with 64-byte alignment has changed" "" { target *-*-* } .-1 } */
/* { dg-message "the ABI for passing parameters with 64-byte alignment has changed" "" { target *-*-* } .-1 } */
*y = x;
}