Skip to content

Commit 467860b

Browse files
To1negitster
authored andcommitted
contrib/coccinelle: pass include paths to spatch(1)
In the previous commit a new coccinelle rule is added. But neiter `make coccicheck` nor `meson compile coccicheck` did detect a case in builtin/last-modified.c. This case involves the field `scratch` in `struct last_modified`. This field is of type `struct bitmap` and that struct has a member `eword_t *words`. Both are defined in `ewah/ewok.h`. Now, while builtin/last-modified.c does include that header (with the subdir in the #include directive), it seems coccinelle does not process it. So it's unaware of the type of `words` in the bitmap, and it doesn't recognize the rule from previous commit that uses: type T; T *ptr; Fix coccicheck by passing all possible include paths inside the Git project so spatch(1) can find the headers and can determine the types. Signed-off-by: Toon Claes <toon@iotcl.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent a67b902 commit 467860b

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -981,7 +981,7 @@ SANITIZE_LEAK =
981981
SANITIZE_ADDRESS =
982982

983983
# For the 'coccicheck' target
984-
SPATCH_INCLUDE_FLAGS = --all-includes
984+
SPATCH_INCLUDE_FLAGS = --all-includes $(addprefix -I ,compat ewah refs sha256 trace2 win32 xdiff)
985985
SPATCH_FLAGS =
986986
SPATCH_TEST_FLAGS =
987987

contrib/coccinelle/meson.build

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ foreach header : headers_to_check
5050
coccinelle_headers += meson.project_source_root() / header
5151
endforeach
5252

53+
coccinelle_includes = []
54+
foreach path : ['compat', 'ewah', 'refs', 'sha256', 'trace2', 'win32', 'xdiff']
55+
coccinelle_includes += ['-I', meson.project_source_root() / path]
56+
endforeach
57+
5358
patches = [ ]
5459
foreach source : coccinelle_sources
5560
patches += custom_target(
@@ -58,6 +63,7 @@ foreach source : coccinelle_sources
5863
'--all-includes',
5964
'--sp-file', concatenated_rules,
6065
'--patch', meson.project_source_root(),
66+
coccinelle_includes,
6167
'@INPUT@',
6268
],
6369
input: meson.project_source_root() / source,

0 commit comments

Comments
 (0)