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

    <tr>
        <th>Summary</th>
        <td>
            Crash on invalid code.
        </td>
    </tr>

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

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

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

<pre>
    For input:

```c++
struct S {
 static int F(int n = 0 ? 0) {
        return 0;
    }
};

auto x = S::F();
```

you get

```
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: /opt/compiler-explorer/clang-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -O3 -std=c++20 <source>
1.      <eof> parser at end of file
2.      <source>:8:6: LLVM IR generation of declaration 'x'
3.      <source>:8:6: Generating code for declaration 'x'
 #0 0x0000561f5163130f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x373930f)
 #1 0x0000561f5162f33c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x373733c)
 #2 0x0000561f51580d18 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f92ba259420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x0000561f510194a6 llvm::Type::isIntegerTy(unsigned int) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x31214a6)
 #5 0x0000561f51a36965 clang::CodeGen::CodeGenTypes::ConvertTypeForMem(clang::QualType, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3b3e965)
 #6 0x0000561f519083bd clang::CodeGen::CodeGenModule::EmitNullConstant(clang::QualType) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3a103bd)
 #7 0x0000561f519d22da clang::CodeGen::CodeGenModule::EmitGlobalVarDefinition(clang::VarDecl const*, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3ada2da)
 #8 0x0000561f519f39dd clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3afb9dd)
 #9 0x0000561f519f43f0 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3afc3f0)
#10 0x0000561f519fbdca clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) CodeGenModule.cpp:0:0
#11 0x0000561f527972e1 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ModuleBuilder.cpp:0:0
#12 0x0000561f52788bcd clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x4890bcd)
#13 0x0000561f53b361f4 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x5c3e1f4)
#14 0x0000561f527945b5 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x489c5b5)
#15 0x0000561f520835f1 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x418b5f1)
#16 0x0000561f52005ed3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x410ded3)
#17 0x0000561f52163913 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x426b913)
#18 0x0000561f4ef23e0c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x102be0c)
#19 0x0000561f4ef1f5cf ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#20 0x0000561f51e6152d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#21 0x0000561f51581177 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3689177)
#22 0x0000561f51e6176c clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#23 0x0000561f51e28b4c clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3f30b4c)
#24 0x0000561f51e2953d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3f3153d)
#25 0x0000561f51e33b6c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3f3bb6c)
#26 0x0000561f4ef21b7f clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x1029b7f)
#27 0x0000561f4ee22855 main (/opt/compiler-explorer/clang-trunk/bin/clang+++0xf2a855)
#28 0x00007f92b9d07083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#29 0x0000561f4ef1b7ae _start (/opt/compiler-explorer/clang-trunk/bin/clang+++0x10237ae)
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
Compiler returned: 139
```

gcc generates the following compiler error:
```
<source>:3:31: error: expected ':' at end of input
    3 |     static int F(int n = 0 ? 0) {
      | ^
<source>:3:31: error: expected primary-expression at end of input
Compiler returned: 1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWU1z27wR_jX0BUMNCfDz4IMiW2kySd809uSqAYGljAYEWAB05P76DkjKJhTZb5NRe3kzsS3hY_Hss4vdBUCtFXsFcB3l76L85ooO7kGba9uA-jf91wDqqtH86XqrDRKqH1xE1lFyEyXH30Uy_WcRfuf_j63WmYE5dIeicm5B1lEnGBLKoW2EK_9XoYjcoARFZIuSCNeL0fM_A24wCiURWXRE5c28dnnz3DH9poPT6DCKvfNAydqvFeH6ZdwR73Lakx7QHtxZvaavXz7dru9ukR2aTjhEUTPskYFeG4ecRg_O9davh7cR3u6FexiaFdNdhLdSPh7_xL3R_wTmIrwV1g5gI7xFVHEkFJMDB-QeADFD7QNqKPvuDGUQ4Q3qDfRGM7AWOLJ6MFOzn0mt1UxQBxyZQSHLjOjdaoJ85yj7jvjQ9c8mS1ZRUn8xem9oh6jZDx0o54GjCG9175Ex3fVCgonh0EttwPg2SdU-dmZQ3yO8bYQ6tk0mR_Ge_6CmjTMU71GsvTDa917k4PrBrSyKO08AiuNDVcTUdrF9Uo4eInIjlAOJ4jsUx3vGYqe1ZA9UqIjcvInJD7aK9vZBOxS3TEttYi7oXmnrBLMobpWORzbD5j8Iiq3jEbmZPRZ7B9zMvJLbianUMxWRDeg2Ireop8aCQdQhUBzpFrVCwjQSzyNfBJB1FZF14Wn99OnbZ_ThK9qDAkOd0MpP5sAknb9GuDxEuJxkkbdkvZ9lqD1imgNqtXldEoowSVBySJIkyYu0zdOCpCRp0eiP486wT3b68MUI5UZvuZ9crnoZZOiPnbbOAO0iXHi3E8qNW9Vvq9_3mQi_Sw6kJDVJWr89n0GnIWjcEsLOgd5IoGro_1B3Yq-ojHA1qDGQcSS1X-ViEEtCWAARBxDzKuFphTbe074C049gniZMf6OKS79SNXMWjNlo5eDgVqz3-zMZf56XIPMSZVvjhuK8znCCdjsD1mkDO-Nm5aRoIrw9VMWuyGIp1HCI92qYOnr3YIDyldWrZNQlzTKcBJpkgSZJWme0WJB9_9TD9EnYD8rBHsz905LpWS-mlXWXoTvFaUaLAGQegKSkqIscTRMnT9Ac3oMKvnjkR0fR6hGM8y1bbT5DF-FqMfsfA5WjnniDGq3lxRynIVAXeaBJEWhSJxVp-J9p8lnzQc5WuO2E-_sg5cbzTT335zW5kAY0TUjDAw3KUAOOMae_qsF7qRsqv1FzA61QwseuUJGxi8nJrSK8vrhpKKeY00CxKlSsJTX_ZdNMir2m1bGXSa_PyyY70iEHGHW9lI5tU_PQePWJjhlpk9_T8XXNLoaekfYlVvm8kJygbzj7Zde71_0neIQZ61KHqeVI_6qnxq3GkjSQ9HOw9siClIXLusSQeilUafXU6cEiRTuw_Zhb6wCgT-jafOh6OTVPKeNtmO-NHvqv4NMmmmC9G4TkYM6jwyG6qmpY4NnvKPsOivuYMnRgfg_HJYyeVXXSMB4YnSzBk4YUaZstwX_xddn67j5EdwcdnauVKW5cNn7kjEDaZgHQ7MQHsrw5l6TWbAwMk0MegA0O5qbxlHIpHlne5AG8IIfipCJ5my7hbY2vRhQ_g--SyNKqyds0QFaEyJIcOAmJm9b6MKY8Bue5e10V7waXQp9w4CRAH-RDnBakTgP0M84XJR41oz9j_knJyyWCDBdNnYaol8kugxYTSBhiLN11_uC1LP_XxtAnv8fJhj1Q85KSya3fVWEb3qBHLfgFwacJbiBhAfg6BJ-2OWvRkedNej9u9IUKdx2V8huw5zh7RpMiTMlexlyeH8eNXsSNeHwlzOIwPUGR5piPdCzktoManXJnRkbH3uP1xO00hFEp_eF_1yqP9MVFprVnd9mkG911VPHTnXrWcuNp17fp3q9OPQcLfpwRaj-OvJ3N-jxht2OHQ5pOXxpqBdvZcfjMYjDYN-ycocLZY_eJOCqld39tFv1-yKLCWz-fJ6YpES4l7RpfrZUvVOHqeMb7qJvz9khPDmlpWpYLU5w7ik09Xwd1R1uQTwGdb5vuUmVPUdVpWS7dHeNTvyoLhv7KfnFSn73qACQkDldN9jpxo8HoT7nvyGYQrE8m-gGLKLF5Y43l0HVQoFz0DN2SpMmCoImzEzLqnPBfJeOjbuzrTHzUzSdhXcDEW0H42fg9Fd7u41XCf0_e7CH_OwrTnASlKA6vIYCQ5vWNeLP4HJQAZ3L_a9T_Hym8UPRqSdMUod8VJ5VG2pTtBPBYaxxBj1FjPe_5P0_FF6ou6qZsA8BlABgwrvIceagXWbHFtMqDyhxXy5u-midlUhG020nR-JhKjdstVn_ruo-trF4V4zI4S6qg4sOnRVNTUkCT_EtRSUoKz2su-8kagTE-uK8n06N2LtERm32ypUICRz-Ee0BwEG664E7JaOfBAoofkdPIAiCxKKHnxY7V8_xaBH5X-MlvPPjsGTveyYMd311aLaX-MV2uz-KOqM_LCW_pif9JA13h0ANz4OuEcqpkFu8H01Pa85MWQVG5GV-8fuOZzE-N8ttfxtUb0VHz5G1twFqh1XmA5_k9YeWKXxNek5pewXVaVGmGc5LXVw_XTcpyXrYEcowzwpKirWmFK0zbIs8zjq_ENU4wSbKUYEzyvF6lVdaWLMlxS5usoXWUJdBRIVc-LKy02V-Nz2fXBU4xvpK0AWnH10uMFfxAY2eEcZTfXJnr8eGtGfY2yhIprLMvUpxwEq7HShBp5T2LSsFH31tdDUZe__6z3gjtPwEAAP__m2zR2Q">