[Cocci] Why some changes are not done ?
Francois-Xavier Le Bail
devel.fx.lebail at orange.fr
Fri Nov 24 12:33:29 CET 2017
On 24/11/2017 12:00, Julia Lawall wrote:
> On Fri, 24 Nov 2017, Francois-Xavier Le Bail wrote:
>> On 24/11/2017 11:23, Julia Lawall wrote:
>>> On Fri, 24 Nov 2017, Francois-Xavier Le Bail wrote:
>>>> I use the following Coccinelle script to rename some macros:
>>>> expression E;
>>>> [...]>> It seems that the problem is link to macro USES_APPLE_DEPRECATED_API on line 835.
>>>> If I comment this macro, the changes are done.
>>>> On Apple systems:
>>>> #define USES_APPLE_DEPRECATED_API DIAG_OFF(deprecated-declarations)
>>>> On other systems (like the one I use):
>>>> #define USES_APPLE_DEPRECATED_API
>>> Just make a file macros.h and put in it
>>> #define USES_APPLE_DEPRECATED_API
>>> Then run spatch with --macro-file macros.h (or if that doesn't work then
>>> --macro-file-builtins macros.h). Then it will ignore this code.
>> It works with '--macro-file macros.h', Thanks you !
>> Is there a way to have changes done also in macro definitions?
>> #define KTOHSP(kp, cp) (IS_LENDIAN(kp) ? EXTRACT_LE_16BITS(cp) : EXTRACT_16BITS(cp)))
> Normally changes should happen in macro definitions as well, but there may
> be a problem in parsing it due to some confusion about the parsing of a
> preceding macro. You can run spatch --parse-c file.c to see where there
> are parsing issues.
The reason for this source is that the macro is defined in a function body.
Why not applying change in that case?
More information about the Cocci