``` extern(C++, "xdr") { struct xvector (T) {} alias Value = xvector!(ubyte); } extern(C++) void test200XX(xvector!(Value)* v); static assert(test200XX.mangleof == `_Z9test200XXPN3xdr7xvectorIS0_IhEEE`); ``` This fails. Mangling difference: Expected: _Z9test200XXPN3xdr7xvectorIS0_IhEEE Actual: _Z9test200XXPN3xdr7xvectorIS_IhEEE Notice that `S_` (the first element) is used, instead of `S0_` (the second). So it seems like one element is not properly added to the array of elements. Will work on a fix. Most likely introduced by some large refactoring in 2.087.
Fixed by https://github.com/dlang/dmd/pull/10256 Also there was a second regression in there, in that the `S0_` substitution should be surrounded by `N .. E`, and that's fixed by https://github.com/dlang/dmd/pull/10257