aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2000-06-14 07:30:09 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2000-06-14 07:30:09 +0200
commit11cf4d1831071d23c84e1add8a2d3fbdd360a82e (patch)
tree48e491d0a3752df2f9332542b6e3fd795956e7c0 /gcc/java
parent51d0e20cae600863c06b07134419166632180a80 (diff)
downloadgcc-11cf4d1831071d23c84e1add8a2d3fbdd360a82e.zip
gcc-11cf4d1831071d23c84e1add8a2d3fbdd360a82e.tar.gz
gcc-11cf4d1831071d23c84e1add8a2d3fbdd360a82e.tar.bz2
tree.h (TYPE_USER_ALIGN, [...]): Define.
* tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define. (struct tree_type, struct tree_decl): Add user_align member. * stor-layout.c (layout_decl): Set DECL_USER_ALIGN. (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined and DECL_USER_ALIGN 0, cap alignment to this value. (place_field): Likewise. (finalize_type_size): Set TYPE_USER_ALIGN. (layout_type): Likewise. (initialize_sizetypes): Likewise. * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp. DECL_USER_ALIGN to 1. * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN. (xfer_tag): Set TYPE_USER_ALIGN. (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. (finish_enum): Likewise. * stmt.c (expand_decl): Set DECL_USER_ALIGN. (expand_anon_union_decl): Likewise. * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. (build_index_type): Set TYPE_USER_ALIGN. (build_range_type): Likewise. (build_common_tree_nodes_2): Likewise. * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning. ch/: * decl.c (init_decl_processing): Set TYPE_USER_ALIGN. (layout_enum): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. * typeck.c (layout_chill_range_type): Set TYPE_USER_ALIGN. (apply_chill_field_layout): Set DECL_USER_ALIGN. (layout_chill_struct_type): Set TYPE_USER_ALIGN. cp/: * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. (check_bitfield_decl, check_field_decl): Likewise. (build_vtbl_or_vbase_field, build_base_field): Likewise. (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. (xfer_tag, finish_enum): Likewise. * decl2.c (finish_builtin_type): Likewise. * init.c (init_init_processing): Likewise. * pt.c (instantiate_class_template): Likewise. * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. * cp-tree.h (struct lang_type): Add user_align member. (CLASSTYPE_USER_ALIGN): Define. f/: * com.c (ffecom_transform_common_): Set DECL_USER_ALIGN. (ffecom_transform_equiv_, ffecom_decl_field): Likewise. (ffecom_init_0): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. (duplicate_decls): Set DECL_USER_ALIGN. java/: * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN. * parse.y (java_complete_class): Set DECL_USER_ALIGN. * parse.c: Rebuilt. From-SVN: r34541
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/parse.c1
-rw-r--r--gcc/java/parse.y1
-rw-r--r--gcc/java/typeck.c5
4 files changed, 12 insertions, 1 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index ca638d7..b19bc57 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2000-06-13 Jakub Jelinek <jakub@redhat.com>
+
+ * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
+ * parse.y (java_complete_class): Set DECL_USER_ALIGN.
+ * parse.c: Rebuilt.
+
2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* decl.c (create_primitive_vtable): Prototype.
diff --git a/gcc/java/parse.c b/gcc/java/parse.c
index fd547f2..22c5bf1 100644
--- a/gcc/java/parse.c
+++ b/gcc/java/parse.c
@@ -7949,6 +7949,7 @@ java_complete_class ()
pop_obstacks ();
TREE_TYPE (field_decl) = field_type;
DECL_ALIGN (field_decl) = 0;
+ DECL_USER_ALIGN (field_decl) = 0;
layout_decl (field_decl, 0);
SOURCE_FRONTEND_DEBUG
(("Completed field/var decl `%s' with `%s'",
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index e6b3537..6b13e0c 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -5249,6 +5249,7 @@ java_complete_class ()
pop_obstacks ();
TREE_TYPE (field_decl) = field_type;
DECL_ALIGN (field_decl) = 0;
+ DECL_USER_ALIGN (field_decl) = 0;
layout_decl (field_decl, 0);
SOURCE_FRONTEND_DEBUG
(("Completed field/var decl `%s' with `%s'",
diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c
index 4309cfb..1a7256d 100644
--- a/gcc/java/typeck.c
+++ b/gcc/java/typeck.c
@@ -421,7 +421,10 @@ build_java_array_type (element_type, length)
TREE_CHAIN (fld) = arfld;
}
else
- TYPE_ALIGN (t) = TYPE_ALIGN (element_type);
+ {
+ TYPE_ALIGN (t) = TYPE_ALIGN (element_type);
+ TYPE_USER_ALIGN (t) = TYPE_USER_ALIGN (element_type);
+ }
pop_obstacks ();
/* We could layout_class, but that loads java.lang.Object prematurely.