PR c++/30274
commit886dbf2c822e015e08a8ad3c402fb15f6903c0b7
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 11 Mar 2007 03:09:32 +0000 (11 03:09 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 11 Mar 2007 03:09:32 +0000 (11 03:09 +0000)
tree082ea10271c7c0c59f1720996ab0ce22af785264
parent663878873090d1ee439a52305372627095bc740c
PR c++/30274
* cp-tree.h (unlowered_expr_type): New function.
* typeck.c (is_bitfield_expr_with_lowered_type): Handle
COMPOUND_EXPR, MODIFY_EXPR, and SAVE_EXPR.
(unlowered_expr_type): New function.
(build_unary_op): Disallow predecrements of bool bitfields.
* call.c (build_conditional_expr): Use unlowered_expr_type.
* pt.c (type_unification_real): Likewise.
PR c++/30274
* g++.dg/expr/bitfield3.C: New test.
* g++.dg/expr/bitfield4.C: Likewise.
* g++.dg/expr/bitfield5.C: Likewise.
* g++.dg/expr/bitfield6.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch@122814 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/pt.c
gcc/cp/typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/expr/bitfield3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/expr/bitfield4.C [new file with mode: 0644]
gcc/testsuite/g++.dg/expr/bitfield5.C [new file with mode: 0644]
gcc/testsuite/g++.dg/expr/bitfield6.C [new file with mode: 0644]