Hi, LGTM, except for:
On 21.03.23 07:29, HAO CHEN GUI wrote:
@@ -4708,7 +4710,12 @@ do_simplify (gfc_intrinsic_sym *specific, gfc_expr *e) finish: if (result == &gfc_bad_expr) - return false; + { + if (errorcount == old_errorcount + && (!gfc_buffered_p () && !gfc_error_flag_test ())) + gfc_error ("Cannot simplify expression at %L", &e->where); + return false; + }
The second line of the condition now tests: * 'If buffering is disabled and no pending buffed error exists then show an error' But if should tests: * 'If (buffering is disabled) OR ((it is enabled but) no buffered error exists) then show¹ an error' Thus, you should use an '||' not a '&&': + && (!gfc_buffered_p () || !gfc_error_flag_test ())) as proposed in previous email. A quick regtesting shows no fails when doing so. OK with that change. (¹or rather: 'then buffer an error') Thanks for the patch! 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