diff mbox series

[2/8] libstdc++: Replace @require@ markup in some I/O tests

Message ID 20240722163010.3508334-2-jwakely@redhat.com
State New
Headers show
Series [1/8] libstdc++: Clean up @diff@ markup in some I/O tests | expand

Commit Message

Jonathan Wakely July 22, 2024, 4:28 p.m. UTC
Tested x86_64-linux.

-- >8 --

We can replace the @require@ markup with { dg-additional-files ... }
directives, so that the required files are explicitly named and are
explicitly copied into place for tests that require it. This will allow
a later change to remove the "Copy all required data files" step in the
proc libstdc++_init in testsuite/lib/libstdc++.exp that is marked TODO.
This commit uses dg-additional-files for a subset of the files that
contain @require@.

Also remove the @diff@ markup where appears to be copy & pasted from
other test files, and so serves no purpose. For example, there is no
output file created by 27_io/basic_ifstream/cons/char/1.cc so there is
nothing for @diff@ to compare. Maybe the purpose was to check that
reading the .tst file with an ifstream doesn't change it, but we've
survived without doing those comparisons for many years so I think we
can remove those cases of @diff@ markup.

libstdc++-v3/ChangeLog:

	* testsuite/27_io/basic_filebuf/close/char/2.cc: Remove
	@require@ and @diff@ markup. Use dg-additional-files. Remove
	unused variable.
	* testsuite/27_io/basic_filebuf/close/char/3.cc: Remove
	@require@ and @diff@ markup. Use dg-additional-files.
	* testsuite/27_io/basic_filebuf/close/char/4.cc: Likewise.
	* testsuite/27_io/basic_filebuf/close/char/5.cc: Likewise.
	* testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/is_open/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/open/char/1.cc: Likewise.
	* testsuite/27_io/basic_filebuf/open/char/2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Likewise.
	* testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Likewise.
	Remove unused variable.
	* testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: Remove
	@require@ and @diff@ markup. Use dg-additional-files.
	* testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_ifstream/cons/char/1.cc: Likewise.
	* testsuite/27_io/basic_ifstream/open/char/1.cc: Likewise.
	* testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc: Likewise.
	* testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
	Likewise.
	* testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc:
	Likewise.
	* testsuite/27_io/basic_istream/seekg/char/sstream.cc: Likewise.
	* testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc:
	Likewise.
	* testsuite/27_io/basic_istream/tellg/char/1.cc: Likewise.
	* testsuite/27_io/basic_istream/tellg/char/sstream.cc: Likewise.
	* testsuite/27_io/basic_istream/tellg/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc:
	Likewise.
	* testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
	* testsuite/lib/dg-options.exp (dg-additional-files): Append to
	v3_additional_files instead of replacing.
	* testsuite/lib/libstdc++.exp (v3_target_compile): Reset
	v3_additional_files after copying files.
---
 .../testsuite/27_io/basic_filebuf/close/char/2.cc     |  6 ++----
 .../testsuite/27_io/basic_filebuf/close/char/3.cc     |  5 ++---
 .../testsuite/27_io/basic_filebuf/close/char/4.cc     |  5 ++---
 .../testsuite/27_io/basic_filebuf/close/char/5.cc     |  8 ++++----
 .../testsuite/27_io/basic_filebuf/in_avail/char/1.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/is_open/char/1.cc   |  5 ++---
 .../testsuite/27_io/basic_filebuf/open/char/1.cc      |  5 ++---
 .../testsuite/27_io/basic_filebuf/open/char/2.cc      |  5 ++---
 .../testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc |  6 ++----
 .../testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc |  6 ++----
 .../testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc |  6 ++----
 .../testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc |  6 ++----
 .../27_io/basic_filebuf/seekoff/char/1-in.cc          |  6 ++----
 .../27_io/basic_filebuf/seekoff/char/1-out.cc         |  6 ++----
 .../27_io/basic_filebuf/seekoff/char/2-in.cc          |  6 ++----
 .../27_io/basic_filebuf/seekoff/char/2-out.cc         |  6 ++----
 .../27_io/basic_filebuf/seekpos/char/1-in.cc          |  6 ++----
 .../27_io/basic_filebuf/seekpos/char/1-out.cc         |  6 ++----
 .../27_io/basic_filebuf/seekpos/char/2-in.cc          |  6 ++----
 .../27_io/basic_filebuf/seekpos/char/2-out.cc         |  6 ++----
 .../testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/snextc/char/1-in.cc |  6 ++----
 .../testsuite/27_io/basic_filebuf/snextc/char/1-io.cc |  6 ++----
 .../27_io/basic_filebuf/snextc/char/1-out.cc          |  7 +++----
 .../testsuite/27_io/basic_filebuf/snextc/char/2-in.cc |  6 ++----
 .../testsuite/27_io/basic_filebuf/snextc/char/2-io.cc |  6 ++----
 .../27_io/basic_filebuf/sputbackc/char/1-in.cc        |  6 ++----
 .../27_io/basic_filebuf/sputbackc/char/2-in.cc        |  6 ++----
 .../testsuite/27_io/basic_filebuf/sputc/char/1-in.cc  |  7 +++----
 .../testsuite/27_io/basic_filebuf/sputc/char/2-in.cc  |  7 +++----
 .../testsuite/27_io/basic_filebuf/sputc/char/2-io.cc  |  6 ++----
 .../testsuite/27_io/basic_filebuf/sputn/char/1-in.cc  |  7 +++----
 .../testsuite/27_io/basic_filebuf/sputn/char/1-io.cc  |  7 ++-----
 .../testsuite/27_io/basic_filebuf/sputn/char/2-in.cc  |  7 +++----
 .../27_io/basic_filebuf/sungetc/char/1-in.cc          |  3 +--
 .../27_io/basic_filebuf/sungetc/char/2-in.cc          |  4 +---
 .../testsuite/27_io/basic_ifstream/cons/char/1.cc     |  5 ++---
 .../testsuite/27_io/basic_ifstream/open/char/1.cc     |  5 ++---
 .../testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc | 11 +----------
 .../27_io/basic_istream/readsome/char/6746-2.cc       |  5 ++---
 .../27_io/basic_istream/readsome/wchar_t/6746-2.cc    |  5 ++---
 .../27_io/basic_istream/seekg/char/sstream.cc         |  5 ++---
 .../27_io/basic_istream/seekg/wchar_t/sstream.cc      |  5 ++---
 .../testsuite/27_io/basic_istream/tellg/char/1.cc     |  5 ++---
 .../27_io/basic_istream/tellg/char/sstream.cc         |  5 ++---
 .../testsuite/27_io/basic_istream/tellg/wchar_t/1.cc  |  5 ++---
 .../27_io/basic_istream/tellg/wchar_t/sstream.cc      |  5 ++---
 .../testsuite/27_io/basic_ofstream/open/char/1.cc     |  5 +++--
 libstdc++-v3/testsuite/lib/dg-options.exp             |  2 +-
 libstdc++-v3/testsuite/lib/libstdc++.exp              |  1 +
 57 files changed, 117 insertions(+), 208 deletions(-)
diff mbox series

Patch

diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc
index c7f655d0bb7..fd71faed734 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc
@@ -16,10 +16,9 @@ 
 // <http://www.gnu.org/licenses/>.
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
-// 27.8.1.3 filebuf member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.3 filebuf member functions
 
 // various tests for filebuf::open() and filebuf::close() including
 // the non-portable functionality in the libstdc++-v3 IO library
@@ -39,7 +38,6 @@ 
 // this bug/situation. 
 
 const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
-const char name_02[] = "filebuf_virtuals-2.txt"; // empty file, need to create
 
 void test_02()
 {
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc
index ff0b9a5fb7e..cd7550f5677 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc
@@ -17,13 +17,12 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.3 filebuf member functions
 
 #include <fstream>
 #include <testsuite_hooks.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 // NB: This test assumes that _M_buf_size == 40, and not the usual
 // buffer_size length of BUFSIZ (8192), so that overflow/underflow can be
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc
index 0e0949d79e9..931da865247 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc
@@ -18,10 +18,9 @@ 
 // <http://www.gnu.org/licenses/>.
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
-// 27.8.1.3 filebuf member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.3 filebuf member functions
 
 // Test that upon filebuf::close() 27.8.1.1,3 is enforced.
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc
index 6402c77b44a..29804fb5014 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc
@@ -17,11 +17,11 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.3 filebuf member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.3 filebuf member functions
 
-// Test that upon filebuf::close() 27.8.1.1,3 is enforced.
+// { dg-additional-files "filebuf_virtuals-1.txt" }
+
+// Test that upon filebuf::close() 27.8.1.1 p3 is enforced.
 
 #include <fstream>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc
index 505293021ea..40b15317d69 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc
@@ -17,16 +17,14 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 // NB: This test assumes that _M_buf_size == 40, and not the usual
 // buffer_size length of BUFSIZ (8192), so that overflow/underflow can be
 // simulated a bit more readily.
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/is_open/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/is_open/char/1.cc
index 54fb0094567..d8e23e534f6 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/is_open/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/is_open/char/1.cc
@@ -15,14 +15,13 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.3 filebuf member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.3 filebuf member functions
 
 // various tests for filebuf::open() and filebuf::close() including
 // the non-portable functionality in the libstdc++-v3 IO library
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_members-1.tst filebuf_members-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc
index 7a5321bd80c..4ca94cf4879 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc
@@ -15,14 +15,13 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.3 filebuf member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.3 filebuf member functions
 
 // various tests for filebuf::open() and filebuf::close() including
 // the non-portable functionality in the libstdc++-v3 IO library
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_members-1.tst filebuf_members-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc
index 5801b2ad379..cdd06d38c35 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc
@@ -15,14 +15,13 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.3 filebuf member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.3 filebuf member functions
 
 // various tests for filebuf::open() and filebuf::close() including
 // the non-portable functionality in the libstdc++-v3 IO library
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <unistd.h>
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc
index 0f419c1df6d..b3733cc6916 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc
index eceae02f5b3..439f8de29c6 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 const char name_03[] = "tmp_sbumpc_1io.tst"; // empty file, need to create
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc
index 8c4230c7091..d5b60e488b0 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc
index b8a152ad82a..b265cd55db4 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 const char name_03[] = "tmp_sbumpc_2io.tst"; // empty file, need to create
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc
index c8584c2f18b..47d1b897963 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "seekoff.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "seekoff.txt";
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc
index f78612cae88..7220b22c24c 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "seekoff-1out.tst" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "seekoff-1out.tst";
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc
index 7c3784f84dd..d69f2907773 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "seekoff.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "seekoff.txt";
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc
index c4b0d4b72bc..e07b2097916 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "seekoff-2out.tst" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "seekoff-2out.tst";
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc
index 88c6c7eee87..4e7d98716c1 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "seekpos.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "seekpos.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc
index a6cfbfc3e6e..7c0486ef8ca 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "seekpos-1out.tst" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "seekpos-1out.tst"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc
index 05eed15af24..3f80ec92079 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "seekpos.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "seekpos.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc
index c1d7bf754ce..d0b34c23a4c 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "seekpos-2out.tst" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "seekpos-2out.tst"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc
index 1e6dfd2bda3..27b8c5cc2e4 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
 
 // Test overloaded virtual functions.
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc
index 8f1f36c15cb..f9d68f6be0a 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 const char name_03[] = "tmp_sgetc_1io.tst"; // empty file, need to create
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc
index aca1593d5b5..955af5b6848 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 
 // Test overloaded virtual functions.
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc
index b233df872d0..4fea4585ba7 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 const char name_03[] = "tmp_sgetc_2io.tst"; // empty file, need to create
 
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 9791706a99f..2af5cb4493c 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
@@ -21,18 +21,16 @@ 
 // causes "in_avail" to return an incorrect value.
 // { dg-do run { xfail arm*-*-elf arm*-*-eabi } }
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
 // { dg-require-binary-io "" }
+// { dg-additional-files "sgetn.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetn.txt"; // file with data in it
 
 // Test overloaded virtual functions.
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 506d0676bd5..6ad69300323 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
@@ -21,18 +21,16 @@ 
 // causes "in_avail" to return an incorrect value.
 // { dg-do run { xfail arm*-*-elf arm*-*-eabi } }
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
 // { dg-require-binary-io "" }
+// { dg-additional-files "sgetn.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetn.txt"; // file with data in it
 const char name_03[] = "tmp_sgetn_1io.tst"; // empty file, need to create
 
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 1b16f5d0b49..57074832062 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
@@ -21,18 +21,16 @@ 
 // causes "in_avail" to return an incorrect value.
 // { dg-do run { xfail arm*-*-elf arm*-*-eabi } }
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
 // { dg-require-binary-io "" }
+// { dg-additional-files "sgetn.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetn.txt"; // file with data in it
 
 // Test overloaded virtual functions.
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 c185a4adb1e..c3112f718a8 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
@@ -21,18 +21,16 @@ 
 // causes "in_avail" to return an incorrect value.
 // { dg-do run { xfail arm*-*-elf arm*-*-eabi } }
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
 // { dg-require-binary-io "" }
+// { dg-additional-files "sgetn.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetn.txt"; // file with data in it
 const char name_03[] = "tmp_sgetn_2io.tst"; // empty file, need to create
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc
index e79972af7b2..0e5078c5a13 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 const char name_02[] = "tmp_snextc_1out.tst"; // empty file, need to create
 const char name_03[] = "tmp_snextc_1io.tst"; // empty file, need to create
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc
index a02aef40ccf..974c661c4ab 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 const char name_02[] = "tmp_snextc_1out.tst"; // empty file, need to create
 const char name_03[] = "tmp_snextc_1io.tst"; // empty file, need to create
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc
index b724f13c73b..a61a77b96c2 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc
@@ -17,15 +17,14 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
+
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 const char name_02[] = "tmp_snextc_1out.tst"; // empty file, need to create
 const char name_03[] = "tmp_snextc_1io.tst"; // empty file, need to create
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc
index fa681efc83e..b2c754e5de3 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc
index c264412c103..0f62d465d4c 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 const char name_03[] = "tmp_snextc_2io.tst"; // empty file, need to create
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc
index c9e54caba81..642ed9e52f5 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 
 // Test overloaded virtual functions.
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc
index 684685dde74..1e4325e79b7 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 
 // Test overloaded virtual functions.
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc
index bbd25a5e85e..e76064dd592 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc
@@ -17,15 +17,14 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
+
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc
index 7505076f97c..c0d423bf063 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc
@@ -17,15 +17,14 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
+
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc
index 3125d52b42c..f182064ca19 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc
@@ -17,17 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
 const char name_03[] = "tmp_sputc_2io.tst";
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc
index dd951b040b4..fb9b181ad6c 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc
@@ -17,15 +17,14 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
+
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc
index c01aed97664..125cde14fdb 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc
@@ -17,18 +17,15 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
-const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
 const char name_03[] = "tmp_sputn_1io.tst"; // empty file, need to create
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc
index 6a008646fb3..da96056c2ce 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc
@@ -17,15 +17,14 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.4 Overridden virtual functions
+// C++98 27.8.1.4 Overridden virtual functions
+
+// { dg-additional-files "filebuf_virtuals-1.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
 
 void test05() 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc
index ff2f0fd742f..12bd7da3282 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc
@@ -25,8 +25,7 @@ 
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
+// { dg-additional-files "sgetc.txt" }
 
 const char name_01[] = "sgetc.txt"; // file with data in it
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc
index af3ad03ef8a..9f34255b8ad 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc
@@ -20,14 +20,12 @@ 
 // 27.8.1.4 Overridden virtual functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "sgetc.txt" }
 
 #include <fstream>
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
 const char name_01[] = "sgetc.txt"; // file with data in it
 
 // Test overloaded virtual functions.
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc
index 2611caf54f9..f2658aed886 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc
@@ -15,11 +15,10 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.7 ifstream member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.7 ifstream member functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "ifstream_members-1.tst" }
 
 #include <istream>
 #include <fstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
index dcd16eddf60..c22de5305a7 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
@@ -15,11 +15,10 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.7 ifstream member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.7 ifstream member functions
 
 // { dg-require-fileio "" }
+// { dg-additional-files "ifstream_members-1.tst" }
 
 #include <istream>
 #include <fstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc
index fac3275da67..3623da66dc2 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc
@@ -15,17 +15,12 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.7 ifstream member functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.8.1.7 ifstream member functions
 
 #include <istream>
 #include <fstream>
 #include <testsuite_hooks.h>
 
-const char name_01[] = "ifstream_members-1.tst";
-const char name_02[] = "ifstream_members-1.txt";
-
 void 
 redirect_buffer(std::ios& stream, std::streambuf* new_buf) 
 { stream.rdbuf(new_buf); }
@@ -37,10 +32,6 @@  active_buffer(std::ios& stream)
 // libstdc++/2832
 void test03()
 {
-  const char* strlit01 = "fuck war";
-  const std::string str00;
-  const std::string str01(strlit01);
-  std::string str02;
   std::filebuf fbuf;
   std::streambuf* pbasebuf0 = &fbuf;
 
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 09cfc3aad0f..f18f60fa472 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
@@ -21,12 +21,11 @@ 
 // causes "in_avail" to return an incorrect value.
 // { dg-do run { xfail arm*-*-elf arm*-*-eabi } }
 
-// 27.6.1.3 unformatted input functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.6.1.3 unformatted input functions
 
 // { dg-require-fileio "" }
 // { dg-require-binary-io "" }
+// { dg-additional-files "istream_unformatted-1.tst" }
 
 #include <istream>
 #include <fstream>
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 d19cb211f4e..3acd5fe7b1b 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
@@ -21,10 +21,9 @@ 
 
 // { dg-require-binary-io "" }
 // { dg-require-fileio "" }
+// { dg-additional-files "wistream_unformatted-1.tst" }
 
-// 27.6.1.3 unformatted input functions
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
+// C++98 27.6.1.3 unformatted input functions
 
 #include <istream>
 #include <fstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc b/libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc
index 1f9967405d8..72379664e33 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc
@@ -17,12 +17,11 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.6.1.3 unformatted input functions
+// C++98 27.6.1.3 unformatted input functions
 // NB: ostream has a particular "seeks" category. Adopt this for istreams too.
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
 
 // { dg-require-fileio "" }
+// { dg-additional-files "istream_seeks-1.tst" }
 
 #include <istream>
 #include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc b/libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc
index da2e27e72a0..30a8a905b6e 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc
@@ -17,12 +17,11 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.6.1.3 unformatted input functions
+// C++98 27.6.1.3 unformatted input functions
 // NB: ostream has a particular "seeks" category. Adopt this for istreams too.
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
 
 // { dg-require-fileio "" }
+// { dg-additional-files "wistream_seeks-1.tst" }
 
 #include <istream>
 #include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc
index e956ecf4e4a..3ab92f9760e 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc
@@ -17,12 +17,11 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.6.1.3 unformatted input functions
+// C++98 27.6.1.3 unformatted input functions
 // NB: ostream has a particular "seeks" category. Adopt this for istreams too.
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
 
 // { dg-require-fileio "" }
+// { dg-additional-files "istream_seeks-1.tst" }
 
 #include <istream>
 #include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc b/libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc
index a45d0b59fb8..6da59d0d1a1 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc
@@ -17,12 +17,11 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.6.1.3 unformatted input functions
+// C++98 27.6.1.3 unformatted input functions
 // NB: ostream has a particular "seeks" category. Adopt this for istreams too.
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
 
 // { dg-require-fileio "" }
+// { dg-additional-files "istream_seeks-1.tst" }
 
 #include <istream>
 #include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc
index e2f076a03d1..20b425cbbe0 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc
@@ -16,11 +16,10 @@ 
 // <http://www.gnu.org/licenses/>.
 
 // { dg-require-fileio "" }
+// { dg-additional-files "wistream_seeks-1.tst" }
 
-// 27.6.1.3 unformatted input functions
+// C++98 27.6.1.3 unformatted input functions
 // NB: ostream has a particular "seeks" category. Adopt this for istreams too.
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
 
 #include <istream>
 #include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc b/libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc
index b5d005c5342..9118e683c35 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc
@@ -15,12 +15,11 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.6.1.3 unformatted input functions
+// C++98 27.6.1.3 unformatted input functions
 // NB: ostream has a particular "seeks" category. Adopt this for istreams too.
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %-*.txt
 
 // { dg-require-fileio "" }
+// { dg-additional-files "wistream_seeks-1.tst" }
 
 #include <istream>
 #include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
index b24ffe210ce..45227107cbd 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
@@ -15,8 +15,9 @@ 
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// 27.8.1.10 ofstream member functions
-// @require@ %-*.tst
+// C++98 27.8.1.10 ofstream member functions
+
+// { dg-additional-files "ofstream_members-1.tst" }
 // @diff@ %-*.tst %-*.txt
 
 // { dg-require-fileio "" }
diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
index 0d77fb029b0..1d3160409f5 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -405,5 +405,5 @@  set v3_additional_files ""
 # Process a { dg-additional-files "filelist" } directive in the test.
 proc dg-additional-files { line filelist } {
     global v3_additional_files
-    set v3_additional_files $filelist
+    append v3_additional_files " " $filelist
 }
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 67a63f5b5f3..8efc6f7f089 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -648,6 +648,7 @@  proc v3_target_compile { source dest type options } {
 	global srcdir
 	v3-copy-file "$srcdir/data/$file" $file
     }
+    set v3_additional_files {}
 
     set comp_output [target_compile $source $dest $type $options]
     if { $type == "executable" && $file_to_delete != "" } {