From: burnus Date: Tue, 31 Jan 2012 18:38:43 +0000 (+0000) Subject: 2012-01-31 Tobias Burnus X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8116c900098f598f0f826713ec825fd60746f19c;p=thirdparty%2Fgcc.git 2012-01-31 Tobias Burnus PR fortran/52029 * class.c (gfc_find_derived_vtab): Mark _copy function as pure. 2012-01-31 Tobias Burnus PR fortran/52029 * gfortran.dg/class_49.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183770 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b39e03798f43..a0397cc3c7d2 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2012-01-31 Tobias Burnus + + PR fortran/52029 + * class.c (gfc_find_derived_vtab): Mark _copy function as pure. + 2012-01-31 Tobias Burnus PR fortran/52013 diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index 3ff6a0bd1c1a..0d47979cf274 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -717,6 +717,7 @@ gfc_find_derived_vtab (gfc_symbol *derived) sub_ns->proc_name = copy; copy->attr.flavor = FL_PROCEDURE; copy->attr.subroutine = 1; + copy->attr.pure = 1; copy->attr.if_source = IFSRC_DECL; /* This is elemental so that arrays are automatically treated correctly by the scalarizer. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3e0ca1e4ab89..8eb797e19a94 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-01-31 Tobias Burnus + + PR fortran/52029 + * gfortran.dg/class_49.f90: New. + 2012-01-31 Tobias Burnus PR fortran/52013 diff --git a/gcc/testsuite/gfortran.dg/class_49.f90 b/gcc/testsuite/gfortran.dg/class_49.f90 new file mode 100644 index 000000000000..0c0b2b8019fb --- /dev/null +++ b/gcc/testsuite/gfortran.dg/class_49.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! +! PR fortran/52029 +! + +elemental subroutine foo() + type t + end type t + class(t), allocatable :: x + if (allocated(x)) i = 5 +end