OSDN Git Service

* testsuite/lib/libstdc++.exp (check_v3_target_binary_io): New.
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 Sep 2009 23:54:25 +0000 (23:54 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 Sep 2009 23:54:25 +0000 (23:54 +0000)
* 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

13 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc
libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc
libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc
libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc
libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc
libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc
libstdc++-v3/testsuite/27_io/objects/char/10.cc
libstdc++-v3/testsuite/lib/dg-options.exp
libstdc++-v3/testsuite/lib/libstdc++.exp

index e5196bd..32a4815 100644 (file)
@@ -1,5 +1,20 @@
 2009-09-17  Joseph Myers  <joseph@codesourcery.com>
 
+       * 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  <joseph@codesourcery.com>
+
        * include/ext/vstring.h (to_wstring(long long),
        to_wstring(unsigned long long), to_wstring(long double)): Disable
        for _GLIBCXX_HAVE_BROKEN_VSWPRINTF.
index e08a48a..bb17515 100644 (file)
@@ -20,6 +20,7 @@
 // 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-require-binary-io "" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
index 5d30517..67a376e 100644 (file)
@@ -20,6 +20,7 @@
 // 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-require-binary-io "" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
index 23f438f..47c0597 100644 (file)
@@ -24,6 +24,7 @@
 // 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-require-binary-io "" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
index 26b8bd2..ffcdc2c 100644 (file)
@@ -24,6 +24,7 @@
 // 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-require-binary-io "" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
index 7831128..dda7c67 100644 (file)
@@ -24,6 +24,7 @@
 // 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-require-binary-io "" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
index 2f7657f..d401f87 100644 (file)
@@ -24,6 +24,7 @@
 // 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-require-binary-io "" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
index 8bf915d..116c404 100644 (file)
@@ -17,6 +17,8 @@
 
 // 27.8.1.4 Overridden virtual functions
 
+// { dg-require-binary-io "" }
+
 #include <fstream>
 #include <locale>
 #include <testsuite_hooks.h>
index 9a6875b..ed74751 100644 (file)
@@ -26,6 +26,7 @@
 // @diff@ %-*.tst %-*.txt
 
 // { dg-require-fileio "" }
+// { dg-require-binary-io "" }
 
 #include <istream>
 #include <fstream>
index 6338be6..c770313 100644 (file)
@@ -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
index cfa21c8..a744e78 100644 (file)
@@ -18,6 +18,7 @@
 // <http://www.gnu.org/licenses/>.
  
 // { dg-require-fileio "" }
+// { dg-require-binary-io "" }
 
 #include <iostream>
 #include <cstdio>
index 6e8f74b..1d9af09 100644 (file)
@@ -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
+}
index dc67368..05a9b5d 100644 (file)
@@ -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 <bits/c++config.h>"
+        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
+}