diff options
author | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-14 20:18:49 +0000 |
---|---|---|
committer | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-14 20:18:49 +0000 |
commit | 9227b6fcb5d57341e64daf1dfd153f38df20694c (patch) | |
tree | a65b40c88b9169d2d76f8139339fd3054612f224 /gcc/cp | |
parent | f3245e9d4b1285241a39f85498e6f2ddfa3e3ffa (diff) | |
download | gcc-9227b6fcb5d57341e64daf1dfd153f38df20694c.tar.gz |
2009-04-14 Diego Novillo <dnovillo@google.com>
Le-Chun Wu <lcwu@google.com>
* configure.ac: Add --enable-plugin support.
Define ENABLE_PLUGIN and PLUGINLIBS when specified.
* Makefile.in (PLUGIN_H): Define.
Export ENABLE_PLUGIN and GMPINC to site.exp.
Add PLUGINLIBS to link command.
Add/modify dependencies for plugin.o and files including plugin.h.
(plugin.o): New.
* config.in: Regenerate.
* opts.c (common_handle_option): Handle OPT_fplugin_ and
OPT_fplugin_arg_.
2009-04-14 Le-Chun Wu <lcwu@google.com>
* tree-pass.h (register_one_dump_file): Add a prototype for
register_one_dump_file.
* toplev.c (compile_file): Call initialize_plugins.
(do_compile): Call invoke_plugin_callbacks.
(toplev_main): Call invoke_plugin_callbacks.
* common.opt: Add -fplugin= and -fplugin-arg-.
* gcc-plugin.h: New public header file for plugins to include.
* plugin.c: New source file.
* plugin.h: New internal header file.
* passes.c (register_one_dump_file): Make it external.
* c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
2009-04-14 Diego Novillo <dnovillo@google.com>
* doc/plugins.texi: New.
* doc/gccint.texi: Add reference to Plugins chapter.
* doc/invoke.texi: Document -fplugin and -fplugin-arg
* diagnostic.c (diagnostic_report_diagnostic): Warn about
loaded plugins, if any.
* timevar.def (TV_PLUGIN_INIT): Define.
(TV_PLUGIN_RUN): Define.
* plugin.c: Include timevar.h
(plugins_active_p): New.
(dump_active_plugins): New.
(debug_active_plugins): New.
cp/ChangeLog
2009-04-14 Le-Chun Wu <lcwu@google.com>
* Make-lang.in: Modify dependencies of files including plugin.h.
* decl.c (finish_function): Call invoke_plugin_callbacks.
* parser.c (cp_parser_type_specifier): Call invoke_plugin_callbacks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146059 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/Make-lang.in | 4 | ||||
-rw-r--r-- | gcc/cp/decl.c | 2 | ||||
-rw-r--r-- | gcc/cp/parser.c | 3 |
4 files changed, 13 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e335f9e1830..23d135b4749 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2009-04-14 Le-Chun Wu <lcwu@google.com> + + * Make-lang.in: Modify dependencies of files including plugin.h. + * decl.c (finish_function): Call invoke_plugin_callbacks. + * parser.c (cp_parser_type_specifier): Call invoke_plugin_callbacks. + 2009-04-14 Jason Merrill <jason@redhat.com> PR c++/39763 diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index 38aec6cf182..aadaae6e044 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -240,7 +240,7 @@ cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) $(TM_H) toplev.h debug.h langhooks.h \ cp/decl.o: cp/decl.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) cp/decl.h \ output.h $(EXPR_H) except.h toplev.h $(HASHTAB_H) $(RTL_H) \ cp/operators.def $(TM_P_H) $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(C_PRAGMA_H) \ - debug.h gt-cp-decl.h $(TIMEVAR_H) $(TREE_FLOW_H) $(TARGET_H) + debug.h gt-cp-decl.h $(TIMEVAR_H) $(TREE_FLOW_H) $(TARGET_H) $(PLUGIN_H) cp/decl2.o: cp/decl2.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) cp/decl.h $(EXPR_H) \ output.h except.h toplev.h $(RTL_H) $(C_COMMON_H) gt-cp-decl2.h $(CGRAPH_H) \ $(C_PRAGMA_H) $(TREE_DUMP_H) intl.h $(TARGET_H) $(GIMPLE_H) @@ -292,7 +292,7 @@ cp/optimize.o: cp/optimize.c $(CXX_TREE_H) $(TM_H) rtl.h $(INTEGRATE_H) \ cp/mangle.o: cp/mangle.c $(CXX_TREE_H) $(TM_H) toplev.h $(REAL_H) \ gt-cp-mangle.h $(TARGET_H) $(TM_P_H) cp/parser.o: cp/parser.c $(CXX_TREE_H) $(TM_H) $(DIAGNOSTIC_H) gt-cp-parser.h \ - output.h $(TARGET_H) + output.h $(TARGET_H) $(PLUGIN_H) cp/cp-gimplify.o: cp/cp-gimplify.c $(CXX_TREE_H) toplev.h $(C_COMMON_H) \ $(TM_H) coretypes.h pointer-set.h tree-iterator.h diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 6e122a542b4..5ab9392849b 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -53,6 +53,7 @@ along with GCC; see the file COPYING3. If not see #include "timevar.h" #include "tree-flow.h" #include "pointer-set.h" +#include "plugin.h" static tree grokparms (tree parmlist, tree *); static const char *redeclaration_error_message (tree, tree); @@ -12354,6 +12355,7 @@ finish_function (int flags) if (!processing_template_decl) { struct language_function *f = DECL_SAVED_FUNCTION_DATA (fndecl); + invoke_plugin_callbacks (PLUGIN_CXX_CP_PRE_GENERICIZE, fndecl); cp_genericize (fndecl); /* Clear out the bits we don't need. */ f->x_current_class_ptr = NULL; diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 4dec792e577..8a8ca0654d4 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -37,6 +37,7 @@ along with GCC; see the file COPYING3. If not see #include "target.h" #include "cgraph.h" #include "c-common.h" +#include "plugin.h" /* The lexer. */ @@ -13890,6 +13891,8 @@ cp_parser_type_specifier_seq (cp_parser* parser, break; } + invoke_plugin_callbacks (PLUGIN_FINISH_TYPE, type_specifier); + seen_type_specifier = true; /* The standard says that a condition can be: |