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
This commit is contained in:
Paul Thomas 2009-07-10 04:37:19 +00:00
parent b9263ae590
commit 1d8e1d5d9f
4 changed files with 25 additions and 0 deletions

View File

@ -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

View File

@ -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;

View File

@ -1,3 +1,8 @@
2009-07-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39334
* gfortran.dg/recursive_parameter_1.f90: New test.
2009-07-09 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.dg/c_kind_tests_2.f03: clean-up leftover module(s).

View File

@ -0,0 +1,11 @@
! { dg-do compile }
! Tests the fix for PR39334 in which the recursive parameter declaration
! caused a sgfault.
!
! Reported by James van Buskirk on comp.lang.fortran
!
program recursive_parameter
implicit none
integer, parameter :: dp = kind(1.0_dp) ! { dg-error "Missing kind-parameter" }
write(*,*) dp ! { dg-error "has no IMPLICIT type" }
end program recursive_parameter