The issue was first reported by Joachim Wieland to the list g...@gcc.gnu.org, on Wed, Jan 19, 2011 (Subject: PLUGIN_FINISH_TYPE not executed for enums).
A description of the problem/bug and how my patch addresses it. ------------------------------------------------------------------------------------------- The problem was that when gcc plugins registered callbacks on the PLUGIN_FINISH_TYPE event, this event would not be triggered after an enum had finished processing. The function call that does this was not there; it seems to me that it has simply been forgotten. Bootstrapping and testing ------------------------------------ make bootstrap make -k check === gcc Summary === # of expected passes 106729 # of expected failures 256 # of unsupported tests 1409 on x86_64 ubuntu linux 14.04 Furthermore, I tested the plugin functionality (with a gcc-with-python script), and it now works properly. (However, changes to gcc-with-python also had to be made so that enum type info is properly converted to python types; see my github fork for these changes https://github.com/bloff/gcc-python-plugin) The Patch --------------- From: bloff <bloff.si...@gmail.com> Date: Sun, 19 Oct 2014 14:54:01 +0100 Subject: [PATCH] Added PLUGIN_FINISH_TYPE callback on enum type processing First reported by Joachim Wieland to the list g...@gcc.gnu.org, on Wed, Jan 19, 2011 (Subject: PLUGIN_FINISH_TYPE not executed for enums). --- gcc/c/c-parser.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 264c170..cb515aa 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -2324,6 +2324,7 @@ c_parser_declspecs (c_parser *parser, struct c_declspecs *specs, attrs_ok = true; seen_type = true; t = c_parser_enum_specifier (parser); + invoke_plugin_callbacks (PLUGIN_FINISH_TYPE, t.spec); declspecs_add_type (loc, specs, t); break; case RID_STRUCT: -- 1.9.1