From patchwork Thu Jun 4 19:06:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harald Anlauf X-Patchwork-Id: 1303699 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=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@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; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=FLIfDz63; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (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 ozlabs.org (Postfix) with ESMTPS id 49dFcg1nDyz9sSd for ; Fri, 5 Jun 2020 05:06:27 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8FFF43890432; Thu, 4 Jun 2020 19:06:22 +0000 (GMT) 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 22F3B383F86A; Thu, 4 Jun 2020 19:06:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 22F3B383F86A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=anlauf@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1591297576; bh=Oy7LOvASxH8hQynsr8Jx554vgoQ6kiUFjxxP5Sv3H/E=; h=X-UI-Sender-Class:From:To:Subject:Date; b=FLIfDz63T8rBSS4Jb6TrZdocdFxEr/SlPtaQhK9IsU+JXEhng0MLH2PG8KTgu7CT/ 5vUyXTUYqneofc6fw7YBOUYnTcgAVaUcq96FWEE/95hkdX8JZE7B29bNF4PUS1W/ih NRjs/mtqwHN7UaPo9GJGwEwMZXi1Nyeb0nigVX3Y= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [93.207.91.90] ([93.207.91.90]) by web-mail.gmx.net (3c-app-gmx-bs48.server.lan [172.19.170.101]) (via HTTP); Thu, 4 Jun 2020 21:06:16 +0200 MIME-Version: 1.0 Message-ID: From: Harald Anlauf To: fortran , gcc-patches Subject: [PATCH, committed] PR fortran/95500 - Segfault compiling extra interface on intrinsic Date: Thu, 4 Jun 2020 21:06:16 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:eIy6iX8tzzV43VvmxyFaDg4ugtNG1/fLtkscK2F6UN4lE0nkOWquouL9m8BMJgPvC5cQ+ HMp+y5Et3OngUbi4gK2kplh0f4USivDtdZAWufauiLa7yoDLh/oMLSSuWuNygRadoYYdDtRU2CP2 Ty5W58YUixwXKOF38gfGcvAUvVx9ZLIKW1lvFH7pR36qR395F0xuYBWvIEBr/7eL96LPpmXstCvN r1dZdDBDcPWXXRs77XB1wXGQeIVKiUtGmHO47ufh63+J0nhbJkpAmBkHzhebmdWF5g0EHojcEYz6 lM= X-UI-Out-Filterresults: notjunk:1;V03:K0:fCoPjrnr9wc=:lXc7NbG9MXx/ayop3UQGan +SZD8+3WpTPKbIcx8M7r70RnIBtAbKREa/CPMzeFPIZ4Jh8Yk0/Vu+jZPwjiGOXfl+nm4FMYL h+BEx8Az3KSIkJAOOQObA87Ba9g3R3HunK/+DwKyMOrDqVDX4406iDTSSjleyq+sIWr7vkGnI l0Wds99OzT0UVsjF23HGdH5c4Ifs4hFSQmJeO8iYCJc1VqV8NKkya6liK34RDd1zWXfqxWkR+ P6VNBWyKKrXjGZxX3oYo2YeYkOyinJsWRf1fZUD2loDfJcuu4S+5BBN1yc4yO43Ke0u5FUdb9 wFk5kQouoV+7biL+8T7JX9b3lHesOzI0xoWwLmnhDtOxd6hXJbz0EPXZYkFeTd6MVUUN6I3NC oMQ93gnuLyK8C3hyyGN7my4wNV4tZ91+dcp9+090almkkG9Xd1Xmv8QqHc9UTnwjl7nVLm1RX GFv9xrJt3oteRKWC54Ak5JCmKMuhB5mFoKY0qgXreR7iLv0QjULLMHpR2sUiZlgxIZmLfCfAP jpaxFKlCTDp/epyOP+Dr+c+SgZA2drn+tU3RIVaturJXLhNurYjRhZK06yCuGw/2a3Y7im5Rw R0BiRiEQ7iDv5YHlYPJadwMVBFkAYRX3cczlXUbFOwILSwIKi8sMKLjWBjdHchGQaMakUkGNL FvxuD1qVWHMy/k7nIejZswS/k/uvZOJNBpT0/sqMny8Gug9azuNpf3QqqcQyRVw0bOAQ= X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: , Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" Committed as obvious. Regtests cleanly on x86_64-pc-linux-gnu. Thanks to Steve Kargl for the patch. This is an ICE-on-valid due to a NULL pointer dereference; it looks safe and could be backported to 9/10. Thanks, Harald PR fortran/95500 - Segfault compiling extra interface on intrinsic Converting an expression so that it can be passed by reference could result in a NULL pointer dereference. 2020-06-04 Steven G. Kargl Harald Anlauf gcc/fortran/ PR fortran/95500 * trans-expr.c (gfc_conv_expr_reference): Do not dereference NULL pointer. gcc/testsuite/ PR fortran/95500 * gfortran.dg/pr95500.f90: New test. diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 435eaeb2c99..8b2afd27fb3 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -8811,6 +8811,7 @@ gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr, bool add_clobber) if (expr->expr_type == EXPR_FUNCTION && ((expr->value.function.esym + && expr->value.function.esym->result && expr->value.function.esym->result->attr.pointer && !expr->value.function.esym->result->attr.dimension) || (!expr->value.function.esym && !expr->ref diff --git a/gcc/testsuite/gfortran.dg/pr95500.f90 b/gcc/testsuite/gfortran.dg/pr95500.f90 new file mode 100644 index 00000000000..e9eb7c65c86 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr95500.f90 @@ -0,0 +1,15 @@ +! { dg-do compile } +! PR fortran/95500 - ICE compiling extra interface on intrinsic + +program test_intrinsic + implicit none + intrinsic :: alog + intrinsic :: dlog + real (4), parameter :: one = 1 + + interface ln + procedure :: alog, dlog + end interface ln + + write (*,*) 'ln 1', ln (one) +end program test_intrinsic