(root)/
gcc-13.2.0/
gcc/
testsuite/
gdc.dg/
torture/
pr106623.d
// 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);
}