#include <limits>
#include <limits.h>
#include <float.h>
#include <cwchar>
#include <testsuite_hooks.h>
template<typename T>
void
test_is_iec559()
{
bool test;
if (std::numeric_limits<T>::is_iec559)
{
test = (std::numeric_limits<T>::has_infinity
&& std::numeric_limits<T>::has_quiet_NaN
&& std::numeric_limits<T>::has_signaling_NaN);
}
else
{
test = (!std::numeric_limits<T>::has_infinity
|| !std::numeric_limits<T>::has_quiet_NaN
|| !std::numeric_limits<T>::has_signaling_NaN);
}
VERIFY (test);
}
bool test04()
{
bool test __attribute__((unused)) = true;
VERIFY( !std::numeric_limits<short>::is_iec559 );
VERIFY( !std::numeric_limits<unsigned short>::is_iec559 );
VERIFY( !std::numeric_limits<int>::is_iec559 );
VERIFY( !std::numeric_limits<unsigned int>::is_iec559 );
VERIFY( !std::numeric_limits<long>::is_iec559 );
VERIFY( !std::numeric_limits<unsigned long>::is_iec559 );
VERIFY( !std::numeric_limits<long long>::is_iec559 );
VERIFY( !std::numeric_limits<unsigned long long>::is_iec559 );
return test;
}
int main()
{
test_is_iec559<float>();
test_is_iec559<double>();
test_is_iec559<long double>();
test04();
return 0;
}