diff options
author | Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> | 2016-02-27 04:57:16 -0700 |
---|---|---|
committer | Alessandro Fanfarillo <afanfa@gcc.gnu.org> | 2016-02-27 04:57:16 -0700 |
commit | 83aa73e7f8ee23726c2da4c2b0b7805ff524dcd9 (patch) | |
tree | 07c158d42233921a9f190d43a9742094ba449fff | |
parent | bd522678f0bb10849e24c10391d8a244b5098815 (diff) | |
download | gcc-83aa73e7f8ee23726c2da4c2b0b7805ff524dcd9.zip gcc-83aa73e7f8ee23726c2da4c2b0b7805ff524dcd9.tar.gz gcc-83aa73e7f8ee23726c2da4c2b0b7805ff524dcd9.tar.bz2 |
Right size for events
From-SVN: r233779
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/trans-types.c | 3 | ||||
-rw-r--r-- | gcc/fortran/trans.c | 2 |
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6614793..5f1bc4f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2016-02-27 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> + + * trans.c (gfc_allocate_allocatable): size conversion + from byte to number of elements for event variables. + * trans-types.c (gfc_get_derived_type): event variables + represented as a pointer (like lock variable). + 2016-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/61156 diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index f3d0841..a71cf0b 100644 --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -2370,7 +2370,8 @@ gfc_get_derived_type (gfc_symbol * derived) if (derived->attr.unlimited_polymorphic || (flag_coarray == GFC_FCOARRAY_LIB && derived->from_intmod == INTMOD_ISO_FORTRAN_ENV - && derived->intmod_sym_id == ISOFORTRAN_LOCK_TYPE)) + && (derived->intmod_sym_id == ISOFORTRAN_LOCK_TYPE + || derived->intmod_sym_id == ISOFORTRAN_EVENT_TYPE))) return ptr_type_node; if (flag_coarray != GFC_FCOARRAY_LIB diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index e71430b..c6688d3 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -820,7 +820,7 @@ gfc_allocate_allocatable (stmtblock_t * block, tree mem, tree size, tree token, the FE only passes the pointer around and leaves the actual representation to the library. Hence, we have to convert back to the number of elements. */ - if (lock_var) + if (lock_var || event_var) size = fold_build2_loc (input_location, TRUNC_DIV_EXPR, size_type_node, size, TYPE_SIZE_UNIT (ptr_type_node)); |