From 2bf105ab5ba3b1b12f4efd828434c39030cdb6fe Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 3 Jun 2000 01:57:46 +0000 Subject: alias.c (struct alias_set_entry): New field has_zero_child. * alias.c (struct alias_set_entry): New field has_zero_child. (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase. (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET, do nothing. Call record_component_aliases for aggregate types. (record_alias_subset): Set has_zero_child. (record_component_aliases, case ARRAY_TYPE): Do nothing if TYPE_NONALIASES_COMPONENT. (record_component_aliases, case RECORD_TYPE): Test DECL_NONADDRESSABLE_P. * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead of TREE_ADDRESSABLE. * calls.c (initialize_argument_information): Only test TYPE_TRANSPARENT_UNION for UNION_TYPE. * function.c (assign_parms): Likewise. * integrate.c (function_cannot_inline_p): Likewise. * stor-layout.c (finish_record_layout): Don't call record_component_aliases. * tree.h (struct tree_int_cst): Use struct tree_common. (struct tree_real_cst, struct tree_string): Likewise. (struct tree_complex, struct tree_identifier): Likewise. (struct tree_list, struct tree_vec, struct tree_exp): Likewise. (struct tree_block, struct tree_type, struct tree_decl): Likewise. (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK. (TYPE_NONALIASES_COMPONENT): New macro. (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK. (DECL_NONADDRESSABLE_P): New macro. (struct tree_decl): Reorder bits for clarity of how many left; add non_adressable. * cp/cp-tree.h: Use struct tree_common instead of a char array. * cp/decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead of TREE_ADDRESSABLE. From-SVN: r34373 --- gcc/cp/cp-tree.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gcc/cp/cp-tree.h') diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 0f0ea1c..888e73e 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -299,7 +299,7 @@ typedef struct typedef struct { - char common[sizeof (struct tree_common)]; + struct tree_common common; HOST_WIDE_INT index; HOST_WIDE_INT level; HOST_WIDE_INT orig_level; @@ -308,7 +308,7 @@ typedef struct typedef struct ptrmem_cst { - char common[sizeof (struct tree_common)]; + struct tree_common common; /* This isn't used, but the middle-end expects all constants to have this field. */ struct rtx_def *rtl; @@ -351,7 +351,7 @@ typedef struct ptrmem_cst struct tree_binding { - char common[sizeof (struct tree_common)]; + struct tree_common common; union { tree scope; struct binding_level *level; @@ -374,7 +374,7 @@ struct tree_binding struct tree_overload { - char common[sizeof (struct tree_common)]; + struct tree_common common; tree function; }; @@ -391,7 +391,7 @@ struct tree_overload struct tree_wrapper { - char common[sizeof (struct tree_common)]; + struct tree_common common; union { void *ptr; int i; @@ -402,7 +402,7 @@ struct tree_wrapper #define SRCLOC_LINE(NODE) (((struct tree_srcloc*)SRCLOC_CHECK (NODE))->linenum) struct tree_srcloc { - char common[sizeof (struct tree_common)]; + struct tree_common common; const char *filename; int linenum; }; -- cgit v1.1