<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/86735>86735</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
`clang-18 -extract-api -x c++-header /home/matthew/attempt.h`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mattkae
</td>
</tr>
</table>
<pre>
## Problem
`clang` is crashing when trying to extract the API from a very simple C++ header file because of `#include`s.
## Program
```c++
#include <iostream>
class X
{
};
```
## Repro
1. Copy the program into a file somewhere
2. Run `clang-18 -extract-api -x c++-header /absolute/path/to/program.h`
3. Get the error
Note that removing the `#include <iostream>` line fixes the error.
## Version
```
$ clang-18 --version
Ubuntu clang version 18.1.3 (++20240322073153+ef6d1ec07c69-1~exp1~20240322193300.86)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```
## Output
```
Stack dump:
0. Program arguments: clang-18 -extract-api -x c++-header /home/matthew/attempt.h
1. <eof> parser at end of file
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 libLLVM.so.18.1 0x0000739654de9256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 54
1 libLLVM.so.18.1 0x0000739654de7210 llvm::sys::RunSignalHandlers() + 80
2 libLLVM.so.18.1 0x0000739654d38e70
3 libc.so.6 0x0000739650a42520
4 libclang-cpp.so.18.1 0x000073965b41713e clang::extractapi::APISet::addCXXField(clang::extractapi::APIRecord*, llvm::StringRef, llvm::StringRef, clang::PresumedLoc, clang::extractapi::AvailabilityInfo, std::vector<clang::RawComment::CommentLine, std::allocator<clang::RawComment::CommentLine>> const&, clang::extractapi::DeclarationFragments, clang::extractapi::DeclarationFragments, clang::extractapi::AccessControl, bool) + 350
5 libclang-cpp.so.18.1 0x000073965b46e8b6
6 libclang-cpp.so.18.1 0x000073965b444a03
7 libclang-cpp.so.18.1 0x000073965b43bdf3
8 libclang-cpp.so.18.1 0x000073965b44703b
9 libclang-cpp.so.18.1 0x000073965b43b9e3
10 libclang-cpp.so.18.1 0x000073965b43bfdb
11 libclang-cpp.so.18.1 0x000073965b43b88a
12 libclang-cpp.so.18.1 0x0000739659ded256 clang::ParseAST(clang::Sema&, bool, bool) + 614
13 libclang-cpp.so.18.1 0x000073965bc1def5 clang::FrontendAction::Execute() + 85
14 libclang-cpp.so.18.1 0x000073965bb974e4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 708
15 libclang-cpp.so.18.1 0x000073965bc986be clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 750
16 clang-18 0x00005b1114c15a25 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 4069
17 clang-18 0x00005b1114c12e25
18 libclang-cpp.so.18.1 0x000073965b84f999
19 libLLVM.so.18.1 0x0000739654d38c0c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 140
20 libclang-cpp.so.18.1 0x000073965b84f32e clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const + 366
21 libclang-cpp.so.18.1 0x000073965b8178c1 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const + 897
22 libclang-cpp.so.18.1 0x000073965b817b0e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const + 142
23 libclang-cpp.so.18.1 0x000073965b8340ed clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) + 333
24 clang-18 0x00005b1114c12794 clang_main(int, char**, llvm::ToolContext const&) + 11172
25 clang-18 0x00005b1114c20286 main + 102
26 libc.so.6 0x0000739650a29d90
27 libc.so.6 0x0000739650a29e40 __libc_start_main + 128
28 clang-18 0x00005b1114c0f895 _start + 37
clang-18: error: clang frontend command failed with exit code 139 (use -v to see invocation)
Ubuntu clang version 18.1.3 (++20240322073153+ef6d1ec07c69-1~exp1~20240322193300.86)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-18: note: diagnostic msg:
********************
```
## Files
[attempt-21509c.sh.txt](https://github.com/llvm/llvm-project/files/14764337/attempt-21509c.sh.txt)
[attempt-21509c.hh.txt](https://github.com/llvm/llvm-project/files/14764338/attempt-21509c.hh.txt)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWE1v4zjS_jXMhbAhkvo8-OA47XcyyLwTJL2N3r0YFFWyuCOJAkk5zh7mty8o0bGUj44bO9jDGkEsiw_ri1VPkeTGyH0LsELRNYpurnhvK6VXDbf2Dw5XuSqeV4gyRBm-1yqvoUHBDQrWKA5Ezds9igMsDRaam0q2e_xUQYutfnbPVmE4Ws2FxbYCvL6_xaVWDeb4APoZG9l0NeANoteIXuMKeAEal7IGnIPgvQGsSoziAFEmW1H3BaA4MEtvwPj_xbS95mfTxj8xSn5BeiEYsY1UxmrgDWJfpuJEzY3B3_2r5DQ1uUHseqb2pOIdWx6g02p8Q5Z4o7rnwftuNBHL1irMRzeNauCpAg0jnC7xQ9_iU2gXJMULH8AF7yReHLF3aeGDheiW50bVvQVEtx23FaJbq9zzqG5ZvRjJlvj_YFwJ0Frpqen_ryxgW3GLNTTqMCxeBfPYvw5bHOBatoBLeQRzFvve8nwDbaRq348dDfHZ3cVhCv1b3re2H4exH8EkXZIlw4imYyxoQMOAURokjEQM0Wso44KACBIRZwvyJxw78ucJRDLGgmCZxohmo46vXO_BIrbGxzTexeGiE4tatv1xsW97D6k08AI3qoDaATtl5HEcum2N5XUNxY3UbgjRbW80ottctpcmzO-97Xr7Lu7RcvEHLvqmQ8xPCpZ4-PiUx1zv-wZaa5z6n8ibSjUuZ1yhV_DkEslaaDq7rF5yF7ENqBKxL7jj2oDG3GJoC1eVLn1fm4ifpK1Ub7F5bnJV45Y3YNw6QWt6DfhZ9bjiB8B1fWgWI0j-CzSWrRvT-H799ResNDanNG0PUqvWeYcPXLt0vLv79tvu8e-_Xf9-d_uPLw87N8VlolW4U7K17kFat7gv8cK4lrmbtzRq6ZIHB8cgCIKEZXEUFpDRKB5MclPY2jyb8eFey9YO3n3VXACi6Rmk-dPuVAo0RnTjyhrRDDsii0Ifwbeah89cfUJJ8J76h759lPuW17_wtqhBmyHhRw2pTw_6iW8sheRU_QNUOFyMJ58JPuAhjajHhwN8SCfRde-Jz0OSEAZjzo02-6TjnRx_r-9vH4faQmzNi2Lz_ftWQl0gmv540gMIpQtE1y6y59g8Wi3b_QOUP3g9EXyvwfQNFHdKvBp5o_LAZc1zWUv7fNuWysGNLcbBAwirNGKbiYAH_rRRjUvM8bf_cSdbmM3lda0E_6np7IsrOKFaY31q_cDwGxA119xK1W4134888JdPWQsBxmxUa7WqHTZX7nvMRRb5jInwBSkTQ5rHIz6-AB6GPGAjPLlEPMuL0uPTS_BhErB8xGcXic_Ai3dFewG-LLx4Qi7Cpyn3ePopPiugcNw1TXnH0-vHr_MKe4SG-1waV26-gjE5ERb73EZBCiijqc6tVq2FtlgLl1Pjuy9HEMOe5ExZkddxAbHkWRJCONWxUU0na9BDu20FzLR4xTOXXxnlnB_tSILUGxJd4GyWxvmM4bzKsz0HV99v1L-x11GZN-BULyQ-t-u3jBzlhJBQkIjTCAtBdg2X7awHrbXmz4712EZUXJ8oY-0YxNXz7B3d4IOSxcSOMIj9DogkZ0PmyinQ07Kln0crDcssO8nMLuh9LBWBmBD5xh0iHPe744GjGzjaczPkJdTPswiUfTss704PUXAOjtvCbIjB6CcJT83ygopNw5LR2YIXWh5Ae_s2xDE1b4vXWf7uqrx0AdU5K3mN2Oa9rjUw_qxt7HbieCRk_JFzI8XODHC_1jOwe7Gzmku3BRyHX4mbdSE_7iDrMxMMaTFky0jqsSdpegFtpSRJBfkwaEMp8DfccIrkrG5eTXSAj1rhD6DrGdlN_UqzxPv1Ob06v_Lg42T4wK9fVW4-dupXld9JY2dOTXKi4XX9bdhv3DZdPc2hjrsDxmbYZl4eB7_QH0SDhNRH4wLiT1kYQPGR5pvJ84wj3yHHj6L4X4yG37ow38ynR9CPqZgmmcedyPikfyjJ9Zv96lelak9jkwX3tERIcop-9AH_0oCmMXa6xinBaUI82cvPNvA0K7IT3SUXbPhpBmGAdzuH3BnLtd2d1VHfKWl6QXSCMs0iPMoYg5u8XKkMU93xdLx3OJ1TcembNBZ-pUouayiGcySGo3RRKwAT5kKW9gbw4uAOeAYAy0nnzf53bgum0WqVdRsdXEi-b5WxUuDG7Id5_vrgP_i78G5iK2sw_k107a8IFpREQSaWplrao0XRDaJpZW03nFzpFtHtXtqqz5dCNYhuh4IYvxadVv8EYRHdloNkuiVhEoeMJecbiFfiT6F_q7_6C_Wnb_VXc_1XxYoVGcv4FaxIQkiYRiQiV9UKWBlCyXhUliVNhIhIQWhQhElCCkry_EqufELFNGCUkaUIg7RMWcELKNOwjFEYQMNlvXQ2LpXeX0ljelilccKiq5rnUJvhgpbSFp7wMIgoRdHNlV4NfuX93qAwqKWx5izFSlvD6ufuE39wLxQHV72uVz8d6sFeF-vBn38HAAD__yHWkDc">