From d7ab349c44f30bed90b03b45865f6c7c5de1dfd8 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Tue, 17 Nov 2020 06:45:18 -0800 Subject: [PATCH] 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. --- 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) -- 2.30.2