On Thu, Jan 10, 2019 at 08:01:41PM +0800, Jiang Xin wrote:
> diff --git a/builtin/pack-redundant.c b/builtin/pack-redundant.c
> index 56591d283f..e9d2586e2e 100644
> --- a/builtin/pack-redundant.c
> +++ b/builtin/pack-redundant.c

> @@ -421,16 +422,22 @@ static inline off_t pack_set_bytecount(struct pack_list 
> *pl)
>       return ret;
>  }
>  
> -static int cmp_pack_list_reverse(const void *a, const void *b)
> +static int cmp_remaining_objects(const void *a, const void *b)
>  {
>       struct pack_list *pl_a = *((struct pack_list **)a);
>       struct pack_list *pl_b = *((struct pack_list **)b);
> -     size_t sz_a = pl_a->remaining_objects->size;
> -     size_t sz_b = pl_b->remaining_objects->size;
>  
> -     if (sz_a == sz_b)
> -             return 0;
> -     else if (sz_a < sz_b)
> +     /* if have the same remaining_objects, big pack first */
> +     if (pl_a->remaining_objects->size == pl_b->remaining_objects->size)
> +             if (pl_a->all_objects_size == pl_b->all_objects_size)
> +                     return 0;
> +             else if (pl_a->all_objects_size < pl_b->all_objects_size)
> +                     return 1;
> +             else
> +                     return -1;

My compiler complains about the above nested if statements:

  builtin/pack-redundant.c: In function ‘cmp_remaining_objects’:
  builtin/pack-redundant.c:345:5: error: suggest explicit braces to avoid 
ambiguous ‘else’ [-Werror=parentheses]
    if (pl_a->remaining_objects->size == pl_b->remaining_objects->size)
       ^
  cc1: all warnings being treated as errors
  Makefile:2302: recipe for target 'builtin/pack-redundant.o' failed

After adding a pair of {} to the outer if statement
't5323-pack-redundant.sh' passed successfully even on macOS (on Travis
CI).

Reply via email to