aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorChandrakala Chavva <cchavva@redhat.com>2000-08-04 14:11:16 -0400
committerChandra Chavva <cchavva@gcc.gnu.org>2000-08-04 14:11:16 -0400
commitca2eed217f7de558a5fa3feccfad9ed73e13da1f (patch)
tree41a4c63ef7a5f42b65d0be0a6fd7d384dec8afe5 /gcc/varasm.c
parent1ba2dbaa74820cb652e0980034282230a09968ae (diff)
downloadgcc-ca2eed217f7de558a5fa3feccfad9ed73e13da1f.zip
gcc-ca2eed217f7de558a5fa3feccfad9ed73e13da1f.tar.gz
gcc-ca2eed217f7de558a5fa3feccfad9ed73e13da1f.tar.bz2
* varasm.c (output_constructor): Add .align 0 for packed vars.
From-SVN: r35489
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index c79c380..8883cc2 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -4472,6 +4472,15 @@ output_constructor (exp, size)
assemble_zeros (bitpos - total_bytes);
total_bytes = bitpos;
}
+ else if (field != 0 && DECL_PACKED (field))
+ {
+ /* Some assemblers automaticallly align a datum according to
+ its size if no align directive is specified. The datum,
+ however, may be declared with 'packed' attribute, so we
+ have to disable such a feature. */
+
+ ASM_OUTPUT_ALIGN (asm_out_file, 0);
+ }
/* Determine size this element should occupy. */
if (field)