[Bug c++/27506] [4.2 Regression] bitfield enum handling regression
--- Comment #6 from mmitchel at gcc dot gnu dot org 2006-05-19 03:05 --- Fixed in 4.2. -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27506
[Bug c++/27506] [4.2 Regression] bitfield enum handling regression
--- 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
[Bug c++/27506] [4.2 Regression] bitfield enum handling regression
--- Comment #4 from mmitchel at gcc dot gnu dot org 2006-05-17 20:33 --- Grumble. In my queue. I should have known better than to try to fix this the right way. :-) -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |mark at codesourcery dot com |dot org | Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27506
[Bug c++/27506] [4.2 Regression] bitfield enum handling regression
--- Comment #3 from kazu at gcc dot gnu dot org 2006-05-17 20:31 --- Reproduced as of svn revision 113870. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27506
[Bug c++/27506] [4.2 Regression] bitfield enum handling regression
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-05-09 06:17 --- Confirmed, reduced testcase: enum EBorderStyle { BNATIVE, BHIDDEN }; struct BorderValue { enum EBorderStyle style:8; }; enum EBorderStyle f(const struct BorderValue *border) { return border ? border->style : BNATIVE; } I forgot if enum bitfields are a GNU extension for C++ (I know they are for C) -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-05-09 06:17:50 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27506
[Bug c++/27506] [4.2 Regression] bitfield enum handling regression
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||mmitchel at gcc dot gnu dot ||org Target Milestone|--- |4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27506
[Bug c++/27506] [4.2 Regression] bitfield enum handling regression
--- Comment #1 from mueller at gcc dot gnu dot org 2006-05-08 20:31 --- error message is: bitfield-error-1.cc:14: error: invalid conversion from 'int' to 'EBorderStyle' -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27506