summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2013-08-08 11:32:17 +0000
committerAlexey Samsonov <samsonov@google.com>2013-08-08 11:32:17 +0000
commitbb14f34cde39e639ad04342eddabf2ea9b41b571 (patch)
tree4fbf0f47ce91246cb2573a3743fece12508aa6db
parent9f74a381a04dd4113aa5254bae12f4ca807b7134 (diff)
downloadbcm5719-llvm-bb14f34cde39e639ad04342eddabf2ea9b41b571.tar.gz
bcm5719-llvm-bb14f34cde39e639ad04342eddabf2ea9b41b571.zip
Factor out parsing sanitizer arguments to a separate function
llvm-svn: 187977
-rw-r--r--clang/lib/Driver/SanitizerArgs.cpp24
-rw-r--r--clang/lib/Driver/SanitizerArgs.h4
2 files changed, 22 insertions, 6 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp
index 5d2ea892246..69221ab13ae 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -19,14 +19,26 @@
using namespace clang::driver;
using namespace llvm::opt;
-SanitizerArgs::SanitizerArgs()
- : Kind(0), BlacklistFile(""), MsanTrackOrigins(false),
- AsanZeroBaseShadow(false), UbsanTrapOnError(false) {}
+void SanitizerArgs::clear() {
+ Kind = 0;
+ BlacklistFile = "";
+ MsanTrackOrigins = false;
+ AsanZeroBaseShadow = false;
+ UbsanTrapOnError = false;
+}
+
+SanitizerArgs::SanitizerArgs() {
+ clear();
+}
SanitizerArgs::SanitizerArgs(const ToolChain &TC,
- const llvm::opt::ArgList &Args)
- : Kind(0), BlacklistFile(""), MsanTrackOrigins(false),
- AsanZeroBaseShadow(false) {
+ const llvm::opt::ArgList &Args) {
+ clear();
+ parse(TC, Args);
+}
+
+void SanitizerArgs::parse(const ToolChain &TC,
+ const llvm::opt::ArgList &Args) {
unsigned AllKinds = 0; // All kinds of sanitizers that were turned on
// at least once (possibly, disabled further).
const Driver &D = TC.getDriver();
diff --git a/clang/lib/Driver/SanitizerArgs.h b/clang/lib/Driver/SanitizerArgs.h
index e622d0010dc..05886768cf5 100644
--- a/clang/lib/Driver/SanitizerArgs.h
+++ b/clang/lib/Driver/SanitizerArgs.h
@@ -54,6 +54,8 @@ class SanitizerArgs {
/// Parses the sanitizer arguments from an argument list.
SanitizerArgs(const ToolChain &TC, const llvm::opt::ArgList &Args);
+ void parse(const ToolChain &TC, const llvm::opt::ArgList &Args);
+
bool needsAsanRt() const { return Kind & NeedsAsanRt; }
bool needsTsanRt() const { return Kind & NeedsTsanRt; }
bool needsMsanRt() const { return Kind & NeedsMsanRt; }
@@ -76,6 +78,8 @@ class SanitizerArgs {
llvm::opt::ArgStringList &CmdArgs) const;
private:
+ void clear();
+
/// Parse a single value from a -fsanitize= or -fno-sanitize= value list.
/// Returns OR of members of the \c SanitizeKind enumeration, or \c 0
/// if \p Value is not known.
OpenPOWER on IntegriCloud