From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id D71593858C2F; Mon, 20 Mar 2023 10:19:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D71593858C2F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.98,274,1673942400"; d="scan'208";a="100883267" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 20 Mar 2023 02:19:24 -0800 IronPort-SDR: 0pW7pGXkkFu77ehaw1ereOas4r7QH+4bXdaPzhRsaDCUkgCmqly1k+zJRFxrxLs1ms+HB75+Pa k1mBAEdmcbsPCxK6ewudYlN9yoQwFZUcHnsj+RZaZW+Zrs0f3ayc+ScqrIdtzQI27SfZBjh+mi XK2Rj8Wcba+tsFoKlj1XrFBG3Kju0LWogez4QD0QgDq1tBXiw+rY5V4ctA2rRnHcpJxdYZ+vMS 2uE7EkmmlaZ1FCS5U46Nr+/W8S/5VGETAQyu+2mYqeqPs45Z8xP8LCEk1WeyfeNI5OWm1GSpwn zcY= Message-ID: <1afb51d8-b40b-824e-7d22-4b0b0a20ffc0@codesourcery.com> Date: Mon, 20 Mar 2023 11:19:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCHv3, gfortran] Escalate failure when Hollerith constant to real conversion fails [PR103628] Content-Language: en-US To: HAO CHEN GUI , gcc-patches , fortran CC: Segher Boessenkool , David , Kewen.Lin , Peter Bergner References: From: Tobias Burnus In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi, sorry for the belated reply. On 07.03.23 09:55, HAO CHEN GUI wrote: > 2023-03-07 Haochen Gui > > gcc/ > PR target/103628 > * fortran/target-memory.cc (gfc_interpret_float): Return FAIL when > native_interpret_expr gets a NULL tree. > * fortran/arith.cc (gfc_hollerith2real): Return NULL when > gfc_interpret_float fails. > * fortran/error.cc (gfc_buffered_p): Define. > * fortran/gfortran.h (gfc_buffered_p): Declare. > * fortran/intrinsic.cc: Add diagnostic.h to include list. > (do_simplify): Save errorcount and check it at finish. Report a > "Cannot simplify expression" error on a bad result if error count > doesn't change and no other errors buffered. > > gcc/testsuite/ > PR target/103628 > * gfortran.dg/pr103628.f90: New. > > Co-Authored-By: Tobias Burnus ... > --- a/gcc/fortran/intrinsic.cc > +++ b/gcc/fortran/intrinsic.cc ... > @@ -4708,7 +4710,12 @@ do_simplify (gfc_intrinsic_sym *specific, gfc_expr= *e) > > finish: > if (result =3D=3D &gfc_bad_expr) > - return false; > + { > + if (errorcount =3D=3D old_errorcount > + && (gfc_buffered_p () && !gfc_error_flag_test ())) > + gfc_error ("Cannot simplify expression at %L", &e->where); > + return false; > + } The condition looks wrong. Shouldn't it be something like + && (!gfc_buffered_p () || !gfc_error_flag_test ())) Namely: * If there is no buffering, we know that no error has been printed =E2=86= =92 call error. * With buffering, we additionally need to check for buffered errors. No buffered error =E2=86=92 call error. Otherwise LGTM. Thus, if my comment makes sense to you + it regtests, modify it, and go ahead and commit it. Sorry for the delay - and thanks again for the patch! Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955