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

    <tr>
        <th>Summary</th>
        <td>
            [Clang] `-Wdangling` breaks when `-D_GLIBCXX_DEBUG` is used
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            libc++
      </td>
    </tr>

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

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

<pre>
    `_GLIBCXX_DEBUG` macro is used to enabled debug assertion in `libstdc++`. However, when it's enabled, `-Wdangling` no longer works in the following case:

https://godbolt.org/z/x3dcs8eb6

```cpp
#include <vector>

auto f()
{
#pragma GCC diagnostic push
#pragma GCC diagnostic error "-Wdangling"
    auto &&a = std::vector{1}.at(0);
#pragma GCC diagnostic pop
    return a;
}
```

The expected result:

```
error: object backing the pointer will be destroyed at the end of the full-expression [-Werror,-Wdangling-gsl]
```

The actual result: no compile error got triggered.

---

Not sure whether libstdc++ debug assertion also breaks other stuff. Was surprised to see clangd failed catching trivial dangling issue (and ASan got triggered instead) in one of my project when they were caught previously in other projects.

Clang version is 18.1.0 (as shown in the godbolt link).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEVE9v6rgX_TRmc0VkbiCBRRYFHv39pNFsZkZ9uyf_uUk8NXZkO9DOpx85TQfaLipZIIzP9b3n-BwRo-kcUcM2e7Y5LsSYeh8a3YZLe45pIb1-bVjFfz3-9v_94efPX8cf-78eWcXhLFTwYCKMkTQkD-SEtKRBkxw7EDFSSMY7MA5Yxa2RMWnFcJ9XxQv4n7_ShQLDA1x7cmASwzq-l8nbrOLLJy1cZ43r8p3Og_WuowBXH55jLp16gtZb66_GdaBEJFY-MH5kfP7sUxpi3sMTw1PntfQ2FT50DE__MDy9lFrFLcnqHsQq_rbUMMw7WBqn7KgJWHm4kEo-sPLHPUiMyUPLcMtwN-_X-__QQxDdWcDj4QDaiM75mIyCYYz9N0coBB-AId5xgfgGAgCYrmVYMawEsPIIMek8b_kwd1nvV6w-FiIx3PLcW_ltV3641Q-UxuBA3GD18RNL9yz82RPQy0AqkYZAcbTpkyKfYNN8rHwAL_8mlUAK9Zy1zMoO3riU5TbWgiTQFFPwr6RBpOkAOQ2-fXsFo7VLehkCxZjfHdvsl09vxfFw427ZRcs2300gVBqFvfWfn57y58FYmgXpfIIUTNdRIF3c45fL5f3P332COAbKrzz1FOCDFb7YRdjoQQYSzxH8dD6msW0LeBIx1xmCmQ0XiUBZ4ToNrTDZekok1U_cBXMxwsL70GBiHAkYboXT8PCHcB_7B-NiIqEZ7rKpvKPM6vkVhuAnUSaHpp5e4UqBQImx6xMMgS7Gj9G-Tqip2xkRP1ByyG3ChcKkjImw2hargk8NRYi9v7p3M88OBWvcM8NdsdBNqXflTiyoWdVY83q7rnHRN0rKFbXrdV0qrlDvdCl3lZRbRRuutmu-MA1yXPMdlnzLVyss2lbWyHEjVEtrvVuzNaezMLaw9nLOkbCYaGpWfFdhvbBCko1TMiJORGff4YEhWiPfowwx52Zoco2lHLvI1tyamOKtajLJTgk70cA2x6_JNgs-0Zz_PH4N3DlqF2OwzadQM6kfZaH8meEp3zp_LWctGJ6mwSLD0zzbpcF_AwAA___FTd0_">