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

    <tr>
        <th>Summary</th>
        <td>
            Merge 99705f3973d33da222222bc156215bd2c01380d9 into release/17.x
        </td>
    </tr>

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

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

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

<pre>
    /cherry-pick 99705f3973d33da222222bc156215bd2c01380d9

It addresses build issues that GCC 7.5.0 cannot build certain `SmallVector<std::pair<Instruction * const, Info>, 0> X;` while `SmallVector<Info, 0> X;` is fine.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMkUGP2yAQhX_N-IJi4cE28YFDNruucthLK1W9YhjHdAlEgLvNv6-crFSpvSwHYKQ3bzTv0zm7cyBS0D1B91zptSwxqVed377qWzVFe1OAo1kopdvu6swbGwbJu1kMUlghrMb7mUzT9dh0k0XDG7HndgD-DPzwuE-FaWsT5UyZTavzlrmcV8qsLLqwL8cjk3VXc2Z0CLF8SAylol1g0PNvF-39dzIlJhDHXCyIA4jDVbutPoVc0mqKi4EBHpiJIRfAIzuFOYJ42b4cxAv7AeIJes7eF-fpf9-7_F-ty2x2gerKKmEHMeiKVNMPXLS45021qEl3vTTD3Ldts28bw7uBD_Ns5V7auTeycgo5Ci6x56LlvKnJGJKTMChbMaBsoeV00c7X3v-61DGdq3s6qm-bRlZeT-TznRBioPdHdIC4AUtq69lN6zlDy73LJf91Ka54Uq-UzvRpbMyFElkiTzoT4NjI-ne1Jq-WUq55ix1HwPHsyrJOtYkXwHEb-PHsrin-JFMAxwdhwPG-xp8AAAD__9sfus8">