]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/41940 (Improve error message for allocating scalar with shape)
authorDaniel Franke <franke.daniel@gmail.com>
Mon, 7 Dec 2009 17:32:29 +0000 (12:32 -0500)
committerDaniel Franke <dfranke@gcc.gnu.org>
Mon, 7 Dec 2009 17:32:29 +0000 (12:32 -0500)
gcc/fortran:
2009-12-07  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/41940
        * match.c (gfc_match_allocate): Improved error message for
        allocatable scalars that are allocated with a shape.

gcc/testsuite:
2009-12-07  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/41940
        * gfortran.dg/allocate_scalar_with_shape.f90: New.

From-SVN: r155049

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

index 9d0506e1d53e109a948e671cf8c06c3fed0698c7..49f6b8fb6915501cd5ec75ff227fa8d47eca7b69 100644 (file)
@@ -1,3 +1,9 @@
+2009-12-07  Daniel Franke  <franke.daniel@gmail.com>
+
+        PR fortran/41940
+        * match.c (gfc_match_allocate): Improved error message for
+        allocatable scalars that are allocated with a shape.
+
 2009-12-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        PR other/40302
index 9e76818badcae8ae73969d59c16bf4029c2da963..c67427cbf14ac89dd00c0b9936ce7fdc74bf13dd 100644 (file)
@@ -2502,6 +2502,12 @@ gfc_match_allocate (void)
          goto cleanup;
        }
 
+      if (gfc_peek_ascii_char () == '(' && !sym->attr.dimension)
+       {
+         gfc_error ("Shape specification for allocatable scalar at %C");
+         goto cleanup;
+       }
+
       if (gfc_match_char (',') != MATCH_YES)
        break;
 
index edd2b462065a6ec68d70aead2632503a9fa6ba4f..da73c1ef4a4bc41c65bba5b3982d46b8a6e6f525 100644 (file)
@@ -1,3 +1,8 @@
+2009-12-07  Daniel Franke  <franke.daniel@gmail.com>
+
+        PR fortran/41940
+        * gfortran.dg/allocate_scalar_with_shape.f90: New.
+
 2009-12-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        PR other/40302
diff --git a/gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f90 b/gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f90
new file mode 100644 (file)
index 0000000..1f4f9d5
--- /dev/null
@@ -0,0 +1,13 @@
+! { dg-do "compile" }
+! PR fortran/41940
+
+integer, allocatable :: a
+TYPE :: x
+  integer, allocatable :: a
+END TYPE
+TYPE (x) :: y
+
+allocate(a(4))     ! { dg-error "Shape specification for allocatable scalar" }
+allocate(y%a(4))   ! { dg-error "Shape specification for allocatable scalar" }
+end
+