Thread (8 messages) flat view 8 messages, 4 authors, 2020-11-18

Re: [PATCH] list-objects-filter-options: fix function name in BUG

From: Jonathan Nieder <hidden>
Date: 2020-11-18 02:24:08

Jeff King wrote:
I actually wonder if it is time to drop HAVE_VARIADIC_MACROS completely.
They are in C99, and we have been introducing many other C99-isms. It
would be a minor cleanup to a few bits of code, which perhaps isn't
worth the risk. But I also have a vague memory of not being able to
implement some interfaces because we couldn't count on them.

Poking around, 3689539127 (add helpers for allocating flex-array
structs, 2016-02-22) points out one such case. I think discussion of
BUG_ON() got blocked by that, too. Looks like we also discussed them in
the big "C99 weather balloon" thread:

  https://lore.kernel.org/git/20170710070342.txmlwwq6gvjkwtw7@sigill.intra.peff.net/ (local)

Maybe it's time for something like this as a test:
Yes.  For what it's worth,
Reviewed-by: Jonathan Nieder <redacted>

Want to re-send with a signoff?

Thanks,
Jonathan
quoted hunk ↗ jump to hunk
diff --git a/git-compat-util.h b/git-compat-util.h
index 2fd9d5b403..fe5de2239f 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -1194,14 +1194,9 @@ static inline int regexec_buf(const regex_t *preg, const char *buf, size_t size,
 /* usage.c: only to be used for testing BUG() implementation (see test-tool) */
 extern int BUG_exit_code;
 
-#ifdef HAVE_VARIADIC_MACROS
 __attribute__((format (printf, 3, 4))) NORETURN
 void BUG_fl(const char *file, int line, const char *fmt, ...);
 #define BUG(...) BUG_fl(__FILE__, __LINE__, __VA_ARGS__)
-#else
-__attribute__((format (printf, 1, 2))) NORETURN
-void BUG(const char *fmt, ...);
-#endif
 
 /*
  * Preserves errno, prints a message, but gives no warning for ENOENT.
diff --git a/usage.c b/usage.c
index 06665823a2..b72f48f70e 100644
--- a/usage.c
+++ b/usage.c
@@ -273,23 +273,13 @@ static NORETURN void BUG_vfl(const char *file, int line, const char *fmt, va_lis
 	abort();
 }
 
-#ifdef HAVE_VARIADIC_MACROS
 NORETURN void BUG_fl(const char *file, int line, const char *fmt, ...)
 {
 	va_list ap;
 	va_start(ap, fmt);
 	BUG_vfl(file, line, fmt, ap);
 	va_end(ap);
 }
-#else
-NORETURN void BUG(const char *fmt, ...)
-{
-	va_list ap;
-	va_start(ap, fmt);
-	BUG_vfl(NULL, 0, fmt, ap);
-	va_end(ap);
-}
-#endif
 
 #ifdef SUPPRESS_ANNOTATED_LEAKS
 void unleak_memory(const void *ptr, size_t len)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help