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

    <tr>
        <th>Summary</th>
        <td>
            [Clang] [CodeGen] Wrong code generation for `extern reference`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          16bit-ykiko
      </td>
    </tr>
</table>

<pre>
    Minimal Reproducible Example:

```cpp
/// src.cpp
#include <vector>

struct S {
    std::vector<int> c;
};

static S ls = {{1, 2, 3}};

S& s = ls;

/// main.cpp
#include <cstdio>
#include <vector>

struct S {
 std::vector<int> c;
};

extern S& s;

int main() {
    for (size_t i = 0; i < s.c.size(); i++) {
        printf("aaa\n");
    }

    for (auto& i : s.c) {
        printf("bbb\n");
    }
    return 0;
}
```

https://godbolt.org/z/W1YoYsMYh
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUU89v6ygQ_mvGF9QID3HsHHzIj2ZPvWwPVU8rwJOELYEIcNX2r1-B3TZavfekWiN7GH8z830DyBjNyRH10Gyh2VdyTGcf-nqlTLp7fzEvvlJ-eO8fjDMXadnfdA1-GLVRltj9m7xcLYHYAC-24pPp6zUv8TAZi0EvPmPCOG3HgRiI3Svp5AOI-yk_pjDqxB4ZtFvgG8YYi2nI5cXmE7ozLoG4ZxpExkC7n52cLpPR7JHZyEDsS5V2WwPuGOaXyOAb_CPgik1QG7-i36wv0rhf0tYxDcbPtH8i6Cdq6C1RcGwi-RU1LhVegB3g-mZQRx8YYBfNB_2TmCmqOIhtcXcsLvQi_5vyShxwW-y2Sn6uwbh0LECUUkKzc4A4Zc2wzLPQueksx-Qz19xvk_v9ubJS6veVsxcojcEVDfNkbg7Y1P2c0jXmgZb9OvlBeZsWPpwADx-Ah6f62T_Hh-dzNfRiWIu1rKivW7Fu19gssTr3sq6bQUouuBg4UtO1dYdqqVR3rAW1x8r0yLHhWLd1vUTERU2t6LpOCOS41IrDktNFGruw9vWSe1cmxpH6Gttl21RWKrKx3C5EbaU7ZcXNvgp9TrhT4ynCklsTU_wukUyy5UruSkazZ9n3A_1FLq-egncnpv1A7ESOgkzGu2kjVnw-OIGOFMhpghWvxmD7_03LpPOoFtpfAA-58fy5uwb_L-kEeChCIuBh1vLa438BAAD__yw6K9o">