forked from OSchip/llvm-project
Format strings: add more expression types that don't need parens to cast.
No functionality change (the test change is a comment only, and the new functionality can't be tested using the current test). llvm-svn: 169399
This commit is contained in:
parent
598ec0992d
commit
ea0fdfe146
|
@ -2690,12 +2690,24 @@ static bool requiresParensToAddCast(const Expr *E) {
|
|||
switch (Inside->getStmtClass()) {
|
||||
case Stmt::ArraySubscriptExprClass:
|
||||
case Stmt::CallExprClass:
|
||||
case Stmt::CharacterLiteralClass:
|
||||
case Stmt::CXXBoolLiteralExprClass:
|
||||
case Stmt::DeclRefExprClass:
|
||||
case Stmt::FloatingLiteralClass:
|
||||
case Stmt::IntegerLiteralClass:
|
||||
case Stmt::MemberExprClass:
|
||||
case Stmt::ObjCArrayLiteralClass:
|
||||
case Stmt::ObjCBoolLiteralExprClass:
|
||||
case Stmt::ObjCBoxedExprClass:
|
||||
case Stmt::ObjCDictionaryLiteralClass:
|
||||
case Stmt::ObjCEncodeExprClass:
|
||||
case Stmt::ObjCIvarRefExprClass:
|
||||
case Stmt::ObjCMessageExprClass:
|
||||
case Stmt::ObjCPropertyRefExprClass:
|
||||
case Stmt::ObjCStringLiteralClass:
|
||||
case Stmt::ObjCSubscriptRefExprClass:
|
||||
case Stmt::ParenExprClass:
|
||||
case Stmt::StringLiteralClass:
|
||||
case Stmt::UnaryOperatorClass:
|
||||
return false;
|
||||
default:
|
||||
|
|
|
@ -65,7 +65,7 @@ void testParens(Foo *obj, struct Bar *record) {
|
|||
NSInteger arr[4] = {0};
|
||||
NSInteger i = 0;
|
||||
|
||||
// These cases match the cases in CheckPrintfHandler::checkFormatExpr.
|
||||
// These cases match the relevant cases in CheckPrintfHandler::checkFormatExpr.
|
||||
printf("%s", arr[0]); // expected-warning{{values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead}}
|
||||
printf("%s", getNSInteger()); // expected-warning{{values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead}}
|
||||
printf("%s", i); // expected-warning{{values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead}}
|
||||
|
|
Loading…
Reference in New Issue