summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2015-10-24 17:09:35 +0000
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2015-10-24 17:09:35 +0000
commit9627a89d7f847ba0a6a548f09d6f9ec9f774d614 (patch)
treede39edf68f4b514d8c71192d6445e3686f8f39d8
parent9c5a8acc204ae7de64ae6d29d9c48e4faec14bd9 (diff)
downloadgcc-9627a89d7f847ba0a6a548f09d6f9ec9f774d614.tar.gz
2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/68055 * decl.c (gfc_match_decl_type_spec): Check for valid kind in old-style declarations. 2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68055 * gfortran.dg/pr68055.f90: New case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229288 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/decl.c6
-rw-r--r--gcc/testsuite/ChangeLog15
-rw-r--r--gcc/testsuite/gfortran.dg/pr68055.f9013
4 files changed, 39 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 67d1fb0313e..c65a6924184 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,11 @@
2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
+ PR fortran/68055
+ * decl.c (gfc_match_decl_type_spec): Check for valid kind in old-style
+ declarations.
+
+2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
+
PR fortran/67805
* array.c (gfc_match_array_constructor): Check for error from type
spec matching.
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 200a1287057..651f1b0265d 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -3021,7 +3021,11 @@ get_kind:
m = gfc_match_kind_spec (ts, false);
if (m == MATCH_NO && ts->type != BT_CHARACTER)
- m = gfc_match_old_kind_spec (ts);
+ {
+ m = gfc_match_old_kind_spec (ts);
+ if (gfc_validate_kind (ts->type, ts->kind, true) == -1)
+ return MATCH_ERROR;
+ }
if (matched_type && gfc_match_char (')') != MATCH_YES)
return MATCH_ERROR;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bd0281a0243..212a67750a5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,18 @@
+2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/68055
+ * gfortran.dg/pr68055.f90: New case.
+
+2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/67805
+ * gfortran.dg/pr67805.f90: New testcase.
+ * gfortran.dg/array_constructor_26.f03: Update testcase.
+ * gfortran.dg/array_constructor_27.f03: Ditto.
+ * gfortran.dg/char_type_len_2.f90: Ditto.
+ * gfortran.dg/pr67802.f90: Ditto.
+ * gfortran.dg/used_before_typed_3.f90: Ditto.
+
2015-10-23 Jan Hubicka <hubicka@ucw.cz>
PR ipa/pr67600
diff --git a/gcc/testsuite/gfortran.dg/pr68055.f90 b/gcc/testsuite/gfortran.dg/pr68055.f90
new file mode 100644
index 00000000000..c84a6451d5e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr68055.f90
@@ -0,0 +1,13 @@
+! { dg-do compile }
+! PR fortran/68055
+! Original code contributed by Gerhard Steinmetz
+! gerhard dot steinmetz dot fortran at t-online dot de
+!
+ integer*3 c ! { dg-error "not supported at" }
+ real*9 x ! { dg-error "not supported at" }
+ logical*11 a ! { dg-error "not supported at" }
+ complex*42 z ! { dg-error "not supported at" }
+ c = 1
+ x = 1
+ call foo(a)
+end