The following invalid code causes an ICE on mainline:
=====================
struct A
{
double i : 8;
};
void foo(A& a)
{
(char)a.i;
}
=====================
bug.cc:7: error: bit-field 'double A::i' with non-integral type
bug.cc: In function 'void foo(A&)':
bug.cc:12: internal compiler error: in convert_move, at expr.c:363
Please submit a full bug report, [etc.]
Mark, this is probably more fallout from your bit-field patches.
--
Summary: [4.2 regression] ICE with invalid bit-field
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code, error-recovery, monitored
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27803