On Thu, Oct 06, 2022 at 06:15:52PM +0200, Tobias Burnus wrote: > On 06.10.22 14:17, Jakub Jelinek wrote: > > On Thu, Oct 06, 2022 at 12:55:01PM +0200, Tobias Burnus wrote: > > > I don't know whether it makes sense to handle – in the long run – the > > > case of se.pre/se.post being nonempty – and, if so, how. > > I think it is essential not to throw those away, > > if se.pre or se.post, you can e.g. expand it roughly as C/C++ ({ cond; }), > > in GENERIC it can be say a TARGET_EXPR with a boolean > > temporary as slot, where the the initializer will be the > > se.pre part, followed by MODIFY_EXPR which sets the slot to se.expr > > value and followed by se.post. > > Like as attached? – It did survive regtesting.
LGTM, thanks. > BTW: The assumption in assume-4.f90 does not help, but I think that's > expected. I wonder whether it will work in both cases after your > gimplify work. Well, gimplify + gimple-lower but more importantly ranger work later on, at least that's the hope... Jakub