diff options
Diffstat (limited to 'libstdc++-v3/testsuite/27_io/fpos')
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/11450.cc | 42 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/14252.cc | 53 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/14320-1.cc | 65 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/14320-2.cc | 41 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/14320-3.cc | 42 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/14320-4.cc | 51 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/14320-5.cc | 44 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/14775.cc | 54 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc | 59 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc | 46 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc | 88 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc | 56 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc | 43 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc | 40 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc | 41 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc | 45 |
16 files changed, 810 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/27_io/fpos/11450.cc b/libstdc++-v3/testsuite/27_io/fpos/11450.cc new file mode 100644 index 000000000..768c0aa3b --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/11450.cc @@ -0,0 +1,42 @@ +// Copyright (C) 2003, 2009 +// Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +#include <ios> +#include <testsuite_hooks.h> + +// libstdc++/11450 +void test01() +{ + bool test __attribute__((unused)) = true; + + std::fpos<int> p; + VERIFY( p.state() == 0 ); + p.state(42); + VERIFY( p.state() == 42 ); + + std::fpos<int> q = p + static_cast<std::streamoff>(1); + VERIFY( q.state() == 42 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/14252.cc b/libstdc++-v3/testsuite/27_io/fpos/14252.cc new file mode 100644 index 000000000..c114ff0fa --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/14252.cc @@ -0,0 +1,53 @@ +// 2004-02-24 Paolo Carlini <pcarlini@suse.de> + +// Copyright (C) 2004, 2009 Free Software Foundation, Inc. +// +// 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/>. + + +// 27.4.3 template class fpos + +#include <ios> +#include <testsuite_hooks.h> + +// libstdc++/14252 +void test01() +{ + bool test __attribute__((unused)) = true; + + std::streamoff off01 = 10; + std::streamoff off02 = 2; + std::streamoff off03 = 2004; + std::streamoff off04 = 1; + + VERIFY( off01++ == 10 ); + VERIFY( off01 == 11 ); + + VERIFY( ++off02 == 3 ); + VERIFY( off02 == 3 ); + + VERIFY( off03-- == 2004 ); + VERIFY( off03 == 2003 ); + + VERIFY( --off04 == 0 ); + VERIFY( off04 == 0 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc new file mode 100644 index 000000000..a90741294 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc @@ -0,0 +1,65 @@ +// 2004-03-02 Petur Runolfsson <peturr02@ru.is> + +// Copyright (C) 2004, 2009 Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +// { dg-do run } + +#include <typeinfo> +#include <limits> +#include <iterator> +#include <testsuite_hooks.h> + +// libstdc++/14320 +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + typedef istreambuf_iterator<char>::difference_type Distance; + + bool found = false; + // The C++ standard didn't originally have "long long", however that + // type will be in the C++0x standard and testing for it allows + // ilp32 targets to pass this test when `Distance' is 64 bits. + if (typeid(Distance) == typeid(long long int)) + found = true; + if (typeid(Distance) == typeid(long int)) + found = true; + if (typeid(Distance) == typeid(int)) + found = true; + if (typeid(Distance) == typeid(short int)) + found = true; + if (typeid(Distance) == typeid(signed char)) + found = true; + if (numeric_limits<char>::is_signed && + typeid(Distance) == typeid(char)) + found = true; + if (numeric_limits<wchar_t>::is_signed && + typeid(Distance) == typeid(wchar_t)) + found = true; + + VERIFY( found ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-2.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-2.cc new file mode 100644 index 000000000..23a9854a4 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-2.cc @@ -0,0 +1,41 @@ +// 2004-03-02 Petur Runolfsson <peturr02@ru.is> + +// Copyright (C) 2004, 2009 Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +#include <iterator> +#include <limits> +#include <testsuite_hooks.h> + +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + typedef istreambuf_iterator<char>::difference_type Distance; + typedef numeric_limits<Distance> Limits; + + VERIFY( Limits::is_specialized ); + VERIFY( Limits::is_signed ); +} + +int main() +{ + test01(); +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-3.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-3.cc new file mode 100644 index 000000000..dc9891143 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-3.cc @@ -0,0 +1,42 @@ +// 2004-03-02 Petur Runolfsson <peturr02@ru.is> + +// Copyright (C) 2004, 2009 Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +#include <iterator> +#include <testsuite_hooks.h> + +// libstdc++/14320 +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + typedef std::istreambuf_iterator<char>::difference_type Distance; + Distance d = 2; + Distance e = 3; + d *= e; + VERIFY( static_cast<int>(d) == 6 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-4.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-4.cc new file mode 100644 index 000000000..37c0ad60b --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-4.cc @@ -0,0 +1,51 @@ +// 2004-03-02 Petur Runolfsson <peturr02@ru.is> + +// Copyright (C) 2004, 2009 Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +#include <iterator> +#include <testsuite_hooks.h> + +class Fred +{ +public: + Fred(bool) + { } +}; + +void barney(Fred) +{ } + +// libstdc++/14320 +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + typedef istreambuf_iterator<char>::difference_type Distance; + + Distance d = 0; + barney(d); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-5.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-5.cc new file mode 100644 index 000000000..eb142e98a --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-5.cc @@ -0,0 +1,44 @@ +// 2004-03-02 Petur Runolfsson <peturr02@ru.is> + +// Copyright (C) 2004, 2009 Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +#include <iterator> +#include <sstream> +#include <testsuite_hooks.h> + +// libstdc++/14320 +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + typedef istreambuf_iterator<char>::difference_type Distance; + + Distance d; + istringstream in("5"); + in >> d; + VERIFY( d == 5 ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/14775.cc b/libstdc++-v3/testsuite/27_io/fpos/14775.cc new file mode 100644 index 000000000..83a7410ad --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/14775.cc @@ -0,0 +1,54 @@ +// 2004-03-31 Paolo Carlini <pcarlini@suse.de> + +// Copyright (C) 2004, 2009 Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +#include <fstream> +#include <testsuite_hooks.h> + +#define TWO_GB 2147483648UL + +// Basic test for LFS support. +void test01() +{ +#ifdef _GLIBCXX_USE_LFS + using namespace std; + bool test __attribute__((unused)) = true; + + typedef filebuf::pos_type pos_type; + typedef filebuf::off_type off_type; + + __gnu_test::set_file_limit(TWO_GB + 200); + + basic_filebuf<char> fb; + fb.open("tmp_14775", ios_base::out | ios_base::in | ios_base::trunc); + + pos_type ret = fb.pubseekoff(TWO_GB + 100, ios_base::beg); + VERIFY( ret != pos_type(off_type(-1)) ); + + fb.close(); +#endif +} + +int main() +{ + test01(); + return 0; +} + diff --git a/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc new file mode 100644 index 000000000..be3e478e8 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc @@ -0,0 +1,59 @@ +// 1999-09-20 bkoz + +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 +// Free Software Foundation, Inc. +// +// 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/>. + + +// 27.4.3 template class fpos + +#include <cwchar> // for mbstate_t +#include <ios> +#include <cstring> +#include <testsuite_hooks.h> + +void test01() +{ + bool test __attribute__((unused)) = true; + + typedef std::mbstate_t state_type; + state_type state01 = state_type(); + state_type state02 = state_type(); + + std::streampos pos01(0); + std::streampos pos02(0); + + // 27.4.3.1 fpos members + // void state(state_type s); + // state_type state(); + + // XXX Need to have better sanity checking for the mbstate_t type, + // or whatever the insantiating type for class fpos happens to be + // for streampos, as things like equality operators and assignment + // operators, increment and deincrement operators need to be in + // place. + pos01.state(state02); + state01 = pos01.state(); + test = std::memcmp(&state01, &state02, sizeof(state_type)) == 0; + VERIFY( test ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc new file mode 100644 index 000000000..c7f1167ba --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc @@ -0,0 +1,46 @@ +// Copyright (C) 2003, 2009 +// Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +#include <typeinfo> +#include <ios> +#include <testsuite_hooks.h> + +// libstdc++/12065 +void test01() +{ + bool test __attribute__((unused)) = true; + + std::streampos p(0); + const std::streampos q(0); + std::streamoff o(0); + + VERIFY( typeid(p + o) == typeid(std::streampos) ); + VERIFY( typeid(q + o) == typeid(std::streampos) ); + VERIFY( typeid(p - o) == typeid(std::streampos) ); + VERIFY( typeid(q - o) == typeid(std::streampos) ); + VERIFY( typeid(p - q) == typeid(std::streamoff) ); + VERIFY( typeid(q - p) == typeid(std::streamoff) ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc new file mode 100644 index 000000000..accb56535 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc @@ -0,0 +1,88 @@ +// 1999-09-20 bkoz + +// Copyright (C) 1999, 2001, 2003, 2009, 2010 Free Software Foundation, Inc. +// +// 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/>. + + +// 27.4.3 template class fpos + +#include <cwchar> // for mbstate_t +#include <ios> +#include <testsuite_hooks.h> + +// 27.4.3.2 fpos requirements/invariants +void test02() +{ + bool test __attribute__((unused)) = true; + + typedef std::mbstate_t state_type; + + std::streamoff off01; + std::streamoff off02 = 997; + int i02 = 999; + + // p(i), p = i + std::streampos pos01(i02); + std::streampos pos02 = i02; + VERIFY( pos01 == pos02 ); + + // p(o), p = o + // NB: P(o) is only required. + std::streampos pos03(off02); + std::streampos pos04 = off02; + VERIFY( pos03 == pos04 ); + + // O(p) + std::streamoff off03(pos04); + VERIFY( off03 == off02 ); + + // p == q, p!= q + VERIFY( pos01 == pos02 ); + VERIFY( pos02 != pos03 ); + + // q = p + o + // p += o + pos03 = pos03 + off02; + pos04 += off02; + VERIFY( pos03 == pos04 ); + std::streampos pos05 = pos03; + VERIFY ( pos05 == pos03 ); + + // q = p - o + // p -= o + pos03 = pos03 - off02; + pos04 -= off02; + VERIFY( pos03 == pos04 ); + std::streampos pos07 = pos03; + VERIFY ( pos07 == pos03 ); + + // o = p - q + VERIFY( 0 == pos03 - pos04 ); + + // streamsize -> streamoff + // streamoff -> streamsize + off01 = off02; + std::streamsize size01(off02); + std::streamoff off04(size01); + VERIFY( off01 == off04 ); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc new file mode 100644 index 000000000..34c557bfb --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc @@ -0,0 +1,56 @@ +// 1999-09-20 bkoz + +// Copyright (C) 1999, 2001, 2003, 2009, 2010 Free Software Foundation, Inc. +// +// 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/>. + + +// 27.4.3 template class fpos + +#include <cwchar> // for mbstate_t +#include <ios> +#include <testsuite_hooks.h> + +void test03() +{ + bool test __attribute__((unused)) = true; + + typedef std::mbstate_t state_type; + std::streamoff off01; + + // casts to const streamoff + const std::streampos pos01 = 0; + off01 = std::streamoff(pos01); + off01 = off01; // Suppress unused warning. + + // equality/inequality with const args + const std::streampos pos02(54); + std::streampos pos03(44); + VERIFY( !(pos03 == pos02) ); + VERIFY( pos03 != pos02 ); + VERIFY( !(pos02 == pos03) ); + VERIFY( pos02 != pos03 ); + + // default values + std::streampos pos04; + VERIFY( std::streamoff(pos04) == 0 ); +} + +int main() +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc new file mode 100644 index 000000000..9e3cad5d5 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc @@ -0,0 +1,43 @@ +// Copyright (C) 2003, 2009, 2010 +// Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos + +// { dg-do compile } + +#include <ios> + +void test04() +{ + std::streampos pos; + long n; + + // Implicit conversion + n = pos; // { dg-error "cannot convert" "" { xfail *-*-* } } + + // Explicit conversion + n = static_cast<long>(pos); // { dg-error "invalid static_cast" "" { xfail *-*-* } } + + n = n; // Suppress unused warning. +} + +int main() +{ + test04(); + return 0; +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc new file mode 100644 index 000000000..a32e34adf --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc @@ -0,0 +1,40 @@ +// { dg-do compile } + +// 2006-03-13 Paolo Carlini <pcarlini@suse.de> + +// Copyright (C) 2006, 2009, 2010 Free Software Foundation, Inc. +// +// 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/>. + + +// 27.4.3 template class fpos + +#include <ios> + +void test01() +{ + bool test01, test02; + + std::streampos pos01(-1), pos02(0); + + test01 = pos01 == -1; + test01 = -1 == pos01; + test01 = test01; // Suppress unused warning. + + test02 = pos02 != -1; + test02 = -1 != pos02; + test02 = test02; // Suppress unused warning. +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc new file mode 100644 index 000000000..0cf651a5c --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc @@ -0,0 +1,41 @@ +// { dg-do compile } + +// 2006-06-21 Paolo Carlini <pcarlini@suse.de> + +// Copyright (C) 2006, 2009 Free Software Foundation, Inc. +// +// 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/>. + + +// 27.4.3 template class fpos + +#include <ios> + +class +octave_int +{ + template<class U> + octave_int(U i); +}; + +bool +operator==(const octave_int& lhs, const octave_int& rhs); + +bool +Fsave(void) +{ + return std::streampos(0) == std::streampos(0); +} diff --git a/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc new file mode 100644 index 000000000..6140d3278 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc @@ -0,0 +1,45 @@ +// Copyright (C) 2003, 2004, 2005, 2009 +// Free Software Foundation, Inc. +// +// 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/>. + +// 27.4.3 fpos +// NB: This file is for testing fpos with NO OTHER INCLUDES. + +#include <ios> +#include <testsuite_hooks.h> +#include <testsuite_character.h> + +// { dg-do compile } + +namespace std +{ + using __gnu_test::pod_char; + typedef short type_t; + template class fpos<type_t>; + template class fpos<pod_char>; +} // std + +// more surf!!! + + + + + + + + + |