<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120228>120228</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
unrelated `TypedefDecl` included in AST dump for empty function
</td>
</tr>
<tr>
<th>Labels</th>
<td>
question,
clang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
firewave
</td>
</tr>
</table>
<pre>
```cpp
void f()
{
}
```
`clang -Xclang -ast-dump -E - < a.cpp`
```
TranslationUnitDecl 0x60efd80ef9f8 <<invalid sloc>> <invalid sloc>
|-TypedefDecl 0x60efd80f0228 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128'
| `-BuiltinType 0x60efd80effc0 '__int128'
|-TypedefDecl 0x60efd80f0298 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128'
| `-BuiltinType 0x60efd80effe0 'unsigned __int128'
|-TypedefDecl 0x60efd80f05a0 <<invalid sloc>> <invalid sloc> implicit __NSConstantString 'struct __NSConstantString_tag'
| `-RecordType 0x60efd80f0370 'struct __NSConstantString_tag'
| `-Record 0x60efd80f02f0 '__NSConstantString_tag'
|-TypedefDecl 0x60efd80f0648 <<invalid sloc>> <invalid sloc> implicit __builtin_ms_va_list 'char *'
| `-PointerType 0x60efd80f0600 'char *'
| `-BuiltinType 0x60efd80efaa0 'char'
|-TypedefDecl 0x60efd80f0940 <<invalid sloc>> <invalid sloc> implicit __builtin_va_list 'struct __va_list_tag[1]'
| `-ConstantArrayType 0x60efd80f08e0 'struct __va_list_tag[1]' 1
| `-RecordType 0x60efd80f0720 'struct __va_list_tag'
| `-Record 0x60efd80f06a0 '__va_list_tag'
`-FunctionDecl 0x60efd8151470 <<stdin>:1:1, line:3:1> line:1:6 f 'void ()'
`-CompoundStmt 0x60efd8151560 <line:2:1, line:3:1>
```
Where are these `TypedefDecl` coming from? They seem totally unrelated and unnecessary to the code that is being pocessed.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVV1v6jgQ_TXOywjkOF_kIQ-UlsfVatvV7hty7Al45dhZ22GXf3_lNPRCC71qJUjwx5yZc85gc-_V3iA2pHggxWPCx3CwrumUw__4EZPWylNDSvr6EcNA6PpolYSOsBVhNaFrUj1Mz8f4PO-Mv6eh0NzsYfH3_OY-LOTYD7B4ggWQbAN8GVEvIt4AXhw3XvOgrPnTqPCIQgP9v6TYyRXFru5WEYBkG2WOXCsJXltBsieSPcGN2VjjZvFyGlBidw3WUca-BAaqH7QSKsBup0xI2WoXgLDqPCKses0HpKSLh1HpoExMfUmgE_RmzN0a62_XOF4WOZrJcwlfqxbp58H3yi44_W7Zvz1vrPGBm_AcnDL7WIAPbhS3FneB76-Z_IHCOnlNpKNZRb-AAxdIV2Z0s3mfht_TpMy_bWX7as-u97sj32nlJ0_FgTsgbH0twO9WmYDuvQIlpbdj4LMG4Pwt6pf86vzbnp_5XZB7s2qemyQuHlJSPF7zPTuxdo6f3rNeIf01GKRww_j3UBW7D3Uh5r3eKfncOx_jSrrYjkbEM-9K07RI8-qsqQ9SmUnMdTp92Qa0MkiydfY693Qex_USuphuOrbnU3tKBrNm_WBHI59DHy7TFeWUbsZhd_J8PPP_OqBD4A4hHNBjzHHRJKSkIGwf_8udsz3JtvBywBN4xB6CDVzrE4zGoeYBJXAjYTQGBXrP3QmCjaggrIzwPIDy0GJEG2zcg3KZyCaTdVbzBJu0yvI8p0XBkkNTs1Xe0jZjrJVlW6d5l3FZibrFumjzMktUwyjLU5ZWaUZZxpZtSrGqC4oCS9YxSnKKPVd6qfWxX1q3T5T3IzYpi_dHonmL2k83KWP_juiji4QxwjaEsekCJNm6c9YENDIuFI-JayLYoh33nuQ0doP_CR9U0Nj8lOOjlsoIPUqUoAysn19guls76wD7IZygm3spGZ1uDiEMnmRrwraEbfcqHMZ2KWxP2DZmnF-Lwdl_UATCthM7T9h2Jnhs2I8AAAD__7AXggQ">