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

    <tr>
        <th>Summary</th>
        <td>
            [clang] crash on CTAD of alias template
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          jy-lefort
      </td>
    </tr>
</table>

<pre>
    Reproduction:

```
#include <unordered_set>
#include <vector>

template <class Key,
          class Hash = std::hash<Key>,
          class KeyEqual = std::equal_to<Key>,
          class Allocator = std::allocator<Key>>
using my_unordered_set = std::unordered_set<Key, Hash, KeyEqual, Allocator>;

int main (int, char **) {
    std::vector v{123};

    // this CTAD causes the crash
    auto s = my_unordered_set(v.begin(), v.end());
}
```

Crash:

```
0 libLLVM.so.20.1      0x00007f76a0c2914a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 58
1  libLLVM.so.20.1 0x00007f76a0c260d4 llvm::sys::RunSignalHandlers() + 84
2 libLLVM.so.20.1      0x00007f76a0b3f8e4
3  libc.so.6 0x00007f76a0427c30
4  libclang-cpp.so.20.1 0x00007f76a953556c clang::ASTContext::getTypeInfoImpl(clang::Type const*) const + 1036
5 libclang-cpp.so.20.1 0x00007f76a95365c7 clang::ASTContext::getPreferredTypeAlign(clang::Type const*) const + 183
6 libclang-cpp.so.20.1 0x00007f76a953496a clang::ASTContext::getDeclAlign(clang::Decl const*, bool) const + 906
7 libclang-cpp.so.20.1 0x00007f76aabf5f3f clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(clang::VarDecl const&) + 223
8  libclang-cpp.so.20.1 0x00007f76aabf1fa6 clang::CodeGen::CodeGenFunction::EmitVarDecl(clang::VarDecl const&) + 326
9 libclang-cpp.so.20.1 0x00007f76aabf197d clang::CodeGen::CodeGenFunction::EmitDecl(clang::Decl const&) + 61
10 libclang-cpp.so.20.1 0x00007f76aadc552b clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) + 1019
11 libclang-cpp.so.20.1 0x00007f76aadc48a1 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) + 193
12 libclang-cpp.so.20.1 0x00007f76aadd35bc clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) + 188
13 libclang-cpp.so.20.1 0x00007f76aae4554b clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 2011
14 libclang-cpp.so.20.1 0x00007f76aae6f0df clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) + 863
15 libclang-cpp.so.20.1 0x00007f76aae66ba9 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) + 553
16 libclang-cpp.so.20.1 0x00007f76aae6b954 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) + 1540
17 libclang-cpp.so.20.1 0x00007f76aae65765 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) + 213
18 libclang-cpp.so.20.1 0x00007f76aaf2802c
19 libclang-cpp.so.20.1 0x00007f76aae32632 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) + 210
20 libclang-cpp.so.20.1 0x00007f76a9412e06 clang::ParseAST(clang::Sema&, bool, bool) + 646
21 libclang-cpp.so.20.1 0x00007f76abb1642f clang::FrontendAction::Execute() + 47
22 libclang-cpp.so.20.1 0x00007f76aba78cc4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1076
23 libclang-cpp.so.20.1 0x00007f76abba9f3e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 654
24 clang++ 0x000055e30c898695 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 8085
25 clang++              0x000055e30c894727
26 libclang-cpp.so.20.1 0x00007f76ab6193dd
27 libLLVM.so.20.1 0x00007f76a0b3f5f0 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 144
28 libclang-cpp.so.20.1 0x00007f76ab618c95 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const + 373
29 libclang-cpp.so.20.1 0x00007f76ab5d4eb9 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const + 553
30 libclang-cpp.so.20.1 0x00007f76ab5d5177 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const + 151
31 libclang-cpp.so.20.1 0x00007f76ab5f7d39 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) + 489
32 clang++              0x000055e30c893b54 clang_main(int, char**, llvm::ToolContext const&) + 6452
33 clang++              0x000055e30c8a39a8 main + 104
34 libc.so.6            0x00007f76a04115f5
35 libc.so.6 0x00007f76a04116a8 __libc_start_main + 136
36 clang++ 0x000055e30c891e05 _start + 37
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 20.1.3 (Fedora 20.1.3-1.fc42)
Target: x86_64-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/lib64/llvm20/bin
Configuration file: /etc/clang/x86_64-redhat-linux-gnu-clang++.cfg
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8WM1u4zgSfhrmQsSgSFE_Bx8UO-756QEGnaD3aFBUyeYMLXopypO8_YKUHEtO3HYau2sYsEVWqb4qFr8iS7St2jQAc8QfEF_eic5tjZ3_9XqvoTbW3ZWmep1_g701VSedMg1iBSLhm5DhSwpEmWqk7irAiC26xtgKLFTrFhxij-8EDiCdscMMKRzs9lq4MCW1aFv8O7wiugizOcb92C-i3WLElrh1lQfBiq1ot4gtvDB7fCf_O7w-_rsTeqoDfmjtzGW9QmsjhTN2qiiOwyfNgL9rVbPBu9f1xOup7llAFr17wSP_e0Tq_xcnM4-IPfQBUo3DO6EajGimGufl5FZYjGgRvjlGqRfFGJ-M9kHGB5Q-RJShdPn2Oi-G6ArRFXZb1eLFc7HEUnQttNhtAUvrgfVyonMGt8Gdcx8RzQ6zEjaqQTRDNPewDjNoquNjPlhMl-fpQopFsPFRLhGsVfn16_c_Zq2ZUTKLcPiQF0IISes0EUTSPIoF1vqw631tX9v-z59WNe7JCfn3sxUSEM1OQlb8szatsyB2iCYebYhljhF9wDxDpIjwO9tTswmp4o_MfuuaJ7VphP5FNJUG2_YhCG_OYkQKet2pktUZeFkWUEgvmUwkYppK5kMU9xJaNJt7ud9_BDbnjPNE4iDUgyyenhemcfDi-ucNuOfXPfza1ObX3V4jmo2E_QyWpmndkGHhf3AoIixBpOC3YEi4TK9g-NNCDdZC5U0WWm2a25FkDJEiuQVInCfiCpAlSP2BfT88sr_ApTF6iiMnPiDpVRyirHnN6jGOhangCzSTh1XXvFEtKx53yhWdM9-F7clhCu-7sGOEyTHtKPWxya5niijrqBbJ50ENlm-Dw6gPUX4TmjytPo_mPZQPcSSR3-fkOo5Kck7Lz-N4Uru9hie3c1M0fmSSRicaKawVr9-g7svfW4Y6Z08KvlDlw_aLcu9DdIsPcSain_Dhf4g-92kZ0RvAV4yX8vPgF2a3N11Tecj_Um5rOvckzR6mDo2lRkly3N2Li3aLzea70B08afNWPKIsVA923SmIOY8_mVVfoAErHPjJqRNftCmF7jN_vCRv-v1aXbT25Sjoa8B7BiFR2CzxDW4lNamu8tofpuo0nFaqh3_EsIRaNaqHfYuT_XhYi-MhyFfbJOTX9eIkIElKkf8c5v8OVs4D1uv1S0BS5jz-OayXEQ7Jy2N_pohuKF-Q8DThn4XxbPZf4QD6Y4YexYNGIR7ZdSA1zQiVXviGigKMJoyOUT8I-Tc01cI0bbcD2w_2R7cfg_1iTbf3XPeG2IeOXi8neRxRIJMi-6ewLRRPz2dECztxxkTH80YoX7Evo_Q695dllMR0siVX1h94mqoYE-YLyM7B6Lgap97AdX4uRZpJeZaTu73SYH9tWicaCRMTg9WJs2eITtQTkTT4eZ1Ry1LkNYMxjMHgCc3B36jeGX-H9pSICQ9n9qNz9MEP9kY5B0ZklmdJzrGU0drfyybXjHE99Je0SREcLm7jSnowqhoTGMm4N84nxiefKZI4pWHJrtNImUQ5qyovnP7wolOymtdkxF_htvYNpDmAfZ2cm_3NR9SgXycxqAdOX9sQB-8iHm6Fo6NAHKJ8fbuXSZTJfMI7lVWH48ZdLKKF2e1EU53n9IeL8nZBNnsPUWjEFifBJ2dVswmSj8OKvSms1_LlJYr6h1K0Sq7bID4s9UTYD6ydFcq1x-mz1407Csd5LzK6ZJzdd1jqCZJe57ySVzGU-cWIhdQX72jgGMbJPjlT9AKTA9NtosWE1MZO9VWQXefQklc8StPPOvWbKdvLHv1myq-qnR4BR9mwE1p_D42UcEUeZc9eKL9wx3bMjUEYlvhCKCLuD1zsBnbndVqxi-u7HP2fsOEHNHgphP_HUAyFJ_PXmrdCfZX3WHk8ER05eNQaO3bGxh48G6MH7np_LYw59dbZjdYFy0V27Mn5ehUaN_GocfNOc-jhRBGvPcEzfqnLE0WJyPB67afXrRPWrU-GQuuFJT-oTBEQjnu9gTQQKUbiiBUYrPW0U_SvwfVQh7EcFqkWSkOF_1Fui-FF-XhVgCPmg5V1LeD7A3YGtwBYjcprfrSED2BbZRrsE3fGvNYKKmPFMHAfzWoZ017jWdgN-HKCX7JkncT3FqqtcPdaNd3L_abpvMzWgqjwzlSgveTetOoFkSIUb62hWqrgD6KrrrWIrrQqk9j_6sOOEkRXpWoQKRamqdWmswEwrlU4p3otcBLR1RCm1QUg96MwzmS9GXcu76o5q3KWizuYR2mc5DwiJLrbziUVeQVxxnmSZHFKEs7KlOVcJjmhRKR3ak4J5YRHEcm8zoxzUkYph7wCCnENKCawE0rPvDMzYzd3qm07mEcsj2N6p0UJug0dfEoHhBTx5Z2de4X7stu0KCZata49vcIpp0Pbv9fgy77ti03T94NNjYVWosXH7vxdZ_V869w-9DxD-3ij3LYrZ9LshkgPP_d7a_4C6RBdBaQtoqsB7GFO_xMAAP__vwZHTA">