aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2019-06-15 22:10:54 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2019-06-15 22:10:54 +0000
commite00e19541456556b2b8d5aff9a0561d528087b27 (patch)
tree22ba4701cc525a9740beb80aa26f39e364aa8aa1
parent98e5be211e3d59563e760feabb1d4384efe5a1b9 (diff)
downloadgcc-e00e19541456556b2b8d5aff9a0561d528087b27.zip
gcc-e00e19541456556b2b8d5aff9a0561d528087b27.tar.gz
gcc-e00e19541456556b2b8d5aff9a0561d528087b27.tar.bz2
decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived type.
2019-06-15 Steven G. Kargl <kargl@gcc.gnu.org> * decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived type. 2019-06-15 Steven G. Kargl <kargl@gcc.gnu.org> * gfortran.dg/dummy_derived_typed.f90: New test. From-SVN: r272333
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/decl.c7
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.dg/dummy_derived_typed.f905
4 files changed, 21 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index ddb2353..921a6fc 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2019-06-15 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived
+ type.
+
2019-06-14 Steven G. Kargl <kargl@gcc.gnu.org>
* arith.c (arith_power): Rework overflow of an integer to an integer
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 1c785a4..5fc06e4 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -10193,6 +10193,13 @@ gfc_match_derived_decl (void)
&& !gfc_add_function (&gensym->attr, gensym->name, NULL))
return MATCH_ERROR;
+ if (gensym->attr.dummy)
+ {
+ gfc_error ("Dummy argument %qs at %L cannot be a derived type at %C",
+ name, &gensym->declared_at);
+ return MATCH_ERROR;
+ }
+
sym = gfc_find_dt_in_generic (gensym);
if (sym && (sym->components != NULL || sym->attr.zero_comp))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 411d4966..3a1a1e7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-06-15 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * gfortran.dg/dummy_derived_typed.f90: New test.
+
2019-06-15 Jan Hubicka <hubicka@ucw.cz>
* gcc.dg/tree-ssa/alias-access-path-2.c: New testcase.
diff --git a/gcc/testsuite/gfortran.dg/dummy_derived_typed.f90 b/gcc/testsuite/gfortran.dg/dummy_derived_typed.f90
new file mode 100644
index 0000000..5c9b3ca
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dummy_derived_typed.f90
@@ -0,0 +1,5 @@
+! { dg-do compile }
+subroutine s(t) ! { dg-error "Dummy argument" }
+ type t ! { dg-error "cannot be a derived" }
+ end type ! { dg-error "Expecting END SUBROUTINE" }
+end