[gcc r11-5095] preprocessor: Fix profiled bootstrap warning [pr97858]

Nathan Sidwell nathan@gcc.gnu.org
Tue Nov 17 14:47:27 GMT 2020


https://gcc.gnu.org/g:d7ab349c44f30bed90b03b45865f6c7c5de1dfd8

commit r11-5095-gd7ab349c44f30bed90b03b45865f6c7c5de1dfd8
Author: Nathan Sidwell <nathan@acm.org>
Date:   Tue Nov 17 06:45:18 2020 -0800

    preprocessor: Fix profiled bootstrap warning [pr97858]
    
    As Jakub points out, we only ever pass a single variadic parm (if at
    all), so just an optional arg is fine.
    
            PR preprocessor/97858
            libcpp/
            * mkdeps.c (munge): Drop varadic args, we only ever use one.

Diff:
---
 libcpp/mkdeps.c | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/libcpp/mkdeps.c b/libcpp/mkdeps.c
index ea5f060c380..a989ed355fa 100644
--- a/libcpp/mkdeps.c
+++ b/libcpp/mkdeps.c
@@ -105,23 +105,20 @@ public:
   unsigned short quote_lwm;
 };
 
-/* Apply Make quoting to STR, TRAIL etc.  Note that it's not possible
-   to quote all such characters - e.g. \n, %, *, ?, [, \ (in some
+/* Apply Make quoting to STR, TRAIL.  Note that it's not possible to
+   quote all such characters - e.g. \n, %, *, ?, [, \ (in some
    contexts), and ~ are not properly handled.  It isn't possible to
    get this right in any current version of Make.  (??? Still true?
    Old comment referred to 3.76.1.)  */
 
 static const char *
-munge (const char *str, const char *trail = NULL, ...)
+munge (const char *str, const char *trail = nullptr)
 {
   static unsigned alloc;
   static char *buf;
   unsigned dst = 0;
-  va_list args;
-  if (trail)
-    va_start (args, trail);
 
-  for (bool first = true; str; first = false)
+  for (; str; str = trail, trail = nullptr)
     {
       unsigned slashes = 0;
       char c;
@@ -169,14 +166,7 @@ munge (const char *str, const char *trail = NULL, ...)
 
 	  buf[dst++] = c;
 	}
-
-      if (first)
-	str = trail;
-      else
-	str = va_arg (args, const char *);
     }
-  if (trail)
-    va_end (args);
 
   buf[dst] = 0;
   return buf;
@@ -332,7 +322,7 @@ make_write_name (const char *name, FILE *fp, unsigned col, unsigned colmax,
 		 bool quote = true, const char *trail = NULL)
 {
   if (quote)
-    name = munge (name, trail, NULL);
+    name = munge (name, trail);
   unsigned size = strlen (name);
 
   if (col)


More information about the Gcc-cvs mailing list