Building notmuch with CC=clang and CXX=clang++ produces the warnings:
CC -O2 lib/tags.o
lib/tags.c:43:5: warning: expression result unused [-Wunused-value]
talloc_steal (tags, list);
^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/talloc.h:345:143: note: expanded from:
...__location__); __talloc_steal_ret; })
^~~~~~~~~~~~~~~~~~
1 warning generated.
CXX -O2 lib/message.o
lib/message.cc:791:5: warning: expression result unused [-Wunused-value]
talloc_reference (message, message->tag_list);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/talloc.h:932:36: note: expanded from:
...(_TALLOC_TYPEOF(ptr))_talloc_reference_loc((ctx),(ptr), __location__)
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
Check talloc_reference() return value, and explicitly ignore
talloc_steal() return value as it has no failure modes, to silence the
warnings.
* possible to modify the message tags (which talloc_unlink's the
* current list from the message) while still iterating because
* the iterator will keep the current list alive. */
- talloc_reference (message, message->tag_list);
+ if (!talloc_reference (message, message->tag_list))
+ return NULL;
+
return tags;
}
return NULL;
tags->iterator = list->head;
- talloc_steal (tags, list);
+ (void) talloc_steal (tags, list);
return tags;
}