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;

Reply via email to