Re: [PATCH 4/6] Fix the COERCE_STATUS macro

Subject: Re: [PATCH 4/6] Fix the COERCE_STATUS macro

Date: Mon, 24 Sep 2012 13:44:57 -0400

To: Justus Winter

Cc: notmuch@notmuchmail.org

From: Austin Clements


Quoth Justus Winter on Sep 24 at  5:21 pm:
> 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 |   10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h
> index bfb4111..7a409f5 100644
> --- a/lib/notmuch-private.h
> +++ b/lib/notmuch-private.h
> @@ -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			\

Just a nit: why not simply NOTMUCH_STATUS_SUCCESS?

Otherwise, this series LGTM.  No need to roll another version just for
this comment.

>       :									\
>       (notmuch_status_t) private_status)
>  

Thread: