re PR fortran/45439 ([OOP] SELECT TYPE bogus complaint about INTENT)

2010-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45439
	* match.c (gfc_match_select_type): Give the associate-name the
	FL_VARIABLE attribute.


2010-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45439
	* gfortran.dg/select_type_16.f03: New.

From-SVN: r163626
This commit is contained in:
Janus Weil 2010-08-29 11:56:45 +02:00
parent ae04c688c0
commit f08f8b6a53
4 changed files with 55 additions and 2 deletions

View File

@ -1,4 +1,10 @@
2010-07-21 Steven G. Kargl <kargl@gcc.gnu.org> 2010-08-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/45439
* match.c (gfc_match_select_type): Give the associate-name the
FL_VARIABLE attribute.
2010-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
* simplify.c (gfc_simplify_bessel_n2): Fix indention * simplify.c (gfc_simplify_bessel_n2): Fix indention
and argument type. and argument type.

View File

@ -4532,6 +4532,7 @@ gfc_match_select_type (void)
expr1->symtree->n.sym->attr.untyped = 1; expr1->symtree->n.sym->attr.untyped = 1;
else else
expr1->symtree->n.sym->ts = expr2->ts; expr1->symtree->n.sym->ts = expr2->ts;
expr1->symtree->n.sym->attr.flavor = FL_VARIABLE;
expr1->symtree->n.sym->attr.referenced = 1; expr1->symtree->n.sym->attr.referenced = 1;
expr1->symtree->n.sym->attr.class_ok = 1; expr1->symtree->n.sym->attr.class_ok = 1;
} }

View File

@ -1,4 +1,9 @@
2010-07-21 Steven G. Kargl <kargl@gcc.gnu.org> 2010-08-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/45439
* gfortran.dg/select_type_16.f03: New.
2010-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
Tobias Burnus <burnus@net-b.de> Tobias Burnus <burnus@net-b.de>
* gfortran.dg/bessel_7.f90: Decrease required precision. * gfortran.dg/bessel_7.f90: Decrease required precision.

View File

@ -0,0 +1,41 @@
! { dg-do compile }
!
! PR 45439: [OOP] SELECT TYPE bogus complaint about INTENT
!
! Contributed by Salvatore Filippone <sfilippone@uniroma2.it>
module d_base_mat_mod
implicit none
type :: d_base_sparse_mat
contains
procedure, pass(a) :: mv_to_coo => d_base_mv_to_coo
end type d_base_sparse_mat
interface
subroutine d_base_mv_to_coo(a)
import d_base_sparse_mat
class(d_base_sparse_mat), intent(inout) :: a
end subroutine d_base_mv_to_coo
end interface
type :: d_sparse_mat
class(d_base_sparse_mat), allocatable :: a
end type d_sparse_mat
contains
subroutine bug21(ax)
type(d_sparse_mat), intent(inout) :: ax
select type(aa=> ax%a)
class default
call aa%mv_to_coo()
end select
end subroutine bug21
end module d_base_mat_mod
! { dg-final { cleanup-modules "d_base_mat_mod" } }