[systemd-commits] src/shared

David Herrmann dvdhrm at kemper.freedesktop.org
Fri Nov 22 05:46:17 PST 2013


 src/shared/macro.h |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit ab9cbe342e5550e46731411a7166d3d9f7808adf
Author: Lukasz Skalski <l.skalski at partner.samsung.com>
Date:   Fri Nov 22 14:44:45 2013 +0100

    macro: fix problem with __LINE__ macro expansion
    
    David:
    I already applied a fix for that, but this patch definitely looks nicer. I
    changed CONCATENATE_HELPER() -> XCONCATENATE() similar to XSTRINGIFY and
    added the UNIQUE() helper.

diff --git a/src/shared/macro.h b/src/shared/macro.h
index aadb195..d64e3c3 100644
--- a/src/shared/macro.h
+++ b/src/shared/macro.h
@@ -53,6 +53,11 @@
 #define XSTRINGIFY(x) #x
 #define STRINGIFY(x) XSTRINGIFY(x)
 
+#define XCONCATENATE(x, y) x ## y
+#define CONCATENATE(x, y) XCONCATENATE(x, y)
+
+#define UNIQUE(prefix) CONCATENATE(prefix, __LINE__)
+
 /* Rounds up */
 
 #define ALIGN4(l) (((l) + 3) & ~3)
@@ -145,9 +150,7 @@ static inline size_t ALIGN_TO(size_t l, size_t ali) {
 #if defined(static_assert)
 #define assert_cc(expr) static_assert(expr, #expr)
 #else
-#define assert___cc(expr, line) struct _assert_struct_ ## line { char x[(expr) ? 0 : -1]; }
-#define assert__cc(expr, line) assert___cc((expr), line)
-#define assert_cc(expr) assert__cc((expr), __LINE__)
+#define assert_cc(expr) struct UNIQUE(_assert_struct_) { char x[(expr) ? 0 : -1]; };
 #endif
 
 #define assert_return(expr, r)                    \



More information about the systemd-commits mailing list