forked from OSchip/llvm-project
Improve unreachable code warnings for with respect to compound
assignments. llvm-svn: 94086
This commit is contained in:
parent
d182431968
commit
14781509fd
|
@ -2102,6 +2102,12 @@ static SourceLocation GetUnreachableLoc(CFGBlock &b, SourceRange &R1,
|
|||
R1 = UO->getSubExpr()->getSourceRange();
|
||||
return UO->getOperatorLoc();
|
||||
}
|
||||
case Expr::CompoundAssignOperatorClass: {
|
||||
const CompoundAssignOperator *CAO = cast<CompoundAssignOperator>(S);
|
||||
R1 = CAO->getLHS()->getSourceRange();
|
||||
R2 = CAO->getRHS()->getSourceRange();
|
||||
return CAO->getOperatorLoc();
|
||||
}
|
||||
case Stmt::CXXTryStmtClass: {
|
||||
return cast<CXXTryStmt>(S)->getHandler(0)->getCatchLoc();
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ void test1() {
|
|||
}
|
||||
|
||||
void test2() {
|
||||
int i;
|
||||
switch (live()) {
|
||||
case 1:
|
||||
halt(),
|
||||
|
@ -78,5 +79,9 @@ void test2() {
|
|||
dead();
|
||||
- // expected-warning {{will never be executed}}
|
||||
halt();
|
||||
case 8:
|
||||
i
|
||||
+= // expected-warning {{will never be executed}}
|
||||
halt();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue