<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/108136>108136</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang][OpenMP] Assertion `!lenParams.empty()' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Crash itself is reproducible on Godbolt:
https://godbolt.org/z/5j5cYMf3f
Reproducer:
```f90
character(:), pointer :: c
character(2), pointer :: c2
!$omp threadprivate(c, c2)
end
```
Stack dump:
```console
# flang-new -fopenmp test.f90
flang-new: /opt/llvm-project/flang/lib/Optimizer/CodeGen/CodeGen.cpp:1113: mlir::Value EmboxCommonConversion<fir::EmboxOp>::getCharacterByteSize(mlir::Location, mlir::ConversionPatternRewriter &, fir::CharacterType, mlir::ValueRange) const [OP = fir::EmboxOp]: Assertion `!lenParams.empty()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /opt/llvm/bin/flang-new -fc1 -triple aarch64-unknown-linux-gnu -emit-obj -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu generic -target-feature +outline-atomics -target-feature +v8a -target-feature +fp-armv8 -target-feature +neon -fopenmp -resource-dir /opt/llvm/lib/clang/20 -mframe-pointer=non-leaf -o /tmp/test-83cdbb.o -x f95-cpp-input test.f90
#0 0x0000ffffa8419948 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/llvm/lib/libLLVMSupport.so.20.0git+0x189948)
#1 0x0000ffffa84177f0 llvm::sys::RunSignalHandlers() (/opt/llvm/lib/libLLVMSupport.so.20.0git+0x1877f0)
#2 0x0000ffffa841a064 SignalHandler(int) Signals.cpp:0:0
#3 0x0000ffffa9e4b770 (linux-vdso.so.1+0x770)
#4 0x0000ffffa7de7628 (/usr/lib/aarch64-linux-gnu/libc.so.6+0x87628)
#5 0x0000ffffa7d9cb3c raise (/usr/lib/aarch64-linux-gnu/libc.so.6+0x3cb3c)
#6 0x0000ffffa7d87e00 abort (/usr/lib/aarch64-linux-gnu/libc.so.6+0x27e00)
#7 0x0000ffffa7d95cbc (/usr/lib/aarch64-linux-gnu/libc.so.6+0x35cbc)
#8 0x0000ffffa7d95d2c (/usr/lib/aarch64-linux-gnu/libc.so.6+0x35d2c)
#9 0x0000ffffa2be3b28 EmboxCommonConversion<fir::EmboxOp>::getCharacterByteSize(mlir::Location, mlir::ConversionPatternRewriter&, fir::CharacterType, mlir::ValueRange) const (/opt/llvm/lib/libFIRCodeGen.so.20.0git+0x73b28)
#10 0x0000ffffa2be2da8 EmboxCommonConversion<fir::EmboxOp>::getSizeAndTypeCode(mlir::Location, mlir::ConversionPatternRewriter&, mlir::Type, mlir::ValueRange) const (/opt/llvm/lib/libFIRCodeGen.so.20.0git+0x72da8)
#11 0x0000ffffa2be2844 std::tuple<fir::BaseBoxType, mlir::Value, mlir::Value> EmboxCommonConversion<fir::EmboxOp>::consDescriptorPrefix<fir::EmboxOp>(fir::EmboxOp, mlir::Type, mlir::ConversionPatternRewriter&, unsigned int, mlir::ValueRange, mlir::ValueRange, mlir::Value, mlir::Type) const (/opt/llvm/lib/libFIRCodeGen.so.20.0git+0x72844)
#12 0x0000ffffa2be2364 EmboxOpConversion::matchAndRewrite(fir::EmboxOp, fir::EmboxOpAdaptor, mlir::ConversionPatternRewriter&) const (/opt/llvm/lib/libFIRCodeGen.so.20.0git+0x72364)
#13 0x0000ffffa2be2050 fir::FIROpConversion<fir::EmboxOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const (/opt/llvm/lib/libFIRCodeGen.so.20.0git+0x72050)
#14 0x0000ffff9c14afcc mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/opt/llvm/lib/libMLIRTransformUtils.so.20.0git+0x2afcc)
#15 0x0000ffff9c0bb8b8 void llvm::function_ref<void ()>::callback_fn<mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_0>(long) PatternApplicator.cpp:0:0
#16 0x0000ffff9c0b819c mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) (/opt/llvm/lib/libMLIRRewrite.so.20.0git+0x819c)
#17 0x0000ffff9c14c01c (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#18 0x0000ffff9c14b074 mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/opt/llvm/lib/libMLIRTransformUtils.so.20.0git+0x2b074)
#19 0x0000ffff9c14c22c mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/opt/llvm/lib/libMLIRTransformUtils.so.20.0git+0x2c22c)
#20 0x0000ffff9c153e24 mlir::applyFullConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/opt/llvm/lib/libMLIRTransformUtils.so.20.0git+0x33e24)
#21 0x0000ffffa2bc6e4c (anonymous namespace)::FIRToLLVMLowering::runOnOperation() CodeGen.cpp:0:0
#22 0x0000ffffa52f64dc mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/opt/llvm/lib/libMLIRPass.so.20.0git+0x164dc)
#23 0x0000ffffa52f6f2c mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/opt/llvm/lib/libMLIRPass.so.20.0git+0x16f2c)
#24 0x0000ffffa52f9468 mlir::PassManager::run(mlir::Operation*) (/opt/llvm/lib/libMLIRPass.so.20.0git+0x19468)
#25 0x0000ffffa91140b0 Fortran::frontend::CodeGenAction::generateLLVMIR() (/opt/llvm/lib/libflangFrontend.so.20.0git+0x640b0)
#26 0x0000ffffa9117c8c Fortran::frontend::CodeGenAction::executeAction() (/opt/llvm/lib/libflangFrontend.so.20.0git+0x67c8c)
#27 0x0000ffffa910b0bc Fortran::frontend::FrontendAction::execute() (/opt/llvm/lib/libflangFrontend.so.20.0git+0x5b0bc)
#28 0x0000ffffa90f60c0 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/llvm/lib/libflangFrontend.so.20.0git+0x460c0)
#29 0x0000ffffa96b356c Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/llvm/lib/libflangFrontendTool.so.20.0git+0x356c)
#30 0x0000aaaaae6943d4 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/llvm/bin/flang-new+0x43d4)
#31 0x0000aaaaae69345c main (/opt/llvm/bin/flang-new+0x345c)
#32 0x0000ffffa7d884c4 (/usr/lib/aarch64-linux-gnu/libc.so.6+0x284c4)
#33 0x0000ffffa7d88598 __libc_start_main (/usr/lib/aarch64-linux-gnu/libc.so.6+0x28598)
#34 0x0000aaaaae6927f0 _start (/opt/llvm/bin/flang-new+0x27f0)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 20.0.0git (https://github.com/llvm/llvm-project 68f31aaae95f9824e58001c7f9115034df51039e)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/llvm/bin
Build config: +assertions
flang-new: note: diagnostic msg:
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltv5CoS_jXOC3IL40vbD3noJNNnI2WUKJM90j5FGJc7nMFgAc4k8-tX2O4L7u50Lmd3XzaaidIYqr7vqyrA0NQYvpIA50F6EaRXZ7SzT0qf_wyp1uqXOStV9Xp-qal5QtwaEDXiBmlotao6xksBSEn0h6pKJWwQLwJ8FeDFk7WtcZ_IMiDL1fB0pvQqIMvfAVmmf6XsX9_ruB66D7_vR6OgN3aCDA__6gIPLeyJasos6IDkvYMiIJeoVVxa0Mi1xAvE9vuSIz3J6IhEAUlU0yL7pIFWrebP1EJAcuZGsX74DlaQ1QTh7tMflrKfqOqadp8JU9IoAWu3MaoFlatQwi8U1qoF6TCAsbO6wGjotenhEAdkqVobkKUQz03YavUXMPex7-SaeRmQ5W1recN_O-rLS1XBHyC3f81Y64BFURQ7i43gepDjTyo6QN-aUr1cqqZR8lLJZ9CGKxnEl_W6W9_htg3ib8PnFdjLtdQXrxZ-8N9Oua3dG8WodUbI5Y63rfE7ai1oeQ-_NO-DQzLXdeNwY_3htQXfSA_5nsoVBKRATlyLgvTi9g4F8RXag5xeOcYLY0A7QMjFhEQC5B3VtDEzaFr76lLLZcsc1ZQLqGZDGO5uvi1-fEOmKxtuEUVlt3KFoLRFVqFJynP71JUzppoxUvsB48Z0YAKyRFRWiEsmugqQfQLE-morKftpNWUwO5pUeIb6nzutVpo2iOpV14C0Zi9RArIsuVynyZhtLEKh1bwVgCjV7ClLwk7-lOqXDAWX3Uu4kh0KoeE2VOVfboASSocVpyupjOXMoLDRIMboho2qQKCWMxS2nIUCnkEgMnzgJmw5oNBSvQIbsrZDK5CgXeexrQZqOw0oIBeqs4JLCKlVTe9mv8tzTg81121IdfOcH3omQcltkYUajOo0g7Diek-toYzYWFQEo7CpNW0gHCeQIL6SSoYCaI1C5YbbpnW_wdgwj1lVljOFwhdUF2nI2jbksu3sprKH-KGAxBjhF4wxruu6pnkSFUWSox5En7jm1Qx_3GkubZ8DDy4pApJvO2n661EZq4E2Y-lwaV099Jl8iJjg5c3Nn99_dK3L35lRM4JneMVtQC7wS5Q7FJspz8GMJjDn8xofgnnfyR98Jan4B5WVAG2GYvo8EufIQ0ImSCjOEuT5DEg-8h-azTjh4f7_xlC8a6iApJzPscM55P5zZZRDE_U45nMfRLI7dl7BPCP5yLEzekNuXVabchqeMGc46w3nbqRnOvVNF6yMGdKUG_iUg9iN9xxkvoN8DhgjWrp57DMOiBvvOZhPGKSsZJ_D7kZ6pvOp6Yp81nRFfNPFrmlSQlyS_H-_Fn51KXyj7JbX9-sNwaTq5o77dsdD4ghPxCEV_Zw4To-FrBx65_xvkGbb8z8qiWPsSRJNJcmTBBlbDZ5t1wrY1eKCGrhQL0cwHmqKv31cYUfxCgzTvLVK32mo-cuR_iTfaz2h5qlIdLJ_laiG1edYHN7dfgjOV4OYJ4kXRDINYpwlaJRjV3GHoKGWPS1kNbI-IuC0bVFRF4qPKPlVknHmk4ynJHGKtziX1_c-1-PZta_AltJtC3qs3oUju90bLLSmr_dQB_Hlfor_N3XBKfZ02V3ECxYltGbsLTAfF2H75LN8vt9c3z9oKk2tdPNPy4WZ8iIOtscr9XjhsszLHD0rXu0Epe4kc0AfdR-Y_un43rOZS6gQ7iXksZZe6EYqi7YVnFGX23-zLpfHcZZKCeSZHg0MUg6yjml1kuyXjGwf3KgVZ1Tcg-mEfZ_dYngckOQRD3OxUO5Fo0B74u7vXV2Is0mI86hg-6r-P0RfCNHJshwFmdajC4VXjvPJNMNw1O9ZqVTytVGdQZI2YNr-ra6YROMGVlT0Bzl9uxg_vjN0p-bTK04FMLvtdjjb8gmDEs8TdMD_YMeuwbLho4f1_bs5n9XpcJyYJR1mLyzFNCyEsPeT2jw23pv4wbXOY_K-3DpBxmHdJUOwTyaNgexGiLateF12Quys8x_NoIf-PGWnTna7LbX6DetYjpH9cbT31uilkjVffV2R2BH2FJlsz1kGycmqW17fP6ibmz-_36hfoLlcjccrnbyVOxL1Bxr-WapfMMTbVqakzpJqN7cqsJSLtfQP6ra9o8asd4prn5Npypi94BwP20JS8Wq4-U4lXUG_-3Tz8v4u_bTwzvPesYwj5MkdTxnX5OOM73gLgsvp7Oa6boi8OUt8SgJ_rTPmWhqr-3NUt23fWwx3Owyehwcj9juqQdprWat18r9r9jqscj0p82SicpFk-QTcmu7BLPronHoQlXPqofJOrIooSnCJ0VJpq-koTq2VtCCrdfn3pbNgW_X6s2BqwRXf9f07zgz7c-zlaHYKMXMIPIjZBOKc5eyDEOEFWGdhbPoqQgfAQzj3EeISl28iXFs-APGr4FLn2wPnHbsVuM4wOxHhpuUCtKsUKhkcVvD97IbdyqcJJQ6vR8g77CuyMk6zN9UeoW95PW_Oqt6isafD6bLziDwoJfaWujTzgrO5QaDuB7IiiasE1Sx6bCiXx3Yn7Inq7QQ1bKT9tsM4J7dIg7xx5a29m8uCNaI4SRlyaN5r0Q3wLJLJmXWesORzp9VupGc6nppOixw9Prphj8ZSbR93kH_UWVp4U-Xm3mCtDJnXGA1u3qsN2b0Q8a6GQet-MUWdpKUAZBUa8xYx1TS0z0q0KJW20L9dMaWhv1GE6oTFvhWtk3ttbrwfRVXXOzP9bYsz3BlA4XPfBoD4TrVMvaBxI4hcivdJ7sZ_7DIVZXkdR07QIq2LnCSQ5hhHbF4XUZTiOKnqNMJxARv3w17WETt68Tl27L8NgPqbTde9VYa_DI_6mhYCqqt-dT1439p3vOi4cJL1O92-4wVdX0CbA6JLZd2Eibb3rKgxw0j_qwRn1XlcFXFBz-A8mpMME5Jn8dnTOUvqmEZuoqiTrEoynMUQJXVR0SJK4gqf8XOCSYKLKMIkmSfxrMJsHmdpWddZHWfFPEgwNJSLmSMzU3p11l9Xn0c4j-LsTNAShOm_MkLI-M0DEqRXZ_q8D0zZrUyQYMGNNVsTllvRf89k2Y9Ir4L04rYF-f0uSK8-fCl_1mlx_vlb95HJ8zn5dwAAAP__N1HTSQ">