diff options
| author | Jan Hubicka <hubicka@ucw.cz> | 2026-02-05 12:30:50 +0100 |
|---|---|---|
| committer | Jan Hubicka <hubicka@ucw.cz> | 2026-02-05 12:30:50 +0100 |
| commit | 9765a730758e53f499004aad48646fb410e7fb6d (patch) | |
| tree | c726b531a973dbaf8b2125374ca9afe482cbd0e5 /libjava/classpath/external/jsr166 | |
| parent | beac43c15e84d560aeaf26688b756283b7bf773f (diff) | |
| download | gcc-master.zip gcc-master.tar.gz gcc-master.tar.bz2 | |
this patch fixes cgraph verifier ICE about missing indirect call in the
speculative call sequence. This is triggered when tree-inline manages to
devirtualize call during folding it does and the call has multiple specualtive
targets. cgraph_update_edges_for_call_stmt_node calls
cgraph_edge::resolve_speculation which resolves one edge, but it should make
the whole sequence direct which is done by cgraph_edge::make_direct.
The code was also handling the case that call changed but it is not direct.
This should be impossible (and would require similar updating) so I added unreachable.
Bootstrapped/regtested x86_64-linux and also tested with autofdo and spec2017.
gcc/ChangeLog:
PR ipa/123226
* cgraph.cc (cgraph_update_edges_for_call_stmt_node): Fix handling
of multi-target speculations resolved at clone materialization time
Diffstat (limited to 'libjava/classpath/external/jsr166')
0 files changed, 0 insertions, 0 deletions
