aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reginfo.c38
2 files changed, 38 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fc31229..542d959 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-11-11 Joseph Myers <joseph@codesourcery.com>
+
+ * reginfo.c (fix_register): Avoid inserting English word in
+ diagnostic sentence. Use %qs for quoting and %'.
+
2010-11-11 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/driver-i386.c (host_detect_local_cpu): Support
diff --git a/gcc/reginfo.c b/gcc/reginfo.c
index c8192de..65243cb 100644
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -770,12 +770,40 @@ fix_register (const char *name, int fixed, int call_used)
)
&& (fixed == 0 || call_used == 0))
{
- static const char * const what_option[2][2] = {
- { "call-saved", "call-used" },
- { "no-such-option", "fixed" }};
+ switch (fixed)
+ {
+ case 0:
+ switch (call_used)
+ {
+ case 0:
+ error ("can%'t use %qs as a call-saved register", name);
+ break;
+
+ case 1:
+ error ("can%'t use %qs as a call-used register", name);
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
+ break;
- error ("can't use '%s' as a %s register", name,
- what_option[fixed][call_used]);
+ case 1:
+ switch (call_used)
+ {
+ case 1:
+ error ("can%'t use %qs as a fixed register", name);
+ break;
+
+ case 0:
+ default:
+ gcc_unreachable ();
+ }
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
}
else
{