<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJztWN9v4jgQ_mvCixWUHxDCAw8UaK937V7Vbld3T8hJTPDViSPb6cL99TfjAGFb0tLdk046bRWlsT2e-WyPv5khkdl28mBYpYmRRLFKyaxOmRNOHW_uePt35KXUECe4NEUF75Xup1UFva_ldk_TDEJepqLOGHHC2YoLprfasMIJF6cEuNRGMdoOQ7NODbmjZg3jU1LVieAp0SZDu-H0WCO2Kys4umhmEzvRCeK35WE9Y6v9TTHQehgv5DMDtTjRGc2twdF8tyD4CHf2LexpoqWoDcqnstSGpGuqnGC6M9tiVczUquwGQVtF1vDeysE0Lw0pKC9B4IXqIwxOEMDx0VN_dqjVS1ooqawNng88ZLm8uf60WC737YMQKzNxNPk8m_-q0fYQXnjhwYUFLXMnuIDH9YfEBTWCJ044h3fa9NtO6Nk1_RFx52D8YnZ3t5wvLh6vYMx_eQ-gHcFDnqnIFS8z0sf19mEB79-QEPxlHg2GYfNFblmRrln65AQzQknBCqm2hCklFcmYYamRqmPmTFZbxfM1XtN4hi4QeF7gBp4_ssoA19WnR3J1d-MEowy7ki35tRacluSBfaUqI8wQKvod-h81L3PyZbdGN-z7w75n1d7w5MviDzgHcGJVl-QrB8d312QFoNMDKl6uZCf0ogBFeAnbrTst2nT7fsfwdQmHwDMAQjMiV0TzvxmJO4ThD0jN2wziabyYjb7hgOXS33-gd1TVMkuaDv2VwtHHz5LDJk5xHw-fY9x6XqJ_1Bpu-SW6F7zFcwEO17YP7tbXsu_3PbwCnRDhlLyN703juX8aYUI1T5fAlXA-cDsagpmdEMSRpVGUG72XA6Y9KUqFkMD44GwHQYLCrw0e0et_gshevW-2vnGfs7Y0mHUd-kq_EQvar1Orf2fyjwAeLC4R8N0BxMsIdzaI7zIfNvt1HNPgJIgNbC8vwAe0LpAkbew6f_o0yxTTGjTEhGtSSgPHSJE3G24rrL9giwALgVrFUlYasUWQK8WYFXyLY87tvlMyRSSGqYKX1CBLWgbM2IrWAig1NVyWDRvlJRXExwgSP1xfPSyuvtjwNyVZXVQ4M5WKda45tYZwrWgANqqgVcWQ7XK0AGRG2235SXo_Se8n6f2vSO96RbayJgkTnD0zAhSgyRopoAQSoBoSRrj8SDnANXTHhx2qoIRRKyG_QlqGOhWBwi9XUHsFI92gMmubRAG4uhT8iYktSTrTMlJJrXkiGKIHV0aYKSSWBrJXqCuhyANlGiGzJicDhPDdpe0YgF0GqW32idNdF0dd242qcMJK0LwrbyWfYdJrhRZFrWHj7AjspE1dYRfjMI4jL-7S19H9y2J6Rx4eb2-n9386h5z_hAegPbCLLMw23KAX-OMAHMMwjWNDksClf9KdGow0EETWjFagh-ZYq5OYWKrQuPehjW_204dX6O-V79iEfTDu3Symv521Mgh4vOQGPUVAKY-4vHZd3nvrAqGMQ5g23zv_4IXfOV8bLgSWDnDB0ZU_fDLNn66rCoMwyz6G4P6oeHIFo09uUwmG81UNuOAaacawCqRcaLxAKAP-2xSJHzvTS0iKBNfG6mkKS6QQKOZa9E3Zaf2oretwSW7XChb397_fH7kK8Xc6wCNlAS0gTcM2YBXp-8U2WZE2K3hgeQEJG7W5U5NI2d9QFLO5Esw68OSZ5b4LlKdB27tF-WNSlwb4C-eT3SSC1W7fcxt9gRfA40VeNPCHgPki9KMgSlPf91PP9Z3Rgm0q_LcX9ONBMPT6KGxNfKYqZ9ZDN3G0jAZulbqCl_XGzct6J9KwVSEzJlAQfJtvmqFrCD1wmVk25wqHDqlXwstGopdNwmwcjmmP1mYt1eSWqlReUvHEerUSk7UxlQ2VwSU8ORxsnfRTWewSt33-BkHhL3ANaHKta-SUy2EYRePeesLGo9U4HmVDb5iOkiSM4pDG8OEPh0k8joY9QSFO6YkzhA0Lkjq3P_XMAGvQpoLYN5z3fhwPn-x2eux7_ngY9ukoCWk0jgcj5q-YP3YGHoMgIPqopy9V3lMTqxKQaRi0l6EdpBpzdcYsfEBouBFscsIneXlu-ry72a9_TurZtUzsQv4BFYwRDw>53669</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Segmentation fault in std::__1::__libcpp_db::swap with -D_LIBCPP_DEBUG=1
        </td>
    </tr>

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

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

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

<pre>
    Steps to reproduce:

`cat /tmp/fs.cpp`:

```
#include <filesystem>
#include <iostream>
struct Path : public std::filesystem::path {
  Path(std::filesystem::path p) : std::filesystem::path{std::move(p)} {}
};
Path Absolute(const char* p) {
  return std::filesystem::absolute(p);
}
int main() {
  Absolute("/aaaaaaaaaaaaaaaaaaaaa");
  std::cout << __LINE__ << std::endl;
  Absolute("/aaaaaaaaaaaaaaaaaaaaaa");
  std::cout << __LINE__ << std::endl;
}
```

`clang++-15 -stdlib=libc++ -std=c++17 -D_LIBCPP_DEBUG=1 /tmp/fs.cpp && valgrind ./a.out`:

```
==6453== Memcheck, a memory error detector
==6453== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==6453== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==6453== Command: ./a.out
==6453== 
11
==6453== Invalid read of size 8
==6453==    at 0x48A8EC7: std::__1::__libcpp_db::swap(void*, void*) (in /usr/lib/llvm-15/lib/libc++.so.1.0)
==6453==    by 0x10A8D1: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) (in /a.out)
==6453==    by 0x10A82C: std::__1::__fs::filesystem::path::path(std::__1::__fs::filesystem::path&&) (in /a.out)
==6453==    by 0x10A4EF: Path::Path(std::__1::__fs::filesystem::path) (in /a.out)
==6453==    by 0x10A32C: Absolute(char const*) (in /a.out)
==6453==    by 0x10A3E0: main (in /a.out)
==6453==  Address 0x8 is not stack'd, malloc'd or (recently) free'd
==6453== 
==6453== 
==6453== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==6453==  Access not within mapped region at address 0x8
==6453==    at 0x48A8EC7: std::__1::__libcpp_db::swap(void*, void*) (in /usr/lib/llvm-15/lib/libc++.so.1.0)
==6453==    by 0x10A8D1: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) (in /a.out)
==6453==    by 0x10A82C: std::__1::__fs::filesystem::path::path(std::__1::__fs::filesystem::path&&) (in /a.out)
==6453==    by 0x10A4EF: Path::Path(std::__1::__fs::filesystem::path) (in /a.out)
==6453==    by 0x10A32C: Absolute(char const*) (in /a.out)
==6453==    by 0x10A3E0: main (in /a.out)
==6453==  If you believe this happened as a result of a stack
==6453==  overflow in your program's main thread (unlikely but
==6453==  possible), you can try to increase the size of the
==6453==  main thread stack using the --main-stacksize= flag.
==6453==  The main thread stack size used in this run was 8388608.
==6453== 
==6453== HEAP SUMMARY:
==6453==     in use at exit: 192 bytes in 5 blocks
==6453==   total heap usage: 8 allocs, 3 frees, 1,312 bytes allocated
==6453== 
==6453== LEAK SUMMARY:
==6453==    definitely lost: 0 bytes in 0 blocks
==6453==    indirectly lost: 0 bytes in 0 blocks
==6453==      possibly lost: 0 bytes in 0 blocks
==6453==    still reachable: 192 bytes in 5 blocks
==6453==         suppressed: 0 bytes in 0 blocks
==6453== Rerun with --leak-check=full to see details of leaked memory
==6453== 
==6453== For lists of detected and suppressed errors, rerun with: -s
==6453== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)
```

`clang++-15 --version`:

```
Ubuntu clang version 15.0.0-++20220206064150+31626cc111c0-1~exp1~20220206184250.150
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWEtv4zYQ_jXyhZCghx_ywQfHdtK0SRskm0V7MiiJstlQokBSid1f3xnKtryJlTjbAgWKDQRFJIfz4vCbGScy204eDKs0MZIoVimZ1Slzoqnjzx1__x76KTXECS9NUcE7115aVTD7lm73NMMw4mUq6owRJ5rlXDC91YYVTrQ4RcClNorRdhmGdWrIHTVrWJ-Sqk4ET4k2GcqNpscccVxZwtFFs5vYjU4Yv08P9owt93fJgOthvZDPDNjiRmc0twJH851B8BHt5Fu1p4mWojZIn8pSG5KuqXLC6U5sq6tiplZltxK0ZWQF76UcRPPSkILyEghesT7SwQlDOD566s8utXxJq0oqa4PnAw9ZLm-uf10sl_vxgYiVmTjafJ7Mf1VoewivovAQwoKWKye8gMcNBsQFNoInTjSHd9rM20mY2Q2DEXHnIPxidne3nC8uHq9gLXh9D2A8hIc8U7FSvMyIh_Z6YMDHNySCeJkP-4Oo-SK3rEjXLH1ywhmhpGCFVFvClJKKZMyw1EjVsXMmq63iqzVe03iGIRD6fuiGfjCyzECvq18fydXdjROOMpxKtuTnWnBakgf2QlVGmCFUeB38HzUvV-TrzkY38oKB51u2Nzz5uvgdzgGCWNUleeEQ-O6a5KB0etCKl7nsVL0ogBFewtZ1p0mb6SDoWL4u4RB4BorQjMicaP4XI3EHMfwBqPmbfjyNF7PRNxiwXAb7D4yOqlpmSTOhXygcffwsOThxin48fI7R9bzE-Kg13PJLDC94i-cCAq4dH8LN09ILPB-vQKeKcEr-JvCn8Tw4rWFCNU-XgJVwPnA7GoCZnSDElaVRlBu9pwOkPUlKhZCA-BBsB0KCxG8FHsHrf6KRvXrfuL4Jn7NcGs66Dj3X7-SC9uuU9R9s_icK9xeXqPDdQYnXGe5sJb5LfNT46zinwUkQm9heX4BPcF0gSNrcdf72aZYppjVwiAnXpJQGjpEibjbYVth4wREBFAK2iqWsNGKLSuaKMUv4HsacO32nZIqaGKYKXlKDKGkRMGM5rQVAamq4LBs0WpVUkAAzSPxwffWwuPpq09-UZHVR4c5UKtZpc2oFoa0oABxV0KpiiHYrlABgRlu3_AC9H6D3A_T-V6B3nZOtrEnCBGfPjAAEaLJGCCgBBKiGghEuP0IOYA3d4WEHK2hhVC7kC5RlyFMRaPxWCnqvcKQbrczaFlGgXF0K_sTEliSdZRmppNY8EQy1h1BGNVMoLA1Ur9BXQpMHzDSqzJqaDDSE7y5uxwpYM0htq0_c7rq46tppZIUbckFXXXUr-QKb3jK0WtQaHGdXwJO2dAUvxlEcD_24i1_H9E-L6R15eLy9nd7_4Rxq_hMRgPJALqIw23CDURCMQwgMwzSuDUgCl_5Jd3Iw0kASWTNaAR-6wl6dxMRChUbfRza_2c8AXlGwZ75DE_bJvHezmP5ylmWQ8HjJDUaKgFYe9fJbu_yP7AKijEOaNt-7_xCF37lfGy4Etg5wwTGUP30yzZ-uqwqTMMs-p8H9UfPkCkaf3KYTjOZ5DXrBNdKMYRdIudB4gZAG4rdpEj93ppdQFAmujeXTNJYIIdDMtdo3baeNo7avQ5PcLgsW9_e_3R-FCgl2PCAiZQEjAE3DNiAV4fuVmyxJWxU8sFUBBRu1tVNTSNnfUBSztRLsOuDkme2-C5CngduHTfljUpcG8Av3k90mgt2u57sNv9AP4fGH_rAfDEDniygYhsM0DYIg9d3AGS3YpsJ_e8Ig7ocD30NiK-ILVStmI3QTD5fDvlulruBlvXFXZb0jadCqkBkTSAixzTfN0jWkHrjMLJtzhUuH0ivhZUPRyyZRNo7GtGe4EWxywpu8PLfw28Xk2x9CerUSk7Uxlc264SU8KyCtEy-Vxa4G3JeCkF_-hCiDIde6Rni6HETD4bi3nvij_miU59mAUn8UwMGNh8M8jsMBjeMoDMOeoJDy9MQZgO_DpF7ZX41mYHbYVpU4N5j3-GTn8nHgB-NB5NFREtHhOO6PWJCzYOz0fQbZQHiolSfVqqcmVkHgq2HR3op2kWos2hmzwoE_rc1aqsktVam8pOKJ9aw5E2vL3-WM-xE">