aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.c12
2 files changed, 15 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8a6872f..3f9eac5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-27 Chris Demetriou <cgd@broadcom.com>
+
+ * config/mips/mips.c (mips_build_va_list): Make padding in
+ va_list structure explicit to avoid -Wpadded warnings.
+
2003-06-27 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index ef43a1a..d909e4e 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -4273,7 +4273,8 @@ mips_build_va_list ()
{
if (EABI_FLOAT_VARARGS_P)
{
- tree f_ovfl, f_gtop, f_ftop, f_goff, f_foff, record;
+ tree f_ovfl, f_gtop, f_ftop, f_goff, f_foff, f_res, record;
+ tree array, index;
record = make_node (RECORD_TYPE);
@@ -4287,19 +4288,26 @@ mips_build_va_list ()
unsigned_char_type_node);
f_foff = build_decl (FIELD_DECL, get_identifier ("__fpr_offset"),
unsigned_char_type_node);
-
+ /* Explicitly pad to the size of a pointer, so that -Wpadded won't
+ warn on every user file. */
+ index = build_int_2 (GET_MODE_SIZE (ptr_mode) - 2 - 1, 0);
+ array = build_array_type (unsigned_char_type_node,
+ build_index_type (index));
+ f_res = build_decl (FIELD_DECL, get_identifier ("__reserved"), array);
DECL_FIELD_CONTEXT (f_ovfl) = record;
DECL_FIELD_CONTEXT (f_gtop) = record;
DECL_FIELD_CONTEXT (f_ftop) = record;
DECL_FIELD_CONTEXT (f_goff) = record;
DECL_FIELD_CONTEXT (f_foff) = record;
+ DECL_FIELD_CONTEXT (f_res) = record;
TYPE_FIELDS (record) = f_ovfl;
TREE_CHAIN (f_ovfl) = f_gtop;
TREE_CHAIN (f_gtop) = f_ftop;
TREE_CHAIN (f_ftop) = f_goff;
TREE_CHAIN (f_goff) = f_foff;
+ TREE_CHAIN (f_foff) = f_res;
layout_type (record);
return record;