summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>2006-11-22 22:09:14 +0000
committertobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>2006-11-22 22:09:14 +0000
commit1c5afb804e03f0a2a071cdf5b2a5c25ab6fa094b (patch)
treedc9058a698d40c299a8776709b3bbceac29579fd
parent376fbe04ddd5d06dc6777b66d6bd074bd311ac72 (diff)
downloadgcc-1c5afb804e03f0a2a071cdf5b2a5c25ab6fa094b.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119101 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog12
-rw-r--r--gcc/fortran/intrinsic.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/initialization_4.f906
4 files changed, 21 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index b9c5944829a..8391c965965 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,17 +1,23 @@
-2006-11-22 Paul Thomas <pault@gcc.gnu.org>
+2006-11-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/29441
+ * intrinsic.c (gfc_intrinsic_func_interface): Always check if
+ intrinsic is allowed in initialization expression.
+
+2006-11-22 Paul Thomas <pault@gcc.gnu.org>
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 <pault@gcc.gnu.org>
+2006-11-22 Paul Thomas <pault@gcc.gnu.org>
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 <pault@gcc.gnu.org>
+2006-11-21 Paul Thomas <pault@gcc.gnu.org>
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 c2c37e829a0..d284f3cd8bc 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 2e65881667c..ff2a80dad5b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-11-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/29441
+ * gfortran.dg/initialization_4.f90: New test.
+
2006-11-22 Ira Rosen <irar@il.ibm.com>
* 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 00000000000..b0f24311bdb
--- /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