forked from OSchip/llvm-project
Clarify wording of -Wshift-op-parentheses.
Suggestion from Matt Beaumont-Gay reviewing r165283. llvm-svn: 166296
This commit is contained in:
parent
468ea4eb9d
commit
82d3ab9225
|
@ -3865,7 +3865,8 @@ def warn_logical_and_in_logical_or : Warning<
|
|||
"'&&' within '||'">, InGroup<LogicalOpParentheses>;
|
||||
|
||||
def warn_addition_in_bitshift : Warning<
|
||||
"'%0' within '%1'">, InGroup<ShiftOpParentheses>;
|
||||
"operator '%0' has lower precedence than '%1'; "
|
||||
"'%1' will be evaluated first">, InGroup<ShiftOpParentheses>;
|
||||
|
||||
def warn_self_assignment : Warning<
|
||||
"explicitly assigning a variable of type %0 to itself">,
|
||||
|
|
|
@ -8586,12 +8586,12 @@ static void DiagnoseBitwiseAndInBitwiseOr(Sema &S, SourceLocation OpLoc,
|
|||
}
|
||||
|
||||
static void DiagnoseAdditionInShift(Sema &S, SourceLocation OpLoc,
|
||||
Expr *SubExpr, StringRef shift) {
|
||||
Expr *SubExpr, StringRef Shift) {
|
||||
if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(SubExpr)) {
|
||||
if (Bop->getOpcode() == BO_Add || Bop->getOpcode() == BO_Sub) {
|
||||
StringRef Op = Bop->getOpcodeStr();
|
||||
S.Diag(Bop->getOperatorLoc(), diag::warn_addition_in_bitshift)
|
||||
<< Bop->getSourceRange() << OpLoc << Op << shift;
|
||||
<< Bop->getSourceRange() << OpLoc << Shift << Op;
|
||||
SuggestParentheses(S, Bop->getOperatorLoc(),
|
||||
S.PDiag(diag::note_precedence_silence) << Op,
|
||||
Bop->getSourceRange());
|
||||
|
@ -8623,9 +8623,9 @@ static void DiagnoseBinOpPrecedence(Sema &Self, BinaryOperatorKind Opc,
|
|||
|
||||
if ((Opc == BO_Shl && LHSExpr->getType()->isIntegralType(Self.getASTContext()))
|
||||
|| Opc == BO_Shr) {
|
||||
StringRef shift = BinaryOperator::getOpcodeStr(Opc);
|
||||
DiagnoseAdditionInShift(Self, OpLoc, LHSExpr, shift);
|
||||
DiagnoseAdditionInShift(Self, OpLoc, RHSExpr, shift);
|
||||
StringRef Shift = BinaryOperator::getOpcodeStr(Opc);
|
||||
DiagnoseAdditionInShift(Self, OpLoc, LHSExpr, Shift);
|
||||
DiagnoseAdditionInShift(Self, OpLoc, RHSExpr, Shift);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -49,11 +49,11 @@ void test(S *s, bool (S::*m_ptr)()) {
|
|||
}
|
||||
|
||||
void test(int a, int b, int c) {
|
||||
(void)(a >> b + c); // expected-warning {{'+' within '>>'}} \
|
||||
(void)(a >> b + c); // expected-warning {{operator '>>' has lower precedence than '+'; '+' will be evaluated first}} \
|
||||
expected-note {{place parentheses around the '+' expression to silence this warning}}
|
||||
(void)(a - b << c); // expected-warning {{'-' within '<<'}} \
|
||||
(void)(a - b << c); // expected-warning {{operator '<<' has lower precedence than '-'; '-' will be evaluated first}} \
|
||||
expected-note {{place parentheses around the '-' expression to silence this warning}}
|
||||
Stream() << b + c;
|
||||
Stream() >> b + c; // expected-warning {{'+' within '>>'}} \
|
||||
Stream() >> b + c; // expected-warning {{operator '>>' has lower precedence than '+'; '+' will be evaluated first}} \
|
||||
expected-note {{place parentheses around the '+' expression to silence this warning}}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue