Hi,

I will try to compil gcc-python-plugin with gcc-4.9.2 (from debian Jessie), I encountered the following error :

make[1]: Entering directory '/media/extras/mickael/programmation/lib_ext/gcc-python-plugin/gcc-c-api'
python xml-to-h.py
cc -O2 -Werror -g -fPIC -fno-strict-aliasing -Wall -I/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include -I/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/c-family -I.  -c -x c++ -fno-rtti -o gcc-callgraph.o gcc-callgraph.c
In file included from gcc-callgraph.c:31:0:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:283:10: error: use of enum ‘internal_fn’ without previous declaration
     enum internal_fn GTY ((tag ("GF_CALL_INTERNAL"))) internal_fn;
          ^
In file included from gcc-callgraph.c:31:0:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:1170:41: error: use of enum ‘internal_fn’ without previous declaration
 gimple gimple_build_call_internal (enum internal_fn, unsigned, ...);
                                         ^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:1171:45: error: use of enum ‘internal_fn’ without previous declaration
 gimple gimple_build_call_internal_vec (enum internal_fn, vec<tree> );
                                             ^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h: In function ‘bool gimple_store_p(gimple)’:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:2346:36: error: ‘is_gimple_reg’ was not declared in this scope
   return lhs && !is_gimple_reg (lhs);
                                    ^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h: At global scope:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:2444:20: error: use of enum ‘internal_fn’ without previous declaration
 static inline enum internal_fn
                    ^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:2544:46: error: use of enum ‘internal_fn’ without previous declaration
 gimple_call_set_internal_fn (gimple gs, enum internal_fn fn)
                                              ^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h: In function ‘tree_node* gimple_call_fndecl(const_gimple)’:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:2559:54: error: ‘gimple_call_addr_fndecl’ was not declared in this scope
   return gimple_call_addr_fndecl (gimple_call_fn (gs));
                                                      ^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h: In function ‘tree_node* gimple_expr_type(const_gimple)’:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:5657:45: error: ‘IFN_MASK_STORE’ was not declared in this scope
        && gimple_call_internal_fn (stmt) == IFN_MASK_STORE)
                                             ^
Makefile:92: recipe for target 'gcc-callgraph.o' failed


After searching, it seems that some #include file are missing in gcc-callgraph.c
I do the following modification and the compilation finishs correctly:

diff --git a/gcc-c-api/gcc-callgraph.c b/gcc-c-api/gcc-callgraph.c
index aa05a53..e9feb96 100644
--- a/gcc-c-api/gcc-callgraph.c
+++ b/gcc-c-api/gcc-callgraph.c
@@ -26,6 +26,8 @@
 #if (GCC_VERSION >= 5000)
 #include "gimple-expr.h"
 #endif
+#include "internal-fn.h"
+#include "gimple-expr.h"
 #include "gimple.h"
 
 /***********************************************************


Can you check and may be commit if you think that the following patch is OK for you ?
Thanks,
Mickael.