rs6000: Clarify overloaded builtin diagnostic
Commit Message
Hi!
When a built-in function required by an overloaded function name is not
currently enabled, the diagnostic message is not as clear as it should be.
Saying that one built-in "requires" another is somewhat misleading. It is
better to explicitly state that the overloaded builtin is implemented by the
missing builtin, so the user knows that the previous error message for the
implementing builtin is because of the overload relationship.
This patch adjusts the informational diagnostic for both the original support
and the new builtin support. This doesn't affect the test suite, since we
don't test for "note" diagnostics anywhere.
Bootstrapped and tested on powerpc64le-linux-gnu with no regressions. Is
this okay for trunk?
Thanks!
Bill
2021-11-23 Bill Schmidt <wschmidt@linux.ibm.com>
gcc/
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Clarify diagnostic.
(altivec_resolve_new_overloaded_builtin): Likewise.
---
gcc/config/rs6000/rs6000-c.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Comments
Hi!
On Tue, Nov 23, 2021 at 12:40:45PM -0600, Bill Schmidt wrote:
> When a built-in function required by an overloaded function name is not
> currently enabled, the diagnostic message is not as clear as it should be.
> Saying that one built-in "requires" another is somewhat misleading. It is
> better to explicitly state that the overloaded builtin is implemented by the
> missing builtin, so the user knows that the previous error message for the
> implementing builtin is because of the overload relationship.
>
> This patch adjusts the informational diagnostic for both the original support
> and the new builtin support. This doesn't affect the test suite, since we
> don't test for "note" diagnostics anywhere.
Thanks. And saying "is implemented by __builtin_xyz" where that builtin
has not the most obvious name nor is even documented is a lot better
than saying that builtin is required :-)
> gcc/
> * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
> Clarify diagnostic.
> (altivec_resolve_new_overloaded_builtin): Likewise.
Please don't break changelog lines early, especially not after a colon.
It looks like something might be missing (and interrupts the flow of
reading anyway).
Okay for trunk. Thanks!
Segher
@@ -1946,7 +1946,8 @@ altivec_resolve_overloaded_builtin (location_t loc, tree fndecl,
non-overloaded function has already been issued. Add
clarification of the previous message. */
rich_location richloc (line_table, input_location);
- inform (&richloc, "builtin %qs requires builtin %qs",
+ inform (&richloc,
+ "overloaded builtin %qs is implemented by builtin %qs",
name, internal_name);
}
else
@@ -2992,7 +2993,8 @@ altivec_resolve_new_overloaded_builtin (location_t loc, tree fndecl,
non-overloaded function has already been issued. Add
clarification of the previous message. */
rich_location richloc (line_table, input_location);
- inform (&richloc, "builtin %qs requires builtin %qs",
+ inform (&richloc,
+ "overloaded builtin %qs is implemented by builtin %qs",
name, internal_name);
}
else