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

    <tr>
        <th>Summary</th>
        <td>
            Compiler crashes with Segmentation fault on SuperTest
        </td>
    </tr>

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

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

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

<pre>
    LLVM 17 compiler crashes with this reduced piece of code from ACE SuperTest. I also tried with older versions and it looks like it always was an issue.
Compiler should generate an error, but LLVM just crashes. 

Reduced testcase:
```
template <typename> struct foo { enum color : int; };
template <typename T> enum foo<T>::color : T { green };
void fn1() { green; }
```

Error:
```
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: /install/CentOS73/llvm-17/bin/clang-17 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name x_0001.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 -debugger-tuning=gdb -fcoverage-compilation-dir=/work/testcase_SuperTest_Cxx11_14_5_1_4__x_0001 -resource-dir /install/CentOS73/llvm-17/lib/clang/17 -c-isystem /usr/include/x86_64-linux-gnu -cxx-isystem /usr/include/x86_64-linux-gnu -internal-isystem /install/CentOS73/llvm-17/bin/../include/x86_64-unknown-linux-gnu/c++/v1 -internal-isystem /install/CentOS73/llvm-17/bin/../include/c++/v1 -internal-isystem /install/CentOS73/llvm-17/lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /u/mwdtauto1/mwdtinfra/install/CentOS73/llvm-17/bin/../lib/gcc/x86_64-redhat-linux/9.2.0/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir=/work/testcase_SuperTest_Cxx11_14_5_1_4__x_0001 -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/x_0001-fca7a3.o -x c++ x_0001.cpp
1.      <eof> parser at end of file
2.      x_0001.cpp:3:6: LLVM IR generation of declaration 'fn1'
3.      x_0001.cpp:3:6: Generating code for declaration 'fn1'
 #0 0x000055555963ff08 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/install/CentOS73/llvm-17/bin/clang-17+0x40ebf08)
 #1 0x000055555963d74e llvm::sys::RunSignalHandlers() (/install/CentOS73/llvm-17/bin/clang-17+0x40e974e)
 #2 0x0000555559640acd SignalHandler(int) Signals.cpp:0:0
 #3 0x00007ffff7bce630 __restore_rt sigaction.c:0:0
 #4 0x00005555598ca017 clang::CodeGen::CodeGenTypes::ConvertType(clang::QualType) (/install/CentOS73/llvm-17/bin/clang-17+0x4376017)
 #5 0x00005555599b6883 clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(clang::CodeGen::LValue, clang::SourceLocation) (/install/CentOS73/llvm-17/bin/clang-17+0x4462883)
 #6 0x00005555599b3732 clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(clang::CodeGen::LValue, clang::SourceLocation) (/install/CentOS73/llvm-17/bin/clang-17+0x445f732)
 #7 0x00005555599d5c23 (anonymous namespace)::ScalarExprEmitter::VisitDeclRefExpr(clang::DeclRefExpr*) CGExprScalar.cpp:0:0
 #8 0x00005555599996a5 clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) (/install/CentOS73/llvm-17/bin/clang-17+0x44456a5)
 #9 0x00005555599faa6d clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/install/CentOS73/llvm-17/bin/clang-17+0x44a6a6d)
#10 0x0000555559989ef1 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/install/CentOS73/llvm-17/bin/clang-17+0x4435ef1)
#11 0x000055555987788f clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/install/CentOS73/llvm-17/bin/clang-17+0x432388f)
#12 0x000055555986c802 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/install/CentOS73/llvm-17/bin/clang-17+0x4318802)
#13 0x000055555987392a clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/install/CentOS73/llvm-17/bin/clang-17+0x431f92a)
#14 0x000055555986b431 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (/install/CentOS73/llvm-17/bin/clang-17+0x4317431)
#15 0x000055555a42a34c (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) (.llvm.6140880867044269546) ModuleBuilder.cpp:0:0
#16 0x000055555a427d0d clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) CodeGenAction.cpp:0:0
#17 0x000055555be3d97a clang::ParseAST(clang::Sema&, bool, bool) (/install/CentOS73/llvm-17/bin/clang-17+0x68e997a)
#18 0x000055555a320e37 clang::FrontendAction::Execute() (/install/CentOS73/llvm-17/bin/clang-17+0x4dcce37)
#19 0x000055555a2704a4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/install/CentOS73/llvm-17/bin/clang-17+0x4d1c4a4)
#20 0x000055555a421542 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/install/CentOS73/llvm-17/bin/clang-17+0x4ecd542)
#21 0x0000555557e79587 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/install/CentOS73/llvm-17/bin/clang-17+0x2925587)
#22 0x0000555557e76f9e ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#23 0x0000555557e7565c clang_main(int, char**, llvm::ToolContext const&) (/install/CentOS73/llvm-17/bin/clang-17+0x292165c)
#24 0x0000555557e87541 main (/install/CentOS73/llvm-17/bin/clang-17+0x2933541)
#25 0x00007ffff66ce555 __libc_start_main (/lib64/libc.so.6+0x22555)
#26 0x0000555557e67169 _start (/install/CentOS73/llvm-17/bin/clang-17+0x2913169)
clang++: error: unable to execute command: Segmentation fault
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /install/CentOS73/llvm-17/bin
clang++: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /tmp/x_0001-78b096.cpp
clang++: note: diagnostic msg: /tmp/x_0001-78b096.sh
clang++: note: diagnostic msg: 

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

GCC produces an error, but does not crash:
```
x_0001.cpp:2:44: error: different underlying type in enum ‘enum foo< <template-parameter-1-1> >::color’
    2 | template <typename T> enum foo<T>::color : T { green };
      |                                            ^
x_0001.cpp:1:47: note: previous definition here
    1 | template <typename> struct foo { enum color : int; };
      |                                               ^~~
x_0001.cpp: In function ‘void fn1()’:
x_0001.cpp:3:14: error: ‘green’ was not declared in this scope
    3 | void fn1() { green; }
      |              ^~~~~
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEWl9T2zyz_zTmZscZW_5_wUUIhDJDT3uA0_cyI0vroKe25JFkCDfvZz8j2yFxGlognXkYILEsrX6_1Wp3rTU1Rqwl4rmXXHjJ5Rnt7KPS51_pRjTf6VON8qc6KxV_Ob-9_fEVwgyYalpRowamqXlEA8_CPoJ9FAY08o4hh1YgQ1AVMMURKq0amC-u4L5rUT-gsTO4AVobBVYL5IMAVXPU8ITaCCUNUMlBWKiV-mmgFj_RXdH6mb4YeKbuPghjOpx5waUXzBdbUOZRdTWHNUrU1KLrh1or7ZEFlJ2FnsU_nbFb-DMYJAz_70YGFo1l1KAXjTe8NBh_-0uLTVs7-V60sC8tStqgF12BsbpjFiqlwMsuAGXXAFO10uBFcxDSetEFeNmlF128LQgenKh-bKWUFy3ctUMSzXeyHvoJ1hpRTgQ-KcGhkqFHco8Uu07biY-xGf5f9Xp6g_D326v5_RWYrmzcQkDZrUFjq7QFq-DR2ta4oWTpkeVa2MeunDHVeGRZ10_bD7_V6h9k1iPLfu2MR5bDQktWdxzBPuKwLFBS9tNqytCtW6ux1YqhMcjBqE4PzW4kNUYxQS1y0J0Ew7Ro7WgT95ayn8C7pn0lFcy8oPiu1VrTBqhedw1K64CDwySNpXXtkeUCpf12n0Vb3GHmkWUppEeWrKZy7YcZ-IyF4Fst2hphk6erNPY7-VOqZ-nXQnYbfy078LER1lflP-A3Gmu68Wldg-9AcaGB-uBzYWhZo19pRPBZjVT71Fi_xEpp9J0mUPJdvx7RE2pRCdR9M6Oa-0-07tB35mPAb6iQfiXqoQE2qyAIwhlr2wGGYtQKJf1GcayhFQz8VjC_xiesgQwXwvitQPCbStMG_VYJaVF70WVPoGqoffRRa6nAr6rWZ0q69bJedKkk-JVUvlad5EKufdcX_IYpOWwPpX1aC2oc0qqTz0Jy3zpuxosuCfiW6jVan7WdU6yfxuDbTmLf0G9sB5hj2a3XqN0tIddedLnmJfgVU0-o6Rr9wU8NRLlwyD2yfFb6p0eW2-29enVJq8VmE4arMF4lq3AVr1aDzsDXOFick_EOK6lFubUSjyx7O_GFeTEWGze6M7qX0du7R5aj4ewZDNtsPjagXxdJ6_1R7zLl2eyY5F9s2NHxyEX_u3wK_96EJ0s91PVO-nFxgy6d9dd_7OqRZfPMLe2sCsfvQlaafojrAHDN2E69GvkjtYN2PbIsZmQWbLsf_Ds-4lfYuHFf2FRx7-g0MS3wK46tRuZ8qd9QplXfVHbrv7WTqj4Q-7VwESQswK_WsmP-GPK96DKekZnr57YAbhi2tk8F_GpyQTnXRqzBv1ytrheL1Zf5j6vV5X_md0uyWixvVvP7r150GYKvHEnbtE6VPQS_YjSj0UyBv4HR-vZ84xAiQhcivGiBqnJRuKXaoAZqwTlhVYHzqkNP4nruDY_mkRfNUxdN-izj5m6bhggl3VCOrKbjpUeyPkhng6zobVnXowy5HtMppX8nCTwSBRBsgiAIEvdTpFFVBTn0gbhPIsyLGb5810LaPkw-DLE233XS9HmljNVIG4-kLt667MVlFC6x-Fiw9MhFsIkDLKvAJSU7oOEBUJ7FeAzoXSfvxVrS-guVvEZtttnN57EUWYwTLGSKJQ4o4zCZ1SP5qIOh2YxLFfR_r4KiUVBWVVWVlQzTKIDVSqOxSuNKWzBiTZlbvBn7dXg8wZEzGriku3dyvS4WiuO1y-f2Lh5eWjTbFvmE2roWj-R74_63o_XQeoLeoiwN3Pc9vSUTvEWZ5nn0J7zLTvb8h8arRthbRfm36kLYSmDNb3-4bGaKfyJn22GxP9N9H6hvx-zmJJ5xSvI8mvBMD3hGWUQ-y_Pf55dUWUQm_LIpP54wErkJqFTypVGdgT65bHtHUYyIGK2pvtq02nHr80PX_EMYYS-R1XdYuZtTopMbc0djce0uBmHH91Q-BVcUKU0-rvybtVQa-a-QXAv0-emI6POKjZOUJhPFFlPsFaUp_zj2e9vYKWjXsgd6sec451rTlzusvGixN2Bu7R7L6Oo0ojSlKX8l6pz5NOwUeYFV-DGiY6xDd3NK9rpWJa2d6UyZvo4fVPDmbNfbjjeyUlslpKdpIEqwCicamMazPMvyvPqTBr4q3tW4W-iB6RbuJVZCioHhe_QxtI_e4zRTjkiU59WE3zRG5inLgz_6wOP8_k1eYZ4HZMIrOli3qCD0c7zeZnMS4qogdIL4IEtIyzj64147RPyg2lv3yD_gO3TRp6s5i6Pp9pikCjQmNIrZn0LMiN25BaVvmrYemoeU7PcMrrXqWucFBxozh3eWhnGQ50GeZkEck7RI4t4LDLq56ETN8UgMcujTA_QZDyZ-_GI4qVkoabpmGwo_inOkOx_Tw2M4JoG6xIgX2cRYv7tHlvn9w0G0wIaOiXypVL37_PwSpzkWRTa1y0mgphEJMJpkr0utpEXJ5_vhbYOss3hqTs8ZwyiboJmEXkqyIKbxdJcMx8Y3bjbJcIJnhDjR4gH8EyMID1lM433EJDgwsjCJJx52xLYD_vSaDua_I3biZkbGk3jiM8kk1mWYFUmeAWPhqqFOQH48G3mkBynIAqZtZAFPSvATAZOCJEk-MQZCDgCnVYGw1ecifOh3wx7s-4bW9Q9kr37nCPp0GqWcjIWzkI2d5Bhci6c33AqJDmAlacKGFd9qsn_oHPTUq2X-vklP0F2YJmyiu3gKMs-SOAQH74RZoiiJJ_GBJPtPzmnKMEkSWK1qUbKVsVTb1d6UtSjTePhkM6Nm6SCWJEkyEZpOoadZmBYwiDsBfBiFafE6z3gG2R9nRvOx4hTNoZO0rBGsAhzsDJhqGiq5u3mP6walHU5xKtrV9vfC-naoRg-0lQQVFTVy4F0_j-lPJhyxziD4T30bIog9RzGCfuiP2Z3kN49-h36PGimHvljgerfKiM1w62bQHPJLod9fRTnGUirrvC9wQddSGSsYNGbdyxxX8oTfvSLXWMeaPzzMF1_g4csVLL_d3n77z83_XMPy5vbqHh6-9c0X_3cNd1ffv909vFaPvh-rQ-XG7bU3a1GvHTRCX3dBDtS-iny_Fg6OMrO8DIp0d2x5qiDz-Lll-VuLc6wgeb1YQKsV7xiaXwq5XKFx8IaC4Vtly8mRKvGieRxP9hQXVYUapYVOctT1i5BrsC-t2zBDBda7Il4eeEW-V4_ti7Vj4dZvqaYNWtR-6IdedAXTYu12_PZAAAAIeNkC_nrlF_ofJ_oDP15ydURTodNUtm8ArcYn4TJ0_vrgBo-ocTd1-CarTxXGP8VmIPTf_x6hBDcSqvGhereo02r5bq225vTLkXw4tZ9XQUONfTu-f0XBGedwUI_cmVP_ioRhqt1TWtQzfFfN_g2F9Hy3jF-t_4yfR7yICnqG52FaJEVB8oKcPZ7nCUUe0iCraMajmJMijXNWpmmV5zzm1Zk4JwGJgsKFuCAPyazMKY8DXpUkLdOyDLw4wIaKenicUnp91hfzz9MsD8KzmpZYm_5tEkIkPg9vaXiEeMnlmT7vA0HZrY0XB7Uw1uykWGFrPF8cfbvk11AJSu7eJznrdH3--XcQeuT_HwAA___mbHch">