diff options
author | Zack Weinberg <zack@codesourcery.com> | 2003-04-28 04:13:48 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2003-04-28 04:13:48 +0000 |
commit | afc6aaab24721ee00e75ca5511fcc7d9e8c632af (patch) | |
tree | 3915ff408e9fa298c376c39db25e09c6a1cc70f2 /gcc/varasm.c | |
parent | 73c4dcc675bd806e87acce255f3678d007193d84 (diff) | |
download | gcc-afc6aaab24721ee00e75ca5511fcc7d9e8c632af.zip gcc-afc6aaab24721ee00e75ca5511fcc7d9e8c632af.tar.gz gcc-afc6aaab24721ee00e75ca5511fcc7d9e8c632af.tar.bz2 |
expr.c (expand_expr <COMPLEX_CST, [...]): Always call output_constant_def, use its result instead of TREE_CST_RTL (exp).
* expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
output_constant_def, use its result instead of TREE_CST_RTL (exp).
Can assume it has the form (mem (symbol_ref ".LCxxx")).
(expand_expr <COMPONENT_REF>): Can always just extract the
relevant field of a CONSTRUCTOR.
(expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
ARRAY_RANGE_REF>): Make control flow explicit.
* varasm.c (output_constant_def): Can look at TREE_CST_RTL of
an INTEGER_CST.
From-SVN: r66148
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 27c7843..f42f529 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -2567,7 +2567,7 @@ output_constant_def (exp, defer) /* We can't just use the saved RTL if this is a deferred string constant and we are not to defer anymore. */ - if (TREE_CODE (exp) != INTEGER_CST && TREE_CST_RTL (exp) + if (TREE_CST_RTL (exp) && (defer || !STRING_POOL_ADDRESS_P (XEXP (TREE_CST_RTL (exp), 0)))) return TREE_CST_RTL (exp); |