Re: [PATCH] Fix segfault with inlining

2013-09-17 Thread Eric Botcazou
> That's true... so you can only simplify is_parameter_of by dropping > the context check. OK, thanks, installed with this modification and the fix for the oversight spotted by Jakub, after retesting on x86-64/Linux. -- Eric Botcazou

Re: [PATCH] Fix segfault with inlining

2013-09-17 Thread Richard Biener
On Tue, Sep 17, 2013 at 10:42 AM, Eric Botcazou wrote: >> Yeah, I thought testing for a PARM_DECL should be sufficient? For >> nested functions references to outer parms should have been lowered via the >> static chain at the point tree-inline.c sees them. > > OK for the latter point, but are you

Re: [PATCH] Fix segfault with inlining

2013-09-17 Thread Jakub Jelinek
On Fri, Sep 13, 2013 at 04:29:48PM +0200, Eric Botcazou wrote: > @@ -4748,6 +4774,8 @@ copy_gimple_seq_and_replace_locals (gimp >id.transform_call_graph_edges = CB_CGE_DUPLICATE; >id.transform_new_cfg = false; >id.transform_return_to_modify = false; > + id.transform_parameter = false;

Re: [PATCH] Fix segfault with inlining

2013-09-17 Thread Eric Botcazou
> Yeah, I thought testing for a PARM_DECL should be sufficient? For > nested functions references to outer parms should have been lowered via the > static chain at the point tree-inline.c sees them. OK for the latter point, but are you sure for the former? My understanding is that we're already

Re: [PATCH] Fix segfault with inlining

2013-09-17 Thread Richard Biener
On Tue, Sep 17, 2013 at 9:03 AM, Eric Botcazou wrote: >> I've looked at the C++ testcase >> >> int foo (int &x) >> { >> try { >> return x; >> } >> catch (...) >> { >> return 0; >> } >> } >> >> which exhibits exactly the behavior you quote - return x is considered >> throwing an e

Re: [PATCH] Fix segfault with inlining

2013-09-17 Thread Eric Botcazou
> I've looked at the C++ testcase > > int foo (int &x) > { > try { > return x; > } > catch (...) > { > return 0; > } > } > > which exhibits exactly the behavior you quote - return x is considered > throwing an exception. The C++ FE doesn't arrange for TREE_THIS_NOTRAP to > be s

Re: [PATCH] Fix segfault with inlining

2013-09-16 Thread Jason Merrill
On 09/16/2013 05:28 AM, Richard Biener wrote: which exhibits exactly the behavior you quote - return x is considered throwing an exception. The C++ FE doesn't arrange for TREE_THIS_NOTRAP to be set here (maybe due to this issue you quote?). I haven't been aware of TREE_THIS_NOTRAP, but we coul

Re: [PATCH] Fix segfault with inlining

2013-09-16 Thread Richard Biener
On Fri, Sep 13, 2013 at 4:29 PM, Eric Botcazou wrote: > Hi, > > in Ada parameters can be passed by reference: in this case, the address of the > argument is directly passed to the callee, which dereferences it to access the > argument; now Ada also enables -fexceptions -fnon-call-exceptions, which

[PATCH] Fix segfault with inlining

2013-09-13 Thread Eric Botcazou
Hi, in Ada parameters can be passed by reference: in this case, the address of the argument is directly passed to the callee, which dereferences it to access the argument; now Ada also enables -fexceptions -fnon-call-exceptions, which means that any pointer dereference is seen as the potential