Re: [PATCH 2/2] lib: glob: replace bitwise OR with logical operation on boolean
From: Andrew Morton
Date: Sun Mar 01 2026 - 14:43:31 EST
On Sun, 1 Mar 2026 19:40:16 +0000 Josh Law <hlcj1234567@xxxxxxxxx> wrote:
> 1 Mar 2026 19:25:44 Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>:
>
> > On Sun, 1 Mar 2026 15:21:42 +0000 Josh Law <hlcj1234567@xxxxxxxxx> wrote:
> >
> >> Using bitwise OR (|=) on a boolean variable is valid C, but replacing it with a direct logical assignment makes the intent clearer and appeases strict static analysis tools.
> >>
> >
> > Fair enough.
> >
> >> --- a/lib/glob.c
> >> +++ b/lib/glob.c
> >> @@ -96,7 +96,8 @@ bool __pure glob_match(char const *pat, char const *str)
> >> class += 2;
> >> /* Any special action if a > b? */
> >> }
> >> - match |= (a <= c && c <= b);
> >> + if (a <= c && c <= b)
> >> + match = true;
> >> } while ((a = *class++) != ']');
> >>
> >> if (match == inverted)
> >
> > But if we're concerned about bool abuse, what's this?
> >
> > bool match = false, inverted = (*pat == '!');
> > char const *class = pat + inverted;
OK, please don't top-post and please do wordwrap the email text.
> Hm, I see that, I am sorry about that haha, I tested the functionality
> of the code and it seems all fine, if anything major happens, I'll
> release another patch fixing this, I am sorry
You did't add this. It's existing code which I felt you might want to
consider cleaning up.