From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20922 invoked by alias); 19 May 2006 03:01:35 -0000 Received: (qmail 20840 invoked by alias); 19 May 2006 03:01:24 -0000 Date: Fri, 19 May 2006 03:01:00 -0000 Message-ID: <20060519030124.20838.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/27506] [4.2 Regression] bitfield enum handling regression In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "mmitchel at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-05/txt/msg01881.txt.bz2 List-Id: ------- Comment #5 from mmitchel at gcc dot gnu dot org 2006-05-19 03:01 ------- Subject: Bug 27506 Author: mmitchel Date: Fri May 19 03:01:14 2006 New Revision: 113902 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113902 Log: PR c++/27471 PR c++/27506 * typeck.c (decay_conversion): Convert bitfields to their declared types here. Improve documentation. Avoid use of cp_convert. (default_conversion): Make it static. Perform integral promotions before lvalue-to-rvalue, function-to-pointer, and array-to-pointer conversions. * init.c (build_init): Remove. (expand_default_init): Do not call rvalue. * call.c (null_ptr_cst_p): Robustify. (build_conditional_expr): Tidy. * except.c (build_throw): Do not perform lvalue-to-rvalue conversion on operand before initializing temporary. * tree.c (convert.h): Include it. (convert_bitfield_to_declared_type): Use convert_to_integer, not cp_convert. (rvalue): Don't convert bitfields to their declared type here. * cp-tree.h (build_init): Remove. (default_conversion): Likewise. * typeck2.c (build_m_component_ref): Do not perform lvalue-to-rvalue, function-to-pointer, or array-to-pointer conversions here. Correct error message. PR c++/27471 PR c++/27506 * g++.dg/conversion/bitfield5.C: New test. * g++.dg/conversion/bitfield6.C: New test. Added: trunk/gcc/testsuite/g++.dg/conversion/bitfield5.C trunk/gcc/testsuite/g++.dg/conversion/bitfield6.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/except.c trunk/gcc/cp/init.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/cp/typeck2.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27506