Author: jkorous Date: Mon Sep 23 17:33:47 2019 New Revision: 372679 URL: http://llvm.org/viewvc/llvm-project?rev=372679&view=rev Log: [static analyzer] Define __clang_analyzer__ macro in driver
Differential Revision: https://reviews.llvm.org/D67938 Added: cfe/trunk/test/Analysis/misc-driver.c Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp cfe/trunk/lib/Frontend/InitPreprocessor.cpp cfe/trunk/test/Analysis/misc-ps.m Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=372679&r1=372678&r2=372679&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Mon Sep 23 17:33:47 2019 @@ -3896,8 +3896,10 @@ void Clang::ConstructJob(Compilation &C, 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 Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp?rev=372679&r1=372678&r2=372679&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original) +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Mon Sep 23 17:33:47 2019 @@ -990,10 +990,6 @@ static void InitializePredefinedMacros(c 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__"); Added: cfe/trunk/test/Analysis/misc-driver.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-driver.c?rev=372679&view=auto ============================================================================== --- cfe/trunk/test/Analysis/misc-driver.c (added) +++ cfe/trunk/test/Analysis/misc-driver.c Mon Sep 23 17:33:47 2019 @@ -0,0 +1,5 @@ +// RUN: %clang --analyze %s + +#ifndef __clang_analyzer__ +#error __clang_analyzer__ not defined +#endif Modified: cfe/trunk/test/Analysis/misc-ps.m URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps.m?rev=372679&r1=372678&r2=372679&view=diff ============================================================================== --- cfe/trunk/test/Analysis/misc-ps.m (original) +++ cfe/trunk/test/Analysis/misc-ps.m Mon Sep 23 17:33:47 2019 @@ -2,10 +2,6 @@ // 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; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits