Index: clang-tidy/misc/MacroParenthesesCheck.cpp =================================================================== --- clang-tidy/misc/MacroParenthesesCheck.cpp +++ clang-tidy/misc/MacroParenthesesCheck.cpp @@ -188,6 +188,10 @@ if (Prev.is(tok::kw_namespace)) continue; + // Variadic templates + if (MI->isVariadic()) + continue; + Check->diag(Tok.getLocation(), "macro argument should be enclosed in " "parentheses") << FixItHint::CreateInsertion(Tok.getLocation(), "(") Index: test/clang-tidy/misc-macro-parentheses.cpp =================================================================== --- test/clang-tidy/misc-macro-parentheses.cpp +++ test/clang-tidy/misc-macro-parentheses.cpp @@ -37,6 +37,8 @@ #define GOOD26(x) (a->*x) #define GOOD27(x) (a.*x) #define GOOD28(x) namespace x {int b;} +#define GOOD29(...) std::cout << __VA_ARGS__; +#define GOOD30(args...) std::cout << args; // These are allowed for now.. #define MAYBE1 *12.34