Просмотр исходного кода

Revert "Tweak insecureAPI analyzer checks to have the ability to be individually disabled."

Jordan Rose corrected me that this actually isn't needed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159462 91177308-0d34-0410-b5e6-96231b3b80d8
Ted Kremenek 13 лет назад
Родитель
Сommit
b0754170b2
1 измененных файлов с 8 добавлено и 2 удалено
  1. 8 2
      lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp

+ 8 - 2
lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp

@@ -379,6 +379,13 @@ void WalkAST::checkCall_getpw(const CallExpr *CE, const FunctionDecl *FD) {
 //===----------------------------------------------------------------------===//
 //===----------------------------------------------------------------------===//
 
 
 void WalkAST::checkCall_mktemp(const CallExpr *CE, const FunctionDecl *FD) {
 void WalkAST::checkCall_mktemp(const CallExpr *CE, const FunctionDecl *FD) {
+  if (!filter.check_mktemp) {
+    // Fall back to the security check of looking for enough 'X's in the
+    // format string, since that is a less severe warning.
+    checkCall_mkstemp(CE, FD);
+    return;
+  }
+
   const FunctionProtoType *FPT
   const FunctionProtoType *FPT
     = dyn_cast<FunctionProtoType>(FD->getType().IgnoreParens());
     = dyn_cast<FunctionProtoType>(FD->getType().IgnoreParens());
   if(!FPT)
   if(!FPT)
@@ -762,9 +769,8 @@ public:
 }
 }
 
 
 #define REGISTER_CHECKER(name) \
 #define REGISTER_CHECKER(name) \
-namespace { class Checker_##name : public SecuritySyntaxChecker {}; }\
 void ento::register##name(CheckerManager &mgr) {\
 void ento::register##name(CheckerManager &mgr) {\
-  mgr.registerChecker<Checker_##name>()->filter.check_##name = true;\
+  mgr.registerChecker<SecuritySyntaxChecker>()->filter.check_##name = true;\
 }
 }
 
 
 REGISTER_CHECKER(gets)
 REGISTER_CHECKER(gets)