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