summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-22 01:52:14 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-22 01:52:14 +0000
commit71db7f717af08cb0e73628fa8e3d04df6243f67a (patch)
tree515408a85dcc15bfa2477e35305b6f015906427b
parentdad02e37e13221c6c6cfc56caf47a1f945ace26a (diff)
downloadppe42-gcc-71db7f717af08cb0e73628fa8e3d04df6243f67a.tar.gz
ppe42-gcc-71db7f717af08cb0e73628fa8e3d04df6243f67a.zip
* varasm.c (record_constant): Pad the constructed
constant_descriptor appropriately. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37638 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/varasm.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a60a7e9ae70..215f3c85b26 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-21 Richard Henderson <rth@redhat.com>
+
+ * varasm.c (record_constant): Pad the constructed
+ constant_descriptor appropriately.
+
Wed Nov 22 00:52:55 2000 J"orn Rennecke <amylaar@redhat.com>
* rtl.h (traverse_md_constants): Declare.
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 799beeb14ee..e9925bfd6bf 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -2797,6 +2797,7 @@ record_constant (exp)
struct constant_descriptor *next = 0;
char *label = 0;
rtx rtl = 0;
+ int pad;
/* Make a struct constant_descriptor. The first three pointers will
be filled in later. Here we just leave space for them. */
@@ -2804,6 +2805,14 @@ record_constant (exp)
obstack_grow (&permanent_obstack, (char *) &next, sizeof next);
obstack_grow (&permanent_obstack, (char *) &label, sizeof label);
obstack_grow (&permanent_obstack, (char *) &rtl, sizeof rtl);
+
+ /* Align the descriptor for the data payload. */
+ pad = (offsetof (struct constant_descriptor, u)
+ - offsetof(struct constant_descriptor, rtl)
+ - sizeof(next->rtl));
+ if (pad > 0)
+ obstack_blank (&permanent_obstack, pad);
+
record_constant_1 (exp);
return (struct constant_descriptor *) obstack_finish (&permanent_obstack);
}
OpenPOWER on IntegriCloud