diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-02-25 00:57:45 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-02-25 00:57:45 +0000 |
commit | bca5ecf6c44c43c2fbcc476e5289fe8862555434 (patch) | |
tree | 80d8b1fa83e68f9681f69ea7ab039c26dd296bcb /libstdc++-v3/testsuite/18_support | |
parent | ea72ed6ea2602cb321b92dc3c7244355d71505d3 (diff) | |
download | ppe42-gcc-bca5ecf6c44c43c2fbcc476e5289fe8862555434.tar.gz ppe42-gcc-bca5ecf6c44c43c2fbcc476e5289fe8862555434.zip |
2011-02-24 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/18_support/type_info/required.cc: New.
* testsuite/Makefile.am: Make clean fixups.
* testsuite/Makefile.in: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170486 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite/18_support')
-rw-r--r-- | libstdc++-v3/testsuite/18_support/type_info/fundamental.cc | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/18_support/type_info/fundamental.cc b/libstdc++-v3/testsuite/18_support/type_info/fundamental.cc new file mode 100644 index 00000000000..00c64b8cfab --- /dev/null +++ b/libstdc++-v3/testsuite/18_support/type_info/fundamental.cc @@ -0,0 +1,79 @@ +// { dg-options "-std=gnu++0x" } +// { dg-require-effective-target dfp } + +// 2011-02-23 Benjamin Kosnik <bkoz@redhat.com> +// +// Copyright (C) 2011 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/>. + +#include <string> +#include <typeinfo> +#include <decimal/decimal> + +template<typename _Tp> + std::string + gen_type_info() + { + std::string s1 = typeid(_Tp).name(); + std::string s2 = typeid(_Tp*).name(); + std::string s3 = typeid(const _Tp*).name(); + return std::max(std::max(s1, s2), s3); + } + +// libstdc++/43622, others +int main() +{ + gen_type_info<bool>(); + gen_type_info<char>(); + gen_type_info<signed char>(); + gen_type_info<unsigned char>(); + gen_type_info<short>(); + gen_type_info<unsigned short>(); + gen_type_info<int>(); + gen_type_info<unsigned int>(); + gen_type_info<long>(); + gen_type_info<unsigned long>(); + gen_type_info<long long>(); + gen_type_info<unsigned long long>(); + gen_type_info<wchar_t>(); + gen_type_info<char16_t>(); + gen_type_info<char32_t>(); + + gen_type_info<float>(); + gen_type_info<double>(); + gen_type_info<long double>(); + + gen_type_info<void>(); + + gen_type_info<std::nullptr_t>(); + + // decimal + gen_type_info<std::decimal::decimal32>(); + gen_type_info<std::decimal::decimal64>(); + gen_type_info<std::decimal::decimal128>(); + + // attributes +#if 0 + typedef int ti_type __attribute__((__mode__(TI))); + gen_type_info<ti_type>(); + + typedef float tf_type __attribute__((__mode__(TF))); + gen_type_info<tf_type>(); +#endif + + return 0; +} |