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

    <tr>
        <th>Summary</th>
        <td>
            Segmentation fault when running app with statically linked libc++.a in Clang 15 on macOS ARM64
        </td>
    </tr>

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

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

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

<pre>
    Hi!

I tried to compile & run the following program statically linked against `libc++.a`:
```
#include <iostream>
int main() {
    std::cout << "";
    return 1;
}
```

and it crashed as follows:
```
% ./a.out
zsh: segmentation fault  ./a.out
% otool -L ./a.out
./a.out:
        /usr/lib/libc++abi.dylib (compatibility version 1.0.0, current version 1200.3.0)
 /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0)
% sudo lldb -- ./a.out
(lldb) target create "./a.out"
Current executable set to '.../a.out' (arm64).
(lldb) r
Process 99395 launched: '.../a.out' (arm64)
Process 99395 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0000000000000000
error: memory read failed for 0x0
Target 0: (a.out) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x000000010001c67c a.out`std::__1::__stdinbuf<char>::imbue(std::__1::locale const&) + 52
 frame #2: 0x000000010001bf08 a.out`std::__1::DoIOSInit::DoIOSInit() + 132
 frame #3: 0x000000010001d460 a.out`_GLOBAL__I_000100 + 72
    frame #4: 0x00000001000ddf4c dyld`invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const + 164
    frame #5: 0x0000000100107784 dyld`invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const + 340
    frame #6: 0x00000001000fded8 dyld`invocation function for block in dyld3::MachOFile::forEachSection(void (dyld3::MachOFile::SectionInfo const&, bool, bool&) block_pointer) const + 528
    frame #7: 0x00000001000c9f98 dyld`dyld3::MachOFile::forEachLoadCommand(Diagnostics&, void (load_command const*, bool&) block_pointer) const + 168
    frame #8: 0x00000001000fdc80 dyld`dyld3::MachOFile::forEachSection(void (dyld3::MachOFile::SectionInfo const&, bool, bool&) block_pointer) const + 192
    frame #9: 0x00000001001071d4 dyld`dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const + 516
    frame #10: 0x00000001000dde8c dyld`dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const + 172
    frame #11: 0x00000001000de038 dyld`dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, dyld3::Array<dyld4::Loader const*>&) const + 216
    frame #12: 0x00000001000de104 dyld`dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const + 124
    frame #13: 0x00000001000f33ac dyld`dyld4::APIs::runAllInitializersForMain() + 312
    frame #14: 0x00000001000cddbc dyld`dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 3136
    frame #15: 0x00000001000cd06c dyld`start + 488
```

Clang 15.0.6
macOS 12.6 ARM64
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUV91u47wRfRr6hohAkfq98IV_4jZAFlms-xW9MyiSstlQpEtSyXqfvqAkx3akTfZboEVrOLIkznDOOUMOM9Q5uddCzEG6BOl6Rlt_MHb-HKe-bmeV4af5XyXAMUBrgBb99QF6KwWH3kBmmqNUAgKcQdtq6A8C1kYp8yr1Hh6t2VvaQOepl4wqdYJK6mfBId1TqZ2HIENKVgzgJcDLiIIMATJECff9t3_ERGqmWi4gICtpnLeCNoDc98NSe9hQqQEuAC4hyJf9ewghdJ6HWcmCmdYHb0BWEGAcvuTKzgrfWg3jt5cgX09j6a5Ucyg9ZJa6Q6DkBubu5xRSGAG8oZFpff_qhzsAsoBO7Buhg0pGw5q2ysP3lsHZeGMUvHt8P3Z5PEeGwwfgTesswBslq_46aE0rGfGTkhUEuAhZpF5WUkl_gi_CuoAjjlCEAF5B1lortL8MYIQiEsbKIdo4zPbkvGii5e8HIfEwVl4EcC03UClewbu7sUBFGAnZ99TuRciMoD6sTXwxxbi3Xg3hxHfBWk8rJaATPixpgPMounLIA3hqmywBuIxGsWz_5qs1TDgHy5KUKVS01ewgwrL7eL4pZ-fN8Sj4OdIC-oMVlEOASRyU-lcr2rAJ1mFqZpqIHo9KRGH13_WmAOfBMEwEraDO6M78_h-r3XKx3i1Wq_vtts8JF4Csu2kp51Y4B8gafb9KLYSwtrQJMpKwOSH6jt59ekthrbHBoBGNsSfYYa6pVILD2tjg1xv-rc8O6sUpBlnKM--xxJX_X9EiIPg1NW50i28s4_DHspzBnnqG3grUbhefb5znUldtDciKHagNha4bkU3VCoCLsY8yjCoBmdHOA5x1ZRAvYTqs-AscPIZT1aj4AM7aPDxtH7T07x-HaouXMCajOGQchycZeouz-8vj03LxuNs97PrxbqIcTyiYjKbivE4Y5CfFQYakfjFsqJ6tZv2NsbBShj1DqTu7pAf_aCgXtr-vpeYLzb-1eqFUICSpkj-EdQAXVy7fWu1lI7aeejEo26ncE8-SCcDpe8AxyvMi-VOASR_9C2WHp4Wm6vTjDbex95QdrhADXKwl3WvjvGSuA7n6ZJK_f1lwbldGvwjrhb1aOCv4YmTYZEWru38POJS626Mdvt3RSO1DzMFw8FzcCkOSqb2QjTJZc8GL3xZmI5W4EWUrOi-AizOJn7sMtg-6Njf0K2PU5TebYH5NNMXFBNF8RJSVdflG9FMeYZ2uTNNQzSeTe2anDOU71hteZeJXwcfZFPhiIkusQL8M_r-fhLicqhvlxDaMefIzHv-HuyyNs6kTB00UTFGwa-L_qXo4WcDj8RnIBSLFJ4Bsq69hLI33pvnj-Amcm5wsrKUnQFajCBdByf2IBZ6WdXx0chGj5PdYfFWt--P4Si1_lPr5T2mMp86ceHzg1oTQqaQvvj64N2zvcr0x9stVJxUqeTyZ0vGhzDivpsIdrThSK24Zdhg-3kI3a75HQibzMjpuEeMoe4PiPLW9cklRfNDSrRTVexinEYqGMA1lT1sY4yiDi29fsmTG54SXpKQzMY-zPE5zjIp8dpiLohSpqIu0IDlFFRVFlTJU4hLXpMrzcibnGGEcY4xwTJIkj1BV1HmR5SjGSZqQFCRINFSqSKmXJjJ2P5POtWKelhkmM0Urody5TbfzYHRXtXsHEqSk8-7i5qVXYr4d95SvB6FDm65Dc06PR_gq_WGiO79uycOZe5YFGg17QXotWqvmB--P3VLCG4A3e-kPbRUx04Q2UL2cf-6O1vxTMA_wpiPlAN50vP4dAAD__2pM01c">