On Mon, Aug 21, 2017 at 2:26 PM, Christopher Li <sparse@xxxxxxxxxxx> wrote: > On Sun, Aug 20, 2017 at 6:16 PM, Luc Van Oostenryck wrote: > > With this applied, sparse still have a bug at did not match the > value to the bit field member, right? I saw on the other email > thread said the value always pick offset zero. I'm not sure to understand. Have you an example? > Should I apply this as patch format or wait for it show up in a > git pull request later? Wait for the pull request, please. >> --- a/expand.c >> +++ b/expand.c >> @@ -644,6 +644,8 @@ static int expand_dereference(struct expression *expr) >> if (value) { >> /* FIXME! We should check that the size is right! */ >> if (value->type == EXPR_VALUE) { >> + if (is_bitfield_type(value->ctype)) >> + return UNSAFE; > > You might want to consider move this outside of the EXPR_VALUE. > I assume there is a bug in sparse matching the value to the member > wrong, it could happen to EXPR_FVALUE as well. Well ..., if we have an EXPR_FVALUE which type is a bitfield, yes for sure there would be a bug. But I have no reason to belive there is such bug and since checking the ctype is more costly than checking the expr->type, I think it's best so. Note, I find this check already annoying and hackish if not worse. -- Luc -- 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