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

    <tr>
        <th>Summary</th>
        <td>
            [clang-analyzer-deadcode.DeadStores] false positive for local constexpr c-string captured by lambda
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Local `constexpr` c-string used only in lambda yields false positive about dead store.

Minimal repro: https://godbolt.org/z/qr8zGeGsv

```c++
int main() {
 constexpr auto constexprlocal = "c"; // warning: Value stored to 'constexprlocal' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
    auto callback = []() {
 return constexprlocal[0];
    };
    return callback();
}
```

More cases repro: https://godbolt.org/z/GqG8svY9o

```c++
#include <iostream>
constexpr auto constexprglobal = "a";
auto global = "a";

int main() {
    auto local = "b";
    constexpr auto constexprlocal = "c"; // warning: Value stored to 'constexprlocal' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
 constexpr auto constexprlocalint = 11;
    auto callback = [&]() {
 std::cout
            << constexprglobal
            << global
 << constexprlocal
            << local 
            << constexprlocalint
        ;
    };
    callback();
    return 0;
}
```


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUVU2T4jYQ_TXtSxeULOEPDj4MQ5hLctmkUpWjLDWMEiGxksyG-fUp2cwwkPm6LuWCstXdfq_fa1rGaHaOqINqBdW6kEN69KH7xr_9UfRen7pfvZIWoWbKu5jo30OAmqGaxRSM2-EQSaN39oTGoZX7Xks8GbI64lbaSHjw0SRzJJS9HxJqkhpj8oHmwNbA7qbv34wze2kx0CF4EHf4mNIhgrgDvgG-2Xnde5vmPuyAb56Ab76H9umBHuLxdRWo2XQp4Kt8jU-NS7iXxgFvgS8RmvNzfGGEckj-cmsnymKNwLkCzkGscAKCP2Rwxu0yxD-lHWjiojF5BN5clwDeoB7GNpkU0TiTjLTmSSbjHZqIjo4UMOSWQLVSVrrdTDppT08UZrlTymuar0nq3_NbIlTrM3TEM2ZpbS_VPxPaUcL_0QyUhuBu6EG1YjlYrC4Vobm-f048v2Mq_BKRo6-7fiWoD4RKRopf1_Th-0Mbj38t_eeaAhfGKTtoQhD3xscUSO5B_DIdv6fszvr-Iq2cpJ1SxsAPzj_x0rMgV97pXxfIIT-x4z6EntuS0ZflFd23Lcrrt1wak87WEHfKD-lS4vkD4h7E_a2S78ZdHd_mTq16L_WsxacInolfR344UO9M0qtZY18cr0J3Qi_FUhbUlXVbN6IsK148dsuSb4kWDdO1Wmx1WVGje6mrtmVLavm2MB1nXLC6XLCWV1U5V3qxbHrZNqpkQi81LBjtpbFza4_7PJ2FiXGgrhaClYWVPdk4bgvOHf3A8TA7tloXocs5s37YRVgwa2KKlyrJJDuumS-57nZ7bH04K3Mx4ssSUvKQhjwT_em8g4oh2O7m_8akx6GfK78Hvsmozj-zQ_B_k0rANyOXCHwzcv0vAAD__w_xIRU">