diff options
author | Janus Weil <janus@gcc.gnu.org> | 2009-10-13 18:12:24 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2009-10-13 18:12:24 +0200 |
commit | f43085aaa3fef8263b4afc1c2b5f9721d9bdd8b2 (patch) | |
tree | 0ad66bf731ba1ac3e83d8ded18791c03cb46d62a /gcc/fortran/trans-stmt.h | |
parent | b9e467a24acb203f5a087721a74943a3af67f16a (diff) | |
download | gcc-f43085aaa3fef8263b4afc1c2b5f9721d9bdd8b2.zip gcc-f43085aaa3fef8263b4afc1c2b5f9721d9bdd8b2.tar.gz gcc-f43085aaa3fef8263b4afc1c2b5f9721d9bdd8b2.tar.bz2 |
re PR fortran/41581 ([OOP] Allocation of a CLASS with SOURCE=<class> does not work)
2009-10-13 Janus Weil <janus@gcc.gnu.org>
PR fortran/41581
* decl.c (encapsulate_class_symbol): Add new component '$size'.
* resolve.c (resolve_allocate_expr): Move CLASS handling to
gfc_trans_allocate.
(resolve_class_assign): Replaced by gfc_trans_class_assign.
(resolve_code): Remove calls to resolve_class_assign.
* trans.c (gfc_trans_code): Use new function gfc_trans_class_assign.
* trans-expr.c (get_proc_ptr_comp): Fix a memory leak.
(gfc_conv_procedure_call): For CLASS dummies, set the
$size component.
(gfc_trans_class_assign): New function, replacing resolve_class_assign.
* trans-stmt.h (gfc_trans_class_assign): New prototype.
* trans-stmt.c (gfc_trans_allocate): Use correct size when allocating
CLASS variables. Do proper initialization. Move some code here from
resolve_allocate_expr.
2009-10-13 Janus Weil <janus@gcc.gnu.org>
PR fortran/41581
* gfortran.dg/class_allocate_2.f03: Modified.
* gfortran.dg/class_allocate_3.f03: New test case.
From-SVN: r152715
Diffstat (limited to 'gcc/fortran/trans-stmt.h')
-rw-r--r-- | gcc/fortran/trans-stmt.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/fortran/trans-stmt.h b/gcc/fortran/trans-stmt.h index 0b8461c..e6faacd 100644 --- a/gcc/fortran/trans-stmt.h +++ b/gcc/fortran/trans-stmt.h @@ -29,6 +29,7 @@ tree gfc_trans_code (gfc_code *); tree gfc_trans_assign (gfc_code *); tree gfc_trans_pointer_assign (gfc_code *); tree gfc_trans_init_assign (gfc_code *); +tree gfc_trans_class_assign (gfc_code *code); /* trans-stmt.c */ tree gfc_trans_cycle (gfc_code *); |