diff options
author | Jan Hubicka <jh@suse.cz> | 2020-10-30 14:30:43 +0100 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2020-10-30 14:30:43 +0100 |
commit | aa701610e51ca9e15573ba080cb93ef726252cfc (patch) | |
tree | df843230a64856ebefdf8d5a021f3ee7d11851b5 /gcc/symtab-thunks.h | |
parent | 40cb3f8ac875c6cf6610a5f93da571cfdd2a1513 (diff) | |
download | gcc-aa701610e51ca9e15573ba080cb93ef726252cfc.zip gcc-aa701610e51ca9e15573ba080cb93ef726252cfc.tar.gz gcc-aa701610e51ca9e15573ba080cb93ef726252cfc.tar.bz2 |
Fix thunk info WRT PCH
PR pch/97593
* cgraph.c (cgraph_node::create_thunk): Register thunk as early during
parsing.
* cgraphunit.c (analyze_functions): Call
thunk_info::process_early_thunks.
* symtab-thunks.cc (struct unprocessed_thunk): New struct.
(thunks): New static variable.
(thunk_info::register_early): New member function.
(thunk_info::process_early_thunks): New member function.
* symtab-thunks.h (thunk_info::register_early): Declare.
(thunk_info::process_early_thunks): Declare.
Diffstat (limited to 'gcc/symtab-thunks.h')
-rw-r--r-- | gcc/symtab-thunks.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/symtab-thunks.h b/gcc/symtab-thunks.h index a23fc55..41a6849 100644 --- a/gcc/symtab-thunks.h +++ b/gcc/symtab-thunks.h @@ -77,6 +77,7 @@ struct GTY(()) thunk_info { fixed_offset = other.fixed_offset; virtual_value = other.virtual_value; indirect_offset = other.indirect_offset; + alias = other.alias; this_adjusting = other.this_adjusting; virtual_offset_p = other.virtual_offset_p; return *this; @@ -133,6 +134,12 @@ struct GTY(()) thunk_info { /* Remove thunk_info. */ static void remove (cgraph_node *node); + /* Add unprocessed thunk. */ + void register_early (cgraph_node *node); + + /* Attach recorded thunks to cgraph_nodes. */ + static void process_early_thunks (); + /* Release all thunk_infos. */ static void release (void); }; |