// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106623 // { dg-do compile } private struct _Complex(T) { T re; T im; } enum __c_complex_double : _Complex!double; pragma(inline, true) ulong hashOf()(scope const double val) { return *cast(ulong*)&val; } pragma(inline, true) ulong hashOf()(scope const _Complex!double val, ulong seed = 0) { return hashOf(val.re) + hashOf(val.im); } pragma(inline, true) ulong hashOf()(__c_complex_double val, ulong seed = 0) { return hashOf(cast(_Complex!double) val, seed); } ulong test106623() { __c_complex_double val; return hashOf(val); }