This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[libobjc, committed] Wrap CLASS_TABLE_HASH in do {} while (0)


Hi,

this patch wraps CLASS_TABLE_HASH in "do {} while (0)". This allows the macro to be used in if-then-elses without curly braces.

Build libobcj for x86_64.

Committed as obvious.

Thanks,
- Tom
[libobjc] Wrap CLASS_TABLE_HASH in do {} while (0)

2017-11-23  Tom de Vries  <tom@codesourcery.com>

	* class.c (CLASS_TABLE_HASH): Wrap in "do {} while (0)".

---
 libobjc/class.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/libobjc/class.c b/libobjc/class.c
index 53fb5fe..7a8f832 100644
--- a/libobjc/class.c
+++ b/libobjc/class.c
@@ -153,14 +153,16 @@ static objc_mutex_t __class_table_lock = NULL;
    string, and HASH the computed hash of the string; CLASS_NAME is
    untouched.  */
 
-#define CLASS_TABLE_HASH(INDEX, HASH, CLASS_NAME)          \
-  HASH = 0;                                                  \
-  for (INDEX = 0; CLASS_NAME[INDEX] != '\0'; INDEX++)        \
-    {                                                        \
-      HASH = (HASH << 4) ^ (HASH >> 28) ^ CLASS_NAME[INDEX]; \
-    }                                                        \
-                                                             \
-  HASH = (HASH ^ (HASH >> 10) ^ (HASH >> 20)) & CLASS_TABLE_MASK;
+#define CLASS_TABLE_HASH(INDEX, HASH, CLASS_NAME)			\
+  do {									\
+    HASH = 0;								\
+    for (INDEX = 0; CLASS_NAME[INDEX] != '\0'; INDEX++)			\
+      {									\
+	HASH = (HASH << 4) ^ (HASH >> 28) ^ CLASS_NAME[INDEX];		\
+      }									\
+									\
+    HASH = (HASH ^ (HASH >> 10) ^ (HASH >> 20)) & CLASS_TABLE_MASK;	\
+  } while (0)
 
 /* Setup the table.  */
 static void

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]