OSDN Git Service

fortran/
authortobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 May 2005 22:32:04 +0000 (22:32 +0000)
committertobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 May 2005 22:32:04 +0000 (22:32 +0000)
PR fortran/21260
* io.c (check_format): Look for literal characters inside
hollerith constant.
testsuite/
PR fortran/21260
* gfortran.dg/hollerith_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99597 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/io.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/hollerith_1.f90 [new file with mode: 0644]

index b87d814..98d9bb3 100644 (file)
@@ -1,5 +1,11 @@
 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
 
+       PR fortran/21260
+       * io.c (check_format): Look for literal characters inside
+       hollerith constant.
+
+2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
+
        * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
        attribute from result symbol to function symbol.
        * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension
index 90eb855..8dab5f5 100644 (file)
@@ -642,7 +642,7 @@ data_desc:
       {
         while(repeat >0)
          {
-          next_char(0);
+          next_char(1);
           repeat -- ;
          }
       }
index 6e3cae1..ece62d2 100644 (file)
@@ -1,5 +1,10 @@
 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
 
+       PR fortran/21260
+       * gfortran.dg/hollerith_1.f90: New test.
+
+2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
+
        * gfortran.dg/func_result_2.f90: New test.
 
 2005-05-11  Bud Davis  <bdavis@gfortran.org>
diff --git a/gcc/testsuite/gfortran.dg/hollerith_1.f90 b/gcc/testsuite/gfortran.dg/hollerith_1.f90
new file mode 100644 (file)
index 0000000..d6732d4
--- /dev/null
@@ -0,0 +1,11 @@
+! { dg-do run }
+! PR 21260
+! We wrongly interpreted the '!' as the beginning of a comment.
+! Also verifies the functioning of hollerith formatting.
+      character*72 c
+      write(c,8000)
+8000  format(36(2H!)))
+      do i = 1,72,2
+         if (c(i:i+1) /= '!)') call abort
+      end do
+      end