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

    <tr>
        <th>Summary</th>
        <td>
            Clang-18 crash: LLVM ERROR: out of memory.
        </td>
    </tr>

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

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

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

<pre>
    Clang-18 with -fsanitize=address -c crashes on the test case.
Compiler explorer: https://godbolt.org/z/6o77ebG94
```
$cat mutant.c
#ifndef ASIZE
# define ASIZE 0x10000000000UL
#endif

#include <limits.h>

#if LONG_MAX < 8 * ASIZE
# undef ASIZE
# define ASIZE 4096
#endif

extern void abort (void);

int __attribute__((noinline))
foo (const char *s)
{
  if (!s)
 return 1;
  if (s[0] != 'a')
    abort ();
  s += ASIZE - 1;
  if (s[0] != 'b')
    abort ();
  return 0;
}

int (*fn) (const char *) = foo;

int __attribute__((noinline))
bar (void)
{
 char s[ASIZE];
  s[0] = 'a';
  s[ASIZE - 1] = 'b';
  foo (s);
 foo (s);
  return 0;
}

int __attribute__((noinline))
baz (long i)
{
  if (i)
    return fn (0);
  else
    {
 char s[ASIZE];
      s[0] = 'a';
      s[ASIZE - 1] = 'b';
      foo (s);
      foo (s);
      return fn (0);
 }
}

int
main (void)
{
  if (bar ())
    abort ();
 if (baz (0) != 1)
    abort ();
  if (baz (1) != 1)
    abort ();
  return 0;
}

$clang-18 -fsanitize=address -c mutant.c
LLVM ERROR: out of memory
Allocation failed
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: clang-18 -fsanitize=address -c mutant.c
1.      <eof> parser at end of file
2.      Optimizer
 #0 0x00007f3df9360266 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd2b266)
 #1 0x00007f3df935e170 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd29170)
 #2 0x00007f3df935f8c4 llvm::sys::CleanupOnSignal(unsigned long) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd2a8c4)
 #3 0x00007f3df92adbb0 (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xc78bb0)
 #4 0x00007f3e03e41980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007f3df7861e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f3df78637f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00007f3df92bbea8 llvm::report_bad_alloc_error(char const*, bool) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xc86ea8)
 #8 0x00007f3df92faf96 (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xcc5f96)
 #9 0x00007f3df9e87f64 llvm::GetShadowBytes(llvm::SmallVectorImpl<llvm::ASanStackVariableDescription> const&, llvm::ASanStackFrameLayout const&) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0x1852f64)
#10 0x00007f3df9e88029 llvm::GetShadowBytesAfterScope(llvm::SmallVectorImpl<llvm::ASanStackVariableDescription> const&, llvm::ASanStackFrameLayout const&) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0x1853029)
#11 0x00007f3df9feef2e (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0x19b9f2e)
#12 0x00007f3df9fe73bb (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0x19b23bb)
#13 0x00007f3df9fe28e2 llvm::AddressSanitizerPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0x19ad8e2)
#14 0x00007f3e01b5287d (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x1aed87d)
#15 0x00007f3df94da864 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xea5864)
#16 0x00007f3e01b49d43 (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x1ae4d43)
#17 0x00007f3e01b42d52 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x1addd52)
#18 0x00007f3e01ed95fe (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x1e745fe)
#19 0x00007f3e00af5866 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0xa90866)
#20 0x00007f3e0294d645 clang::FrontendAction::Execute() (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x28e8645)
#21 0x00007f3e028cbcc4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2866cc4)
#22 0x00007f3e029c81c0 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x29631c0)
#23 0x0000559843cb4837 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-18/bin/clang+0x13837)
#24 0x0000559843cb1905 (/usr/lib/llvm-18/bin/clang+0x10905)
#25 0x00007f3e02563909 (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24fe909)
#26 0x00007f3df92ad94c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xc7894c)
#27 0x00007f3e025632ae clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24fe2ae)
#28 0x00007f3e0252b0f1 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24c60f1)
#29 0x00007f3e0252b33e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24c633e)
#30 0x00007f3e0254739c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24e239c)
#31 0x0000559843cb125c clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-18/bin/clang+0x1025c)
#32 0x0000559843cbef32 main (/usr/lib/llvm-18/bin/clang+0x1df32)
#33 0x00007f3df7844c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#34 0x0000559843cae1ea _start (/usr/lib/llvm-18/bin/clang+0xd1ea)
clang-18: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Ubuntu clang version 18.0.0 (++20231018091808+48a53509e851-1~exp1~20231018091910.1571)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-18: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-18: note: diagnostic msg: /tmp/mutant-782bd3.c
clang-18: note: diagnostic msg: /tmp/mutant-782bd3.sh
clang-18: note: diagnostic msg: 

********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWlFz46iy_jXKCxWXBJKFHvLgOPHMbGU2qSQ799a-uBC0HO7K4Aso48zD_vZbSLItHHsmyfqeOnVSqUoMDf3xddPdgJm1cqEALqLsMsquzljjnrS5kGzJlFYvS91Ybs9KLV4upjVTi_OEou_SPaHzyjIlnfwBEbliQhiwFp1zxA2zT2CRVsg9AXJgHeLMwiiKr6J4MtXLlazBIFivam3ARGSCnpxb2YhMIjyL8GyhRalrN9JmEeHZjwjPxjrPofxUpN0c0Tjuf7uPOOXMoWXjmHIjvmkkslICKjR5-PLn9bYRCaikgq4Vxesk3v78cbOVAiVk1X_aTqd43QhAEZnWcimdHT1F5HpfqEI3t79_mn-d_LcXRBRFeLIPofklrjQuxsfBwNqBUehZS4FYqY1DEab-U4SLiFwORaVyaD5nzhlZNg7m8wjTCFOlpaqlAj8AF51opbWfh2vlLfbEjIdut91R3k-MkKxQO02y60UGXGMUSrb6N2I2yi7jKLtCEU4i4v_kLML5biRCu0UMF4CQRRG-9GM6Us7fNnv5xtl7xPGOsfxqn7p20KRSES5ec9M2kitUaf1x1st2rq319qhuVfk1ds6SXQ3Z2S59wGrYveNtJ1aGYr3VbcDNwcY3EfbmVf_wCmqtFkgedzEZ2LHXXynfFYfYoLawk3wbgf7nFyRuRN5ApP85zNvPe36yqh2_r4ju_lkyqX7iPT2LvYsN-T--LTZDfmzgbHZW8pY9FYxO3jv6Vw7mA_0mBx1LP2EWuLn59hVd39_f3vs0oxuHdIWWsNTmpROY1LXmzEmtUMVkDaJrvru5njxcI9uUS-kQQ2WzQAZWHrXT--lKuqemHHG9jPCsrp83f85XRv8PcBfhmbS2ARvhGWJKoE0i8emxzZaoZPwvZxiHCE_RysDKaA7WgkBWN6Zr9iOZtZpL5kAg0yhkuZEr1yfWB8f4X0g0y5VH1jbFo87F7oxeGLZEzCyaJSjnsaN3Mpn0c0VkCrqKyDVaMWPBIOYQKOF5rWTd70HcC9-unFzKH2A2Do1JjOK1T7Z5RURVkHGMx2PUskYmEZnYF9v9c2ekcu2aHjti6E7IsO9zbZ0Btozw2JPjd0QXoiM8a6zxJpDlxhCJby2livBsNNp1ydK7x3lCR1aPkghfxmuBSzwe73w1wiQJAWeQ5PEhwPeNepALxerPTIkajO3c-xSYiiSPA0x4D1NFeXoI07QGpprVbY8swrRRbbknkA-9J4LHKE8DeCSAh5koy_ifK-I5LcuQh3SnCGICaVLQGM3nBqzTBuabGNNPuqbj-Tg9r6Vq1ucL1XQdK_dkgAmvJ271JLigoZpsuJ6cjhOgOTJMWkAefCNr4eNALUt-Pv322_c_y-1HPPLFyMz2_HdrtC9WwMrHg0bJddfw3KJRjf_YTj3iEZlkSUQm8Q7JeA8JyatkG03fhsSJjo12VKuE7inJQ_OVJTA68K4uDs5LJubMR885GKONr458rm1LpLY4mqJS6_okPsbpGBgNbEJDkBWrivEJFPGsKsL9XwSKgObVeLjXPoF7eGJCf798cT7ED8LUw5LV9TfgTpsvy1Xtzw3bvskDU210-8aMZGUNV9BFc6mVD649jW1wOzBqZtgSbtiLz2g70RMwndAMV-PddvYBMN5jgMa4OMrApHJgHrhewX8CFyQeFE2eizAbVAAVhhNoKsqiwhBownuaclKWJ9GESVkGmsieJkwBD4nuSoKHvkgwd8z26cU0KjDyVy2aGl5bSrH6xUr7lSm28Af-6ash5PpkRiuYoICDBQZpIikzTHPxbk1dvcRXq1YX7ZQxEDQXgbIgWRSpYDSIF569nxDxAeL877-rNYBldC-ajENjpIVIyamMkYqUBMryPWVYZLirfLsFXy-lu2T8L1DitnGrxvk0tuu-kmyhtHWS22u1aM-wLZsDkc_ABJgHYIY_3bYhywYBayA61QI-gfqF1CMzC3C_ELphanFIZBBwnZFqcQ9V2LxxisnehD0JE94G3WDIF-VMY-Uz3EM1Ve7OhT7zXPXRYCZreHixDpatA02RdaLraZT83wbmq72RvoxffTfSwXxTzA8GCahYU7u5gBoc_GJgtw0-4LGHHUkIkYUhhAaOBKLIqvfH_YPKIE-zKgz9xVBZzKqMjsdDY935k9fk4TF01gdYst4NusLr4wXYIaCsiOngaORPIfEQJy5SMU6zIc6Z0crtvKrbcWvgjYMPHo4OAcMU6DjNAmRJgIzykvM03IrdLfQXZR1THAJsm01Ajy_lY-HxMPrxmPMgRGIc8sppwuMganU4d4t47u8wQsyvFtlfWZ4CdTEmCY8D1JsyIssKmhJeppTkiPNkvmQyzEwTY9iLD01kGp4Zurjx6hzRXW-9EXxHQLu1CCV5ADHdg5gUcfa-KeMiDj0tC2yVjUkRn4jitIIiDqpPPN4_WBcpH0TqqWH26R64fgbzMvUOu3a7ywlWQf0S2KFqVOvOc9Paon1P2FzKfSiaHjqzFykP1pDvE4YZDJ1bGPncvgr5BU2TqV4umRL7weOgM21zh25TIwuPGbuM2GeLQbKZz_l6nSTdh5JZyX1mkR5T66KBsG-YO8Oks5vuvelYd6uozaDfiwxOxa03d-8Jp_IWzII0gmnINC7jKjnKdBsr2Ks4vaE_CCx7A73AsULlJ6KTIFmdlgw-jqskIKPYJ4OQ4253hIzfdGmPM_GbLm-kdcfqsVcH4K23rJj0jtLeYb6dvN6l_h8pJCTwJxKm-yzNScGPwb0a_B-kqwN56hj1_0IKTxWyAZMiCHfb6-NtysFZT9omL25At2Fm0geJ3aofta77WP7O641h2sJZCAvvwYKKYLR5Tnr7vKIiQZ0cXv3mNE05zdF87gmbW8eMm_dK3nRZyW2zIb77t-1s52lvLkma7q4uvfq9BM8gAYY6xe9amEiAbde1eSmJyAR1d52b5xNU9WUh4r1vdY9I3TckYC29yQSghKRefWMBnT8jp5EFQHJQtvWa_igb5Zp-7mcwVmqFEjqKR_39-WWEL3GMSRInNC4SGvu2lLKMZHEBNEvOk79hvUr-HggVSTxKsnwXDrsTpl9EfyO-4oNL8U6kvRNHSy2g9oIrbeW662qryboGcSVbIraceg5f8aW0P7tNkNiepNHSLtpxvdH-we_gabB_sJs8Pk6mn9Hj52s0u725uf2vL79_QrMvN9cP6PG2bb784xO6v767vX_cPpPdHXpwa59qjz-6bQUMoDbXg0DMbad8IwV45parCM-6p7bznOJSkM2L2z-awz59wBanssjm6zln4oKIghTsDC6SPI5pEadFfvZ0QXMaZ2lVpTnLSQqYZkCqhIo0xpDGWX4mL1oHTnAWZyTN8pGoGMlTniSkFCwXIkpjWDJZj_weHmmzOGvfWC9yQnJ6VrMSatt-pQljBd9R2xlhHGVXZ-ai3fdls7BRGtfSOrubxUlXw-6bTu3zrGfoJw_Jo7PG1BcffxNuIf9fAAAA__98Xb44">