Background ---------- An overview email, describing the UPC-related changes is here: https://gcc.gnu.org/ml/gcc-patches/2015-12/msg00005.html
The GUPC branch is described here: http://gcc.gnu.org/projects/gupc.html The UPC-related source code differences are summarized here: http://gccupc.org/gupc-changes All languages (c, c++, fortran, go, lto, objc, obj-c++) have been bootstrapped; no test suite regressions were introduced, relative to the GCC trunk. If you are on the cc-list, your name was chosen either because you are listed as a maintainer for the area that applies to the patches described in this email, or you were a frequent contributor of patches made to files listed in this email. In the change log entries included in each patch, the directory containing the affected files is listed, followed by the files. When the patches are applied, the change log entries will be distributed to the appropriate ChangeLog file. Overview -------- UPC pointers-to-shared have an internal representation which is defined as a 'struct' with three fields. Special logic is needed in promote_mode() to handle this case. 2015-11-30 Gary Funck <g...@intrepid.com> gcc/ * explow.c (promote_mode): For UPC pointer-to-shared values, return the mode of the UPC PTS representation type. Index: gcc/explow.c =================================================================== --- gcc/explow.c (.../trunk) (revision 231059) +++ gcc/explow.c (.../branches/gupc) (revision 231080) @@ -794,6 +794,8 @@ promote_mode (const_tree type ATTRIBUTE_ case REFERENCE_TYPE: case POINTER_TYPE: *punsignedp = POINTERS_EXTEND_UNSIGNED; + if (SHARED_TYPE_P (TREE_TYPE (type))) + return TYPE_MODE (upc_pts_type_node); return targetm.addr_space.address_mode (TYPE_ADDR_SPACE (TREE_TYPE (type))); break;