OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [unf_io_convert_1.f90] - Blame information for rev 774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 694 jeremybenn
! { dg-do run }
2
! { dg-options "-pedantic" }
3
!  This test verifies the most basic sequential unformatted I/O
4
!  with convert="swap".
5
!  Adapted from seq_io.f.
6
!      write 3 records of various sizes
7
!      then read them back
8
program main
9
  implicit none
10
  integer size
11
  parameter(size=100)
12
  logical debug
13
  data debug /.FALSE./
14
! set debug to true for help in debugging failures.
15
  integer m(2)
16
  integer n
17
  real r(size)
18
  integer i
19
  character(4) str
20
 
21
  m(1) = Z'11223344' ! { dg-warning "BOZ literal at .1. outside a DATA statement" }
22
  m(2) = Z'55667788' ! { dg-warning "BOZ literal at .1. outside a DATA statement" }
23
  n    = Z'77AABBCC' ! { dg-warning "BOZ literal at .1. outside a DATA statement" }
24
  str = 'asdf'
25
  do i = 1,size
26
     r(i) = i
27
  end do
28
  open(9,form="unformatted",access="sequential",convert="swap") ! { dg-warning "Extension: CONVERT" }
29
  write(9) m  ! an array of 2
30
  write(9) n  ! an integer
31
  write(9) r  ! an array of reals
32
  write(9)str ! String
33
! zero all the results so we can compare after they are read back
34
  do i = 1,size
35
     r(i) = 0
36
  end do
37
  m(1) = 0
38
  m(2) = 0
39
  n = 0
40
  str = ' '
41
 
42
  rewind(9)
43
  read(9) m
44
  read(9) n
45
  read(9) r
46
  read(9) str
47
  !
48
  ! check results
49
  if (m(1).ne.Z'11223344') then
50
     if (debug) then
51
        print '(A,Z8)','m(1) incorrect.  m(1) = ',m(1)
52
     else
53
        call abort
54
     endif
55
  endif
56
 
57
  if (m(2).ne.Z'55667788') then
58
     if (debug) then
59
        print '(A,Z8)','m(2) incorrect.  m(2) = ',m(2)
60
     else
61
        call abort
62
     endif
63
  endif
64
 
65
  if (n.ne.Z'77AABBCC') then
66
     if (debug) then
67
        print '(A,Z8)','n incorrect.  n = ',n
68
     else
69
        call abort
70
     endif
71
  endif
72
 
73
  do i = 1,size
74
     if (int(r(i)).ne.i) then
75
        if (debug) then
76
           print*,'element ',i,' was ',r(i),' should be ',i
77
        else
78
           call abort
79
        endif
80
     endif
81
  end do
82
  if (str .ne. 'asdf') then
83
     if (debug) then
84
        print *,'str incorrect, str = ', str
85
     else
86
        call abort
87
     endif
88
  end if
89
  ! use hexdump to look at the file "fort.9"
90
  if (debug) then
91
     close(9)
92
  else
93
     close(9,status='DELETE')
94
  endif
95
end program main

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.