From cbad228156007fa24dda35b0a479b751ee12c9d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Schl=C3=BCter?= Date: Wed, 22 Nov 2006 23:09:14 +0100 Subject: [PATCH] re PR fortran/29441 ([4.1/4.2 only] non-constant parameter (constant) accepted) fortran/ PR fortran/29441 * intrinsic.c (gfc_intrinsic_func_interface): Always check if intrinsic is allowed in initialization expression. testsuite/ PR fortran/29441 * gfortran.dg/initialization_4.f90: New test. From-SVN: r119101 --- gcc/fortran/ChangeLog | 12 +++++++++--- gcc/fortran/intrinsic.c | 3 +-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/initialization_4.f90 | 6 ++++++ 4 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/initialization_4.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b9c5944829ac..8391c965965a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,17 +1,23 @@ -2006-11-22 Paul Thomas +2006-11-22 Tobias Schlueter + + PR fortran/29441 + * intrinsic.c (gfc_intrinsic_func_interface): Always check if + intrinsic is allowed in initialization expression. + +2006-11-22 Paul Thomas PR fortran/25087 * resolve.c (resolve_fl_procedure): Add an error if an external automatic character length function does not have an explicit interface. -2006-11-22 Paul Thomas +2006-11-22 Paul Thomas PR fortran/29652 * interface.c (check_interface1): Use a local value, instead of the dummy, as the inner iterator over interface symbols. -2006-11-21 Paul Thomas +2006-11-21 Paul Thomas PR fortran/29820 * trans-array.c (gfc_get_derived_type): Once done, spread the diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c index c2c37e829a09..d284f3cd8bc5 100644 --- a/gcc/fortran/intrinsic.c +++ b/gcc/fortran/intrinsic.c @@ -3397,8 +3397,7 @@ got_specific: /* TODO: We should probably only allow elemental functions here. */ flag |= (expr->ts.type != BT_INTEGER && expr->ts.type != BT_CHARACTER); - if (pedantic && gfc_init_expr - && flag && gfc_init_expr_extensions (specific)) + if (gfc_init_expr && flag && gfc_init_expr_extensions (specific)) { if (gfc_notify_std (GFC_STD_GNU, "Extension: Evaluation of " "nonstandard initialization expression at %L", &expr->where) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2e65881667cc..ff2a80dad5b1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-11-22 Tobias Schlueter + + PR fortran/29441 + * gfortran.dg/initialization_4.f90: New test. + 2006-11-22 Ira Rosen * gcc.dg/vect/vect-1.c: Additional loop is now vectorizable on diff --git a/gcc/testsuite/gfortran.dg/initialization_4.f90 b/gcc/testsuite/gfortran.dg/initialization_4.f90 new file mode 100644 index 000000000000..b0f24311bdb4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/initialization_4.f90 @@ -0,0 +1,6 @@ +! PR 29441 : No error was given for disallowed function in +! initialization expression, even if -std=f95 was used +! { dg-do compile } +! { dg-options "-std=f95" } +real, parameter :: pi = 4.0*Atan(1.0) ! { dg-error "Evaluation of nonstandard initialization expression" } +end