Commit c9935123 by Steven G. Kargl

re PR fortran/69398 ([OOP] ICE on class with duplicate dimension attribute specified)

2019-06-19  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69398
	* decl.c (attr_decl): Check for duplicate DIMENSION attribute for a
	CLASS entity.

2019-06-19  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69398
	* gfortran.dg/pr69398.f90: New test.

From-SVN: r272481
parent ee3aab68
2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69398
* decl.c (attr_decl): Check for duplicate DIMENSION attribute for a
CLASS entity.
2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/87907
* resolve.c (resolve_contained_fntype): Do not dereference a NULL
pointer.
......
......@@ -8372,6 +8372,15 @@ attr_decl1 (void)
to the first component, or '_data' field. */
if (sym->ts.type == BT_CLASS && sym->ts.u.derived->attr.is_class)
{
/* gfc_set_array_spec sets sym->attr not CLASS_DATA(sym)->attr. Check
for duplicate attribute here. */
if (CLASS_DATA(sym)->attr.dimension == 1 && as)
{
gfc_error ("Duplicate DIMENSION attribute at %C");
m = MATCH_ERROR;
goto cleanup;
}
if (!gfc_copy_attr (&CLASS_DATA(sym)->attr, &current_attr, &var_locus))
{
m = MATCH_ERROR;
......
2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69398
* gfortran.dg/pr69398.f90: New test.
2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/87907
* gfortran.dg/pr87907.f90: New testcase.
......
! { dg-do compile }
! PR fortran/69398
! Contributed by Gerhard Steinmetz
program p
type t
end type
class(t), allocatable :: z(:)
target :: z(:) ! { dg-error "Duplicate DIMENSION attribute" }
allocate (z(2))
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment