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