From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116074 invoked by alias); 1 Mar 2020 19:33:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 116058 invoked by uid 89); 1 Mar 2020 19:33:15 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-4.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=H*r:sk:andrew-, HX-Spam-Relays-External:sk:andrew-, H*RU:sk:andrew-, benson X-HELO: mail-pj1-f68.google.com Received: from mail-pj1-f68.google.com (HELO mail-pj1-f68.google.com) (209.85.216.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 01 Mar 2020 19:33:13 +0000 Received: by mail-pj1-f68.google.com with SMTP id s8so1671155pjq.0; Sun, 01 Mar 2020 11:33:13 -0800 (PST) Return-Path: Received: from andrew-precision-3520.localnet (66-215-238-7.dhcp.rvsd.ca.charter.com. [66.215.238.7]) by smtp.gmail.com with ESMTPSA id 196sm18282988pfy.86.2020.03.01.11.33.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 01 Mar 2020 11:33:10 -0800 (PST) From: Andrew Benson To: fortran@gcc.gnu.org Cc: gcc-patches@gcc.gnu.org Subject: Re: [patch, fortran] PR93486 - ICE on valid with nested submodules and long submodule names Date: Sun, 01 Mar 2020 19:33:00 -0000 Message-ID: <5143379.kh7g2yUdUI@andrew-precision-3520> User-Agent: KMail/5.2.3 (Linux/4.4.0-174-generic; KDE/5.36.0; x86_64; ; ) In-Reply-To: <2861300.JBue2MTAIU@andrew-precision-3520> References: <2861300.JBue2MTAIU@andrew-precision-3520> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-SW-Source: 2020-03/txt/msg00010.txt *ping* On Tuesday, January 28, 2020 4:45:59 PM PST Andrew Benson wrote: > I opened PR93486 for this problem: > > The following causes an ICE with revision > ad690d79cfbb905c5546c9333c5fd089d906505b: > > module ivs > interface l > module procedure l_ > end interface l > contains > function l_() > end function l_ > end module ivs > > module aModeratleyLongModuleName > use ivs > interface > module subroutine cmo() > end subroutine cmo > end interface > end module aModeratleyLongModuleName > > submodule (aModeratleyLongModuleName) > aNameForASubmoduleThatIsVeryLongButWhichIsLegalStill > contains > module procedure cmo > end procedure cmo > end submodule aNameForASubmoduleThatIsVeryLongButWhichIsLegalStill > > submodule > (aModeratleyLongModuleName:aNameForASubmoduleThatIsVeryLongButWhichIsLegalSt > ill) sb > end submodule sb > > submodule (aModeratleyLongModuleName:sb) sc > end submodule sc > > > $ gfortran -v > Using built-in specs. > COLLECT_GCC=gfortran > COLLECT_LTO_WRAPPER=/data001/abenson/Galacticus/Tools_Devel_Install/bin/../ > libexec/gcc/x86_64-pc-linux-gnu/10.0.1/lto-wrapper > Target: x86_64-pc-linux-gnu > Configured with: ../gcc-git/configure --prefix=/home/abenson/Galacticus/ > Tools_Devel --enable-languages=c,c++,fortran --disable-multilib > Thread model: posix > Supported LTO compression algorithms: zlib > gcc version 10.0.1 20200128 (experimental) (GCC) > > > $ gfortran -c test.F90 -o test.o > f951: internal compiler error: Segmentation fault > 0xe1bc9f crash_signal > ../../gcc-git/gcc/toplev.c:328 > 0x7f98119c71ef ??? > > /data001/abenson/Galacticus/Tools/glibc-2.12.1/signal/../sysdeps/unix/ > sysv/linux/x86_64/sigaction.c:0 > 0x84b3f0 gfc_use_modules() > ../../gcc-git/gcc/fortran/module.c:7315 > 0x85acc8 use_modules > ../../gcc-git/gcc/fortran/parse.c:114 > 0x866daa parse_module > ../../gcc-git/gcc/fortran/parse.c:6111 > 0x86733c gfc_parse_file() > ../../gcc-git/gcc/fortran/parse.c:6428 > 0x8b780f gfc_be_parse_file > ../../gcc-git/gcc/fortran/f95-lang.c:210 > Please submit a full bug report, > with preprocessed source if appropriate. > Please include the complete backtrace with any bug report. > See for instructions. > > > The ICE goes away if the module and/or submodule names are made shorter. > > The problem is caused when loading (generic or operator) interfaces from a > module file. The module name can include the submodule name, so a size of > 2*GFC_MAX_SYMBOL_LEN+2 is required to read this in. > > The attached patch fixes this problem and regression tests cleanly *if* the > patch for PR87103 is applied (otherwise that problem gets triggered by the > new test case). > > PR87103 has been a long-standing issue - there's a patch that works (either > my original ugly fix, or the better fix proposed by Bernhard at https:// > gcc.gnu.org/ml/fortran/2018-09/msg00044.html ). It would be very nice to > get one of these patches committed. > > -Andrew -- * Andrew Benson: http://users.obs.carnegiescience.edu/abenson/contact.html * Galacticus: https://github.com/galacticusorg/galacticus