<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVltzmzgU_jX45Uw8IAyYBz84dtLNTHY322Q6ffMIIWy1QmIkkcu_3yOB3eCmTbdrYwM60nc-nZtOpeuXVZTH4xVvo3j9qEUNjlsXkaVQDlRESoiKy0EKUOu-khweJY2ySxVl2ygdZVGxHR-miB97pYTagzsIC0zXHJ-M7vcHwClMUhRdMJbABbXuou7bLkq3X6xWKAVGe8stUAXUWm6c0AoaKmRveJSu31QXEFEIEbk-6JbjTXW604_4YHinLd6lfGwvOqO_cIb7vB6W4LCo8H99_4D_N44q0bd_okTyOeuQ1TpL4tIjBxuhTajS6qXVvfVbRzrpevP581-05cMqM4y14eW6V8zTv6OGtmhbppV1cCSLFwraT9RsOZMRWaPVvab1ade4vw5nbHnn0HDpBo6ADy8dD6PzPXfhAdH9clIEU_F6Phjm7vZqfX8Ftq9a4YBC1e_BG8Q4cBoOznXWMyHXeKHMzr2V5tp4y6AHahCKyT64jwMz1B6gouyrM5ShkTfQIZjRjCPlGqzuzTDsV6LzNBPUocD0CiwzonMjrXuHIDD4ffRojKLyzug9mgqo2fctV87-N59WvZC1vwt19PDbYRaCPTg46E68brQv102UXgHaHD0A1AHHfegGGrToMJP4mafF6ZrgL4k9y-B-H_I1OhP9PTiQFD5pSDFmUkTSGOLn-PhJSVnneQJ3BtMuGOXBW_Ze7BWVf6AVfUCRpY-9IT5gENlRfRx-J-zkDJvylMM5GGp6F4iMQEWTlzxJOC0wL3c7gxvXhu8wekK8-eTJF8Odza2e5xG5jJ8XBKf7aDzhpRM8khbLkiEexq3htN59FVLuRNtJ7p1-NN2PFSwbXD9RsDgnnFc57G3Y4ztcceYEKptC1YuiToFW-p1NE4bzJkD5OVDeVLBTcic17rnWLRVqzrSs38HFZRPc4myvaUrzn0KkFc6YQCxfB0pW08WSshHi91Mt6BrBJtrKM21xSWOv7VRKQWH9tF2oKeV7RfXqGYuOtRgjvqJ-q6V-HEKFDamygV55_3Nfw5x_r7SWPvLfqvKv4t_nUTxlXC5TTn6fsa_WU67_9FQOo79EJzmjk_Fi8ft0_PCUzgepKyqHU-iXCJEzj9IMi-w7hCawG60cf3Y3mPOvqY2kf8xuAz4Oh3FDn3baOqwgeLbmv8g8nTJnVcyr1ycyNgKewQeuONZwPRruZlKbhrEnI1w44f82eIR_T9uP1J71JCh_Rn97i4u3vP0R_WPPM6tXaV2mJZ3R3h20WSnxVbBZb-RqeqLvhTv0FdaYdkzg7_NYWNtzn98ZWS6S2WHFMX1pUWFVyRrSoI1YUVUxLau6WTS8ymaSVlzaFXaCESGKP0GAwGfsC2f_n4FYkZgkCSEkyZLFYjEvljWjRUrSpsnxm0WLGE0k5KlVmZlVgPT9CwqlsO5bHzPDNsRXAR4II0MnnAwvx8zItvDpdn3qOs9bTuxSjD_W2_F8nwW-q0D2X_o4cO4>52841</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Mangler] VLA causes assertion failure during mangling
        </td>
    </tr>

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

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

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

<pre>
    ```
void test(int n) {
  double vla[n];
}
```
Running this code through `clang -cc1 -ast-dump=json` causes an assertion failure:
```
clang: /home/npopov/repos/llvm-project/clang/lib/AST/ItaniumMangle.cpp:5109: void {anonymous}::CXXNameMangler::mangleFunctionParam(const clang::ParmVarDecl*): Assertion `parmDepth < FunctionTypeDepth.getDepth()' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /home/npopov/repos/llvm-project/build/bin/clang -cc1 -ast-dump=json test.cpp
1.      <eof> parser at end of file
2.      test.cpp:2:10: Mangling declaration 'vla'
 #0 0x000000000329d661 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000000000329ae3e SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f69e11ea760 __restore_rt (/lib64/libc.so.6+0x42760)
 #3 0x00007f69e123789c __pthread_kill_implementation (/lib64/libc.so.6+0x8f89c)
 #4 0x00007f69e11ea6b6 gsignal (/lib64/libc.so.6+0x426b6)
 #5 0x00007f69e11d47d3 abort (/lib64/libc.so.6+0x2c7d3)
 #6 0x00007f69e11d46fb _nl_load_domain.cold (/lib64/libc.so.6+0x2c6fb)
 #7 0x00007f69e11e33a6 (/lib64/libc.so.6+0x3b3a6)
 #8 0x0000000005da48ac (/home/npopov/repos/llvm-project/build/bin/clang+0x5da48ac)
 #9 0x0000000005da09a0 (anonymous namespace)::CXXNameMangler::mangleExpression(clang::Expr const*, unsigned int, bool) ItaniumMangle.cpp:0:0
#10 0x0000000005d983e2 (anonymous namespace)::CXXNameMangler::mangleType(clang::QualType) ItaniumMangle.cpp:0:0
#11 0x0000000005d95e74 (anonymous namespace)::CXXNameMangler::mangleName(clang::GlobalDecl) ItaniumMangle.cpp:0:0
#12 0x0000000005daa5c1 (anonymous namespace)::ItaniumMangleContextImpl::mangleCXXName(clang::GlobalDecl, llvm::raw_ostream&) ItaniumMangle.cpp:0:0
#13 0x0000000005dcb0eb clang::ASTNameGenerator::Implementation::writeFuncOrVarName(clang::NamedDecl const*, llvm::raw_ostream&) DLangDemangle.cpp:0:0
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydVsty4ygU_Rp5Q8UlgR7WwgvHTnpSlZnJTFJdvXMhhGw6CFSAkvTfzwXJ7sidtDNJZAtz4dxzn1Dp-scyyuPxiTdRvHrSokaOWxfhhVAOqQiXKCouBylCte4rydGTpFF2qaJsE5FRFhWbcTBF_LdXSqgdcnthEdM1h5HR_W6PYAmTFEQXjCXoglp3UfdtF5HNd6sVSBGjveUWUYWotdw4oRVqqJC94RFZvakuIIIQRfh6r1sOL9XpTj_BwPBOW3hL-dRedEZ_5wzsvB62wLSo4Ht1_wDfN44q0bd_gkTyOeuA1SpL4tIjBx-BT6jS6kere-tNBzpktf727S_a8mGXGeba8OO6V8zTv6OGtuBbppV16EAWHhC0X6nZcCYjvAKve02ro9VgXwcrNrxz4DiyRgfAhx8dD7PzHXdhAOh-Oy6Cq3g9Hxxzd3u1ur9Ctq9a4RBFVb9D3iHGIafR3rnOeib4Gh6Q2bn30lwb7xmIQI2EYrIP4eOIGWr3qKLs0RnKwMlr1AGY0YwD5RpZ3Zth2u-E4GkmqAOB6RWyzIjOjbTuHYCgIe5jRGMQlXdG78BViJpd33Ll7P-LadULWfu3UIcIv51mIdlDgIPuxOsG_3LdROQKgc8hAog6xMEO3aAGPDqsxH7lcTNZYfgksWcZwu9TvoZgQryHAOLCFw0uxkqKMIlR_BIf_ggu6zxP0J2BsgtOefCevRc7ReUf4EWfUHjhc2_IDzSI7Kg-Dp8jdnKCTTnh6BQMNJ0FwiNQ0eQlTxJOC6jL7daA4drwLWRPyDdfPHk6vNnc6nke4cv4JcWw3GfjEY9M8DApFiUDPMhbw2m9fRRSbkXbSe6DfnDd-woWDeyfKEhPCedVjnY22HiGK6ycQGVTqDotaoJopc8YjRmsmwDlp0B5U6GtklupweZat1SoOdOyPoML2ya4xYmthND8txCkghUTiMXrRMlqmi4oGyE-X2pB1wg20VaeaItLGnttx1aKFPRP24WeUp5rqlcv0HSshRzxHfVnL_XzKHTYUCpr1Csff-57mPO_K62lz_y3uvyr_Pd1FE8ZlwvC8ecZ-2495fpPT-Uw-yE6yQmdjBfp5-n46SmdL1JXVA6n0IcI4ZOI0gya7BlCE9i1Vo6_uBuo-dfURtLvs1sjn4fDvKHPW20ddBA4W_MPMidT5qyKefX6RIaLgGfwhSsOPVyPjruZ9KZh7tkIF074vw0c4b_S9jO1Zz1Jyt_R39zC5g1v36N_uPPM6iWpS1LSmRNO8iVcyg5hzjbo6-3qeIU6vT_BkWv8GdWOh9WsN3I5vQXshNv3FfSldiz6X2tfWNtz3xMyvEiT2X7ZkEVKCc0wa0roc7iJKWuKBc1gLmZ5MZO04tJ6ohHGij-jAAFjIDwTSxzjJMEYJ1mSpum8WNSMFgSTpsnhP4vSGJwi5PFyMjPLQMnfWEAohXU_by4zsNrXffCLx6e922uzVOJRsFlQvAzE_wMr3Vq-">