From 0ffa76b9e9d703f926cf5495bdacb17d3b21f9aa Mon Sep 17 00:00:00 2001 From: "16:11:14 Tim Janik" Date: Wed, 29 Oct 2008 15:14:06 +0000 Subject: [PATCH] added G_PASTE() and G_STATIC_ASSERT(), based on patches by Christian 2008-10-29 16:11:14 Tim Janik * glib/gmacros.h: added G_PASTE() and G_STATIC_ASSERT(), based on patches by Christian Persch and Christian Dywan. Fixes: Bug 558381 - Add support for compile time assertions svn path=/trunk/; revision=7633 --- ChangeLog | 6 ++++++ glib/gmacros.h | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index 403f99c..4cd91f5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-29 16:11:14 Tim Janik + + * glib/gmacros.h: added G_PASTE() and G_STATIC_ASSERT(), based on + patches by Christian Persch and Christian Dywan. Fixes: + Bug 558381 - Add support for compile time assertions + 2008-10-27 Joseph Pingenot * glib/ghash.c: changed "#GHashTableIterator" to "#GHashTableIter" diff --git a/glib/gmacros.h b/glib/gmacros.h index f87e932..356db11 100644 --- a/glib/gmacros.h +++ b/glib/gmacros.h @@ -137,6 +137,10 @@ #define G_STRINGIFY(macro_or_string) G_STRINGIFY_ARG (macro_or_string) #define G_STRINGIFY_ARG(contents) #contents +#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2 +#define G_PASTE(identifier1,identifier2) G_PASTE_ARGS (identifier1, identifier2) +#define G_STATIC_ASSERT(expr) typedef struct { char Compile_Time_Assertion[(expr) ? 1 : -1]; } G_PASTE (_GStaticAssert_, __LINE__) + /* Provide a string identifying the current code position */ #if defined(__GNUC__) && (__GNUC__ < 3) && !defined(__cplusplus) # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()" -- 2.7.4