aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>2006-10-02 11:21:45 +0200
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2006-10-02 09:21:45 +0000
commite227ac577f38755f5852702025eb6d504d051880 (patch)
treea1ab6578a128011188d1b1644438d31a6ebebdc4 /gcc
parent82181741c1deec0c06b7df21d7ec51781536ec12 (diff)
downloadgcc-e227ac577f38755f5852702025eb6d504d051880.zip
gcc-e227ac577f38755f5852702025eb6d504d051880.tar.gz
gcc-e227ac577f38755f5852702025eb6d504d051880.tar.bz2
re PR fortran/29210 ([4.1 only] Name parameter in complex constant not allowed in F95)
PR fortran/29210 * primary.c (match_sym_complex_part): Named constants as real or imaginary part of complex a named constant are only allowed in Fortran 2003. * gfortran.dg/complex_parameter_1.f90: New test. From-SVN: r117368
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/primary.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/complex_parameter_1.f9010
4 files changed, 26 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index ff1f55e..e574f18 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2006-10-02 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR fortran/29210
+ * primary.c (match_sym_complex_part): Named constants as real or
+ imaginary part of complex a named constant are only allowed in
+ Fortran 2003.
+
2006-10-01 Brooks Moses <bmoses@stanford.edu>
* gfortran.texi: Corrected references to MALLOC intrinsic.
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index 6f61ad7..7adc908 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -1084,6 +1084,10 @@ match_sym_complex_part (gfc_expr ** result)
return MATCH_ERROR;
}
+ if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: PARAMETER symbol in "
+ "complex constant at %C") == FAILURE)
+ return MATCH_ERROR;
+
switch (sym->value->ts.type)
{
case BT_REAL:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c3efeac..b4c70d2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-10-02 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR fortran/29210
+ * gfortran.dg/complex_parameter_1.f90: New test.
+
2006-10-02 Jakub Jelinek <jakub@redhat.com>
PR c/29154
diff --git a/gcc/testsuite/gfortran.dg/complex_parameter_1.f90 b/gcc/testsuite/gfortran.dg/complex_parameter_1.f90
new file mode 100644
index 0000000..7b631a6
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/complex_parameter_1.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+! { dg-options "-std=f95" }
+ integer,parameter :: i = 42
+ real,parameter :: x = 17.
+ complex,parameter :: z = (1.,2.)
+ complex,parameter :: c1 = (i, 0.5) ! { dg-error "Fortran 2003: PARAMETER symbol in complex constant" }
+ complex,parameter :: c2 = (x, 0.5) ! { dg-error "Fortran 2003: PARAMETER symbol in complex constant" }
+ complex,parameter :: c3 = (z, 0.) ! { dg-error "Fortran 2003: PARAMETER symbol in complex constant" }
+ print *, c1, c2, c3
+ end