aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-11-16 22:38:21 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-11-16 22:38:21 +0000
commitf5fd0cf12def6df8ac3c6a95e886c73debc21677 (patch)
treee63f37c7e70bfdb8ebc41711e7e275e4f192310c /gcc
parentfb0a0e15917ce9b5b28ef8b0f250cbfc1a807d59 (diff)
downloadgcc-f5fd0cf12def6df8ac3c6a95e886c73debc21677.zip
gcc-f5fd0cf12def6df8ac3c6a95e886c73debc21677.tar.gz
gcc-f5fd0cf12def6df8ac3c6a95e886c73debc21677.tar.bz2
re PR fortran/33957 (gfortran rejects valid initialization expression)
PR fortran/33957 * gfortran.dg/initialization_15.f90 : New test. * expr.c (check_inquiry): Don't call gfc_error now. From-SVN: r130246
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/expr.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/initialization_15.f907
4 files changed, 18 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 57670b5..a889682 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,10 @@
2007-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+ PR fortran/33957
+ * expr.c (check_inquiry): Don't call gfc_error now.
+
+2007-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
PR fortran/33739
PR fortran/34084
* scanner.c (start_source_file, end_source_file,
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index c7edb49..22df131 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -1981,11 +1981,7 @@ check_inquiry (gfc_expr *e, int not_restricted)
break;
if (functions[i] == NULL)
- {
- gfc_error ("Inquiry function '%s' at %L is not permitted "
- "in an initialization expression", name, &e->where);
- return MATCH_ERROR;
- }
+ return MATCH_ERROR;
/* At this point we have an inquiry function with a variable argument. The
type of the variable might be undefined, but we need it now, because the
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5da0c1d..2176152 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/33957
+ * gfortran.dg/initialization_15.f90 : New test.
+
2007-11-16 Richard Guenther <rguenther@suse.de>
PR middle-end/34030
diff --git a/gcc/testsuite/gfortran.dg/initialization_15.f90 b/gcc/testsuite/gfortran.dg/initialization_15.f90
new file mode 100644
index 0000000..a3eb1b9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/initialization_15.f90
@@ -0,0 +1,7 @@
+! { dg-do compile }
+! Test by Dominique d'Humieres (PR 33957)
+function bug(i) result(c)
+ integer, pointer :: i
+ character(len=merge(1,2, associated(i))) :: c
+ c = ""
+end function bug