New test.
authorDave Love <fx@gcc.gnu.org>
Sun, 19 Apr 1998 11:49:56 +0000 (11:49 +0000)
committerDave Love <fx@gcc.gnu.org>
Sun, 19 Apr 1998 11:49:56 +0000 (11:49 +0000)
From-SVN: r19300

gcc/testsuite/g77.f-torture/compile/980419-2.f [new file with mode: 0644]

diff --git a/gcc/testsuite/g77.f-torture/compile/980419-2.f b/gcc/testsuite/g77.f-torture/compile/980419-2.f
new file mode 100644 (file)
index 0000000..ac9134d
--- /dev/null
@@ -0,0 +1,48 @@
+c     SEGVs in loop.c with -O2.
+
+      character*80 function nxtlin(lun,ierr,itok)
+      character onechr*1,twochr*2,thrchr*3
+      itok=0
+      do while (.true.)
+         read (lun,'(a)',iostat=ierr) nxtlin
+         if (nxtlin(1:1).ne.'#') then
+            ito=0
+            do 10 it=1,79
+               if (nxtlin(it:it).ne.' ' .and. nxtlin(it+1:it+1).eq.' ')
+     $              then
+                  itast=0
+                  itstrt=0
+                  do itt=ito+1,it
+                     if (nxtlin(itt:itt).eq.'*') itast=itt
+                  enddo
+                  itstrt=ito+1
+                  do while (nxtlin(itstrt:itstrt).eq.' ')
+                     itstrt=itstrt+1
+                  enddo
+                  if (itast.gt.0) then
+                     nchrs=itast-itstrt
+                     if (nchrs.eq.1) then
+                        onechr=nxtlin(itstrt:itstrt)
+                        read (onechr,*) itokn
+                     elseif (nchrs.eq.2) then
+                        twochr=nxtlin(itstrt:itstrt+1)
+                        read (twochr,*) itokn
+                     elseif (nchrs.eq.3) then
+                        thrchr=nxtlin(itstrt:itstrt+2)
+                        read (thrchr,*) itokn
+                     elseif (nchrs.eq.4) then
+                        thrchr=nxtlin(itstrt:itstrt+3)
+                        read (thrchr,*) itokn
+                     endif
+                     itok=itok+itokn
+                  else
+                     itok=itok+1
+                  endif
+                  ito=it+1
+               endif
+ 10         continue
+            return
+         endif
+      enddo
+      return
+      end