re PR fortran/56575 (An invalid OO code causes ICE)
2013-03-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/56575 * expr.c (gfc_default_initializer): Check that a class declared type has any components. * resolve.c (resolve_fl_derived0): On failing the test for C437 set the type to BT_UNKNOWN to prevent repeat error messages. 2013-03-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/56575 * gfortran.dg/class_56.f90: New test. From-SVN: r196580
This commit is contained in:
parent
d16d44d338
commit
8ec4321faf
@ -1,3 +1,11 @@
|
||||
2013-03-10 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/56575
|
||||
* expr.c (gfc_default_initializer): Check that a class declared
|
||||
type has any components.
|
||||
* resolve.c (resolve_fl_derived0): On failing the test for C437
|
||||
set the type to BT_UNKNOWN to prevent repeat error messages.
|
||||
|
||||
2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
|
||||
|
||||
PR fortran/56477
|
||||
|
@ -3886,7 +3886,8 @@ gfc_default_initializer (gfc_typespec *ts)
|
||||
types (otherwise we could use gfc_has_default_initializer()). */
|
||||
for (comp = ts->u.derived->components; comp; comp = comp->next)
|
||||
if (comp->initializer || comp->attr.allocatable
|
||||
|| (comp->ts.type == BT_CLASS && CLASS_DATA (comp)->attr.allocatable))
|
||||
|| (comp->ts.type == BT_CLASS && CLASS_DATA (comp)
|
||||
&& CLASS_DATA (comp)->attr.allocatable))
|
||||
break;
|
||||
|
||||
if (!comp)
|
||||
|
@ -12866,6 +12866,8 @@ resolve_fl_derived0 (gfc_symbol *sym)
|
||||
{
|
||||
gfc_error ("Component '%s' with CLASS at %L must be allocatable "
|
||||
"or pointer", c->name, &c->loc);
|
||||
/* Prevent a recurrence of the error. */
|
||||
c->ts.type = BT_UNKNOWN;
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-03-10 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/56575
|
||||
* gfortran.dg/class_56.f90: New test.
|
||||
|
||||
2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
PR middle-end/56524
|
||||
@ -330,7 +335,7 @@
|
||||
2013-02-21 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR tree-optimization/56398
|
||||
* g++.dg/torture/pr56398.C: New test.
|
||||
* g++.dg/torture/pr56398.C: New test.
|
||||
|
||||
2013-02-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
|
22
gcc/testsuite/gfortran.dg/class_56.f90
Normal file
22
gcc/testsuite/gfortran.dg/class_56.f90
Normal file
@ -0,0 +1,22 @@
|
||||
! { dg-do compile }
|
||||
! Test fix for PR56575.
|
||||
!
|
||||
! Contributed by A Kasahara <latlon90180+gcc_bugzilla@gmail.com>
|
||||
!
|
||||
module lib_container
|
||||
implicit none
|
||||
|
||||
type:: Object
|
||||
end type Object
|
||||
|
||||
type:: Container
|
||||
class(Object):: v ! { dg-error "must be allocatable or pointer" }
|
||||
end type Container
|
||||
|
||||
contains
|
||||
|
||||
subroutine proc(self)
|
||||
class(Container), intent(inout):: self
|
||||
end subroutine proc
|
||||
end module lib_container
|
||||
|
Loading…
Reference in New Issue
Block a user