Le 08/06/2023 à 07:57, Paul Richard Thomas via Fortran a écrit :
Hi Harald,In answer to your question: void gfc_replace_expr (gfc_expr *dest, gfc_expr *src) { free_expr0 (dest); *dest = *src; free (src); } So it does indeed do the job.
Sure, but his comment was about the case gfc_replace_expr is *not* executed.
I should perhaps have remarked that, following the divide error, gfc_simplify_expr was returning a mutilated version of the expression and this was somehow connected with successfully simplifying the parentheses. Copying and replacing on no errors deals with the problem.
Is the expression mutilated enough that it can't be safely freed?
