diff options
-rw-r--r-- | clang-tools-extra/clang-tidy/misc/MacroParenthesesCheck.cpp | 6 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/MacroParenthesesCheck.cpp b/clang-tools-extra/clang-tidy/misc/MacroParenthesesCheck.cpp index 1649d3fee64..7d5aca43f58 100644 --- a/clang-tools-extra/clang-tidy/misc/MacroParenthesesCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/MacroParenthesesCheck.cpp @@ -148,7 +148,7 @@ void MacroParenthesesPPCallbacks::argument(const Token &MacroNameTok, continue; // Argument is a struct member. - if (Prev.isOneOf(tok::period, tok::arrow)) + if (Prev.isOneOf(tok::period, tok::arrow, tok::coloncolon)) continue; // String concatenation. @@ -169,8 +169,8 @@ void MacroParenthesesPPCallbacks::argument(const Token &MacroNameTok, TI + 2 != MI->tokens_end() && (TI + 2)->is(tok::r_paren)) continue; - // Assignment. - if (Prev.is(tok::equal) && Next.is(tok::semi)) + // Assignment/return, i.e. '=x;' or 'return x;'. + if (Prev.isOneOf(tok::equal, tok::kw_return) && Next.is(tok::semi)) continue; Check->diag(Tok.getLocation(), "macro argument should be enclosed in " diff --git a/clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp b/clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp index 9e5a2fe0497..0c4338f7a55 100644 --- a/clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp @@ -30,6 +30,8 @@ #define GOOD18(x) ;x; #define GOOD19 ;-2; #define GOOD20 void* +#define GOOD21(a) case Fred::a: +#define GOOD22(a) if (verbose) return a; // These are allowed for now.. #define MAYBE1 *12.34 |