aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2011-08-24 15:11:08 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2011-08-24 15:11:08 +0200
commit40885767dcb0f8225450ab93d001fdf800cf4205 (patch)
tree9ad24c7dc71f8f332ea010635e201a3e6e1c9882
parent9fcb758bdcc346b55cfd467e42f74881db5ab528 (diff)
downloadgcc-40885767dcb0f8225450ab93d001fdf800cf4205.zip
gcc-40885767dcb0f8225450ab93d001fdf800cf4205.tar.gz
gcc-40885767dcb0f8225450ab93d001fdf800cf4205.tar.bz2
re PR fortran/50163 (ICE: initialization expression)
2011-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/50163 * expr.c (check_init_expr): Return when an error occured. 2011-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/50163 * gfortran.dg/initialization_28.f90: New. From-SVN: r178038
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/expr.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/initialization_28.f909
4 files changed, 22 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 7e8d1af..ed4dc77 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/50163
+ * expr.c (check_init_expr): Return when an error occured.
+
2011-08-24 Joseph Myers <joseph@codesourcery.com>
* Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 9922094..b050b11 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -2481,6 +2481,9 @@ check_init_expr (gfc_expr *e)
m = MATCH_ERROR;
}
+ if (m == MATCH_ERROR)
+ return FAILURE;
+
/* Try to scalarize an elemental intrinsic function that has an
array argument. */
isym = gfc_find_function (e->symtree->n.sym->name);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9664117..d140a43 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/50163
+ * gfortran.dg/initialization_28.f90: New.
+
2011-08-24 Richard Guenther <rguenther@suse.de>
PR tree-optimization/50067
diff --git a/gcc/testsuite/gfortran.dg/initialization_28.f90 b/gcc/testsuite/gfortran.dg/initialization_28.f90
new file mode 100644
index 0000000..f533053
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/initialization_28.f90
@@ -0,0 +1,9 @@
+! { dg-do compile }
+!
+! PR fortran/50163
+!
+! Contributed by Philip Mason
+!
+character(len=2) :: xx ='aa'
+integer :: iloc=index(xx,'bb') ! { dg-error "has not been declared or is a variable" }
+end