Fix the COERCE_STATUS macro
authorJustus Winter <4winter@informatik.uni-hamburg.de>
Mon, 24 Sep 2012 15:21:18 +0000 (17:21 +0200)
committerDavid Bremner <bremner@debian.org>
Thu, 27 Sep 2012 15:51:51 +0000 (12:51 -0300)
Fix the COERCE_STATUS macro to handle _internal_error being declared
as void function.

Note that the function _internal_error does not return. Evaluating to
NOTMUCH_STATUS_SUCCESS is done purely to appease the compiler.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
lib/notmuch-private.h

index bfb41116adcff104edadf639cd95513b225289bb..7a409f54ca5a08b4de81b39cb652984c330ae758 100644 (file)
@@ -136,13 +136,17 @@ typedef enum _notmuch_private_status {
  * to or greater than NOTMUCH_STATUS_LAST_STATUS. (The idea here is
  * that the caller has previously handled any expected
  * notmuch_private_status_t values.)
+ *
+ * Note that the function _internal_error does not return. Evaluating
+ * to NOTMUCH_STATUS_SUCCESS is done purely to appease the compiler.
  */
 #define COERCE_STATUS(private_status, format, ...)                     \
     ((private_status >= (notmuch_private_status_t) NOTMUCH_STATUS_LAST_STATUS)\
      ?                                                                 \
-     (notmuch_status_t) _internal_error (format " (%s).\n",            \
-                                         ##__VA_ARGS__,                        \
-                                         __location__)                 \
+     _internal_error (format " (%s).\n",                               \
+                      ##__VA_ARGS__,                                   \
+                      __location__),                                   \
+     (notmuch_status_t) NOTMUCH_PRIVATE_STATUS_SUCCESS                 \
      :                                                                 \
      (notmuch_status_t) private_status)