aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2022-12-19 15:00:47 +0100
committerJakub Jelinek <jakub@redhat.com>2022-12-19 15:00:47 +0100
commitde2b8c41b872c8638d70dff880ebe8e82628af09 (patch)
tree3722621d820adb8a237b63af551c53d5d5aadeb1
parent158b18ffa510105b239bd2f4a253ed33e21fcebc (diff)
downloadgcc-de2b8c41b872c8638d70dff880ebe8e82628af09.zip
gcc-de2b8c41b872c8638d70dff880ebe8e82628af09.tar.gz
gcc-de2b8c41b872c8638d70dff880ebe8e82628af09.tar.bz2
modula2: Don't treat % in Modula 2 messages specially
On top of the just posted patch, this patch makes sure that any % chars in message strings aren't treated as format chars. None of these functions take variable number of arguments, so for most of format specifiers there is nowhere to take arguments from, it is true that a couple of format specifiers don't take any arguments - %%, %m, %<, %>, %' - so it is actually possible to use them, but one needs to verify that no other are emitted and that what should be printed as % is really emitted as %%. If the FE does that, then please ignore this patch, otherwise I think it is safer to do this. 2022-12-19 Jakub Jelinek <jakub@redhat.com> * gm2-gcc/m2linemap.cc (m2linemap_ErrorAt, m2linemap_ErrorAtf, m2linemap_WarningAtf, m2linemap_NoteAtf, m2linemap_internal_error): Call functions with "%s", message rather than just message, so that % chars in message aren't treated as format specifiers.
-rw-r--r--gcc/m2/gm2-gcc/m2linemap.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/m2/gm2-gcc/m2linemap.cc b/gcc/m2/gm2-gcc/m2linemap.cc
index c6189b7..ba09c0b 100644
--- a/gcc/m2/gm2-gcc/m2linemap.cc
+++ b/gcc/m2/gm2-gcc/m2linemap.cc
@@ -177,7 +177,7 @@ EXTERN
void
m2linemap_ErrorAt (location_t location, char *message)
{
- error_at (location, message);
+ error_at (location, "%s", message);
}
/* m2linemap_ErrorAtf - wraps up an error message. */
@@ -198,7 +198,7 @@ m2linemap_ErrorAtf_1 (location_t location, const char *message, ...)
void
m2linemap_ErrorAtf (location_t location, const char *message)
{
- m2linemap_ErrorAtf_1 (location, message);
+ m2linemap_ErrorAtf_1 (location, "%s", message);
}
/* m2linemap_WarningAtf - wraps up a warning message. */
@@ -219,7 +219,7 @@ m2linemap_WarningAtf_1 (location_t location, const char *message, ...)
void
m2linemap_WarningAtf (location_t location, const char *message)
{
- m2linemap_WarningAtf_1 (location, message);
+ m2linemap_WarningAtf_1 (location, "%s", message);
}
/* m2linemap_NoteAtf - wraps up a note message. */
@@ -240,7 +240,7 @@ m2linemap_NoteAtf_1 (location_t location, const char *message, ...)
void
m2linemap_NoteAtf (location_t location, const char *message)
{
- m2linemap_NoteAtf_1 (location, message);
+ m2linemap_NoteAtf_1 (location, "%s", message);
}
/* m2linemap_internal_error - allow Modula-2 to use the GCC internal error. */
@@ -248,7 +248,7 @@ m2linemap_NoteAtf (location_t location, const char *message)
void
m2linemap_internal_error (const char *message)
{
- internal_error (message);
+ internal_error ("%s", message);
}
/* UnknownLocation - return the predefined location representing an