Excuse me, I have still another question.
Why are you adding braces here? + || (bitsize % BITS_PER_UNIT != 0) + || (bitpos % BITS_PER_UNIT != 0) + || (compare_tree_int (DECL_SIZE (TREE_OPERAND (exp, 1)), bitsize) + != 0))) I think everywhere in that function we omit braces around == terms inside || terms even long ones. || a == b || c == d || e == f) I know many like to add braces here, but GCC does not do that unnecessarily, right? Thanks Bernd.