Skip to content

Commit

Permalink
grep: don't return an expression from pcre2_free()
Browse files Browse the repository at this point in the history
Previously, the void pcre2_free() function in grep.c returned free().
While free() itself is void, afaict it's still an expression as per
section A.2.3, subsection 6.8.6 (jump-statement) in both C99 [1] and C11
[2]:

> return expression

Section 6.8.6.4 in C99 [1] and C11 [2] says that:

> A return statement with an expression shall not appear in a function
> whose return type is void.

The consequence of the old behavior was that developer builds with
pedantic errors enabled broke Git if PCRE2 was enabled and a
smart-enough compiler to detect these errors was used.  This commit
fixes pedantic builds of Git that enables --with-libpcre.

[1] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
[2] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf

Signed-off-by: Hans Jerry Illikainen <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
illikainen authored and gitster committed Nov 30, 2019
1 parent d9f6f3b commit 867fc7f
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion grep.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ static void *pcre2_malloc(PCRE2_SIZE size, MAYBE_UNUSED void *memory_data)

static void pcre2_free(void *pointer, MAYBE_UNUSED void *memory_data)
{
return free(pointer);
free(pointer);
}
#endif

Expand Down

0 comments on commit 867fc7f

Please sign in to comment.