diff --git a/test/crt-test.c b/test/crt-test.c index 82c760d..a301513 100644 --- a/test/crt-test.c +++ b/test/crt-test.c @@ -1692,17 +1692,28 @@ int main(int argc, char* argv[]) { TEST_INT((signed long long)(float)F(274877906944), 274877906944ULL); TEST_INT((signed long long)(float)F(-274877906944), -274877906944LL); + TEST_INT((unsigned long long)(long double)F(4.2), 4); + TEST_INT((signed long long)(long double)F(4.2), 4); + TEST_INT((unsigned long long)(long double)F(274877906944), 274877906944ULL); + TEST_INT((signed long long)(long double)F(274877906944), 274877906944ULL); + TEST_INT((signed long long)(long double)F(-274877906944), -274877906944LL); + TEST_FLT((double)LL(4), 4.0); TEST_FLT((float)LL(4), 4.0); + TEST_FLT((long double)LL(4), 4.0); TEST_FLT((double)LL(123456789012345), 123456789012345.0); TEST_FLT((double)LL(-123456789012345), -123456789012345.0); TEST_FLT((float)LL(274877906944), 274877906944.0); TEST_FLT((float)LL(-274877906944), -274877906944.0); + TEST_FLT((long double)LL(274877906944), 274877906944.0); + TEST_FLT((long double)LL(-274877906944), -274877906944.0); TEST_FLT((double)ULL(4), 4.0); TEST_FLT((float)ULL(4), 4.0); + TEST_FLT((long double)ULL(4), 4.0); TEST_FLT((double)ULL(17293822569102704640), 17293822569102704640.0); TEST_FLT((float)ULL(17293822569102704640), 17293822569102704640.0); + TEST_FLT((long double)ULL(17293822569102704640), 17293822569102704640.0); #ifdef _WIN32 long value = 0;