From cfcb27cfcb1d32b8cf7bc463cc1fc5cacae8d199 Mon Sep 17 00:00:00 2001 From: Harald Anlauf Date: Tue, 26 Oct 2021 20:54:41 +0200 Subject: Fortran: do not restrict PDT KIND and LEN type parameters to default integer gcc/fortran/ChangeLog: PR fortran/102917 * decl.c (match_attr_spec): Remove invalid integer kind checks on KIND and LEN attributes of PDTs. gcc/testsuite/ChangeLog: PR fortran/102917 * gfortran.dg/pdt_4.f03: Adjust testcase. --- gcc/fortran/decl.c | 16 ---------------- gcc/testsuite/gfortran.dg/pdt_4.f03 | 4 ++-- 2 files changed, 2 insertions(+), 18 deletions(-) (limited to 'gcc') diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 6043e10..ce61e53 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -5592,14 +5592,6 @@ match_attr_spec (void) m = MATCH_ERROR; goto cleanup; } - if (current_ts.kind != gfc_default_integer_kind) - { - gfc_error ("Component with KIND attribute at %C must be " - "default integer kind (%d)", - gfc_default_integer_kind); - m = MATCH_ERROR; - goto cleanup; - } } else if (d == DECL_LEN) { @@ -5619,14 +5611,6 @@ match_attr_spec (void) m = MATCH_ERROR; goto cleanup; } - if (current_ts.kind != gfc_default_integer_kind) - { - gfc_error ("Component with LEN attribute at %C must be " - "default integer kind (%d)", - gfc_default_integer_kind); - m = MATCH_ERROR; - goto cleanup; - } } else { diff --git a/gcc/testsuite/gfortran.dg/pdt_4.f03 b/gcc/testsuite/gfortran.dg/pdt_4.f03 index c1af65a..37412e4 100644 --- a/gcc/testsuite/gfortran.dg/pdt_4.f03 +++ b/gcc/testsuite/gfortran.dg/pdt_4.f03 @@ -28,9 +28,9 @@ end module type :: bad_pdt (a,b, c, d) ! { dg-error "does not have a component" } real, kind :: a ! { dg-error "must be INTEGER" } - INTEGER(8), kind :: b ! { dg-error "be default integer kind" } + INTEGER(8), kind :: b real, LEN :: c ! { dg-error "must be INTEGER" } - INTEGER(8), LEN :: d ! { dg-error "be default integer kind" } + INTEGER(8), LEN :: d end type type :: mytype (a,b) -- cgit v1.1