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

    <tr>
        <th>Summary</th>
        <td>
            [clang] 7 tests started to with with the new glibc `qsort()`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    The following tests started to fail with the new `qsort()` in glibc 2.39:

```
Failed Tests (7):
  Clang :: Modules/Werror-Wsystem-headers.m
  Clang :: Modules/compiler_builtins.m
  Clang :: Modules/context-hash.c
  Clang :: Modules/cstd.m
  Clang :: Modules/darwin_specific_modulemap_hacks.m
 Clang :: Modules/dependency-gen.m
  Clang :: Modules/pch-used.m
```

They're crashing with the following message:

```
free(): invalid pointer
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /builddir/build/BUILD/clang-17.0.5.src/redhat-linux-build/bin/clang -cc1 -internal-isystem /builddir/build/BUILD/clang-17.0.5.src/redhat-linux-build/bin/../lib/clang/17/include -nostdsysteminc -x objective-c-header -emit-pch /builddir/build/BUILD/clang-17.0.5.src/test/Modules/Inputs/pch-used.h -o /builddir/build/BUILD/clang-17.0.5.src/redhat-linux-build/test/Modules/Output/pch-used.m.tmp/pch-used.h.pch -fmodules -fimplicit-module-maps -fmodules-cache-path=/builddir/build/BUILD/clang-17.0.5.src/redhat-linux-build/test/Modules/Output/pch-used.m.tmp/cache -O0 -isystem /builddir/build/BUILD/clang-17.0.5.src/test/Modules/Inputs/System/usr/include
1. /builddir/build/BUILD/clang-17.0.5.src/test/Modules/Inputs/pch-used.h:1:19: current parser token ';'
 #0 0x00007fdc34d3df7a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib64/libLLVM-17.so+0x93df7a)
 #1 0x00007fdc34d3b934 llvm::sys::RunSignalHandlers() (/usr/lib64/libLLVM-17.so+0x93b934)
 #2 0x00007fdc34d3e7eb (/usr/lib64/libLLVM-17.so+0x93e7eb)
 #3 0x00007fdc33e5b9a0 __restore_rt (/usr/lib64/libc.so.6+0x3e9a0)
 #4 0x00007fdc33eadb44 __pthread_kill_implementation (/usr/lib64/libc.so.6+0x90b44)
 #5 0x00007fdc33e5b8ee gsignal (/usr/lib64/libc.so.6+0x3e8ee)
 #6 0x00007fdc33e438ff abort (/usr/lib64/libc.so.6+0x268ff)
 #7 0x00007fdc33e447d0 _IO_peekc_locked.cold (/usr/lib64/libc.so.6+0x277d0)
 #8 0x00007fdc33eb7ab5 (/usr/lib64/libc.so.6+0x9aab5)
 #9 0x00007fdc33eb9dec _int_free (/usr/lib64/libc.so.6+0x9cdec)
#10 0x00007fdc33ebc72e cfree@GLIBC_2.2.5 (/usr/lib64/libc.so.6+0x9f72e)
#11 0x00007fdc3c2c853c std::__new_allocator<char>::deallocate(char*, unsigned long) /usr/bin/../lib/gcc/x86_64
-redhat-linux/13/../../../../include/c++/13/bits/new_allocator.h:0:2
#12 0x00007fdc3c2c853c std::allocator_traits<std::allocator<char>>::deallocate(std::allocator<char>&, char*, u
nsigned long) /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/alloc_traits.h:517:13
#13 0x00007fdc3c2c853c std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_dest
roy(unsigned long) /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/basic_string.h:2
89:9
#14 0x00007fdc3c2c853c std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_disp
ose() /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/basic_string.h:283:4
#15 0x00007fdc3c2c853c std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_
string() /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/basic_string.h:804:9
#16 0x00007fdc3c2c853c clang::Module::Header::~Header() /builddir/build/BUILD/clang-17.0.5.src/include/clang/B
asic/Module.h:241:10
#17 0x00007fdc3c2c853c clang::ModuleMapParser::parseUmbrellaDirDecl(clang::SourceLocation) /builddir/build/BUILD/clang-17.0.5.src/lib/Lex/ModuleMap.cpp:2558:7
#18 0x00007fdc3c2c2049 clang::ModuleMapParser::parseModuleDecl() /builddir/build/BUILD/clang-17.0.5.src/lib/Lex/ModuleMap.cpp:0:9
#19 0x00007fdc3c2c1e9f clang::ModuleMapParser::parseModuleDecl() /builddir/build/BUILD/clang-17.0.5.src/lib/Lex/ModuleMap.cpp:0:7
#20 0x00007fdc3c2bce5b clang::ModuleMapParser::parseModuleMapFile() /builddir/build/BUILD/clang-17.0.5.src/lib/Lex/ModuleMap.cpp:0:7
#21 0x00007fdc3c2bce5b clang::ModuleMap::parseModuleMapFile(clang::FileEntry const*, bool, clang::DirectoryEntryRef, clang::FileID, unsigned int*, clang::SourceLocation) /builddir/build/BUILD/clang-17.0.5.src/lib/Lex/ModuleMap.cpp:3119:24
#22 0x00007fdc3c28e6da clang::HeaderSearch::loadModuleMapFileImpl(clang::FileEntryRef, bool, clang::DirectoryEntryRef, clang::FileID, unsigned int*) /builddir/build/BUILD/clang-17.0.5.src/lib/Lex/HeaderSearch.cpp:1738:7
#23 0x00007fdc3c287d8e clang::HeaderSearch::loadModuleMapFile(clang::DirectoryEntryRef, bool, bool) /builddir/build/BUILD/clang-17.0.5.src/lib/Lex/HeaderSearch.cpp:1830:9
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWd9znDgS_mvkFxUUCBjgwQ9jO3PrKrs2tc7ePlJC6hl0FoiTRGy_3N9-JWl-MXGSic_ZS8phZoT09defWq0WUGPEZgC4RMUVIsROUqgeEYKKmws62U7py9B20Sr-cvmpA7xWUqonMWywBWMNNpZqCxxbhddUSPwkbIdtB3iAJ4wWyb-N0haRCpEaLRIsBryRomWYxFmNsiVKblCyuy6S7Z__uaJCAsefvBlEqtJB7EZgfC3psMGuIVvie8UnCQaR1V-gtdLRX-bFWOijDigHbeL-O8OY6kchQTftJKQVwzkjBgvPNuqo6WL2vc7G8u8icqqfxNCYEZhYC9b0_k5Px6aj7PHA6GvDYYSBw8Beog0M37U2si6aDOxpnagfrp86eEGk1ICZpqZz076f4EMk9GAM3cC3p3OtAbZxkC2xGD5TKTgelRgs6NDl492H5cMHbKa2FxZT3E4brGFU2rrw6qwdjbNBVoisNsJ2UxszF68rKT_vPqJRq38Bs4ishDGTdxXTgWMxMDlx8NS9M7il7NFqygCRazxqGLViYAxwbNSkQ7MbSY1RTFAX5XoasGFajDYOlB8sZY-YT_249z6Jsf_3UauNpj2mejP1MFjHHSOychHGudC7r4isrv68vbtxYeKmKkrLOImL2GiGyEoD76iNpBim52jXvxXDrjeOGEtx5FUcqIxECPx3NRTHTlzR7gYiskpLJ_BW0mhQxvJgWAwMR89YtW4SxGeI2HYN4gh6YaORdT_OzaUaRFaH4L0dxsnOorjDkXonp7-w9vtkx8nO1kxs-3FmPnaOReuwZg2O1qIfpWDCRqEp6uloDh0iRlkH0Uhth7Kbv523t46j3xP89oD5-qQ8eEREVpPRhzAJqyONf870o2yZuv8-u7BJaxgsHqk2oLFVjzBgREqUXblrSIyIZAlOnpMkSco1Z1nOM74uKfbJxGdL82LCl49aDNYv9U8hX1SHTpo-NcpYDbRHZOFyhhgsIjX2yW4rgRTtIg-fd3f_vHfuGYXIVfJce6MuK-5ZpSes2jrLX2P1xzQ8iM1A5W904BK0Cen1bMMOd2aYnBiGEtqz0VznGVp2jJZB0dY0wU2jwVilodH2a9AsNipeeNgMaprMUPM5KuVtnuOmGW2ngfLmUUjZuKUHLuVSK9Rwhpk6afO5FMUp-QoAb4yX-yzeldvtjgAXc8A8q9ZrTFt1lgxkUa3XM7jyBC4veYKb29-bEeCRNVKxR-AxU5KfA1-WfK5yNYdvS9oW5-hIaVvMgOoToJoDw40YbOPqgXMgGQe2h3SrIzmBZCUBzHx5kSf_uLu9um5ITOKz-K5LAjPw2dpjhFVFxrCxPKy4phngqaFSKkat0ii7Zh3VKPsQbnPY3nIZwt8hS5cQpsGX2RxL5TZPt0K3tL7YXzfMJbznatEs8sAqOs71bufNdiNOLrs0S1YMkSv_Fzq3wufKGXWfMBOULcnBd_JN3_dDG6upQ8yuv7x3rMhronxzRMiex7oFbm9T791081S3TnvZirR0O012UC77TtSw5-c0DT9aagRrjNVi2Ox8J9eHzq7hoPBemutXJuIVsZv7hrvN0jPT6gWR6o3B927yHTvs5dtGXOV26qOVl_9KGgozBmbKwH5X_T_LVmUoW-YHwYpfRbD_BPjAbGvk19CsSvJ5kC1e0yycabwrocQM33_zx5ati9sfe7d-rIA9Ir49P10FTo7wvrIN05z7MjY5cC7P4nxPx4--2g2NvvL9s281SElvhL4BJt2mdBj24M-4d25WhRre5FaYyjt43rtwT8eYje4sTIqiQtmyPPhRnfhBkrw-z49wZ-vCuzNN5iFSn9BMoV7_KjQPapJkTrNlULQ_QvOejish4W9gmp7L9Bscj7q7lg-D1S-YqcGdC32p0ColffVw6HgjNDCr9Ivv_QesT-47oNubWX3mT27Lk34_eaFkqT-zkkNmJyeFWAULTo8ZhWT0AFSzLrRIRflMs9t-lF_RbavE-yr2P4py7NFWl7TM5gmEnFRZVckr-EFZ5pK86u9Ol_D5E_yqsuOMs3tIesEvM15nNb2Ay7RMkkWZ5VV-0V2mLKvLYkEIrwpSF2tSkDZp6ypNSVWnRX0hLkniTi6EpGVaJXlcQJqULCFVla7zmhQoT6CnQsZSfu5jpTcX_snoZZmleXEhaQvSbN8AbLcn_wJAX_rnqe20MShPpDDWHBCssNK_NggjihtcfvlCwD8qnr0QCM_-v3gtcDFpefn257vekf8GAAD__2PWc94">