Re: [PATCH] Restore input_location after recursive expand_call_inline
On 1/5/21 5:51 PM, Jeff Law wrote: > > > On 1/5/21 1:05 AM, Richard Biener wrote: >> On Tue, 5 Jan 2021, Bernd Edlinger wrote: >> >>> >>> On 1/4/21 10:23 PM, Jeff Law wrote: >>>> >>>> On 1/4/21 1:12 PM, Bernd Edlinger wrote: >>>>> Hi, >>>>> >>>>> I spotted a place where input_location is clobbered accidentally. >>>>> >>>>> That is in a recursive call to expand_call_inline. The input_location >>>>> is usually restored by goto egress in this function. >>>>> >>>>> Additionally the return value of the recursive expand call is thrown >>>>> away, which does not look like a good idea. >>>>> >>>>> Although this causes no problems ATM, I wanted to fix it anyway. >>>>> >>>>> >>>>> Bootstrapped and reg-tested on x86_64-pc-linux-gnu. >>>>> Is it OK for trunk? >>>>> >>>>> >>>>> Thanks >>>>> Bernd. >>>>> >>>>> 0001-Restore-input_location-after-recursive-expand_call_i.patch >>>>> >>>>> From 88b963bba7b32972abf0ea44a01c03d643d7c6ca Mon Sep 17 00:00:00 2001 >>>>> From: Bernd Edlinger >>>>> Date: Mon, 4 Jan 2021 11:35:31 +0100 >>>>> Subject: [PATCH] Restore input_location after recursive expand_call_inline >>>>> >>>>> This is just a precautionary fix. >>>>> >>>>> 2021-01-04 Bernd Edlinger >>>>> >>>>> * tree-inline.c (expand_call_inline): Restore input_location. >>>>> Return result from recursive call. >>>> I suspect that we're always supposed to inline in this case. As >>>> asserting that successfully_inlined is true before jumping to "egress" >>>> seems wise. >>>> >>>> OK with that change after the usual testing. >>>> >>> No this does not work: >>> >>> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++98 (internal compiler error) >>> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++98 (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++98 compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++14 (internal compiler error) >>> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++14 (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++14 compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++17 (internal compiler error) >>> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++17 (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++17 compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++2a (internal compiler error) >>> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++2a (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++2a compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++98 (internal compiler error) >>> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++98 (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++98 compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++14 (internal compiler error) >>> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++14 (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++14 compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++17 (internal compiler error) >>> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++17 (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++17 compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++2a (internal compiler error) >>> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++2a (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++2a compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 (internal compiler error) >>> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 (test for excess errors) >>> +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 compilation failed to >>> produce executable >>> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 (internal compiler error) >>> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 (test for excess errors) >>> +UNRESOLVED: g++.dg/ip
Re: [PATCH] Restore input_location after recursive expand_call_inline
On 1/5/21 1:05 AM, Richard Biener wrote: > On Tue, 5 Jan 2021, Bernd Edlinger wrote: > >> >> On 1/4/21 10:23 PM, Jeff Law wrote: >>> >>> On 1/4/21 1:12 PM, Bernd Edlinger wrote: >>>> Hi, >>>> >>>> I spotted a place where input_location is clobbered accidentally. >>>> >>>> That is in a recursive call to expand_call_inline. The input_location >>>> is usually restored by goto egress in this function. >>>> >>>> Additionally the return value of the recursive expand call is thrown >>>> away, which does not look like a good idea. >>>> >>>> Although this causes no problems ATM, I wanted to fix it anyway. >>>> >>>> >>>> Bootstrapped and reg-tested on x86_64-pc-linux-gnu. >>>> Is it OK for trunk? >>>> >>>> >>>> Thanks >>>> Bernd. >>>> >>>> 0001-Restore-input_location-after-recursive-expand_call_i.patch >>>> >>>> From 88b963bba7b32972abf0ea44a01c03d643d7c6ca Mon Sep 17 00:00:00 2001 >>>> From: Bernd Edlinger >>>> Date: Mon, 4 Jan 2021 11:35:31 +0100 >>>> Subject: [PATCH] Restore input_location after recursive expand_call_inline >>>> >>>> This is just a precautionary fix. >>>> >>>> 2021-01-04 Bernd Edlinger >>>> >>>>* tree-inline.c (expand_call_inline): Restore input_location. >>>>Return result from recursive call. >>> I suspect that we're always supposed to inline in this case. As >>> asserting that successfully_inlined is true before jumping to "egress" >>> seems wise. >>> >>> OK with that change after the usual testing. >>> >> No this does not work: >> >> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++98 (internal compiler error) >> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++98 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++98 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++14 (internal compiler error) >> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++14 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++14 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++17 (internal compiler error) >> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++17 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++17 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++2a (internal compiler error) >> +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++2a (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++2a compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++98 (internal compiler error) >> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++98 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++98 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++14 (internal compiler error) >> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++14 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++14 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++17 (internal compiler error) >> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++17 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++17 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++2a (internal compiler error) >> +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++2a (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++2a compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 (internal compiler error) >> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 (internal compiler error) >> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 (internal compiler error) >> +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 (test for excess errors) >> +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 compilation failed to >> produce executable >> +FAIL: g++.dg/ipa/imm-devi
Re: [PATCH] Restore input_location after recursive expand_call_inline
On Tue, 5 Jan 2021, Bernd Edlinger wrote: > > > On 1/4/21 10:23 PM, Jeff Law wrote: > > > > > > On 1/4/21 1:12 PM, Bernd Edlinger wrote: > >> Hi, > >> > >> I spotted a place where input_location is clobbered accidentally. > >> > >> That is in a recursive call to expand_call_inline. The input_location > >> is usually restored by goto egress in this function. > >> > >> Additionally the return value of the recursive expand call is thrown > >> away, which does not look like a good idea. > >> > >> Although this causes no problems ATM, I wanted to fix it anyway. > >> > >> > >> Bootstrapped and reg-tested on x86_64-pc-linux-gnu. > >> Is it OK for trunk? > >> > >> > >> Thanks > >> Bernd. > >> > >> 0001-Restore-input_location-after-recursive-expand_call_i.patch > >> > >> From 88b963bba7b32972abf0ea44a01c03d643d7c6ca Mon Sep 17 00:00:00 2001 > >> From: Bernd Edlinger > >> Date: Mon, 4 Jan 2021 11:35:31 +0100 > >> Subject: [PATCH] Restore input_location after recursive expand_call_inline > >> > >> This is just a precautionary fix. > >> > >> 2021-01-04 Bernd Edlinger > >> > >>* tree-inline.c (expand_call_inline): Restore input_location. > >>Return result from recursive call. > > I suspect that we're always supposed to inline in this case. As > > asserting that successfully_inlined is true before jumping to "egress" > > seems wise. > > > > OK with that change after the usual testing. > > > > No this does not work: > > +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++98 (internal compiler error) > +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++98 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++98 compilation failed to > produce executable > +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++14 (internal compiler error) > +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++14 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++14 compilation failed to > produce executable > +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++17 (internal compiler error) > +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++17 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++17 compilation failed to > produce executable > +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++2a (internal compiler error) > +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++2a (test for excess errors) > +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++2a compilation failed to > produce executable > +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++98 (internal compiler error) > +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++98 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++98 compilation failed to > produce executable > +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++14 (internal compiler error) > +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++14 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++14 compilation failed to > produce executable > +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++17 (internal compiler error) > +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++17 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++17 compilation failed to > produce executable > +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++2a (internal compiler error) > +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++2a (test for excess errors) > +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++2a compilation failed to > produce executable > +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 (internal compiler error) > +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 compilation failed to > produce executable > +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 (internal compiler error) > +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 compilation failed to > produce executable > +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 (internal compiler error) > +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 (test for excess errors) > +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 compilation failed to > produce executable > +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++2a (internal compiler error) > +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++2a (test for excess errors) > +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++2a compilation failed to > produce executable > +FAIL: g++.dg/ipa/pr71146.C -std=gnu++98 (internal compiler error) > +FAIL: g++.dg/ipa/pr71146.C -std=gnu++9
Re: [PATCH] Restore input_location after recursive expand_call_inline
On 1/4/21 10:23 PM, Jeff Law wrote: > > > On 1/4/21 1:12 PM, Bernd Edlinger wrote: >> Hi, >> >> I spotted a place where input_location is clobbered accidentally. >> >> That is in a recursive call to expand_call_inline. The input_location >> is usually restored by goto egress in this function. >> >> Additionally the return value of the recursive expand call is thrown >> away, which does not look like a good idea. >> >> Although this causes no problems ATM, I wanted to fix it anyway. >> >> >> Bootstrapped and reg-tested on x86_64-pc-linux-gnu. >> Is it OK for trunk? >> >> >> Thanks >> Bernd. >> >> 0001-Restore-input_location-after-recursive-expand_call_i.patch >> >> From 88b963bba7b32972abf0ea44a01c03d643d7c6ca Mon Sep 17 00:00:00 2001 >> From: Bernd Edlinger >> Date: Mon, 4 Jan 2021 11:35:31 +0100 >> Subject: [PATCH] Restore input_location after recursive expand_call_inline >> >> This is just a precautionary fix. >> >> 2021-01-04 Bernd Edlinger >> >> * tree-inline.c (expand_call_inline): Restore input_location. >> Return result from recursive call. > I suspect that we're always supposed to inline in this case. As > asserting that successfully_inlined is true before jumping to "egress" > seems wise. > > OK with that change after the usual testing. > No this does not work: +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++98 (internal compiler error) +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++98 (test for excess errors) +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++98 compilation failed to produce executable +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++14 (internal compiler error) +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++14 (test for excess errors) +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++14 compilation failed to produce executable +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++17 (internal compiler error) +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++17 (test for excess errors) +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++17 compilation failed to produce executable +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++2a (internal compiler error) +FAIL: g++.dg/ipa/devirt-5.C -std=gnu++2a (test for excess errors) +UNRESOLVED: g++.dg/ipa/devirt-5.C -std=gnu++2a compilation failed to produce executable +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++98 (internal compiler error) +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++98 (test for excess errors) +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++98 compilation failed to produce executable +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++14 (internal compiler error) +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++14 (test for excess errors) +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++14 compilation failed to produce executable +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++17 (internal compiler error) +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++17 (test for excess errors) +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++17 compilation failed to produce executable +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++2a (internal compiler error) +FAIL: g++.dg/ipa/devirt-c-4.C -std=gnu++2a (test for excess errors) +UNRESOLVED: g++.dg/ipa/devirt-c-4.C -std=gnu++2a compilation failed to produce executable +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 (internal compiler error) +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 (test for excess errors) +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++98 compilation failed to produce executable +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 (internal compiler error) +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 (test for excess errors) +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++14 compilation failed to produce executable +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 (internal compiler error) +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 (test for excess errors) +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++17 compilation failed to produce executable +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++2a (internal compiler error) +FAIL: g++.dg/ipa/imm-devirt-2.C -std=gnu++2a (test for excess errors) +UNRESOLVED: g++.dg/ipa/imm-devirt-2.C -std=gnu++2a compilation failed to produce executable +FAIL: g++.dg/ipa/pr71146.C -std=gnu++98 (internal compiler error) +FAIL: g++.dg/ipa/pr71146.C -std=gnu++98 (test for excess errors) +FAIL: g++.dg/ipa/pr71146.C -std=gnu++14 (internal compiler error) +FAIL: g++.dg/ipa/pr71146.C -std=gnu++14 (test for excess errors) +FAIL: g++.dg/ipa/pr71146.C -std=gnu++17 (internal compiler error) +FAIL: g++.dg/ipa/pr71146.C -std=gnu++17 (test for excess errors) +FAIL: g++.dg/ipa/pr71146.C -std=gnu++2a (internal compiler error) +FAIL: g++.dg/ipa/pr71146.C -std=gnu++2a (test for excess errors) +FAIL: g++.dg/ipa/pr79776.C -std=gnu++98 (internal compiler error) +FAIL: g++.dg/ipa/pr79776.C
Re: [PATCH] Restore input_location after recursive expand_call_inline
On 1/4/21 1:12 PM, Bernd Edlinger wrote: > Hi, > > I spotted a place where input_location is clobbered accidentally. > > That is in a recursive call to expand_call_inline. The input_location > is usually restored by goto egress in this function. > > Additionally the return value of the recursive expand call is thrown > away, which does not look like a good idea. > > Although this causes no problems ATM, I wanted to fix it anyway. > > > Bootstrapped and reg-tested on x86_64-pc-linux-gnu. > Is it OK for trunk? > > > Thanks > Bernd. > > 0001-Restore-input_location-after-recursive-expand_call_i.patch > > From 88b963bba7b32972abf0ea44a01c03d643d7c6ca Mon Sep 17 00:00:00 2001 > From: Bernd Edlinger > Date: Mon, 4 Jan 2021 11:35:31 +0100 > Subject: [PATCH] Restore input_location after recursive expand_call_inline > > This is just a precautionary fix. > > 2021-01-04 Bernd Edlinger > > * tree-inline.c (expand_call_inline): Restore input_location. > Return result from recursive call. I suspect that we're always supposed to inline in this case. As asserting that successfully_inlined is true before jumping to "egress" seems wise. OK with that change after the usual testing. Jeff
[PATCH] Restore input_location after recursive expand_call_inline
Hi, I spotted a place where input_location is clobbered accidentally. That is in a recursive call to expand_call_inline. The input_location is usually restored by goto egress in this function. Additionally the return value of the recursive expand call is thrown away, which does not look like a good idea. Although this causes no problems ATM, I wanted to fix it anyway. Bootstrapped and reg-tested on x86_64-pc-linux-gnu. Is it OK for trunk? Thanks Bernd. From 88b963bba7b32972abf0ea44a01c03d643d7c6ca Mon Sep 17 00:00:00 2001 From: Bernd Edlinger Date: Mon, 4 Jan 2021 11:35:31 +0100 Subject: [PATCH] Restore input_location after recursive expand_call_inline This is just a precautionary fix. 2021-01-04 Bernd Edlinger * tree-inline.c (expand_call_inline): Restore input_location. Return result from recursive call. --- gcc/tree-inline.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 360b85f..9f7d914 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -4840,9 +4840,9 @@ 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; + goto egress; } fn = cg_edge->callee->decl; cg_edge->callee->get_untransformed_body (); -- 1.9.1