clang: Fix the "expression result unused" warning.
authorAlex Wang <alexw@nicira.com>
Mon, 22 Jul 2013 16:19:57 +0000 (09:19 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 22 Jul 2013 19:47:59 +0000 (12:47 -0700)
This commit makes macro function "ASSIGN_CONTAINER()" evaluates
to "(void)0". This is to avoid the 'clang' warning: "expression
result unused", since most of time, the final evaluated value
is not used.

Signed-off-by: Alex Wang <alexw@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/classifier.h
lib/heap.h
lib/hindex.h
lib/hmap.h
lib/list.h
lib/util.h

index 09b3a13..a14a24d 100644 (file)
@@ -132,7 +132,7 @@ struct cls_rule *cls_cursor_next(struct cls_cursor *, struct cls_rule *);
     for (ASSIGN_CONTAINER(RULE, cls_cursor_first(CURSOR), MEMBER);      \
          (RULE != OBJECT_CONTAINING(NULL, RULE, MEMBER)                 \
           ? ASSIGN_CONTAINER(NEXT, cls_cursor_next(CURSOR, &(RULE)->MEMBER), \
-                             MEMBER)                                    \
+                             MEMBER), 1                                 \
           : 0);                                                         \
          (RULE) = (NEXT))
 
index 9326d79..5c07e04 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012 Nicira, Inc.
+ * Copyright (c) 2012, 2013 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -69,13 +69,13 @@ void heap_rebuild(struct heap *);
 #define HEAP_FOR_EACH(NODE, MEMBER, HEAP)                           \
     for (((HEAP)->n > 0                                             \
           ? ASSIGN_CONTAINER(NODE, (HEAP)->array[1], MEMBER)        \
-          : ((NODE) = NULL, 1));                                    \
+          : ((NODE) = NULL, (void) 0));                               \
          (NODE) != NULL;                                            \
          ((NODE)->MEMBER.idx < (HEAP)->n                            \
           ? ASSIGN_CONTAINER(NODE,                                  \
                              (HEAP)->array[(NODE)->MEMBER.idx + 1], \
                              MEMBER)                                \
-          : ((NODE) = NULL, 1)))
+          : ((NODE) = NULL, (void) 0)))
 \f
 /* Returns the index of the node that is the parent of the node with the given
  * 'idx' within a heap. */
index ce46596..fb6b6d2 100644 (file)
@@ -147,7 +147,7 @@ struct hindex_node *hindex_node_with_hash(const struct hindex *, size_t hash);
 #define HINDEX_FOR_EACH_SAFE(NODE, NEXT, MEMBER, HINDEX)                \
     for (ASSIGN_CONTAINER(NODE, hindex_first(HINDEX), MEMBER);          \
          (NODE != OBJECT_CONTAINING(NULL, NODE, MEMBER)                 \
-          ? ASSIGN_CONTAINER(NEXT, hindex_next(HINDEX, &(NODE)->MEMBER), MEMBER) \
+          ? ASSIGN_CONTAINER(NEXT, hindex_next(HINDEX, &(NODE)->MEMBER), MEMBER), 1 \
           : 0);                                                         \
          (NODE) = (NEXT))
 
index c7df62a..ab7d3ae 100644 (file)
@@ -146,7 +146,7 @@ bool hmap_contains(const struct hmap *, const struct hmap_node *);
 #define HMAP_FOR_EACH_SAFE(NODE, NEXT, MEMBER, HMAP)                    \
     for (ASSIGN_CONTAINER(NODE, hmap_first(HMAP), MEMBER);              \
          (NODE != OBJECT_CONTAINING(NULL, NODE, MEMBER)                  \
-          ? ASSIGN_CONTAINER(NEXT, hmap_next(HMAP, &(NODE)->MEMBER), MEMBER) \
+          ? ASSIGN_CONTAINER(NEXT, hmap_next(HMAP, &(NODE)->MEMBER), MEMBER), 1 \
           : 0);                                                         \
          (NODE) = (NEXT))
 
index 55e0d0a..786b176 100644 (file)
@@ -72,11 +72,11 @@ bool list_is_short(const struct list *);
     for (ASSIGN_CONTAINER(ITER, (ITER)->MEMBER.prev, MEMBER);           \
          &(ITER)->MEMBER != (LIST);                                     \
          ASSIGN_CONTAINER(ITER, (ITER)->MEMBER.prev, MEMBER))
-#define LIST_FOR_EACH_SAFE(ITER, NEXT, MEMBER, LIST)            \
-    for (ASSIGN_CONTAINER(ITER, (LIST)->next, MEMBER);          \
-         (&(ITER)->MEMBER != (LIST)                             \
-          ? ASSIGN_CONTAINER(NEXT, (ITER)->MEMBER.next, MEMBER) \
-          : 0);                                                 \
+#define LIST_FOR_EACH_SAFE(ITER, NEXT, MEMBER, LIST)               \
+    for (ASSIGN_CONTAINER(ITER, (LIST)->next, MEMBER);             \
+         (&(ITER)->MEMBER != (LIST)                                \
+          ? ASSIGN_CONTAINER(NEXT, (ITER)->MEMBER.next, MEMBER), 1 \
+          : 0);                                                    \
          (ITER) = (NEXT))
 
 #endif /* list.h */
index 2159594..911ad32 100644 (file)
@@ -189,9 +189,9 @@ is_pow2(uintmax_t x)
  * that that OBJECT points to, assigns the address of the outer object to
  * OBJECT, which must be an lvalue.
  *
- * Evaluates to 1. */
+ * Evaluates to (void) 0 as the result is not to be used. */
 #define ASSIGN_CONTAINER(OBJECT, POINTER, MEMBER) \
-    ((OBJECT) = OBJECT_CONTAINING(POINTER, OBJECT, MEMBER), 1)
+    ((OBJECT) = OBJECT_CONTAINING(POINTER, OBJECT, MEMBER), (void) 0)
 
 #ifdef  __cplusplus
 extern "C" {