diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2021-01-04 11:35:31 +0100 |
---|---|---|
committer | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2021-01-05 10:57:54 +0100 |
commit | 6b69738c1e30ec31cb11dce1d9209e7a5b92301b (patch) | |
tree | 1a05b4b07e97a1ce8f1fb0eb34149749e422041c /gcc/tree-inline.c | |
parent | 560d9915762d61bd1027259ecf55339f40a0a1de (diff) | |
download | gcc-6b69738c1e30ec31cb11dce1d9209e7a5b92301b.zip gcc-6b69738c1e30ec31cb11dce1d9209e7a5b92301b.tar.gz gcc-6b69738c1e30ec31cb11dce1d9209e7a5b92301b.tar.bz2 |
Restore input_location after recursive expand_call_inline
This is just a precautionary fix.
2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
* tree-inline.c (expand_call_inline): Restore input_location.
Return result from recursive call.
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index de676d4..cd3fad1 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -4840,9 +4840,11 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id, gimple_call_set_fndecl (stmt, edge->callee->decl); update_stmt (stmt); id->src_node->remove (); - expand_call_inline (bb, stmt, id, to_purge); + successfully_inlined = expand_call_inline (bb, stmt, id, to_purge); maybe_remove_unused_call_args (cfun, stmt); - return true; + /* This used to return true even though we do fail to inline in + some cases. See PR98525. */ + goto egress; } fn = cg_edge->callee->decl; cg_edge->callee->get_untransformed_body (); |