1 //===----------------------------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 // template <class charT, class traits = char_traits<charT> >
12 // class basic_streambuf;
19 #include "test_macros.h"
21 int underflow_called
= 0;
24 : public std::basic_streambuf
<char>
26 typedef std::basic_streambuf
<char> base
;
30 void setg(char* gbeg
, char* gnext
, char* gend
)
32 base::setg(gbeg
, gnext
, gend
);
47 assert(underflow_called
== 0);
48 assert(t
.sgetc() == 'a');
49 assert(underflow_called
== 1);
51 t
.setg(in
, in
, in
+sizeof(in
));
52 assert(t
.sgetc() == 'A');
53 assert(underflow_called
== 1);
54 assert(t
.sgetc() == 'A');
55 assert(underflow_called
== 1);