]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/45748 (-fimplicit-none failures when using intrinsic MAX)
authorJanus Weil <janus@gcc.gnu.org>
Sat, 2 Oct 2010 10:38:42 +0000 (12:38 +0200)
committerJanus Weil <janus@gcc.gnu.org>
Sat, 2 Oct 2010 10:38:42 +0000 (12:38 +0200)
2010-10-02  Janus Weil  <janus@gcc.gnu.org>

PR fortran/45748
* resolve.c (resolve_formal_arglist): Avoid setting default type for
formal arguments of intrinsic procedures.

2010-10-02  Janus Weil  <janus@gcc.gnu.org>

PR fortran/45748
* gfortran.dg/intrinsic_6.f90: New.

From-SVN: r164901

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

index b618e7d75a8d9ea4c0ba014dbc43dfcf3879756d..417a60a0c2db3b7b6eff86345c32156751297133 100644 (file)
@@ -1,3 +1,9 @@
+2010-10-02  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45748
+       * resolve.c (resolve_formal_arglist): Avoid setting default type for
+       formal arguments of intrinsic procedures.
+
 2010-09-30  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/45828
index 60de8e591b327e6b882f3a8c160bc901ebf6252f..5cac71e51a9fbdc5911b2bed16860a51563eeb97 100644 (file)
@@ -297,11 +297,9 @@ resolve_formal_arglist (gfc_symbol *proc)
          continue;
        }
 
-      if (sym->ts.type == BT_UNKNOWN)
-       {
-         if (!sym->attr.function || sym->result == sym)
-           gfc_set_default_type (sym, 1, sym->ns);
-       }
+      if (sym->ts.type == BT_UNKNOWN && !proc->attr.intrinsic
+         && (!sym->attr.function || sym->result == sym))
+       gfc_set_default_type (sym, 1, sym->ns);
 
       gfc_resolve_array_spec (sym->as, 0);
 
index 4d947dafc11d991340065d213c57f8b5c9f41ee3..721f3bb8df0e4548437b0321e97da81b283f445d 100644 (file)
@@ -1,3 +1,8 @@
+2010-10-02  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45748
+       * gfortran.dg/intrinsic_6.f90: New.
+
 2010-10-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/42831
diff --git a/gcc/testsuite/gfortran.dg/intrinsic_6.f90 b/gcc/testsuite/gfortran.dg/intrinsic_6.f90
new file mode 100644 (file)
index 0000000..1dccb55
--- /dev/null
@@ -0,0 +1,11 @@
+! { dg-do compile }
+! { dg-options "-fimplicit-none" }
+!
+! PR 45748: [4.5/4.6 Regression] -fimplicit-none failures when using intrinsic MAX
+!
+! Contributed by Themos Tsikas <themos.tsikas@gmail.com>
+
+SUBROUTINE BUG(WORK)
+  INTRINSIC MAX
+  DOUBLE PRECISION WORK(MAX(2,3))
+END