tree.h (TYPE_MODE_RAW): New macro.
authorChristian Bruel <christian.bruel@st.com>
Thu, 17 Dec 2015 13:56:05 +0000 (14:56 +0100)
committerChristian Bruel <chrbr@gcc.gnu.org>
Thu, 17 Dec 2015 13:56:05 +0000 (14:56 +0100)
2015-12-17  Christian Bruel  <christian.bruel@st.com>

* tree.h (TYPE_MODE_RAW): New macro.
* tree-streamer-out.c (pack_ts_type_common_value_fields):
Replace TYPE_MODE by TYPE_MODE_RAW.

From-SVN: r231758

gcc/ChangeLog
gcc/tree-streamer-out.c
gcc/tree.h

index f836652c9afb2b1c7457d3a67ec4f6893cb10913..1db66d6583bb23a5156444bad7aae9cc1a2561de 100644 (file)
@@ -1,3 +1,9 @@
+2015-12-17  Christian Bruel  <christian.bruel@st.com>
+
+       * tree.h (TYPE_MODE_RAW): New macro.
+       * tree-streamer-out.c (pack_ts_type_common_value_fields):
+       Replace TYPE_MODE by TYPE_MODE_RAW.
+
 2015-12-17  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/68835
index bfd06449ecbc9bbe2cfe2e28fc44c8c783f1fbbe..ddb7eee6adebe2274d22a9550ee0f5799cdf8886 100644 (file)
@@ -308,7 +308,10 @@ pack_ts_function_decl_value_fields (struct bitpack_d *bp, tree expr)
 static void
 pack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr)
 {
-  bp_pack_machine_mode (bp, TYPE_MODE (expr));
+  /* for VECTOR_TYPE, TYPE_MODE reevaluates the mode using target_flags
+     not necessary valid in a global context.
+     Use the raw value previously set by layout_type.  */
+  bp_pack_machine_mode (bp, TYPE_MODE_RAW (expr));
   bp_pack_value (bp, TYPE_STRING_FLAG (expr), 1);
   /* TYPE_NO_FORCE_BLK is private to stor-layout and need
      no streaming.  */
index 96ffa83cdf94bbe3ca0031098001562646151169..5d1a77c76fc10a50c7fc8619f098d19226b0d9da 100644 (file)
@@ -1793,6 +1793,7 @@ extern void protected_set_expr_location (tree, location_t);
 #define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.main_variant)
 #define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type_common.context)
 
+#define TYPE_MODE_RAW(NODE) (TYPE_CHECK (NODE)->type_common.mode)
 #define TYPE_MODE(NODE) \
   (VECTOR_TYPE_P (TYPE_CHECK (NODE)) \
    ? vector_type_mode (NODE) : (NODE)->type_common.mode)