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

    <tr>
        <th>Summary</th>
        <td>
            [libc] add basic lifetime annotations
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc
      </td>
    </tr>

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

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

<pre>
    Reject the following cases

```
cpp::string_view test() {
  char data[4] = "123";
  return cpp::string_view {data};
}
```

with

```
[1/2] Building CXX object libc/src/__support/StringUtil/CMakeFiles/libc.src.__support.StringUtil.error_to_string.dir/error_to_string.cpp.o
FAILED: libc/src/__support/StringUtil/CMakeFiles/libc.src.__support.StringUtil.error_to_string.dir/error_to_string.cpp.o 
sccache /usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -I/home/schrodingerzy/Documents/llvm-project/libc -isystem /home/schrodingerzy/Documents/llvm-project/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -std=gnu++17 -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -ffreestanding -DLIBC_FULL_BUILD -nostdlibinc -idirafter/usr/include -ffixed-point -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -MD -MT libc/src/__support/StringUtil/CMakeFiles/libc.src.__support.StringUtil.error_to_string.dir/error_to_string.cpp.o -MF libc/src/__support/StringUtil/CMakeFiles/libc.src.__support.StringUtil.error_to_string.dir/error_to_string.cpp.o.d -o libc/src/__support/StringUtil/CMakeFiles/libc.src.__support.StringUtil.error_to_string.dir/error_to_string.cpp.o -c /home/schrodingerzy/Documents/llvm-project/libc/src/__support/StringUtil/error_to_string.cpp
/home/schrodingerzy/Documents/llvm-project/libc/src/__support/StringUtil/error_to_string.cpp:87:28: error: address of stack memory associated with local variable 'data' returned [-Werror,-Wreturn-stack-address]
   87 |   return cpp::string_view {data};
 |                            ^~~~
1 error generated.
ninja: build stopped: subcommand failed.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEVlFz4zYO_jX0C4cem7Li-MEPsmXdZZrstpvNpHMvGoqEJLQUqSMpJ-7D_vYbSsom3W5n7vbhkmgSCQTAD8AHEsJ7bAzAnqQHkuYLMYTWuv29bJ1VaBpw_2qHRWXVZf8JfgMZaGiB1lZr-4SmoVJ48GSVxedqNT-rTPY9STKSZD44NE15RniiAXwg_JrwHSXbA1lllMpWOKpEECQ9bEiaU5LklHC-5gnhnCSTloMwOEO_65RsD6P9Np-048ufsZBV9oSh_StIkh7WhBc87nsYUMd46fHXX6mtxkg1VpLwwrv4tyz90PfWBcKL-3H_h4Ca8OJ4J36HAjV4wotosvROLr-qL1-Vl-CcdWWw5RTAUqEjvPhWKvt-ackqK7Kb21NOkuxdgVCyyryUQrZACS8GHzUrNIQXUgvTEH4g_EBZfntzOJYfsrvT_c_Z8USSvCy1PndlRFLyVRl_GwyU3RBetLaDGNErzf64EF7kVg4dmDBGoM8d652NpZgDogz9xQfo6A-5qGKNZ1eEF2ikHhRQVp_RY4Uaw4Wh0WjAsxaVAkPZ45gUkuRKBGABO3gjG0wzCKdAMXEWqMXsw8ATZY9C66j6HJyg7NFYNpjBg2K9cKKDAI6yxyeHAdiUbk_ZoxQ-sH8PIlp26D2ahtUIWjE0GFBo_ANcVMSu1ygxsFpoHVpnh6aN9vYMDhTzTxhkyxTUYtBh2t5YeJbQBxYuPYwiw87owiA0U8FGOAo0BGDfWfFD04APLPp3GJP2OKFm0pozOI_WTJg1iFgNhkaBCSJMCzIIxTpxqYANZiYkKMpqhaIx1geUnkmr42Z1PRgZ7ZiH8b-PeiKIN98fOWUNZfmH_HR4-AdlPiiS5I0ZJjquty-E_OX-46fP5c3dz7ckeSv55eHm-FMZX180szwvPzzc3pbHf56OP92_iE-fPn34WN59zE8vDl4lZX4qsofbz5TVPUYi1Q7AB2HGk2R2UESfh4eb25yyGKnSWKGJXFboRB3AfW2rV0bW-BypYtEEympjWeRuQDN9TIWcM2Ms0-KZnUEG696UY14bzBMaxYKoNMwi4S8mdo2xg__eugsBKauDwzMKzcQQLDsLN3KQJHkvQgA3Q7FdJGFk9IQ20rp7kWsQ9beL3_TF2Eojc9_QyFgWb6U_c0tB70CKkTZRQ-52DJ4DmDnYKGvMwLATDRrhLtE8FmPmfw9KmIDy77vn224cMTIPHUYP8BRPBga2nponUjgmjU1HEpuLx3oR2rk9ZIinT7Cx46LD0DoQinlRQ7hQ9thoWwk94XRDrJ-n7C6n7O7z-5757K54VwBLRZl95xTIH7tk_jvQ39kzDiT_3w2T7HpLkoxfxxljvtMyKpRy4D21NfVByN9pB511Fyq8txLH_ovjFNVWCk3PwmHsAkr4dpzD-HYe10BRkh5eLkt-ZI-TnI1e2bwNSfNxxKPXW0q2R_q_DXuzyd_-kPT05csXssrWU3y0AQMuxrAkq8yg-U3EkMfBgPpg-x5UFPihkrbrhFG0Fqgn9a-j40LtE7VLdmIB-_U2Xe3S63THF-0-BZUmkm9W2-tVLTeb3VVV11eK76RM6jRJF7jnK56urvjVesuT9Xq5VpBsrirYpCBkdX1NNivoBOplLPLSumaB3g-wX2_SXcIXWlSg_Tircz4VPk6vC7cfSVENjSeblUYf_KuHgEGP8_1okOaxwrQSHiXVWMM40whj7HRZ-8Xg9L4Nofcx_7wgvGgwtEO1lLab6fdXFo4wIztnpOc9_08AAAD__2kcPWw">