aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-06-03 01:57:46 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-06-02 21:57:46 -0400
commit2bf105ab5ba3b1b12f4efd828434c39030cdb6fe (patch)
tree08e18810256295f8a740aab217825918008b48b2 /gcc/cp
parent0e13506e499502b91699f089465bc50532e8c65f (diff)
downloadgcc-2bf105ab5ba3b1b12f4efd828434c39030cdb6fe.zip
gcc-2bf105ab5ba3b1b12f4efd828434c39030cdb6fe.tar.gz
gcc-2bf105ab5ba3b1b12f4efd828434c39030cdb6fe.tar.bz2
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
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/cp-tree.h12
-rw-r--r--gcc/cp/decl.c2
3 files changed, 13 insertions, 7 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9a5c6c7..fc78de7 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+Fri Jun 2 19:38:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * cp-tree.h: Use struct tree_common instead of a char array.
+ * decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
+ of TREE_ADDRESSABLE.
+
2000-06-02 Richard Henderson <rth@cygnus.com>
* decl.c (init_decl_processing): Don't set lang_get_alias_set.
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;
};
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index d5097f2..2c83225 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -11594,7 +11594,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
else
{
decl = build_decl (FIELD_DECL, declarator, type);
- TREE_ADDRESSABLE (decl) = ! bitfield;
+ DECL_NONADDRESSABLE_P (decl) = bitfield;
if (RIDBIT_SETP (RID_MUTABLE, specbits))
{
DECL_MUTABLE_P (decl) = 1;