<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/87139>87139</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang] [Modules] Crash on `#include_next` in module with `-fimplicit-modules -fimplicit-module-map` in file w/ `.ccm` extension
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:modules,
crash
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Sirraide
</td>
</tr>
</table>
<pre>
This asserts on main with `-std=c++20 -fimplicit-modules -fimplicit-module-map` if the file ends with `.ccm`:
```c++
module;
#include <cstdint>
export module foo;
```
The stack trace points to line 124 of `stdint.h` (our `stdint.h`, that is), which is suspicious because lines 123–125 happen to be:
```
123 │ #if __has_include_next(<stdint.h>)
124 │ # include_next <stdint.h>
125 │ #endif
```
If the file ends with `.cc` instead of `.ccm`, it doesn’t crash.
Assertion:
```
clang-19: /home/ae/projects/Source-MLIR/llvm/clang/lib/Sema/SemaModule.cpp:751:
void clang::Sema::BuildModuleInclude(SourceLocation, Module *):
Assertion `ThisModule && "was expecting a module if building one"' failed
```
There isn’t much of a stack trace unfortunately:
```
0. Program arguments: /home/ae/projects/Source-MLIR/llvm/out/bin/clang-19 -cc1 -triple x86_64-unknown-linux-gnu -emit-module-interface -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name test.ccm -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=/tmp -fcoverage-compilation-dir=/tmp -resource-dir /home/ae/projects/Source-MLIR/llvm/out/lib/clang/19 -internal-isystem /home/ae/projects/Source-MLIR/llvm/out/bin/../include/x86_64-unknown-linux-gnu/c++/v1 -internal-isystem /home/ae/projects/Source-MLIR/llvm/out/bin/../include/c++/v1 -internal-isystem /home/ae/projects/Source-MLIR/llvm/out/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++20 -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fmodules-cache-path=/home/ae/.cache/clang/ModuleCache -fmodule-map-file=/home/ae/projects/Source-MLIR/llvm/out/lib/clang/19/include/module.modulemap -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/test-6930d3.pcm -x c++ test.ccm
1. /home/ae/projects/Source-MLIR/llvm/out/bin/../include/c++/v1/stdint.h:124:1: at annotation token
#0 0x00000000036687e8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ae/projects/Source-MLIR/llvm/out/bin/clang-19+0x36687e8)
clang++: error: unable to execute command: Aborted (core dumped)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 19.0.0git
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/ae/projects/Source-MLIR/llvm/out/bin
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0V11v2zjW_jX0zQENibId-8IXjl2_b4EpMJgWu5cGTR5J3FCkQFKJ--8Xh5IdN5l2Z6fbIJBF6nzxfD6UMZrGIW7Z8pEtDzM5pNaH7WcTgjQaZ2evv26_tCaCjBFDiuAddNI4eDGpBbYqeEyaVQfFxCMTj6IAXpuut0aZxDuvB4vx_RbvZM9WBZgaUotQG4uATseb1LlSHVsVrNqx4sCKHb3n_0nPuDsKY9W0nJ6iMk7ZQSOwaq9i0sYlVn24p8FL70OCkR9q719lXBXdk39pEWKS6glSkAqh98alCMmDNQ6hFAvwNZk9Kpu3dDYm1n4Ib3aZ2ENqZQITmdjQ6qU1qgUTIQ6xN8r4IcIZlRwiZukRSlGxD4KtC7apSrGEVvY9OtJ-xvcOGpfEBADEt1mwtQDySg2nUyvjaXLPyeElMbFm1f5mYfWBzLqKWLwVAXDPC284r2zLt2zotKl_4N-PP0iDnCYuJpR6cvI1N8QeTALtMbqrfzYJVJCxnd9L3-XMNd59z1nKStfwcsOqHTBxbH2HTBwlPfrg_4UqRSaOn_0QFPJPv338g4mjtc8dE8fMSktzJhLs5PTzKafWXPU9q3YPyzLLztqevdEw8lU7Vu0yU357HIzVI-PH0c1MrEe1v3kl8xHEHkYKYGJHsbrJvR2TfEQle6NbMbECJsSLjICXHlUyrgF5TX9Tw5k006Z3yIRg4gFqaSzqHxdFQDDfOL8bVEtRkt-Uy-BqH9LgZEL79XtBKOaQ_34PvgmyAxmaoUOX4t-Iih8SE8ezcdcI8XIDXKkSeAqmtwiX9eq0WvDBPTn_4rg1brjwxg3AsXvtUsYlDDUdgeuh67UJIDlwbaI8W-R1QASuLMrAZUz8jLUPyM9SPaHTwKlPckpq7mSHkDAmyl3gXUA7BZRUoYXeKOC9UdziM1oQ48JE3hsE3tVBdshz28HAqoO0FnjdydRyDMF54HXdc-UdOTyx6uAd8Np5HvzgKLCcaIF3yruYwqCSD1xaI2PuzoN7MU7zRKeKrDoI4EmGBhNX_UC-4qsF8DQ4zBsNOgxksMbz0DQY6JOhfD40-gy8zvtc-a43djylNmQ2E8fU9cBr5Z8xyAZ_QBMwjqElr_-t-I81ea1QyoDsPictN_FrTNj9TF7N50wczbVMj99LKLJgGlni-Fz-Uht-haK3TnxV-OcahhiIyytp_yJpVtAo9erEgLqVafQhKa2uR33z-HPy9zrxQi_qXvdfIhoNvJG-Bzoa-4BKJtS8kypQGWIIPnBrOpOAUq5u3KD4M4aYB9BhMRfzkmp3hEZcSdUi72Vqx9y_j9A8f7xz_9jR97R7E0FQKjeZ9_w_G2EmjqOO-fjTSard-GR67nXgqkX1xI3jTVdTTV8uHC8Keypm6irfLJS3PnBtZON8TEbRntQ6RNMAP5xO_7ffn_5_948Pp8M_d38cxWl__Hjaff7EqkMJ3MPYFeiJMfHVpip0Ne-pl15gisitv47zpJzmya8pLyaOr8hnV4oFPWlSyQTSOZ9yS4Pkn9DdYGkBxaW4_lWr1foB15D15vEfv8bx5fdgXPpMA_QLzU8m1q9EQb6cfEwBZZcH-x4I3YoNwc3_wZRk4rG4TKbdkOCUG_nw1Q5yitPL4GhgEBDFC6ohISjfddJp-rg7-5BQk13KBwQaoKj_o8y8D3XwLtEMnQROaAT0kNXRnUVaEk0omT_nPUQw7vmGk-71wFR_UG7mxbxoTJogTB5ypPa77XuCOoHgZx7VRN37aC4TdHUxSWtRH0z4KaTyLSaa6W2lN9VGznBbPpTlw2q53ohZu10_rHC9Kta4eChWYvVwFtWi0husN4uqRl3OzFYUYlFUVVGIqqzEfF0vzpv6rDZFsVkoUbJFgZ00dk4mzH1oZibGAbfrh7LazKw8o435OijEFaVOzSojwz3tE8am1fIwC1uSw89DE9misCam-Co5mWTz3XKfJS0PwJaPnyZpywPsSRCMkPX13jZeTDLuv2LU223zv7lcuvFG8cLE8e7eANTpHaXDbAh226bU57oTR5pDJrXDea589xqjfL4pkNQQyFsU0OywfwcAAP__vs_OIg">