aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2017-11-19 20:58:12 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2017-11-19 19:58:12 +0000
commit8a4a6d2e844df54583cd8fac181586b10f63fe25 (patch)
tree961bb7a9c49b2c36604f8e1ccca0e49691d5e4f1 /gcc/ipa-inline.c
parenta6b22eea5b059f9eab1a6b13e2bea86bc3077906 (diff)
downloadgcc-8a4a6d2e844df54583cd8fac181586b10f63fe25.zip
gcc-8a4a6d2e844df54583cd8fac181586b10f63fe25.tar.gz
gcc-8a4a6d2e844df54583cd8fac181586b10f63fe25.tar.bz2
re PR ipa/81360 (ice in estimate_edge_growth, at ipa-inline.h:86)
PR ipa/81360 * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized * gcc.c-torture/compile/pr81360.c: New testcase. From-SVN: r254937
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index f4ce80a..4f1860f 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -324,7 +324,8 @@ can_inline_edge_p (struct cgraph_edge *e, bool report,
e->inline_failed = CIF_BODY_NOT_AVAILABLE;
inlinable = false;
}
- if (!early && !opt_for_fn (callee->decl, optimize))
+ if (!early && (!opt_for_fn (callee->decl, optimize)
+ || opt_for_fn (caller->decl, optimize)))
{
e->inline_failed = CIF_FUNCTION_NOT_OPTIMIZED;
inlinable = false;