summaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-02 11:14:06 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-02 11:14:06 +0000
commit38ac5984b2bfba9ca52a72edc0457a046dcf2d6d (patch)
tree5fa74511443ee609e45e64f0848bb19aa235a285 /gcc/tree.h
parentab03e5be31a840bcbf46367952763562fb5a1733 (diff)
downloadgcc-38ac5984b2bfba9ca52a72edc0457a046dcf2d6d.tar.gz
* tree.h (struct record_layout_info_s): New field unpadded_align.
(set_lang_adjust_rli): New declaration. * stor-layout.c (layout_decl): If DECL is packed, but at alignment it would have if not packed, do not downgrade DECL_ALIGN. (lang_adjust_rli, set_lang_adjust_rli): New. (start_record_layout): Initialize new field unpadded_align. (debug_rli): Display it. (place_union_field, place_field): Set it. (layout_type, case RECORD_TYPE): Call via lang_adjust_rli if set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42796 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index 6821b06b452..af784ad4263 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -2118,12 +2118,17 @@ typedef struct record_layout_info_s
unsigned int record_align;
/* The alignment of the record so far, not including padding, in bits. */
unsigned int unpacked_align;
+ /* The alignment of the record so far, allowing for the record to be
+ padded only at the end, in bits. */
+ unsigned int unpadded_align;
/* The static variables (i.e., class variables, as opposed to
instance variables) encountered in T. */
tree pending_statics;
int packed_maybe_necessary;
} *record_layout_info;
+extern void set_lang_adjust_rli PARAMS ((void (*) PARAMS
+ ((record_layout_info))));
extern record_layout_info start_record_layout PARAMS ((tree));
extern tree bit_from_pos PARAMS ((tree, tree));
extern tree byte_from_pos PARAMS ((tree, tree));