From: Alessandro Fanfarillo Date: Sat, 27 Feb 2016 11:57:16 +0000 (-0700) Subject: Right size for events X-Git-Tag: basepoints/gcc-7~715 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=83aa73e7f8ee23726c2da4c2b0b7805ff524dcd9;p=thirdparty%2Fgcc.git Right size for events From-SVN: r233779 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 661479302f48..5f1bc4f497f4 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2016-02-27 Alessandro Fanfarillo + + * 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 PR fortran/61156 diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index f3d084194de1..a71cf0bcd27a 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 e71430baeb88..c6688d351a79 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));