diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-03-09 20:37:06 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-03-09 20:37:06 -0500 |
commit | 809d657596207c4f062814e21733533a9e43a2b9 (patch) | |
tree | 92361cf7e5194ef74e2fc842c864b96e46851517 /gcc | |
parent | e2041e684f68944f31b8724fbeca1653729db857 (diff) | |
download | gcc-809d657596207c4f062814e21733533a9e43a2b9.zip gcc-809d657596207c4f062814e21733533a9e43a2b9.tar.gz gcc-809d657596207c4f062814e21733533a9e43a2b9.tar.bz2 |
(assemble_variable): Consistently use DECL_SIZE for everything.
From-SVN: r9145
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/varasm.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 9bd761e..537d9b2 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1031,19 +1031,16 @@ assemble_variable (decl, top_level, at_end, dont_output_data) TREE_ASM_WRITTEN (decl) = 1; - /* If storage size is erroneously variable, just continue. - Error message was already made. */ + app_disable (); - if (DECL_SIZE (decl)) + if (! dont_output_data) { if (TREE_CODE (DECL_SIZE (decl)) != INTEGER_CST) goto finish; - app_disable (); - /* This is better than explicit arithmetic, since it avoids overflow. */ size_tree = size_binop (CEIL_DIV_EXPR, - DECL_SIZE (decl), size_int (BITS_PER_UNIT)); + DECL_SIZE (decl), size_int (BITS_PER_UNIT)); if (TREE_INT_CST_HIGH (size_tree) != 0) { @@ -1311,11 +1308,10 @@ assemble_variable (decl, top_level, at_end, dont_output_data) { if (DECL_INITIAL (decl)) /* Output the actual data. */ - output_constant (DECL_INITIAL (decl), - int_size_in_bytes (TREE_TYPE (decl))); + output_constant (DECL_INITIAL (decl), TREE_INT_CST_LOW (size_tree)); else /* Leave space for it. */ - assemble_zeros (int_size_in_bytes (TREE_TYPE (decl))); + assemble_zeros (TREE_INT_CST_LOW (size_tree)); } finish: |