diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2003-07-02 09:41:07 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2003-07-02 07:41:07 +0000 |
commit | 1a8c4ca62da430aa2d8920b70f1614ab0755059b (patch) | |
tree | 2f0ff7e67c577a96205f1a538d682dfa6c362eb3 /gcc/expr.c | |
parent | 23cdfcf71f295697ac4322f0a0e8128e22e834b4 (diff) | |
download | gcc-1a8c4ca62da430aa2d8920b70f1614ab0755059b.zip gcc-1a8c4ca62da430aa2d8920b70f1614ab0755059b.tar.gz gcc-1a8c4ca62da430aa2d8920b70f1614ab0755059b.tar.bz2 |
re PR rtl-optimization/11210 (optimizer drops conditional with typecast from signed to unsigned char)
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.
From-SVN: r68823
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -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)) |