]> git.pld-linux.org Git - packages/gcc.git/blame - gcc-plugin-decl-hook.patch
- don't break the _GLIBCXX_EXTERN_TEMPLATE redefinition in c++config.h header.
[packages/gcc.git] / gcc-plugin-decl-hook.patch
CommitLineData
1fc08f06
AM
1diff --git a/gcc/c-decl.c b/gcc/c-decl.c
2index b438b06..c3738b9 100644
3--- a/gcc/c-decl.c
4+++ b/gcc/c-decl.c
5@@ -4480,6 +4480,8 @@ finish_decl (tree decl, location_t init_loc, tree init,
6 && C_TYPE_FIELDS_READONLY (type))
7 diagnose_uninitialized_cst_member (decl, type);
8 }
17234399
PS
9+
10+ invoke_plugin_callbacks(PLUGIN_FINISH_DECL, decl);
11 }
1fc08f06
AM
12
13 /* Given a parsed parameter declaration, decode it into a PARM_DECL. */
14diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
15index 6a13cc4..9752cf4 100644
16--- a/gcc/cp/decl.c
17+++ b/gcc/cp/decl.c
18@@ -6147,6 +6147,8 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
19
20 if (was_readonly)
21 TREE_READONLY (decl) = 1;
17234399
PS
22+
23+ invoke_plugin_callbacks(PLUGIN_FINISH_DECL, decl);
24 }
1fc08f06
AM
25
26 /* Returns a declaration for a VAR_DECL as if:
27diff --git a/gcc/doc/plugins.texi b/gcc/doc/plugins.texi
28index 767cee8..d989ddd 100644
29--- a/gcc/doc/plugins.texi
30+++ b/gcc/doc/plugins.texi
31@@ -153,6 +153,7 @@ enum plugin_event
32 PLUGIN_FINISH_TYPE, /* After finishing parsing a type. */
33 PLUGIN_FINISH_UNIT, /* Useful for summary processing. */
34 PLUGIN_PRE_GENERICIZE, /* Allows to see low level AST in C and C++ frontends. */
35+ PLUGIN_FINISH_DECL, /* Allows to see all declarations in C and C++ frontends. */
36 PLUGIN_FINISH, /* Called before GCC exits. */
37 PLUGIN_INFO, /* Information about the plugin. */
38 PLUGIN_GGC_START, /* Called at start of GCC Garbage Collection. */
39diff --git a/gcc/plugin.c b/gcc/plugin.c
40index c93daed..f65e54a 100644
41--- a/gcc/plugin.c
42+++ b/gcc/plugin.c
43@@ -423,6 +423,7 @@ register_callback (const char *plugin_name,
17234399
PS
44 case PLUGIN_START_UNIT:
45 case PLUGIN_FINISH_UNIT:
46 case PLUGIN_PRE_GENERICIZE:
47+ case PLUGIN_FINISH_DECL:
48 case PLUGIN_GGC_START:
49 case PLUGIN_GGC_MARKING:
50 case PLUGIN_GGC_END:
1fc08f06 51@@ -499,6 +500,7 @@ invoke_plugin_callbacks_full (int event, void *gcc_data)
17234399
PS
52 case PLUGIN_START_UNIT:
53 case PLUGIN_FINISH_UNIT:
54 case PLUGIN_PRE_GENERICIZE:
55+ case PLUGIN_FINISH_DECL:
56 case PLUGIN_ATTRIBUTES:
57 case PLUGIN_PRAGMAS:
58 case PLUGIN_FINISH:
1fc08f06
AM
59diff --git a/gcc/plugin.def b/gcc/plugin.def
60index 4a40c2c..4f8ad08 100644
61--- a/gcc/plugin.def
62+++ b/gcc/plugin.def
63@@ -30,6 +30,9 @@ DEFEVENT (PLUGIN_FINISH_UNIT)
64 /* Allows to see low level AST in C and C++ frontends. */
65 DEFEVENT (PLUGIN_PRE_GENERICIZE)
66
67+/* Allows to see all declarations in C and C++ frontends. */
68+DEFEVENT (PLUGIN_FINISH_DECL)
69+
70 /* Called before GCC exits. */
71 DEFEVENT (PLUGIN_FINISH)
72
This page took 0.113352 seconds and 4 git commands to generate.