PR fortran/57535
* trans-array.c (build_class_array_ref): Fix ICE for
function result variables.
2013-06-11 Tobias Burnus <burnus@net-b.de>
PR fortran/57535
* gfortran.dg/class_array_18.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199958
138bc75d-0d04-0410-961f-
82ee72b054a4
+2013-06-11 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/57535
+ * trans-array.c (build_class_array_ref): Fix ICE for
+ function result variables.
+
2013-06-08 Tobias Burnus <burnus@net-b.de>
PR fortran/37336
if (ts == NULL)
return false;
- if (class_ref == NULL)
+ if (class_ref == NULL && expr->symtree->n.sym->attr.function
+ && expr->symtree->n.sym == expr->symtree->n.sym->result)
+ {
+ gcc_assert (expr->symtree->n.sym->backend_decl == current_function_decl);
+ decl = gfc_get_fake_result_decl (expr->symtree->n.sym, 0);
+ }
+ else if (class_ref == NULL)
decl = expr->symtree->n.sym->backend_decl;
else
{
+2013-06-11 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/57535
+ * gfortran.dg/class_array_18.f90: New.
+
2013-06-11 Jan Hubicka <jh@suse.cz>
PR c++/57551
--- /dev/null
+! { dg-do compile }
+!
+! PR fortran/57535
+!
+program test
+ implicit none
+ type t
+ integer :: ii = 55
+ end type t
+contains
+ function func2()
+ class(t), allocatable :: func2(:)
+ allocate(func2(3))
+ func2%ii = [111,222,333]
+ end function func2
+end program test