aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Korous <jkorous@apple.com>2019-09-24 03:21:22 +0000
committerJan Korous <jkorous@apple.com>2019-09-24 03:21:22 +0000
commitb26e9e2a8f1865711c4e9b9aa7be712589169b3d (patch)
tree5e69d4d247aacee5662eb2bc4d9b513daaa1fa35
parent5e61895aed1dd08b1183d4528a50be2bf1051eda (diff)
downloadllvm-b26e9e2a8f1865711c4e9b9aa7be712589169b3d.zip
llvm-b26e9e2a8f1865711c4e9b9aa7be712589169b3d.tar.gz
llvm-b26e9e2a8f1865711c4e9b9aa7be712589169b3d.tar.bz2
Revert "[static analyzer] Define __clang_analyzer__ macro in driver"
This reverts commit fbd13570b0d5f92ef2cf6bcfe7cc2f6178500187. llvm-svn: 372687
-rw-r--r--clang/lib/Driver/ToolChains/Clang.cpp4
-rw-r--r--clang/lib/Frontend/InitPreprocessor.cpp4
-rw-r--r--clang/test/Analysis/misc-driver.c5
-rw-r--r--clang/test/Analysis/misc-ps.m4
4 files changed, 9 insertions, 8 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 6453af7..aa17efb 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -3896,10 +3896,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
if (Args.hasArg(options::OPT_municode))
CmdArgs.push_back("-DUNICODE");
- if (isa<AnalyzeJobAction>(JA)) {
+ if (isa<AnalyzeJobAction>(JA))
RenderAnalyzerOptions(Args, CmdArgs, Triple, Input);
- CmdArgs.push_back("-D__clang_analyzer__");
- }
// Enable compatilibily mode to avoid analyzer-config related errors.
// Since we can't access frontend flags through hasArg, let's manually iterate
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 9da37e0..95d9f62 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -990,6 +990,10 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
else if (LangOpts.getStackProtector() == LangOptions::SSPReq)
Builder.defineMacro("__SSP_ALL__", "3");
+ // Define a macro that exists only when using the static analyzer.
+ if (FEOpts.ProgramAction == frontend::RunAnalysis)
+ Builder.defineMacro("__clang_analyzer__");
+
if (LangOpts.FastRelaxedMath)
Builder.defineMacro("__FAST_RELAXED_MATH__");
diff --git a/clang/test/Analysis/misc-driver.c b/clang/test/Analysis/misc-driver.c
deleted file mode 100644
index f9e7fe3..0000000
--- a/clang/test/Analysis/misc-driver.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %clang --analyze %s
-
-#ifndef __clang_analyzer__
-#error __clang_analyzer__ not defined
-#endif
diff --git a/clang/test/Analysis/misc-ps.m b/clang/test/Analysis/misc-ps.m
index 1cfd2eb..9a75cfd 100644
--- a/clang/test/Analysis/misc-ps.m
+++ b/clang/test/Analysis/misc-ps.m
@@ -2,6 +2,10 @@
// RUN: %clang_analyze_cc1 -triple i386-apple-darwin10 -analyzer-checker=core,alpha.core,osx.cocoa.AtSync -analyzer-store=region -verify -fblocks -Wno-unreachable-code -Wno-null-dereference -Wno-objc-root-class %s
// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin10 -analyzer-checker=core,alpha.core,osx.cocoa.AtSync -analyzer-store=region -verify -fblocks -Wno-unreachable-code -Wno-null-dereference -Wno-objc-root-class %s
+#ifndef __clang_analyzer__
+#error __clang_analyzer__ not defined
+#endif
+
typedef struct objc_ivar *Ivar;
typedef struct objc_selector *SEL;
typedef signed char BOOL;