]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/c-family/c-common.c
2006-04-23 Mark Mitchell <mark@codesourcery.com>
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 Apr 2006 18:04:33 +0000 (18:04 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 Apr 2006 18:04:33 +0000 (18:04 +0000)
commitc0e47fd47264c1a82192e12e949022f12295f2ed
tree795f298e0af32f79064b451399d8021ab268f911
parentaeaccda96550eb360f54914984e2e8b3e0a9dffc
2006-04-23  Mark Mitchell  <mark@codesourcery.com>

PR c++/26534
* c-common.h (c_build_bitfield_integer_type): Declare.
* c-decl.c (c_build_bitfield_integer_type): Move to ...
* c-common.c (c_build_bitfield_integer_type): ... here.

2006-04-23  Mark Mitchell  <mark@codesourcery.com>

PR c++/26534
* cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
* typeck.c (is_bitfield_expr_with_lowered_type): New function.
(decay_conversion): Convert bitfield expressions to the correct
type.
(build_modify_expr): Remove spurious conversions.
* class.c (layout_class_type): Modify the type of bitfields to
indicate a limited range.
* call.c (standard_conversion): Adjust the type of bitfield
expressions used in an rvalue context.
(build_conditional_expr): Likewise.

2006-04-23  Mark Mitchell  <mark@codesourcery.com>

PR c++/26534
* g++.dg/opt/bitfield1.C: New test.
* g++.dg/compat/abi/bitfield1_main.C: Add -w.
* g++.dg/compat/abi/bitfield1_x.C: Likewise.
* g++.dg/compat/abi/bitfield1_y.C: Likewise.
* g++.dg/compat/abi/bitfield2_main.C: Likewise.
* g++.dg/compat/abi/bitfield2_x.C: Likewise.
* g++.dg/compat/abi/bitfield2_y.C: Likewise.
* g++.dg/abi/bitfield1.C: Add dg-warning markers.
* g++.dg/abi/bitfield2.C: Likewise.
* g++.dg/init/bitfield1.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113199 138bc75d-0d04-0410-961f-82ee72b054a4
23 files changed:
gcc/ChangeLog
gcc/c-common.c
gcc/c-common.h
gcc/c-decl.c
gcc/configure
gcc/configure.ac
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/typeck.c
gcc/print-tree.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/abi/bitfield1.C
gcc/testsuite/g++.dg/abi/bitfield2.C
gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C
gcc/testsuite/g++.dg/compat/abi/bitfield1_x.C
gcc/testsuite/g++.dg/compat/abi/bitfield1_y.C
gcc/testsuite/g++.dg/compat/abi/bitfield2_main.C
gcc/testsuite/g++.dg/compat/abi/bitfield2_x.C
gcc/testsuite/g++.dg/compat/abi/bitfield2_y.C
gcc/testsuite/g++.dg/init/bitfield1.C
gcc/testsuite/g++.dg/opt/bitfield1.C [new file with mode: 0644]