-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
None
-
C Drivers
-
None
-
None
-
None
-
None
-
None
-
None
Example:
#define macro_without_args() 123 #define macro_with_args(a, b) a + b int x; x = MLIB_IS_EMPTY(nonmacro); // OK. x = MLIB_IS_EMPTY(macro_without_args); // OK. x = MLIB_IS_EMPTY(macro_with_args); // error: too few arguments provided to function-like macro invocation.
This may risk breaking builds for users if existing macros are defined. Discovered when working on CDRIVER-4489 when trying to invoke:
mlib_duration(1, min)
min was defined as a macro accepting two arguments