diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/iomsg_1.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/iomsg_1.f90 | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/iomsg_1.f90 b/gcc/testsuite/gfortran.dg/iomsg_1.f90 new file mode 100644 index 000000000..0916fd861 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/iomsg_1.f90 @@ -0,0 +1,28 @@ +! { dg-do run } +! Test implementation of the iomsg tag. +program iomsg_test + character(len=70) ch + + ! Test that iomsg is left unchanged with no error + ch = 'asdf' + open(10, status='scratch', iomsg=ch, iostat=i) + if (ch .ne. 'asdf') call abort + + ! Test iomsg with data transfer statement + read(10,'(I2)', iomsg=ch, end=100) k + call abort +100 continue + if (ch .ne. 'End of file') call abort + + ! Test iomsg with open + open (-3, err=200, iomsg=ch) + + call abort +200 continue + if (ch .ne. 'Bad unit number in OPEN statement') call abort + + ! Test iomsg with close + close(23,status="no_idea", err=500, iomsg=ch) ! { dg-warning "STATUS specifier in CLOSE statement.*has invalid value" } +500 continue + if (ch .ne. "Bad STATUS parameter in CLOSE statement") call abort +end program iomsg_test |