From patchwork Tue Jan 25 21:03:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harald Anlauf X-Patchwork-Id: 1584267 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=WosnWx70; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Jjzqz40RQz9tT8 for ; Wed, 26 Jan 2022 08:04:30 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3B6F5385C40A for ; Tue, 25 Jan 2022 21:04:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3B6F5385C40A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1643144667; bh=8TfdFgmUIA9Pnnl4ZtbJK00UhmZ9BHb6XxaTLCyLhIc=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=WosnWx70azaaI/BQHry3R/354IJU2C8wbodLYsz9XPSFsaNuK4hF0+SSjrEov14V0 Rp5qJ0ICnUwZ++3XhoSrYZdqtoMDNvOxnNgryKipeNL6fuc/qiqAaHvT76RexuUWyq gRVPwy9p9Z2MNsxqgR5C6m2gNU3A2k4U20qSa8yc= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by sourceware.org (Postfix) with ESMTPS id 0F122385C403; Tue, 25 Jan 2022 21:03:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0F122385C403 X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [93.207.86.57] ([93.207.86.57]) by web-mail.gmx.net (3c-app-gmx-bs06.server.lan [172.19.170.55]) (via HTTP); Tue, 25 Jan 2022 22:03:27 +0100 MIME-Version: 1.0 Message-ID: To: fortran , gcc-patches Subject: [pushed] PR/fortran 104227 - [9/10/11/12 Regression] ICE virtual memory exhausted: Cannot allocate memory Date: Tue, 25 Jan 2022 22:03:27 +0100 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:FruE1XsROHbFbAgtreybycgtAAVzGHlC3wxNoqJWAVsT3AaKlMEsz7JrIn0i7QhLkt9mj p/1naHNzPIbaxUbIAhgBfCZHZbuiZjC/UDLONVfaCb30XVWCESAQq2cKUvpd8OMzSQjHDRiKTIEo 6dLIR1/UzNxCX7h6vn1UijtuxaozoLzN8mia1S+eqO0SlQiF3Aq/kUwFNjfaQ9pRaiMU5lz1e8hy zcim5iddlBdFVKZkIn505EjzYy/4iVF+/vfKlVL3i6EkBfsMdDo9lFh+r0KZhYzWoklm3ODUrsti nc= X-UI-Out-Filterresults: notjunk:1;V03:K0:ZM/SfdGooSU=:8EY0otXaVE1T7WPvpvvHxm r7qTPd+pcCup697/NwvyLWgWdGeGAQK8SY+0iDZTCNMizA+1aR21I8QEQKNeJCh1drDIJcAa1 C9flc6RJfrUEiAr/BhXciQB8CRQv/nLCnKUIJpW2Y9waFOsrQrq6FQv6RG9C2cIcXvpaNThys Rsb0dZBq0UalKM59LvX6Zy+z6fmXccV8r0xuTQN8QdQsTveh/E5nBxN18EYbQ7aHYtHmAR7bC ncoc69MUpeDRzoNAYMuqyRUjAL/9yMf3+I8cFQm4jOZ9sCqcG+GLzU/+mpHdOCjTPahRUimMf zcEiNt689cvpLBlHUqeKvhGKMuRj0r79DrZLhPGJOpDquEAhWToAPDlxANZDv1gv978SEQTfv sC1cAmD4R8Pn1fmkyB1msT7qsJuipC2nedgsRi252kzH8Vnj7x8FjvX5s/MfPF7cpeKZrdhL/ fvDpvJ3XKr0Q2ZJdIzllQ+yt1e/FlxOX46LaqcSBr2kYoYsyQSnh9uVDmzGWgofJacTQ7pY2w orm4lhnpnPircaswLGIDOfpiWxoxfIor9++Hw3tMQbfsvAaesP7wVcRsCBOpjmZqKwuD973Oz kAY1TiJIaIhf53osL8bifYNweHa0vxqUbHSkdW2aqHS3/4NpcUnC7ShcjONyCoMFS25Y28FYG IDBCtpSH3sYIu1hHOUFsmJdqHs0nmwfIavqFSiMhcMObRYQsONBCddDhet+OZ4c8JcM2vPzuO y//Vid4iL5mLWWnuIHbvn2gdgCEMxJ4SiPBfT+fcaHFHS7Sqhhr+Q+83PPtozRPLbWFOYZh2g wWi+yFv X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Harald Anlauf via Gcc-patches From: Harald Anlauf Reply-To: Harald Anlauf Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Dear Fortranners, committed as obvious after regtesting on x86_64-pc-linux-gnu. We already had a check for the MOLD argument to the TRANSFER intrinsic for having storage size 0, which failed if MOLD was an EXPR_VARIABLE although having rank != 0. Duh. Adjusting that check fixed the issue. I intend to backport to the affected branches after some waiting time. Thanks, Harald From ec543c9833c2d9283c035cd8430849eb4ec04406 Mon Sep 17 00:00:00 2001 From: Harald Anlauf Date: Tue, 25 Jan 2022 21:56:39 +0100 Subject: [PATCH] Fortran: MOLD argument to TRANSFER intrinsic having storage size zero gcc/fortran/ChangeLog: PR fortran/104227 * check.cc (gfc_calculate_transfer_sizes): Fix checking of arrays passed as MOLD argument to the TRANSFER intrinsic for having storage size zero. gcc/testsuite/ChangeLog: PR fortran/104227 * gfortran.dg/transfer_check_6.f90: New test. --- gcc/fortran/check.cc | 2 +- gcc/testsuite/gfortran.dg/transfer_check_6.f90 | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/transfer_check_6.f90 diff --git a/gcc/fortran/check.cc b/gcc/fortran/check.cc index 4fa05ee7e9b..d6c6767ae9e 100644 --- a/gcc/fortran/check.cc +++ b/gcc/fortran/check.cc @@ -6151,7 +6151,7 @@ gfc_calculate_transfer_sizes (gfc_expr *source, gfc_expr *mold, gfc_expr *size, * If SIZE is present, the result is an array of rank one and size SIZE. */ if (result_elt_size == 0 && *source_size > 0 && !size - && mold->expr_type == EXPR_ARRAY) + && (mold->expr_type == EXPR_ARRAY || mold->rank)) { gfc_error ("% argument of % intrinsic at %L is an " "array and shall not have storage size 0 when % " diff --git a/gcc/testsuite/gfortran.dg/transfer_check_6.f90 b/gcc/testsuite/gfortran.dg/transfer_check_6.f90 new file mode 100644 index 00000000000..dffd0913f0d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/transfer_check_6.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! PR fortran/104227 - ICE virtual memory exhausted +! Contributed by G.Steinmetz + +program p + type t + end type + type(t) :: x(2) + print *, transfer(1, x) ! { dg-error "shall not have storage size 0" } + x = transfer(1, x) ! { dg-error "shall not have storage size 0" } +end -- 2.31.1