aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/match.c
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2015-10-24 16:20:26 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2015-10-24 16:20:26 +0000
commit8d48826b99b81b7ed96c5db08ec8334a2b0c6557 (patch)
treefc9895b536072c30abae69ea95b29645078ed28c /gcc/fortran/match.c
parentae1158c42534a9becfb51585b9b69df8d0d13a10 (diff)
downloadgcc-8d48826b99b81b7ed96c5db08ec8334a2b0c6557.zip
gcc-8d48826b99b81b7ed96c5db08ec8334a2b0c6557.tar.gz
gcc-8d48826b99b81b7ed96c5db08ec8334a2b0c6557.tar.bz2
re PR fortran/67805 (ICE on array constructor with wrong character specification)
2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/67805 * array.c (gfc_match_array_constructor): Check for error from type spec matching. * decl.c (char_len_param_value): Check for valid of charlen parameter. Reap dead code dating to 2008. match.c (gfc_match_type_spec): Special case the keyword use in REAL. 2015-10-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/67805 * gfortran.dg/pr67805.f90: New testcase. * gfortran.dg/array_constructor_26.f03: Update testcase. * gfortran.dg/array_constructor_27.f03: Ditto. * gfortran.dg/char_type_len_2.f90: Ditto. * gfortran.dg/pr67802.f90: Ditto. * gfortran.dg/used_before_typed_3.f90: Ditto. From-SVN: r229287
Diffstat (limited to 'gcc/fortran/match.c')
-rw-r--r--gcc/fortran/match.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 74f26b7..dda2d5a 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -1939,6 +1939,11 @@ kind_selector:
if (m == MATCH_NO)
m = MATCH_YES; /* No kind specifier found. */
+ /* gfortran may have matched REAL(a=1), which is the keyword form of the
+ intrinsic procedure. */
+ if (ts->type == BT_REAL && m == MATCH_ERROR)
+ m = MATCH_NO;
+
return m;
}