re PR fortran/52452 (INTRINSIC cannot be applied to gfortran's ETIME)
authorTobias Burnus <burnus@net-b.de>
Fri, 2 Mar 2012 11:00:04 +0000 (12:00 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 2 Mar 2012 11:00:04 +0000 (12:00 +0100)
2012-03-02  Tobias Burnus  <burnus@net-b.de>

        PR fortran/52452
        * resolve.c (resolve_intrinsic): Don't search for a
        function if we know that it is a subroutine.

2012-03-02  Tobias Burnus  <burnus@net-b.de>

        PR fortran/52452
        * gfortran.dg/intrinsic_8.f90: New.

From-SVN: r184778

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/intrinsic_8.f90 [new file with mode: 0644]

index 48670876a394a86ea81db4a6bce397f08f50e46b..c1f959305c64cf10c23be01fdae2081f304a453b 100644 (file)
@@ -1,3 +1,9 @@
+2012-03-02  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/52452
+       * resolve.c (resolve_intrinsic): Don't search for a
+       function if we know that it is a subroutine.
+
 2012-02-29  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/52386
index 4dcf9b1b07ce998dc63d034e130414a98a39edcb..824bc257b79d5836488b6b92b8966b9e2ce99e01 100644 (file)
@@ -1496,7 +1496,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)
index b17f4565920c11d1e208c46b4396e9fc1fb32b44..c8a8f758dae0ec09ba5dd54b6dbffece17b9674b 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-02  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/52452
+       * gfortran.dg/intrinsic_8.f90: New.
+
 2012-03-01  Kai Tietz  <ktietz@redhat.com>
 
        * gcc.dg/torture/pr47917.c: Make test using POSIX-printf
diff --git a/gcc/testsuite/gfortran.dg/intrinsic_8.f90 b/gcc/testsuite/gfortran.dg/intrinsic_8.f90
new file mode 100644 (file)
index 0000000..a427c70
--- /dev/null
@@ -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