forked from OSchip/llvm-project
Revert "[Clang] -Wunused-but-set-variable warning - handle also pre/post unary operators"
This reverts commit 460fc440ad
.
This commit is contained in:
parent
cd28353e3f
commit
5b6b840531
|
@ -7921,7 +7921,6 @@ static void MaybeDecrementCount(
|
|||
Expr *E, llvm::DenseMap<const VarDecl *, int> &RefsMinusAssignments) {
|
||||
DeclRefExpr *LHS = nullptr;
|
||||
bool IsCompoundAssign = false;
|
||||
bool isIncrementDecrementUnaryOp = false;
|
||||
if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
|
||||
if (BO->getLHS()->getType()->isDependentType() ||
|
||||
BO->getRHS()->getType()->isDependentType()) {
|
||||
|
@ -7936,11 +7935,6 @@ static void MaybeDecrementCount(
|
|||
if (COCE->getOperator() != OO_Equal)
|
||||
return;
|
||||
LHS = dyn_cast<DeclRefExpr>(COCE->getArg(0));
|
||||
} else if (UnaryOperator *UO = dyn_cast<UnaryOperator>(E)) {
|
||||
if (!UO->isIncrementDecrementOp())
|
||||
return;
|
||||
isIncrementDecrementUnaryOp = true;
|
||||
LHS = dyn_cast<DeclRefExpr>(UO->getSubExpr());
|
||||
}
|
||||
if (!LHS)
|
||||
return;
|
||||
|
@ -7948,10 +7942,8 @@ static void MaybeDecrementCount(
|
|||
if (!VD)
|
||||
return;
|
||||
// Don't decrement RefsMinusAssignments if volatile variable with compound
|
||||
// assignment (+=, ...) or increment/decrement unary operator to avoid
|
||||
// potential unused-but-set-variable warning.
|
||||
if ((IsCompoundAssign || isIncrementDecrementUnaryOp) &&
|
||||
VD->getType().isVolatileQualified())
|
||||
// assignment (+=, ...) to avoid potential unused-but-set-variable warning.
|
||||
if (IsCompoundAssign && VD->getType().isVolatileQualified())
|
||||
return;
|
||||
auto iter = RefsMinusAssignments.find(VD);
|
||||
if (iter == RefsMinusAssignments.end())
|
||||
|
|
|
@ -25,10 +25,10 @@ void f3(struct S s) { // expected-warning{{parameter 's' set but not used}}
|
|||
s = t;
|
||||
}
|
||||
|
||||
void f4(int j) { // expected-warning{{parameter 'j' set but not used}}
|
||||
void f4(int j) { //TODO: warn
|
||||
j++;
|
||||
}
|
||||
|
||||
void f5(int k) { // expected-warning{{parameter 'k' set but not used}}
|
||||
void f5(int k) { //TODO: warn
|
||||
--k;
|
||||
}
|
||||
|
|
|
@ -73,20 +73,3 @@ void f3(void) {
|
|||
__attribute__((__cleanup__(for_cleanup))) int x;
|
||||
x = 5;
|
||||
}
|
||||
|
||||
void f4(void) {
|
||||
int x1 = 0; // expected-warning{{variable 'x1' set but not used}}
|
||||
x1++;
|
||||
int x2 = 0; // expected-warning{{variable 'x2' set but not used}}
|
||||
x2--;
|
||||
int x3 = 0; // expected-warning{{variable 'x3' set but not used}}
|
||||
++x3;
|
||||
int x4 = 0; // expected-warning{{variable 'x4' set but not used}}
|
||||
--x4;
|
||||
|
||||
volatile int v1 = 0;
|
||||
++v1;
|
||||
typedef volatile int volint;
|
||||
volint v2 = 0;
|
||||
v2++;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ struct S {
|
|||
struct __attribute__((warn_unused)) SWarnUnused {
|
||||
int j;
|
||||
void operator +=(int);
|
||||
void operator ++();
|
||||
};
|
||||
|
||||
int f0() {
|
||||
|
@ -63,9 +62,3 @@ template<typename T> void f4(T n) {
|
|||
SWarnUnused swu;
|
||||
swu += n;
|
||||
}
|
||||
|
||||
template <typename T> void f5() {
|
||||
// Don't warn for overloaded pre/post operators in template code.
|
||||
SWarnUnused swu;
|
||||
++swu;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue