| Issue |
169484
|
| Summary |
[Flang][OpenMP] crash on llvm-testsuite/Fortran/gfortran/regression/gomp/pr77374.f08
|
| Labels |
crash,
flang:openmp
|
| Assignees |
|
| Reporter |
k-arrows
|
Reproducible on Godbolt:
https://godbolt.org/z/Ke5r4eYMv
Backtrace:
```console
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0. Program arguments: /cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang -fc1 -triple x86_64-unknown-linux-gnu -S -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -mllvm -x86-asm-syntax=intel -fopenmp -resource-dir /cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/lib/clang/22 -mframe-pointer=all -o /app/output.s -x f95 /app/example.f90
#0 0x000000000441b418 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x441b418)
#1 0x00000000044185e4 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007831e2042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x000000000521c1a3 Fortran::semantics::OmpStructureChecker::CheckAtomicVariable(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&, Fortran::parser::CharBlock, bool) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x521c1a3)
#4 0x000000000556989c Fortran::semantics::OmpStructureChecker::CheckAtomicUpdateAssignment(Fortran::evaluate::Assignment const&, Fortran::parser::CharBlock) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x556989c)
#5 0x000000000556ad2c Fortran::semantics::OmpStructureChecker::CheckAtomicUpdateOnly(Fortran::parser::OpenMPAtomicConstruct const&, std::__cxx11::list<Fortran::parser::ExecutionPartConstruct, std::allocator<Fortran::parser::ExecutionPartConstruct>> const&, Fortran::parser::CharBlock) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x556ad2c)
#6 0x000000000556b4db Fortran::semantics::OmpStructureChecker::Enter(Fortran::parser::OpenMPAtomicConstruct const&) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x556b4db)
#7 0x0000000004fa9715 void Fortran::common::log2visit::Log2VisitHelper<0ul, 5ul, void, void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>, Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OmpBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OmpAllocateDirective, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPAssumeConstruct, Fortran::parser::OpenMPCriticalConstruct>(std::variant<Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OmpBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OmpAllocateDirective, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPAssumeConstruct, Fortran::parser::OpenMPCriticalConstruct> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker> const&), std::variant<Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OmpBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OmpAllocateDirective, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPAssumeConstruct, Fortran::parser::OpenMPCriticalConstruct> const&>(void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>, Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OmpBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OmpAllocateDirective, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPAssumeConstruct, Fortran::parser::OpenMPCriticalConstruct>(std::variant<Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OmpBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OmpAllocateDirective, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPAssumeConstruct, Fortran::parser::OpenMPCriticalConstruct> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker> const&)&&, unsigned long, std::variant<Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OmpBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OmpAllocateDirective, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPAssumeConstruct, Fortran::parser::OpenMPCriticalConstruct> const&) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x4fa9715)
#8 0x0000000004fa9bc8 std::enable_if<UnionTrait<Fortran::parser::OpenMPConstruct>, void>::type Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::parser::OpenMPConstruct, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>>(Fortran::parser::OpenMPConstruct const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>&) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x4fa9bc8)
#9 0x0000000004faa35a void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>>(std::__cxx11::list<Fortran::parser::ExecutionPartConstruct, std::allocator<Fortran::parser::ExecutionPartConstruct>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>&) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x4faa35a)
#10 0x0000000004fae2aa void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::parser::SubroutineSubprogram, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>>(Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>&) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x4fae2aa)
#11 0x0000000004faed1a void Fortran::common::log2visit::Log2VisitHelper<0ul, 7ul, void, void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>, Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCRoutineConstruct, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCRoutineConstruct, false>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker> const&), std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCRoutineConstruct, false>> const&>(void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>, Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCRoutineConstruct, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCRoutineConstruct, false>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::OmpStructureChecker> const&)&&, unsigned long, std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCRoutineConstruct, false>> const&) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x4faed1a)
#12 0x0000000004fb5498 Fortran::semantics::Semantics::Perform() (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x4fb5498)
#13 0x000000000447ee88 Fortran::frontend::FrontendAction::runSemanticChecks() (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x447ee88)
#14 0x00000000047276a0 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x47276a0)
#15 0x000000000447dae5 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x447dae5)
#16 0x000000000446afaf Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x446afaf)
#17 0x0000000004487433 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x4487433)
#18 0x0000000002723282 fc1_main(llvm::ArrayRef<char const*>, char const*) (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x2723282)
#19 0x00000000025b6041 main (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x25b6041)
#20 0x00007831e2029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#21 0x00007831e2029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#22 0x0000000002721d35 _start (/cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin/flang+0x2721d35)
flang-22: error: unable to execute command: Segmentation fault (core dumped)
flang-22: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 22.0.0git (https://github.com/llvm/llvm-project.git 3c3e2a295254603c5fef271135cbe733139e78eb)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /cefs/fb/fba5fba48770ecd1ded31708_clang-llvmflang-trunk-20251124/bin
flang-22: note: diagnostic msg:
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs