commit: 8f9b6cda0cd772b5155d52a5effabd04fd656a18 Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> AuthorDate: Sun Jul 26 10:34:45 2020 +0000 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> CommitDate: Sun Jul 26 10:34:45 2020 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=8f9b6cda
10.2.0: fix IPA ICE on LTO -O0/-O2 mix Bug: https://bugs.gentoo.org/733482 Bug: https://gcc.gnu.org/PR96291 Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org> .../gentoo/33_all_lto-O0-mix-ICE-ipa-PR96291.patch | 46 ++++++++++++++++++++++ 10.2.0/gentoo/README.history | 3 ++ 2 files changed, 49 insertions(+) diff --git a/10.2.0/gentoo/33_all_lto-O0-mix-ICE-ipa-PR96291.patch b/10.2.0/gentoo/33_all_lto-O0-mix-ICE-ipa-PR96291.patch new file mode 100644 index 0000000..b163721 --- /dev/null +++ b/10.2.0/gentoo/33_all_lto-O0-mix-ICE-ipa-PR96291.patch @@ -0,0 +1,46 @@ +https://bugs.gentoo.org/733482 +https://gcc.gnu.org/PR96291 + +From 03810b1b2dec00575b2bcb579eb3d7c34bd176bc Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <siarh...@google.com> +Date: Sat, 25 Jul 2020 19:26:50 +0100 +Subject: [PATCH] ipa/96291: don't crash on unoptimized lto functions + +In PR ipa/96291 the test contained an SCC with one +unoptimized function. This tricked ipa-cp into NULL dereference. + +has_undead_caller_from_outside_scc_p() did not take into account +that unoptimized funtions don't have IPA summary analysis. and +dereferenced NULL pointer causing an ICE. + + PR ipa/96291 + * ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider + unoptimized callers as undead. +--- + gcc/ipa-cp.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +--- a/gcc/ipa-cp.c ++++ b/gcc/ipa-cp.c +@@ -5666,9 +5666,15 @@ has_undead_caller_from_outside_scc_p (struct cgraph_node *node, + && cs->caller->call_for_symbol_thunks_and_aliases + (has_undead_caller_from_outside_scc_p, NULL, true)) + return true; +- else if (!ipa_edge_within_scc (cs) +- && !IPA_NODE_REF (cs->caller)->node_dead) +- return true; ++ else if (!ipa_edge_within_scc (cs)) ++ { ++ /* Unoptimized callers don't have IPA information. ++ Conservatively assume callers are undead. */ ++ if (!IPA_NODE_REF (cs->caller)) ++ return true; ++ if (!IPA_NODE_REF (cs->caller)->node_dead) ++ return true; ++ } + return false; + } + +-- +2.27.0 + diff --git a/10.2.0/gentoo/README.history b/10.2.0/gentoo/README.history index 4009f39..1c0fff9 100644 --- a/10.2.0/gentoo/README.history +++ b/10.2.0/gentoo/README.history @@ -1,3 +1,6 @@ +2 TODO + + 33_all_lto-O0-mix-ICE-ipa-PR96291.patch + 1 23 July 2020 + 01_all_default-fortify-source.patch + 02_all_default-warn-format-security.patch