From: Tobias Burnus Date: Tue, 6 Mar 2012 17:08:01 +0000 (+0100) Subject: backport: re PR fortran/52452 (INTRINSIC cannot be applied to gfortran's ETIME) X-Git-Tag: releases/gcc-4.6.4~655 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=425a72617c22613dd6fd604d00db257c1f531b46;p=thirdparty%2Fgcc.git backport: re PR fortran/52452 (INTRINSIC cannot be applied to gfortran's ETIME) 2012-03-06 Tobias Burnus Backport from mainline 2012-03-02 Tobias Burnus PR fortran/52452 * resolve.c (resolve_intrinsic): Don't search for a function if we know that it is a subroutine. 2012-03-06 Tobias Burnus Backport from mainline 2012-03-02 Tobias Burnus PR fortran/52452 * gfortran.dg/intrinsic_8.f90: New. From-SVN: r185005 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index cbb253654fb2..6ba084fd8d5a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,12 @@ +2012-03-06 Tobias Burnus + + Backport from mainline + 2012-03-02 Tobias Burnus + + PR fortran/52452 + * resolve.c (resolve_intrinsic): Don't search for a + function if we know that it is a subroutine. + 2012-03-01 Release Manager * GCC 4.6.3 released. diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 0ecfa0da46b8..4ee70932bc84 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -1452,7 +1452,7 @@ resolve_intrinsic (gfc_symbol *sym, locus *loc) if (sym->intmod_sym_id) isym = gfc_intrinsic_function_by_id ((gfc_isym_id) sym->intmod_sym_id); - else + else if (!sym->attr.subroutine) isym = gfc_find_function (sym->name); if (isym) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 567a8deaa451..a2a21565a6f5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2012-03-06 Tobias Burnus + + Backport from mainline + 2012-03-02 Tobias Burnus + + PR fortran/52452 + * gfortran.dg/intrinsic_8.f90: New. + 2012-03-02 Peter Bergner Backport from mainline diff --git a/gcc/testsuite/gfortran.dg/intrinsic_8.f90 b/gcc/testsuite/gfortran.dg/intrinsic_8.f90 new file mode 100644 index 000000000000..a427c70b3012 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/intrinsic_8.f90 @@ -0,0 +1,23 @@ +! { dg-do compile } +! +! PR fortran/52452 +! +! Contributed by Roger Ferrer Ibanez +! +PROGRAM test_etime + IMPLICIT NONE + INTRINSIC :: etime + REAL(4) :: tarray(1:2) + REAL(4) :: result + + CALL etime(tarray, result) +END PROGRAM test_etime + +subroutine test_etime2 + IMPLICIT NONE + INTRINSIC :: etime + REAL(4) :: tarray(1:2) + REAL(4) :: result + + result = etime(tarray) +END subroutine test_etime2