[Analyzer] Change the default SA checkers for PS4

Summary: This patch removes security.*, unix.API and unix.Vfork from the default checkers for PS4.

Reviewers: dcoughlin, zaks.anna

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D15888

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256926 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Sean Eveson 2016-01-06 10:03:58 +00:00
parent c7ec208494
commit be3f6cf771
2 changed files with 48 additions and 8 deletions

View File

@ -3592,6 +3592,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
if (!IsWindowsMSVC)
CmdArgs.push_back("-analyzer-checker=unix");
// Disable some unix checkers for PS4.
if (IsPS4CPU) {
CmdArgs.push_back("-analyzer-disable-checker=unix.API");
CmdArgs.push_back("-analyzer-disable-checker=unix.Vfork");
}
if (getToolChain().getTriple().getVendor() == llvm::Triple::Apple)
CmdArgs.push_back("-analyzer-checker=osx");
@ -3600,14 +3606,15 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
if (types::isCXX(Input.getType()))
CmdArgs.push_back("-analyzer-checker=cplusplus");
// Enable the following experimental checkers for testing.
CmdArgs.push_back(
"-analyzer-checker=security.insecureAPI.UncheckedReturn");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.getpw");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.gets");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mktemp");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mkstemp");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.vfork");
if (!IsPS4CPU) {
CmdArgs.push_back(
"-analyzer-checker=security.insecureAPI.UncheckedReturn");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.getpw");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.gets");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mktemp");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mkstemp");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.vfork");
}
// Default nullability checks.
CmdArgs.push_back("-analyzer-checker=nullability.NullPassedToNonnull");

View File

@ -0,0 +1,33 @@
// Check that the default analyzer checkers for PS4 are:
// core
// cplusplus
// deadcode
// nullability
// unix
// Excluding:
// unix.API
// unix.Vfork
// Check for expected checkers
// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-PS4-POS-CHECKERS
//
// Negative check for unexpected checkers
// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-PS4-NEG-CHECKERS
//
// Check for all unix checkers except API and Vfork
// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-PS4-UNIX-CHECKERS
// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=core
// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=cplusplus
// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=deadcode
// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=nullability
//
// CHECK-PS4-NEG-CHECKERS-NOT: analyzer-checker={{osx|security}}
//
// CHECK-PS4-UNIX-CHECKERS: analyzer-checker=unix
// CHECK-PS4-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.API
// CHECK-PS4-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.Vfork
// CHECK-PS4-UNIX-CHECKERS-NOT: analyzer-checker=unix.{{API|Vfork}}