OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc3/] [libstdc++-v3/] [testsuite/] [22_locale/] [locale/] [cons/] [unicode.cc] - Blame information for rev 516

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 jeremybenn
// { dg-require-iconv "ISO-8859-1" }
2
 
3
// Copyright (C) 2006, 2007, 2009 Free Software Foundation
4
//
5
// This file is part of the GNU ISO C++ Library.  This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 3, or (at your option)
9
// any later version.
10
 
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
// GNU General Public License for more details.
15
 
16
// You should have received a copy of the GNU General Public License along
17
// with this library; see the file COPYING3.  If not see
18
// <http://www.gnu.org/licenses/>.
19
 
20
// 22.1.1.2 locale constructors and destructors [lib.locale.cons]
21
 
22
#include <cwchar> // for mbstate_t
23
#include <locale>
24
#include <stdexcept>
25
#include <typeinfo>
26
#include <testsuite_hooks.h>
27
#include <ext/codecvt_specializations.h>
28
 
29
typedef std::codecvt<char, char, std::mbstate_t>              c_codecvt;
30
 
31
#ifdef _GLIBCXX_USE_WCHAR_T
32
typedef std::codecvt<wchar_t, char, std::mbstate_t>           w_codecvt;
33
#endif
34
 
35
class gnu_facet: public std::locale::facet
36
{
37
public:
38
  static std::locale::id id;
39
};
40
 
41
std::locale::id gnu_facet::id;
42
 
43
void test01()
44
{
45
  using namespace std;
46
  typedef unsigned short                                int_type;
47
  typedef char                                          ext_type;
48
  typedef __gnu_cxx::encoding_state                     state_type;
49
  typedef codecvt<int_type, ext_type, state_type>       unicode_codecvt;
50
 
51
  bool test __attribute__((unused)) = true;
52
 
53
  // unicode_codecvt
54
  locale loc01(locale::classic());
55
  locale loc13(locale::classic(), new unicode_codecvt);
56
  VERIFY( loc01 != loc13 );
57
  VERIFY( loc13.name() == "*" );
58
  try
59
    {
60
      VERIFY( has_facet<c_codecvt>(loc13) );
61
#ifdef _GLIBCXX_USE_WCHAR_T
62
      VERIFY( has_facet<w_codecvt>(loc13) );
63
#endif
64
      VERIFY( has_facet<unicode_codecvt>(loc13) );
65
    }
66
  catch(...)
67
    { VERIFY( false ); }
68
 
69
  try
70
    { use_facet<gnu_facet>(loc13); }
71
  catch(bad_cast& obj)
72
    { VERIFY( true ); }
73
  catch(...)
74
    { VERIFY( false ); }
75
}
76
 
77
int main()
78
{
79
  test01();
80
  return 0;
81
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.