From 664703a9fc21d2e20ea5a4f320fda8b8da0b3eae Mon Sep 17 00:00:00 2001 From: Patrick Gartung Date: Tue, 13 May 2014 09:58:56 -0500 Subject: [PATCH] Fix clang compiler warnings/errors in Utilities/StaticAnalyzer package --- Utilities/StaticAnalyzers/src/ArgSizeChecker.cpp | 4 ++-- Utilities/StaticAnalyzers/src/ClassChecker.cpp | 16 +++------------- Utilities/StaticAnalyzers/src/EDMPluginDumper.cc | 1 - Utilities/StaticAnalyzers/src/edmChecker.cpp | 1 - 4 files changed, 5 insertions(+), 17 deletions(-) diff --git a/Utilities/StaticAnalyzers/src/ArgSizeChecker.cpp b/Utilities/StaticAnalyzers/src/ArgSizeChecker.cpp index 073d75a7ea4bf..91bc580edeac8 100644 --- a/Utilities/StaticAnalyzers/src/ArgSizeChecker.cpp +++ b/Utilities/StaticAnalyzers/src/ArgSizeChecker.cpp @@ -62,7 +62,7 @@ void ArgSizeChecker::checkPreStmt(const CXXConstructExpr *E, CheckerContext &ctx || PQT->isMemberFunctionPointerType() || PQT->isArrayType() || PQT->isBuiltinType() || PQT->isUnionType() || PQT->isVectorType() ) continue; uint64_t size_param = ctx.getASTContext().getTypeSize(PQT); - int64_t max_bits=128; + uint64_t max_bits=128; if ( size_param <= max_bits ) continue; std::string qname = QT.getAsString(); std::string pname = PQT.getAsString(); @@ -128,7 +128,7 @@ void ArgSizeChecker::checkASTDecl(const CXXMethodDecl *MD, AnalysisManager& mgr, if (PQT->isReferenceType() || PQT->isPointerType() || PQT->isMemberFunctionPointerType() || PQT->isArrayType()|| PQT->isBuiltinType() || PQT->isUnionType() || PQT->isVectorType() ) continue; uint64_t size_param = mgr.getASTContext().getTypeSize(PQT); - int64_t max_bits=128; + uint64_t max_bits=128; if ( size_param <= max_bits ) continue; std::string qname = QT.getAsString(); std::string pname = PQT.getAsString(); diff --git a/Utilities/StaticAnalyzers/src/ClassChecker.cpp b/Utilities/StaticAnalyzers/src/ClassChecker.cpp index dd8872b81ec63..d640da3f3de46 100644 --- a/Utilities/StaticAnalyzers/src/ClassChecker.cpp +++ b/Utilities/StaticAnalyzers/src/ClassChecker.cpp @@ -237,7 +237,8 @@ void WalkAST::CheckCXXOperatorCallExpr(const clang::CXXOperatorCallExpr *OCE,con if (ME->isImplicitAccess()) ReportMember(ME); } - + + default: return; } } @@ -258,9 +259,7 @@ void WalkAST::CheckExplicitCastExpr(const clang::ExplicitCastExpr * CE,const cla void WalkAST::CheckReturnStmt(const clang::ReturnStmt * RS, const clang::MemberExpr * E){ if (const clang::Expr * RE = RS->getRetValue()) { - clang::QualType QT = RE->getType(); clang::ASTContext &Ctx = AC->getASTContext(); - clang::QualType Ty = Ctx.getCanonicalType(QT); const clang::CXXMethodDecl * MD; if (visitingCallExpr) MD = visitingCallExpr->getMethodDecl(); @@ -269,8 +268,6 @@ void WalkAST::CheckReturnStmt(const clang::ReturnStmt * RS, const clang::MemberE if ( llvm::isa(RE) ) return; clang::QualType RQT = MD->getResultType(); clang::QualType RTy = Ctx.getCanonicalType(RQT); - clang::QualType CQT = MD->getCallResultType(); - clang::QualType CTy = Ctx.getCanonicalType(CQT); if ( (RTy->isPointerType() || RTy->isReferenceType() ) ) { if( !support::isConst(RTy) ) { ReportCallReturn(RS); @@ -423,7 +420,7 @@ void WalkAST::VisitMemberExpr( clang::MemberExpr *ME) { { WalkAST::CheckReturnStmt(RS,ME); } if (const clang::CXXConstCastExpr * CCE = llvm::dyn_cast(P)) { WalkAST::ReportCast(CCE);} - if (const clang::CXXNewExpr * NE = llvm::dyn_cast(P)) break; + const clang::CXXNewExpr * NE = llvm::dyn_cast(P);if (NE) break; P = AC->getParentMap().getParent(P); } } @@ -450,7 +447,6 @@ void WalkAST::VisitCXXMemberCallExpr( clang::CXXMemberCallExpr *CE) { for(int i=0, j=CE->getNumArgs(); igetArg(i)) { if ( const clang::Expr *E = llvm::dyn_cast(CE->getArg(i))) { - clang::QualType qual_arg = E->getType(); const clang::MemberExpr *AME=llvm::dyn_cast(E); if (AME && AME->isImplicitAccess()) { clang::ParmVarDecl *PVD=llvm::dyn_cast(MD->getParamDecl(i)); @@ -563,7 +559,6 @@ void WalkAST::ReportCallArg(const clang::CXXMemberCallExpr *CE,const int i) { clang::CXXMethodDecl * CMD = llvm::dyn_cast(CE)->getMethodDecl(); const clang::MemberExpr *E = llvm::dyn_cast(CE->getArg(i)); - clang::ParmVarDecl *PVD=llvm::dyn_cast(CMD->getParamDecl(i)); clang::ValueDecl * VD = llvm::dyn_cast(E->getMemberDecl()); os << "Member data '" << VD->getQualifiedNameAsString(); os << "' is passed to a non-const reference parameter"; @@ -574,7 +569,6 @@ void WalkAST::ReportCallArg(const clang::CXXMemberCallExpr *CE,const int i) { clang::ento::PathDiagnosticLocation ELoc = clang::ento::PathDiagnosticLocation::createBegin(CE, BR.getSourceManager(),AC); - clang::SourceLocation L = E->getExprLoc(); if (!m_exception.reportClass( ELoc, BR ) ) return; writeLog(tolog); @@ -651,11 +645,9 @@ void ClassChecker::checkASTDecl(const clang::CXXRecordDecl *RD, clang::ento::Ana clang::Stmt *Body = MD->getBody(); clangcms::WalkAST walker(BR, mgr.getAnalysisDeclContext(MD)); walker.Visit(Body); - clang::QualType CQT = MD->getCallResultType(); clang::QualType RQT = MD->getResultType(); clang::ASTContext &Ctx = BR.getContext(); clang::QualType RTy = Ctx.getCanonicalType(RQT); - clang::QualType CTy = Ctx.getCanonicalType(CQT); clang::ento::PathDiagnosticLocation ELoc =clang::ento::PathDiagnosticLocation::createBegin( MD , SM ); if ( (RTy->isPointerType() || RTy->isReferenceType() ) &&(!support::isConst(RTy) ) && ( MD->getNameAsString().find("clone")==std::string::npos ) ) { @@ -664,7 +656,6 @@ void ClassChecker::checkASTDecl(const clang::CXXRecordDecl *RD, clang::ento::Ana os << MD->getQualifiedNameAsString() << " is a const member function that returns a pointer or reference to a non-const object \n"; std::string tolog = "data class '"+MD->getParent()->getNameAsString()+"' const function '" + MD->getNameAsString() + "' Warning: "+os.str(); writeLog(tolog); - clang::SourceRange SR = MD->getSourceRange(); BR.EmitBasicReport(MD, "Class Checker : Const function returns pointer or reference to non-const object.","ThreadSafety",os.str(),ELoc); } std::string svname = "const class std::vector<"; @@ -683,7 +674,6 @@ void ClassChecker::checkASTDecl(const clang::CXXRecordDecl *RD, clang::ento::Ana os << MD->getQualifiedNameAsString() << " is a const member function that returns an object of type const std::vector<*> or const std::vector<*>& "<getParent()->getNameAsString()+"' const function '" + MD->getNameAsString() + "' Warning: "+os.str(); writeLog(tolog); - clang::SourceRange SR = MD->getSourceRange(); BR.EmitBasicReport(MD, "Class Checker : Const function returns const std::vector<*> or const std::vector<*>&","ThreadSafety",os.str(),ELoc); } } diff --git a/Utilities/StaticAnalyzers/src/EDMPluginDumper.cc b/Utilities/StaticAnalyzers/src/EDMPluginDumper.cc index a8a6bd1e04593..d360ff8cd57bd 100644 --- a/Utilities/StaticAnalyzers/src/EDMPluginDumper.cc +++ b/Utilities/StaticAnalyzers/src/EDMPluginDumper.cc @@ -15,7 +15,6 @@ namespace clangcms { void EDMPluginDumper::checkASTDecl(const clang::ClassTemplateDecl *TD,clang::ento::AnalysisManager& mgr, clang::ento::BugReporter &BR ) const { - const clang::SourceManager &SM = BR.getSourceManager(); std::string tname = TD->getTemplatedDecl()->getQualifiedNameAsString(); if ( tname == "edm::WorkerMaker" ) { for ( auto I = TD->spec_begin(), E = TD->spec_end(); I != E; ++I) { diff --git a/Utilities/StaticAnalyzers/src/edmChecker.cpp b/Utilities/StaticAnalyzers/src/edmChecker.cpp index 4a0be9d07ffc0..5dcb8e20e4874 100644 --- a/Utilities/StaticAnalyzers/src/edmChecker.cpp +++ b/Utilities/StaticAnalyzers/src/edmChecker.cpp @@ -44,7 +44,6 @@ void edmChecker::checkASTDecl(const clang::CXXRecordDecl *RD, clang::ento::Analy if (RQT.isConstQualified()) continue; } clang::ento::PathDiagnosticLocation ELoc =clang::ento::PathDiagnosticLocation::createBegin( MD, SM ); - clang::SourceLocation SL = MD->getLocStart(); BR.EmitBasicReport(MD, "Class Checker : inherits from edm::EDProducer or edm::EDFilter","optional",os.str(),ELoc); } }