I just tried to compile the Suse Linux package kmymoney-0.8.9-23 with the new gcc version 4.4, snapshot dated 20081010. The compiler said kmymoneyaccountselector.cpp: In member function 'bool kMyMoneyCheckListItem::isAlternate()': kmymoneyaccountselector.cpp:149: internal compiler error: in cp_genericize_r, at cp/cp-gimplify.c:823 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Preprocessed source code attached. No special flags required.
Created attachment 16489 [details] C++ source code
Reducing ...
Reduced testcase: struct kMyMoneyCheckListItem { unsigned int m_known : 1; }; bool isAlternate(kMyMoneyCheckListItem *a, kMyMoneyCheckListItem *above) { a->m_known = above ? above->m_known : true; } --- CUT --- Looks like it was caused by: 2008-10-10 Jakub Jelinek <jakub@redhat.com> PR c++/37146 * cp-gimplify.c (cp_genericize_r): Fix up bitfield operands of COND_EXPR.
Subject: Bug 37819 Author: jakub Date: Tue Oct 14 21:57:44 2008 New Revision: 141118 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141118 Log: PR c++/37819 * cp-gimplify.c (cp_genericize_r): Only fold_convert COND_EXPR arguments if they don't already have COND_EXPR's type. * g++.dg/expr/bitfield11.C: New test. Added: trunk/gcc/testsuite/g++.dg/expr/bitfield11.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-gimplify.c trunk/gcc/testsuite/ChangeLog
Fixed.