<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63581>63581</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang crashed when openmp's collapse clause argument is unknown
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
fel-cab
</td>
</tr>
</table>
<pre>
The testcase (compiled with clang):
```
void f() {
#pragma omp for collapse(UNKNOWN)
for (int i = 0; i < 10; ++i);
}
```
https://godbolt.org/z/hb7TKb5GY
Compilation error:
```
test.c:5:30: error: use of undeclared identifier 'UNKNOWN'
5 | #pragma omp for collapse(UNKNOWN)
| ^
clang-17: /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Sema/SemaOpenMP.cpp:10348: clang::StmtResult clang::Sema::ActOnOpenMPForDirective(ArrayRef<clang::OMPClause *>, clang::Stmt *, clang::SourceLocation, clang::SourceLocation, clang::Sema::VarsWithInheritedDSAType &): Assertion `(CurContext->isDependentContext() || B.builtAll()) && "omp for loop exprs were not built"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230626/bin/clang-17 -cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -emit-llvm-uselists -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name test.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/ccs/home/cabarcasf/REDUCTIONS -resource-dir /autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230626/lib/clang/17 -c-isystem /sw/frontier/ums/ums012/llvm/17.0.0-20230626/include -cxx-isystem /sw/frontier/ums/ums012/llvm/17.0.0-20230626/include -internal-isystem /autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230626/lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230626/lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir=/ccs/home/cabarcasf/REDUCTIONS -ferror-limit 19 -fopenmp -fgnuc-version=4.2.1 -fcolor-diagnostics -disable-llvm-passes -fopenmp-targets=amdgcn-amd-amdhsa -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/test-72c531.bc -x c test.c
1. test.c:7:1: current parser token '}'
2. test.c:4:10: parsing function body 'f'
3. test.c:4:10: in compound statement ('{}')
#0 0x000000000208f9b7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/Unix/Signals.inc:602:13
#1 0x000000000208db20 llvm::sys::RunSignalHandlers() /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/Signals.cpp:105:18
#2 0x000000000209005f SignalHandler(int) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
#3 0x00007f0bef7088c0 __restore_rt (/lib64/libpthread.so.0+0x168c0)
#4 0x00007f0bee168cbb raise (/lib64/libc.so.6+0x4acbb)
#5 0x00007f0bee16a355 abort (/lib64/libc.so.6+0x4c355)
#6 0x00007f0bee160cba __assert_fail_base (/lib64/libc.so.6+0x42cba)
#7 0x00007f0bee160d42 (/lib64/libc.so.6+0x42d42)
#8 0x000000000442e241 clang::Sema::ActOnOpenMPForDirective(llvm::ArrayRef<clang::OMPClause*>, clang::Stmt*, clang::SourceLocation, clang::SourceLocation, llvm::SmallDenseMap<clang::ValueDecl const*, clang::Expr const*, 4u, llvm::DenseMapInfo<clang::ValueDecl const*, void>, llvm::detail::DenseMapPair<clang::ValueDecl const*, clang::Expr const*>>&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Sema/SemaOpenMP.cpp:10337:3
#9 0x0000000004420d41 clang::Sema::ActOnOpenMPExecutableDirective(llvm::omp::Directive, clang::DeclarationNameInfo const&, llvm::omp::Directive, llvm::ArrayRef<clang::OMPClause*>, clang::Stmt*, clang::SourceLocation, clang::SourceLocation) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Sema/SemaOpenMP.cpp:0:11
#10 0x0000000003e59d79 clang::Parser::ParseOpenMPDeclarativeOrExecutableDirective(clang::Parser::ParsedStmtContext, bool) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/ParseOpenMP.cpp:2970:25
#11 0x0000000003e7d30f clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/ParseStmt.cpp:475:12
#12 0x0000000003e7b8c3 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/ParseStmt.cpp:117:20
#13 0x0000000003e85aa1 clang::Parser::ParseCompoundStatementBody(bool) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/ParseStmt.cpp:1205:11
#14 0x0000000003e86e75 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/ParseStmt.cpp:2467:21
#15 0x0000000003db71e5 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/Parser.cpp:0:0
#16 0x0000000003dd14e4 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/ParseDecl.cpp:2197:18
#17 0x0000000003db5d6b clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/Parser.cpp:0:10
#18 0x0000000003db5600 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/Parser.cpp:1225:12
#19 0x0000000003db4521 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/Parser.cpp:0:14
#20 0x0000000003db1ecf clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/Parser.cpp:0:12
#21 0x0000000003dac8ce clang::ParseAST(clang::Sema&, bool, bool) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/ParseAST.cpp:162:5
#22 0x0000000002988971 clang::FrontendAction::Execute() /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1062:10
#23 0x00000000029022ef llvm::Error::getPtr() const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/include/llvm/Support/Error.h:272:42
#24 0x00000000029022ef llvm::Error::operator bool() /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/include/llvm/Support/Error.h:235:16
#25 0x00000000029022ef clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1049:23
#26 0x0000000002a49c82 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:264:25
#27 0x0000000000ad729d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/tools/driver/cc1_main.cpp:249:15
#28 0x0000000000ad30ba ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/tools/driver/driver.cpp:366:12
#29 0x0000000000ad2267 clang_main(int, char**, llvm::ToolContext const&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/tools/driver/driver.cpp:407:12
#30 0x0000000000ae1c91 main /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/build_frontier/tools/clang/tools/driver/clang-driver.cpp:15:3
#31 0x00007f0bee15329d __libc_start_main (/lib64/libc.so.6+0x3529d)
#32 0x0000000000acf00a _start /home/abuild/rpmbuild/BUILD/glibc-2.31/csu/../sysdeps/x86_64/start.S:122:0
clang: error: unable to execute command: Aborted
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 17.0.0 (https://github.com/llvm/llvm-project.git ae54f01dd8c53d18c276420b23f0d0ab7afefff1)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl9zo7iy_zTKi0ouENjghzw4drwndWYmU5Psbt0nlxCNrbsgcSWRZO6nvyUBNpA_k9mdSeZWna0dBwRqdf_6j7pFM2PEXgKco_kFmm_OWGMPSp8XUBLOsrNM5V_Pbw-ALRjLmQGMaMpVVYsScnwv7AHzksk9oksUrVCwQcEKLYLuf397p0SOC0RTRJcYJRftKMYYIxrVmu0rhlVV40JpzFVZstoAounvn_796frPT45wO8E9RzQV0mKBUbTBAYou_OUah_4a0QtEL4TnpVsGJZsnmTpYWxvHMd0iut2rPFOlnSm9R3T7v4huD1ly--9s_tt_dbP979rLzaxQEoPWSj8nsgNrxlG0mqNoFQUoWh3fx40BrArcyBx4yTTkWOQgrSgEOPmSo9zJCag5Rskafz9k7ZRkjdH8sh3yyiJh4jhBdFs2xmpAdKu0UBLRLTc8SiiiW8M1s_zghljGNGemQHTbVCYI3eOyvKvCZLcXtrshtVb_DdzddgaxLUWG6PYGKtb9ua5Bfvw843WNolUYRHHq2Ghfj1YoWt3Yyn4B05R2NOoo-KsVt9eypbJVeiM0cCvunOgrrdnXL1CgaD2Yef3x87pkjbfaFYouEV1Pl_NPJsOq0Rw-KO41_V0Pj5z-wbT5U9jDlTyAFhbyzc3q9mvtGFm0voJXxoD2tuTshqbrRq-VtPBgCYouhdlADdKZRjd69KC10-jFLGtEaVdl2Y77R472AiNKe-MolaoxPNTa4HvQgKWy2M9DlCKa4II5P561tvH5w-Xq5hKbJquExQxnzR5rqJW22Co88RhhD00246rq9P_YDIQxDRhEt5jJHAvJyyYHbA-AuWbmgDPG_7KacXAg1hpqrTgYAzk2HmM37GYyYxQXzEKOdSOx4VrUtmP5xjL-F86bqj66YjBDwfKzVnvNKsz0vqlAWtPZO2usKhxPknNDzF0V7sw9ottCK2kF6NbEp4aO6DZMZsEsIDSgUbBwMG8zIXtbJ2GCCechJlaLugT8kC52i5g08i-p7iUphWweyF42mEAlLPFAZXx41xgohbEGEydMLjRmBJNcGJaVQAoNgAkvgWnCjCUZFEoDcQiCzDGpmJCkECUQyao2Vs84JpWGsjNUUqkcSlwLjkktOCnhDkpM2xthSC0Ak6rQrAJSKyEtaBRtWFliUlTMHghoLRUmRVETrqTTm0XRRklMCqmIVo3MhdwT9y4mFVfSWN1wqzRhpWAGDCZFI--FzIl1MhkUbSgmluk9WMLrxoFGFjEmtpHgB_YgQTuGc8ia_R60eyScr232eYZJwdUdaLYHwk-BmeTCce5Uw50iD6qCSRD7crn5fX17df3pBhMNrbG5aT_YQNrw1wdDbyJEmK_GQuVW-rtke0ci_OHhh9LzSpesHBL9iXB8a-nGOOrOfstXviqyRexCE-eIbjsXNI2B1v8Q3bo1Z7PHP0-9-3hBeHAXIx2-6qWWu__A_LYwFz5o_IPIUPiMjZTCbYbhEpNC1SCrGpNiLxtO7kAblwFEm3hGZ6EPR6XSJBdsL5WxgptTAG-3RmbaONgS6mKfC4SsyvdcElbl7t_BMEwKlufaiD0mm93ut_V696_VH5e7zZ-rL1u6W2-vdqubjyjahJgoJ72tavcLxpKE8nkUztz-8oB5txm0e2Po9sZjcuqSwNBnYI3WIC2umTagsVV_gXSpqEue-zSUjqbGPoFzc90cIfe4aCT3yYyrGNzk4jg1emaqkNipx20d2Fhmwe3U2KcziasT2tWPySyiUYCDh6D_jwZpscwS7F3BJ13mq2kvPmshrc8NbtsEIz29pNn9Trmsl1U-X1pjIW2bPf2cdLjPjtpsuKldQoXo9ncpnAPciL1kpZkJ6cBZBNTBE51EDici5xkNnhL5SyNbUv9iMi9Bmz5dfFupenH6HN8VQGF6EoeOxVkGwbzAI8bbEu9XUUgcRt5LjgJEnQBJEWRQJEGa8gDvdhqMVRp2ujPgY5gsRVbbgwaWz4yaBYheBA_hIuXByLDjIVVwz7MMaybaentMjjtCC08oZjzLRoTmE0Isms8xy9RTfA0J8Wg-HxFaTAgFPGN4t2O-aNm5umGXsW-xR3nGRlSTKdU8pt8gkcd0RCIdWlAcU6Bx-L3V4sl_vlE3Pls2_uOq8cTCTcXKcgPSwEdWj_n4g5UNbICX2CfUjxe9fKj16FncjIn3dK9koV5D-06JvJP4RCQHy0Q5JviZud30HzAbXfp1Fj_T0199EhG5vXAQdZcTIwvyVxjZ5QPwxhc3T9uaaqvUaDV4PAJo40-EvIl8YhU4nfV4LcYaeZrUu5v1e2vSpRVhF6zd3jnKFyKYL_NkOeT_s094BtcttaMe7uBaP63Vl4jkDsnjoc0aZ0qVb4eNZ6H_O0KHLhMHEJ2fAArHACV5FBQvAnTT52nXemCtq8KCXlmrRdZYMCOr9-HtD-BWTeLFwN4i2vTBYP3i8lNoX7DFqSG384dMPrna9I13UZuTslNanPgUip50Ric6y1Ie_Q2d_SpKem-AQ38YToMTwNEY4HTOWPiiwOuuijkCfaHyr4im7-j4QwFpm4UP4mI8kXAByfxFCbdddTeVcLJ5PeN1I2PkqoZfwrNovPCaH-AyH-GSZ0kIr8NlA4WQonOryQQh973bKf0a97mFqi6Zfbz_PzPrA7Nwil0fRJd7vQu-erATD1xqMQY2D2OIXwTBIfabVk39LJ43NfDHuJyQfjoAfXsXeNU-0rG6VfoLk3u4kuIdMXcy9zYdLpNBxe2gTyY2Pc8X2Tehv9YDy77qTt2eSHu-fz999MaL6lxxDsa4Z_776C9g1OHAqtMptIsg-Ca03fY7QvjZ2PHDAZ5a868FcEjpNNtZTjCO5_TlzfjyobXWcarzBri-v2nGR9hoMIEtBP5yYn-r6g9wB2W7jQ_xuq7Z_zTw2U4yw2OE9mXmE3nhqUb-qPKmhKuqVtr6DOL99v8RXiczo-NCKGc85fAIr9XN7Riatg5dnIq8dy32Vje3vR8tqG8-OYo3PnZdpukyGXnRVrvdUuYrH5H64xpX-MJPPkcey9PzMbhsWToe1XjJBkGYRmPRAkqhGJyEXPZ9OtFqD9ZZcSuPz6t-9hFz9zXqNHA6bfZ8zQ5uz06cSPHAGONXi6Rq8MlOZ3ZvceL_OpkiH8cXJ5nmT8k0sMC2twr0lTSWSQ4jG-zMcuR7E5N9y4gysNIp20c7jZcehhMAoxSYsnjJUzo-HfWingjeHVPQ9CWc3nLr6QW_9da2fZblPhtdxOPzJjpKRgOWJ3SZY87DXcWEfPZg_sDG58ZunxmN9QfXb4OFVao0iG5zLe78t_legGNh6XQfDsROJ2JHQcZwj946bOF8-jjmqqrLJzGYnAg7Gl3JM6gZ3wGM9qKDIlosJhvtcgIFpYukdYPeBvzXv1bDXqGr_w-CxkEyFnT8rTpgEPJliJ2IP47TrBFlvhs0ifQ8Pm-pvl1txHk4P336cHyH409088i56G5XiozvjGXa7johnv9oF83pMj9-tHNE6RgMXgQBwy05fGrFYF4gRLe6rvrLi9-vPmwQ3e7dEoTOotCj1fRNJearyaE2x_YSN-TIzm7aeuJ0DtEH0UErrmRZCdgqDK0vYq6qisnct2dmSlvIn5vrR3DRBcR-YtdQifPGkzX-W7LDqjGAyZ0fA8BiENyXgxVw11SC274eN_H72i5ne2Exg3lcBGGep3we5WHKabKIaZDRqAjygGUJK6AoivC49q1vRHFSPde42L3nv2Nj30roez-UEQ9PNkCf5edRvoyW7AzOw0WaLOdLGqdnh_OERWkSBCFLgiXLouUCipil4XK5jIIE4uBMnHfNTGkYRXGQzkKeFawIMraYZzyeUxQHUDFRzpzcM6X3Z77R9HwRzdPwrGQZlMY3s1Mq4R77h4hSNN-c6fO287LZGxQHvt_yRMUKW8J5qwbfoAo5vj-AxG23DqKJOfZaO-07jfbtpVgY3GF21ujy_O_3ynop_i8AAP__eY7ZtA">