aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2009-07-10 04:37:19 +0000
committerPaul Thomas <pault@gcc.gnu.org>2009-07-10 04:37:19 +0000
commit1d8e1d5d9f87473eb7cae2c3b4109beeb87ce3da (patch)
treeacac293dc5f471528a2212769313f49c38c37ac8 /gcc/fortran
parentb9263ae5900c9881553383d8c66ea25a2b02e52c (diff)
downloadgcc-1d8e1d5d9f87473eb7cae2c3b4109beeb87ce3da.zip
gcc-1d8e1d5d9f87473eb7cae2c3b4109beeb87ce3da.tar.gz
gcc-1d8e1d5d9f87473eb7cae2c3b4109beeb87ce3da.tar.bz2
re PR fortran/39334 (Recusive parameter kind produces segfault)
2009-07-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/39334 * primary.c (match_kind_param): Return MATCH_NO if the symbol has no value. 2009-07-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/39334 * gfortran.dg/recursive_parameter_1.f90: New test. From-SVN: r149456
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/primary.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 5b1ed77..20894cb 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2009-07-10 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/39334
+ * primary.c (match_kind_param): Return MATCH_NO if the symbol
+ has no value.
+
2008-07-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40629
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index 4a84aed..8013cc8 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -57,6 +57,9 @@ match_kind_param (int *kind)
if (sym->attr.flavor != FL_PARAMETER)
return MATCH_NO;
+ if (sym->value == NULL)
+ return MATCH_NO;
+
p = gfc_extract_int (sym->value, kind);
if (p != NULL)
return MATCH_NO;