https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93461
Bug ID: 93461
Summary: Bogus "symbol is already defined" with long subroutine
names in submodule
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: abensonca at gmail dot com
Target Milestone: ---
The following code causes a bogus "symbol is already defined" error (using git
commit 472dc648ce3e7661762931d584d239611ddca964):
module aModuleWithAnAllowedName
interface
module subroutine aShortName()
end subroutine aShortName
end interface
end module aModuleWithAnAllowedName
submodule (aModuleWithAnAllowedName)
aSubmoduleWithAVeryVeryVeryLongButEntirelyLegalName
contains
subroutine aShortName()
call aSubroutineWithAVeryLongNameThatWillCauseAProblem()
call aSubroutineWithAVeryLongNameThatWillCauseAProblemAlso()
end subroutine aShortName
subroutine aSubroutineWithAVeryLongNameThatWillCauseAProblem()
end subroutine aSubroutineWithAVeryLongNameThatWillCauseAProblem
subroutine aSubroutineWithAVeryLongNameThatWillCauseAProblemAlso()
end subroutine aSubroutineWithAVeryLongNameThatWillCauseAProblemAlso
end submodule aSubmoduleWithAVeryVeryVeryLongButEntirelyLegalName
$ 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 20200124 (experimental) (GCC)
$ gfortran -c symlength.F90 -o symlength.o -ffree-line-length-none -frecursive
-pthread -Wall -fbacktrace -ffpe-trap=invalid,zero,overflow -fdump-core -O3
-ffinite-math-only -fno-math-errno -fopenmp -g
/tmp/cc8B4Hmp.s: Assembler messages:
/tmp/cc8B4Hmp.s:20: Error: symbol
`__amodulewithanallowedname.asubmodulewithaveryveryverylongbutentirelylegalname_MOD_asubroutinewithaverylongnamethatwillcauseaprobl'
is already defined