1 //===----------------------------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 // <ios>
11 
12 // template <class charT, class traits> class basic_ios
13 
14 // basic_streambuf<charT,traits>* rdbuf(basic_streambuf<charT,traits>* sb);
15 
16 #include <ios>
17 #include <streambuf>
18 #include <cassert>
19 
main()20 int main()
21 {
22     std::ios ios(0);
23     assert(ios.rdbuf() == 0);
24     assert(!ios.good());
25     std::streambuf* sb = (std::streambuf*)1;
26     std::streambuf* sb2 = ios.rdbuf(sb);
27     assert(sb2 == 0);
28     assert(ios.rdbuf() == sb);
29     assert(ios.good());
30     sb2 = ios.rdbuf(0);
31     assert(sb2 == (std::streambuf*)1);
32     assert(ios.rdbuf() == 0);
33     assert(ios.bad());
34 }
35