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

    <tr>
        <th>Summary</th>
        <td>
            clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:697: possible performance problem ?
        </td>
    </tr>

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

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

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

<pre>
    Static analyser cppcheck says:

trunk/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:697:24: performance: Function parameter 'ArgTys' should be passed by const reference. [passedByValue]

Source code is

   Signature(ArgTypes ArgTys, RetType RetTy) {

but

  using ArgTypes = std::vector<std::optional<QualType>>;

So it looks to me like an entire vector is put onto the stack.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysk8uOozwQhZ-m2JQ6MjaEsGCRy8_q38z0aPa2qRBPHNvypaXM048g3T3p_UgIizrUV3XQQaZkZkc0QHuA9lTJki8-DpNWom4q5af78JplNhqlk_aeKKIOQV9IXzHJewKxB3YC9n7Psbgr8FFb6WbgozUK-Pgg7BfAb4rAx-PSTzGt2vS_UVHG-1iczsa79K5udAgg9tu-A7HnDYg9BopnH2_SaVoePzowyChvlCki8G4f5x_3BLzDdPHFTqgIg0yJJlR31N6ljJHOFMlp2iC0h4d6uP-UthC0p2dHr75ETaj9RGjSs4KIr2Z2MpdIwHfr2EAJP-Yf8TvlpfQ4gfcI3eGZoEr-CizJuBk_SSBOmPK0fGOxfyOdfQRx_Kz4sJiXFsTxW5F26QHx33odvlpAk9F6f02YPd4IrbkSSofksomEDzSahKFk9C57zBfClKW-bh6MahrE1IteVjTUHduKptu1rLoM9XanVdswtttp1vWqbpg4n2XPZHc-17WszMAZb1jNO9YL1rKN2NY1SSbOcmo7RgoaRjdp7Mbat9vGx7kyKRUaun67ayorFdm0xpPz91jxJalxWN5_UWVO0DBrUk5_CdlkS8M_TyEGn5JRlp6TiCF6ZemGIMaqRDtccg7rj8FH4ONs8qWojfa3ZRP79nG8hOh_kc7Ax9XvssZq-U8AAAD__3XQJao">