From patchwork Wed Dec 11 22:24:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harald Anlauf X-Patchwork-Id: 1207954 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-515747-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="Ur7gkluf"; dkim=temperror (0-bit key) header.d=gmx.net header.i=@gmx.net header.b="PFb0PNbT"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47YBLy15cmz9sPf for ; Thu, 12 Dec 2019 09:24:51 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:message-id:from:to:cc:subject:content-type:date :in-reply-to:references:content-transfer-encoding; q=dns; s= default; b=Akh23bOgFqSN/GJJ0gJyNMScR5k2H8L9Am4k4cjNDrdoVSObCtPpN +DNDo226NhGNHdmAxFCNE057dPHWjei79ewY4ZbyxddTvBfdu6Kiyn3B71Qtb0qA 4rRujyfEgCIHxRa7Z6/6JBaKMyRtUDtauTUwCA4/Vc3fAFT/FaZU08= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:message-id:from:to:cc:subject:content-type:date :in-reply-to:references:content-transfer-encoding; s=default; bh=DcHM4lMY0vK0j91yBpVpivStD0Q=; b=Ur7gklufb5JXMS2MCFDea+cgFYmi uicUL4jjTxdvjMNS2bZAHvniLcPR7DIKDS1MXUTlP6QkONE9AcYPIq1CZ+Ywo0Bh Tl6GluZ3uBW6iVI/V4879NXWWGBjANvrTSC7no5jdgWtKPtsGq8rVLnf4DtpX80H eisWZz+xmSFlSdY= Received: (qmail 40627 invoked by alias); 11 Dec 2019 22:24:43 -0000 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 Received: (qmail 40585 invoked by uid 89); 11 Dec 2019 22:24:40 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-9.3 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 spammy=von, gesendet, anlauf, dezember X-HELO: mout.gmx.net Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.22) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 11 Dec 2019 22:24:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1576103076; bh=CJGqOLecHC9xPvjrnual9KONfxKWA1OEOdCbqOmPmF0=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=PFb0PNbTXyW3ow0CGdfl5S+GZ9kuhKjZegevKFp9r7OWmo/Qf+MDS3Aea8CiBg6l7 P6HErkHOolz7jpurYgAd/0g/SxtoiSuyAs1rISR6R0Bw0lYIA5I6TDlAzZ6ZsalOiE FveBS46XED7divkQFt+jZw78NDJts7Wfjl3GAH2o= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [93.207.81.218] ([93.207.81.218]) by web-mail.gmx.net (3c-app-gmx-bap02.server.lan [172.19.172.72]) (via HTTP); Wed, 11 Dec 2019 23:24:35 +0100 MIME-Version: 1.0 Message-ID: From: "Harald Anlauf" To: "Thomas Koenig" Cc: gfortran , gcc-patches Subject: Aw: Re: [Patch, Fortran] PR92898 - [9/10 Regression] ICE in gfc_check_is_contiguous, at fortran/check.c:7157 Date: Wed, 11 Dec 2019 23:24:35 +0100 In-Reply-To: <819ac5f1-892f-817e-a48c-84e0fd99a41c@netcologne.de> References: <5DF0169F.8060308@gmx.de> <819ac5f1-892f-817e-a48c-84e0fd99a41c@netcologne.de> Hi Thomas, > Gesendet: Dienstag, 10. Dezember 2019 um 23:34 Uhr > Von: "Thomas Koenig" > An: "Harald Anlauf" , gfortran , gcc-patches > Betreff: Re: [Patch, Fortran] PR92898 - [9/10 Regression] ICE in gfc_check_is_contiguous, at fortran/check.c:7157 > > Hello Harald, > > > Index: gcc/fortran/check.c > > =================================================================== > > --- gcc/fortran/check.c (Revision 279183) > > +++ gcc/fortran/check.c (Arbeitskopie) > > @@ -7154,7 +7154,9 @@ bool > > gfc_check_is_contiguous (gfc_expr *array) > > { > > if (array->expr_type == EXPR_NULL > > - && array->symtree->n.sym->attr.pointer == 1) > > + && (!array->symtree || > > + (array->symtree->n.sym && > > + array->symtree->n.sym->attr.pointer == 1))) > > I have to admit I do not understand the original code here, nor > do I quite understand your fix. > > Is there any circumstance where array->expr_type == EXPR_NULL, but > is_contiguous is valid? What would go wrong if the other tests > were removed? Actually I do not know what the additional check was supposed to do. Removing it does not seem to do any harm. See below. > > > Index: gcc/testsuite/gfortran.dg/pr91641.f90 > > =================================================================== > > --- gcc/testsuite/gfortran.dg/pr91641.f90 (Revision 279183) > > +++ gcc/testsuite/gfortran.dg/pr91641.f90 (Arbeitskopie) > > @@ -1,7 +1,9 @@ > > ! { dg-do compile } > > ! PR fortran/91641 > > -! Code conyributed by Gerhard Steinmetz > > +! PR fortran/92898 > > +! Code contributed by Gerhard Steinmetz > > program p > > real, pointer :: z(:) > > print *, is_contiguous (null(z)) ! { dg-error "shall be an associated" } > > + print *, is_contiguous (null()) ! { dg-error "shall be an associated" } > > end > > Sometimes, it is necessary to change test cases, when error messages > change. If this is not the case, it is better to add new tests to > new test cases - this makes regression hunting much easier. > > Regards > > Thomas Agreed. Please find the modified patches below. OK for trunk / 9 ? Thanks, Harald 2019-12-11 Harald Anlauf PR fortran/92898 * check.c (gfc_check_is_contiguous): Simplify check to handle arbitrary NULL() argument. 2019-12-11 Harald Anlauf PR fortran/92898 * gfortran.dg/pr92898.f90: New test. Index: gcc/fortran/check.c =================================================================== --- gcc/fortran/check.c (Revision 279254) +++ gcc/fortran/check.c (Arbeitskopie) @@ -7153,8 +7153,7 @@ gfc_check_ttynam_sub (gfc_expr *unit, gfc_expr *na bool gfc_check_is_contiguous (gfc_expr *array) { - if (array->expr_type == EXPR_NULL - && array->symtree->n.sym->attr.pointer == 1) + if (array->expr_type == EXPR_NULL) { gfc_error ("Actual argument at %L of %qs intrinsic shall be an " "associated pointer", &array->where, gfc_current_intrinsic); Index: gcc/testsuite/gfortran.dg/pr92898.f90 =================================================================== --- gcc/testsuite/gfortran.dg/pr92898.f90 (nicht existent) +++ gcc/testsuite/gfortran.dg/pr92898.f90 (Arbeitskopie) @@ -0,0 +1,6 @@ +! { dg-do compile } +! PR fortran/92898 +! Code contributed by Gerhard Steinmetz +program p + print *, is_contiguous (null()) ! { dg-error "shall be an associated" } +end