scripts/cocci: add Zephyr macro file

Zephyr uses some defines to provide additional information about the
item being declared.  When unrecognized these can confuse the
Coccinelle parser so that it does not apply semantic patches in
situations where they should be applied.

Add a macro file that extends the Coccinelle builtin macro file with
some identifiers that are specific to Zephyr.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
This commit is contained in:
Peter Bigot 2020-05-04 15:13:43 -05:00 committed by Anas Nashif
parent a772d2da11
commit 15ed58652e
2 changed files with 23 additions and 0 deletions

View file

@ -93,6 +93,8 @@ else
NPROC="$J"
fi
OPTIONS="--macro-file $ZEPHYR_BASE/scripts/coccinelle/macros.h $OPTIONS"
if [ "$FILE" != "" ] ; then
OPTIONS="--patch $ZEPHYR_BASE $OPTIONS"
fi

View file

@ -0,0 +1,21 @@
/*
* Copyright (c) 2020 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/* File to be specified by -macro-file in invocations of coccinelle
* to avoid parse errors that prevent application of rules.
*
* This is not exhaustive: only defines that have been proven to
* inhibit context recognition are listed. The structure of the file
* is expected to follow that of the Coccinelle standard.h macro file.
*/
/* Zephyr macros */
/* Attributes */
/* Confirmed problematic */
#define __noinit
#define __syscall