On Wed, Apr 13, 2016 at 04:14:03PM +0200, Marek Polacek wrote:
>       PR c/70436
>       * c-parser.c
>       (c_parser_statement_after_labels): Add IF_P argument and adjust
>       callers.

Can you put 

> @@ -5533,7 +5548,7 @@ c_parser_switch_statement (c_parser *parser)
>    c_start_case (switch_loc, switch_cond_loc, expr, explicit_cast_p);
>    save_break = c_break_label;
>    c_break_label = NULL_TREE;
> -  body = c_parser_c99_block_statement (parser);
> +  body = c_parser_c99_block_statement (parser, NULL/*if??*/);
>    c_finish_case (body, ce.original_type);
>    if (c_break_label)
>      {

Is:
void bar (int);

void
foo (int a, int b, int c)
{
  if (a)
    switch (b)
      case 0:
        if (c)
          bar (1);
  else
    bar (2);
}
something -Wdangling-else should warn about?  Note, g++ does not warn
about it, and clang nor clang++ doesn't either.
As it is something that unlikely happens in user code, I guess it is ok
to not warn about this for GCC 6, and we can deal with that later on.

        Jakub

Reply via email to