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

--- Comment #3 from klemen.jan.enova at gmail dot com ---
It works on gcc, though.

in gcc/c/c-parser.c:

>         if (!typespec_ok)
>           goto out;


>         invoke_plugin_callbacks (PLUGIN_FINISH_TYPE, t.spec);
>         declspecs_add_type (loc, specs, t);

in gcc/cp/parser.c:

>      type_spec = cp_parser_class_specifier (parser);
>      invoke_plugin_callbacks (PLUGIN_FINISH_TYPE, type_spec);
>      /* If that worked, we're done.  */
>      if (cp_parser_parse_definitely (parser))
>       {
>         if (declares_class_or_enum)
>           *declares_class_or_enum = 2;
>         if (decl_specs)
>           cp_parser_set_decl_spec_type (decl_specs,
>                                         type_spec,
>                                         token,
>                                         /*type_definition_p=*/true);
>         return type_spec;
>       }


I see a pattern. The call to invoke_plugin_callbacks() should probably be
before something_that_adds_the_type_to_decl_spec(). Also, there is a test in
both cases (typespec_ok VS cp_parser_parse_definitely). I will try to compile
gcc with this patch, and see what comes out.

Reply via email to