From 16f6b489f95b6cb742cc71db143fa14aa28b9e98 Mon Sep 17 00:00:00 2001 From: jsm28 Date: Thu, 17 Sep 2009 23:54:25 +0000 Subject: [PATCH] * testsuite/lib/libstdc++.exp (check_v3_target_binary_io): New. * testsuite/lib/dg-options.exp (dg-require-binary-io): New. * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc, testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc, testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc, testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc, testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc, testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc, testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc, testsuite/27_io/basic_istream/readsome/char/6746-2.cc, testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc, testsuite/27_io/objects/char/10.cc: Use dg-require-binary-io. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151825 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 15 ++++++ .../27_io/basic_filebuf/seekoff/char/1-io.cc | 1 + .../27_io/basic_filebuf/seekoff/char/2-io.cc | 1 + .../27_io/basic_filebuf/sgetn/char/1-in.cc | 1 + .../27_io/basic_filebuf/sgetn/char/1-io.cc | 1 + .../27_io/basic_filebuf/sgetn/char/2-in.cc | 1 + .../27_io/basic_filebuf/sgetn/char/2-io.cc | 1 + .../27_io/basic_filebuf/underflow/wchar_t/11603.cc | 2 + .../27_io/basic_istream/readsome/char/6746-2.cc | 1 + .../27_io/basic_istream/readsome/wchar_t/6746-2.cc | 2 + libstdc++-v3/testsuite/27_io/objects/char/10.cc | 1 + libstdc++-v3/testsuite/lib/dg-options.exp | 9 ++++ libstdc++-v3/testsuite/lib/libstdc++.exp | 58 ++++++++++++++++++++++ 13 files changed, 94 insertions(+) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e5196bd..32a4815 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,20 @@ 2009-09-17 Joseph Myers + * testsuite/lib/libstdc++.exp (check_v3_target_binary_io): New. + * testsuite/lib/dg-options.exp (dg-require-binary-io): New. + * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc, + testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc, + testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc, + testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc, + testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc, + testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc, + testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc, + testsuite/27_io/basic_istream/readsome/char/6746-2.cc, + testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc, + testsuite/27_io/objects/char/10.cc: Use dg-require-binary-io. + +2009-09-17 Joseph Myers + * include/ext/vstring.h (to_wstring(long long), to_wstring(unsigned long long), to_wstring(long double)): Disable for _GLIBCXX_HAVE_BROKEN_VSWPRINTF. diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc index e08a48a..bb17515 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc @@ -20,6 +20,7 @@ // 27.8.1.4 Overridden virtual functions // { dg-require-fileio "" } +// { dg-require-binary-io "" } #include #include diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc index 5d30517..67a376e 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc @@ -20,6 +20,7 @@ // 27.8.1.4 Overridden virtual functions // { dg-require-fileio "" } +// { dg-require-binary-io "" } #include #include diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc index 23f438f..47c0597 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc @@ -24,6 +24,7 @@ // 27.8.1.4 Overridden virtual functions // { dg-require-fileio "" } +// { dg-require-binary-io "" } #include #include diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc index 26b8bd2..ffcdc2c 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc @@ -24,6 +24,7 @@ // 27.8.1.4 Overridden virtual functions // { dg-require-fileio "" } +// { dg-require-binary-io "" } #include #include diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc index 7831128..dda7c67 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc @@ -24,6 +24,7 @@ // 27.8.1.4 Overridden virtual functions // { dg-require-fileio "" } +// { dg-require-binary-io "" } #include #include diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc index 2f7657f..d401f87 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc @@ -24,6 +24,7 @@ // 27.8.1.4 Overridden virtual functions // { dg-require-fileio "" } +// { dg-require-binary-io "" } #include #include diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc index 8bf915d..116c404 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc @@ -17,6 +17,8 @@ // 27.8.1.4 Overridden virtual functions +// { dg-require-binary-io "" } + #include #include #include diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc b/libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc index 9a6875b..ed74751 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc @@ -26,6 +26,7 @@ // @diff@ %-*.tst %-*.txt // { dg-require-fileio "" } +// { dg-require-binary-io "" } #include #include diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc b/libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc index 6338be6..c770313 100644 --- a/libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc @@ -19,6 +19,8 @@ // causes "in_avail" to return an incorrect value. // { dg-do run { xfail arm*-*-elf arm*-*-eabi } } +// { dg-require-binary-io "" } + // 27.6.1.3 unformatted input functions // @require@ %-*.tst %-*.txt // @diff@ %-*.tst %-*.txt diff --git a/libstdc++-v3/testsuite/27_io/objects/char/10.cc b/libstdc++-v3/testsuite/27_io/objects/char/10.cc index cfa21c8..a744e78 100644 --- a/libstdc++-v3/testsuite/27_io/objects/char/10.cc +++ b/libstdc++-v3/testsuite/27_io/objects/char/10.cc @@ -18,6 +18,7 @@ // . // { dg-require-fileio "" } +// { dg-require-binary-io "" } #include #include diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp index 6e8f74b..1d9af09 100644 --- a/libstdc++-v3/testsuite/lib/dg-options.exp +++ b/libstdc++-v3/testsuite/lib/dg-options.exp @@ -151,3 +151,12 @@ proc dg-require-swprintf { args } { } return } + +proc dg-require-binary-io { args } { + if { ![ check_v3_target_binary_io ] } { + upvar dg-do-what dg-do-what + set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] + return + } + return +} diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index dc67368..05a9b5d 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -1441,3 +1441,61 @@ proc check_v3_target_swprintf { } { verbose "check_v3_target_swprintf: $et_swprintf" 2 return $et_swprintf } + +proc check_v3_target_binary_io { } { + global cxxflags + global DEFAULT_CXXFLAGS + global et_binary_io + + global tool + + if { ![info exists et_binary_io_target_name] } { + set et_binary_io_target_name "" + } + + # If the target has changed since we set the cached value, clear it. + set current_target [current_target_name] + if { $current_target != $et_binary_io_target_name } { + verbose "check_v3_target_binary_io: `$et_binary_io_target_name'" 2 + set et_binary_io_target_name $current_target + if [info exists et_binary_io] { + verbose "check_v3_target_binary_io: removing cached result" 2 + unset et_binary_io + } + } + + if [info exists et_binary_io] { + verbose "check_v3_target_binary_io: using cached result" 2 + } else { + set et_binary_io 0 + + # Set up and compile a C++0x test program that depends + # on text and binary I/O being the same. + set src binary_io[pid].cc + set exe binary_io[pid].exe + + set f [open $src "w"] + puts $f "#include " + puts $f "int main()" + puts $f "#if !defined(_GLIBCXX_HAVE_DOS_BASED_FILESYSTEM)" + puts $f "{ return 0; }" + puts $f "#endif" + close $f + + set cxxflags_saved $cxxflags + set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -Werror" + + set lines [v3_target_compile $src $exe executable ""] + set cxxflags $cxxflags_saved + file delete $src + + if [string match "" $lines] { + # No error message, compilation succeeded. + set et_binary_io 1 + } else { + verbose "check_v3_target_binary_io: compilation failed" 2 + } + } + verbose "check_v3_target_binary_io: $et_binary_io" 2 + return $et_binary_io +} -- 2.7.4