summaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-02 07:41:07 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-02 07:41:07 +0000
commit74878f86c8e599ce62202c57d0ea3ad48bbf8abd (patch)
tree2f0ff7e67c577a96205f1a538d682dfa6c362eb3 /gcc/expr.c
parentbed136558e0956b7e52bb3e1e7cb1cd74f7b5bc5 (diff)
downloadgcc-74878f86c8e599ce62202c57d0ea3ad48bbf8abd.tar.gz
PR optimization/11210
* expr.c (handled_component_p) [NOP_EXPR]: Add ??? note about the behaviour with regard to bitfields. * fold-const (decode_field_reference): Record outermost type in case the expression is a NOP. Strip all NOPs. Set the signedness to that of the outermost type (if any) when the bitsize is equal to the size of the type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68823 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index a581b178802..8049020d3d3 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -5903,6 +5903,9 @@ handled_component_p (tree t)
case VIEW_CONVERT_EXPR:
return 1;
+ /* ??? Sure they are handled, but get_inner_reference may return
+ a different PBITSIZE, depending upon whether the expression is
+ wrapped up in a NOP_EXPR or not, e.g. for bitfields. */
case NOP_EXPR:
case CONVERT_EXPR:
return (TYPE_MODE (TREE_TYPE (t))