[ovs-dev] [PATCH 2/3] clang: Fix the "expression result unused" warning.

Ben Pfaff blp at nicira.com
Mon Jul 22 18:30:35 UTC 2013


On Mon, Jul 22, 2013 at 09:19:57AM -0700, Alex Wang wrote:
> 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 at nicira.com>

I think you missed a case in heap.h.  I had to apply the following to
avoid a pile of GCC warnings because in "a ? b : c" the b expression
had type void and the c expression had type int (value 1).  Can you
fold that in and verify that clang accepts it too?

diff --git a/lib/heap.h b/lib/heap.h
index 9326d79..5c07e04 100644
--- a/lib/heap.h
+++ b/lib/heap.h
@@ -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)))
 
 /* Returns the index of the node that is the parent of the node with the given
  * 'idx' within a heap. */

Thanks,

Ben.



More information about the dev mailing list