From: Tobias Burnus Date: Tue, 31 Jan 2012 18:38:43 +0000 (+0100) Subject: re PR fortran/52029 ([OOP] _copy should be PURE) X-Git-Tag: releases/gcc-4.7.0~635 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0b73eb812e8455701ef3044839f6de2ee895b15b;p=thirdparty%2Fgcc.git re PR fortran/52029 ([OOP] _copy should be PURE) 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. From-SVN: r183770 --- 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