[patch, fortran] Fix PR 70260, ICE on invalid

Thomas Koenig tkoenig@netcologne.de
Sun Nov 11 15:59:00 GMT 2018


Hello world,

the attached patch fixes both ICEs in the PR by adding some tests.
It was necessary to shuffle around a bit of code, plus to make sure that
double error reporting did not become too bad.

Regression-tested. OK for trunk?

Regards

	Thomas


2018-11-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/70260
	* expr.c (gfc_check_assign): Reject assigning to an external
	symbol.
	(gfc_check_pointer_assign): Add suppress_type_test
	argument. Insert line after if. A non-proc pointer can not point
	to a constant.  Only check types if suppress_type_test is false.
	* gfortran.h (gfc_check_pointer_assign): Add optional
	suppress_type_test argument.
	* resolve.c (gfc_resolve_code):  Move up gfc_check_pointer_assign
	and give it the extra argument.
	(resolve_fl_procedure): Set error on value for a function with
	an inizializer.

2018-11-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/70260
	* gfortran.dg/proc_ptr_result_5.f90:  Add dg-error directive.
	* gfortran.dg/protected_4.f90: Split line to allow for extra error.
	* gfortran.dg/protected_6.f90: Likewise.
	* gfortran.dg/assign_11.f90: New test.
	* gfortran.dg/pointer_assign_12.f90: New test.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p4.diff
Type: text/x-patch
Size: 5598 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20181111/ba943c15/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: assign_11.f90
Type: text/x-fortran
Size: 240 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20181111/ba943c15/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pointer_assign_12.f90
Type: text/x-fortran
Size: 342 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20181111/ba943c15/attachment-0002.bin>


More information about the Gcc-patches mailing list