From patchwork Mon Nov 29 21:31:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harald Anlauf X-Patchwork-Id: 48265 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 40483385BF81 for ; Mon, 29 Nov 2021 21:31:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 40483385BF81 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1638221495; bh=KfM15QruAR/2HsVaiOXY7PCW+hfBSaVmlzDaZlphAOU=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=YQw7WSQ4fEwKZaUvE2OYyK4nasKkEVjqVwkPkiGO5x2Dk+UxSBSt5zNKEPoeVHj4G 4Ftx/b6NbCRBF1ZhmpYrXDoaHbkYpSk4UNDZyzVkKijAudzia9K2WNblMzJeCoT7bd rPSf5dJLhwJjS/x0+MC6XrXqT5qQhSaGSiXa3sCw= 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.17.21]) by sourceware.org (Postfix) with ESMTPS id 2A118385840B; Mon, 29 Nov 2021 21:31:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2A118385840B X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [79.251.15.55] ([79.251.15.55]) by web-mail.gmx.net (3c-app-gmx-bs36.server.lan [172.19.170.88]) (via HTTP); Mon, 29 Nov 2021 22:31:03 +0100 MIME-Version: 1.0 Message-ID: To: fortran , gcc-patches Subject: [PATCH] PR fortran/101565 - ICE in gfc_simplify_image_index, at fortran/simplify.c:8234 Date: Mon, 29 Nov 2021 22:31:03 +0100 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:MdwXQGGr3vahI7V4LNP7NT36Q6ygFyyruouFvq0TfEAmwOSPQzzbJMUwg/TBywzhGZfTz LVCdMfRPsQ3bauzjtGgCVp4pPfysHwuxDSTU/Zg8rjgqawrkuUsPYmm41QLiqrB4LNY8raPf4ki6 TfoVrttYKL9vslzB0wj6NrOstYzWa0E1Yt6YCzVoGO9D1b4r55H2YE8OpTS9Dhzdj1XnP/yBXT94 E4QJ9D3+aNjVgpnGmv5Bv1LtvWAdorQwvJdJIRHRXOQDFP2NwKFO7+oVs/46ncUtzoBC51KU9HGt Z0= X-UI-Out-Filterresults: notjunk:1;V03:K0:oe9iXTC568g=:BTaJyEyL21fpxpHBkAnBWh OZBIRyT8B5jpiUjIl6nGocK+jMAVKTX/apNUh0GuMuBvjW21LOvIHqhbFMb3RTP4SI9qgvSiM jluqHdfqvMkzztZnkraXE+vYYH+F12H9+Wzslz9rAvqoAftDgrLS7/JOzbb/NkIIL0awnSX0p zC/CoI+/M3Clhj8zQcxjdVRURD+MfDfX+ZPmiCWEalarY0JNo6yJ5PW3lslkKreHl87tJ0GDK R3a6oJDNJ5rEop1Ptl+HGHJ9xuwh5t+kzFVCWC9SJeNfe7IGNZYa2nQYh8Mzu/oiiDXTpEApz 1wmDIiZqWgWUIN+IYAOOWZ6zHyj7Io67jRjlgSfZ3Hn9mFzSA1Y3/d08Hn/3Kjcgp3jEo6vsi JC6gN8heSS3lndLjZvxBYsPNTRLoRueBDGAjDYbDuSlRGaP76WeImWeFDmVPBtcLF4ibITPqM r0lcQtOMzPiQgnNHPC8+n21MeICvZUAinOt/g9vXuakIjGx+mYAoIzF0ZPNvST9LBy7KWcZZX bwml8mEAVbbgFlw7Hjfz68McqtiSPSjiatGnq486JUHOWZ6vjQANm5bZRkano9wOqG3PlKdsJ 4/Acwa7R5Y7CTFEDWHRg2qL5eCtcqaQFhGEIllwY9PzeIenzaV13fl6pRr4yO5rQTcW1obDQd bpgjRoTsW6CflnnZmJ0BlPUv0jy0WSA1gU2qsL/VhOn567w6jA91xd8BoPyWJhBLxhl2KGlTZ Z/wfEUxPLVPquc7oDJ7q2Wh3YWAWqqzHLpydZpkpzpIcjN2fo4gI04EGx0c= X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_MSPIKE_H2, 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+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Dear all, a trivial one: we need to check the type of the SUB argument to the coarray IMAGE_INDEX intrinsic. It has to be an array of type integer. Patch by Steve Kargl. Regtested on x86_64-pc-linux-gnu. OK for mainline? Thanks, Harald From 58140e3cf97aedc5c9f3b3e6519027334cdc3213 Mon Sep 17 00:00:00 2001 From: Harald Anlauf Date: Mon, 29 Nov 2021 22:23:02 +0100 Subject: [PATCH] Fortran: check type of SUB argument to IMAGE_INDEX gcc/fortran/ChangeLog: PR fortran/101565 * check.c (gfc_check_image_index): Verify that SUB argument to IMAGE_INDEX is of type integer. gcc/testsuite/ChangeLog: PR fortran/101565 * gfortran.dg/coarray_49.f90: New test. --- gcc/fortran/check.c | 7 +++++++ gcc/testsuite/gfortran.dg/coarray_49.f90 | 9 +++++++++ 2 files changed, 16 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/coarray_49.f90 diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index 3e65f3d8b1f..ee3a51ee253 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -5955,6 +5955,13 @@ gfc_check_image_index (gfc_expr *coarray, gfc_expr *sub) return false; } + if (sub->ts.type != BT_INTEGER) + { + gfc_error ("Type of %s argument of IMAGE_INDEX at %L shall be INTEGER", + gfc_current_intrinsic_arg[1]->name, &sub->where); + return false; + } + if (gfc_array_size (sub, &nelems)) { int corank = gfc_get_corank (coarray); diff --git a/gcc/testsuite/gfortran.dg/coarray_49.f90 b/gcc/testsuite/gfortran.dg/coarray_49.f90 new file mode 100644 index 00000000000..370e3fd5847 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/coarray_49.f90 @@ -0,0 +1,9 @@ +! { dg-do compile } +! { dg-options "-fcoarray=lib" } +! PR fortran/101565 - ICE in gfc_simplify_image_index +! Contributed by G. Steinmetz + +program p + integer :: x[*] + print *, image_index (x, [1.0]) ! { dg-error "shall be INTEGER" } +end -- 2.26.2