* [PATCH] Diagnostic fixes for config/i386/i386.c (PR target/80003)
@ 2019-03-07 19:48 Jakub Jelinek
2019-03-07 21:22 ` Uros Bizjak
0 siblings, 1 reply; 2+ messages in thread
From: Jakub Jelinek @ 2019-03-07 19:48 UTC (permalink / raw)
To: Uros Bizjak; +Cc: gcc-patches
Hi!
The following patch fixes a couple of issues in i386.c diagnostics.
In particular, diagnostics emitted to the user (not in dump files)
should not start with a capital letter unless it is something that
starts with capital letter in a middle of a sentence, and should not end
with a period. The ix86_handle_interrupt_attribute hunk is also something
the translators requested, the wording has been composed in a weird way
from portions of a keyword in the message and portions from (untranslated)
strings, the change surrounds it with quotes and makes the whole type name
come from untranslated string literal.
Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
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.
* 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.
--- gcc/config/i386/i386.c.jj 2019-02-28 21:48:51.662326676 +0100
+++ gcc/config/i386/i386.c 2019-03-07 17:22:43.787842967 +0100
@@ -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
{
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,
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,
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,
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_n
&& 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 (v
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 *arg
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 *arg
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 *arg
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 *n
{
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);
--- gcc/testsuite/gcc.target/i386/pr68657.c.jj 2017-05-05 09:19:48.916719767 +0200
+++ gcc/testsuite/gcc.target/i386/pr68657.c 2019-03-07 18:35:13.568961336 +0100
@@ -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;
}
--- gcc/testsuite/gcc.target/i386/interrupt-6.c.jj 2016-06-03 21:25:13.165722883 +0200
+++ gcc/testsuite/gcc.target/i386/interrupt-6.c 2019-03-07 18:36:01.519179045 +0100
@@ -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))
--- gcc/testsuite/g++.target/i386/pr57362.C.jj 2018-11-20 21:39:05.211507660 +0100
+++ gcc/testsuite/g++.target/i386/pr57362.C 2019-03-07 18:37:48.892427289 +0100
@@ -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" } */
Jakub
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] Diagnostic fixes for config/i386/i386.c (PR target/80003)
2019-03-07 19:48 [PATCH] Diagnostic fixes for config/i386/i386.c (PR target/80003) Jakub Jelinek
@ 2019-03-07 21:22 ` Uros Bizjak
0 siblings, 0 replies; 2+ messages in thread
From: Uros Bizjak @ 2019-03-07 21:22 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: gcc-patches
On Thu, Mar 7, 2019 at 8:45 PM Jakub Jelinek <jakub@redhat.com> wrote:
>
> Hi!
>
> The following patch fixes a couple of issues in i386.c diagnostics.
>
> In particular, diagnostics emitted to the user (not in dump files)
> should not start with a capital letter unless it is something that
> starts with capital letter in a middle of a sentence, and should not end
> with a period. The ix86_handle_interrupt_attribute hunk is also something
> the translators requested, the wording has been composed in a weird way
> from portions of a keyword in the message and portions from (untranslated)
> strings, the change surrounds it with quotes and makes the whole type name
> come from untranslated string literal.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 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.
>
> * 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.
LGTM.
Thanks,
Uros.
> --- gcc/config/i386/i386.c.jj 2019-02-28 21:48:51.662326676 +0100
> +++ gcc/config/i386/i386.c 2019-03-07 17:22:43.787842967 +0100
> @@ -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
> {
> 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,
> 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,
> 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,
> 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_n
> && 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 (v
> 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 *arg
> 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 *arg
>
> 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 *arg
>
> 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 *n
> {
> 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);
> --- gcc/testsuite/gcc.target/i386/pr68657.c.jj 2017-05-05 09:19:48.916719767 +0200
> +++ gcc/testsuite/gcc.target/i386/pr68657.c 2019-03-07 18:35:13.568961336 +0100
> @@ -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;
> }
>
> --- gcc/testsuite/gcc.target/i386/interrupt-6.c.jj 2016-06-03 21:25:13.165722883 +0200
> +++ gcc/testsuite/gcc.target/i386/interrupt-6.c 2019-03-07 18:36:01.519179045 +0100
> @@ -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))
> --- gcc/testsuite/g++.target/i386/pr57362.C.jj 2018-11-20 21:39:05.211507660 +0100
> +++ gcc/testsuite/g++.target/i386/pr57362.C 2019-03-07 18:37:48.892427289 +0100
> @@ -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" } */
>
> Jakub
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-03-07 21:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-07 19:48 [PATCH] Diagnostic fixes for config/i386/i386.c (PR target/80003) Jakub Jelinek
2019-03-07 21:22 ` Uros Bizjak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).