[flang-commits] [flang] [flang] Fix spurious error with separate module procedures (PR #106768)

Rainer Orth via flang-commits flang-commits at lists.llvm.org
Fri Sep 27 01:35:39 PDT 2024


rorth wrote:

```
#0  0x00007ffffefd652c in memcmp () from /lib/64/libc.so.1
#1  0x000000012cab7458 in Fortran::parser::CharBlock::Compare (this=0x1428cfd90, that=...) at /vol/llvm/src/llvm-project/local/flang/include/flang/Parser/char-block.h:141
#2  0x000000012cab72b8 in Fortran::parser::CharBlock::operator< (this=0x1428cfd90, that=...) at /vol/llvm/src/llvm-project/local/flang/include/flang/Parser/char-block.h:109
#3  0x000000012cb67874 in std::less<Fortran::parser::CharBlock>::operator() (this=0x1429162c8, __x=..., __y=...) at /usr/gcc/14/include/c++/14.2.0/bits/stl_function.h:405
#4  0x000000012cb6a74c in std::_Rb_tree<Fortran::parser::CharBlock, std::pair<Fortran::parser::CharBlock const, Fortran::common::Reference<Fortran::semantics::Symbol> >, std::_Select1st<std::pair<Fortran::parser::CharBlock const, Fortran::common::Reference<Fortran::semantics::Symbol> > >, std::less<Fortran::parser::CharBlock>, std::allocator<std::pair<Fortran::parser::CharBlock const, Fortran::common::Reference<Fortran::semantics::Symbol> > > >::_M_lower_bound (this=0x1429162c8, __x=0x1428cfd70, __y=0x1429162d0, __k=...) at /usr/gcc/14/include/c++/14.2.0/bits/stl_tree.h:1964
#5  0x000000012cb06844 in std::_Rb_tree<Fortran::parser::CharBlock, std::pair<Fortran::parser::CharBlock const, Fortran::common::Reference<Fortran::semantics::Symbol> >, std::_Select1st<std::pair<Fortran::parser::CharBlock const, Fortran::common::Reference<Fortran::semantics::Symbol> > >, std::less<Fortran::parser::CharBlock>, std::allocator<std::pair<Fortran::parser::CharBlock const, Fortran::common::Reference<Fortran::semantics::Symbol> > > >::find (this=0x1429162c8, __k=...) at /usr/gcc/14/include/c++/14.2.0/bits/stl_tree.h:2541
#6  0x000000012cada4f0 in std::map<Fortran::parser::CharBlock, Fortran::common::Reference<Fortran::semantics::Symbol>, std::less<Fortran::parser::CharBlock>, std::allocator<std::pair<Fortran::parser::CharBlock const, Fortran::common::Reference<Fortran::semantics::Symbol> > > >::find (this=0x1429162c8, __x=...) at /usr/gcc/14/include/c++/14.2.0/bits/stl_map.h:1244
#7  0x000000012cac4094 in Fortran::semantics::Scope::find (this=0x142916268, name=...) at /vol/llvm/src/llvm-project/local/flang/include/flang/Semantics/scope.h:148
#8  0x000000012e7a1f1c in Fortran::semantics::Scope::FindSymbol (this=0x142916268, name=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/scope.cpp:89
#9  0x000000012e550d40 in Fortran::semantics::ScopeHandler::FindSymbol (this=0xffffffff7fff02e0, scope=..., name=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/resolve-names.cpp:2441
#10 0x000000012e550c18 in Fortran::semantics::ScopeHandler::FindSymbol (this=0xffffffff7fff02e0, name=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/resolve-names.cpp:2426
#11 0x000000012e55e5b4 in Fortran::semantics::ScopeHandler::FindSeparateModuleProcedureInterface (this=0xffffffff7fff02e0, name=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/resolve-names.cpp:4308
#12 0x000000012e55e7f4 in Fortran::semantics::SubprogramVisitor::BeginMpSubprogram (this=0xffffffff7fff0220, name=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/resolve-names.cpp:4334
#13 0x000000012e582d24 in Fortran::semantics::ResolveNamesVisitor::BeginScopeForNode (this=0xffffffff7fff0138, node=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/resolve-names.cpp:9391
#14 0x000000012e582040 in Fortran::semantics::ResolveNamesVisitor::ResolveSpecificationParts (this=0xffffffff7fff0138, node=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/resolve-names.cpp:9274
#15 0x000000012e583de4 in Fortran::semantics::ResolveSpecificationParts (context=..., subprogram=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/resolve-names.cpp:9667
#16 0x000000012e321a74 in Fortran::evaluate::ExpressionAnalyzer::ResolveForward (this=0xffffffff7fff5198, symbol=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/expression.cpp:2677
#17 0x000000012e3231e8 in Fortran::evaluate::ExpressionAnalyzer::GetCalleeAndArguments (this=0xffffffff7fff5198, name=..., arguments=..., isSubroutine=false, mightBeStructureConstructor=true) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/expression.cpp:2886
#18 0x000000012e323040 in operator() (__closure=0xffffffff7fff1018, name=...) at /vol/llvm/src/llvm-project/local/flang/lib/Semantics/expression.cpp:2869
```

https://github.com/llvm/llvm-project/pull/106768


More information about the flang-commits mailing list