<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/62500>62500</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            -ast-dump=json does not reference the correct include file 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          briandw
      </td>
    </tr>
</table>

<pre>
    The ast-dump command attributes the struct foo to the wrong include file when dumping to json.

Here's the setup:
```
secondary.h:
struct foo {
  int x;
};
typedef struct foo foo_t;

primary.h
#include "secondary.h"

test.c:
#include "primary.h"

void bar(foo_t f) {}
```

Normal ast-dump lists secondary.h:
```
clang -I. -Xclang -ast-dump -fsyntax-only -x c test.c
RecordDecl 0x1230f2528 <./secondary.h:2:1, line:4:1> line:2:8 struct foo definition
| `-FieldDecl 0x1230f25e8 <line:3:3, col:7> col:7 x 'int'
|-TypedefDecl 0x1230f2690 <line:6:1, col:20> col:20 referenced foo_t 'struct foo':'struct foo'
| `-ElaboratedType 0x1230f2640 'struct foo' sugar
|   `-RecordType 0x1230f25b0 'struct foo'
|     `-Record 0x1230f2528 'foo'
`-FunctionDecl 0x1230f2858 <test.c:4:1, line:6:1> line:4:6 bar 'void (foo_t)'
  |-ParmVarDecl 0x1230f2760 <col:10, col:16> col:16 f 'foo_t':'struct foo'
```

Json ast-dump lists primary.h:
```
clang -I. -Xclang -ast-dump=json -fsyntax-only -x c test.c    
{
      "id": "0x15a0f0690",
      "kind": "TypedefDecl",
      "loc": {
        "offset": 46,
 "line": 6,
        "col": 20,
        "tokLen": 5,
 "includedFrom": {
          "file": "./primary.h"
        }
 },
      "range": {
        "begin": {
          "offset": 27,
          "col": 1,
          "tokLen": 7,
 "includedFrom": {
            "file": "./primary.h"
 }
        },
        "end": {
          "offset": 46,
 "col": 20,
          "tokLen": 5,
          "includedFrom": {
            "file": "./primary.h"
          }
        }
 },
      "isReferenced": true,
      "name": "foo_t",
 "type": {
        "desugaredQualType": "struct foo",
 "qualType": "struct foo"
      },
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVlGP4jYQ_jXmxQI5k8SBBx645VBbVVV7OlV9OznxBHwXbGo7t-y_r-wEkgDHXatKuyGxZ76Z-b7xJMI5tdeIa5K_I_l2Jlp_MHZdWiW0fJ2VRr6tPx6QCufnsj2eaGWOR6ElFd5bVbYeHfUHpM7btvK0NoZ6E1derdF7qnTVtBJprRqkrwfUNKAovQ9mn53RC8K2hG26609okUDRQ6JvTyTttwhn_V98dFgZLYV9WxyuJqMcSPGuW6NUaU_PJO2fSbG93vu3E0qsx7nXxnzyg3G8nqw6doG6RUgvRRGAcR4AYzePzi-qIf-J24A5dfpqlKSlsASWMRVaE1jFaortQx6662_GHkUziNQo5x19xNGNe9UIvafznxd0_ld_fwWZ1-5Ne3GeG9280fmZVrSvKbp-wMpYucWqoeycQMpqyGFJSfqyILCbxgaSbhICL7RRGkm6yeJz-v7yHPaXYx0k1korr4y-yPZCCWfzncLmJibGmD1QGv_hhVamIemmCDH6W3qmBAqlPYHiCjr_2PXABJKv2AiSX3LvcIANmMCoxRot6gpl1zshxlBHCJVu7pYmJb1vRGms8ChDLkMSGbvDoq7dCzu40wjQCTFxzst757Hb2HGqHhQT60B5q6sgxISiZR5Zv_Z4diMwvxE47PPQ2CFCbPJLhxNYXcNRGiT5Xdjjn8JO4hU8StLRnrBBjoQPciSc1n0Fn_xT6h-doV-c0bcnaDim__78kHQb5tu3j1GUoRflOq3iIoCSYTCkm3DPzkkuWM34ioVFeLmx_aL0yHrU0A-tG1NdjKdR466pa4e-N8j44B48g5TdDr_Bjb5BhG4b2KN9b778iro3ySfQ_WSUO2uO38ouYoTXyFBrGDT3k_RqfhmZ8e6OCCv0Hp9QUeJe6afJTMiC4q7mG1aSxwYTWor_QMuPEzMwMqLogVI4NNT3C7_pkqdd8LQPxjb_d-X0vil-rEuU-3Cd8H0Ub1u8N9TiOEqjH0EwoSZ8bzxpOIlxvKP8oxXNx5EtwHiGTTH__o7tOMlRfdcxNpPrVK7SlZjhOuHLlHGAFcwO67xIq1XGl0VZZNUSZZItkWcpx5JnNWf1TK2BQcpyBpAkywQWkPIkWWbAZb4sZJmSjOFRqGbRNF-PC2P3M-Vci2sOOWOzRpTYuPjZCaDxlcbNkHK-ndl18JmX7d6RjMVZPKB45Rtc381ZadBRbfzwSo5fkZWxFis__RCdtbZZH7w_ufiO2BHY7ZU_tOWiCv22C7H6n_nJms9YeQK7mKEjsIsV_BMAAP__YJoEeg">