diff options
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits')
13 files changed, 0 insertions, 820 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/29989.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/29989.cc deleted file mode 100644 index 2ca723a78..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/29989.cc +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-do compile } - -// Copyright (C) 2006, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// libstdc++/29989 -#define max(a,b) quirk -#include <limits> diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc deleted file mode 100644 index 62628c862..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc +++ /dev/null @@ -1,77 +0,0 @@ -// { dg-options "-std=gnu++0x" } -// { dg-require-cstdint "" } - -// 2008-05-20 Paolo Carlini <paolo.carlini@oracle.com> -// -// Copyright (C) 2008, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <cstdint> -#include <testsuite_hooks.h> - -// Test specializations for char16_t and char32_t, in C++0x. -template<typename T, typename R> - void - do_test() - { - bool test __attribute__((unused)) = true; - - typedef std::numeric_limits<T> char_type; - typedef std::numeric_limits<R> impl_type; - - VERIFY( char_type::is_specialized == impl_type::is_specialized ); - VERIFY( char_type::min() == impl_type::min() ); - VERIFY( char_type::max() == impl_type::max() ); - VERIFY( char_type::digits == impl_type::digits ); - VERIFY( char_type::digits10 == impl_type::digits10 ); - VERIFY( char_type::is_signed == impl_type::is_signed ); - VERIFY( char_type::is_integer == impl_type::is_integer ); - VERIFY( char_type::is_exact == impl_type::is_exact ); - VERIFY( char_type::radix == impl_type::radix ); - VERIFY( char_type::epsilon() == impl_type::epsilon() ); - VERIFY( char_type::round_error() == impl_type::round_error() ); - VERIFY( char_type::min_exponent == impl_type::min_exponent ); - VERIFY( char_type::min_exponent10 == impl_type::min_exponent10 ); - VERIFY( char_type::max_exponent == impl_type::max_exponent ); - VERIFY( char_type::max_exponent10 == impl_type::max_exponent10 ); - VERIFY( char_type::has_infinity == impl_type::has_infinity ); - VERIFY( char_type::has_quiet_NaN == impl_type::has_quiet_NaN ); - VERIFY( char_type::has_signaling_NaN == impl_type::has_signaling_NaN ); - VERIFY( char_type::has_denorm == impl_type::has_denorm ); - VERIFY( char_type::has_denorm_loss == impl_type::has_denorm_loss ); - VERIFY( char_type::infinity() == impl_type::infinity() ); - VERIFY( char_type::quiet_NaN() == impl_type::quiet_NaN() ); - VERIFY( char_type::signaling_NaN() == impl_type::signaling_NaN() ); - VERIFY( char_type::denorm_min() == impl_type::denorm_min() ); - VERIFY( char_type::is_iec559 == impl_type::is_iec559 ); - VERIFY( char_type::is_bounded == impl_type::is_bounded ); - VERIFY( char_type::is_modulo == impl_type::is_modulo ); - VERIFY( char_type::traps == impl_type::traps ); - VERIFY( char_type::tinyness_before == impl_type::tinyness_before ); - VERIFY( char_type::round_style == impl_type::round_style ); - } - -int main() -{ - do_test<char16_t, uint_least16_t>(); - do_test<char32_t, uint_least32_t>(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc deleted file mode 100644 index df95a9376..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc +++ /dev/null @@ -1,55 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <limits.h> -#include <float.h> -#include <cwchar> -#include <testsuite_hooks.h> - -template<typename T> -void -test_denorm_min() -{ - bool test; - - if (std::numeric_limits<T>::has_denorm == std::denorm_present) - { - T denorm = std::numeric_limits<T>::denorm_min(); - test = (denorm > 0); - } - else - test = true; - - VERIFY (test); -} - -int main() -{ - test_denorm_min<float>(); - test_denorm_min<double>(); - test_denorm_min<long double>(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/digits10.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/digits10.cc deleted file mode 100644 index abdae04bf..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/digits10.cc +++ /dev/null @@ -1,65 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <limits.h> -#include <float.h> -#include <cwchar> -#include <testsuite_hooks.h> - -// libstdc++/5045 -bool test03() -{ - bool test __attribute__((unused)) = true; - - VERIFY( std::numeric_limits<bool>::digits10 == 0 ); - if (__CHAR_BIT__ == 8) - { - VERIFY( std::numeric_limits<signed char>::digits10 == 2 ); - VERIFY( std::numeric_limits<unsigned char>::digits10 == 2 ); - } - if (__CHAR_BIT__ * sizeof(short) == 16) - { - VERIFY( std::numeric_limits<signed short>::digits10 == 4 ); - VERIFY( std::numeric_limits<unsigned short>::digits10 == 4 ); - } - if (__CHAR_BIT__ * sizeof(int) == 32) - { - VERIFY( std::numeric_limits<signed int>::digits10 == 9 ); - VERIFY( std::numeric_limits<unsigned int>::digits10 == 9 ); - } - if (__CHAR_BIT__ * sizeof(long long) == 64) - { - VERIFY( std::numeric_limits<signed long long>::digits10 == 18 ); - VERIFY( std::numeric_limits<unsigned long long>::digits10 == 19 ); - } - return test; -} - -int main() -{ - test03(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/epsilon.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/epsilon.cc deleted file mode 100644 index cecc74bad..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/epsilon.cc +++ /dev/null @@ -1,48 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <limits.h> -#include <float.h> -#include <cwchar> -#include <testsuite_hooks.h> - -template<typename T> -void test_epsilon() -{ - bool test __attribute__((unused)) = true; - T epsilon = std::numeric_limits<T>::epsilon(); - T one = 1; - - VERIFY( one != (one + epsilon) ); -} - -int main() -{ - test_epsilon<float>(); - test_epsilon<double>(); - test_epsilon<long double>(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc deleted file mode 100644 index cee2cc69b..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc +++ /dev/null @@ -1,55 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <limits.h> -#include <float.h> -#include <cwchar> -#include <testsuite_hooks.h> - -template<typename T> -void -test_infinity() -{ - bool test; - - if (std::numeric_limits<T>::has_infinity) - { - T inf = std::numeric_limits<T>::infinity(); - test = (inf + inf == inf); - } - else - test = true; - - VERIFY (test); -} - -int main() -{ - test_infinity<float>(); - test_infinity<double>(); - test_infinity<long double>(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc deleted file mode 100644 index 0f9ad9473..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc +++ /dev/null @@ -1,80 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#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) - { - // IEC 559 requires all of the following. - test = (std::numeric_limits<T>::has_infinity - && std::numeric_limits<T>::has_quiet_NaN - && std::numeric_limits<T>::has_signaling_NaN); - } - else - { - // If we had all of the following, why didn't we set IEC 559? - test = (!std::numeric_limits<T>::has_infinity - || !std::numeric_limits<T>::has_quiet_NaN - || !std::numeric_limits<T>::has_signaling_NaN); - } - - VERIFY (test); -} - -// libstdc++/8949 -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; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc deleted file mode 100644 index 964d192d0..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc +++ /dev/null @@ -1,59 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <limits.h> -#include <float.h> -#include <cwchar> -#include <testsuite_hooks.h> - -#ifdef __CHAR_UNSIGNED__ -#define char_is_signed false -#else -#define char_is_signed true -#endif - -void test_sign() -{ - bool test __attribute__((unused)) = true; - VERIFY( std::numeric_limits<char>::is_signed == char_is_signed ); - VERIFY( std::numeric_limits<signed char>::is_signed == true ); - VERIFY( std::numeric_limits<unsigned char>::is_signed == false ); - VERIFY( std::numeric_limits<short>::is_signed == true ); - VERIFY( std::numeric_limits<unsigned short>::is_signed == false ); - VERIFY( std::numeric_limits<int>::is_signed == true ); - VERIFY( std::numeric_limits<unsigned>::is_signed == false ); - VERIFY( std::numeric_limits<long>::is_signed == true ); - VERIFY( std::numeric_limits<unsigned long>::is_signed == false ); - VERIFY( std::numeric_limits<float>::is_signed == true ); - VERIFY( std::numeric_limits<double>::is_signed == true ); - VERIFY( std::numeric_limits<long double>::is_signed == true ); -} - -int main() -{ - test_sign(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc deleted file mode 100644 index f8176d4fe..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc +++ /dev/null @@ -1,94 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <limits.h> -#include <float.h> -#include <cwchar> -#include <testsuite_hooks.h> - -template<typename T> -struct extrema { - static T min; - static T max; -}; - - -#define DEFINE_EXTREMA(T, m, M) \ - template<> T extrema<T>::min = m; \ - template<> T extrema<T>::max = M - -DEFINE_EXTREMA(char, CHAR_MIN, CHAR_MAX); -DEFINE_EXTREMA(signed char, SCHAR_MIN, SCHAR_MAX); -DEFINE_EXTREMA(unsigned char, 0, UCHAR_MAX); -DEFINE_EXTREMA(short, SHRT_MIN, SHRT_MAX); -DEFINE_EXTREMA(unsigned short, 0, USHRT_MAX); -DEFINE_EXTREMA(int, INT_MIN, INT_MAX); -DEFINE_EXTREMA(unsigned, 0U, UINT_MAX); -DEFINE_EXTREMA(long, LONG_MIN, LONG_MAX); -DEFINE_EXTREMA(unsigned long, 0UL, ULONG_MAX); - -#if _GLIBCXX_USE_WCHAR_T -DEFINE_EXTREMA(wchar_t, WCHAR_MIN, WCHAR_MAX); -#endif //_GLIBCXX_USE_WCHAR_T - -DEFINE_EXTREMA(float, FLT_MIN, FLT_MAX); -DEFINE_EXTREMA(double, DBL_MIN, DBL_MAX); -DEFINE_EXTREMA(long double, LDBL_MIN, LDBL_MAX); - -#undef DEFINE_EXTREMA - -template<typename T> -void test_extrema() -{ - bool test __attribute__((unused)) = true; - T limits_min = std::numeric_limits<T>::min(); - T limits_max = std::numeric_limits<T>::max(); - T extrema_min = extrema<T>::min; - T extrema_max = extrema<T>::max; - VERIFY( extrema_min == limits_min ); - VERIFY( extrema_max == limits_max ); -} - -int main() -{ - test_extrema<char>(); - test_extrema<signed char>(); - test_extrema<unsigned char>(); - - test_extrema<short>(); - test_extrema<unsigned short>(); - - test_extrema<int>(); - test_extrema<unsigned>(); - - test_extrema<long>(); - test_extrema<unsigned long>(); - - test_extrema<float>(); - test_extrema<double>(); - test_extrema<long double>(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/quiet_NaN.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/quiet_NaN.cc deleted file mode 100644 index 581ceeaf7..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/quiet_NaN.cc +++ /dev/null @@ -1,55 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <limits.h> -#include <float.h> -#include <cwchar> -#include <testsuite_hooks.h> - -template<typename T> -void -test_qnan() -{ - bool test; - - if (std::numeric_limits<T>::has_quiet_NaN) - { - T nan = std::numeric_limits<T>::quiet_NaN(); - test = (nan != nan); - } - else - test = true; - - VERIFY (test); -} - -int main() -{ - test_qnan<float>(); - test_qnan<double>(); - test_qnan<long double>(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc deleted file mode 100644 index aa75bd14c..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc +++ /dev/null @@ -1,41 +0,0 @@ -// { dg-do compile } - -// Copyright (C) 2007, 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - - -// This file tests explicit instantiation of library containers. - -#include <limits> - -template<typename T> - struct A - { - int key; - public: - A(int i = 0): key(i) { } - bool - operator==(int i) { return i == key; } - }; - -struct B -{ - B(int = 0) { } -}; - -// XXX Should this work for POD types? -template class std::numeric_limits<A<B> >; diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc deleted file mode 100644 index 1aa1b1c63..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc +++ /dev/null @@ -1,107 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// 1999-08-23 bkoz - -// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2009 -// Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <limits.h> -#include <float.h> -#include <cwchar> -#include <testsuite_hooks.h> - -template<typename T> - struct A - { - int key; - public: - A(int i = 0): key(i) { } - bool - operator==(int i) { return i == key; } - }; - -struct B -{ - B(int = 0) { } -}; - - -bool test01() -{ - bool test __attribute__((unused)) = true; - std::numeric_limits< A<B> > obj; - - VERIFY( !obj.is_specialized ); - VERIFY( obj.min() == 0 ); - VERIFY( obj.max() == 0 ); - VERIFY( obj.digits == 0 ); - VERIFY( obj.digits10 == 0 ); - VERIFY( !obj.is_signed ); - VERIFY( !obj.is_integer ); - VERIFY( !obj.is_exact ); - VERIFY( obj.radix == 0 ); - VERIFY( obj.epsilon() == 0 ); - VERIFY( obj.round_error() == 0 ); - VERIFY( obj.min_exponent == 0 ); - VERIFY( obj.min_exponent10 == 0 ); - VERIFY( obj.max_exponent == 0 ); - VERIFY( obj.max_exponent10 == 0 ); - VERIFY( !obj.has_infinity ); - VERIFY( !obj.has_quiet_NaN ); - VERIFY( !obj.has_signaling_NaN ); - VERIFY( !obj.has_denorm ); - VERIFY( !obj.has_denorm_loss ); - VERIFY( obj.infinity() == 0 ); - VERIFY( obj.quiet_NaN() == 0 ); - VERIFY( obj.signaling_NaN() == 0 ); - VERIFY( obj.denorm_min() == 0 ); - VERIFY( !obj.is_iec559 ); - VERIFY( !obj.is_bounded ); - VERIFY( !obj.is_modulo ); - VERIFY( !obj.traps ); - VERIFY( !obj.tinyness_before ); - VERIFY( obj.round_style == std::round_toward_zero ); - return test; -} - -// test linkage of the generic bits -template struct std::numeric_limits<B>; - -void test02() -{ - typedef std::numeric_limits<B> b_nl_type; - - // Should probably do all of them... - const int* __attribute__((unused)) pi1 = &b_nl_type::digits; - const int* __attribute__((unused)) pi2 = &b_nl_type::digits10; - const int* __attribute__((unused)) pi3 = &b_nl_type::max_exponent10; - const bool* __attribute__((unused)) pb1 = &b_nl_type::traps; -} - - -int main() -{ - test01(); - test02(); - - return 0; -} diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc deleted file mode 100644 index 6aac433d9..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc +++ /dev/null @@ -1,62 +0,0 @@ -// { dg-options "-mieee" { target alpha*-*-* } } -// { dg-options "-mieee" { target sh*-*-* } } - -// Copyright (C) 2005, 2009 Free Software Foundation -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// 18.2.1.1 template class numeric_limits - -#include <limits> -#include <testsuite_hooks.h> - -template<typename T> - void - test_traps(T r = T(0)) - { - typedef T value_type; - volatile value_type i(5); - volatile value_type j(0); - - if (!std::numeric_limits<value_type>::traps) - r = i / j; - } - -// libstdc++/22203 -int main() -{ - test_traps<int>(); - test_traps<unsigned int>(); - test_traps<long>(); - test_traps<unsigned long>(); - test_traps<long long>(); - test_traps<unsigned long long>(); - - /* - For floating points, trapping is a different, more complicated - story. If is_iecxxx is true, then division by zero would not trap - (infinity). If is_iecxxx is false, we don't know (VAX may trap for - 0/0 -- I have to check). For most cases (i.e. IEE-754), trapping - for floating points have to do with whether there is a support for - signaling NaN. - - Gaby. - */ - // test_traps<float>(); - // test_traps<double>(); - // test_traps<long double>(); - - return 0; -} |