This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch, libgfortran] PR39667, unnecessary truncations


Hi,

the attached patch enables the REWIND statement to work without
truncating the file. Testcases in gfortran.dg that no longer require the
target to support file truncation are fixed. Also attached is a script
that can be used to find testcases the require truncation support.

Regtested on i686-pc-linux-gnu, Ok for trunk?


-- 
Janne Blomqvist
testsuite:

2009-04-19  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/39667
	* gfortran.dg/advance_1.f90: Don't require target fd_truncate.
	* gfortran.dg/advance_4.f90: Likewise
	* gfortran.dg/advance_5.f90: Likewise
	* gfortran.dg/append_1.f90: Likewise
	* gfortran.dg/backslash_1.f90: Likewise
	* gfortran.dg/backslash_2.f90: Likewise
	* gfortran.dg/backslash_3.f: Likewise
	* gfortran.dg/backspace_10.f90: Likewise
	* gfortran.dg/backspace_3.f: Likewise
	* gfortran.dg/backspace_4.f: Likewise
	* gfortran.dg/backspace_5.f: Likewise
	* gfortran.dg/backspace_8.f: Likewise
	* gfortran.dg/backspace_9.f: Likewise
	* gfortran.dg/complex_write.f90: Likewise
	* gfortran.dg/convert_implied_open.f90: Likewise
	* gfortran.dg/dollar_edit_descriptor_1.f: Likewise
	* gfortran.dg/dos_eol.f: Likewise
	* gfortran.dg/empty_format_1.f90: Likewise
	* gfortran.dg/endfile.f: Likewise
	* gfortran.dg/eof_1.f90: Likewise
	* gfortran.dg/eor_1.f90: Likewise
	* gfortran.dg/eor_handling_1.f90: Likewise
	* gfortran.dg/eor_handling_2.f90: Likewise
	* gfortran.dg/eor_handling_3.f90: Likewise
	* gfortran.dg/eor_handling_4.f90: Likewise
	* gfortran.dg/eor_handling_5.f90: Likewise
	* gfortran.dg/error_recovery_5.f90: Likewise
	* gfortran.dg/f2003_inquire_1.f03: Likewise
	* gfortran.dg/f2003_io_4.f03: Likewise
	* gfortran.dg/f2003_io_5.f03: Likewise
	* gfortran.dg/f2003_io_7.f03: Likewise
	* gfortran.dg/fgetc_1.f90: Likewise
	* gfortran.dg/fgetc_2.f90: Likewise
	* gfortran.dg/flush_1.f90: Likewise
	* gfortran.dg/fmt_exhaust.f90: Likewise
	* gfortran.dg/fmt_huge.f90: Likewise
	* gfortran.dg/fmt_read.f90: Likewise
	* gfortran.dg/fmt_t_1.f90: Likewise
	* gfortran.dg/fmt_t_2.f90: Likewise
	* gfortran.dg/fmt_t_3.f90: Likewise
	* gfortran.dg/fmt_t_4.f90: Likewise
	* gfortran.dg/fmt_t_5.f90: Likewise
	* gfortran.dg/fmt_t_7.f: Likewise
	* gfortran.dg/fseek.f90: Likewise
	* gfortran.dg/ftell_1.f90: Likewise
	* gfortran.dg/ftell_2.f90: Likewise
	* gfortran.dg/func_derived_3.f90: Likewise
	* gfortran.dg/inquire_9.f90: Likewise
	* gfortran.dg/iostat_1.f90: Likewise
	* gfortran.dg/iostat_2.f90: Likewise
	* gfortran.dg/list_read_1.f90: Likewise
	* gfortran.dg/list_read_4.f90: Likewise
	* gfortran.dg/list_read_5.f90: Likewise
	* gfortran.dg/list_read_7.f90: Likewise
	* gfortran.dg/list_read_8.f90: Likewise
	* gfortran.dg/list_read_9.f90: Likewise
	* gfortran.dg/namelist_13.f90: Likewise
	* gfortran.dg/namelist_14.f90: Likewise
	* gfortran.dg/namelist_15.f90: Likewise
	* gfortran.dg/namelist_16.f90: Likewise
	* gfortran.dg/namelist_17.f90: Likewise
	* gfortran.dg/namelist_18.f90: Likewise
	* gfortran.dg/namelist_19.f90: Likewise
	* gfortran.dg/namelist_20.f90: Likewise
	* gfortran.dg/namelist_24.f90: Likewise
	* gfortran.dg/namelist_26.f90: Likewise
	* gfortran.dg/namelist_27.f90: Likewise
	* gfortran.dg/namelist_28.f90: Likewise
	* gfortran.dg/namelist_37.f90: Likewise
	* gfortran.dg/namelist_38.f90: Likewise
	* gfortran.dg/namelist_39.f90: Likewise
	* gfortran.dg/namelist_40.f90: Likewise
	* gfortran.dg/namelist_43.f90: Likewise
	* gfortran.dg/namelist_44.f90: Likewise
	* gfortran.dg/namelist_45.f90: Likewise
	* gfortran.dg/namelist_46.f90: Likewise
	* gfortran.dg/namelist_47.f90: Likewise
	* gfortran.dg/namelist_48.f90: Likewise
	* gfortran.dg/namelist_49.f90: Likewise
	* gfortran.dg/namelist_50.f90: Likewise
	* gfortran.dg/namelist_51.f90: Likewise
	* gfortran.dg/namelist_52.f90: Likewise
	* gfortran.dg/namelist_56.f90: Likewise
	* gfortran.dg/namelist_char_only.f90: Likewise
	* gfortran.dg/namelist_use.f90: Likewise
	* gfortran.dg/namelist_use_only.f90: Likewise
	* gfortran.dg/noadv_size.f90: Likewise
	* gfortran.dg/open_access_append_1.f90: Likewise
	* gfortran.dg/pad_no.f90: Likewise
	* gfortran.dg/pr12884.f: Likewise
	* gfortran.dg/pr17090.f90: Likewise
	* gfortran.dg/pr17285.f90: Likewise
	* gfortran.dg/pr17286.f90: Likewise
	* gfortran.dg/pr18122.f90: Likewise
	* gfortran.dg/pr18210.f90: Likewise
	* gfortran.dg/pr18392.f90: Likewise
	* gfortran.dg/pr19155.f: Likewise
	* gfortran.dg/pr19216.f: Likewise
	* gfortran.dg/pr19467.f90: Likewise
	* gfortran.dg/pr19657.f: Likewise
	* gfortran.dg/pr20257.f90: Likewise
	* gfortran.dg/read_bad_advance.f90: Likewise
	* gfortran.dg/read_eof_2.f90: Likewise
	* gfortran.dg/read_eof_4.f90: Likewise
	* gfortran.dg/read_many_1.f: Likewise
	* gfortran.dg/read_noadvance.f90: Likewise
	* gfortran.dg/read_repeat.f90: Likewise
	* gfortran.dg/read_size_noadvance.f90: Likewise
	* gfortran.dg/read_x_past.f: Likewise
	* gfortran.dg/record_marker_1.f90: Likewise
	* gfortran.dg/record_marker_3.f90: Likewise
	* gfortran.dg/rewind_1.f90: Likewise
	* gfortran.dg/runtime_warning_1.f90: Likewise
	* gfortran.dg/shape_3.f90: Likewise
	* gfortran.dg/slash_1.f90: Likewise
	* gfortran.dg/stat_1.f90: Likewise
	* gfortran.dg/stat_2.f90: Likewise
	* gfortran.dg/streamio_11.f90: Likewise
	* gfortran.dg/streamio_3.f90: Likewise
	* gfortran.dg/streamio_4.f90: Likewise
	* gfortran.dg/streamio_9.f90: Likewise
	* gfortran.dg/tl_editing.f90: Likewise
	* gfortran.dg/unf_io_convert_1.f90: Likewise
	* gfortran.dg/unf_io_convert_2.f90: Likewise
	* gfortran.dg/unf_read_corrupted_2.f90: Likewise
	* gfortran.dg/unf_short_record_1.f90: Likewise
	* gfortran.dg/utf8_1.f03: Likewise
	* gfortran.dg/utf8_2.f03: Likewise
	* gfortran.dg/widechar_IO_1.f90: Likewise
	* gfortran.dg/write_check3.f90: Likewise
	* gfortran.dg/write_rewind_2.f: Likewise
	* gfortran.dg/x_slash_2.f: Likewise
	
libgfortran:

2009-04-19  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/39667
	* io/file_pos.c (st_rewind): Don't truncate or flush.
	* io/intrinsics.c (fgetc): Flush if switching mode.
	(fputc): Likewise.
diff --git a/gcc/testsuite/gfortran.dg/advance_1.f90 b/gcc/testsuite/gfortran.dg/advance_1.f90
index 7e55e94..9002c52 100644
--- a/gcc/testsuite/gfortran.dg/advance_1.f90
+++ b/gcc/testsuite/gfortran.dg/advance_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR25463 Check that advance='no' works correctly.
 ! Derived from example given in PR by Thomas Koenig
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
diff --git a/gcc/testsuite/gfortran.dg/advance_4.f90 b/gcc/testsuite/gfortran.dg/advance_4.f90
index 633f90a..3676558 100644
--- a/gcc/testsuite/gfortran.dg/advance_4.f90
+++ b/gcc/testsuite/gfortran.dg/advance_4.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR31207 Last record truncated for read after short write
 program main
   character(10) :: answer
diff --git a/gcc/testsuite/gfortran.dg/advance_5.f90 b/gcc/testsuite/gfortran.dg/advance_5.f90
index f906c72..3a48e53 100644
--- a/gcc/testsuite/gfortran.dg/advance_5.f90
+++ b/gcc/testsuite/gfortran.dg/advance_5.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR31207 Last record truncated for read after short write.
 character(len=20) :: b
 ! write something no advance
diff --git a/gcc/testsuite/gfortran.dg/append_1.f90 b/gcc/testsuite/gfortran.dg/append_1.f90
index e058914..8b81bc3 100644
--- a/gcc/testsuite/gfortran.dg/append_1.f90
+++ b/gcc/testsuite/gfortran.dg/append_1.f90
@@ -1,7 +1,7 @@
 ! PR libfortran/21471
 ! Testing POSITION="APPEND"
 !
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
       subroutine failed
         close (10,status='delete')
         call abort
diff --git a/gcc/testsuite/gfortran.dg/backslash_1.f90 b/gcc/testsuite/gfortran.dg/backslash_1.f90
index ab7fc6f..b985134 100644
--- a/gcc/testsuite/gfortran.dg/backslash_1.f90
+++ b/gcc/testsuite/gfortran.dg/backslash_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
       character(len=4) a
       open (10, status='scratch')
       write (10,'(A)') '1\n2'
diff --git a/gcc/testsuite/gfortran.dg/backslash_2.f90 b/gcc/testsuite/gfortran.dg/backslash_2.f90
index dc4714f..2f954d5 100644
--- a/gcc/testsuite/gfortran.dg/backslash_2.f90
+++ b/gcc/testsuite/gfortran.dg/backslash_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-fbackslash" }
       integer :: i, e
       open (10, status='scratch')
diff --git a/gcc/testsuite/gfortran.dg/backslash_3.f b/gcc/testsuite/gfortran.dg/backslash_3.f
index 8625b37..905d2b4 100644
--- a/gcc/testsuite/gfortran.dg/backslash_3.f
+++ b/gcc/testsuite/gfortran.dg/backslash_3.f
@@ -1,4 +1,4 @@
-C { dg-do run { target fd_truncate } }
+C { dg-do run }
 C { dg-options "-fbackslash" }
 C PR fortran/30278
       program a
diff --git a/gcc/testsuite/gfortran.dg/backspace_10.f90 b/gcc/testsuite/gfortran.dg/backspace_10.f90
index 368a759..574d464 100644
--- a/gcc/testsuite/gfortran.dg/backspace_10.f90
+++ b/gcc/testsuite/gfortran.dg/backspace_10.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR33307 I/O read/positioning problem - in BACKSPACE
 ! Test case devloped from test in PR by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program gfcbug69b
diff --git a/gcc/testsuite/gfortran.dg/backspace_3.f b/gcc/testsuite/gfortran.dg/backspace_3.f
index 2006cd4..419063b 100644
--- a/gcc/testsuite/gfortran.dg/backspace_3.f
+++ b/gcc/testsuite/gfortran.dg/backspace_3.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR25598 Error on repeated backspaces.
 ! Derived from example given in PR by Dale Ranta
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
diff --git a/gcc/testsuite/gfortran.dg/backspace_4.f b/gcc/testsuite/gfortran.dg/backspace_4.f
index 6891c3c..69e0f40 100644
--- a/gcc/testsuite/gfortran.dg/backspace_4.f
+++ b/gcc/testsuite/gfortran.dg/backspace_4.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR25598 Error on repeated backspaces.
 ! Derived from example given in PR by Dale Ranta
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
diff --git a/gcc/testsuite/gfortran.dg/backspace_5.f b/gcc/testsuite/gfortran.dg/backspace_5.f
index 8ae3752..4cd657a 100644
--- a/gcc/testsuite/gfortran.dg/backspace_5.f
+++ b/gcc/testsuite/gfortran.dg/backspace_5.f
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! PR26464 File I/O error related to buffering and BACKSPACE
 ! Test case derived from case by Dale Ranta.
 ! Submitted  by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
diff --git a/gcc/testsuite/gfortran.dg/backspace_8.f b/gcc/testsuite/gfortran.dg/backspace_8.f
index c25dd5b..8c8c96a 100644
--- a/gcc/testsuite/gfortran.dg/backspace_8.f
+++ b/gcc/testsuite/gfortran.dg/backspace_8.f
@@ -1,4 +1,4 @@
-C { dg-do run { target fd_truncate } }
+C { dg-do run }
 C PR libfortran/31618 - backspace after an error didn't work.
       program main
       character*78 msg
diff --git a/gcc/testsuite/gfortran.dg/backspace_9.f b/gcc/testsuite/gfortran.dg/backspace_9.f
index 01713b9..fe62ea5 100644
--- a/gcc/testsuite/gfortran.dg/backspace_9.f
+++ b/gcc/testsuite/gfortran.dg/backspace_9.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR32235 incorrectly position text file after backspace
 ! Test case from PR, prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
       program main
diff --git a/gcc/testsuite/gfortran.dg/complex_write.f90 b/gcc/testsuite/gfortran.dg/complex_write.f90
index 763f3ab..694c069 100644
--- a/gcc/testsuite/gfortran.dg/complex_write.f90
+++ b/gcc/testsuite/gfortran.dg/complex_write.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr 19071
 ! test case provided by
 !   Thomas.Koenig@online.de
diff --git a/gcc/testsuite/gfortran.dg/convert_implied_open.f90 b/gcc/testsuite/gfortran.dg/convert_implied_open.f90
index 1f0abf3..9c25b5d 100644
--- a/gcc/testsuite/gfortran.dg/convert_implied_open.f90
+++ b/gcc/testsuite/gfortran.dg/convert_implied_open.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-fconvert=swap" }
 ! PR 26735 - implied open didn't use to honor -fconvert
 program main
diff --git a/gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f b/gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f
index 93e5033..af22c45 100644
--- a/gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f
+++ b/gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-w" }
 ! PR libfortran/20006
       character*5 c
diff --git a/gcc/testsuite/gfortran.dg/dos_eol.f b/gcc/testsuite/gfortran.dg/dos_eol.f
index 77f36a5..3a22a14 100644
--- a/gcc/testsuite/gfortran.dg/dos_eol.f
+++ b/gcc/testsuite/gfortran.dg/dos_eol.f
@@ -1,5 +1,5 @@
 ! PR libfortran/19678 and PR libfortran/19679
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
       integer i, j
       
       open (10,status='scratch')
diff --git a/gcc/testsuite/gfortran.dg/empty_format_1.f90 b/gcc/testsuite/gfortran.dg/empty_format_1.f90
index e49ea4a..79a2d0c 100644
--- a/gcc/testsuite/gfortran.dg/empty_format_1.f90
+++ b/gcc/testsuite/gfortran.dg/empty_format_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 17709
 ! We weren't resetting the internal EOR flag correctly, so the second read
 ! wasn't advancing to the next line.
diff --git a/gcc/testsuite/gfortran.dg/endfile.f b/gcc/testsuite/gfortran.dg/endfile.f
index 61b43b8..6ece545 100644
--- a/gcc/testsuite/gfortran.dg/endfile.f
+++ b/gcc/testsuite/gfortran.dg/endfile.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR25550 file data corrupted after reading end of file.
 ! Derived from example given in PR from Dale Ranta.
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
diff --git a/gcc/testsuite/gfortran.dg/eof_1.f90 b/gcc/testsuite/gfortran.dg/eof_1.f90
index 09bf923..05726bd 100644
--- a/gcc/testsuite/gfortran.dg/eof_1.f90
+++ b/gcc/testsuite/gfortran.dg/eof_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Program to test for proper EOF errors when reading past the end of a file.
 ! We used to get this wrong when a formatted read followed a list formatted
 ! read.
diff --git a/gcc/testsuite/gfortran.dg/eor_1.f90 b/gcc/testsuite/gfortran.dg/eor_1.f90
index fecbe92..dd3b5e9 100644
--- a/gcc/testsuite/gfortran.dg/eor_1.f90
+++ b/gcc/testsuite/gfortran.dg/eor_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 19451: The test for advance='NO' with eor used to be reversed.
 program main
   character*2 c
diff --git a/gcc/testsuite/gfortran.dg/eor_handling_1.f90 b/gcc/testsuite/gfortran.dg/eor_handling_1.f90
index 20b1998..241f8a0 100644
--- a/gcc/testsuite/gfortran.dg/eor_handling_1.f90
+++ b/gcc/testsuite/gfortran.dg/eor_handling_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 17992:  Reading an empty file should yield zero with pad='YES'
 ! (which is the default).
 ! Test case supplied by milan@cmm.ki.si.
diff --git a/gcc/testsuite/gfortran.dg/eor_handling_2.f90 b/gcc/testsuite/gfortran.dg/eor_handling_2.f90
index ece547b..9ae5638 100644
--- a/gcc/testsuite/gfortran.dg/eor_handling_2.f90
+++ b/gcc/testsuite/gfortran.dg/eor_handling_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 19568:  Don't read across end of line when the format is longer
 !            than the line length and pad='yes' (default)
 program main
diff --git a/gcc/testsuite/gfortran.dg/eor_handling_3.f90 b/gcc/testsuite/gfortran.dg/eor_handling_3.f90
index 7ba5c4b..4225e86 100644
--- a/gcc/testsuite/gfortran.dg/eor_handling_3.f90
+++ b/gcc/testsuite/gfortran.dg/eor_handling_3.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 19595:  Handle end-of-record condition with pad=yes (default)
 program main
   integer i1, i2
diff --git a/gcc/testsuite/gfortran.dg/eor_handling_4.f90 b/gcc/testsuite/gfortran.dg/eor_handling_4.f90
index ce9fe5e..300c10b 100644
--- a/gcc/testsuite/gfortran.dg/eor_handling_4.f90
+++ b/gcc/testsuite/gfortran.dg/eor_handling_4.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 20092, 20131:  Handle end-of-record condition with pad=yes (default)
 ! for standard input.  This test case only really tests  anything if,
 ! by changing unit 5, you get to manipulate the standard input.
diff --git a/gcc/testsuite/gfortran.dg/eor_handling_5.f90 b/gcc/testsuite/gfortran.dg/eor_handling_5.f90
index 661d67c..c116fb7 100644
--- a/gcc/testsuite/gfortran.dg/eor_handling_5.f90
+++ b/gcc/testsuite/gfortran.dg/eor_handling_5.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 20661: Handle non-advancing I/O with iostat
 ! Test case by Walt Brainerd, The Fortran Company
 
diff --git a/gcc/testsuite/gfortran.dg/error_recovery_5.f90 b/gcc/testsuite/gfortran.dg/error_recovery_5.f90
index 9cb696c..88acf93 100644
--- a/gcc/testsuite/gfortran.dg/error_recovery_5.f90
+++ b/gcc/testsuite/gfortran.dg/error_recovery_5.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR34411 hang-up during read of non-expected input
 ! Test case derived from that given in PR
 ! Prior to patch, the do loop was infinite, limits set in this one
diff --git a/gcc/testsuite/gfortran.dg/f2003_inquire_1.f03 b/gcc/testsuite/gfortran.dg/f2003_inquire_1.f03
index 5f3a961..544a810 100644
--- a/gcc/testsuite/gfortran.dg/f2003_inquire_1.f03
+++ b/gcc/testsuite/gfortran.dg/f2003_inquire_1.f03
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-std=gnu" }
 character(25) :: sround, ssign, sasynchronous, sdecimal, sencoding
 integer :: vsize, vid
diff --git a/gcc/testsuite/gfortran.dg/f2003_io_4.f03 b/gcc/testsuite/gfortran.dg/f2003_io_4.f03
index 92c708c..d253a81 100644
--- a/gcc/testsuite/gfortran.dg/f2003_io_4.f03
+++ b/gcc/testsuite/gfortran.dg/f2003_io_4.f03
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 ! Test of decimal= feature
 
diff --git a/gcc/testsuite/gfortran.dg/f2003_io_5.f03 b/gcc/testsuite/gfortran.dg/f2003_io_5.f03
index 3949b1a..b816ded 100644
--- a/gcc/testsuite/gfortran.dg/f2003_io_5.f03
+++ b/gcc/testsuite/gfortran.dg/f2003_io_5.f03
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 ! Test of decimal="comma" in namelist and complex
 integer :: i
diff --git a/gcc/testsuite/gfortran.dg/f2003_io_7.f03 b/gcc/testsuite/gfortran.dg/f2003_io_7.f03
index f457417..6d2c11d 100644
--- a/gcc/testsuite/gfortran.dg/f2003_io_7.f03
+++ b/gcc/testsuite/gfortran.dg/f2003_io_7.f03
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 ! Test of sign=, decimal=, and blank= .
 program iotests
diff --git a/gcc/testsuite/gfortran.dg/fgetc_1.f90 b/gcc/testsuite/gfortran.dg/fgetc_1.f90
index 6277f3c..966e15a 100644
--- a/gcc/testsuite/gfortran.dg/fgetc_1.f90
+++ b/gcc/testsuite/gfortran.dg/fgetc_1.f90
@@ -1,5 +1,5 @@
 ! Testcase for the FGETC and FPUTC intrinsics
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
   character(len=5) s
   integer st
 
diff --git a/gcc/testsuite/gfortran.dg/fgetc_2.f90 b/gcc/testsuite/gfortran.dg/fgetc_2.f90
index 9c1a5da..6dd12c4 100644
--- a/gcc/testsuite/gfortran.dg/fgetc_2.f90
+++ b/gcc/testsuite/gfortran.dg/fgetc_2.f90
@@ -1,5 +1,5 @@
 ! Testcase for the FGETC and FPUTC intrinsics
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
   character(len=5) s
   integer st
 
diff --git a/gcc/testsuite/gfortran.dg/flush_1.f90 b/gcc/testsuite/gfortran.dg/flush_1.f90
index e35955a..90875dc 100644
--- a/gcc/testsuite/gfortran.dg/flush_1.f90
+++ b/gcc/testsuite/gfortran.dg/flush_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 22390 Implement flush statement
 program flush_1
 
diff --git a/gcc/testsuite/gfortran.dg/fmt_exhaust.f90 b/gcc/testsuite/gfortran.dg/fmt_exhaust.f90
index bea3f80..5db3405 100644
--- a/gcc/testsuite/gfortran.dg/fmt_exhaust.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_exhaust.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR27304 Test running out of data descriptors with data remaining.
 ! Derived from case in PR.  Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
       program test
diff --git a/gcc/testsuite/gfortran.dg/fmt_huge.f90 b/gcc/testsuite/gfortran.dg/fmt_huge.f90
index f7b243c..43c4e2a 100644
--- a/gcc/testsuite/gfortran.dg/fmt_huge.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_huge.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR32446 printing big numbers in F0.1 format.
 ! This segfaulted before the patch.
       open (10, status="scratch")
diff --git a/gcc/testsuite/gfortran.dg/fmt_read.f90 b/gcc/testsuite/gfortran.dg/fmt_read.f90
index 779ebae..3b33946 100644
--- a/gcc/testsuite/gfortran.dg/fmt_read.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_read.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr18398, missing data on sequential formatted reads
 ! test contributed by Thomas.Koenig@online.de
       open(7,status='scratch')
diff --git a/gcc/testsuite/gfortran.dg/fmt_t_1.f90 b/gcc/testsuite/gfortran.dg/fmt_t_1.f90
index a456265..157ba13 100644
--- a/gcc/testsuite/gfortran.dg/fmt_t_1.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_t_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
       integer nrow, vec(15)
       open (10, status="scratch")
       write (10, fmt='(a)') '001    1 2 3 4 5 6'
diff --git a/gcc/testsuite/gfortran.dg/fmt_t_2.f90 b/gcc/testsuite/gfortran.dg/fmt_t_2.f90
index 6fe8c38..c2b8694 100644
--- a/gcc/testsuite/gfortran.dg/fmt_t_2.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_t_2.f90
@@ -1,5 +1,5 @@
 ! { dg-options "" }
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr24699, handle end-of-record on READ with T format
 ! test contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
       character*132 :: foost1, foost2, foost3
diff --git a/gcc/testsuite/gfortran.dg/fmt_t_3.f90 b/gcc/testsuite/gfortran.dg/fmt_t_3.f90
index c7bf8e8..1ec67e1 100644
--- a/gcc/testsuite/gfortran.dg/fmt_t_3.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_t_3.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR31051 bug with x and t format descriptors.
 ! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org> from PR.
 program t
diff --git a/gcc/testsuite/gfortran.dg/fmt_t_4.f90 b/gcc/testsuite/gfortran.dg/fmt_t_4.f90
index 62b8d49..e40a4fc 100644
--- a/gcc/testsuite/gfortran.dg/fmt_t_4.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_t_4.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR31199, test case from PR report.
        program write_write
        character(len=20) :: a,b,c
diff --git a/gcc/testsuite/gfortran.dg/fmt_t_5.f90 b/gcc/testsuite/gfortran.dg/fmt_t_5.f90
index 0c27b6a..e3c6931 100644
--- a/gcc/testsuite/gfortran.dg/fmt_t_5.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_t_5.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR32678 GFortan works incorrectly when writing with FORMAT Tx
 ! Before patch, NULLs were inserted in output.
 ! Test case from reporter enhanced to detect this problem.
diff --git a/gcc/testsuite/gfortran.dg/fmt_t_7.f b/gcc/testsuite/gfortran.dg/fmt_t_7.f
index 718668f..f73baab 100644
--- a/gcc/testsuite/gfortran.dg/fmt_t_7.f
+++ b/gcc/testsuite/gfortran.dg/fmt_t_7.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR34974 null bytes when reverse-tabbing long records
 ! Test case prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org>
        program test
diff --git a/gcc/testsuite/gfortran.dg/fseek.f90 b/gcc/testsuite/gfortran.dg/fseek.f90
index 2649063..0189c40 100644
--- a/gcc/testsuite/gfortran.dg/fseek.f90
+++ b/gcc/testsuite/gfortran.dg/fseek.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 
 PROGRAM test_fseek
   INTEGER, PARAMETER :: SEEK_SET = 0, SEEK_CUR = 1, SEEK_END = 2, fd=10
diff --git a/gcc/testsuite/gfortran.dg/ftell_1.f90 b/gcc/testsuite/gfortran.dg/ftell_1.f90
index 59ea85e..4f617ac 100644
--- a/gcc/testsuite/gfortran.dg/ftell_1.f90
+++ b/gcc/testsuite/gfortran.dg/ftell_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
   integer(kind=8) o, o2
 
   open (10, status="scratch")
diff --git a/gcc/testsuite/gfortran.dg/ftell_2.f90 b/gcc/testsuite/gfortran.dg/ftell_2.f90
index d8fd348..ec7c96c 100644
--- a/gcc/testsuite/gfortran.dg/ftell_2.f90
+++ b/gcc/testsuite/gfortran.dg/ftell_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
   integer(kind=8) o
   open (10, status="scratch")
   if (ftell(10) /= 0) call abort
diff --git a/gcc/testsuite/gfortran.dg/func_derived_3.f90 b/gcc/testsuite/gfortran.dg/func_derived_3.f90
index 5eb60cf..6facf21 100644
--- a/gcc/testsuite/gfortran.dg/func_derived_3.f90
+++ b/gcc/testsuite/gfortran.dg/func_derived_3.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! This tests the "virtual fix" for PR19561, where pointers to derived
 ! types were not generating correct code.  This testcase is based on
 ! the original PR example.  This example not only tests the
diff --git a/gcc/testsuite/gfortran.dg/inquire_9.f90 b/gcc/testsuite/gfortran.dg/inquire_9.f90
index 407eddb..99cd1af 100644
--- a/gcc/testsuite/gfortran.dg/inquire_9.f90
+++ b/gcc/testsuite/gfortran.dg/inquire_9.f90
@@ -1,5 +1,5 @@
 ! PR fortran/24774
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
   logical :: l
   l = .true.
   inquire (file='inquire_9 file that should not exist', exist=l)
diff --git a/gcc/testsuite/gfortran.dg/iostat_1.f90 b/gcc/testsuite/gfortran.dg/iostat_1.f90
index 2517eb9..79bc001 100644
--- a/gcc/testsuite/gfortran.dg/iostat_1.f90
+++ b/gcc/testsuite/gfortran.dg/iostat_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 23598 - The iostat variable wasn't reset if the previous
 ! I/O library call had an error.
 program main
diff --git a/gcc/testsuite/gfortran.dg/iostat_2.f90 b/gcc/testsuite/gfortran.dg/iostat_2.f90
index f475064..afda93e 100644
--- a/gcc/testsuite/gfortran.dg/iostat_2.f90
+++ b/gcc/testsuite/gfortran.dg/iostat_2.f90
@@ -1,5 +1,5 @@
 ! PR libfortran/23784
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
   integer i
   close(10, status="whatever", iostat=i) ! { dg-warning "STATUS specifier in CLOSE statement.*has invalid value" }
   if (i == 0) call abort()
diff --git a/gcc/testsuite/gfortran.dg/list_read_1.f90 b/gcc/testsuite/gfortran.dg/list_read_1.f90
index 2a2c5d1..6fba90a 100644
--- a/gcc/testsuite/gfortran.dg/list_read_1.f90
+++ b/gcc/testsuite/gfortran.dg/list_read_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Program to test terminators in list-directed input
 program list_read_1
   character(len=5) :: s
diff --git a/gcc/testsuite/gfortran.dg/list_read_4.f90 b/gcc/testsuite/gfortran.dg/list_read_4.f90
index ba17625..fb1770e 100644
--- a/gcc/testsuite/gfortran.dg/list_read_4.f90
+++ b/gcc/testsuite/gfortran.dg/list_read_4.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Test of gfortran list directed read> check delimiters are correctly
 ! treated.  Written in f77 so that g77 will run for comparison.
 !
diff --git a/gcc/testsuite/gfortran.dg/list_read_5.f90 b/gcc/testsuite/gfortran.dg/list_read_5.f90
index 658c524..f69d1f3 100644
--- a/gcc/testsuite/gfortran.dg/list_read_5.f90
+++ b/gcc/testsuite/gfortran.dg/list_read_5.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR25307 Check handling of end-of-file conditions for list directed reads.
 ! Prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program pr25307
diff --git a/gcc/testsuite/gfortran.dg/list_read_7.f90 b/gcc/testsuite/gfortran.dg/list_read_7.f90
index f9800f2..4ee0835 100644
--- a/gcc/testsuite/gfortran.dg/list_read_7.f90
+++ b/gcc/testsuite/gfortran.dg/list_read_7.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR33400 Formatted read fails if line ends without line break
 ! Test case modified from that in PR by <jvdelisle@gcc.gnu.org>
 integer, parameter :: fgsl_strmax = 128
diff --git a/gcc/testsuite/gfortran.dg/list_read_8.f90 b/gcc/testsuite/gfortran.dg/list_read_8.f90
index 85fa857..4be75fd 100644
--- a/gcc/testsuite/gfortran.dg/list_read_8.f90
+++ b/gcc/testsuite/gfortran.dg/list_read_8.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR34676 IO error delayed
 ! Test case from PR modified by <jvdelisle@gcc.gnu.org>
 implicit none
diff --git a/gcc/testsuite/gfortran.dg/list_read_9.f90 b/gcc/testsuite/gfortran.dg/list_read_9.f90
index 2021859..dac0dc8 100644
--- a/gcc/testsuite/gfortran.dg/list_read_9.f90
+++ b/gcc/testsuite/gfortran.dg/list_read_9.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr37083 formatted read of line without trailing new-line fails
 real :: a, b, c
 open(unit=10,file="atest",access='stream',form='unformatted',&
diff --git a/gcc/testsuite/gfortran.dg/namelist_13.f90 b/gcc/testsuite/gfortran.dg/namelist_13.f90
index 1688e8d..185b522 100644
--- a/gcc/testsuite/gfortran.dg/namelist_13.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_13.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! Tests simple derived types.
 ! Provided by Paul Thomas - pault@gcc.gnu.org
 
diff --git a/gcc/testsuite/gfortran.dg/namelist_14.f90 b/gcc/testsuite/gfortran.dg/namelist_14.f90
index d6ab294..729f1b2 100644
--- a/gcc/testsuite/gfortran.dg/namelist_14.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_14.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! Tests various combinations of intrinsic types, derived types, arrays,
 ! dummy arguments and common to check nml_get_addr_expr in trans-io.c.
 ! See comments below for selection.
diff --git a/gcc/testsuite/gfortran.dg/namelist_15.f90 b/gcc/testsuite/gfortran.dg/namelist_15.f90
index 65b015c..e900e71 100644
--- a/gcc/testsuite/gfortran.dg/namelist_15.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_15.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! Tests arrays of derived types containing derived type arrays whose
 ! components are character arrays - exercises object name parser in
 ! list_read.c. Checks that namelist output can be reread. 
diff --git a/gcc/testsuite/gfortran.dg/namelist_16.f90 b/gcc/testsuite/gfortran.dg/namelist_16.f90
index 023816f..c6eb8f7 100644
--- a/gcc/testsuite/gfortran.dg/namelist_16.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_16.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! Tests namelist on complex variables
 ! provided by Paul Thomas - pault@gcc.gnu.org
 program namelist_16
diff --git a/gcc/testsuite/gfortran.dg/namelist_17.f90 b/gcc/testsuite/gfortran.dg/namelist_17.f90
index a802a22..e3eac52 100644
--- a/gcc/testsuite/gfortran.dg/namelist_17.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_17.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! Tests namelist on logical variables
 ! provided by Paul Thomas - pault@gcc.gnu.org
 
diff --git a/gcc/testsuite/gfortran.dg/namelist_18.f90 b/gcc/testsuite/gfortran.dg/namelist_18.f90
index 92b1875..d54d91f 100644
--- a/gcc/testsuite/gfortran.dg/namelist_18.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_18.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! Tests character delimiters for namelist write 
 ! provided by Paul Thomas - pault@gcc.gnu.org
 
diff --git a/gcc/testsuite/gfortran.dg/namelist_19.f90 b/gcc/testsuite/gfortran.dg/namelist_19.f90
index f7c6d69..c06abf5 100644
--- a/gcc/testsuite/gfortran.dg/namelist_19.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_19.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! Test namelist error trapping.
 ! provided by Paul Thomas - pault@gcc.gnu.org
 
diff --git a/gcc/testsuite/gfortran.dg/namelist_20.f90 b/gcc/testsuite/gfortran.dg/namelist_20.f90
index 9b2d896..155cf6f 100644
--- a/gcc/testsuite/gfortran.dg/namelist_20.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_20.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! Tests namelist io for an explicit shape array with negative bounds
 ! provided by Paul Thomas - pault@gcc.gnu.org
 
diff --git a/gcc/testsuite/gfortran.dg/namelist_24.f90 b/gcc/testsuite/gfortran.dg/namelist_24.f90
index c89ab3d..11cd2d0 100644
--- a/gcc/testsuite/gfortran.dg/namelist_24.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_24.f90
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 !{ dg-options -std=gnu }
 ! Tests namelist read when more data is provided then specified by 
 ! array qualifier in list.
diff --git a/gcc/testsuite/gfortran.dg/namelist_26.f90 b/gcc/testsuite/gfortran.dg/namelist_26.f90
index a9cf4fd..2c1b260 100644
--- a/gcc/testsuite/gfortran.dg/namelist_26.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_26.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR30918 Failure to skip commented out NAMELIST
 ! Before the patch, this read the commented out namelist and iuse would
 ! equal 2 when done.  Test case from PR.
diff --git a/gcc/testsuite/gfortran.dg/namelist_27.f90 b/gcc/testsuite/gfortran.dg/namelist_27.f90
index e645ca5..35fe032 100644
--- a/gcc/testsuite/gfortran.dg/namelist_27.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_27.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR31052 Bad IOSTAT values when readings NAMELISTs past EOF.
 ! Patch derived from PR, submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
 program gfcbug61
@@ -103,4 +103,4 @@ contains
     status = ios
   end subroutine read_report
 
-end program gfcbug61
\ No newline at end of file
+end program gfcbug61
diff --git a/gcc/testsuite/gfortran.dg/namelist_28.f90 b/gcc/testsuite/gfortran.dg/namelist_28.f90
index 09015d5..53b1f0f 100644
--- a/gcc/testsuite/gfortran.dg/namelist_28.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_28.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR31052 Bad IOSTAT values when readings NAMELISTs past EOF.
 ! Patch derived from PR, submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
 program gfcbug61
diff --git a/gcc/testsuite/gfortran.dg/namelist_37.f90 b/gcc/testsuite/gfortran.dg/namelist_37.f90
index e200ad0..9ff6297 100644
--- a/gcc/testsuite/gfortran.dg/namelist_37.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_37.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR33039 Read NAMELIST:  reads wrong namelist name
 ! Test case from PR modified by Jerry DeLisle <jvdelisle@gcc.gnu.org>
 PROGRAM namelist
diff --git a/gcc/testsuite/gfortran.dg/namelist_38.f90 b/gcc/testsuite/gfortran.dg/namelist_38.f90
index ed05369..5578654 100644
--- a/gcc/testsuite/gfortran.dg/namelist_38.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_38.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR33253 namelist: reading back a string, also fixed writing with delimiters.
 ! Test case modified from that of the PR by
 ! Jerry DeLisle  <jvdelisle@gcc.gnu.org>
diff --git a/gcc/testsuite/gfortran.dg/namelist_39.f90 b/gcc/testsuite/gfortran.dg/namelist_39.f90
index 82e631e..3672140 100644
--- a/gcc/testsuite/gfortran.dg/namelist_39.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_39.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR33421 and PR33253 Weird quotation of namelist output of character arrays
 ! Test case from Toon Moone, adapted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
diff --git a/gcc/testsuite/gfortran.dg/namelist_40.f90 b/gcc/testsuite/gfortran.dg/namelist_40.f90
index 5e2c9d8..3c9d813 100644
--- a/gcc/testsuite/gfortran.dg/namelist_40.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_40.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR33672 Additional runtime checks needed for namelist reads
 ! Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
diff --git a/gcc/testsuite/gfortran.dg/namelist_43.f90 b/gcc/testsuite/gfortran.dg/namelist_43.f90
index 0dc8dac..fbfd3d5 100644
--- a/gcc/testsuite/gfortran.dg/namelist_43.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_43.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } }
 ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
 !
diff --git a/gcc/testsuite/gfortran.dg/namelist_44.f90 b/gcc/testsuite/gfortran.dg/namelist_44.f90
index 35ea667..1439902 100644
--- a/gcc/testsuite/gfortran.dg/namelist_44.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_44.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 !
 ! PR fortran/34530
 !
diff --git a/gcc/testsuite/gfortran.dg/namelist_45.f90 b/gcc/testsuite/gfortran.dg/namelist_45.f90
index 2357223..3512d08 100644
--- a/gcc/testsuite/gfortran.dg/namelist_45.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_45.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR35617 read namelist error with '!'
 program test
   character(len=128) :: mhdpath
diff --git a/gcc/testsuite/gfortran.dg/namelist_46.f90 b/gcc/testsuite/gfortran.dg/namelist_46.f90
index c3e0d1c..0f048cf 100644
--- a/gcc/testsuite/gfortran.dg/namelist_46.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_46.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR35627 Namelist read problem with short logical followed by read real
 program test
   implicit none
diff --git a/gcc/testsuite/gfortran.dg/namelist_47.f90 b/gcc/testsuite/gfortran.dg/namelist_47.f90
index 8a8dd9d..bc9110f 100644
--- a/gcc/testsuite/gfortran.dg/namelist_47.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_47.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 
 module nml_47
   type             ::  mt
diff --git a/gcc/testsuite/gfortran.dg/namelist_48.f90 b/gcc/testsuite/gfortran.dg/namelist_48.f90
index 0d1570b..e9a2928 100644
--- a/gcc/testsuite/gfortran.dg/namelist_48.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_48.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-fbackslash" }
 ! PR36538 namelist failure with tabs preceding object name
       program check1
diff --git a/gcc/testsuite/gfortran.dg/namelist_49.f90 b/gcc/testsuite/gfortran.dg/namelist_49.f90
index e8efab3..aec83ee 100644
--- a/gcc/testsuite/gfortran.dg/namelist_49.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_49.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-fbackslash" }
 ! PR36546 Namelist error with tab following a comma and newline
       program check1
diff --git a/gcc/testsuite/gfortran.dg/namelist_50.f90 b/gcc/testsuite/gfortran.dg/namelist_50.f90
index 678161b..57e93fc 100644
--- a/gcc/testsuite/gfortran.dg/namelist_50.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_50.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR36657 Namelist string constant immediately followed by comment
 program gfcbug79
   implicit none
diff --git a/gcc/testsuite/gfortran.dg/namelist_51.f90 b/gcc/testsuite/gfortran.dg/namelist_51.f90
index 152f9f8..9663bd6 100644
--- a/gcc/testsuite/gfortran.dg/namelist_51.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_51.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR36676 Namelist comment problems
 ! test case from PR, reduced by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program mem_nml
diff --git a/gcc/testsuite/gfortran.dg/namelist_52.f90 b/gcc/testsuite/gfortran.dg/namelist_52.f90
index e0975cf..6e31382 100644
--- a/gcc/testsuite/gfortran.dg/namelist_52.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_52.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR36582 Namelist I/O error: Bogus "Cannot match namelist object"
 ! Test case derived from PR.
 module mod1
diff --git a/gcc/testsuite/gfortran.dg/namelist_56.f90 b/gcc/testsuite/gfortran.dg/namelist_56.f90
index 8d879fc..03fda75 100644
--- a/gcc/testsuite/gfortran.dg/namelist_56.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_56.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR37707 Namelist read of array of derived type incorrect
 ! Test case from Tobias Burnus
   IMPLICIT NONE
diff --git a/gcc/testsuite/gfortran.dg/namelist_char_only.f90 b/gcc/testsuite/gfortran.dg/namelist_char_only.f90
index ff06171..9993669 100644
--- a/gcc/testsuite/gfortran.dg/namelist_char_only.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_char_only.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-O0" }
 ! Test patch for PR24416.f90 - a used to come back from the read with var
 ! prepended.
diff --git a/gcc/testsuite/gfortran.dg/namelist_use.f90 b/gcc/testsuite/gfortran.dg/namelist_use.f90
index ab84686..0460630 100644
--- a/gcc/testsuite/gfortran.dg/namelist_use.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_use.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! This tests the fix for PR22010, where namelists were not being written to
 ! and read back from modules.  It has two namelists: one that is USE
 ! associated and another that is concatenated by USE and host association.
diff --git a/gcc/testsuite/gfortran.dg/namelist_use_only.f90 b/gcc/testsuite/gfortran.dg/namelist_use_only.f90
index ce80d5e..a9adf01 100644
--- a/gcc/testsuite/gfortran.dg/namelist_use_only.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_use_only.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! This tests the fix for PR22010, where namelists were not being written to
 ! and read back from modules.  It checks that namelists from modules that are
 ! selected by an ONLY declaration work correctly, even when the variables in
diff --git a/gcc/testsuite/gfortran.dg/noadv_size.f90 b/gcc/testsuite/gfortran.dg/noadv_size.f90
index cfc507a..a3a88b1 100644
--- a/gcc/testsuite/gfortran.dg/noadv_size.f90
+++ b/gcc/testsuite/gfortran.dg/noadv_size.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 20774: Handle size parameter for non-advancing I/O correctly
 program main
   open(77,status='scratch')
diff --git a/gcc/testsuite/gfortran.dg/open_access_append_1.f90 b/gcc/testsuite/gfortran.dg/open_access_append_1.f90
index f67a8a9..8dae327 100644
--- a/gcc/testsuite/gfortran.dg/open_access_append_1.f90
+++ b/gcc/testsuite/gfortran.dg/open_access_append_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Testcase for the GNU extension OPEN(...,ACCESS="APPEND")
   open (10,file="foo")
   close (10,status="delete")
diff --git a/gcc/testsuite/gfortran.dg/pad_no.f90 b/gcc/testsuite/gfortran.dg/pad_no.f90
index 1b5fb2f..c023ade 100644
--- a/gcc/testsuite/gfortran.dg/pad_no.f90
+++ b/gcc/testsuite/gfortran.dg/pad_no.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Test correct operation for pad='no'.
 program main
   character(len=1) line(2)
diff --git a/gcc/testsuite/gfortran.dg/pr12884.f b/gcc/testsuite/gfortran.dg/pr12884.f
index 811bef1..425604c 100644
--- a/gcc/testsuite/gfortran.dg/pr12884.f
+++ b/gcc/testsuite/gfortran.dg/pr12884.f
@@ -1,4 +1,4 @@
-c { dg-do run { target fd_truncate } }
+c { dg-do run }
 c pr 12884
 c test namelist with input file containg / before namelist. Also checks
 c non-standard use of $ instead of &
diff --git a/gcc/testsuite/gfortran.dg/pr17090.f90 b/gcc/testsuite/gfortran.dg/pr17090.f90
index bae2bb7..6a685c2 100644
--- a/gcc/testsuite/gfortran.dg/pr17090.f90
+++ b/gcc/testsuite/gfortran.dg/pr17090.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr 17090 Runtime I/O error
 ! bdavis9659@comcast.net 
 ! 9/12/2004
diff --git a/gcc/testsuite/gfortran.dg/pr17285.f90 b/gcc/testsuite/gfortran.dg/pr17285.f90
index 8aa353c..58aee32 100644
--- a/gcc/testsuite/gfortran.dg/pr17285.f90
+++ b/gcc/testsuite/gfortran.dg/pr17285.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr 17285
 ! Test that namelist can read its own output.
 ! At the same time, check arrays and different terminations
diff --git a/gcc/testsuite/gfortran.dg/pr17286.f90 b/gcc/testsuite/gfortran.dg/pr17286.f90
index 5b94694..e9beb6d 100644
--- a/gcc/testsuite/gfortran.dg/pr17286.f90
+++ b/gcc/testsuite/gfortran.dg/pr17286.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR17286
 ! Namelist read failed when spaces exist between the '=' and the numbers
 ! This is a libgfortran bug
diff --git a/gcc/testsuite/gfortran.dg/pr18122.f90 b/gcc/testsuite/gfortran.dg/pr18122.f90
index 6e7f200..3907f0a 100644
--- a/gcc/testsuite/gfortran.dg/pr18122.f90
+++ b/gcc/testsuite/gfortran.dg/pr18122.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! test namelist with scalars and arrays.
 ! Based on example provided by thomas.koenig@online.de
 
diff --git a/gcc/testsuite/gfortran.dg/pr18210.f90 b/gcc/testsuite/gfortran.dg/pr18210.f90
index 253f291..6095984 100644
--- a/gcc/testsuite/gfortran.dg/pr18210.f90
+++ b/gcc/testsuite/gfortran.dg/pr18210.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Names in upper case and object names starting column 2
 ! Based on example provided by thomas.koenig@online.de
 
diff --git a/gcc/testsuite/gfortran.dg/pr18392.f90 b/gcc/testsuite/gfortran.dg/pr18392.f90
index 3c15d4b..de156f5 100644
--- a/gcc/testsuite/gfortran.dg/pr18392.f90
+++ b/gcc/testsuite/gfortran.dg/pr18392.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr 18392
 ! test namelist with derived types
 ! Based on example provided by thomas.koenig@online.de
diff --git a/gcc/testsuite/gfortran.dg/pr19155.f b/gcc/testsuite/gfortran.dg/pr19155.f
index 003c7fd..6387c3f 100644
--- a/gcc/testsuite/gfortran.dg/pr19155.f
+++ b/gcc/testsuite/gfortran.dg/pr19155.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 !
 ! PR libfortran/19155
 ! We accept 'E+00' as a valid real number. The standard says it is not,
diff --git a/gcc/testsuite/gfortran.dg/pr19216.f b/gcc/testsuite/gfortran.dg/pr19216.f
index 40b3b5a..76c3938 100644
--- a/gcc/testsuite/gfortran.dg/pr19216.f
+++ b/gcc/testsuite/gfortran.dg/pr19216.f
@@ -1,5 +1,5 @@
 ! PR libfortran/19216
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
        integer dat(3), i, j
        data dat / 3,2,1 /
 
diff --git a/gcc/testsuite/gfortran.dg/pr19467.f90 b/gcc/testsuite/gfortran.dg/pr19467.f90
index 03cc745..ab4fa99 100644
--- a/gcc/testsuite/gfortran.dg/pr19467.f90
+++ b/gcc/testsuite/gfortran.dg/pr19467.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr 19467
 ! test namelist with character arrays
 ! Based on example provided by paulthomas2@wanadoo.fr
diff --git a/gcc/testsuite/gfortran.dg/pr19657.f b/gcc/testsuite/gfortran.dg/pr19657.f
index a8e2012..1fe32ac 100644
--- a/gcc/testsuite/gfortran.dg/pr19657.f
+++ b/gcc/testsuite/gfortran.dg/pr19657.f
@@ -1,4 +1,4 @@
-c { dg-do run { target fd_truncate } }
+c { dg-do run }
 c pr 19657
 c test namelist not skipped if ending with logical.
 c Based on example provided by fuyuki@ccsr.u-tokyo.ac.jp
diff --git a/gcc/testsuite/gfortran.dg/pr20257.f90 b/gcc/testsuite/gfortran.dg/pr20257.f90
index 77c885f..aebfc03 100644
--- a/gcc/testsuite/gfortran.dg/pr20257.f90
+++ b/gcc/testsuite/gfortran.dg/pr20257.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-skip-if "Too big for local store" { spu-*-* } { "*" } { "" } }
   integer,parameter :: n = 10000
   real(8) array(10000)
diff --git a/gcc/testsuite/gfortran.dg/read_bad_advance.f90 b/gcc/testsuite/gfortran.dg/read_bad_advance.f90
index 3ca4493..5b43cfe 100644
--- a/gcc/testsuite/gfortran.dg/read_bad_advance.f90
+++ b/gcc/testsuite/gfortran.dg/read_bad_advance.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR27138 Failure to advance line on bad list directed read.
 ! Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
       program test
diff --git a/gcc/testsuite/gfortran.dg/read_eof_2.f90 b/gcc/testsuite/gfortran.dg/read_eof_2.f90
index 539553d..9017548 100644
--- a/gcc/testsuite/gfortran.dg/read_eof_2.f90
+++ b/gcc/testsuite/gfortran.dg/read_eof_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR25835 Check that reading from a file that is at end-of-file does not
 ! segfault or give error.  Test case derived from example in PR from Dale Ranta.
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
diff --git a/gcc/testsuite/gfortran.dg/read_eof_4.f90 b/gcc/testsuite/gfortran.dg/read_eof_4.f90
index da0ae5c..ee95268 100644
--- a/gcc/testsuite/gfortran.dg/read_eof_4.f90
+++ b/gcc/testsuite/gfortran.dg/read_eof_4.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 27575 and PR 30009: This test checks the error checking for end
 ! of file condition.
 ! Derived from test case in PR.
diff --git a/gcc/testsuite/gfortran.dg/read_many_1.f b/gcc/testsuite/gfortran.dg/read_many_1.f
index d015cf8..4fac689 100644
--- a/gcc/testsuite/gfortran.dg/read_many_1.f
+++ b/gcc/testsuite/gfortran.dg/read_many_1.f
@@ -1,4 +1,4 @@
-!{ dg-do run { target fd_truncate } }
+!{ dg-do run }
 ! PR26423 Large file I/O error related to buffering
 ! Test case derived from case by Dale Ranta.
 ! Submitted  by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
diff --git a/gcc/testsuite/gfortran.dg/read_noadvance.f90 b/gcc/testsuite/gfortran.dg/read_noadvance.f90
index 987d811..e55763a 100644
--- a/gcc/testsuite/gfortran.dg/read_noadvance.f90
+++ b/gcc/testsuite/gfortran.dg/read_noadvance.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! pr24719, non-advancing read should read more than one line
 ! test contributed by jerry delisle <jvdelisle@gcc.gnu.org>
       implicit none
diff --git a/gcc/testsuite/gfortran.dg/read_repeat.f90 b/gcc/testsuite/gfortran.dg/read_repeat.f90
index ab7a6a4..192ebe8 100644
--- a/gcc/testsuite/gfortran.dg/read_repeat.f90
+++ b/gcc/testsuite/gfortran.dg/read_repeat.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR39528 repeated entries not read when using list-directed input.
 ! Test case derived from reporters example.
 program rread
diff --git a/gcc/testsuite/gfortran.dg/read_size_noadvance.f90 b/gcc/testsuite/gfortran.dg/read_size_noadvance.f90
index 37ecff9..819a28d 100644
--- a/gcc/testsuite/gfortran.dg/read_size_noadvance.f90
+++ b/gcc/testsuite/gfortran.dg/read_size_noadvance.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR26890 Test for use of SIZE variable in IO list.
 ! Test case from Paul Thomas.
 ! Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
diff --git a/gcc/testsuite/gfortran.dg/read_x_past.f b/gcc/testsuite/gfortran.dg/read_x_past.f
index 16f6623..4a6d053 100644
--- a/gcc/testsuite/gfortran.dg/read_x_past.f
+++ b/gcc/testsuite/gfortran.dg/read_x_past.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options -w }
 ! PR 26661 : Test reading X's past file end with no LF or CR.
 ! PR 26880 : Tests that rewind clears the gfc_unit read_bad flag.
diff --git a/gcc/testsuite/gfortran.dg/record_marker_1.f90 b/gcc/testsuite/gfortran.dg/record_marker_1.f90
index d5d5a2e..5bcfbc6 100644
--- a/gcc/testsuite/gfortran.dg/record_marker_1.f90
+++ b/gcc/testsuite/gfortran.dg/record_marker_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-frecord-marker=4" }
 
 program main
diff --git a/gcc/testsuite/gfortran.dg/record_marker_3.f90 b/gcc/testsuite/gfortran.dg/record_marker_3.f90
index dd9d455..7459d72 100644
--- a/gcc/testsuite/gfortran.dg/record_marker_3.f90
+++ b/gcc/testsuite/gfortran.dg/record_marker_3.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-frecord-marker=8" }
 
 program main
diff --git a/gcc/testsuite/gfortran.dg/rewind_1.f90 b/gcc/testsuite/gfortran.dg/rewind_1.f90
index 61392ab..cbd2ef1 100644
--- a/gcc/testsuite/gfortran.dg/rewind_1.f90
+++ b/gcc/testsuite/gfortran.dg/rewind_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Check that rewind doesn't delete a file.
 ! Writing to the file truncates it at the end of the current record.  Out
 ! IO library was defering the actual truncation until the file was rewound.
diff --git a/gcc/testsuite/gfortran.dg/runtime_warning_1.f90 b/gcc/testsuite/gfortran.dg/runtime_warning_1.f90
index c27e7a2..6af85c3 100644
--- a/gcc/testsuite/gfortran.dg/runtime_warning_1.f90
+++ b/gcc/testsuite/gfortran.dg/runtime_warning_1.f90
@@ -3,7 +3,7 @@
 ! Contributor Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 !
 ! { dg-options "-pedantic" }
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 !
      character*5 c
      open (42,status='scratch')
diff --git a/gcc/testsuite/gfortran.dg/shape_3.f90 b/gcc/testsuite/gfortran.dg/shape_3.f90
index f715645..ea725a0 100644
--- a/gcc/testsuite/gfortran.dg/shape_3.f90
+++ b/gcc/testsuite/gfortran.dg/shape_3.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 34980 - we got a segfault for calling shape
 !            with a scalar.
 program main
diff --git a/gcc/testsuite/gfortran.dg/slash_1.f90 b/gcc/testsuite/gfortran.dg/slash_1.f90
index b62b338..d4a59a3 100644
--- a/gcc/testsuite/gfortran.dg/slash_1.f90
+++ b/gcc/testsuite/gfortran.dg/slash_1.f90
@@ -1,5 +1,5 @@
 ! PR libfortran/22170
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
   integer i
   open (10,status='scratch')
   write (10,'(A,2/,A)') '12', '17'
diff --git a/gcc/testsuite/gfortran.dg/stat_1.f90 b/gcc/testsuite/gfortran.dg/stat_1.f90
index 2fceaab..f3c185a 100644
--- a/gcc/testsuite/gfortran.dg/stat_1.f90
+++ b/gcc/testsuite/gfortran.dg/stat_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-skip-if "" { *-*-mingw* spu-*-* } { "*" } { "" } }
 ! { dg-options "-std=gnu" }
   character(len=*), parameter :: f = "testfile"
diff --git a/gcc/testsuite/gfortran.dg/stat_2.f90 b/gcc/testsuite/gfortran.dg/stat_2.f90
index 72661ac..3c4b252 100644
--- a/gcc/testsuite/gfortran.dg/stat_2.f90
+++ b/gcc/testsuite/gfortran.dg/stat_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-skip-if "" { *-*-mingw* spu-*-* } { "*" } { "" } }
 ! { dg-options "-std=gnu" }
   character(len=*), parameter :: f = "testfile"
diff --git a/gcc/testsuite/gfortran.dg/streamio_11.f90 b/gcc/testsuite/gfortran.dg/streamio_11.f90
index 0ec2f2e..2084a23 100644
--- a/gcc/testsuite/gfortran.dg/streamio_11.f90
+++ b/gcc/testsuite/gfortran.dg/streamio_11.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR29277 Stream IO test 11, tests formatted form.
 ! Contributed by Tobias Burnas.
 program stream_test
diff --git a/gcc/testsuite/gfortran.dg/streamio_3.f90 b/gcc/testsuite/gfortran.dg/streamio_3.f90
index 0cbab67..d73e431 100644
--- a/gcc/testsuite/gfortran.dg/streamio_3.f90
+++ b/gcc/testsuite/gfortran.dg/streamio_3.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR25828 Stream IO test 3, tests read_x and inquire.
 ! Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
 program streamio_3
@@ -15,4 +15,4 @@ program streamio_3
   inquire(unit=10, access=myaccess)
   if (myaccess.ne."STREAM") call abort()
   close(10,status="delete")
-end program streamio_3
\ No newline at end of file
+end program streamio_3
diff --git a/gcc/testsuite/gfortran.dg/streamio_4.f90 b/gcc/testsuite/gfortran.dg/streamio_4.f90
index 957df8c..ce638a4 100644
--- a/gcc/testsuite/gfortran.dg/streamio_4.f90
+++ b/gcc/testsuite/gfortran.dg/streamio_4.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR25828 Stream IO test 4, Tests string read and writes, single byte.
 ! Verifies buffering is working correctly and position="append"
 ! Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
@@ -35,4 +35,4 @@ program streamtest
   end do
 
   close(10,status="delete")
-end program streamtest
\ No newline at end of file
+end program streamtest
diff --git a/gcc/testsuite/gfortran.dg/streamio_9.f90 b/gcc/testsuite/gfortran.dg/streamio_9.f90
index a134d54..150c1c6 100644
--- a/gcc/testsuite/gfortran.dg/streamio_9.f90
+++ b/gcc/testsuite/gfortran.dg/streamio_9.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR29053 Stream IO test 9.
 ! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
 ! Test case derived from that given in PR by Steve Kargl.
diff --git a/gcc/testsuite/gfortran.dg/tl_editing.f90 b/gcc/testsuite/gfortran.dg/tl_editing.f90
index aa3a01c..d2a7ede 100644
--- a/gcc/testsuite/gfortran.dg/tl_editing.f90
+++ b/gcc/testsuite/gfortran.dg/tl_editing.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }     
+! { dg-do run }     
 ! Test of fix to bug triggered by NIST fm908.for.
 ! Left tabbing, followed by X or T-tabbing to the right would
 ! cause spaces to be overwritten on output data.
diff --git a/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90 b/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90
index ad79fd7..3d35312 100644
--- a/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90
+++ b/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-pedantic" }
 !  This test verifies the most basic sequential unformatted I/O
 !  with convert="swap".
diff --git a/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90 b/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90
index b38da24..f29f6ee 100644
--- a/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90
+++ b/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 program main
   complex(kind=4) :: c
   real(kind=4) :: a(2)
diff --git a/gcc/testsuite/gfortran.dg/unf_read_corrupted_2.f90 b/gcc/testsuite/gfortran.dg/unf_read_corrupted_2.f90
index 4dd5234..1788b45 100644
--- a/gcc/testsuite/gfortran.dg/unf_read_corrupted_2.f90
+++ b/gcc/testsuite/gfortran.dg/unf_read_corrupted_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR31880 silent data corruption in gfortran read statement
 ! Test from PR.
       program r3
diff --git a/gcc/testsuite/gfortran.dg/unf_short_record_1.f90 b/gcc/testsuite/gfortran.dg/unf_short_record_1.f90
index 9dca08e..45c94c2 100644
--- a/gcc/testsuite/gfortran.dg/unf_short_record_1.f90
+++ b/gcc/testsuite/gfortran.dg/unf_short_record_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 29627 - partial reads of unformatted records
 program main
   character a(3)
diff --git a/gcc/testsuite/gfortran.dg/utf8_1.f03 b/gcc/testsuite/gfortran.dg/utf8_1.f03
index f2d62f6..c07a6b8 100644
--- a/gcc/testsuite/gfortran.dg/utf8_1.f03
+++ b/gcc/testsuite/gfortran.dg/utf8_1.f03
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-fbackslash" }
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program test1
@@ -28,4 +28,4 @@ program test1
 end program test1
 ! The following examples require UTF-8 enabled editor to see correctly.
 ! ����  Sample of Japanese characters.
-! Î?á½?Ï?ὶ    Sample of Greek characters.
\ No newline at end of file
+! Î?á½?Ï?ὶ    Sample of Greek characters.
diff --git a/gcc/testsuite/gfortran.dg/utf8_2.f03 b/gcc/testsuite/gfortran.dg/utf8_2.f03
index 3e40997..0146a2e 100644
--- a/gcc/testsuite/gfortran.dg/utf8_2.f03
+++ b/gcc/testsuite/gfortran.dg/utf8_2.f03
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! { dg-options "-fbackslash" }
 ! Contributed by Tobias Burnus
 program test2
diff --git a/gcc/testsuite/gfortran.dg/widechar_IO_1.f90 b/gcc/testsuite/gfortran.dg/widechar_IO_1.f90
index 0c7c5f3..0fe479c 100644
--- a/gcc/testsuite/gfortran.dg/widechar_IO_1.f90
+++ b/gcc/testsuite/gfortran.dg/widechar_IO_1.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! Wide chracter I/O test 1, formatted and mixed kind
 ! Test case developed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
 program test1
diff --git a/gcc/testsuite/gfortran.dg/write_check3.f90 b/gcc/testsuite/gfortran.dg/write_check3.f90
index 4895096..802a06d 100644
--- a/gcc/testsuite/gfortran.dg/write_check3.f90
+++ b/gcc/testsuite/gfortran.dg/write_check3.f90
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR29936 Missed constraint on RECL=specifier in unformatted sequential WRITE
 ! Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program us_recl
diff --git a/gcc/testsuite/gfortran.dg/write_rewind_2.f b/gcc/testsuite/gfortran.dg/write_rewind_2.f
index e1a8dec..501995c 100644
--- a/gcc/testsuite/gfortran.dg/write_rewind_2.f
+++ b/gcc/testsuite/gfortran.dg/write_rewind_2.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 26499  Test write with rewind sequences to make sure buffering and
 ! end-of-file conditions are handled correctly.  Derived from test case by Dale
 ! Ranta.  Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
diff --git a/gcc/testsuite/gfortran.dg/x_slash_2.f b/gcc/testsuite/gfortran.dg/x_slash_2.f
index 9c42f67..6023b64 100644
--- a/gcc/testsuite/gfortran.dg/x_slash_2.f
+++ b/gcc/testsuite/gfortran.dg/x_slash_2.f
@@ -1,4 +1,4 @@
-! { dg-do run { target fd_truncate } }
+! { dg-do run }
 ! PR 34887 - reverse tabs followed by a slash used to confuse I/O.
       program main
       character(len=2) :: b, a
diff --git a/libgfortran/io/file_pos.c b/libgfortran/io/file_pos.c
index 8499232..c169017 100644
--- a/libgfortran/io/file_pos.c
+++ b/libgfortran/io/file_pos.c
@@ -341,26 +341,8 @@ st_rewind (st_parameter_filepos *fpp)
 
 	  u->previous_nonadvancing_write = 0;
 
-	  /* Flush the buffers.  If we have been writing to the file, the last
-	       written record is the last record in the file, so truncate the
-	       file now.  Reset to read mode so two consecutive rewind
-	       statements do not delete the file contents.  */
-	  if (u->mode == WRITING)
-	    {
-	      /* unit_truncate takes care of flushing.  */
-	      unit_truncate (u, stell (u->s), &fpp->common);
-	      /* .. but we still need to reset since we're going to seek.  */
-	      fbuf_reset (u);
-	    }
-          else
-            {
-              /* Make sure buffers are reset.  */
-              if (u->flags.form == FORM_FORMATTED)
-                fbuf_reset (u);
-              sflush (u->s);
-            }              
+	  fbuf_reset (u);
 
-	  u->mode = READING;
 	  u->last_record = 0;
 
 	  if (sseek (u->s, 0, SEEK_SET) < 0)
diff --git a/libgfortran/io/intrinsics.c b/libgfortran/io/intrinsics.c
index 0a894aa..0e33e84 100644
--- a/libgfortran/io/intrinsics.c
+++ b/libgfortran/io/intrinsics.c
@@ -46,6 +46,13 @@ PREFIX(fgetc) (const int * unit, char * c, gfc_charlen_type c_len)
   if (u == NULL)
     return -1;
 
+  fbuf_reset (u);
+  if (u->mode == WRITING)
+    {
+      sflush (u->s);
+      u->mode = READING;
+    }
+
   memset (c, ' ', c_len);
   ret = sread (u->s, c, 1);
   unlock_unit (u);
@@ -118,6 +125,13 @@ PREFIX(fputc) (const int * unit, char * c,
   if (u == NULL)
     return -1;
 
+  fbuf_reset (u);
+  if (u->mode == READING)
+    {
+      sflush (u->s);
+      u->mode = WRITING;
+    }
+
   s = swrite (u->s, c, 1);
   unlock_unit (u);
   if (s < 0)
#!/usr/bin/python

# Copyright (C) 2009 Janne Blomqvist

# Check Gfortran testcases for unnecessary target fd_truncate requirement

import os

basedir = '~/src/gfortran/trunk/trunk-git/gcc/testsuite/'
dirs = ['gfortran.dg', 'gfortran.fortran-torture']

def has_fd_truncate(fname):
    """Does the file contain something about fd_truncate?"""
    for line in open(fname):
        if line.find('fd_truncate') != -1:
            return True
    return False

def check_strace_output():
    p = os.popen('strace ./a.out 2>&1')
    for line in p:
        if line.find('ftruncate') != -1:
            return True
    return False

basedir = os.path.expanduser(basedir)

for dir in dirs:
    d = os.path.join(basedir, dir)
    for root, subdirs, files in os.walk(d):
        for fl in files:
            f = os.path.join(root, fl)
            if has_fd_truncate(f):
                os.system('gfortran -g ' + f)
                if not check_strace_output():
                    print f

Attachment: signature.asc
Description: OpenPGP digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]