<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143231>143231</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang][OpenMP] crashes on invalid goto inside OpenMP sections block
</td>
</tr>
<tr>
<th>Labels</th>
<td>
crash-on-invalid,
flang:openmp
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Reproducer:
https://godbolt.org/z/jqxza73WP
```f90
!$omp sections
goto 10
!$omp section
10 print *, "Invalid jump"
!$omp end sections
end
```
Backtrace:
```console
flang-21: warning: OpenMP support in flang is still experimental [-Wexperimental-option]
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
#0 0x0000000003eadc28 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x3eadc28)
#1 0x0000000003eab7e4 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x0000756304842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x000000000939e7e0 mlir::Block::getParent() const (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x939e7e0)
#4 0x00000000094481ea mlir::OpTrait::impl::verifyOneSuccessor(mlir::Operation*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x94481ea)
#5 0x0000000007e1621c mlir::Op<mlir::cf::BranchOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::ZeroResults, mlir::OpTrait::OneSuccessor, mlir::OpTrait::VariadicOperands, mlir::OpTrait::OpInvariants, mlir::BranchOpInterface::Trait, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait, mlir::OpTrait::IsTerminator>::verifyInvariants(mlir::Operation*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x7e1621c)
#6 0x0000000007e18c8e mlir::RegisteredOperationName::Model<mlir::cf::BranchOp>::verifyInvariants(mlir::Operation*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x7e18c8e)
#7 0x00000000094702fe (anonymous namespace)::OperationVerifier::verifyOnEntrance(mlir::Operation&) (.isra.0) Verifier.cpp:0:0
#8 0x0000000009472792 (anonymous namespace)::OperationVerifier::verifyOperation(mlir::Operation&) Verifier.cpp:0:0
#9 0x0000000009473d76 mlir::verify(mlir::Operation*, bool) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x9473d76)
#10 0x000000000922dd13 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x922dd13)
#11 0x000000000922de79 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x922de79)
#12 0x000000000922f305 std::_Function_handler<void (), llvm::LogicalResult mlir::failableParallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&)>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)&&)::'lambda'()>::_M_invoke(std::_Any_data const&) Pass.cpp:0:0
#13 0x0000000007c65c4e std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<std::function<void ()>>>, void>>::_M_invoke(std::_Any_data const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x7c65c4e)
#14 0x0000000007c662cb std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x7c662cb)
#15 0x0000756304899ee8 (/lib/x86_64-linux-gnu/libc.so.6+0x99ee8)
#16 0x0000000007c65f61 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<std::function<void ()>>>, void>::_M_complete_async() (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x7c65f61)
#17 0x0000000007c65cdf std::_Function_handler<void (), std::shared_future<void> llvm::ThreadPoolInterface::asyncImpl<void>(std::function<void ()>, llvm::ThreadPoolTaskGroup*)::'lambda'()>::_M_invoke(std::_Any_data const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x7c65cdf)
#18 0x00000000094cca27 llvm::StdThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin/flang+0x94cca27)
#19 0x00000000094cd531 void* llvm::thread::ThreadProxy<std::tuple<llvm::StdThreadPool::grow(int)::'lambda'()>>(void*) ThreadPool.cpp:0:0
#20 0x0000756304894ac3 (/lib/x86_64-linux-gnu/libc.so.6+0x94ac3)
#21 0x0000756304926850 (/lib/x86_64-linux-gnu/libc.so.6+0x126850)
flang-21: error: unable to execute command: Segmentation fault (core dumped)
flang-21: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 21.0.0git (https://github.com/llvm/llvm-project.git de3a9ea510fecd501b4dd57534cf300d1c9622c9)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20250606/bin
flang-21: warning: OpenMP support in flang is still experimental [-Wexperimental-option]
flang-21: note: diagnostic msg:
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWk1v2zrW_jXMhrAhUZZsL7JQPvy-AZpJ0AS9wGwMijxS2FCkLkklzv31A1KyJfs2vpO26XSRIm0VieR5nuccHn5Sa0WlAE5ReobSixPaugdtTh8n1Bj9bE8KzV9OP0NjNG8ZGJTkKMofnGusfyQrRFaV5oWWbqpNhcjqL0RWX__c_EXnyR-3KMpRFnU_5TLyv5IYkZmuG2yBOaGVRVFeaadx_M3PKMrjCDdGKIcRyRE5x4iQK_VEpeD4a1s3iJC9iqD4uG1QfIzCP0f5GWWPzlAGHZ_dV6aV1RJQlJeSqmpCYpTk-JkaJVTlH28aUNe32LZNo43DQuFQEAuLrRNSYtg0YEQNylGJUXo2-WP8ZqKbQCq9QFF---kyv7vEti1q4TDFRVthA6Fdp_GBxsI9tMWU6RqRlZRP2_8mjdFfgTlEVsLaFiwiK0wVx0Ix2XLA7gEwM9Q-4GLLeYqiHCOSRDjaRNs_CVDOyAKHtpMcJbl9sd3DrRf_zlH2eB8kI4uhkKHPa22dAVojknnvCOUQWWJEFoisdOORMV03QoKZwKaR2oDx74K-vqFOaWda9TghEUmjLMoQWRVCIbIKHxE5izY9QESWPfz4AH4xhxm-E5Wi8v-p4tKbWQQ059iKSqhSr10fQk9a8PC47GvYKWsalORR-NsZIL2BeZol0WwxIymJel5SFIisNotsnc0mUqh2M6lU231gU6unWcAcqgyIkzHiZbKEOUS4lsJ0Wp5JzR67xwrcLTXgwXvG2Mel-_ma9hgGhLM9hLPZIgY6QnjT3BsqXPeLqBvZPT2BEeXLjYK7ljGwVnvlx7XA0BD2neI_n0YHdKCRjmnMIc5IzPZooOR8-JWVvf6GKvZw0_gAeYXzv8Hoz1CF1PJPpWwr3bFS-3q9WuwLNYJywYKKih9tsfF50QiqDg1vqV0pB6bs816Sd3X3Sp5rxYV3FpXy5a4B1krqaCFfr7EHIZfP9MWO613VjfxGrWuotXm5LEtg7r_BtWflyt6DqYWiThuUXI6jcKzAr4zBPsqGGMwOYnDBFjDi46PIOjDAd9D-Reue_7XmII_H6G_D2vMaWM_3E8g8IiV4s1Rp9VLr1mJFa7BNGEeWByi_eC4CzH5WuVTOk4bXmGU9s6mwhk59MsPbhr6R1BcHAMl8SX4M4IDkCL4jiJYHiBI-z0aB0lk54tZzXGgt3ymxBjSde_2QuzdlWBLCeZyMsHJwVMhdh9U3zS21Nue0CR01TBjafaF8gZ7G6wSHL7mi8sUKe00VrcAM7M9xq8JMlr_bDKTnO6gRH6oB8-Wb1bgVDUihDsPbF92RzH66PONK3tSVss60fpLqB6P8WIHOcvehx97NVa5UqbuZyrsN9J3GgwfIgQfKJEqxdbyDt161KqwD1g_9hDA59zO_DtjSkxxmsp90JRiV3bg9Il9SIf04dksNlRLkSptLyh5Qcr5eV6pds82mt7ZW2tRUroXz7vEuPn9rMNyonW9z-6KYHzwRWfQdfBcb117q3k07tk_AfoXRkUUqpWa_gqkf7MJPP3Ufuaf5cMtv4Zb3MITIXNK64BSR-V56fA8BwyjnuYzsXH-6-nyulYPNduH4EVz_i-D6UP2jS39vl_b_Zq_Z_wisXx9Y2Ueu_X2d86H6R659p1zb9_kuqq7XQj3pR7_qHZZruXpZc-rodhEZdk48tINdE7_y29tLn7MsZTM4vvLbfWyV-LOFdeP23q7XZetaA-uC2n4bbt0tBrs34xD5p7LdmwuQ4Lzpy9GC82gb99Q-ri0492OA-2VuH1rfjXqvsnswQLcNXQXf7aFxbSNh_KLsPXCw5j5cym1fvDEqfv5OZhdCw9bC7CDAMsKK41reOeq6F1_IjhDX3qFjQiNhfoOQ9J4YbSK-0zZxJ98gbrp_tLZcAizedrQWqgwNZofpoMzi4-JcQAnGAF9b77a9UH7PUO_DwsvqXbGmPrX2p3zvEtRlFg8yzf-WNXn5pv2yXVn7QL14na5DwhltqN0HGW-1lgenO3Q3mozy1Df7x4Gae_t1Q_M-a_6f0W3The_PHHzeJ83wcvDIwXkEY5TMRyzvHB-Idq8aoxlY61nbvbP4VxV5j4OBAHSgcXCIwXiaxNtT9hGdcdfq4Rq9eflW7zqqQWX08_Z0_7jDfWiNTvuHhv4-pyDRQVaaUZa8MSv5KjtVSLzX4JJki_SNNwjiUKdrcXwlBYwJUzXcKlpIwE5j2ABrHWCm65oqrya-g2q3Y49L2spwh4BpA5i3dQP8SMPdvZbS-CWZ4ttWcUmFBI55G2zacHnCN9pawJOn8A4A-_7F-iOKnQX8BMZ6JCSeRtOoEgHN2-65TH0tDgldAk3jqATG0yguZpyn8zSZsTKJIh6zZUYI688J7qmpwHlKvdqtelT6WY1Uj_pgxHV38JrjRluxQVF-payjUgK_CJNn_OPd6JdcLRqbUNoPbznmglZKWycYrm2wOL75dMJPE75MlvQETuO5j9UkSaKTh9NyUaSL-YLRMlpwOgOIliyjaTJLWAR8WZ6I057hPCJkkUbTFIoomi0WpEiBxmmMZhHUVMipV2aqTXUSriqdxrOEJPGJpAVIG-6fERKuKk20mojuhhciBJFzREiXe5JcN6C6O1_pxYk5DbFRtJVFs0gK6-xgxAknw7W2VaiaXqD0rNMYpRfdnSiwWCvcm8LhFppQVnDYOaO_R4YLqdnjSWvk6fffy-r5Pp2S_wQAAP__QqJb2w">