diff options
| author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1995-03-10 01:37:06 +0000 |
|---|---|---|
| committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1995-03-10 01:37:06 +0000 |
| commit | 44734bb7916d808596f2f6408be661b42d14b8d7 (patch) | |
| tree | 92361cf7e5194ef74e2fc842c864b96e46851517 /gcc | |
| parent | 63132d81317a5817534411b8d168eed95ddd9e90 (diff) | |
| download | ppe42-gcc-44734bb7916d808596f2f6408be661b42d14b8d7.tar.gz ppe42-gcc-44734bb7916d808596f2f6408be661b42d14b8d7.zip | |
(assemble_variable): Consistently use DECL_SIZE for everything.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9145 138bc75d-0d04-0410-961f-82ee72b054a4
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 9bd761e676e..537d9b272f4 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: |

