6d28c5f04594aea3998f370bc8af09715c8ae58f
[platform/upstream/gcc48.git] / libstdc++-v3 / testsuite / 27_io / basic_ostream / inserters_other / char / exceptions_null.cc
1 // Copyright (C) 2003, 2005, 2009, 2010 Free Software Foundation, Inc.
2 //
3 // This file is part of the GNU ISO C++ Library.  This library is free
4 // software; you can redistribute it and/or modify it under the
5 // terms of the GNU General Public License as published by the
6 // Free Software Foundation; either version 3, or (at your option)
7 // any later version.
8
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13
14 // You should have received a copy of the GNU General Public License along
15 // with this library; see the file COPYING3.  If not see
16 // <http://www.gnu.org/licenses/>.
17
18
19 #include <istream>
20 #include <ostream>
21 #include <streambuf>
22 #include <sstream>
23 #include <testsuite_hooks.h>
24
25 void test1()
26 {
27   using namespace std;
28   bool test __attribute__((unused)) = true;
29
30   ostringstream stream;
31   stream << static_cast<streambuf*>(0);
32   VERIFY( stream.rdstate() & ios_base::badbit );
33 }
34
35 void test3()
36 {
37   using namespace std;
38   bool test __attribute__((unused)) = true;
39
40   ostringstream stream;
41   stream.exceptions(ios_base::badbit);
42         
43   try
44     {
45       stream << static_cast<streambuf*>(0);
46       VERIFY( false );
47     }
48   catch (ios_base::failure&)
49     {
50     }
51
52   VERIFY( stream.rdstate() & ios_base::badbit );
53 }
54
55 // libstdc++/9371
56 int main()
57 {
58   test1();
59   test3();
60   return 0;
61 }