diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2016-07-07 11:45:11 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2016-07-07 11:45:11 +0000 |
commit | 275792f2ebb69bc081c4ea764c75ddfd565f640c (patch) | |
tree | ee363588dac70285eea3b1c51b085ed21c71a0a8 /gcc/ipa-inline-analysis.c | |
parent | 33427b4642f75e0231a329336430d5dd1924f566 (diff) | |
download | gcc-275792f2ebb69bc081c4ea764c75ddfd565f640c.zip gcc-275792f2ebb69bc081c4ea764c75ddfd565f640c.tar.gz gcc-275792f2ebb69bc081c4ea764c75ddfd565f640c.tar.bz2 |
re PR ipa/71624 ([CHKP] internal compiler error: in duplicate_thunk_for_node)
gcc/
PR ipa/71624
* ipa-inline-analysis.c (compute_inline_parameters): Set
local.can_change_signature to false for intrumentation
thunk callees.
gcc/testsuite/
PR ipa/71624
* g++.dg/pr71624.C: New test.
From-SVN: r238086
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r-- | gcc/ipa-inline-analysis.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 5d67218..da29d22 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -3017,6 +3017,16 @@ compute_inline_parameters (struct cgraph_node *node, bool early) node->local.can_change_signature = !e; } } + /* Functions called by instrumentation thunk can't change signature + because instrumentation thunk modification is not supported. */ + if (node->local.can_change_signature) + for (e = node->callers; e; e = e->next_caller) + if (e->caller->thunk.thunk_p + && e->caller->thunk.add_pointer_bounds_args) + { + node->local.can_change_signature = false; + break; + } estimate_function_body_sizes (node, early); pop_cfun (); } |