Re: [patch, fortran] PR93461 - Bogus "symbol is already defined" with long subroutine names in submodule

2020-01-28 Thread Andrew Benson
Hi Tobias, Thanks - committed as https://gcc.gnu.org/git/gitweb.cgi? p=gcc.git;a=commit;h=ad690d79cfbb905c5546c9333c5fd089d906505b I'll send a separate email about changes to the release notes. -Andrew On Tuesday, January 28, 2020 6:49:54 PM PST Tobias Burnus wrote: > Hi Andrew, > > On

Re: [patch, fortran] PR93461 - Bogus "symbol is already defined" with long subroutine names in submodule

2020-01-28 Thread Tobias Burnus
Hi Andrew, On 1/28/20 5:41 PM, Andrew Benson wrote: Can you also update the comment before the #define? It currently has: Thanks for the suggestion. An updated patch is attached. Thanks. LGTM now. PS: I wonder whether there are relevant systems which will fail because they do not handle that

Re: [patch, fortran] PR93461 - Bogus "symbol is already defined" with long subroutine names in submodule

2020-01-28 Thread Andrew Benson
Hi Tobias, > > The problem occurs because GFC_MAX_MANGLED_SYMBOL_LEN is set to > > GFC_MAX_SYMBOL_LEN*2+4, which is sufficient for a module name plus > > function name (plus the additional "_"'s that get prepended), but > > insufficient if a submodule name is included. The name then gets > >

Re: [patch, fortran] PR93461 - Bogus "symbol is already defined" with long subroutine names in submodule

2020-01-28 Thread Tobias Burnus
Hi Andrew, On 1/27/20 9:57 PM, Andrew Benson wrote: The problem occurs because GFC_MAX_MANGLED_SYMBOL_LEN is set to GFC_MAX_SYMBOL_LEN*2+4, which is sufficient for a module name plus function name (plus the additional "_"'s that get prepended), but insufficient if a submodule name is included.

[patch, fortran] PR93461 - Bogus "symbol is already defined" with long subroutine names in submodule

2020-01-27 Thread Andrew Benson
I created PR93461 for this issue: The following code causes a bogus "symbol is already defined" error (using git commit 73380abd6b2783215c7950a2ade5e3f4b271e2bc): module aModuleWithAnAllowedName interface module subroutine aShortName() end subroutine aShortName end interface