From 56bda7464f372d65d5564784266320994f605e1c Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 10 Jan 2019 10:30:52 -0500 Subject: Add a macro for the fairly common "eat next semicolon" syntax trick You use this when you're defining a macro to be used at file scope, and you want to require a semicolon afterwards. --- src/lib/cc/compat_compiler.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/lib/cc/compat_compiler.h') diff --git a/src/lib/cc/compat_compiler.h b/src/lib/cc/compat_compiler.h index d45316b241..83fa5dc33c 100644 --- a/src/lib/cc/compat_compiler.h +++ b/src/lib/cc/compat_compiler.h @@ -217,4 +217,16 @@ /** Macro: Yields the number of elements in array x. */ #define ARRAY_LENGTH(x) ((sizeof(x)) / sizeof(x[0])) +/** + * "Eat" a semicolon that somebody puts at the end of a top-level macro. + * + * Frequently, we want to declare a macro that people will use at file scope, + * and we want to allow people to put a semicolon after the macro. + * + * This declaration of a struct can be repeated any number of times, and takes + * a trailing semicolon afterwards. + **/ +#define EAT_SEMICOLON \ + struct dummy_semicolon_eater__ + #endif /* !defined(TOR_COMPAT_H) */ -- cgit v1.2.3-54-g00ecf