From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 127786 invoked by alias); 15 May 2015 14:55:16 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 127763 invoked by uid 89); 15 May 2015 14:55:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.2 required=5.0 tests=AWL,BAYES_50,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: troutmask.apl.washington.edu Received: from troutmask.apl.washington.edu (HELO troutmask.apl.washington.edu) (128.95.76.21) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 15 May 2015 14:55:14 +0000 Received: from troutmask.apl.washington.edu (localhost [127.0.0.1]) by troutmask.apl.washington.edu (8.14.9/8.14.9) with ESMTP id t4FEtCFU082793 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 15 May 2015 07:55:12 -0700 (PDT) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.9/8.14.9/Submit) id t4FEtCjV082792; Fri, 15 May 2015 07:55:12 -0700 (PDT) (envelope-from sgk) Date: Fri, 15 May 2015 14:58:00 -0000 From: Steve Kargl To: fortran@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [PATCH] fortran/66039 -- Check for mangled file positioning Message-ID: <20150515145512.GB82729@troutmask.apl.washington.edu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="i0/AhcQY5QxfSsSZ" Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-SW-Source: 2015-05/txt/msg01412.txt.bz2 --i0/AhcQY5QxfSsSZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 433 The attached patch checks for mangled/incomplete file positioning statements. Regression tested on trunk with no new failures? OK to commit 2015-05-XX Steven G. Kargl PR fortran/66039 * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH, BACKSPACE, and ENDFILE statements 2015-05-XX Steven G. Kargl PR fortran/66039 * gfortran.dg/filepos1.f90: New test -- Steve --i0/AhcQY5QxfSsSZ Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="pr66039.diff" Content-length: 1443 Index: gcc/fortran/io.c =================================================================== --- gcc/fortran/io.c (revision 223094) +++ gcc/fortran/io.c (working copy) @@ -2382,9 +2382,7 @@ match_filepos (gfc_statement st, gfc_exe if (m == MATCH_NO) { m = gfc_match_expr (&fp->unit); - if (m == MATCH_ERROR) - goto done; - if (m == MATCH_NO) + if (m == MATCH_ERROR || m == MATCH_NO) goto syntax; } Index: gcc/testsuite/gfortran.dg/filepos1.f90 =================================================================== --- gcc/testsuite/gfortran.dg/filepos1.f90 (revision 0) +++ gcc/testsuite/gfortran.dg/filepos1.f90 (working copy) @@ -0,0 +1,25 @@ +! { dg-do compile } +! PR fortran/66039 +! +! Original code from Gerhard Steinmetz +! +subroutine p1 + rewind (( ! { dg-error "Syntax error in REWIND" } + rewind (- ! { dg-error "Syntax error in REWIND" } +end subroutine p1 + +subroutine p2 + flush (( ! { dg-error "Syntax error in FLUSH" } + flush (- ! { dg-error "Syntax error in FLUSH" } +end subroutine p2 + +subroutine p4 + backspace (( ! { dg-error "Syntax error in BACKSPACE" } + backspace (- ! { dg-error "Syntax error in BACKSPACE" } +end subroutine p4 + +subroutine p3 + endfile (( ! { dg-error "Expecting END SUBROUTINE" } + endfile (- ! { dg-error "Expecting END SUBROUTINE" } +end subroutine p3 + --i0/AhcQY5QxfSsSZ--