diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-19 20:38:07 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-19 20:38:07 +0000 |
commit | f96c43fb7bb186b6ddd7a93ea0a55ae3e61c4d57 (patch) | |
tree | 2542ba620d211064d29aeacfe75ac81b9312fd17 /gcc/fold-const.c | |
parent | 99efa43944a9c890b4cc1ab3ffc1e62c35d3b69a (diff) | |
download | gcc-f96c43fb7bb186b6ddd7a93ea0a55ae3e61c4d57.tar.gz |
* tree.def (VIEW_CONVERT_EXPR): New tree code.
* tree.h (handled_component_p): New declaration.
* alias.c (handled_component_p): Move function from here ...
* expr.c (handled_component_p): ... to here and non longer static.
(is_zeros_p, case VIEW_CONVERT_EXPR): New case.
(store_field): Remove unneeded MEM_COPY_ATTRIBUTES call.
(get_inner_reference): Handle VIEW_CONVERT_EXPR.
(expand_expr, case VAR_DECL): Clean up handling of re-layout case.
(expand_expr, case VIEW_CONVERT_EXPR): New case.
(expand_expr, cse ADDR_EXPR): No need to copy if already
BIGGEST_ALIGNMENT.
* fold-const.c (fold, case VIEW_CONVERT_EXPR): New case.
* varasm.c (initializer_constant_value_p, case VIEW_CONVERT_EXPR): New.
(output_constant): Handle VIEW_CONVERT_EXPR.
* dwarf2out.c (loc-descriptor_from_tree, add_bound_info):
Add new case for VIEW_CONVERT_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47179 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index f7cdc57d421..2083c55abfa 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -5308,6 +5308,12 @@ fold (expr) } return fold_convert (t, arg0); + case VIEW_CONVERT_EXPR: + if (TREE_CODE (TREE_OPERAND (t, 0)) == VIEW_CONVERT_EXPR) + return build1 (VIEW_CONVERT_EXPR, type, + TREE_OPERAND (TREE_OPERAND (t, 0), 0)); + return t; + #if 0 /* This loses on &"foo"[0]. */ case ARRAY_REF: { |