aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2018-11-13 15:59:57 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2018-11-13 15:59:57 +0000
commit9228f64cc2ceb54764a302103e3b754c0b6235a2 (patch)
tree74f795207b48d03aacd73cb423fc749de4062e8e /gcc/ipa-inline.c
parentbe40afb2b93a0f8f5739dd36c3c804e6f809d1d4 (diff)
downloadgcc-9228f64cc2ceb54764a302103e3b754c0b6235a2.zip
gcc-9228f64cc2ceb54764a302103e3b754c0b6235a2.tar.gz
gcc-9228f64cc2ceb54764a302103e3b754c0b6235a2.tar.bz2
Fix ICE with -fopt-info-inline (PR ipa/87955)
PR ipa/87955 reports a problem I introduced in r265920, where I converted the guard in report_inline_failed_reason from using: if (dump_file) to using if (dump_enabled_p ()). without updating the calls to cl_target_option_print_diff and cl_optimization_print_diff, which assume that dump_file is non-NULL. The functions are auto-generated. Rather than porting them to the dump API, this patch applies the workaround of adding the missing checks on dump_file before calling them. gcc/ChangeLog: PR ipa/87955 * ipa-inline.c (report_inline_failed_reason): Guard calls to cl_target_option_print_diff and cl_optimization_print_diff with if (dump_file). gcc/testsuite/ChangeLog: PR ipa/87955 * gcc.target/i386/pr87955.c: New test. From-SVN: r266079
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index e04ede7..173808a 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -244,13 +244,15 @@ report_inline_failed_reason (struct cgraph_edge *e)
e->callee->ultimate_alias_target ()->lto_file_data->file_name);
}
if (e->inline_failed == CIF_TARGET_OPTION_MISMATCH)
- cl_target_option_print_diff
- (dump_file, 2, target_opts_for_fn (e->caller->decl),
- target_opts_for_fn (e->callee->ultimate_alias_target ()->decl));
+ if (dump_file)
+ cl_target_option_print_diff
+ (dump_file, 2, target_opts_for_fn (e->caller->decl),
+ target_opts_for_fn (e->callee->ultimate_alias_target ()->decl));
if (e->inline_failed == CIF_OPTIMIZATION_MISMATCH)
- cl_optimization_print_diff
- (dump_file, 2, opts_for_fn (e->caller->decl),
- opts_for_fn (e->callee->ultimate_alias_target ()->decl));
+ if (dump_file)
+ cl_optimization_print_diff
+ (dump_file, 2, opts_for_fn (e->caller->decl),
+ opts_for_fn (e->callee->ultimate_alias_target ()->decl));
}
}