This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[libobjc, committed] Wrap CLASS_TABLE_HASH in do {} while (0)
- From: Tom de Vries <Tom_deVries at mentor dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: "pinskia at gmail dot com" <pinskia at gmail dot com>
- Date: Thu, 23 Nov 2017 20:54:44 +0100
- Subject: [libobjc, committed] Wrap CLASS_TABLE_HASH in do {} while (0)
- Authentication-results: sourceware.org; auth=none
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