diff options
author | Janus Weil <janus@gcc.gnu.org> | 2010-05-15 15:52:33 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2010-05-15 15:52:33 +0200 |
commit | f8dde8af6f4bf8d16fcb12544caef0aad3da56f2 (patch) | |
tree | a70032d51f8a223474b6f5114ee467e48b7758f9 /gcc/fortran/trans-intrinsic.c | |
parent | 46c3001944a778ddd079de47697c092bfd82419a (diff) | |
download | gcc-f8dde8af6f4bf8d16fcb12544caef0aad3da56f2.zip gcc-f8dde8af6f4bf8d16fcb12544caef0aad3da56f2.tar.gz gcc-f8dde8af6f4bf8d16fcb12544caef0aad3da56f2.tar.bz2 |
re PR fortran/43207 ([OOP] invalid (pointer) assignment to and from abstract non-polymorphic expressions)
2010-05-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/43207
PR fortran/43969
* gfortran.h (gfc_class_null_initializer): New prototype.
* expr.c (gfc_class_null_initializer): New function to build a NULL
initializer for CLASS pointers.
* symbol.c (gfc_build_class_symbol): Modify internal naming of class
containers. Remove default NULL initialization of $data component.
* trans.c (gfc_allocate_array_with_status): Fix wording of an error
message.
* trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
Use new function 'gfc_class_null_initializer'.
* trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
class variables.
2010-05-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/43207
PR fortran/43969
* gfortran.dg/class_18.f03: New.
* gfortran.dg/class_19.f03: New.
From-SVN: r159431
Diffstat (limited to 'gcc/fortran/trans-intrinsic.c')
-rw-r--r-- | gcc/fortran/trans-intrinsic.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index 1ffe284..257b684 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -4529,6 +4529,8 @@ gfc_conv_allocated (gfc_se *se, gfc_expr *expr) { /* Allocatable scalar. */ arg1se.want_pointer = 1; + if (arg1->expr->ts.type == BT_CLASS) + gfc_add_component_ref (arg1->expr, "$data"); gfc_conv_expr (&arg1se, arg1->expr); tmp = arg1se.expr; } |