<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/100549>100549</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
No dangling warnings on gsl::pointer-type function parameter with the lifetimebound attribute
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:frontend,
clang:diagnostics
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hokein
</td>
</tr>
</table>
<pre>
These are real cases, it would be nice to capture them in clang.
Case1:
```
class UrlAnalyzed {
public:
UrlAnalyzed(string_view url [[clang::lifetimebound]]);
};
std::string StrCat(std::string_view, std::string_view);
void test() {
UrlAnalyzed url(StrCat("abc", "bcd")); // dangling!
}
```
Case2:
```
std::string_view ReturnStringView(std::string_view [[clang::lifetimebound]]);
void test() {
std::string_view sv1 = ReturnStringView(absl::StrCat("bar", "x")); // dangling
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUlEGP4jgQhX-Ncyk1SioJSQ450CCOe9je3evKsYvEM8ZGdgWm59ePktANPWJ6NJJlsAu_5_cViYzR9I6oFeWzKHeJHHnwoR38VzIu6bx-bf8ZKBLIQBBIWlAyUhS4BcNw8aPV0BE4owjYg5InHgMBD3QE40BZ6fqVSHci3SzzVkbKRL653xPr9DrmpbIyRvg32I2T9vU7aRDV81ICOI2dNepd4P5nAuvIwbj-_7OhC4zBwpzqeb7FdCTfWHMgNkfq_Oi0KHfTwEbkV31R7W7f5zmyXk4u0vDCYSt5tvpQmD0nLI_3m59kz95oYIqTksDmPiF8iD4GK7B-dxWIslMCcbISiJ3S86JZLEDgXuAetHS9Na4XmN2CPWJ9awp-3pRHseBv4jG4l3nnvznnQyx_3obfM3roE88ZiHz36F6yi3Y5cM-yk-HG8tunJH-BMdFtrpu8kQm1WYVZk2b1ukqGtljrw6HQZaWwKDudq-xQaKl1jWVRqyJPTIspFmmFZZamBVYr0kWZoaprtdZVVdeiSOkojV1Zez6ufOgTE-NIbZamZdEkVnZk4_zgIr6xPQTvmNzyp9jeFbSRvfORjYpTrdwloZ10n7qxj6JIrYkcb05s2FL7l3_PDxcZnHF9BO-gf2N58sYxhSd-PREcRqfYeAcnGeSRmAJcDA_TywA-NBwkczDdyJSMwbYD8ylOejPx3vAwdivljwL3032uH0-n4L-QYoH7GUMUuL-SOLf4IwAA__962W2r">