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

    <tr>
        <th>Summary</th>
        <td>
            Segmentation fault in clang++11.0.1
        </td>
    </tr>

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

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

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

<pre>
    Hello I've discovered a segmentation fault that occurs with clang++11.0.1

Command line that occurred, `clang-11 -emit-llvm -Xclang -disable-llvm-passes m.cpp -c`

Here's shell script the command output asked me to post:

```sh
# Crash reproducer for Debian clang version 11.0.1-2~deb10u1
# Driver args: "--driver-mode=g++" "m.cpp"
# Original command:  "/usr/lib/llvm-11/bin/clang" "-cc1" "-triple" "x86_64-pc-linux-gnu" "-emit-obj" "-mrelax-all" "-disable-free" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "m.cpp" "-mrelocation-model" "static" "-mframe-pointer=all" "-fmath-errno" "-fno-rounding-math" "-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" "-fno-split-dwarf-inlining" "-debugger-tuning=gdb" "-resource-dir" "/usr/lib/llvm-11/lib/clang/11.0.1" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/backward" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib/llvm-11/lib/clang/11.0.1/include" "-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-fdeprecated-macro" "-fdebug-compilation-dir" "/home/tyler" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-faddrsig" "-o" "/tmp/m-e30949.o" "-x" "c++" "m.cpp"
 "/usr/lib/llvm-11/bin/clang" "-cc1" "-triple" "x86_64-pc-linux-gnu" "-emit-obj" "-mrelax-all" "-disable-free" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "m.cpp" "-mrelocation-model" "static" "-mframe-pointer=all" "-fmath-errno" "-fno-rounding-math" "-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" "-fno-split-dwarf-inlining" "-debugger-tuning=gdb" "-fdeprecated-macro" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-faddrsig" "-x" "c++" "m-06476d.cpp"
```

Here's the reduced code that causes the issue
```cpp
# 1 "<built-in>"
# 1 "m.cpp"
typedef int a;
typedef int b;
template <typename, b...> struct c {
};
template <typename b, b d> using e = __make_integer_seq<c, b, d>;
template <a... f> using g = c<a, f...>;
template <a d> using h = e<a, d>;
constexpr int i = 1 << 15;
template <a j, typename k = h<j>> double l(double m) { n(m, k{}); }
template <a... o> double n(double m, g<o...>){((o, m) *...);}
double p(void) {
    l<i>(1);
}
```
If you change `constexpr int i = 1 << 15` to `constexpr int i = 1 << 13` then no segmentation fault occurs.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztV0tv4zYQ_jXyhaChh58HH3bjGLunAt0eegsocmQxoUiVj8T59x3Sku0kTjZAgaJAN3BkeYbzzXA4L9ZGPG--gVKGfM_K5SMQIR03j2BBEEYc7DvQnnlpNGlYUJ74lnliOA_WkSfpW8IV0_us_Iqfopjm0yLLt1n-5fi8MV3HtCBKargQRfSsvCHZIk_StCgIhU56qtRjR-ifiUoo2sJqBYlKe-YcONJNed8TylH2UtE3tBg34IhrcTfEcSv7aCwQPphggu-DJ8w94NY6tMaQ3jifVV8ucSJs-rh2IJQVubHMtcRCb40IHCxpjCVbqCXTx-0TdJiLPjp6gJbZ8lZAXeShOKNsrcRlhNm9Q6UkK0tKRaLRzgjIqu3gRuREbtopfp8RfrNyLzVT454iTFyZlbvgLD6VrOMzuqso8K2WGp_DCSVQynkxvnr0kYLh12G1uFvMaM8pnlU40L0O47p0Mqa-H393FhQ7UKbUSBkPqrEAr2nJGtykbCTYCyZnVtBHpgJQzTpwJ3QmNW2kOpJf-eKk3_AUlMlzoxkuBio_rWosytPeSO1RcbW9sLfpmG8pWKvNiaQNtSZoITEeI_uEw4123gbujcU9S-YubA36SWpBfdzpierxiMFT3oezb-lidqnJ9Qp9Kp6YbajU6HF5PiEMnLDfY1T4kMgYF6IemRacCZYDenB05runf_w9nP5uSM4BJzkFQ4lK9-w8dK-xjpEznZ5g9hw9uxui5CJEdqtx3auH1FwFDGu0YAzruPbfV39F6JdFHx3Rrmb8AUNTfNaSmI3qEu-TYp-K13dR4RBf-HvoH7n7s0j_VPWQ8AI7B2DBAoGVhVtzwcBUp1jNe6mO9exFWrcmFsCdf1bnytlg1cJCpCQW5YFWrE9M3B2nQzPCwjGblueUb_jhgJZz6KMmdwZ8S-JGoQ4h2V5ji5T8zGFCIPipVpmzsb7DAr3rKFT5eraenjZ5GF74B83tVxP7XzWx9xPiPxXc70QuzRez5UK8nM7GsfHqTBrHUBx5cXQUOLqJYRLmLMSBNjKlcwFeIUX40-RXpAypbuoglUdnZ9VtdjkZFm9zyj_3IKAhGDmEZdXXt9T6TIWuxwIEBFXEFcegvSH1FPtEdUuOoUM4yZaDRLbcfiiN4FGeiCgeHIYAifwtubvr2APcxXjG8Lhz8BdK8bQ4PuL6q8AMTSHNGW2f0HjkRLnmaOl10Usr2iQHo9wLfSlJ4NDb5B6ZVhYRAT-kmL8Dfh9xTvt-SFItcu4T9C0RJmBiEczb1fCKDWMdXUmwsK26KP4QHYsuLdeohMS36w4wF4D6BeANwSS7MYMbEAcBS2zmKxN5R43ll8hOOk4qBgSMm9WjkWKwbCjL-KcQVSbIVTGIngLgWuh_b8izCYS3WK4h3fB-4tRFHq9iP11YpYUtaKLNtXvp8Uo6ncCmWCxyNHY9ryZiU4l1tWYTL72CzY-3YlK_vcBOglWb1vs-3tOw9cTRCm-6oZ5ipx5a09ih8Ep4D9zHph9zGGvJbr4sinLSbpoZq6tiOW-gzleLxXyZF7Cq5lUp6nU9K9cTxWpQbpPNY2nR8DSUAUzg-XYiN2VelvmqKPN5OZ-XUwDW1PWaiVrks1kOGf5jm1HTaMfU2P3EbpJJWHgdMpV03p2ZeHuWew2Q1CE-C741dvNHnC1-ANO_szBJ-jfJ_r8BltjCpw">