diff options
author | Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> | 2022-09-15 08:59:30 +0200 |
---|---|---|
committer | Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> | 2022-09-19 13:06:58 +0200 |
commit | 6efc494a24bb423f1f9ef8dbdc65ca189072eb8d (patch) | |
tree | e4bbfa48e7afa2e937677bbd618a8ffea4957434 | |
parent | 4637a1d293c978816ad622ba33e3a32a78640edd (diff) | |
download | gcc-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.cc | 17 |
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"); } } |