+2012-11-26 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.h (DECL_RESTRICTED_P): Delete.
+ (DECL_READ_P): Add comment.
+ (DECL_NONSHAREABLE): Likewise.
+ (TYPE_NO_FORCE_BLK): Fix comment.
+ (struct tree_decl_common): Remove decl_restricted_flag, add decl_flag_3.
+ * tree-emutls.c (new_emutls_decl): Do not deal with DECL_RESTRICTED_P.
+ * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
+ * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
+
+ * alias.c (nonoverlapping_component_refs_p): Fix thinko.
+
2012-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* doc/sourcebuild.texi: Document arm_v8_vfp_ok.
found:
/* If we're left with accessing different fields of a structure, then no
- possible overlap, unless they are both true bitfields, i.e. bitfields
- for which the size isn't a multiple of the (memory) unit. */
+ possible overlap, unless they are both bitfields. */
if (TREE_CODE (typex) == RECORD_TYPE && fieldx != fieldy)
- {
- if (!DECL_BIT_FIELD (fieldx) || !DECL_BIT_FIELD (fieldy))
- return true;
-
- if ((tree_low_cst (DECL_SIZE (fieldx), 1) % BITS_PER_UNIT) == 0
- || (tree_low_cst (DECL_SIZE (fieldy), 1) % BITS_PER_UNIT) == 0)
- return true;
-
- return false;
- }
+ return !(DECL_BIT_FIELD (fieldx) && DECL_BIT_FIELD (fieldy));
/* The comparison on the current field failed. If we're accessing
a very nested structure, look at the next outer level. */
(TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
RESULT_DECL)->decl_common.decl_by_reference_flag)
-/* In a RESULT_DECL, PARM_DECL and VAR_DECL, means that this decl
- can be used as restricted tag to disambiguate against other restrict
- pointers. Used by fortran to capture something like non-addressability
- (which it isn't really because the middle-end does take addresses of
- such variables). */
-#define DECL_RESTRICTED_P(NODE) \
- (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
- RESULT_DECL)->decl_common.decl_restricted_flag)
-
+/* In VAR_DECL and PARM_DECL, set when the decl has been used except for
+ being set. */
#define DECL_READ_P(NODE) \
(TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_read_flag)
+/* In VAR_DECL or RESULT_DECL, set when significant code movement precludes
+ attempting to share the stack slot with some other variable. */
#define DECL_NONSHAREABLE(NODE) \
(TREE_CHECK2 (NODE, VAR_DECL, \
RESULT_DECL)->decl_common.decl_nonshareable_flag)
get one debug info record for them. */
#define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
-/* In a RECORD_TYPE, UNION_TYPE or QUAL_UNION_TYPE, it means the type
- has BLKmode only because it lacks the alignment requirement for
+/* In a RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE or ARRAY_TYPE, it means
+ the type has BLKmode only because it lacks the alignment required for
its size. */
#define TYPE_NO_FORCE_BLK(NODE) \
(TYPE_CHECK (NODE)->type_common.no_force_blk_flag)
In VAR_DECL, PARM_DECL and RESULT_DECL, this is
DECL_HAS_VALUE_EXPR_P. */
unsigned decl_flag_2 : 1;
+ /* 1 bit unused. */
+ unsigned decl_flag_3 : 1;
/* Logically, these two would go in a theoretical base shared by var and
parm decl. */
unsigned gimple_reg_flag : 1;
/* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_BY_REFERENCE. */
unsigned decl_by_reference_flag : 1;
- /* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_RESTRICTED_P. */
- unsigned decl_restricted_flag : 1;
-
- /* In VAR_DECL and PARM_DECL set when the decl has been used except for
- being set. */
+ /* In a VAR_DECL and PARM_DECL, this is DECL_READ_P. */
unsigned decl_read_flag : 1;
-
- /* In VAR_DECL or RESULT_DECL set when significant code movement precludes
- attempting to share the stack slot with some other variable. */
+ /* In a VAR_DECL or RESULT_DECL, this is DECL_NONSHAREABLE. */
unsigned decl_nonshareable_flag : 1;
/* DECL_OFFSET_ALIGN, used only for FIELD_DECLs. */
unsigned int off_align : 8;
- /* 24-bits unused. */
+ /* 24 bits unused. */
/* DECL_ALIGN. It should have the same size as TYPE_ALIGN. */
unsigned int align;