aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2020-03-20 00:42:13 +0100
committerJan Hubicka <jh@suse.cz>2020-03-20 00:42:13 +0100
commitf7dceb4e658399edfbf8dd0e08ce0c686bfa2c9d (patch)
treebd112e021c4db6ecd2cf89f3b21c152e0ee55fb9 /gcc/tree-sra.c
parent9def91e9f2a7051c9c146f16c1a10d1b25d33b47 (diff)
downloadgcc-f7dceb4e658399edfbf8dd0e08ce0c686bfa2c9d.zip
gcc-f7dceb4e658399edfbf8dd0e08ce0c686bfa2c9d.tar.gz
gcc-f7dceb4e658399edfbf8dd0e08ce0c686bfa2c9d.tar.bz2
Fix cgraph_node::function_symbol availability compuattion [PR94202]
this fixes ICE in inliner cache sanity check which is caused by very old bug in visibility calculation in cgraph_node::function_symbol and cgraph_node::function_or_virtual_thunk_symbol. In the testcase there is indirect call to a thunk. At begining we correctly see that its body as AVAIL_AVAILABLE but later we inline into the thunk and this turns it to AVAIL_INTERPOSABLE. This is because function_symbol incorrectly overwrites availability parameter by availability of the alias used in the call within thunk, which is a local alias. gcc/ChangeLog: 2020-03-19 Jan Hubicka <hubicka@ucw.cz> PR ipa/94202 * cgraph.c (cgraph_node::function_symbol): Fix availability computation. (cgraph_node::function_or_virtual_thunk_symbol): Likewise. gcc/testsuite/ChangeLog: 2020-03-19 Jan Hubicka <hubicka@ucw.cz> PR ipa/94202 * g++.dg/torture/pr94202.C: New test.
Diffstat (limited to 'gcc/tree-sra.c')
0 files changed, 0 insertions, 0 deletions