mirror of https://github.com/microsoft/clang.git
[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:
parent
c7ec208494
commit
be3f6cf771
|
@ -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");
|
||||
|
|
|
@ -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}}
|
Loading…
Reference in New Issue