From patchwork Mon May 25 21:18:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harald Anlauf X-Patchwork-Id: 1297565 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=8.43.85.97; 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=Ev2gZFzP; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 49W92F47sLz9sPF for ; Tue, 26 May 2020 07:18:59 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3B56738930D1; Mon, 25 May 2020 21:18:55 +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.20]) by sourceware.org (Postfix) with ESMTPS id 1E106385DC32; Mon, 25 May 2020 21:18:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1E106385DC32 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=1590441530; bh=UzFfB1NZ/ch9MnIGXe1FMFCeoNi3t/wPdza8WF2DqQ0=; h=X-UI-Sender-Class:From:To:Subject:Date; b=Ev2gZFzPtuU27KV3mhYTRAZKseKvuRmgWAP3VFaogqjfeaFxISANtDdXKT5seNWTF aTbKfIUFZ7VLHrHSikSYLf+JBhlJXdO2i7D+GouIqLNLMBxJG1PmcF/pPXA2+OUcWl wjdHRE7Q8ZSEPsEspmMXGDgZJWPTQKmj5rJQbMsM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [93.207.89.36] ([93.207.89.36]) by web-mail.gmx.net (3c-app-gmx-bap23.server.lan [172.19.172.93]) (via HTTP); Mon, 25 May 2020 23:18:50 +0200 MIME-Version: 1.0 Message-ID: From: "Harald Anlauf" To: fortran , gcc-patches Subject: [PATCH] PR fortran/95089 - ICE in gfc_get_derived_type, at fortran/trans-types.c:2843 Date: Mon, 25 May 2020 23:18:50 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:yfvD2OiBbnzC5GeDmQV7XgQQG7UD5RODroISqOqeCKOG4+1wcUGjPbYZukv4sKPiUQ8ky WaM5rfn2gEB0rcxAeF0UHP1FvaYOvetWe0EJiREzcWljrwS0yQ0aWbjN9f+FtNV+PyBMbiVtS5cL DbGBYnDQSM4Hc+p7frfpPgkfO863CWZMWaoh+SbG1+Vj5L8MH19DBGo8MHp5mVImN0WHUII/ULLs Tiefuev7M0on6BhLTVJH9JiW+jaIKJH/tn5njFYRlLrOhJ4NI3fuCuAVRWMTYmwwoWjXrTGCrInZ so= X-UI-Out-Filterresults: notjunk:1;V03:K0:jWyT9eF6mKw=:qV5OZtEHaKpQdrCxSd8+mw 5a/dGf8M+pd/rq8SvSC1r+GDc8tPPNGtR0nTUpTwBkG0RqrqV7IMjrJ7UtVCJmXjlxplHHJ3V 3bDUq1jdw5GKt3eREBtfs1WFgaz/QytlpmDCjliAB7ouyhR2cvtL7eGRhKXbvyt7XM/e5ZSr4 2e7/c3E5JrFPnNtuYPERuoQQOEWQNuP7amGWz3xjEJIAPEbq2tf08Zn0CCGZy2WKw6Pggqntt tVIOnVH1BCuK+4lSFT2gPqD6EjQ6dLvQQxYwKDptWGSs2V7hlx07i3hRo8h9OewMESzPzzmdC vLcHaoL8gu+VpowDoDXhFs1gme9/IpsNnyXJ0sZU/ZDlKZ/vx1AN0fBl+ynbbjI8abANeJiHS XMIp06GJqyC3JFDr2reANRFivSPIh6jt4I/mrUSYNCBkDL0IExvirrTMxtYDW1G1n5oYJzEpX keStIybXedkGG+m1GSIsw76eU4TQtYjo9iz4z/Lxe/FRqu2d62oqv//Ei5dapcLvy0ScL6k+F At6n+kjKkLQyzN/2c14SorFfIUcOV15dHAMVunZjjQhNtSg0dwt7hYwHUOhslFki5G/1pyixD 61oXbYlVS/8DBJjuo70gg5Q+mvv/JCkqZioTZ7Ac3AUbZwyQpw2lixiC44QVkozfoKSRxOFbl nlq7EOvXXcukN9/XHucbQAIUtn0W8Fy7RbmK5Ew1AwQ3zQQDngZ3JULbFMTAq65Ab8bI= X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_NUMSUBJECT, 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" Another rather obvious case of a buffer too small to hold a name-mangled symbol, this time with coarrays enabled. OK for master? Thanks, Harald PR fortran/95089 - ICE in gfc_get_derived_type, at fortran/trans-types.c:2843 For long module name, derive type and component name, the generated name-mangled symbol did not fit into a buffer when coarrays were enabled. Provide sufficiently large temporary. gcc/fortran/ 2020-05-25 Harald Anlauf PR fortran/95089 * trans-types.c (gfc_get_derived_type): Enlarge temporary to hold mangled name "_caf_symbol". gcc/testsuite/ 2020-05-25 Harald Anlauf PR fortran/95089 * gfortran.dg/pr95089.f90: New test. diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index b7712dc74d1..99844812505 100644 --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -2836,9 +2836,10 @@ copy_derived_types: && (c->attr.allocatable || c->attr.pointer) && !derived->attr.is_class) { - char caf_name[GFC_MAX_SYMBOL_LEN]; + /* Provide sufficient space to hold "_caf_symbol". */ + char caf_name[GFC_MAX_SYMBOL_LEN + 6]; gfc_component *token; - snprintf (caf_name, GFC_MAX_SYMBOL_LEN, "_caf_%s", c->name); + snprintf (caf_name, sizeof (caf_name), "_caf_%s", c->name); token = gfc_find_component (derived, caf_name, true, true, NULL); gcc_assert (token); c->caf_token = token->backend_decl; diff --git a/gcc/testsuite/gfortran.dg/pr95089.f90 b/gcc/testsuite/gfortran.dg/pr95089.f90 new file mode 100644 index 00000000000..1cd20f0ccc5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr95089.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! { dg-options "-fcoarray=lib" } +! +! PR fortran/95089 - ICE in gfc_get_derived_type, at fortran/trans-types.c:2843 + +module m23456789012345678901234567890123456789012345678901234567890123 + type t23456789012345678901234567890123456789012345678901234567890123 + type (t23456789012345678901234567890123456789012345678901234567890123), & + pointer :: z23456789012345678901234567890123456789012345678901234567890123 + end type t23456789012345678901234567890123456789012345678901234567890123 +end