From 6e7f08addb117df3184e6756f25f2024eff7f003 Mon Sep 17 00:00:00 2001 From: janus Date: Sat, 2 Oct 2010 10:38:42 +0000 Subject: [PATCH] 2010-10-02 Janus Weil PR fortran/45748 * resolve.c (resolve_formal_arglist): Avoid setting default type for formal arguments of intrinsic procedures. 2010-10-02 Janus Weil PR fortran/45748 * gfortran.dg/intrinsic_6.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164901 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/resolve.c | 8 +++----- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/intrinsic_6.f90 | 11 +++++++++++ 4 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/intrinsic_6.f90 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 + + PR fortran/45748 + * resolve.c (resolve_formal_arglist): Avoid setting default type for + formal arguments of intrinsic procedures. + 2010-09-30 Janus Weil 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 + + PR fortran/45748 + * gfortran.dg/intrinsic_6.f90: New. + 2010-10-02 Thomas Koenig 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 + +SUBROUTINE BUG(WORK) + INTRINSIC MAX + DOUBLE PRECISION WORK(MAX(2,3)) +END -- 2.7.4