-
Couldn't load subscription status.
- Fork 15k
Open
Description
Reproducer:
https://godbolt.org/z/Ph7ffG7xY
!$omp atomic capture i = j(1) j(1) = i !$omp end atomic endBacktrace:
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/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/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/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/lib/clang/22 -mframe-pointer=all -o /app/output.s -x f95 /app/example.f90 #0 0x00000000041f91f8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x41f91f8) #1 0x00000000041f63c4 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0 #2 0x000073b2e3a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) #3 0x0000000004fdcb9e Fortran::semantics::OmpStructureChecker::CheckAtomicVariable(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&, Fortran::parser::CharBlock) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x4fdcb9e) #4 0x0000000004fde92d Fortran::semantics::OmpStructureChecker::CheckAtomicWriteAssignment(Fortran::evaluate::Assignment const&, Fortran::parser::CharBlock) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x4fde92d) #5 0x000000000532e015 Fortran::semantics::OmpStructureChecker::CheckAtomicUpdateCapture(Fortran::parser::OpenMPAtomicConstruct const&, std::__cxx11::list<Fortran::parser::ExecutionPartConstruct, std::allocator<Fortran::parser::ExecutionPartConstruct>> const&, Fortran::parser::CharBlock) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x532e015) #6 0x000000000532ef4b Fortran::semantics::OmpStructureChecker::Enter(Fortran::parser::OpenMPAtomicConstruct const&) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x532ef4b) #7 0x0000000004d6c325 void Fortran::common::log2visit::Log2VisitHelper<0ul, 6ul, 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::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPExecutableAllocate, 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::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPExecutableAllocate, 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::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPExecutableAllocate, 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::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPExecutableAllocate, 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::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPExecutableAllocate, 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::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPDispatchConstruct, Fortran::parser::OpenMPUtilityConstruct, Fortran::parser::OpenMPExecutableAllocate, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPAssumeConstruct, Fortran::parser::OpenMPCriticalConstruct> const&) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x4d6c325) #8 0x0000000004d6c628 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/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x4d6c628) #9 0x0000000004d6acd8 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/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x4d6acd8) #10 0x0000000004d6e6ec 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/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x4d6e6ec) #11 0x0000000004d76688 Fortran::semantics::Semantics::Perform() (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x4d76688) #12 0x0000000004255a48 Fortran::frontend::FrontendAction::runSemanticChecks() (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x4255a48) #13 0x00000000044fe390 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x44fe390) #14 0x00000000042546a5 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x42546a5) #15 0x000000000424252f Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x424252f) #16 0x000000000425e04b Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x425e04b) #17 0x00000000025715d2 fc1_main(llvm::ArrayRef<char const*>, char const*) (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x25715d2) #18 0x0000000002408d91 main (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x2408d91) #19 0x000073b2e3a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) #20 0x000073b2e3a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) #21 0x000000000256ffc5 _start (/cefs/d5/d56bea4d1793acd7b130b623_clang-llvmflang-trunk-20250911/bin/flang+0x256ffc5) 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 4eadb45f83cef00165055f8038f179ca5c3e88ef) Target: x86_64-unknown-linux-gnu Thread model: posix