https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68767

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mpolacek at gcc dot gnu.org

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Reduced:

extern int len (const char *__s) __attribute__ ((__nonnull__ (1)));
extern int num;

int
f (void)
{
  return len (num != 2 ? "a" : 0);
}

Looks like it's been like this forever.  We're hitting:
 9752   if (TREE_CODE (param) == COND_EXPR)
 9753     {
 9754       tree cond = fold_for_warn (TREE_OPERAND (param, 0));
 9755       /* Check both halves of the conditional expression.  */
 9756       if (!integer_zerop (cond))
 9757         check_function_arguments_recurse (callback, ctx,
 9758                                           TREE_OPERAND (param, 1),
param_num);
 9759       if (!integer_nonzerop (cond))
 9760         check_function_arguments_recurse (callback, ctx,
 9761                                           TREE_OPERAND (param, 2),
param_num);
 9762       return;
 9763     }

Reply via email to