On Tue, Mar 1, 2022 at 1:57 PM Patchwork <patchwork@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > == Series Details == > > Series: use dynamic-debug under drm.debug api (rev2) > URL : https://patchwork.freedesktop.org/series/100289/ > State : warning > > == Summary == > > $ dim checkpatch origin/drm-tip > c2ed9cc02d9c dyndbg: fix static_branch manipulation > a8f6c71f283e dyndbg: add class_id field and query support > -:141: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'id' - possible side-effects? > #141: FILE: include/linux/dynamic_debug.h:142: > +#define __dynamic_func_call_cls(id, cls, fmt, func, ...) do { \ > + DEFINE_DYNAMIC_DEBUG_METADATA_CLS(id, cls, fmt); \ > + if (DYNAMIC_DEBUG_BRANCH(id)) \ > + func(&id, ##__VA_ARGS__); \ > } while (0) > > -:151: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'id' - possible side-effects? > #151: FILE: include/linux/dynamic_debug.h:148: > +#define __dynamic_func_call_no_desc_cls(id, cls, fmt, func, ...) do { \ > + DEFINE_DYNAMIC_DEBUG_METADATA_CLS(id, cls, fmt); \ > + if (DYNAMIC_DEBUG_BRANCH(id)) \ > + func(__VA_ARGS__); \ > } while (0) > Can I get a pass on this ? the usual approach doesnt work: + typeof(id) id = (id); \ it appears to be due to the outer / wrapping macro inserting the __UNIQUE_ID(ddebug) which gets expanded 2x, giving: | ^~~~~~~~ /home/jimc/projects/lx/linux.git/include/linux/compiler-gcc.h:42:45: note: previous definition of ‘__UNIQUE_ID_ddebug437’ with type ‘int’ 42 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) | ^~~~~~~~~~~~ /home/jimc/projects/lx/linux.git/include/linux/dynamic_debug.h:230:20: note: in definition of macro ‘__dynamic_func_call_cls’ 230 | typeof(id) id = (id); \ Moreover, these 2 macros imitate existing macros, which would suffer the same WARNING. My macro-fu is insufficient, can anyone suggest a clean way to fix this warning ? tia Jim