1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#define CONFIG_FOO 1
#define define_struct(name, fields...) struct fields name;
define_struct(a, {
#ifdef CONFIG_FOO
int b;
#elif defined(CONFIG_BAR)
int c;
#else
int d;
#endif
});
/*
* check-name: Preprocessor #22
*
* check-description: Directives are not allowed within a macro argument list,
* although cpp deals with it to treat macro more like C functions.
*
* check-command: sparse -pedantic -E $file
*
* check-error-start
preprocessor/preprocessor22.c:6:1: warning: directive in macro's argument list
preprocessor/preprocessor22.c:8:1: warning: directive in macro's argument list
preprocessor/preprocessor22.c:10:1: warning: directive in macro's argument list
preprocessor/preprocessor22.c:12:1: warning: directive in macro's argument list
* check-error-end
*
* check-output-start
struct { int b; } a;;
* check-output-end
*/
|