(root)/
gcc-13.2.0/
gcc/
testsuite/
gdc.test/
runnable/
test18054.d
/+
REQUIRED_ARGS: -d
RUN_OUTPUT:
---
float: 1 == 1
double: 1 == 1
real: 1 == 1
ifloat: 1 == 1
idouble: 1 == 1
ireal: 1 == 1
cfloat: 1 == 1
cdouble: 1 == 1
creal: 1 == 1
---
+/

import core.stdc.stdio : printf;

void test(T, string lit)()
{
    T d = mixin(lit);
    bool runtime = cast(bool) d;
    bool folded  = cast(bool) mixin(lit);

    printf((T.stringof ~ ": %d == %d\n\0").ptr, runtime, folded);
}

void main()
{
    test!(float,  "0.5f");
    test!(double, "0.5" );
    test!(real,   "0.5L");

    test!(ifloat,  "0.5i");
    test!(idouble, "0.5i");
    test!(ireal,   "0.5i");

    test!(cfloat,  "0.3 + 0.5i");
    test!(cdouble, "0.3 + 0.5i");
    test!(creal,   "0.3 + 0.5i");
}