aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn SVENSSON <torbjorn.svensson@foss.st.com>2022-09-15 08:59:30 +0200
committerTorbjörn SVENSSON <torbjorn.svensson@foss.st.com>2022-09-19 13:06:58 +0200
commit6efc494a24bb423f1f9ef8dbdc65ca189072eb8d (patch)
treee4bbfa48e7afa2e937677bbd618a8ffea4957434
parent4637a1d293c978816ad622ba33e3a32a78640edd (diff)
downloadgcc-6efc494a24bb423f1f9ef8dbdc65ca189072eb8d.zip
gcc-6efc494a24bb423f1f9ef8dbdc65ca189072eb8d.tar.gz
gcc-6efc494a24bb423f1f9ef8dbdc65ca189072eb8d.tar.bz2
Improve sorry message for -fzero-call-used-regs
When the -fzero-call-used-regs command line option is used with an unsupported value, indicate that it's a value problem instead of an option problem. Without the patch, the error is: In file included from gcc/testsuite/c-c++-common/zero-scratch-regs-8.c:5: gcc/testsuite/c-c++-common/zero-scratch-regs-1.c: In function 'foo': gcc/testsuite/c-c++-common/zero-scratch-regs-1.c:10:1: sorry, unimplemented: '-fzero-call-used-regs' not supported on this target 10 | } | ^ With the patch, the error would be like this: In file included from gcc/testsuite/c-c++-common/zero-scratch-regs-8.c:5: gcc/testsuite/c-c++-common/zero-scratch-regs-1.c: In function 'foo': gcc/testsuite/c-c++-common/zero-scratch-regs-1.c:10:1: sorry, unimplemented: argument 'all-arg' is not supported for '-fzero-call-used-regs' on this target 10 | } | ^ 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> gcc/ChangeLog: * targhooks.cc (default_zero_call_used_regs): Improve sorry message. Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
-rw-r--r--gcc/targhooks.cc17
1 files changed, 15 insertions, 2 deletions
diff --git a/gcc/targhooks.cc b/gcc/targhooks.cc
index b15ae19..d17d393 100644
--- a/gcc/targhooks.cc
+++ b/gcc/targhooks.cc
@@ -93,6 +93,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "cfgloop.h"
#include "tree-vectorizer.h"
+#include "options.h"
bool
default_legitimate_address_p (machine_mode mode ATTRIBUTE_UNUSED,
@@ -1181,9 +1182,21 @@ default_zero_call_used_regs (HARD_REG_SET need_zeroed_hardregs)
static bool issued_error;
if (!issued_error)
{
+ const char *name = NULL;
+ for (unsigned int i = 0; zero_call_used_regs_opts[i].name != NULL;
+ ++i)
+ if (flag_zero_call_used_regs == zero_call_used_regs_opts[i].flag)
+ {
+ name = zero_call_used_regs_opts[i].name;
+ break;
+ }
+
+ if (!name)
+ name = "";
+
issued_error = true;
- sorry ("%qs not supported on this target",
- "-fzero-call-used-regs");
+ sorry ("argument %qs is not supported for %qs on this target",
+ name, "-fzero-call-used-regs");
}
}