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

    <tr>
        <th>Summary</th>
        <td>
            [clang] Missing diagnostic when return a local vector as a span
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            clang:frontend
      </td>
    </tr>

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

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

<pre>
    https://godbolt.org/z/zes3e9jfr

This is a new false negative

```cpp
#include<string>
#include <vector>

template <typename T>
struct [[gsl::Owner]] StatusOr {
 const T &value() [[clang::lifetimebound]];
};

template<typename T>
struct [[gsl::Pointer]] Span {
    Span(const std::vector<T> &V): V(V){}
    const std::vector<T> &V;
};

// Pointer<Owner<Pointer>>> from Owner<Pointer>
Span<int*> test9(std::vector<int*> V) {
  return V; // No diagnsotic
}
```
cc @hokein 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVM1u2zwQfJrVZRGDXkq2dNDBP_Ht-1KgQe6URMlMaVIgV07Tpy8kOXaStigK0DTJ3R3NjLhSMZrOaV1CtoVsn6iBjz6UQ_xeZEnlm9fyyNxHkBugA9Ch803lLS986IAOP8afjlIXz20AsQexmefHo4loIip0-gVbZaNGpzvF5qzf58FKzKPu-8sJSeNqOzQa5C5yMK4Def85hiB3Z12zD7fgNLM-9VbxlMCvvXbqpPHxmhQ5DDXjJHbbRTvqkpuHF6cDZHvI9viVFQ_xISCst3MN1t5FxkcEWp2VHTRQDlRcQGqrRoYjjDWtZnPSlR9cM8OBvIDA-t36A9N_IfrFG8c3qr1y72giTidA-Uw4cjNXvRm1G-FHFU9ABcgNPgHl03q9HfldYf5e_2dZ8zXBN6ZyN5srd9eT-3lgG_wJfxOdYCYlcmccA23GbNaRC6D8V1a3nKfptdwMCZqH4HCkixde_3tsjOpc9Gzqm4aPl3He1jVCKo7-mzYOk6aUTSELlehyuabVMhdpLpJjKdu2Xau2aFZyuWpJyWVWFE1FRdVWbVWLxJQkKBXFkohkmopFTulStE1WFEpnqcggFfqkjF1Yez6NjZWYGAddLkWermRiVaVtnPqTaL5tREC7605u2uAda9eMgWyfhHJEuquGLkIqrIkcb9hs2E7dPhdne_zPxGhcN_viI5saX47avbmn0PpaWZz9RjU2deyVS4ZgP38cDB-HalH7E9BhfOLl764P_lnXDHSYpEWgw0XduaSfAQAA__8oTVKR">