From patchwork Sat Oct 15 22:39:44 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Kargl X-Patchwork-Id: 119998 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 397CEB70DD for ; Sun, 16 Oct 2011 09:40:10 +1100 (EST) Received: (qmail 21066 invoked by alias); 15 Oct 2011 22:40:04 -0000 Received: (qmail 20982 invoked by uid 22791); 15 Oct 2011 22:40:00 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from troutmask.apl.washington.edu (HELO troutmask.apl.washington.edu) (128.95.76.21) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 15 Oct 2011 22:39:45 +0000 Received: from troutmask.apl.washington.edu (localhost.apl.washington.edu [127.0.0.1]) by troutmask.apl.washington.edu (8.14.5/8.14.5) with ESMTP id p9FMdius039286; Sat, 15 Oct 2011 15:39:44 -0700 (PDT) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.5/8.14.5/Submit) id p9FMdint039285; Sat, 15 Oct 2011 15:39:44 -0700 (PDT) (envelope-from sgk) Date: Sat, 15 Oct 2011 15:39:44 -0700 From: Steve Kargl To: fortran@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [PATCH] fortran/50524 -- Check return status of resolving substring ref Message-ID: <20111015223944.GA39231@troutmask.apl.washington.edu> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.4.2.3i Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org resolve_ref() calls resolve_substring() but failed to check its return value. This patch does the check. 2011-10-15 Steven G. Kargl * resolve.c (resolve_ref): Check return value of resolve_substring(). 2011-10-15 Steven G. Kargl * gfortran.dg/substring_integer_index.f90: New test. Index: fortran/resolve.c =================================================================== --- fortran/resolve.c (revision 179940) +++ fortran/resolve.c (working copy) @@ -4858,7 +4859,8 @@ resolve_ref (gfc_expr *expr) break; case REF_SUBSTRING: - resolve_substring (ref); + if (resolve_substring (ref) == FAILURE) + return FAILURE; break; } Index: testsuite/gfortran.dg/substring_integer_index.f90 =================================================================== --- testsuite/gfortran.dg/substring_integer_index.f90 (revision 0) +++ testsuite/gfortran.dg/substring_integer_index.f90 (revision 0) @@ -0,0 +1,8 @@ +! { dg-do compile } +! PR fortran/50524 +! +program foo + print *, 'abc'(2.e0:3) ! { dg-error "must be of type INTEGER"} + print *,'qwe'(1:1e0) +end program foo +