http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49136
Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011.05.24 10:03:34
                 CC|                            |jakub at gcc dot gnu.org
     Ever Confirmed|0                           |1

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-24 
10:03:34 UTC ---
The problem is that fold optimizes dd.n != 7 comparison into
(bit_field_ref <dd, 8, 0> & 224) != 224 - see optimize_bit_field_compare -
and cxx_eval_bit_field_ref doesn't expect a bit_field_ref which covers more
than one bit field.  One possible fix would be to check also the size in
cxx_eval_bit_field_ref and or in at the right position all the bit fields in
the range, another would be make sure such folding doesn't happen during
constexpr processing.

Reply via email to