summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clang-tidy/misc/MacroParenthesesCheck.cpp6
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp2
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
OpenPOWER on IntegriCloud