On Sat, Oct 16, 2010 at 12:11 PM, Josh Triplett <josh@xxxxxxxxxxxxxxxx> wrote: > Huh, interesting. Turns out that giant union contains two different > structs of the form { struct symbol *, struct statement * }; one for > label_arg and one for labeled_struct. They have different names for the > symbol, but the same name for the statement. We should fix that for C > as well, either by renaming one of the statements, or by just making > both variations use the same set of fields and dropping one of the > sub-structs. Either way, that should happen as an independent patch, > separate from the C++ compatibility changes. That make sense. It seems to me that label_arg is not actually used. It might used in very early code. The member statement->label is never referenced now. There is no point to keep it as far as I can tell. Just remove that label_arg union and sparse compile just fine. Chris -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html