Re: [PATCH] FS: Fixing return type of unsigned_offsets

From: Al Viro
Date: Thu May 11 2017 - 02:08:00 EST


On Thu, May 11, 2017 at 10:34:02AM +0530, Pushkar Jambhlekar wrote:
> If I remove '!!', sparse flags warning:
>
> fs/read_write.c:38:29: warning: incorrect type in return expression
> (different base types)
> fs/read_write.c:38:29: expected bool
> fs/read_write.c:38:29: got restricted fmode_t
>
> It means explicit conversion is needed.

FVO"needed" equal to "needed to make sparse STFU"? If anything, that's
sparse being wrong - evaluate.c:check_assignment_type() should do
if (t == &ctype_bool) {
if (is_fouled_type(s))
warning((*rp)->pos, "%s degrades to integer",
show_typename(s->ctype.base_type));
goto Cast;
}
right after
} else if (!(sclass & TYPE_RESTRICT))
goto Cast;