mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00
52 lines
992 B
D
52 lines
992 B
D
// https://issues.dlang.org/show_bug.cgi?id=21794
|
|
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
0
|
|
0u
|
|
0L
|
|
0LU
|
|
0.0F
|
|
0.0
|
|
0.0L
|
|
---
|
|
*/
|
|
|
|
bool fun(void* p) {
|
|
const x = cast(ulong)p;
|
|
return 1;
|
|
}
|
|
|
|
static assert(fun(null));
|
|
|
|
T fun2(T)(void* p) {
|
|
const x = cast(T)p;
|
|
return x;
|
|
}
|
|
|
|
// These were an error before, they were returning a NullExp instead of IntegerExp/RealExp
|
|
|
|
static assert(fun2!int(null) == 0);
|
|
static assert(fun2!uint(null) == 0);
|
|
static assert(fun2!long(null) == 0);
|
|
static assert(fun2!ulong(null) == 0);
|
|
static assert(fun2!float(null) == 0);
|
|
static assert(fun2!double(null) == 0);
|
|
static assert(fun2!real(null) == 0);
|
|
|
|
// These were printing 'null' instead of the corresponding number
|
|
|
|
const i = cast(int)null;
|
|
const ui = cast(uint)null;
|
|
const l = cast(long)null;
|
|
const ul = cast(ulong)null;
|
|
const f = cast(float)null;
|
|
const d = cast(double)null;
|
|
const r = cast(real)null;
|
|
pragma(msg, i);
|
|
pragma(msg, ui);
|
|
pragma(msg, l);
|
|
pragma(msg, ul);
|
|
pragma(msg, f);
|
|
pragma(msg, d);
|
|
pragma(msg, r);
|