<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/123459>123459</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
False negatives clang-analyzer-core.StackAddressEscape when storing pointers/references in container
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
chrchr-github
</td>
</tr>
</table>
<pre>
~~~c++
#include <string>
#include <vector>
struct S { std::string* s; };
std::vector<S> f() {
std::vector<S> v;
{
std::string a{ "abc" };
v.push_back({ &a });
}
return v;
}
struct T { std::string& s; };
std::vector<T> g() {
std::vector<T> v;
{
std::string b{ "def" };
v.push_back({ b });
}
return v;
}
int main() {
return f()[0].s->size() + g()[0].s.size();
}
~~~
https://godbolt.org/z/sMb8Ebv9j
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUlE9vszgQxj_NcLGCzBgCHDhAE257au8rYybglpjINlTtIZ99BSWb_tnV-74WEoh5_Dzzwxqkc7ozRAUkFSSHQE6-H22heqt6u-u076cmaMb2rbherwqwWi5eAgpt1DC1xEA8OG-16UAcf1RmUn60W4WXzttJefbIIK2Y8y2IEkS5bceSORAVg_QAolrVm-Dm8vAI4shOgBlgvngAL9n_qOYPD8bYTbitb7FMLr0AomwUIN7T2RxeJtf_3Uj1siSuqr1cBZh_dj9sT5b8ZM0t-eP9Hfrpv6H3v4R-WnC6r9CfOb4Kf5u72bhbOn3l3tZP_ObP2bXx7Cy1-dH9pt_OEpKKQ3II3Q7E0el3uumxupH_Kwnv9c9h1-sVeNl7f3ELJtaAdTe2zTj4cLQdYP0OWLu_muzYzPlz0BaizUUuAyqiVKRRniNPgr5I93HW7lW2j7lQaSbSWAjREvF93vA4EYEukGPCoyiLIuQ8CfcnVCJTbZyiiMQphZjTWeohHIb5vGQH2rmJighFnOTBIBsa3DpviIZe2VoFxGX8bLFs2jVT5yDmg3be3W289gMVtRwcMUOd9Homx9QgTbeTRg5v72R3arQUPnqpXsq2teTc0Sl5Ifbak2HOj-vZX0ZtPFkHWFs6kSWjyDFtmBqNl9qQDSY7FN--5vozCNV4BqyXprbb7mLHZ1IesF5RFteNdS7wnwAAAP__r0NAEQ">