On Fri, May 08, 2020 at 08:57:09AM -0700, Junio C Hamano wrote: > Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes: > > This talks only about '=='. > > Yup. The text would need a matching change, though. Here's a re-roll with the necessary changes. > > if (!ptr) > > BUG("..."); > > if (cnt) > > foo(ptr, cnt); > > Or more succinctly: > > if (!ptr || cnt) > BUG("we must have an empty array at this point"); I considered that but thought it might be too "cute", however, seeing it written out, it looks fine, so I used it in the re-roll. > > Also, would you want to talk about not comparing against NUL character? > > Yeah, it might be worth saying it explicitly. I dunno. Rather than giving this a separate example in the re-roll, I just mentioned '\0' in the text. --- >8 --- From: Junio C Hamano <gitster@xxxxxxxxx> Subject: [PATCH] CodingGuidelines: do not ==/!= compare with 0 or '\0' or NULL Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> Signed-off-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> --- Documentation/CodingGuidelines | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index 390ceece52..6dfc47ed7d 100644 --- a/Documentation/CodingGuidelines +++ b/Documentation/CodingGuidelines @@ -236,6 +236,18 @@ For C programs: while( condition ) func (bar+1); + - Do not explicitly compare an integral value with constant 0 or '\0', + or a pointer value with constant NULL. For instance, to validate a + counted array ptr that has cnt elements, write: + + if (!ptr || cnt) + BUG("empty array expected"); + + and not: + + if (ptr == NULL || cnt != 0); + BUG("empty array expected"); + - We avoid using braces unnecessarily. I.e. if (bla) { -- 2.26.2.717.g5cccb0e1a8