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. 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. Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955