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

    <tr>
        <th>Summary</th>
        <td>
            Clang(++) front-end crash on 4GiB array init
        </td>
    </tr>

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

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

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

<pre>
    When initializing an array with a size of 4GiB *exactly* clang 14.0.6 crashes. Adding or subtracting 1 from 4GiB causes the crash not to occur. Adding 0 still causes the crash.

The following code causes a crash for both `clang++` and `clang`. The shell script and debug output is from a call of `clang++`.

Offending code (`clang-crash-2c9d3f.cpp`):
```cpp
# 1 "<built-in>"
# 1 "clang-crash.cpp"
char a[4L << 30] { 0 }
```

Shell script produced by `clang++` (`clang-crash-2c9d3f.sh`):
```sh
# Crash reproducer for clang version 14.0.6
# Driver args: "--driver-mode=g++" "-emit-llvm" "-Xclang" "-disable-llvm-passes" "-c" "clang-crash.cpp"
# Original command:  "/usr/bin/clang-14" "-cc1" "-triple" "x86_64-pc-linux-gnu" "-emit-llvm-bc" "-emit-llvm-uselists" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "clang-crash.cpp" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-fcoverage-compilation-dir=/tmp/clang-crash" "-resource-dir" "/usr/lib/clang/14.0.6" "-internal-isystem" "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0" "-internal-isystem" "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu" "-internal-isystem" "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward" "-internal-isystem" "/usr/lib/clang/14.0.6/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../x86_64-pc-linux-gnu/include" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-fdeprecated-macro" "-fdebug-compilation-dir=/tmp/clang-crash" "-ferror-limit" "19" "-stack-protector" "2" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-disable-llvm-passes" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "clang-crash.bc" "-x" "c++" "clang-crash.cpp"
 "/usr/bin/clang-14" "-cc1" "-triple" "x86_64-pc-linux-gnu" "-emit-llvm-bc" "-emit-llvm-uselists" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "clang-crash.cpp" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-fcoverage-compilation-dir=/tmp/clang-crash" "-fdeprecated-macro" "-fdebug-compilation-dir=/tmp/clang-crash" "-ferror-limit" "19" "-stack-protector" "2" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-disable-llvm-passes" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c++" "clang-crash-2c9d3f.cpp"
```

<details>
<summary>Debug output produced by clang after the crash (click to expand)</summary>

```
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++ -emit-llvm -Xclang -disable-llvm-passes -c clang-crash.cpp
1.      <eof> parser at end of file
 #0 0x00007f314f4c045a (/usr/lib/libLLVM-14.so+0xcd545a)
 #1 0x00007f314f4bdaef llvm::sys::RunSignalHandlers() (/usr/lib/libLLVM-14.so+0xcd2aef)
 #2 0x00007f314f3aab59 (/usr/lib/libLLVM-14.so+0xbbfb59)
 #3 0x00007f314e405a40 (/usr/lib/libc.so.6+0x38a40)
 #4 0x00007f3156376a00 (/usr/lib/libclang-cpp.so.14+0xacfa00)
 #5 0x00007f31563890b6 (/usr/lib/libclang-cpp.so.14+0xae20b6)
 #6 0x00007f315639c9ac (/usr/lib/libclang-cpp.so.14+0xaf59ac)
 #7 0x00007f31563a3c09 clang::Expr::EvaluateAsInitializer(clang::APValue&, clang::ASTContext const&, clang::VarDecl const*, llvm::SmallVectorImpl<std::pair<clang::SourceLocation, clang::PartialDiagnostic> >&, bool) const (/usr/lib/libclang-cpp.so.14+0xafcc09)
 #8 0x00007f31563007e4 clang::VarDecl::evaluateValueImpl(llvm::SmallVectorImpl<std::pair<clang::SourceLocation, clang::PartialDiagnostic> >&, bool) const (/usr/lib/libclang-cpp.so.14+0xa597e4)
 #9 0x00007f3156300c59 clang::VarDecl::checkForConstantInitialization(llvm::SmallVectorImpl<std::pair<clang::SourceLocation, clang::PartialDiagnostic> >&) const (/usr/lib/libclang-cpp.so.14+0xa59c59)
#10 0x00007f3156898904 clang::Sema::CheckCompleteVariableDeclaration(clang::VarDecl*) (/usr/lib/libclang-cpp.so.14+0xff1904)
#11 0x00007f315688e44b clang::Sema::AddInitializerToDecl(clang::Decl*, clang::Expr*, bool) (/usr/lib/libclang-cpp.so.14+0xfe744b)
#12 0x00007f315609671a clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/usr/lib/libclang-cpp.so.14+0x7ef71a)
#13 0x00007f31560b5f1f clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/usr/lib/libclang-cpp.so.14+0x80ef1f)
#14 0x00007f3156121478 (/usr/lib/libclang-cpp.so.14+0x87a478)
#15 0x00007f31561366ce clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (/usr/lib/libclang-cpp.so.14+0x88f6ce)
#16 0x00007f3156136a56 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) (/usr/lib/libclang-cpp.so.14+0x88fa56)
#17 0x00007f3156136dee clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) (/usr/lib/libclang-cpp.so.14+0x88fdee)
#18 0x00007f3156080e6b clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/libclang-cpp.so.14+0x7d9e6b)
#19 0x00007f315765a9b9 clang::FrontendAction::Execute() (/usr/lib/libclang-cpp.so.14+0x1db39b9)
#20 0x00007f31575f9e67 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/libclang-cpp.so.14+0x1d52e67)
#21 0x00007f31576b174a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/libclang-cpp.so.14+0x1e0a74a)
#22 0x000055dd069396f1 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang-14+0x176f1)
#23 0x000055dd0693b337 (/usr/bin/clang-14+0x19337)
#24 0x00007f31573516c9 (/usr/lib/libclang-cpp.so.14+0x1aaa6c9)
#25 0x00007f314f3aac27 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/libLLVM-14.so+0xbbfc27)
#26 0x00007f315735722f (/usr/lib/libclang-cpp.so.14+0x1ab022f)
#27 0x00007f315736c953 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/usr/lib/libclang-cpp.so.14+0x1ac5953)
#28 0x00007f315736cd29 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/usr/lib/libclang-cpp.so.14+0x1ac5d29)
#29 0x00007f3157375062 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/usr/lib/libclang-cpp.so.14+0x1ace062)
#30 0x000055dd0693046a main (/usr/bin/clang-14+0xe46a)
#31 0x00007f314e3f02d0 (/usr/lib/libc.so.6+0x232d0)
#32 0x00007f314e3f038a __libc_start_main (/usr/lib/libc.so.6+0x2338a)
#33 0x000055dd06931655 _start (/usr/bin/clang-14+0xf655)
clang-14: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 14.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-14: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-14: note: diagnostic msg: /tmp/clang-crash-2c9d3f.cpp
clang-14: note: diagnostic msg: /tmp/clang-crash-2c9d3f.sh
clang-14: note: diagnostic msg: 

********************
```

</details>
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWllz2zgS_jXyC4oq3seDHxTJSrzlWbtsb7JvKhAEJWwokguCjjy_fhrgIYKiHCuTmpqpikslUzga3V9faIBxkbxef9nRHLGcCYYz9jvLtwjnCHOOX9E3JnYIo4r9TlGRIvcj-4Bm9oIeMBHZKzwhkmGYYLlzc-4jwnG1o9UcLZJE0ik4qupYcBgtf1oo5cW-oUJwXdEKiR1tZqG8EEgUqCCk5j0BE1WCZdnJ6PnMXM3MRfP9DK1pkWXFNzmFFAntxuOWdgqMxAWIMvNNxfDM_iA_vgmiJsdW35wjSQ2EgEUrwlkp1IiExjWIU4uyFohVjRxAHcMwwOWErMbffZrSPOl5m9lhN95Q7Bk2iRInnZOyhI6ZHc2cdqb8qT6yq2mxHYBxZtszZxnXLBMGy2fOjWzQ-wf0FeFuANlhjvDM--DeIaABH-SYM2-FZsEHgHsWrEZLDyV5GuJS8iKpCU1Q_DqB61kpq905IaGnl2Gp9MZpuwhXKmxs7YXyihV5a3PHKSvOoAsMd1sBbYmBYSSqzdgD7jNn1bFn26qX7pkwsuxl3zX8t5Wh-ZWwCscZVSOMEldgUF0XaR_OgSzZuedsy3IMtlvs92BDkielOHtdVxy-Y9CcvW5IWG5PmljdowCYM9r-OoT-xneNkhgZy-uDsc3rEzmMmJy2gSNkrBLVWKyUU9ovmlHMDVwJI6YANDViTL6CzU5CAYCylFE-6CSYJ8YLzmpq5Hh_xGmPWW6kLGuaz4LWjOU0KwgWoFqlr6ztKFkvFDwaGX3pu-xhB6vgXy_RPuWwolEWLBfAqrMCT-360j0WO4Nynhd9U1oapMhVpILBRd535IXBi1q5ryHn9QvA8ErwmogCkMsYHphHWucQihJDSNDAGFc9owKskwqDlJ3yQK2G3ytf1DkddG5pDlj34u-Htio4xcIA5LNGm-xAEymT5KYyvmGes4Epy_C1BUeABWQzuEIS99ySAlSKt7BysS9Z1qggYRI1MFCxL3szVUrr5nFaFTUnVA1t2nrbzljcTYL_rae285RGwDFAY6-VoPvx3MYv5vOGjARnvSUAwnrSBdaWPbfnZjdj9MVyktXg-8BL5_v9hL8XN9P0_mY8yrAAppW8l7FpMziu8U4qEBayy6f9TFSmp5xjiB7kAzll7OIJjSSjaWkCaZFCqASP32PCi0EH-PmFbpw2QSNjkDHaNivqOisBGjcgCQsqA9047qaAAzHahAzruABhn75ScjiAZISWkpNjcJxoIkUGLCQMb_MCNnzkJFlN5OAUJwms28e41WbzcbncfFp8vtmsviwe1_Zmub7dLJ5-A8Z6pjqshknomDUPXa-2UTiX5X9l80lwfmXzf2I2_xVUfjyofDdsDCu8vkaYKrCgHEuowCyrZFHXNVU1VBD8FZpWwzp0WIA1pRFOwT0GNTUUYSRj5KssrOmhlFWILLyWoLQjTW19namHu5vF042s4UGPUO_KxaEmK7gq1XdClLLUAmoytzKxq-M52IlMuMq21w3CvPgfKFrmsaqqJdZrVVO3WW3AroxT0mnB75cgnSz-CAX1JKjZacpmORNUVhAmTRXxOm_r0bbkfpLGhZIaLLMrMGU1Hj3wYgtBRJaH9Z7mQtWIg5oVHYMsagtBNGUpyCBoHPPUKpZcBbClRQqgohLzSlajAkHklWcEMnD2ecMxkXkw4S9IHctNXWK6HlY1s751gu-7u8-_QUaZV-CRH8wDSTwYKtXY07J0WnGCaYqUBgABZwF7iubhsc6f2Bb2G58AxAz8S60XvXNZG6hqy9rasg7Gsfc-WnGcwlCNljOkRV3Tw645TYsAFbmJBDpOCKM0Mu6AjOc7gY_Nc2QaFZalJCfzNdDDJIXxGkFPJxhGZuxfQJDaMF4j6OsEIxJhcgHB1IPxGsFAJ4gdYkatXSul3xxK3j7JlA5Os6huu7M-mfbDweDFw2eZ9me2L11t2PH0vISECvtUpDLl6YjPmK8oybruhew-2uDTHjL2ZxXub_dlJmOaSJquEstsshyQelLOftduH0brPGAueV_1YV06mzoBUxzFRZFJm1ZsXAIsAdw0YEMdWHig7oTAzQ_aYqvgUxLa4T9Iei8C4TTpo7H0xIvOSk92lHxdF3wpl8W56O2rFeGvh-JHICCDmCSjqqlBEEbg_JoBPNE9bp6WUv4lbJAyKk2AM5k0JDyYdwhMQCd95EzAnOIwTS1gQOPQ0jkMqevG0xwukmTg9M9Fw8CQq56l5Un0aFo723o_wzQAfjSGbY1hM_IDC490WlE-eB6AuJB7m-53wRd5shBQU8W1kFuKsSjNoNMwdbJC8kxBb-C6t3lanAtuw1lg54_QQSWel-owoClIrEHi6JDEXmql34XkIxQxpS607INiQPY-lZScynBEpY3ko_6xs41N4WdhEJoURNQw0NO2ZVtuEF5AMMAwXiOop23L8X1C3wT15tCcxJx12sZWjhb3BXa7CoJpY9E0cSE-YerLre5AHH8sDvb8N8V5Lso7WVmfuvl9if9f0wcxirS9UT3S9DSdXMI7sKbxHox5T-jbqlgzXomfIsBljCdUB13P_yaYrR-fMA77Ip09FXKH6P0AikESwVoaM1o6DnwPR7GWjtdc-jSERKJMt43dlICpvrXJn1rdSmIHqA-Xt7VUGHgp8BcMl1-qwwHKb1X-B-sdMtDypME04vdCbVmJZwMHGouWjlBsBS7WM5li5sjpSx_pwrckudB7LWpiWFljrct6npckph85kZ9aiBBrIw_UtN3RQl66KwteqnvafjMtLRqCjNYGDS8FSyY4HJ9FSr4CWFTjyhlxFTtQS3yPSgSDNCpa6A4cz_LJJWhhjGGCRtEbl5XEDgaVhLoYfqTqlOu1y2R9eYtTKl9LGECa1rmysQ1XsErEGv4iBeq7K1bgQmPTHwke2HZ6ieCxCRM0ioFOEXDxnKEFN3fZQzPFJ86-bO-aNZseTZQDzm103hi6-LGNtYVhX-05mqThWNLEji6V9F9FXJ0XE3rvWKUXq5cUISwfb4_eRObPVB4SIJBfA0gP907gmb59jpnV4FkLchPR7Rywfy1Al0BDQfIhNP3BWRe2TNfHSAbS78UuCgM1StqxGXVS006-f-YEyklMjYw9JuOEGG02ctoGcggXmxPupgnDPI3wOEBbvuehhuT3ZE1haE-r73EWSB3Lz7qTT_kak0rD3TsqKMWQ_JLmtS96YKJ5Y8lylNLqiiLjRZ78VrCHY4MMOlxp8v2cZ3VTIheeuvlq3-LiFCeouSyCgWVRsUPTpZJxBoytmGJeE_1ExrwQcgOCjif_aF9t1bwW2z_xGZyVt4fji-fnxfITev50g9b3d3f3X27__RGtb-9untDzvWr-8J-P6PHm4f7xedYdST9MHW6HlfSOswfc_QBOkbpbg14sepLvhGDi0mZ4O_GTSHWvcl2kl5-lnTMXK8Dp8W7lil5bPpSaQWS79lVy7SSwL8NXgomMXi-ba4Gwu86JGkcxlKeomwowb_UWY_OWpHx38qrm2fWP34hAlLeCq921HcSuT0KMzdA1AxxEOKRhYLokCE0Lh95VhmOaVdczT14z5fQbUiTkrZK3umLXNmwrzFCWLzbsSObYilwrSm0rTSFCufbMNaFAYdlc8jEv-PaKXzd3zfW2gk51t3zsBDtk25xStRzQx7XYFfx6Ryqyu1ILXyvG_wA384QX">