From: Tobias Burnus Date: Tue, 6 Mar 2012 17:09:48 +0000 (+0100) Subject: backport: re PR fortran/52452 (INTRINSIC cannot be applied to gfortran's ETIME) X-Git-Tag: releases/gcc-4.5.4~191 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1c43e189cae041a75fc01e0840f164e12ab03d6;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: r185006 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 812be0e95af8..9271062ecf50 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-02-23 Tobias Burnus PR fortran/52335 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 7abddb593a0f..e410f62015eb 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -1211,7 +1211,7 @@ resolve_intrinsic (gfc_symbol *sym, locus *loc) gfc_find_subroutine directly to check whether it is a function or subroutine. */ - if ((isym = gfc_find_function (sym->name))) + if (!sym->attr.subroutine && (isym = gfc_find_function (sym->name))) { if (sym->ts.type != BT_UNKNOWN && gfc_option.warn_surprising && !sym->attr.implicit_type) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cff865b5742c..e4a7cf9901f5 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-06 Jakub Jelinek Backported from 4.6 branch 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