diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 17:59:23 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 17:59:23 +0000 |
commit | 9a83721404652cea39e9f02ae3e3b5c964602a5c (patch) | |
tree | 23e9541ce27049a103f6ed046be61592123e02c9 /lib | |
parent | 676fbe8105eeb6ff4bb2ed261cb212fcfdbe7b63 (diff) | |
download | src-9a83721404652cea39e9f02ae3e3b5c964602a5c.tar.gz src-9a83721404652cea39e9f02ae3e3b5c964602a5c.zip |
Remove upstream files and directories from vendor/clang/dist that we do
not use. This saves on repository space, and reduces the number of tree
conflicts when merging.
Notes
Notes:
svn path=/vendor/clang/dist/; revision=351267
Diffstat (limited to 'lib')
33 files changed, 0 insertions, 1560 deletions
diff --git a/lib/ARCMigrate/CMakeLists.txt b/lib/ARCMigrate/CMakeLists.txt deleted file mode 100644 index efdff279aaed..000000000000 --- a/lib/ARCMigrate/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangARCMigrate - ARCMT.cpp - ARCMTActions.cpp - FileRemapper.cpp - ObjCMT.cpp - PlistReporter.cpp - TransAPIUses.cpp - TransARCAssign.cpp - TransAutoreleasePool.cpp - TransBlockObjCVariable.cpp - TransEmptyStatementsAndDealloc.cpp - TransGCAttrs.cpp - TransGCCalls.cpp - TransProperties.cpp - TransProtectedScope.cpp - TransRetainReleaseDealloc.cpp - TransUnbridgedCasts.cpp - TransUnusedInitDelegate.cpp - TransZeroOutPropsInDealloc.cpp - TransformActions.cpp - Transforms.cpp - - LINK_LIBS - clangAST - clangAnalysis - clangBasic - clangEdit - clangFrontend - clangLex - clangRewrite - clangSema - clangSerialization - clangStaticAnalyzerCheckers - clangStaticAnalyzerCore - ) diff --git a/lib/AST/CMakeLists.txt b/lib/AST/CMakeLists.txt deleted file mode 100644 index 570ca718acf5..000000000000 --- a/lib/AST/CMakeLists.txt +++ /dev/null @@ -1,83 +0,0 @@ -set(LLVM_LINK_COMPONENTS - BinaryFormat - Support - ) - -add_clang_library(clangAST - APValue.cpp - ASTConsumer.cpp - ASTContext.cpp - ASTDiagnostic.cpp - ASTDumper.cpp - ASTImporter.cpp - ASTImporterLookupTable.cpp - ASTStructuralEquivalence.cpp - ASTTypeTraits.cpp - AttrImpl.cpp - CXXInheritance.cpp - Comment.cpp - CommentBriefParser.cpp - CommentCommandTraits.cpp - CommentLexer.cpp - CommentParser.cpp - CommentSema.cpp - ComparisonCategories.cpp - DataCollection.cpp - Decl.cpp - DeclarationName.cpp - DeclBase.cpp - DeclCXX.cpp - DeclFriend.cpp - DeclGroup.cpp - DeclObjC.cpp - DeclOpenMP.cpp - DeclPrinter.cpp - DeclTemplate.cpp - Expr.cpp - ExprClassification.cpp - ExprConstant.cpp - ExprCXX.cpp - ExprObjC.cpp - ExternalASTMerger.cpp - ExternalASTSource.cpp - FormatString.cpp - InheritViz.cpp - ItaniumCXXABI.cpp - ItaniumMangle.cpp - Mangle.cpp - MicrosoftCXXABI.cpp - MicrosoftMangle.cpp - NestedNameSpecifier.cpp - NSAPI.cpp - ODRHash.cpp - OSLog.cpp - OpenMPClause.cpp - ParentMap.cpp - PrintfFormatString.cpp - QualTypeNames.cpp - RawCommentList.cpp - RecordLayout.cpp - RecordLayoutBuilder.cpp - ScanfFormatString.cpp - SelectorLocationsKind.cpp - Stmt.cpp - StmtCXX.cpp - StmtIterator.cpp - StmtObjC.cpp - StmtOpenMP.cpp - StmtPrinter.cpp - StmtProfile.cpp - StmtViz.cpp - TemplateBase.cpp - TemplateName.cpp - TextNodeDumper.cpp - Type.cpp - TypeLoc.cpp - TypePrinter.cpp - VTableBuilder.cpp - VTTBuilder.cpp - - LINK_LIBS - clangBasic - clangLex - ) diff --git a/lib/ASTMatchers/CMakeLists.txt b/lib/ASTMatchers/CMakeLists.txt deleted file mode 100644 index b49528ede227..000000000000 --- a/lib/ASTMatchers/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -add_subdirectory(Dynamic) - -set(LLVM_LINK_COMPONENTS support) - -add_clang_library(clangASTMatchers - ASTMatchFinder.cpp - ASTMatchersInternal.cpp - - LINK_LIBS - clangAST - clangBasic - ) diff --git a/lib/ASTMatchers/Dynamic/CMakeLists.txt b/lib/ASTMatchers/Dynamic/CMakeLists.txt deleted file mode 100644 index 82c12a47fa93..000000000000 --- a/lib/ASTMatchers/Dynamic/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -set(LLVM_LINK_COMPONENTS support) - -# The registry source file ends up generating a lot of sections for each -# matcher. Each matcher appears to get a vtable and several methods. Each -# method needs .text, .pdata, .xdata, and .debug sections, adding to the -# section multiplier. By default MSVC has a 2^16 limit on the number of -# sections in an object file, and this needs more than that. -if (MSVC) - set_source_files_properties(Registry.cpp PROPERTIES COMPILE_FLAGS /bigobj) -endif() - -add_clang_library(clangDynamicASTMatchers - Diagnostics.cpp - VariantValue.cpp - Parser.cpp - Registry.cpp - - LINK_LIBS - clangAST - clangASTMatchers - clangBasic - ) diff --git a/lib/Analysis/CMakeLists.txt b/lib/Analysis/CMakeLists.txt deleted file mode 100644 index 5345a56f2002..000000000000 --- a/lib/Analysis/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangAnalysis - AnalysisDeclContext.cpp - BodyFarm.cpp - CFG.cpp - CFGReachabilityAnalysis.cpp - CFGStmtMap.cpp - CallGraph.cpp - CloneDetection.cpp - CocoaConventions.cpp - ConstructionContext.cpp - Consumed.cpp - CodeInjector.cpp - Dominators.cpp - ExprMutationAnalyzer.cpp - LiveVariables.cpp - ObjCNoReturn.cpp - PostOrderCFGView.cpp - ProgramPoint.cpp - ReachableCode.cpp - ThreadSafety.cpp - ThreadSafetyCommon.cpp - ThreadSafetyLogical.cpp - ThreadSafetyTIL.cpp - UninitializedValues.cpp - - LINK_LIBS - clangAST - clangASTMatchers - clangBasic - clangLex - ) diff --git a/lib/Basic/CMakeLists.txt b/lib/Basic/CMakeLists.txt deleted file mode 100644 index 8b3aa0f1e972..000000000000 --- a/lib/Basic/CMakeLists.txt +++ /dev/null @@ -1,103 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Core - MC - Support - ) - -find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}") -find_first_existing_vc_file(clang_vc "${CLANG_SOURCE_DIR}") - -# The VC revision include that we want to generate. -set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc") - -set(get_svn_script "${LLVM_CMAKE_PATH}/GetSVN.cmake") - -if(DEFINED llvm_vc AND DEFINED clang_vc) - # Create custom target to generate the VC revision include. - add_custom_command(OUTPUT "${version_inc}" - DEPENDS "${llvm_vc}" "${clang_vc}" "${get_svn_script}" - COMMAND - ${CMAKE_COMMAND} "-DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}" - "-DFIRST_NAME=LLVM" - "-DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}" - "-DSECOND_NAME=SVN" - "-DHEADER_FILE=${version_inc}" - -P "${get_svn_script}") - - # Mark the generated header as being generated. - set_source_files_properties("${version_inc}" - PROPERTIES GENERATED TRUE - HEADER_FILE_ONLY TRUE) - - # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC. - set_source_files_properties(Version.cpp - PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC") -else() - # Not producing a VC revision include. - set(version_inc) - - # Being able to force-set the SVN revision in cases where it isn't available - # is useful for performance tracking, and matches compatibility from autoconf. - if(SVN_REVISION) - set_source_files_properties(Version.cpp - PROPERTIES COMPILE_DEFINITIONS "SVN_REVISION=\"${SVN_REVISION}\"") - endif() -endif() - -add_clang_library(clangBasic - Attributes.cpp - Builtins.cpp - CharInfo.cpp - CodeGenOptions.cpp - Cuda.cpp - Diagnostic.cpp - DiagnosticIDs.cpp - DiagnosticOptions.cpp - FileManager.cpp - FileSystemStatCache.cpp - FixedPoint.cpp - IdentifierTable.cpp - LangOptions.cpp - MemoryBufferCache.cpp - Module.cpp - ObjCRuntime.cpp - OpenMPKinds.cpp - OperatorPrecedence.cpp - SanitizerBlacklist.cpp - SanitizerSpecialCaseList.cpp - Sanitizers.cpp - SourceLocation.cpp - SourceManager.cpp - TargetInfo.cpp - Targets.cpp - Targets/AArch64.cpp - Targets/AMDGPU.cpp - Targets/ARC.cpp - Targets/ARM.cpp - Targets/AVR.cpp - Targets/BPF.cpp - Targets/Hexagon.cpp - Targets/Lanai.cpp - Targets/Le64.cpp - Targets/MSP430.cpp - Targets/Mips.cpp - Targets/NVPTX.cpp - Targets/OSTargets.cpp - Targets/PNaCl.cpp - Targets/PPC.cpp - Targets/RISCV.cpp - Targets/SPIR.cpp - Targets/Sparc.cpp - Targets/SystemZ.cpp - Targets/TCE.cpp - Targets/WebAssembly.cpp - Targets/X86.cpp - Targets/XCore.cpp - TokenKinds.cpp - Version.cpp - Warnings.cpp - XRayInstr.cpp - XRayLists.cpp - ${version_inc} - ) - diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt deleted file mode 100644 index b3fa93555b07..000000000000 --- a/lib/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -add_subdirectory(Headers) -add_subdirectory(Basic) -add_subdirectory(Lex) -add_subdirectory(Parse) -add_subdirectory(AST) -add_subdirectory(ASTMatchers) -add_subdirectory(CrossTU) -add_subdirectory(Sema) -add_subdirectory(CodeGen) -add_subdirectory(Analysis) -add_subdirectory(Edit) -add_subdirectory(Rewrite) -if(CLANG_ENABLE_ARCMT) - add_subdirectory(ARCMigrate) -endif() -add_subdirectory(Driver) -add_subdirectory(Serialization) -add_subdirectory(Frontend) -add_subdirectory(FrontendTool) -add_subdirectory(Tooling) -add_subdirectory(Index) -if(CLANG_ENABLE_STATIC_ANALYZER) - add_subdirectory(StaticAnalyzer) -endif() -add_subdirectory(Format) diff --git a/lib/CodeGen/CMakeLists.txt b/lib/CodeGen/CMakeLists.txt deleted file mode 100644 index 29c6793c601e..000000000000 --- a/lib/CodeGen/CMakeLists.txt +++ /dev/null @@ -1,106 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Analysis - BitReader - BitWriter - Core - Coroutines - Coverage - IPO - IRReader - AggressiveInstCombine - InstCombine - Instrumentation - LTO - Linker - MC - ObjCARCOpts - Object - Passes - ProfileData - ScalarOpts - Support - Target - TransformUtils - ) - -# In a standard Clang+LLVM build, we need to generate intrinsics before -# building codegen. In a standalone build, LLVM is already built and we don't -# need this dependency. Furthermore, LLVM doesn't export it so we can't have -# this dependency. -set(codegen_deps intrinsics_gen) -if (CLANG_BUILT_STANDALONE) - set(codegen_deps) -endif() - -if (MSVC) - set_source_files_properties(CodeGenModule.cpp PROPERTIES COMPILE_FLAGS /bigobj) -endif() - -add_clang_library(clangCodeGen - BackendUtil.cpp - CGAtomic.cpp - CGBlocks.cpp - CGBuiltin.cpp - CGCUDANV.cpp - CGCUDARuntime.cpp - CGCXX.cpp - CGCXXABI.cpp - CGCall.cpp - CGClass.cpp - CGCleanup.cpp - CGCoroutine.cpp - CGDebugInfo.cpp - CGDecl.cpp - CGDeclCXX.cpp - CGException.cpp - CGExpr.cpp - CGExprAgg.cpp - CGExprCXX.cpp - CGExprComplex.cpp - CGExprConstant.cpp - CGExprScalar.cpp - CGGPUBuiltin.cpp - CGLoopInfo.cpp - CGNonTrivialStruct.cpp - CGObjC.cpp - CGObjCGNU.cpp - CGObjCMac.cpp - CGObjCRuntime.cpp - CGOpenCLRuntime.cpp - CGOpenMPRuntime.cpp - CGOpenMPRuntimeNVPTX.cpp - CGRecordLayoutBuilder.cpp - CGStmt.cpp - CGStmtOpenMP.cpp - CGVTT.cpp - CGVTables.cpp - CodeGenABITypes.cpp - CodeGenAction.cpp - CodeGenFunction.cpp - CodeGenModule.cpp - CodeGenPGO.cpp - CodeGenTBAA.cpp - CodeGenTypes.cpp - ConstantInitBuilder.cpp - CoverageMappingGen.cpp - ItaniumCXXABI.cpp - MacroPPCallbacks.cpp - MicrosoftCXXABI.cpp - ModuleBuilder.cpp - ObjectFilePCHContainerOperations.cpp - SanitizerMetadata.cpp - SwiftCallingConv.cpp - TargetInfo.cpp - VarBypassDetector.cpp - - DEPENDS - ${codegen_deps} - - LINK_LIBS - clangAnalysis - clangAST - clangBasic - clangFrontend - clangLex - clangSerialization - ) diff --git a/lib/CodeGen/README.txt b/lib/CodeGen/README.txt deleted file mode 100644 index e6d61095bf23..000000000000 --- a/lib/CodeGen/README.txt +++ /dev/null @@ -1,47 +0,0 @@ -IRgen optimization opportunities. - -//===---------------------------------------------------------------------===// - -The common pattern of --- -short x; // or char, etc -(x == 10) --- -generates an zext/sext of x which can easily be avoided. - -//===---------------------------------------------------------------------===// - -Bitfields accesses can be shifted to simplify masking and sign -extension. For example, if the bitfield width is 8 and it is -appropriately aligned then is is a lot shorter to just load the char -directly. - -//===---------------------------------------------------------------------===// - -It may be worth avoiding creation of alloca's for formal arguments -for the common situation where the argument is never written to or has -its address taken. The idea would be to begin generating code by using -the argument directly and if its address is taken or it is stored to -then generate the alloca and patch up the existing code. - -In theory, the same optimization could be a win for block local -variables as long as the declaration dominates all statements in the -block. - -NOTE: The main case we care about this for is for -O0 -g compile time -performance, and in that scenario we will need to emit the alloca -anyway currently to emit proper debug info. So this is blocked by -being able to emit debug information which refers to an LLVM -temporary, not an alloca. - -//===---------------------------------------------------------------------===// - -We should try and avoid generating basic blocks which only contain -jumps. At -O0, this penalizes us all the way from IRgen (malloc & -instruction overhead), all the way down through code generation and -assembly time. - -On 176.gcc:expr.ll, it looks like over 12% of basic blocks are just -direct branches! - -//===---------------------------------------------------------------------===// diff --git a/lib/CrossTU/CMakeLists.txt b/lib/CrossTU/CMakeLists.txt deleted file mode 100644 index 632b5072ad6a..000000000000 --- a/lib/CrossTU/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangCrossTU - CrossTranslationUnit.cpp - - LINK_LIBS - clangAST - clangBasic - clangFrontend - clangIndex - ) diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt deleted file mode 100644 index 4793a1f90b2f..000000000000 --- a/lib/Driver/CMakeLists.txt +++ /dev/null @@ -1,77 +0,0 @@ -set(LLVM_LINK_COMPONENTS - BinaryFormat - Option - Support - ) - -if(WIN32) - # MSVCToolChain.cpp uses version.dll. - set(system_libs version) -endif() - -add_clang_library(clangDriver - Action.cpp - Compilation.cpp - DarwinSDKInfo.cpp - Distro.cpp - Driver.cpp - DriverOptions.cpp - Job.cpp - Multilib.cpp - Phases.cpp - SanitizerArgs.cpp - Tool.cpp - ToolChain.cpp - ToolChains/Arch/AArch64.cpp - ToolChains/Arch/ARM.cpp - ToolChains/Arch/Mips.cpp - ToolChains/Arch/PPC.cpp - ToolChains/Arch/RISCV.cpp - ToolChains/Arch/Sparc.cpp - ToolChains/Arch/SystemZ.cpp - ToolChains/Arch/X86.cpp - ToolChains/Ananas.cpp - ToolChains/AMDGPU.cpp - ToolChains/AVR.cpp - ToolChains/BareMetal.cpp - ToolChains/Clang.cpp - ToolChains/CloudABI.cpp - ToolChains/CommonArgs.cpp - ToolChains/Contiki.cpp - ToolChains/CrossWindows.cpp - ToolChains/Cuda.cpp - ToolChains/Darwin.cpp - ToolChains/DragonFly.cpp - ToolChains/FreeBSD.cpp - ToolChains/Fuchsia.cpp - ToolChains/Gnu.cpp - ToolChains/Haiku.cpp - ToolChains/HIP.cpp - ToolChains/Hexagon.cpp - ToolChains/Hurd.cpp - ToolChains/Linux.cpp - ToolChains/MipsLinux.cpp - ToolChains/MinGW.cpp - ToolChains/Minix.cpp - ToolChains/MSP430.cpp - ToolChains/MSVC.cpp - ToolChains/Myriad.cpp - ToolChains/NaCl.cpp - ToolChains/NetBSD.cpp - ToolChains/OpenBSD.cpp - ToolChains/PS4CPU.cpp - ToolChains/RISCVToolchain.cpp - ToolChains/Solaris.cpp - ToolChains/TCE.cpp - ToolChains/WebAssembly.cpp - ToolChains/XCore.cpp - Types.cpp - XRayArgs.cpp - - DEPENDS - ClangDriverOptions - - LINK_LIBS - clangBasic - ${system_libs} - ) diff --git a/lib/Edit/CMakeLists.txt b/lib/Edit/CMakeLists.txt deleted file mode 100644 index a7fa9c28e1f6..000000000000 --- a/lib/Edit/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangEdit - Commit.cpp - EditedSource.cpp - RewriteObjCFoundationAPI.cpp - - LINK_LIBS - clangAST - clangBasic - clangLex - ) diff --git a/lib/Format/CMakeLists.txt b/lib/Format/CMakeLists.txt deleted file mode 100644 index 0019d045cd06..000000000000 --- a/lib/Format/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -set(LLVM_LINK_COMPONENTS support) - -add_clang_library(clangFormat - AffectedRangeManager.cpp - BreakableToken.cpp - ContinuationIndenter.cpp - Format.cpp - FormatToken.cpp - FormatTokenLexer.cpp - NamespaceEndCommentsFixer.cpp - SortJavaScriptImports.cpp - TokenAnalyzer.cpp - TokenAnnotator.cpp - UnwrappedLineFormatter.cpp - UnwrappedLineParser.cpp - UsingDeclarationsSorter.cpp - WhitespaceManager.cpp - - LINK_LIBS - clangBasic - clangLex - clangToolingCore - clangToolingInclusions - ) diff --git a/lib/Frontend/CMakeLists.txt b/lib/Frontend/CMakeLists.txt deleted file mode 100644 index 3bd159537b6a..000000000000 --- a/lib/Frontend/CMakeLists.txt +++ /dev/null @@ -1,62 +0,0 @@ -add_subdirectory(Rewrite) - -set(LLVM_LINK_COMPONENTS - BitReader - Option - ProfileData - Support - ) - -set(optional_deps intrinsics_gen) -if (CLANG_BUILT_STANDALONE) - set(optional_deps) -endif() - -add_clang_library(clangFrontend - ASTConsumers.cpp - ASTMerge.cpp - ASTUnit.cpp - ChainedDiagnosticConsumer.cpp - ChainedIncludesSource.cpp - CompilerInstance.cpp - CompilerInvocation.cpp - CreateInvocationFromCommandLine.cpp - DependencyFile.cpp - DependencyGraph.cpp - DiagnosticRenderer.cpp - FrontendAction.cpp - FrontendActions.cpp - FrontendOptions.cpp - FrontendTiming.cpp - HeaderIncludeGen.cpp - InitHeaderSearch.cpp - InitPreprocessor.cpp - LangStandards.cpp - LayoutOverrideSource.cpp - LogDiagnosticPrinter.cpp - ModuleDependencyCollector.cpp - MultiplexConsumer.cpp - PrecompiledPreamble.cpp - PrintPreprocessedOutput.cpp - SerializedDiagnosticPrinter.cpp - SerializedDiagnosticReader.cpp - TestModuleFileExtension.cpp - TextDiagnostic.cpp - TextDiagnosticBuffer.cpp - TextDiagnosticPrinter.cpp - VerifyDiagnosticConsumer.cpp - - DEPENDS - ClangDriverOptions - ${optional_deps} - - LINK_LIBS - clangAST - clangBasic - clangDriver - clangEdit - clangLex - clangParse - clangSema - clangSerialization - ) diff --git a/lib/Frontend/Rewrite/CMakeLists.txt b/lib/Frontend/Rewrite/CMakeLists.txt deleted file mode 100644 index 61a22b5b13b4..000000000000 --- a/lib/Frontend/Rewrite/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangRewriteFrontend - FixItRewriter.cpp - FrontendActions.cpp - HTMLPrint.cpp - InclusionRewriter.cpp - RewriteMacros.cpp - RewriteModernObjC.cpp - RewriteObjC.cpp - RewriteTest.cpp - - LINK_LIBS - clangAST - clangBasic - clangEdit - clangFrontend - clangLex - clangRewrite - clangSerialization - ) diff --git a/lib/FrontendTool/CMakeLists.txt b/lib/FrontendTool/CMakeLists.txt deleted file mode 100644 index 7e11be0ce4c5..000000000000 --- a/lib/FrontendTool/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Option - Support - ) - -set(link_libs - clangBasic - clangCodeGen - clangDriver - clangFrontend - clangRewriteFrontend - ) - -if(CLANG_ENABLE_ARCMT) - list(APPEND link_libs - clangARCMigrate - ) -endif() - -if(CLANG_ENABLE_STATIC_ANALYZER) - list(APPEND link_libs - clangStaticAnalyzerFrontend - ) -endif() - -add_clang_library(clangFrontendTool - ExecuteCompilerInvocation.cpp - - DEPENDS - ClangDriverOptions - - LINK_LIBS - ${link_libs} - ) diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt deleted file mode 100644 index e444c9c8706f..000000000000 --- a/lib/Headers/CMakeLists.txt +++ /dev/null @@ -1,185 +0,0 @@ -set(files - adxintrin.h - altivec.h - ammintrin.h - arm_acle.h - armintr.h - arm64intr.h - avx2intrin.h - avx512bwintrin.h - avx512bitalgintrin.h - avx512vlbitalgintrin.h - avx512cdintrin.h - avx512vpopcntdqintrin.h - avx512dqintrin.h - avx512erintrin.h - avx512fintrin.h - avx512ifmaintrin.h - avx512ifmavlintrin.h - avx512pfintrin.h - avx512vbmiintrin.h - avx512vbmivlintrin.h - avx512vbmi2intrin.h - avx512vlvbmi2intrin.h - avx512vlbwintrin.h - avx512vlcdintrin.h - avx512vldqintrin.h - avx512vlintrin.h - avx512vpopcntdqvlintrin.h - avx512vnniintrin.h - avx512vlvnniintrin.h - avxintrin.h - bmi2intrin.h - bmiintrin.h - __clang_cuda_builtin_vars.h - __clang_cuda_cmath.h - __clang_cuda_complex_builtins.h - __clang_cuda_device_functions.h - __clang_cuda_intrinsics.h - __clang_cuda_libdevice_declares.h - __clang_cuda_math_forward_declares.h - __clang_cuda_runtime_wrapper.h - cetintrin.h - cldemoteintrin.h - clzerointrin.h - cpuid.h - clflushoptintrin.h - clwbintrin.h - emmintrin.h - f16cintrin.h - float.h - fma4intrin.h - fmaintrin.h - fxsrintrin.h - gfniintrin.h - htmintrin.h - htmxlintrin.h - ia32intrin.h - immintrin.h - intrin.h - inttypes.h - invpcidintrin.h - iso646.h - limits.h - lwpintrin.h - lzcntintrin.h - mm3dnow.h - mmintrin.h - mm_malloc.h - module.modulemap - movdirintrin.h - msa.h - mwaitxintrin.h - nmmintrin.h - opencl-c.h - pkuintrin.h - pmmintrin.h - pconfigintrin.h - popcntintrin.h - prfchwintrin.h - ptwriteintrin.h - rdseedintrin.h - rtmintrin.h - sgxintrin.h - s390intrin.h - shaintrin.h - smmintrin.h - stdalign.h - stdarg.h - stdatomic.h - stdbool.h - stddef.h - __stddef_max_align_t.h - stdint.h - stdnoreturn.h - tbmintrin.h - tgmath.h - tmmintrin.h - unwind.h - vadefs.h - vaesintrin.h - varargs.h - vecintrin.h - vpclmulqdqintrin.h - waitpkgintrin.h - wbnoinvdintrin.h - wmmintrin.h - __wmmintrin_aes.h - __wmmintrin_pclmul.h - x86intrin.h - xmmintrin.h - xopintrin.h - xsavecintrin.h - xsaveintrin.h - xsaveoptintrin.h - xsavesintrin.h - xtestintrin.h - ) - -set(cuda_wrapper_files - cuda_wrappers/algorithm - cuda_wrappers/complex - cuda_wrappers/new -) - -set(output_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}/include) - -# Generate arm_neon.h -clang_tablegen(arm_neon.h -gen-arm-neon - -I ${CLANG_SOURCE_DIR}/include/clang/Basic/ - SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td) -# Generate arm_fp16.h -clang_tablegen(arm_fp16.h -gen-arm-fp16 - -I ${CLANG_SOURCE_DIR}/include/clang/Basic/ - SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_fp16.td) - -set(out_files) -foreach( f ${files} ${cuda_wrapper_files} ) - set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} ) - set( dst ${output_dir}/${f} ) - add_custom_command(OUTPUT ${dst} - DEPENDS ${src} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} - COMMENT "Copying clang's ${f}...") - list(APPEND out_files ${dst}) -endforeach( f ) - -add_custom_command(OUTPUT ${output_dir}/arm_neon.h - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h ${output_dir}/arm_neon.h - COMMENT "Copying clang's arm_neon.h...") -list(APPEND out_files ${output_dir}/arm_neon.h) -add_custom_command(OUTPUT ${output_dir}/arm_fp16.h - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h ${output_dir}/arm_fp16.h - COMMENT "Copying clang's arm_fp16.h...") -list(APPEND out_files ${output_dir}/arm_fp16.h) - -add_custom_target(clang-headers ALL DEPENDS ${out_files}) -set_target_properties(clang-headers PROPERTIES - FOLDER "Misc" - RUNTIME_OUTPUT_DIRECTORY "${output_dir}") - -install( - FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h - COMPONENT clang-headers - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ - DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) - -install( - FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h - COMPONENT clang-headers - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ - DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) - -install( - FILES ${cuda_wrapper_files} - COMPONENT clang-headers - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ - DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers) - -if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's. - add_llvm_install_targets(install-clang-headers - DEPENDS clang-headers - COMPONENT clang-headers) -endif() diff --git a/lib/Index/CMakeLists.txt b/lib/Index/CMakeLists.txt deleted file mode 100644 index 1362143fb0d4..000000000000 --- a/lib/Index/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Core - Support - ) - -add_clang_library(clangIndex - CodegenNameGenerator.cpp - CommentToXML.cpp - IndexBody.cpp - IndexDecl.cpp - IndexingAction.cpp - IndexingContext.cpp - IndexSymbol.cpp - IndexTypeSourceInfo.cpp - USRGeneration.cpp - - ADDITIONAL_HEADERS - IndexingContext.h - SimpleFormatContext.h - - LINK_LIBS - clangAST - clangBasic - clangFormat - clangFrontend - clangLex - clangRewrite - clangSerialization - clangToolingCore - ) diff --git a/lib/Lex/CMakeLists.txt b/lib/Lex/CMakeLists.txt deleted file mode 100644 index 7888b15cb66e..000000000000 --- a/lib/Lex/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -# TODO: Add -maltivec when ARCH is PowerPC. - -set(LLVM_LINK_COMPONENTS support) - -add_clang_library(clangLex - HeaderMap.cpp - HeaderSearch.cpp - Lexer.cpp - LiteralSupport.cpp - MacroArgs.cpp - MacroInfo.cpp - ModuleMap.cpp - PPCaching.cpp - PPCallbacks.cpp - PPConditionalDirectiveRecord.cpp - PPDirectives.cpp - PPExpressions.cpp - PPLexerChange.cpp - PPMacroExpansion.cpp - Pragma.cpp - PreprocessingRecord.cpp - Preprocessor.cpp - PreprocessorLexer.cpp - ScratchBuffer.cpp - TokenConcatenation.cpp - TokenLexer.cpp - - LINK_LIBS - clangBasic - ) diff --git a/lib/Parse/CMakeLists.txt b/lib/Parse/CMakeLists.txt deleted file mode 100644 index b868696eb6bb..000000000000 --- a/lib/Parse/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ -set(LLVM_LINK_COMPONENTS - MC - MCParser - Support - ) - -add_clang_library(clangParse - ParseAST.cpp - ParseCXXInlineMethods.cpp - ParseDecl.cpp - ParseDeclCXX.cpp - ParseExpr.cpp - ParseExprCXX.cpp - ParseInit.cpp - ParseObjc.cpp - ParseOpenMP.cpp - ParsePragma.cpp - ParseStmt.cpp - ParseStmtAsm.cpp - ParseTemplate.cpp - ParseTentative.cpp - Parser.cpp - - LINK_LIBS - clangAST - clangBasic - clangLex - clangSema - ) diff --git a/lib/Rewrite/CMakeLists.txt b/lib/Rewrite/CMakeLists.txt deleted file mode 100644 index 16550b1b710e..000000000000 --- a/lib/Rewrite/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangRewrite - DeltaTree.cpp - HTMLRewrite.cpp - RewriteRope.cpp - Rewriter.cpp - TokenRewriter.cpp - - LINK_LIBS - clangBasic - clangLex - ) diff --git a/lib/Sema/CMakeLists.txt b/lib/Sema/CMakeLists.txt deleted file mode 100644 index 5f20af01fb7b..000000000000 --- a/lib/Sema/CMakeLists.txt +++ /dev/null @@ -1,67 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -if (MSVC) - set_source_files_properties(SemaDeclAttr.cpp PROPERTIES COMPILE_FLAGS /bigobj) - set_source_files_properties(SemaExpr.cpp PROPERTIES COMPILE_FLAGS /bigobj) - set_source_files_properties(SemaExprCXX.cpp PROPERTIES COMPILE_FLAGS /bigobj) - set_source_files_properties(SemaTemplate.cpp PROPERTIES COMPILE_FLAGS /bigobj) -endif() - -add_clang_library(clangSema - AnalysisBasedWarnings.cpp - CodeCompleteConsumer.cpp - DeclSpec.cpp - DelayedDiagnostic.cpp - IdentifierResolver.cpp - JumpDiagnostics.cpp - MultiplexExternalSemaSource.cpp - ParsedAttr.cpp - Scope.cpp - ScopeInfo.cpp - Sema.cpp - SemaAccess.cpp - SemaAttr.cpp - SemaCXXScopeSpec.cpp - SemaCast.cpp - SemaChecking.cpp - SemaCodeComplete.cpp - SemaConsumer.cpp - SemaCoroutine.cpp - SemaCUDA.cpp - SemaDecl.cpp - SemaDeclAttr.cpp - SemaDeclCXX.cpp - SemaDeclObjC.cpp - SemaExceptionSpec.cpp - SemaExpr.cpp - SemaExprCXX.cpp - SemaExprMember.cpp - SemaExprObjC.cpp - SemaFixItUtils.cpp - SemaInit.cpp - SemaLambda.cpp - SemaLookup.cpp - SemaObjCProperty.cpp - SemaOpenMP.cpp - SemaOverload.cpp - SemaPseudoObject.cpp - SemaStmt.cpp - SemaStmtAsm.cpp - SemaStmtAttr.cpp - SemaTemplate.cpp - SemaTemplateDeduction.cpp - SemaTemplateInstantiate.cpp - SemaTemplateInstantiateDecl.cpp - SemaTemplateVariadic.cpp - SemaType.cpp - TypeLocBuilder.cpp - - LINK_LIBS - clangAST - clangAnalysis - clangBasic - clangEdit - clangLex - ) diff --git a/lib/Serialization/CMakeLists.txt b/lib/Serialization/CMakeLists.txt deleted file mode 100644 index a312cb91eb0d..000000000000 --- a/lib/Serialization/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(LLVM_LINK_COMPONENTS - BitReader - Support - ) - - -add_clang_library(clangSerialization - ASTCommon.cpp - ASTReader.cpp - ASTReaderDecl.cpp - ASTReaderStmt.cpp - ASTWriter.cpp - ASTWriterDecl.cpp - ASTWriterStmt.cpp - GeneratePCH.cpp - GlobalModuleIndex.cpp - Module.cpp - ModuleFileExtension.cpp - ModuleManager.cpp - PCHContainerOperations.cpp - - ADDITIONAL_HEADERS - ASTCommon.h - ASTReaderInternals.h - - LINK_LIBS - clangAST - clangBasic - clangLex - clangSema - ) diff --git a/lib/StaticAnalyzer/CMakeLists.txt b/lib/StaticAnalyzer/CMakeLists.txt deleted file mode 100644 index 3d1509254f52..000000000000 --- a/lib/StaticAnalyzer/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -add_subdirectory(Core) -add_subdirectory(Checkers) -add_subdirectory(Frontend) diff --git a/lib/StaticAnalyzer/Checkers/CMakeLists.txt b/lib/StaticAnalyzer/Checkers/CMakeLists.txt deleted file mode 100644 index 10fb0bd3536c..000000000000 --- a/lib/StaticAnalyzer/Checkers/CMakeLists.txt +++ /dev/null @@ -1,112 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangStaticAnalyzerCheckers - AnalysisOrderChecker.cpp - AnalyzerStatsChecker.cpp - ArrayBoundChecker.cpp - ArrayBoundCheckerV2.cpp - BasicObjCFoundationChecks.cpp - BlockInCriticalSectionChecker.cpp - BoolAssignmentChecker.cpp - BuiltinFunctionChecker.cpp - CStringChecker.cpp - CStringSyntaxChecker.cpp - CallAndMessageChecker.cpp - CastSizeChecker.cpp - CastToStructChecker.cpp - CheckObjCDealloc.cpp - CheckObjCInstMethSignature.cpp - CheckSecuritySyntaxOnly.cpp - CheckSizeofPointer.cpp - CheckerDocumentation.cpp - ChrootChecker.cpp - CloneChecker.cpp - ConversionChecker.cpp - CXXSelfAssignmentChecker.cpp - DeadStoresChecker.cpp - DebugCheckers.cpp - DeleteWithNonVirtualDtorChecker.cpp - DereferenceChecker.cpp - DirectIvarAssignment.cpp - DivZeroChecker.cpp - DynamicTypePropagation.cpp - DynamicTypeChecker.cpp - EnumCastOutOfRangeChecker.cpp - ExprInspectionChecker.cpp - FixedAddressChecker.cpp - GCDAntipatternChecker.cpp - GenericTaintChecker.cpp - GTestChecker.cpp - IdenticalExprChecker.cpp - InnerPointerChecker.cpp - IteratorChecker.cpp - IvarInvalidationChecker.cpp - LLVMConventionsChecker.cpp - LocalizationChecker.cpp - MacOSKeychainAPIChecker.cpp - MacOSXAPIChecker.cpp - MallocChecker.cpp - MallocOverflowSecurityChecker.cpp - MallocSizeofChecker.cpp - MmapWriteExecChecker.cpp - MoveChecker.cpp - MPI-Checker/MPIBugReporter.cpp - MPI-Checker/MPIChecker.cpp - MPI-Checker/MPIFunctionClassifier.cpp - NSAutoreleasePoolChecker.cpp - NSErrorChecker.cpp - NoReturnFunctionChecker.cpp - NonNullParamChecker.cpp - NonnullGlobalConstantsChecker.cpp - NullabilityChecker.cpp - NumberObjectConversionChecker.cpp - ObjCAtSyncChecker.cpp - ObjCAutoreleaseWriteChecker.cpp - ObjCContainersASTChecker.cpp - ObjCContainersChecker.cpp - ObjCMissingSuperCallChecker.cpp - ObjCPropertyChecker.cpp - ObjCSelfInitChecker.cpp - ObjCSuperDeallocChecker.cpp - ObjCUnusedIVarsChecker.cpp - PaddingChecker.cpp - PointerArithChecker.cpp - PointerSubChecker.cpp - PthreadLockChecker.cpp - RetainCountChecker/RetainCountChecker.cpp - RetainCountChecker/RetainCountDiagnostics.cpp - ReturnPointerRangeChecker.cpp - ReturnUndefChecker.cpp - RunLoopAutoreleaseLeakChecker.cpp - SimpleStreamChecker.cpp - StackAddrEscapeChecker.cpp - StdLibraryFunctionsChecker.cpp - StreamChecker.cpp - TaintTesterChecker.cpp - TestAfterDivZeroChecker.cpp - TraversalChecker.cpp - TrustNonnullChecker.cpp - UndefBranchChecker.cpp - UndefCapturedBlockVarChecker.cpp - UndefResultChecker.cpp - UndefinedArraySubscriptChecker.cpp - UndefinedAssignmentChecker.cpp - UninitializedObject/UninitializedObjectChecker.cpp - UninitializedObject/UninitializedPointee.cpp - UnixAPIChecker.cpp - UnreachableCodeChecker.cpp - VforkChecker.cpp - VLASizeChecker.cpp - ValistChecker.cpp - VirtualCallChecker.cpp - - LINK_LIBS - clangAST - clangASTMatchers - clangAnalysis - clangBasic - clangLex - clangStaticAnalyzerCore - ) diff --git a/lib/StaticAnalyzer/Core/CMakeLists.txt b/lib/StaticAnalyzer/Core/CMakeLists.txt deleted file mode 100644 index 167f78af6289..000000000000 --- a/lib/StaticAnalyzer/Core/CMakeLists.txt +++ /dev/null @@ -1,75 +0,0 @@ -set(LLVM_LINK_COMPONENTS support) - -# Link Z3 if the user wants to build it. -if(CLANG_ANALYZER_WITH_Z3) - set(Z3_LINK_FILES ${Z3_LIBRARIES}) -else() - set(Z3_LINK_FILES "") -endif() - -add_clang_library(clangStaticAnalyzerCore - APSIntType.cpp - AnalysisManager.cpp - AnalyzerOptions.cpp - BasicValueFactory.cpp - BlockCounter.cpp - BugReporter.cpp - BugReporterVisitors.cpp - CallEvent.cpp - Checker.cpp - CheckerContext.cpp - CheckerHelpers.cpp - CheckerManager.cpp - CommonBugCategories.cpp - ConstraintManager.cpp - CoreEngine.cpp - DynamicTypeMap.cpp - Environment.cpp - ExplodedGraph.cpp - ExprEngine.cpp - ExprEngineC.cpp - ExprEngineCXX.cpp - ExprEngineCallAndReturn.cpp - ExprEngineObjC.cpp - FunctionSummary.cpp - HTMLDiagnostics.cpp - IssueHash.cpp - LoopUnrolling.cpp - LoopWidening.cpp - MemRegion.cpp - PathDiagnostic.cpp - PlistDiagnostics.cpp - ProgramState.cpp - RangeConstraintManager.cpp - RangedConstraintManager.cpp - RegionStore.cpp - RetainSummaryManager.cpp - SarifDiagnostics.cpp - SimpleConstraintManager.cpp - SimpleSValBuilder.cpp - Store.cpp - SubEngine.cpp - SValBuilder.cpp - SVals.cpp - SymbolManager.cpp - TaintManager.cpp - WorkList.cpp - Z3ConstraintManager.cpp - - LINK_LIBS - clangAST - clangASTMatchers - clangAnalysis - clangBasic - clangCrossTU - clangLex - clangRewrite - ${Z3_LINK_FILES} - ) - -if(CLANG_ANALYZER_WITH_Z3) - target_include_directories(clangStaticAnalyzerCore SYSTEM - PRIVATE - ${Z3_INCLUDE_DIR} - ) -endif() diff --git a/lib/StaticAnalyzer/Frontend/CMakeLists.txt b/lib/StaticAnalyzer/Frontend/CMakeLists.txt deleted file mode 100644 index 5e7dd8f18cd7..000000000000 --- a/lib/StaticAnalyzer/Frontend/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -include_directories( ${CMAKE_CURRENT_BINARY_DIR}/../Checkers ) - -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangStaticAnalyzerFrontend - AnalysisConsumer.cpp - CheckerRegistration.cpp - CheckerRegistry.cpp - FrontendActions.cpp - ModelConsumer.cpp - ModelInjector.cpp - - LINK_LIBS - clangAST - clangAnalysis - clangBasic - clangCrossTU - clangFrontend - clangLex - clangStaticAnalyzerCheckers - clangStaticAnalyzerCore - ) diff --git a/lib/StaticAnalyzer/README.txt b/lib/StaticAnalyzer/README.txt deleted file mode 100644 index 79a16ec7673d..000000000000 --- a/lib/StaticAnalyzer/README.txt +++ /dev/null @@ -1,139 +0,0 @@ -//===----------------------------------------------------------------------===// -// Clang Static Analyzer -//===----------------------------------------------------------------------===// - -= Library Structure = - -The analyzer library has two layers: a (low-level) static analysis -engine (GRExprEngine.cpp and friends), and some static checkers -(*Checker.cpp). The latter are built on top of the former via the -Checker and CheckerVisitor interfaces (Checker.h and -CheckerVisitor.h). The Checker interface is designed to be minimal -and simple for checker writers, and attempts to isolate them from much -of the gore of the internal analysis engine. - -= How It Works = - -The analyzer is inspired by several foundational research papers ([1], -[2]). (FIXME: kremenek to add more links) - -In a nutshell, the analyzer is basically a source code simulator that -traces out possible paths of execution. The state of the program -(values of variables and expressions) is encapsulated by the state -(ProgramState). A location in the program is called a program point -(ProgramPoint), and the combination of state and program point is a -node in an exploded graph (ExplodedGraph). The term "exploded" comes -from exploding the control-flow edges in the control-flow graph (CFG). - -Conceptually the analyzer does a reachability analysis through the -ExplodedGraph. We start at a root node, which has the entry program -point and initial state, and then simulate transitions by analyzing -individual expressions. The analysis of an expression can cause the -state to change, resulting in a new node in the ExplodedGraph with an -updated program point and an updated state. A bug is found by hitting -a node that satisfies some "bug condition" (basically a violation of a -checking invariant). - -The analyzer traces out multiple paths by reasoning about branches and -then bifurcating the state: on the true branch the conditions of the -branch are assumed to be true and on the false branch the conditions -of the branch are assumed to be false. Such "assumptions" create -constraints on the values of the program, and those constraints are -recorded in the ProgramState object (and are manipulated by the -ConstraintManager). If assuming the conditions of a branch would -cause the constraints to be unsatisfiable, the branch is considered -infeasible and that path is not taken. This is how we get -path-sensitivity. We reduce exponential blow-up by caching nodes. If -a new node with the same state and program point as an existing node -would get generated, the path "caches out" and we simply reuse the -existing node. Thus the ExplodedGraph is not a DAG; it can contain -cycles as paths loop back onto each other and cache out. - -ProgramState and ExplodedNodes are basically immutable once created. Once -one creates a ProgramState, you need to create a new one to get a new -ProgramState. This immutability is key since the ExplodedGraph represents -the behavior of the analyzed program from the entry point. To -represent these efficiently, we use functional data structures (e.g., -ImmutableMaps) which share data between instances. - -Finally, individual Checkers work by also manipulating the analysis -state. The analyzer engine talks to them via a visitor interface. -For example, the PreVisitCallExpr() method is called by GRExprEngine -to tell the Checker that we are about to analyze a CallExpr, and the -checker is asked to check for any preconditions that might not be -satisfied. The checker can do nothing, or it can generate a new -ProgramState and ExplodedNode which contains updated checker state. If it -finds a bug, it can tell the BugReporter object about the bug, -providing it an ExplodedNode which is the last node in the path that -triggered the problem. - -= Notes about C++ = - -Since now constructors are seen before the variable that is constructed -in the CFG, we create a temporary object as the destination region that -is constructed into. See ExprEngine::VisitCXXConstructExpr(). - -In ExprEngine::processCallExit(), we always bind the object region to the -evaluated CXXConstructExpr. Then in VisitDeclStmt(), we compute the -corresponding lazy compound value if the variable is not a reference, and -bind the variable region to the lazy compound value. If the variable -is a reference, just use the object region as the initializer value. - -Before entering a C++ method (or ctor/dtor), the 'this' region is bound -to the object region. In ctors, we synthesize 'this' region with -CXXRecordDecl*, which means we do not use type qualifiers. In methods, we -synthesize 'this' region with CXXMethodDecl*, which has getThisType() -taking type qualifiers into account. It does not matter we use qualified -'this' region in one method and unqualified 'this' region in another -method, because we only need to ensure the 'this' region is consistent -when we synthesize it and create it directly from CXXThisExpr in a single -method call. - -= Working on the Analyzer = - -If you are interested in bringing up support for C++ expressions, the -best place to look is the visitation logic in GRExprEngine, which -handles the simulation of individual expressions. There are plenty of -examples there of how other expressions are handled. - -If you are interested in writing checkers, look at the Checker and -CheckerVisitor interfaces (Checker.h and CheckerVisitor.h). Also look -at the files named *Checker.cpp for examples on how you can implement -these interfaces. - -= Debugging the Analyzer = - -There are some useful command-line options for debugging. For example: - -$ clang -cc1 -help | grep analyze - -analyze-function <value> - -analyzer-display-progress - -analyzer-viz-egraph-graphviz - ... - -The first allows you to specify only analyzing a specific function. -The second prints to the console what function is being analyzed. The -third generates a graphviz dot file of the ExplodedGraph. This is -extremely useful when debugging the analyzer and viewing the -simulation results. - -Of course, viewing the CFG (Control-Flow Graph) is also useful: - -$ clang -cc1 -help | grep cfg - -cfg-add-implicit-dtors Add C++ implicit destructors to CFGs for all analyses - -cfg-add-initializers Add C++ initializers to CFGs for all analyses - -cfg-dump Display Control-Flow Graphs - -cfg-view View Control-Flow Graphs using GraphViz - -unoptimized-cfg Generate unoptimized CFGs for all analyses - --cfg-dump dumps a textual representation of the CFG to the console, -and -cfg-view creates a GraphViz representation. - -= References = - -[1] Precise interprocedural dataflow analysis via graph reachability, - T Reps, S Horwitz, and M Sagiv, POPL '95, - http://portal.acm.org/citation.cfm?id=199462 - -[2] A memory model for static analysis of C programs, Z Xu, T - Kremenek, and J Zhang, http://lcs.ios.ac.cn/~xzx/memmodel.pdf diff --git a/lib/Tooling/ASTDiff/CMakeLists.txt b/lib/Tooling/ASTDiff/CMakeLists.txt deleted file mode 100644 index 578d8ca0cbc1..000000000000 --- a/lib/Tooling/ASTDiff/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Support - ) - -add_clang_library(clangToolingASTDiff - ASTDiff.cpp - LINK_LIBS - clangBasic - clangAST - clangLex - ) diff --git a/lib/Tooling/CMakeLists.txt b/lib/Tooling/CMakeLists.txt deleted file mode 100644 index 4b671e299ab7..000000000000 --- a/lib/Tooling/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Option - Support - ) - -add_subdirectory(Core) -add_subdirectory(Inclusions) -add_subdirectory(Refactoring) -add_subdirectory(ASTDiff) - -add_clang_library(clangTooling - AllTUsExecution.cpp - ArgumentsAdjusters.cpp - CommonOptionsParser.cpp - CompilationDatabase.cpp - Execution.cpp - FileMatchTrie.cpp - FixIt.cpp - InterpolatingCompilationDatabase.cpp - JSONCompilationDatabase.cpp - Refactoring.cpp - RefactoringCallbacks.cpp - StandaloneExecution.cpp - Tooling.cpp - - DEPENDS - ClangDriverOptions - - LINK_LIBS - clangAST - clangASTMatchers - clangBasic - clangDriver - clangFormat - clangFrontend - clangLex - clangRewrite - clangSerialization - clangToolingCore - ) diff --git a/lib/Tooling/Core/CMakeLists.txt b/lib/Tooling/Core/CMakeLists.txt deleted file mode 100644 index f7f423c52228..000000000000 --- a/lib/Tooling/Core/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -set(LLVM_LINK_COMPONENTS support) - -add_clang_library(clangToolingCore - Diagnostic.cpp - Lookup.cpp - Replacement.cpp - - LINK_LIBS - clangAST - clangBasic - clangLex - clangRewrite - ) diff --git a/lib/Tooling/Inclusions/CMakeLists.txt b/lib/Tooling/Inclusions/CMakeLists.txt deleted file mode 100644 index 00afb50f3a69..000000000000 --- a/lib/Tooling/Inclusions/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -set(LLVM_LINK_COMPONENTS support) - -add_clang_library(clangToolingInclusions - HeaderIncludes.cpp - IncludeStyle.cpp - - LINK_LIBS - clangBasic - clangLex - clangRewrite - clangToolingCore - ) diff --git a/lib/Tooling/Refactoring/CMakeLists.txt b/lib/Tooling/Refactoring/CMakeLists.txt deleted file mode 100644 index 402b5d3c6ac4..000000000000 --- a/lib/Tooling/Refactoring/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -set(LLVM_LINK_COMPONENTS Support) - -add_clang_library(clangToolingRefactor - ASTSelection.cpp - ASTSelectionRequirements.cpp - AtomicChange.cpp - Extract/Extract.cpp - Extract/SourceExtraction.cpp - RefactoringActions.cpp - Rename/RenamingAction.cpp - Rename/SymbolOccurrences.cpp - Rename/USRFinder.cpp - Rename/USRFindingAction.cpp - Rename/USRLocFinder.cpp - - LINK_LIBS - clangAST - clangASTMatchers - clangBasic - clangFormat - clangIndex - clangLex - clangRewrite - clangToolingCore - ) |