aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog19
-rw-r--r--gcc/cp/class.c10
-rw-r--r--gcc/cp/decl.c12
-rw-r--r--gcc/cp/lambda.c2
-rw-r--r--gcc/cp/method.c2
-rw-r--r--gcc/cp/pt.c4
-rw-r--r--gcc/cp/rtti.c2
-rw-r--r--gcc/cp/tree.c2
8 files changed, 36 insertions, 17 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 104da7b..c50c6ab 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,22 @@
+2016-04-18 Michael Matz <matz@suse.de>
+
+ * class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
+ (layout_class_type): Ditto.
+ (build_base_field): Use SET_DECL_ALIGN.
+ (fixup_attribute_variants): Use SET_TYPE_ALIGN.
+ * decl.c (duplicate_decls): Use SET_DECL_ALIGN.
+ (record_unknown_type): Use SET_TYPE_ALIGN.
+ (cxx_init_decl_processing): Ditto.
+ (copy_type_enum): Ditto.
+ (grokfndecl): Use SET_DECL_ALIGN.
+ (copy_type_enum): Use SET_TYPE_ALIGN.
+ * pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN.
+ (tsubst): Ditto.
+ * tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN.
+ * lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN.
+ * method.c (implicitly_declare_fn): Use SET_DECL_ALIGN.
+ * rtti.c (emit_tinfo_decl): Ditto.
+
2016-04-18 Jason Merrill <jason@redhat.com>
PR c++/70690
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 2c5ce73..2705e18 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -801,7 +801,7 @@ build_vtable (tree class_type, tree name, tree vtable_type)
TREE_STATIC (decl) = 1;
TREE_READONLY (decl) = 1;
DECL_VIRTUAL_P (decl) = 1;
- DECL_ALIGN (decl) = TARGET_VTABLE_ENTRY_ALIGN;
+ SET_DECL_ALIGN (decl, TARGET_VTABLE_ENTRY_ALIGN);
DECL_USER_ALIGN (decl) = true;
DECL_VTABLE_OR_VTT_P (decl) = 1;
set_linkage_according_to_type (class_type, decl);
@@ -2035,7 +2035,7 @@ fixup_attribute_variants (tree t)
valign = MAX (valign, TYPE_ALIGN (variants));
else
TYPE_USER_ALIGN (variants) = user_align;
- TYPE_ALIGN (variants) = valign;
+ SET_TYPE_ALIGN (variants, valign);
if (may_alias)
fixup_may_alias (variants);
}
@@ -4484,7 +4484,7 @@ build_base_field (record_layout_info rli, tree binfo,
{
DECL_SIZE (decl) = CLASSTYPE_SIZE (basetype);
DECL_SIZE_UNIT (decl) = CLASSTYPE_SIZE_UNIT (basetype);
- DECL_ALIGN (decl) = CLASSTYPE_ALIGN (basetype);
+ SET_DECL_ALIGN (decl, CLASSTYPE_ALIGN (basetype));
DECL_USER_ALIGN (decl) = CLASSTYPE_USER_ALIGN (basetype);
DECL_MODE (decl) = TYPE_MODE (basetype);
DECL_FIELD_IS_BASE (decl) = 1;
@@ -6404,7 +6404,7 @@ layout_class_type (tree t, tree *virtuals_p)
}
DECL_SIZE (field) = TYPE_SIZE (integer_type);
- DECL_ALIGN (field) = TYPE_ALIGN (integer_type);
+ SET_DECL_ALIGN (field, TYPE_ALIGN (integer_type));
DECL_USER_ALIGN (field) = TYPE_USER_ALIGN (integer_type);
layout_nonempty_base_or_field (rli, field, NULL_TREE,
empty_base_offsets);
@@ -6539,7 +6539,7 @@ layout_class_type (tree t, tree *virtuals_p)
size_binop (MULT_EXPR,
fold_convert (bitsizetype, eoc),
bitsize_int (BITS_PER_UNIT)));
- TYPE_ALIGN (base_t) = rli->record_align;
+ SET_TYPE_ALIGN (base_t, rli->record_align);
TYPE_USER_ALIGN (base_t) = TYPE_USER_ALIGN (t);
/* Copy the fields from T. */
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 38e6bd8..461822b 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -2066,7 +2066,7 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
if (TYPE_USER_ALIGN (tem))
{
if (TYPE_ALIGN (tem) > TYPE_ALIGN (newtype))
- TYPE_ALIGN (newtype) = TYPE_ALIGN (tem);
+ SET_TYPE_ALIGN (newtype, TYPE_ALIGN (tem));
TYPE_USER_ALIGN (newtype) = true;
}
@@ -2490,7 +2490,7 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
/* Likewise for DECL_ALIGN, DECL_USER_ALIGN and DECL_PACKED. */
if (DECL_ALIGN (olddecl) > DECL_ALIGN (newdecl))
{
- DECL_ALIGN (newdecl) = DECL_ALIGN (olddecl);
+ SET_DECL_ALIGN (newdecl, DECL_ALIGN (olddecl));
DECL_USER_ALIGN (newdecl) |= DECL_USER_ALIGN (olddecl);
}
DECL_USER_ALIGN (olddecl) = DECL_USER_ALIGN (newdecl);
@@ -3919,7 +3919,7 @@ record_unknown_type (tree type, const char* name)
DECL_IGNORED_P (decl) = 1;
TYPE_DECL_SUPPRESS_DEBUG (decl) = 1;
TYPE_SIZE (type) = TYPE_SIZE (void_type_node);
- TYPE_ALIGN (type) = 1;
+ SET_TYPE_ALIGN (type, 1);
TYPE_USER_ALIGN (type) = 0;
SET_TYPE_MODE (type, TYPE_MODE (void_type_node));
}
@@ -4174,7 +4174,7 @@ cxx_init_decl_processing (void)
TYPE_UNSIGNED (nullptr_type_node) = 1;
TYPE_PRECISION (nullptr_type_node) = GET_MODE_BITSIZE (ptr_mode);
if (abi_version_at_least (9))
- TYPE_ALIGN (nullptr_type_node) = GET_MODE_ALIGNMENT (ptr_mode);
+ SET_TYPE_ALIGN (nullptr_type_node, GET_MODE_ALIGNMENT (ptr_mode));
SET_TYPE_MODE (nullptr_type_node, ptr_mode);
record_builtin_type (RID_MAX, "decltype(nullptr)", nullptr_type_node);
nullptr_node = build_int_cst (nullptr_type_node, 0);
@@ -7924,7 +7924,7 @@ grokfndecl (tree ctype,
parms = parm;
/* Allocate space to hold the vptr bit if needed. */
- DECL_ALIGN (decl) = MINIMUM_METHOD_BOUNDARY;
+ SET_DECL_ALIGN (decl, MINIMUM_METHOD_BOUNDARY);
}
DECL_ARGUMENTS (decl) = parms;
for (t = parms; t; t = DECL_CHAIN (t))
@@ -13115,7 +13115,7 @@ copy_type_enum (tree dst, tree src)
valign = MAX (valign, TYPE_ALIGN (t));
else
TYPE_USER_ALIGN (t) = TYPE_USER_ALIGN (src);
- TYPE_ALIGN (t) = valign;
+ SET_TYPE_ALIGN (t, valign);
TYPE_UNSIGNED (t) = TYPE_UNSIGNED (src);
}
}
diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c
index cdc11fe..374a78b 100644
--- a/gcc/cp/lambda.c
+++ b/gcc/cp/lambda.c
@@ -1006,7 +1006,7 @@ maybe_add_lambda_conv_op (tree type)
tree convfn = build_lang_decl (FUNCTION_DECL, name, fntype);
tree fn = convfn;
DECL_SOURCE_LOCATION (fn) = DECL_SOURCE_LOCATION (callop);
- DECL_ALIGN (fn) = MINIMUM_METHOD_BOUNDARY;
+ SET_DECL_ALIGN (fn, MINIMUM_METHOD_BOUNDARY);
SET_OVERLOADED_OPERATOR_CODE (fn, TYPE_EXPR);
grokclassfn (type, fn, NO_SPECIAL);
set_linkage_according_to_type (type, fn);
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 38f2a54..862451f 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1865,7 +1865,7 @@ implicitly_declare_fn (special_function_kind kind, tree type,
SET_OVERLOADED_OPERATOR_CODE (fn, NOP_EXPR);
}
- DECL_ALIGN (fn) = MINIMUM_METHOD_BOUNDARY;
+ SET_DECL_ALIGN (fn, MINIMUM_METHOD_BOUNDARY);
/* Create the explicit arguments. */
if (rhs_parm_type)
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 325351f..a6d56d1 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -9856,7 +9856,7 @@ instantiate_class_template_1 (tree type)
DECL_SOURCE_LOCATION (typedecl);
TYPE_PACKED (type) = TYPE_PACKED (pattern);
- TYPE_ALIGN (type) = TYPE_ALIGN (pattern);
+ SET_TYPE_ALIGN (type, TYPE_ALIGN (pattern));
TYPE_USER_ALIGN (type) = TYPE_USER_ALIGN (pattern);
TYPE_FOR_JAVA (type) = TYPE_FOR_JAVA (pattern); /* For libjava's JArray<T> */
if (ANON_AGGR_TYPE_P (pattern))
@@ -13403,7 +13403,7 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
if (TYPE_USER_ALIGN (t))
{
- TYPE_ALIGN (r) = TYPE_ALIGN (t);
+ SET_TYPE_ALIGN (r, TYPE_ALIGN (t));
TYPE_USER_ALIGN (r) = 1;
}
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 244c34d..43d5f15 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -1603,7 +1603,7 @@ emit_tinfo_decl (tree decl)
/* Avoid targets optionally bumping up the alignment to improve
vector instruction accesses, tinfo are never accessed this way. */
#ifdef DATA_ABI_ALIGNMENT
- DECL_ALIGN (decl) = DATA_ABI_ALIGNMENT (decl, TYPE_ALIGN (TREE_TYPE (decl)));
+ SET_DECL_ALIGN (decl, DATA_ABI_ALIGNMENT (decl, TYPE_ALIGN (TREE_TYPE (decl))));
DECL_USER_ALIGN (decl) = true;
#endif
return true;
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index e34215c..112c8c7 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1074,7 +1074,7 @@ cp_build_qualified_type_real (tree type,
{
t = build_variant_type_copy (t);
TYPE_NAME (t) = TYPE_NAME (type);
- TYPE_ALIGN (t) = TYPE_ALIGN (type);
+ SET_TYPE_ALIGN (t, TYPE_ALIGN (type));
TYPE_USER_ALIGN (t) = TYPE_USER_ALIGN (type);
}
}