<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">