> -----Original Message----- > From: Philippe Mathieu-Daudé <phi...@linaro.org> > Sent: Monday, July 22, 2024 3:37 PM > To: Yao, Xingtao/姚 幸涛 <yaoxt.f...@fujitsu.com>; qemu-devel@nongnu.org > Subject: Re: [PATCH 00/13] make range overlap check more readable > > On 22/7/24 08:59, Xingtao Yao (Fujitsu) wrote: > > > > > >> -----Original Message----- > >> From: Philippe Mathieu-Daudé <phi...@linaro.org> > >> Sent: Monday, July 22, 2024 2:43 PM > >> To: Yao, Xingtao/姚 幸涛 <yaoxt.f...@fujitsu.com>; qemu-devel@nongnu.org > >> Subject: Re: [PATCH 00/13] make range overlap check more readable > >> > >> Hi Yao, > >> > >> On 22/7/24 06:07, Yao Xingtao via wrote: > >>> Currently, some components still open-coding the range overlap check. > >>> Sometimes this check may be fail because some patterns are missed. > >> > >> How did you catch all these use cases? > > I used the Coccinelle to match these use cases, the pattern is below > > range_overlap.cocci: > > > > // use ranges_overlap() instead of open-coding the overlap check > > @@ > > expression E1, E2, E3, E4; > > @@ > > ( > > - E2 <= E3 || E1 >= E4 > > + !ranges_overlap(E1, E2, E3, E4) > > | > > > > - (E2 <= E3) || (E1 >= E4) > > + !ranges_overlap(E1, E2, E3, E4) > > | > > > > - E1 < E4 && E2 > E3 > > + ranges_overlap(E1, E2, E3, E4) > > | > > > > - (E1 < E4) && (E2 > E3) > > + ranges_overlap(E1, E2, E3, E4) > > | > > > > - (E1 >= E3 && E1 < E4) || (E2 > E3 && E2 <= E4) > > + ranges_overlap(E1, E2, E3, E4) > > > > | > > - ((E1 >= E3) && (E1 < E4)) || ((E2 > E3) && (E2 <= E4)) > > + ranges_overlap(E1, E2, E3, E4) > > ) > > Please add to scripts/coccinelle/range.cocci. OK, I will add this file in next revision.
> > > > > then execute the command: > > # spatch --macro-file scripts/cocci-macro-file.h --sp-file > > range_overlap.cocci > --keep-comments --in-place --use-gitgrep --dir . > > > > but some of the matched cases are not valid and need to be > > manually judged. > > > > there may be cases that have not been matched yet.