aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Sema/SemaExpr.cpp11
-rw-r--r--test/FixIt/no-macro-fixit.c3
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 3d2b14933e..ac1128b361 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -10081,12 +10081,11 @@ void Sema::DiagnoseAssignmentAsCondition(Expr *E) {
SourceLocation Open = E->getSourceRange().getBegin();
SourceLocation Close = E->getSourceRange().getEnd();
- if (!Open.isMacroID() && !Close.isMacroID()) {
- SourceLocation LocForEndOfToken = PP.getLocForEndOfToken(Close);
- Diag(Loc, diag::note_condition_assign_silence)
- << FixItHint::CreateInsertion(Open, "(")
- << FixItHint::CreateInsertion(LocForEndOfToken, ")");
- }
+ SourceLocation LocForEndOfToken =
+ Close.isMacroID() ? Close : PP.getLocForEndOfToken(Close);
+ Diag(Loc, diag::note_condition_assign_silence)
+ << FixItHint::CreateInsertion(Open, "(")
+ << FixItHint::CreateInsertion(LocForEndOfToken, ")");
}
/// \brief Redundant parentheses over an equality comparison can indicate
diff --git a/test/FixIt/no-macro-fixit.c b/test/FixIt/no-macro-fixit.c
index 3685ab1087..b6a9285e22 100644
--- a/test/FixIt/no-macro-fixit.c
+++ b/test/FixIt/no-macro-fixit.c
@@ -10,6 +10,7 @@ void myFunc() {
int value;
while (value = va_arg(values, int)) { // expected-warning {{using the result of an assignment as a condition without parentheses}} \
- // expected-note {{use '==' to turn this assignment into an equality comparison}}
+ // expected-note {{use '==' to turn this assignment into an equality comparison}} \
+ // expected-note {{place parentheses around the assignment to silence this warning}}
}
}