On Fri, Jan 29, 2016 at 04:46:56AM +0530, Prathamesh Kulkarni wrote:
> @@ -19016,10 +19017,22 @@ cp_parser_direct_declarator (cp_parser* parser,
>         cp_lexer_consume_token (parser->lexer);
>         /* Peek at the next token.  */
>         token = cp_lexer_peek_token (parser->lexer);
> +
> +       /* If static keyword immediately follows [, report error.  */
> +       if (cp_lexer_next_token_is_keyword (parser->lexer, RID_STATIC)
> +           && current_binding_level->kind == sk_function_parms)
> +         {
> +           error_at (token->location,
> +                     "static array size is a C99 feature,"
> +                     "not permitted in C++");
> +           bounds = error_mark_node;
> +         }
> +

I think this isn't sufficient as-is; if we're changing the diagnostics here,
we should also handle e.g. void f(int a[const 10]); where clang++ says
g.C:1:13: error: qualifier in array size is a C99 feature, not permitted in C++

And also e.g.
void f(int a[const static 10]);
void f(int a[static const 10]);
and similar.

        Marek

Reply via email to