diff options
author | Tobias Burnus <burnus@net-b.de> | 2010-06-24 09:51:22 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2010-06-24 09:51:22 +0200 |
commit | d646bbce3459647a1e6c426ca5ec637970fec842 (patch) | |
tree | 5b5effa32a7d05fa602650079fdc73f6c53c5274 /gcc | |
parent | 5f4a67a500ca1a69baaa622fec1e3217f52ec3a2 (diff) | |
download | gcc-d646bbce3459647a1e6c426ca5ec637970fec842.zip gcc-d646bbce3459647a1e6c426ca5ec637970fec842.tar.gz gcc-d646bbce3459647a1e6c426ca5ec637970fec842.tar.bz2 |
re PR fortran/44614 ([OOP] Wrongly importing a symbol into an interface without IMPORT)
2010-06-24 Tobias Burnus <burnus@net-b.de>
PR fortran/44614
* decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
2010-06-24 Tobias Burnus <burnus@net-b.de>
PR fortran/44614
* gfortran.dg/import8.f90: New.
From-SVN: r161310
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/decl.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/import8.f90 | 18 |
4 files changed, 29 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 07a5825..e887e6f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2010-06-24 Tobias Burnus <burnus@net-b.de> + + PR fortran/44614 + * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS. + 2010-06-22 Janus Weil <janus@gcc.gnu.org> PR fortran/44616 diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index f7f4800..aa7a266 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -1764,7 +1764,7 @@ variable_decl (int elem) specified in the procedure definition, except that the interface may specify a procedure that is not pure if the procedure is defined to be pure(12.3.2). */ - if (current_ts.type == BT_DERIVED + if ((current_ts.type == BT_DERIVED || current_ts.type == BT_CLASS) && gfc_current_ns->proc_name && gfc_current_ns->proc_name->attr.if_source == IFSRC_IFBODY && current_ts.u.derived->ns != gfc_current_ns) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ffc1ce9..2dbff36 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-06-24 Tobias Burnus <burnus@net-b.de> + + PR fortran/44614 + * gfortran.dg/import8.f90: New. + 2010-06-23 Arnaud Charlet <charlet@adacore.com> * gnat.dg/not_null.adb: Update test case. diff --git a/gcc/testsuite/gfortran.dg/import8.f90 b/gcc/testsuite/gfortran.dg/import8.f90 new file mode 100644 index 0000000..0d88e62 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/import8.f90 @@ -0,0 +1,18 @@ +! { dg-do compile } +! +! PR fortran/44614 +! +! + +implicit none + +type, abstract :: Connection +end type Connection + +abstract interface + subroutine generic_desc(self) + ! <<< missing IMPORT + class(Connection) :: self ! { dg-error "has not been declared within the interface" } + end subroutine generic_desc +end interface +end |