aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Franke <franke.daniel@gmail.com>2009-12-07 12:32:29 -0500
committerDaniel Franke <dfranke@gcc.gnu.org>2009-12-07 12:32:29 -0500
commitd59b1dcb19d9d8c6b69d00463ab7b4f5d5cd45a6 (patch)
tree924e144433c8bbe5db535407c689e688ea4f6d9f /gcc
parentb3a00b5034c404458ba4a32c337bdc2c94f916ed (diff)
downloadgcc-d59b1dcb19d9d8c6b69d00463ab7b4f5d5cd45a6.zip
gcc-d59b1dcb19d9d8c6b69d00463ab7b4f5d5cd45a6.tar.gz
gcc-d59b1dcb19d9d8c6b69d00463ab7b4f5d5cd45a6.tar.bz2
re PR fortran/41940 (Improve error message for allocating scalar with shape)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/match.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f9013
4 files changed, 30 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9d0506e..49f6b8f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 9e76818..c67427c 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -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;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index edd2b46..da73c1e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..1f4f9d5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f90
@@ -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
+