re PR fortran/66545 (ICE on using undefined parameter/variable values)

2015-07-02  Steven G. Kargl   <kargl@gcc.gnu.org>

	PR fortran/66545
	* primary.c (match_sym_complex_part): Do not dereference NULL pointer.

2015-07-02  Steven G. Kargl   <kargl@gcc.gnu.org>

	PR fortran/66545
	* gfortran.dg/pr66545_1.f90: New test.
	* gfortran.dg/pr66545_2.f90: New test.

From-SVN: r225348
This commit is contained in:
Steven G. Kargl 2015-07-02 17:02:10 +00:00
parent e62bb796ef
commit 70db5f0228
5 changed files with 54 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66545
* primary.c (match_sym_complex_part): Do not dereference NULL pointer.
2015-07-01 Thomas Koenig <tkoenig@gcc.gnu.org>
* arith.c (gfc_arith_divide): With -Winteger-division,

View File

@ -1254,6 +1254,9 @@ match_sym_complex_part (gfc_expr **result)
return MATCH_ERROR;
}
if (!sym->value)
goto error;
if (!gfc_numeric_ts (&sym->value->ts))
{
gfc_error ("Numeric PARAMETER required in complex constant at %C");

View File

@ -1,3 +1,9 @@
2015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66545
* gfortran.dg/pr66545_1.f90: New test.
* gfortran.dg/pr66545_2.f90: New test.
2015-07-02 Alan Lawrence <alan.lawrence@arm.com>
* gcc.dg/vect/vect-strided-a-u16-i4.c (main1): Narrow scope of x,y,z,w.

View File

@ -0,0 +1,17 @@
! { dg-do compile }
! { dg-options "-Wall" }
! PR fortran/66545
!
subroutine p
complex, parameter :: c1 = (c1) ! { dg-error "before its definition" }
complex, parameter :: c2 = c2 ! { dg-error "before its definition" }
complex :: c3 = (c3) ! { dg-error "has not been declared or is a variable" }
complex :: c4 = c4 ! { dg-error "has not been declared or is a variable" }
end subroutine p
subroutine q
real, parameter :: r1 = (r1) ! { dg-error "before its definition" }
real, parameter :: r2 = r2 ! { dg-error "before its definition" }
real :: r3 = (r3) ! { dg-error "has not been declared or is a variable" }
real :: r4 = r4 ! { dg-error "has not been declared or is a variable" }
end subroutine q

View File

@ -0,0 +1,23 @@
! { dg-do compile }
! { dg-options "-Wuninitialized" }
! PR fortran/66545
!
program foo
implicit none
call p1
call q1
end program foo
subroutine p1
complex :: c5
complex :: c6
c5 = (c5) ! { dg-warning "used uninitialized in this" }
c6 = c6 ! { dg-warning "used uninitialized in this" }
end subroutine p1
subroutine q1
real :: r5
real :: r6
r5 = (r5) ! { dg-warning "used uninitialized in this" }
r6 = r6 ! { dg-warning "used uninitialized in this" }
end subroutine q1