annotate gcc/testsuite/gfortran.dg/x_slash_1.f @ 132:d34655255c78

update gcc-8.2
author mir3636
date Thu, 25 Oct 2018 10:21:07 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 c { dg-do run { target fd_truncate } }
kono
parents:
diff changeset
2 c { dg-options "-std=legacy" }
kono
parents:
diff changeset
3 c
kono
parents:
diff changeset
4 c This program tests the fixes to PR22570.
kono
parents:
diff changeset
5 c
kono
parents:
diff changeset
6 c Provided by Paul Thomas - pault@gcc.gnu.org
kono
parents:
diff changeset
7 c
kono
parents:
diff changeset
8 program x_slash
kono
parents:
diff changeset
9 character*60 a
kono
parents:
diff changeset
10 character*1 b, c
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 open (10, status = "scratch")
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 c Check that lines with only x-editing followed by a slash generate
kono
parents:
diff changeset
15 c spaces and that subsequent lines have spaces where they should.
kono
parents:
diff changeset
16 c Line 1 we ignore.
kono
parents:
diff changeset
17 c Line 2 has nothing but x editing, followed by a slash.
kono
parents:
diff changeset
18 c Line 3 has x editing finished off by a 1h*
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 write (10, 100)
kono
parents:
diff changeset
21 100 format (1h1,58x,1h!,/,60x,/,59x,1h*,/)
kono
parents:
diff changeset
22 rewind (10)
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 read (10, 200) a
kono
parents:
diff changeset
25 read (10, 200) a
kono
parents:
diff changeset
26 do i = 1,60
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
27 if (ichar(a(i:i)).ne.32) STOP 1
111
kono
parents:
diff changeset
28 end do
kono
parents:
diff changeset
29 read (10, 200) a
kono
parents:
diff changeset
30 200 format (a60)
kono
parents:
diff changeset
31 do i = 1,59
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
32 if (ichar(a(i:i)).ne.32) STOP 2
111
kono
parents:
diff changeset
33 end do
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
34 if (a(60:60).ne."*") STOP 3
111
kono
parents:
diff changeset
35 rewind (10)
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 c Check that sequences of t- and x-editing generate the correct
kono
parents:
diff changeset
38 c number of spaces.
kono
parents:
diff changeset
39 c Line 1 we ignore.
kono
parents:
diff changeset
40 c Line 2 has tabs to the right of present position.
kono
parents:
diff changeset
41 c Line 3 has tabs to the left of present position.
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 write (10, 101)
kono
parents:
diff changeset
44 101 format (1h1,58x,1h#,/,t38,2x,1h ,tr10,9x,1h$,/,
kono
parents:
diff changeset
45 > 6habcdef,tl4,2x,6hghijkl,t1,59x,1h*)
kono
parents:
diff changeset
46 rewind (10)
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 read (10, 200) a
kono
parents:
diff changeset
49 read (10, 200) a
kono
parents:
diff changeset
50 do i = 1,59
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
51 if (ichar(a(i:i)).ne.32) STOP 4
111
kono
parents:
diff changeset
52 end do
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
53 if (a(60:60).ne."$") STOP 5
111
kono
parents:
diff changeset
54 read (10, 200) a
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
55 if (a(1:10).ne."abcdghijkl") STOP 6
111
kono
parents:
diff changeset
56 do i = 11,59
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
57 if (ichar(a(i:i)).ne.32) STOP 7
111
kono
parents:
diff changeset
58 end do
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
59 if (a(60:60).ne."*") STOP 8
111
kono
parents:
diff changeset
60 rewind (10)
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 c Now repeat the first test, with the write broken up into three
kono
parents:
diff changeset
63 c separate statements. This checks that the position counters are
kono
parents:
diff changeset
64 c correctly reset for each statement.
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 write (10,102) "#"
kono
parents:
diff changeset
67 write (10,103)
kono
parents:
diff changeset
68 write (10,102) "$"
kono
parents:
diff changeset
69 102 format(59x,a1)
kono
parents:
diff changeset
70 103 format(60x)
kono
parents:
diff changeset
71 rewind (10)
kono
parents:
diff changeset
72 read (10, 200) a
kono
parents:
diff changeset
73 read (10, 200) a
kono
parents:
diff changeset
74 read (10, 200) a
kono
parents:
diff changeset
75 do i = 11,59
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
76 if (ichar(a(i:i)).ne.32) STOP 9
111
kono
parents:
diff changeset
77 end do
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
78 if (a(60:60).ne."$") STOP 10
111
kono
parents:
diff changeset
79 rewind (10)
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 c Next we check multiple read x- and t-editing.
kono
parents:
diff changeset
82 c First, tab to the right.
kono
parents:
diff changeset
83
kono
parents:
diff changeset
84 read (10, 201) b, c
kono
parents:
diff changeset
85 201 format (tr10,49x,a1,/,/,2x,t60,a1)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
86 if ((b.ne."#").or.(c.ne."$")) STOP 11
111
kono
parents:
diff changeset
87 rewind (10)
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 c Now break it up into three reads and use left tabs.
kono
parents:
diff changeset
90
kono
parents:
diff changeset
91 read (10, 202) b
kono
parents:
diff changeset
92 202 format (10x,tl10,59x,a1)
kono
parents:
diff changeset
93 read (10, 203)
kono
parents:
diff changeset
94 203 format ()
kono
parents:
diff changeset
95 read (10, 204) c
kono
parents:
diff changeset
96 204 format (10x,t5,55x,a1)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
97 if ((b.ne."#").or.(c.ne."$")) STOP 12
111
kono
parents:
diff changeset
98 close (10)
kono
parents:
diff changeset
99
kono
parents:
diff changeset
100 c Now, check that trailing spaces are not transmitted when we have
kono
parents:
diff changeset
101 c run out of data (Thanks to Jack Howarth for finding this one:
kono
parents:
diff changeset
102 c http://gcc.gnu.org/ml/fortran/2005-07/msg00395.html).
kono
parents:
diff changeset
103
kono
parents:
diff changeset
104 open (10, pad = "no", status = "scratch")
kono
parents:
diff changeset
105 b = achar (0)
kono
parents:
diff changeset
106 write (10, 105) 42
kono
parents:
diff changeset
107 105 format (i10,1x,i10)
kono
parents:
diff changeset
108 write (10, 106)
kono
parents:
diff changeset
109 106 format ("============================")
kono
parents:
diff changeset
110 rewind (10)
kono
parents:
diff changeset
111 read (10, 205, iostat = ier) i, b
kono
parents:
diff changeset
112 205 format (i10,a1)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
113 if ((ier.eq.0).or.(ichar(b).ne.0)) STOP 13
111
kono
parents:
diff changeset
114
kono
parents:
diff changeset
115 c That's all for now, folks!
kono
parents:
diff changeset
116
kono
parents:
diff changeset
117 end
kono
parents:
diff changeset
118