<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/138094>138094</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Lexical analysis fails on malformed _Pragma directive after #include
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mariete1223
</td>
</tr>
</table>
<pre>
## Summary
The crash occurs when an invalid _Pragma directive appears on the same line as a #include.
## Assertion
No assertion given in Assertion build clang
## Stack dump
```
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: /root/llvm-project/build-assert/bin/clang-21 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name prueba.cpp -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 -fdebug-compilation-dir=/root/llvm-project/build-assert -fcoverage-compilation-dir=/root/llvm-project/build-assert -resource-dir /root/llvm-project/build-assert/lib/clang/21 -internal-isystem /root/llvm-project/build-assert/lib/clang/21/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c2x -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/prueba-ce8fe6.o -x c prueba.cpp
1. prueba.cpp:1:2: current parser token 'include'
#0 0x00005557aed8327e llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /root/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:22
#1 0x00005557aed83694 PrintStackTraceSignalHandler(void*) /root/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:1
#2 0x00005557aed80bf2 llvm::sys::RunSignalHandlers() /root/llvm-project/llvm/lib/Support/Signals.cpp:105:20
#3 0x00005557aed82b0a SignalHandler(int, siginfo_t*, void*) /root/llvm-project/llvm/lib/Support/Unix/Signals.inc:418:13
#4 0x00007fe35c9d8420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#5 0x00005557b417817c llvm::ArrayRef<clang::dependency_directives_scan::Directive>::empty() const /root/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:163:33
#6 0x00005557b4177b32 clang::Lexer::isDependencyDirectivesLexer() const /root/llvm-project/clang/include/clang/Lex/Lexer.h:215:74
#7 0x00005557b41737c6 clang::Lexer::Lex(clang::Token&) /root/llvm-project/clang/lib/Lex/Lexer.cpp:3703:3
#8 0x00005557b2121b9f clang::Preprocessor::CLK_Lexer(clang::Preprocessor&, clang::Token&) /root/llvm-project/clang/include/clang/Lex/Preprocessor.h:3029:3
#9 0x00005557b4211dde clang::Preprocessor::Lex(clang::Token&) /root/llvm-project/clang/lib/Lex/Preprocessor.cpp:870:10
#10 0x00005557b009b857 clang::Preprocessor::LexUnexpandedToken(clang::Token&) /root/llvm-project/clang/include/clang/Lex/Preprocessor.h:1803:27
#11 0x00005557b41bb13e clang::Preprocessor::DiscardUntilEndOfDirective(clang::Token&) /root/llvm-project/clang/lib/Lex/PPDirectives.cpp:89:15
#12 0x00005557b2235466 clang::Preprocessor::DiscardUntilEndOfDirective() /root/llvm-project/clang/include/clang/Lex/Preprocessor.h:2345:3
#13 0x00005557b41bdd48 clang::Preprocessor::CheckEndOfDirective(char const*, bool) /root/llvm-project/clang/lib/Lex/PPDirectives.cpp:466:37
#14 0x00005557b41c49ab clang::Preprocessor::HandleIncludeDirective(clang::SourceLocation, clang::Token&, clang::detail::SearchDirIteratorImpl<true>, clang::FileEntry const*) /root/llvm-project/clang/lib/Lex/PPDirectives.cpp:2087:79
#15 0x00005557b41c1b01 clang::Preprocessor::HandleDirective(clang::Token&) /root/llvm-project/clang/lib/Lex/PPDirectives.cpp:1334:36
#16 0x00005557b41765ba clang::Lexer::LexTokenInternal(clang::Token&, bool) /root/llvm-project/clang/lib/Lex/Lexer.cpp:4513:7
#17 0x00005557b41738b8 clang::Lexer::Lex(clang::Token&) /root/llvm-project/clang/lib/Lex/Lexer.cpp:3728:40
#18 0x00005557b2121b9f clang::Preprocessor::CLK_Lexer(clang::Preprocessor&, clang::Token&) /root/llvm-project/clang/include/clang/Lex/Preprocessor.h:3029:3
#19 0x00005557b4211dde clang::Preprocessor::Lex(clang::Token&) /root/llvm-project/clang/lib/Lex/Preprocessor.cpp:870:10
#20 0x00005557b212469a clang::Parser::ConsumeToken() /root/llvm-project/clang/include/clang/Parse/Parser.h:553:12
#21 0x00005557b2117cdb clang::Parser::Initialize() /root/llvm-project/clang/lib/Parse/Parser.cpp:583:1
#22 0x00005557b2113630 clang::ParseAST(clang::Sema&, bool, bool) /root/llvm-project/clang/lib/Parse/ParseAST.cpp:165:28
#23 0x00005557b0042366 clang::ASTFrontendAction::ExecuteAction() /root/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1186:11
#24 0x00005557afcff958 clang::CodeGenAction::ExecuteAction() /root/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1102:5
#25 0x00005557b0041c21 clang::FrontendAction::Execute() /root/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1076:38
#26 0x00005557aff52e8b clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /root/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1056:42
#27 0x00005557b020d57d clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /root/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:265:38
#28 0x00005557aa2c18c4 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /root/llvm-project/clang/tools/driver/cc1_main.cpp:290:40
#29 0x00005557aa2b240b ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /root/llvm-project/clang/tools/driver/driver.cpp:218:20
#30 0x00005557aa2b2950 clang_main(int, char**, llvm::ToolContext const&) /root/llvm-project/clang/tools/driver/driver.cpp:259:26
#31 0x00005557aa2ee950 main /root/llvm-project/build-assert/tools/clang/tools/driver/clang-driver.cpp:17:20
#32 0x00007fe35c486083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#33 0x00005557aa2b176e _start (/root/llvm-project/build-assert/bin/clang-21+0x38e676e)
```
## Program
```
#include <fcntl.h> _Pragma(
```
## To quickly reproduce
It happens since clang 3.1.0 until current version
https://gcc.godbolt.org/z/T7Kn6nGnd
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcmd1y46i2x5-G3FC4JNCXL3LhieOZ1PQ5p2uSmXPpQmjJZloCbUBpZ55-F0hKJCfpTmdSU7t2V1csYwS_9WexFh_cWnlQAJco_Qml2wveu6M2ly03EhzElLKLUlcPl4gyRBm-7duWmwcUbe6OgIXh9oi1EL2x-OsRFOYKS3XPG1nh_WfDDy3HlTQgnLwHzLsOuLFYK-yOgC1vATdSAeYWc4wok0o0fQUrFG38_6HLjbVgnNQKo2jzvxrzx-8HeQ--v1mVspdNhUXD1WHRyK3j4guu-rYbi7No_B9tPn-63txeY9uXrXSY47I_YAOdNg47jY_OdRaxDaI7RHcH6Y59uRK6RXTXNPfTB-mM_hOEQ3Qnre3BIrrDXFV4NCkYPMhVcvHFGS4A0SvcGeiMFmAtVNjq3gzF_k1urRaSO6iw6RW2wsjOeWlmtjBvS7TC4d9now-Gt5ibQ9-Ccp4aI7ozWrvnmEEpMojpv0qF6C4IR2iMiRAxJs7IrgF8KrJ9lpBefVH6qyKNVP2JHFSPCbTSEV3-iYnHqaTBnGBSScvLBkhtADARDXBDuHWkhFobIF4AUBUmLZeK1LIBorwrdKaHkq9E12HSGmi04H5MSasraHAnBSadFKSBe2gwHb5ISzoJmLS14S2QTkvlwCC25U2DSd1ydyRgjNKY1HVHhFZeeofYVitMaqWJ0b2qpDoQXxeTVmhlnemF04bwRnILFpO6V1-lqojzdlnEthQTx80BHBFd7wUiWYKJ6xWEggMoMB64grI_HMD4n6Q6ILY9VCUmdSgnQredbAYrK-mx3zRcmNRC34PhB3h_EwYGd_NvvdlLGllOXoLozvtJ0Fvxhkj7YB20727Kz5xxrrzYaG-Nf0sL3ryxaujgIASiu9GDHz0X0d0a0d1q9fzPC1WfdwYn_yCedzpWfaGdb7_9411gYl2F2FbQEyY1GKMNaaSPYPEak_qgekHuwVipFWLbZEVXMSa1_SI7oitDxBHEFyIVObR18KdGG1JJflDaOim8z_OqMlYeMNnu9z9fXe1_2fxxvd_-_-a3Hd1f7W72m9v_QWwbY6I9nGs7RHfDHCYCihqylcbkhMVsYqNoE4_RalbINjFiG-rDleiNAeVwx40Fg53-Agojmj_qmqPIBzUW4egURVGUpmnOoSoYzQGHgMw2iG3sgx0ePhupXIiYd0PMLZ4qGf51r60zwFtEMx93pXKIrl_34SniB9e67TufJBDd_a7kyRfIg-KNXUklENsUUeKtoiNwfA6crRN8Rjc08AtXVQMG0eJeywrRzcchFVEQeyCiZ0RRWdOXJPytVwswi2jxHqSJZRzyKPXyRCMMO4OhZcTxuR5heK6wlQepar13QZsr_NEyJXHhAdmIloxoeQ0sFeuqSGiE93sD1mkDe-NwEGRs-4X40ciyc0cDvFpZvYoQ_Sk6xUlCI0TXYx_pzPwyifMizsVsLDbG8IffoEbsaoiYobSCDlQFSjzsHxdZdm8FV8Pv26kQseuhBNrOPYzDFxLddwV7CmhjwWZ75_-OQKujVypjiG3YpFd2ZkteMopn2J_g5FO0f5R2-2jDI60dKryJcsofT5hTySc4DX_BBEgae3_LkxEyP4NkuchegQwtFbPf7nxUChHjGw43cQxeMacZ_J_lUVBt5CnmPDSmcbmu5zyfHxeKesS6-vTrflLqtYpDVHsv-muizrsI2rKIrme2rBfa0jiuKvi2LR8n8YJtULrIQ9SLht1APM8cZRStyyLNv0v3u4JTx1UF1Uj2btg3ixoXwUFCxvPc8dJjyzJm31F1K63gpvpdOdlcq-r_6qeA8EFif36atJPY3hHidGSmC6-mLE2y7G8wf6zAlCXp6LWelZ3pW1VJ8Z0Z6NdQz4U9cjOErTE9lVo3HyFtkmUhboy8yZJXJGtefpt3SKQ3gz6v-MJt2BR8Gvder0aPRXEFjstmfB-4EcetNDcODHfa3LRdg9iVM31IQ8s3d7KBa-XMw0ywvy8UjYrcx_r1qNRZchVxGcVvUeofmC4xY36VyLIR9Tx3ZmnJX09LgeRm3DG8BvlOB5znqiSNfSiaPO9Z7izK4h_OndSv0JIppP-3JE9vy3908qTRmdJJtl745-ewbxs11sr2LUwJ852qhRanz0GxNPXeGNORKV4yxbmoyteYbpR0kjfyrzenk0GfM4pBm7Rg43bKY9AzDJax6BnG5vbuLN5CyxfT9Ien6wJtc3s3RZYs7K-KkY4tVz0JZctMvLm92xmtHKhqI0LoD8XXJxC9g7HohySbmps9Ds1MgHGRhY-RcJ7PeC3qep0uosqVruBnUB9EN7b29HTGFlE_wCNaeiZeLOgigXxDuQ_WLMrDGmAa1WyhWZ1SKMqlZm0nGzA3yjquBLws2-uW_FAMmcGf9_u05_f4yTRzF4kkolGV5tUcfwR9au3-cV1SfMvKH1pGTNh3YdrtXu1zWlyEefU4AvPUwzkVcSESLES8b7lUi9Om-R5-sUQcV0Xny8a3nGpMljitG4vorjLy3ue03UQwQa-jWb6k6yV0SZOoxJPhV_GgxAz9tuVN8weIp-XccwtCCHt6xbdx5YU9uane23zpmSnDw2RIOJqhoyHLU0BvyDodY-6k_3hk5HmDmJt_BjNdB1cZMeMlJoDH9IBvPi2funt9wMPNzQIizudS0cUpVlJkUcHwft_IUuyt48btR6DvHWWJldWrLBxi0SQq2HCI5btgZ6MR5xngofGx3XdcRYWOWAFZnsHY1ezu7umGb7z9en6993SviBG7qoVyjV9FXE8XlGjIkS82eqfxv3opvjQPOCyNql7AUOHG4SPvOlAWW6nEuETDbBWvItz73evjWfZ0Ch_eO7tOFGJ10FWpG7fSxg_sX4ju7vJfVaZ-VhWKNhfVJavWbM0v4DLOkywq0pixi-NlSQVfZ2WeC8azKKZZsWY5i1iSJVmZZOmFvKQRTaM0iqOcFSlb0TiDmhU8WRclrdMUJRG0XDYrPxy--4twdXkZsyJaJxcNL6Gx4V6YUgVfcfgVUYrS7YW5DGNY9geLkqiR1tmnZpx0DVx-gpMUvMFc8ebBSotrLptw-dvyptamhRfviGsHZnYXfNGb5vL9d7CjLfeX9N8BAAD__2nlqMU">