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