aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2010-10-02 12:38:42 +0200
committerJanus Weil <janus@gcc.gnu.org>2010-10-02 12:38:42 +0200
commit8b932a71067075d3e0fcf99fc5bce499df08d96f (patch)
treebdca3969bcbf8e7a2701e1198f9c8178065d5bea /gcc
parent9dcee88de866978161c324d206778237d82ec77f (diff)
downloadgcc-8b932a71067075d3e0fcf99fc5bce499df08d96f.zip
gcc-8b932a71067075d3e0fcf99fc5bce499df08d96f.tar.gz
gcc-8b932a71067075d3e0fcf99fc5bce499df08d96f.tar.bz2
re PR fortran/45748 (-fimplicit-none failures when using intrinsic MAX)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/resolve.c8
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/intrinsic_6.f9011
4 files changed, 25 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index b618e7d..417a60a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 60de8e5..5cac71e 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -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);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4d947da..721f3bb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..1dccb55
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/intrinsic_6.f90
@@ -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