From db05eb1cc8743a83a9ff1ae675c52ac82902d566 Mon Sep 17 00:00:00 2001 From: joerg Date: Tue, 1 Aug 2017 19:34:09 +0000 Subject: [PATCH] Import clang r309604 from branches/release_50 --- external/bsd/llvm/dist/clang/CMakeLists.txt | 77 +- .../clang/bindings/python/clang/__init__.py | 8 - .../clang/bindings/python/clang/cindex.py | 220 +- .../python/tests/cindex/test_cursor.py | 16 + .../tests/cindex/test_translation_unit.py | 7 +- .../bindings/python/tests/cindex/test_type.py | 17 + .../test_exception_specification_kind.py | 27 + .../cmake/caches/Apple-stage2-ThinLTO.cmake | 6 + .../clang/cmake/caches/Apple-stage2.cmake | 7 +- .../clang/cmake/caches/BaremetalARM.cmake | 50 + .../cmake/caches/DistributionExample.cmake | 13 +- .../clang/cmake/caches/Fuchsia-stage2.cmake | 85 + .../dist/clang/cmake/caches/Fuchsia.cmake | 52 + .../dist/clang/cmake/modules/CMakeLists.txt | 14 + .../clang/cmake/modules/ClangConfig.cmake.in | 6 +- .../dist/clang/cmake/modules/FindZ3.cmake | 28 + .../dist/clang/docs/AttributeReference.rst | 1620 +++-- .../clang/docs/AutomaticReferenceCounting.rst | 7 +- .../llvm/dist/clang/docs/Block-ABI-Apple.rst | 8 +- .../bsd/llvm/dist/clang/docs/CMakeLists.txt | 2 +- .../clang/docs/ClangCommandLineReference.rst | 2629 ++++++++ .../bsd/llvm/dist/clang/docs/ClangFormat.rst | 17 +- .../clang/docs/ClangFormatStyleOptions.rst | 938 ++- .../clang/docs/ControlFlowIntegrityDesign.rst | 130 +- .../dist/clang/docs/DiagnosticsReference.rst | 630 +- .../dist/clang/docs/ExternalClangExamples.rst | 13 + .../llvm/dist/clang/docs/LTOVisibility.rst | 15 +- .../dist/clang/docs/LanguageExtensions.rst | 370 +- .../clang/docs/LibASTMatchersReference.html | 215 +- .../bsd/llvm/dist/clang/docs/LibFormat.rst | 4 +- .../llvm/dist/clang/docs/MemorySanitizer.rst | 2 +- external/bsd/llvm/dist/clang/docs/Modules.rst | 41 +- .../bsd/llvm/dist/clang/docs/ReleaseNotes.rst | 153 +- .../dist/clang/docs/SanitizerCoverage.rst | 600 +- .../clang/docs/SourceBasedCodeCoverage.rst | 8 + external/bsd/llvm/dist/clang/docs/ThinLTO.rst | 46 + .../dist/clang/docs/ThreadSafetyAnalysis.rst | 6 +- .../clang/docs/UndefinedBehaviorSanitizer.rst | 30 +- .../bsd/llvm/dist/clang/docs/UsersManual.rst | 176 +- .../dist/clang/docs/analyzer/DebugChecks.rst | 8 +- .../bsd/llvm/dist/clang/docs/analyzer/conf.py | 6 +- external/bsd/llvm/dist/clang/docs/conf.py | 6 +- .../bsd/llvm/dist/clang/docs/doxygen.cfg.in | 14 +- external/bsd/llvm/dist/clang/docs/index.rst | 1 + .../clang/docs/tools/dump_format_style.py | 12 +- .../examples/clang-interpreter/CMakeLists.txt | 1 + .../include/clang-c/CXCompilationDatabase.h | 2 +- .../llvm/dist/clang/include/clang-c/Index.h | 236 +- .../dist/clang/include/clang/AST/ASTContext.h | 235 +- .../clang/AST/ASTStructuralEquivalence.h | 103 + .../dist/clang/include/clang/AST/ASTVector.h | 1 + .../clang/include/clang/AST/BuiltinTypes.def | 3 - .../clang/include/clang/AST/CXXInheritance.h | 9 +- .../clang/include/clang/AST/CommentSema.h | 4 + .../llvm/dist/clang/include/clang/AST/Decl.h | 144 +- .../dist/clang/include/clang/AST/DeclBase.h | 189 +- .../dist/clang/include/clang/AST/DeclCXX.h | 184 +- .../include/clang/AST/DeclContextInternals.h | 2 +- .../dist/clang/include/clang/AST/DeclObjC.h | 82 +- .../clang/include/clang/AST/DeclTemplate.h | 138 +- .../clang/include/clang/AST/DeclarationName.h | 43 +- .../llvm/dist/clang/include/clang/AST/Expr.h | 179 +- .../dist/clang/include/clang/AST/ExprCXX.h | 95 +- .../include/clang/AST/ExternalASTMerger.h | 51 + .../include/clang/AST/ExternalASTSource.h | 11 +- .../llvm/dist/clang/include/clang/AST/NSAPI.h | 4 +- .../dist/clang/include/clang/AST/ODRHash.h | 84 + .../clang/include/clang/AST/OpenMPClause.h | 314 +- .../include/clang/AST/RecursiveASTVisitor.h | 90 +- .../clang/include/clang/AST/Redeclarable.h | 54 + .../llvm/dist/clang/include/clang/AST/Stmt.h | 25 +- .../dist/clang/include/clang/AST/StmtCXX.h | 119 +- .../clang/include/clang/AST/StmtIterator.h | 16 + .../dist/clang/include/clang/AST/StmtOpenMP.h | 266 +- .../clang/include/clang/AST/TemplateBase.h | 12 +- .../llvm/dist/clang/include/clang/AST/Type.h | 260 +- .../dist/clang/include/clang/AST/TypeLoc.h | 53 +- .../clang/include/clang/AST/TypeNodes.def | 4 +- .../clang/include/clang/AST/TypeOrdering.h | 2 +- .../clang/include/clang/AST/VTableBuilder.h | 22 + .../include/clang/ASTMatchers/ASTMatchers.h | 145 +- .../clang/ASTMatchers/Dynamic/Diagnostics.h | 2 +- .../clang/ASTMatchers/Dynamic/Parser.h | 4 +- .../clang/ASTMatchers/Dynamic/VariantValue.h | 31 +- .../clang/Analysis/Analyses/Dominators.h | 6 +- .../include/clang/Analysis/AnalysisContext.h | 1 + .../dist/clang/include/clang/Analysis/CFG.h | 45 +- .../clang/include/clang/Analysis/CallGraph.h | 2 +- .../include/clang/Analysis/CloneDetection.h | 568 +- .../clang/include/clang/Basic/AddressSpaces.h | 25 +- .../include/clang/Basic/AllDiagnostics.h | 2 +- .../dist/clang/include/clang/Basic/Attr.td | 310 +- .../clang/include/clang/Basic/AttrDocs.td | 320 +- .../clang/Basic/AttrSubjectMatchRules.h | 32 + .../clang/include/clang/Basic/Builtins.def | 50 +- .../include/clang/Basic/BuiltinsAMDGPU.def | 19 + .../clang/include/clang/Basic/BuiltinsARM.def | 92 +- .../include/clang/Basic/BuiltinsHexagon.def | 6 + .../include/clang/Basic/BuiltinsNVPTX.def | 24 - .../include/clang/Basic/BuiltinsNios2.def | 70 + .../clang/include/clang/Basic/BuiltinsPPC.def | 11 +- .../include/clang/Basic/BuiltinsSystemZ.def | 24 + .../clang/Basic/BuiltinsWebAssembly.def | 10 +- .../clang/include/clang/Basic/BuiltinsX86.def | 90 +- .../include/clang/Basic/BuiltinsX86_64.def | 6 +- .../clang/include/clang/Basic/CMakeLists.txt | 5 + .../clang/include/clang/Basic/DeclNodes.td | 1 + .../clang/include/clang/Basic/Diagnostic.h | 201 +- .../clang/include/clang/Basic/Diagnostic.td | 12 + .../include/clang/Basic/DiagnosticASTKinds.td | 14 +- .../clang/Basic/DiagnosticCommonKinds.td | 12 +- .../clang/Basic/DiagnosticDriverKinds.td | 28 +- .../clang/Basic/DiagnosticFrontendKinds.td | 3 + .../include/clang/Basic/DiagnosticGroups.td | 37 +- .../clang/include/clang/Basic/DiagnosticIDs.h | 40 +- .../include/clang/Basic/DiagnosticLexKinds.td | 36 +- .../include/clang/Basic/DiagnosticOptions.def | 2 + .../include/clang/Basic/DiagnosticOptions.h | 8 +- .../clang/Basic/DiagnosticParseKinds.td | 87 +- .../clang/Basic/DiagnosticSemaKinds.td | 500 +- .../Basic/DiagnosticSerializationKinds.td | 138 +- .../include/clang/Basic/IdentifierTable.h | 31 +- .../clang/include/clang/Basic/LangOptions.def | 14 +- .../clang/include/clang/Basic/LangOptions.h | 58 +- .../dist/clang/include/clang/Basic/Linkage.h | 24 +- .../include/clang/Basic/MemoryBufferCache.h | 80 + .../dist/clang/include/clang/Basic/Module.h | 44 +- .../clang/include/clang/Basic/ObjCRuntime.h | 14 + .../include/clang/Basic/OpenCLImageTypes.def | 2 +- .../clang/include/clang/Basic/OpenMPKinds.def | 10 + .../clang/include/clang/Basic/OpenMPKinds.h | 5 + .../include/clang/Basic/PartialDiagnostic.h | 9 + .../clang/include/clang/Basic/Sanitizers.def | 15 +- .../clang/include/clang/Basic/Sanitizers.h | 10 +- .../include/clang/Basic/SourceLocation.h | 125 +- .../clang/include/clang/Basic/SourceManager.h | 70 +- .../clang/Basic/SourceManagerInternals.h | 2 - .../clang/include/clang/Basic/Specifiers.h | 7 +- .../clang/include/clang/Basic/StmtNodes.td | 3 +- .../include/clang/Basic/TargetBuiltins.h | 10 + .../clang/include/clang/Basic/TargetInfo.h | 47 +- .../clang/include/clang/Basic/TargetOptions.h | 6 +- .../clang/include/clang/Basic/TemplateKinds.h | 14 +- .../clang/include/clang/Basic/TokenKinds.def | 8 +- .../clang/include/clang/Basic/TypeTraits.h | 2 + .../include/clang/Basic/VirtualFileSystem.h | 2 +- .../clang/include/clang/Basic/Visibility.h | 3 + .../clang/include/clang/Basic/XRayLists.h | 55 + .../clang/include/clang/Basic/arm_neon.td | 2 +- .../clang/include/clang/CodeGen/BackendUtil.h | 5 + .../include/clang/CodeGen/CGFunctionInfo.h | 17 +- .../include/clang/CodeGen/CodeGenABITypes.h | 10 +- .../include/clang/CodeGen/CodeGenAction.h | 35 +- .../clang/CodeGen/ConstantInitBuilder.h | 561 ++ .../clang/CodeGen/ConstantInitFuture.h | 111 + .../include/clang/CodeGen/ModuleBuilder.h | 4 + .../clang/include/clang/Config/config.h.cmake | 8 + .../clang/include/clang/Driver/CC1Options.td | 68 +- .../include/clang/Driver/CLCompatOptions.td | 17 +- .../include/clang/Driver/ClangOptionDocs.td | 36 + .../clang/include/clang/Driver/Compilation.h | 8 +- .../dist/clang/include/clang/Driver/Distro.h | 5 +- .../dist/clang/include/clang/Driver/Driver.h | 23 +- .../dist/clang/include/clang/Driver/Job.h | 10 + .../clang/include/clang/Driver/Multilib.h | 9 + .../dist/clang/include/clang/Driver/Options.h | 12 +- .../clang/include/clang/Driver/Options.td | 529 +- .../include/clang/Driver/SanitizerArgs.h | 4 +- .../dist/clang/include/clang/Driver/Tool.h | 2 +- .../clang/include/clang/Driver/ToolChain.h | 18 +- .../clang/include/clang/Driver/XRayArgs.h | 38 + .../clang/include/clang/Edit/EditedSource.h | 23 +- .../dist/clang/include/clang/Format/Format.h | 937 ++- .../include/clang/Frontend/ASTConsumers.h | 2 +- .../clang/include/clang/Frontend/ASTUnit.h | 226 +- .../include/clang/Frontend/CodeGenOptions.def | 30 +- .../include/clang/Frontend/CodeGenOptions.h | 30 +- .../include/clang/Frontend/CompilerInstance.h | 26 +- .../clang/Frontend/CompilerInvocation.h | 5 + .../clang/Frontend/DiagnosticRenderer.h | 85 +- .../include/clang/Frontend/FrontendAction.h | 11 +- .../include/clang/Frontend/FrontendActions.h | 22 +- .../include/clang/Frontend/FrontendOptions.h | 96 +- .../include/clang/Frontend/LangStandard.h | 34 +- .../include/clang/Frontend/LangStandards.def | 171 +- .../clang/Frontend/PCHContainerOperations.h | 3 +- .../clang/Frontend/PrecompiledPreamble.h | 248 + .../Frontend/PreprocessorOutputOptions.h | 2 + .../include/clang/Frontend/TextDiagnostic.h | 41 +- .../dist/clang/include/clang/Frontend/Utils.h | 9 +- .../clang/include/clang/Index/IndexSymbol.h | 13 +- .../include/clang/Index/IndexingAction.h | 16 + .../clang/include/clang/Index/USRGeneration.h | 21 +- .../clang/include/clang/Lex/HeaderSearch.h | 24 +- .../include/clang/Lex/HeaderSearchOptions.h | 6 +- .../llvm/dist/clang/include/clang/Lex/Lexer.h | 7 + .../dist/clang/include/clang/Lex/MacroArgs.h | 16 +- .../dist/clang/include/clang/Lex/MacroInfo.h | 75 +- .../clang/include/clang/Lex/ModuleLoader.h | 34 + .../dist/clang/include/clang/Lex/ModuleMap.h | 68 +- .../clang/include/clang/Lex/PPCallbacks.h | 16 +- .../dist/clang/include/clang/Lex/PTHLexer.h | 2 +- .../include/clang/Lex/PreprocessingRecord.h | 3 +- .../clang/include/clang/Lex/Preprocessor.h | 183 +- .../include/clang/Lex/PreprocessorLexer.h | 6 + .../include/clang/Lex/PreprocessorOptions.h | 22 +- .../llvm/dist/clang/include/clang/Lex/Token.h | 8 + .../clang/include/clang/Parse/CMakeLists.txt | 6 + .../dist/clang/include/clang/Parse/Parser.h | 124 +- .../clang/Parse/RAIIObjectsForParser.h | 467 ++ .../clang/Rewrite/Frontend/FrontendActions.h | 7 +- .../clang/include/clang/Sema/AttributeList.h | 10 + .../dist/clang/include/clang/Sema/DeclSpec.h | 96 +- .../include/clang/Sema/DelayedDiagnostic.h | 14 +- .../include/clang/Sema/IdentifierResolver.h | 16 +- .../clang/include/clang/Sema/Initialization.h | 40 +- .../dist/clang/include/clang/Sema/Lookup.h | 10 +- .../clang/Sema/MultiplexExternalSemaSource.h | 2 + .../dist/clang/include/clang/Sema/Overload.h | 10 +- .../dist/clang/include/clang/Sema/Ownership.h | 1 + .../clang/include/clang/Sema/ParsedTemplate.h | 69 +- .../dist/clang/include/clang/Sema/ScopeInfo.h | 83 +- .../llvm/dist/clang/include/clang/Sema/Sema.h | 665 ++- .../dist/clang/include/clang/Sema/Template.h | 34 +- .../include/clang/Sema/TemplateDeduction.h | 6 + .../include/clang/Serialization/ASTBitCodes.h | 56 +- .../ASTDeserializationListener.h | 4 + .../include/clang/Serialization/ASTReader.h | 130 +- .../include/clang/Serialization/ASTWriter.h | 40 +- .../include/clang/Serialization/Module.h | 114 +- .../clang/Serialization/ModuleManager.h | 34 +- .../clang/StaticAnalyzer/Checkers/Checkers.td | 34 +- .../clang/StaticAnalyzer/Core/Analyses.def | 1 + .../StaticAnalyzer/Core/AnalyzerOptions.h | 22 +- .../Core/BugReporter/CommonBugCategories.h | 1 + .../Core/BugReporter/PathDiagnostic.h | 16 +- .../clang/StaticAnalyzer/Core/Checker.h | 6 +- .../StaticAnalyzer/Core/CheckerManager.h | 12 +- .../Core/PathSensitive/BasicValueFactory.h | 17 +- .../Core/PathSensitive/CallEvent.h | 16 +- .../Core/PathSensitive/ConstraintManager.h | 5 + .../Core/PathSensitive/ExprEngine.h | 21 +- .../Core/PathSensitive/MemRegion.h | 283 +- .../Core/PathSensitive/ProgramState.h | 22 +- .../Core/PathSensitive/SValBuilder.h | 12 + .../StaticAnalyzer/Core/PathSensitive/SVals.h | 59 +- .../PathSensitive/SimpleConstraintManager.h | 92 + .../StaticAnalyzer/Core/PathSensitive/Store.h | 31 +- .../Core/PathSensitive/SubEngine.h | 10 +- .../Core/PathSensitive/SymExpr.h | 10 +- .../Core/PathSensitive/SymbolManager.h | 64 +- .../Core/PathSensitive/TaintManager.h | 10 + .../clang/Tooling/ArgumentsAdjusters.h | 4 + .../clang/Tooling/CompilationDatabase.h | 17 +- .../include/clang/Tooling/Core/Diagnostic.h | 6 +- .../include/clang/Tooling/DiagnosticsYaml.h | 15 +- .../dist/clang/include/clang/Tooling/FixIt.h | 7 + .../clang/Tooling/Refactoring/AtomicChange.h | 135 + .../Refactoring/RecursiveSymbolVisitor.h | 122 + .../Refactoring/Rename/RenamingAction.h | 70 + .../Tooling/Refactoring/Rename/USRFinder.h | 50 + .../Refactoring/Rename/USRFindingAction.h | 54 + .../Tooling/Refactoring/Rename/USRLocFinder.h | 49 + .../clang/Tooling/RefactoringCallbacks.h | 50 + .../clang/include/clang/Tooling/Tooling.h | 14 +- .../dist/clang/include/clang/module.modulemap | 3 +- .../llvm/dist/clang/lib/ARCMigrate/ObjCMT.cpp | 2 +- .../ARCMigrate/TransRetainReleaseDealloc.cpp | 1 + .../clang/lib/ARCMigrate/TransformActions.cpp | 1 + .../llvm/dist/clang/lib/AST/ASTContext.cpp | 263 +- .../llvm/dist/clang/lib/AST/ASTDiagnostic.cpp | 1 + .../bsd/llvm/dist/clang/lib/AST/ASTDumper.cpp | 75 +- .../llvm/dist/clang/lib/AST/ASTImporter.cpp | 1614 +---- .../lib/AST/ASTStructuralEquivalence.cpp | 1362 +++++ .../llvm/dist/clang/lib/AST/CMakeLists.txt | 8 +- .../dist/clang/lib/AST/CXXInheritance.cpp | 126 +- .../bsd/llvm/dist/clang/lib/AST/Comment.cpp | 20 + .../llvm/dist/clang/lib/AST/CommentSema.cpp | 34 +- external/bsd/llvm/dist/clang/lib/AST/Decl.cpp | 228 +- .../bsd/llvm/dist/clang/lib/AST/DeclBase.cpp | 84 +- .../bsd/llvm/dist/clang/lib/AST/DeclCXX.cpp | 185 +- .../bsd/llvm/dist/clang/lib/AST/DeclObjC.cpp | 51 +- .../llvm/dist/clang/lib/AST/DeclPrinter.cpp | 42 +- .../llvm/dist/clang/lib/AST/DeclTemplate.cpp | 37 +- .../dist/clang/lib/AST/DeclarationName.cpp | 105 +- external/bsd/llvm/dist/clang/lib/AST/Expr.cpp | 60 +- .../bsd/llvm/dist/clang/lib/AST/ExprCXX.cpp | 10 +- .../dist/clang/lib/AST/ExprClassification.cpp | 8 +- .../llvm/dist/clang/lib/AST/ExprConstant.cpp | 496 +- .../dist/clang/lib/AST/ExternalASTMerger.cpp | 182 + .../dist/clang/lib/AST/ExternalASTSource.cpp | 5 + .../llvm/dist/clang/lib/AST/ItaniumMangle.cpp | 65 +- .../bsd/llvm/dist/clang/lib/AST/Mangle.cpp | 8 +- .../dist/clang/lib/AST/MicrosoftMangle.cpp | 134 +- .../bsd/llvm/dist/clang/lib/AST/NSAPI.cpp | 1 - .../clang/lib/AST/NestedNameSpecifier.cpp | 1 + .../bsd/llvm/dist/clang/lib/AST/ODRHash.cpp | 632 ++ .../llvm/dist/clang/lib/AST/OpenMPClause.cpp | 69 +- .../clang/lib/AST/RecordLayoutBuilder.cpp | 35 + external/bsd/llvm/dist/clang/lib/AST/Stmt.cpp | 4 +- .../bsd/llvm/dist/clang/lib/AST/StmtCXX.cpp | 29 + .../llvm/dist/clang/lib/AST/StmtOpenMP.cpp | 103 +- .../llvm/dist/clang/lib/AST/StmtPrinter.cpp | 32 +- .../llvm/dist/clang/lib/AST/StmtProfile.cpp | 276 +- .../llvm/dist/clang/lib/AST/TemplateBase.cpp | 4 - external/bsd/llvm/dist/clang/lib/AST/Type.cpp | 174 +- .../bsd/llvm/dist/clang/lib/AST/TypeLoc.cpp | 1 - .../llvm/dist/clang/lib/AST/TypePrinter.cpp | 115 +- .../lib/ASTMatchers/Dynamic/Diagnostics.cpp | 4 +- .../lib/ASTMatchers/Dynamic/Marshallers.h | 20 + .../clang/lib/ASTMatchers/Dynamic/Parser.cpp | 63 +- .../lib/ASTMatchers/Dynamic/Registry.cpp | 37 +- .../lib/ASTMatchers/Dynamic/VariantValue.cpp | 64 + .../lib/Analysis/AnalysisDeclContext.cpp | 4 + .../llvm/dist/clang/lib/Analysis/BodyFarm.cpp | 4 +- .../bsd/llvm/dist/clang/lib/Analysis/CFG.cpp | 246 +- .../dist/clang/lib/Analysis/CallGraph.cpp | 1 + .../clang/lib/Analysis/CloneDetection.cpp | 1162 ++-- .../llvm/dist/clang/lib/Analysis/OSLog.cpp | 3 +- .../clang/lib/Analysis/PrintfFormatString.cpp | 6 +- .../lib/Analysis/PseudoConstantAnalysis.cpp | 1 + .../dist/clang/lib/Analysis/ReachableCode.cpp | 19 +- .../clang/lib/Analysis/ScanfFormatString.cpp | 2 + .../clang/lib/Analysis/ThreadSafetyTIL.cpp | 4 +- .../llvm/dist/clang/lib/Basic/Attributes.cpp | 11 + .../llvm/dist/clang/lib/Basic/CMakeLists.txt | 19 +- .../llvm/dist/clang/lib/Basic/Diagnostic.cpp | 191 +- .../dist/clang/lib/Basic/DiagnosticIDs.cpp | 43 +- .../llvm/dist/clang/lib/Basic/FileManager.cpp | 7 +- .../dist/clang/lib/Basic/IdentifierTable.cpp | 22 +- .../llvm/dist/clang/lib/Basic/LangOptions.cpp | 6 +- .../clang/lib/Basic/MemoryBufferCache.cpp | 48 + .../bsd/llvm/dist/clang/lib/Basic/Module.cpp | 87 +- .../llvm/dist/clang/lib/Basic/OpenMPKinds.cpp | 95 +- .../dist/clang/lib/Basic/SourceLocation.cpp | 70 + .../dist/clang/lib/Basic/SourceManager.cpp | 241 +- .../llvm/dist/clang/lib/Basic/TargetInfo.cpp | 12 +- .../bsd/llvm/dist/clang/lib/Basic/Targets.cpp | 1439 ++++- .../bsd/llvm/dist/clang/lib/Basic/Version.cpp | 2 +- .../clang/lib/Basic/VirtualFileSystem.cpp | 24 +- .../llvm/dist/clang/lib/Basic/XRayLists.cpp | 55 + .../bsd/llvm/dist/clang/lib/CodeGen/ABIInfo.h | 2 +- .../dist/clang/lib/CodeGen/BackendUtil.cpp | 534 +- .../llvm/dist/clang/lib/CodeGen/CGAtomic.cpp | 28 +- .../llvm/dist/clang/lib/CodeGen/CGBlocks.cpp | 510 +- .../llvm/dist/clang/lib/CodeGen/CGBuiltin.cpp | 665 ++- .../llvm/dist/clang/lib/CodeGen/CGCUDANV.cpp | 4 +- .../bsd/llvm/dist/clang/lib/CodeGen/CGCXX.cpp | 2 +- .../llvm/dist/clang/lib/CodeGen/CGCXXABI.cpp | 8 +- .../llvm/dist/clang/lib/CodeGen/CGCXXABI.h | 27 +- .../llvm/dist/clang/lib/CodeGen/CGCall.cpp | 675 ++- .../bsd/llvm/dist/clang/lib/CodeGen/CGCall.h | 45 +- .../llvm/dist/clang/lib/CodeGen/CGClass.cpp | 143 +- .../llvm/dist/clang/lib/CodeGen/CGCleanup.cpp | 53 +- .../dist/clang/lib/CodeGen/CGCoroutine.cpp | 590 +- .../dist/clang/lib/CodeGen/CGDebugInfo.cpp | 385 +- .../llvm/dist/clang/lib/CodeGen/CGDebugInfo.h | 74 +- .../llvm/dist/clang/lib/CodeGen/CGDecl.cpp | 143 +- .../llvm/dist/clang/lib/CodeGen/CGDeclCXX.cpp | 15 +- .../dist/clang/lib/CodeGen/CGException.cpp | 43 +- .../llvm/dist/clang/lib/CodeGen/CGExpr.cpp | 753 ++- .../llvm/dist/clang/lib/CodeGen/CGExprAgg.cpp | 29 +- .../llvm/dist/clang/lib/CodeGen/CGExprCXX.cpp | 62 +- .../dist/clang/lib/CodeGen/CGExprComplex.cpp | 16 +- .../dist/clang/lib/CodeGen/CGExprConstant.cpp | 16 +- .../dist/clang/lib/CodeGen/CGExprScalar.cpp | 479 +- .../dist/clang/lib/CodeGen/CGGPUBuiltin.cpp | 122 + .../llvm/dist/clang/lib/CodeGen/CGObjC.cpp | 159 +- .../llvm/dist/clang/lib/CodeGen/CGObjCGNU.cpp | 140 +- .../llvm/dist/clang/lib/CodeGen/CGObjCMac.cpp | 309 +- .../dist/clang/lib/CodeGen/CGObjCRuntime.cpp | 60 +- .../clang/lib/CodeGen/CGOpenCLRuntime.cpp | 3 - .../clang/lib/CodeGen/CGOpenMPRuntime.cpp | 1315 +++- .../dist/clang/lib/CodeGen/CGOpenMPRuntime.h | 263 +- .../lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp | 1698 +++++- .../clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h | 128 +- .../llvm/dist/clang/lib/CodeGen/CGStmt.cpp | 24 +- .../dist/clang/lib/CodeGen/CGStmtOpenMP.cpp | 1469 +++-- .../llvm/dist/clang/lib/CodeGen/CGVTables.cpp | 25 +- .../bsd/llvm/dist/clang/lib/CodeGen/CGValue.h | 51 +- .../dist/clang/lib/CodeGen/CMakeLists.txt | 4 +- .../clang/lib/CodeGen/CodeGenABITypes.cpp | 16 + .../dist/clang/lib/CodeGen/CodeGenAction.cpp | 308 +- .../clang/lib/CodeGen/CodeGenFunction.cpp | 153 +- .../dist/clang/lib/CodeGen/CodeGenFunction.h | 440 +- .../dist/clang/lib/CodeGen/CodeGenModule.cpp | 466 +- .../dist/clang/lib/CodeGen/CodeGenModule.h | 122 +- .../dist/clang/lib/CodeGen/CodeGenPGO.cpp | 39 +- .../llvm/dist/clang/lib/CodeGen/CodeGenPGO.h | 10 +- .../dist/clang/lib/CodeGen/CodeGenTBAA.cpp | 6 + .../dist/clang/lib/CodeGen/CodeGenTypeCache.h | 10 + .../dist/clang/lib/CodeGen/CodeGenTypes.cpp | 6 +- .../dist/clang/lib/CodeGen/CodeGenTypes.h | 7 +- .../clang/lib/CodeGen/ConstantInitBuilder.cpp | 280 + .../clang/lib/CodeGen/CoverageMappingGen.cpp | 10 +- .../dist/clang/lib/CodeGen/EHScopeStack.h | 2 +- .../dist/clang/lib/CodeGen/ItaniumCXXABI.cpp | 149 +- .../clang/lib/CodeGen/MacroPPCallbacks.cpp | 208 + .../dist/clang/lib/CodeGen/MacroPPCallbacks.h | 117 + .../clang/lib/CodeGen/MicrosoftCXXABI.cpp | 116 +- .../dist/clang/lib/CodeGen/ModuleBuilder.cpp | 10 +- .../ObjectFilePCHContainerOperations.cpp | 12 +- .../clang/lib/CodeGen/SwiftCallingConv.cpp | 8 +- .../dist/clang/lib/CodeGen/TargetInfo.cpp | 452 +- .../llvm/dist/clang/lib/CodeGen/TargetInfo.h | 29 +- .../llvm/dist/clang/lib/Driver/CMakeLists.txt | 46 +- .../dist/clang/lib/Driver/Compilation.cpp | 5 +- .../bsd/llvm/dist/clang/lib/Driver/Distro.cpp | 1 + .../bsd/llvm/dist/clang/lib/Driver/Driver.cpp | 300 +- .../dist/clang/lib/Driver/DriverOptions.cpp | 12 +- .../bsd/llvm/dist/clang/lib/Driver/Job.cpp | 28 +- .../llvm/dist/clang/lib/Driver/Multilib.cpp | 10 +- .../dist/clang/lib/Driver/SanitizerArgs.cpp | 141 +- .../llvm/dist/clang/lib/Driver/ToolChain.cpp | 33 +- .../clang/lib/Driver/ToolChains/AMDGPU.cpp | 45 + .../dist/clang/lib/Driver/ToolChains/AMDGPU.h | 54 + .../dist/clang/lib/Driver/ToolChains/AVR.cpp | 44 + .../dist/clang/lib/Driver/ToolChains/AVR.h | 49 + .../clang/lib/Driver/ToolChains/Ananas.cpp | 120 + .../dist/clang/lib/Driver/ToolChains/Ananas.h | 67 + .../lib/Driver/ToolChains/Arch/AArch64.cpp | 199 + .../lib/Driver/ToolChains/Arch/AArch64.h | 35 + .../clang/lib/Driver/ToolChains/Arch/ARM.cpp | 557 ++ .../clang/lib/Driver/ToolChains/Arch/ARM.h | 60 + .../clang/lib/Driver/ToolChains/Arch/Mips.cpp | 407 ++ .../clang/lib/Driver/ToolChains/Arch/Mips.h | 62 + .../clang/lib/Driver/ToolChains/Arch/PPC.cpp | 131 + .../clang/lib/Driver/ToolChains/Arch/PPC.h | 45 + .../lib/Driver/ToolChains/Arch/Sparc.cpp | 100 + .../clang/lib/Driver/ToolChains/Arch/Sparc.h | 42 + .../lib/Driver/ToolChains/Arch/SystemZ.cpp | 41 + .../lib/Driver/ToolChains/Arch/SystemZ.h | 32 + .../clang/lib/Driver/ToolChains/Arch/X86.cpp | 173 + .../clang/lib/Driver/ToolChains/Arch/X86.h | 37 + .../clang/lib/Driver/ToolChains/BareMetal.cpp | 211 + .../clang/lib/Driver/ToolChains/BareMetal.h | 91 + .../clang/lib/Driver/ToolChains/Bitrig.cpp | 190 + .../dist/clang/lib/Driver/ToolChains/Bitrig.h | 79 + .../clang/lib/Driver/ToolChains/Clang.cpp | 5268 +++++++++++++++++ .../dist/clang/lib/Driver/ToolChains/Clang.h | 149 + .../clang/lib/Driver/ToolChains/CloudABI.cpp | 145 + .../clang/lib/Driver/ToolChains/CloudABI.h | 69 + .../lib/Driver/ToolChains/CommonArgs.cpp | 1025 ++++ .../clang/lib/Driver/ToolChains/CommonArgs.h | 98 + .../clang/lib/Driver/ToolChains/Contiki.cpp | 28 + .../clang/lib/Driver/ToolChains/Contiki.h | 38 + .../lib/Driver/ToolChains/CrossWindows.cpp | 315 + .../lib/Driver/ToolChains/CrossWindows.h | 88 + .../dist/clang/lib/Driver/ToolChains/Cuda.cpp | 513 ++ .../dist/clang/lib/Driver/ToolChains/Cuda.h | 178 + .../clang/lib/Driver/ToolChains/Darwin.cpp | 2026 +++++++ .../dist/clang/lib/Driver/ToolChains/Darwin.h | 499 ++ .../clang/lib/Driver/ToolChains/DragonFly.cpp | 197 + .../clang/lib/Driver/ToolChains/DragonFly.h | 68 + .../clang/lib/Driver/ToolChains/FreeBSD.cpp | 395 ++ .../clang/lib/Driver/ToolChains/FreeBSD.h | 86 + .../clang/lib/Driver/ToolChains/Fuchsia.cpp | 286 + .../clang/lib/Driver/ToolChains/Fuchsia.h | 92 + .../dist/clang/lib/Driver/ToolChains/Gnu.cpp | 2480 ++++++++ .../dist/clang/lib/Driver/ToolChains/Gnu.h | 352 ++ .../clang/lib/Driver/ToolChains/Haiku.cpp | 33 + .../dist/clang/lib/Driver/ToolChains/Haiku.h | 40 + .../clang/lib/Driver/ToolChains/Hexagon.cpp | 492 ++ .../clang/lib/Driver/ToolChains/Hexagon.h | 104 + .../dist/clang/lib/Driver/ToolChains/Lanai.h | 39 + .../clang/lib/Driver/ToolChains/Linux.cpp | 860 +++ .../dist/clang/lib/Driver/ToolChains/Linux.h | 57 + .../dist/clang/lib/Driver/ToolChains/MSVC.cpp | 1426 +++++ .../dist/clang/lib/Driver/ToolChains/MSVC.h | 141 + .../lib/Driver/ToolChains/MSVCSetupApi.h | 514 ++ .../clang/lib/Driver/ToolChains/MinGW.cpp | 473 ++ .../dist/clang/lib/Driver/ToolChains/MinGW.h | 103 + .../clang/lib/Driver/ToolChains/Minix.cpp | 109 + .../dist/clang/lib/Driver/ToolChains/Minix.h | 66 + .../clang/lib/Driver/ToolChains/MipsLinux.cpp | 128 + .../clang/lib/Driver/ToolChains/MipsLinux.h | 62 + .../clang/lib/Driver/ToolChains/Myriad.cpp | 289 + .../dist/clang/lib/Driver/ToolChains/Myriad.h | 102 + .../dist/clang/lib/Driver/ToolChains/NaCl.cpp | 363 ++ .../dist/clang/lib/Driver/ToolChains/NaCl.h | 87 + .../clang/lib/Driver/ToolChains/NetBSD.cpp | 425 ++ .../dist/clang/lib/Driver/ToolChains/NetBSD.h | 80 + .../clang/lib/Driver/ToolChains/OpenBSD.cpp | 234 + .../clang/lib/Driver/ToolChains/OpenBSD.h | 76 + .../clang/lib/Driver/ToolChains/PS4CPU.cpp | 419 ++ .../dist/clang/lib/Driver/ToolChains/PS4CPU.h | 93 + .../clang/lib/Driver/ToolChains/Solaris.cpp | 193 + .../clang/lib/Driver/ToolChains/Solaris.h | 75 + .../dist/clang/lib/Driver/ToolChains/TCE.cpp | 47 + .../dist/clang/lib/Driver/ToolChains/TCE.h | 47 + .../lib/Driver/ToolChains/WebAssembly.cpp | 168 + .../clang/lib/Driver/ToolChains/WebAssembly.h | 78 + .../clang/lib/Driver/ToolChains/XCore.cpp | 150 + .../dist/clang/lib/Driver/ToolChains/XCore.h | 83 + .../llvm/dist/clang/lib/Driver/XRayArgs.cpp | 114 + .../llvm/dist/clang/lib/Edit/EditedSource.cpp | 62 +- .../lib/Edit/RewriteObjCFoundationAPI.cpp | 4 + .../dist/clang/lib/Format/BreakableToken.cpp | 770 ++- .../dist/clang/lib/Format/BreakableToken.h | 368 +- .../llvm/dist/clang/lib/Format/CMakeLists.txt | 3 +- .../clang/lib/Format/ContinuationIndenter.cpp | 387 +- .../clang/lib/Format/ContinuationIndenter.h | 19 +- .../bsd/llvm/dist/clang/lib/Format/Format.cpp | 297 +- .../llvm/dist/clang/lib/Format/FormatToken.h | 70 +- .../clang/lib/Format/FormatTokenLexer.cpp | 51 +- .../dist/clang/lib/Format/FormatTokenLexer.h | 1 + .../lib/Format/NamespaceEndCommentsFixer.cpp | 207 + .../lib/Format/NamespaceEndCommentsFixer.h | 37 + .../dist/clang/lib/Format/TokenAnnotator.cpp | 444 +- .../dist/clang/lib/Format/TokenAnnotator.h | 4 +- .../lib/Format/UnwrappedLineFormatter.cpp | 163 +- .../clang/lib/Format/UnwrappedLineFormatter.h | 17 +- .../clang/lib/Format/UnwrappedLineParser.cpp | 419 +- .../clang/lib/Format/UnwrappedLineParser.h | 38 +- .../lib/Format/UsingDeclarationsSorter.cpp | 144 + .../lib/Format/UsingDeclarationsSorter.h | 37 + .../clang/lib/Format/WhitespaceManager.cpp | 345 +- .../dist/clang/lib/Format/WhitespaceManager.h | 48 +- .../dist/clang/lib/Frontend/ASTConsumers.cpp | 41 +- .../llvm/dist/clang/lib/Frontend/ASTMerge.cpp | 11 +- .../llvm/dist/clang/lib/Frontend/ASTUnit.cpp | 1085 ++-- .../dist/clang/lib/Frontend/CMakeLists.txt | 1 + .../lib/Frontend/ChainedIncludesSource.cpp | 2 +- .../clang/lib/Frontend/CompilerInstance.cpp | 357 +- .../clang/lib/Frontend/CompilerInvocation.cpp | 654 +- .../CreateInvocationFromCommandLine.cpp | 8 +- .../clang/lib/Frontend/DependencyFile.cpp | 6 +- .../clang/lib/Frontend/DiagnosticRenderer.cpp | 196 +- .../clang/lib/Frontend/FrontendAction.cpp | 532 +- .../clang/lib/Frontend/FrontendActions.cpp | 313 +- .../clang/lib/Frontend/FrontendOptions.cpp | 36 +- .../clang/lib/Frontend/InitHeaderSearch.cpp | 2 + .../clang/lib/Frontend/InitPreprocessor.cpp | 55 +- .../dist/clang/lib/Frontend/LangStandards.cpp | 8 +- .../Frontend/ModuleDependencyCollector.cpp | 2 +- .../lib/Frontend/PrecompiledPreamble.cpp | 563 ++ .../lib/Frontend/PrintPreprocessedOutput.cpp | 154 +- .../clang/lib/Frontend/Rewrite/CMakeLists.txt | 1 + .../lib/Frontend/Rewrite/FrontendActions.cpp | 131 +- .../Frontend/Rewrite/InclusionRewriter.cpp | 68 +- .../lib/Frontend/Rewrite/RewriteMacros.cpp | 2 +- .../Frontend/Rewrite/RewriteModernObjC.cpp | 18 +- .../lib/Frontend/Rewrite/RewriteObjC.cpp | 9 +- .../Frontend/SerializedDiagnosticPrinter.cpp | 108 +- .../Frontend/SerializedDiagnosticReader.cpp | 4 + .../clang/lib/Frontend/TextDiagnostic.cpp | 324 +- .../lib/Frontend/TextDiagnosticPrinter.cpp | 7 +- .../lib/Frontend/VerifyDiagnosticConsumer.cpp | 2 +- .../ExecuteCompilerInvocation.cpp | 6 +- .../dist/clang/lib/Headers/CMakeLists.txt | 3 + .../bsd/llvm/dist/clang/lib/Headers/altivec.h | 157 +- .../llvm/dist/clang/lib/Headers/arm_acle.h | 318 +- .../llvm/dist/clang/lib/Headers/avx2intrin.h | 3 +- .../dist/clang/lib/Headers/avx512bwintrin.h | 104 +- .../dist/clang/lib/Headers/avx512dqintrin.h | 95 +- .../dist/clang/lib/Headers/avx512fintrin.h | 369 +- .../dist/clang/lib/Headers/avx512vldqintrin.h | 42 +- .../dist/clang/lib/Headers/avx512vlintrin.h | 45 +- .../clang/lib/Headers/avx512vpopcntdqintrin.h | 70 + .../llvm/dist/clang/lib/Headers/avxintrin.h | 546 +- .../llvm/dist/clang/lib/Headers/bmiintrin.h | 176 +- .../dist/clang/lib/Headers/clzerointrin.h | 50 + .../bsd/llvm/dist/clang/lib/Headers/cpuid.h | 118 +- .../llvm/dist/clang/lib/Headers/emmintrin.h | 365 +- .../llvm/dist/clang/lib/Headers/f16cintrin.h | 10 +- .../llvm/dist/clang/lib/Headers/htmxlintrin.h | 14 +- .../llvm/dist/clang/lib/Headers/immintrin.h | 22 +- .../bsd/llvm/dist/clang/lib/Headers/intrin.h | 56 - .../llvm/dist/clang/lib/Headers/lwpintrin.h | 150 + .../llvm/dist/clang/lib/Headers/mmintrin.h | 105 +- .../dist/clang/lib/Headers/module.modulemap | 1 + .../llvm/dist/clang/lib/Headers/opencl-c.h | 882 +-- .../llvm/dist/clang/lib/Headers/pmmintrin.h | 20 +- .../dist/clang/lib/Headers/prfchwintrin.h | 26 + .../llvm/dist/clang/lib/Headers/smmintrin.h | 1960 +++++- .../bsd/llvm/dist/clang/lib/Headers/stdarg.h | 3 +- .../llvm/dist/clang/lib/Headers/stdatomic.h | 20 +- .../bsd/llvm/dist/clang/lib/Headers/stdint.h | 29 +- .../bsd/llvm/dist/clang/lib/Headers/tgmath.h | 16 +- .../llvm/dist/clang/lib/Headers/tmmintrin.h | 88 +- .../bsd/llvm/dist/clang/lib/Headers/unwind.h | 78 +- .../llvm/dist/clang/lib/Headers/vecintrin.h | 1572 ++++- .../llvm/dist/clang/lib/Headers/x86intrin.h | 8 +- .../llvm/dist/clang/lib/Headers/xmmintrin.h | 71 +- .../llvm/dist/clang/lib/Headers/xopintrin.h | 4 +- .../llvm/dist/clang/lib/Index/CMakeLists.txt | 1 + .../dist/clang/lib/Index/CommentToXML.cpp | 6 +- .../llvm/dist/clang/lib/Index/IndexBody.cpp | 102 +- .../llvm/dist/clang/lib/Index/IndexDecl.cpp | 390 +- .../llvm/dist/clang/lib/Index/IndexSymbol.cpp | 86 +- .../clang/lib/Index/IndexTypeSourceInfo.cpp | 69 +- .../dist/clang/lib/Index/IndexingAction.cpp | 29 + .../dist/clang/lib/Index/IndexingContext.cpp | 171 +- .../dist/clang/lib/Index/IndexingContext.h | 10 +- .../dist/clang/lib/Index/USRGeneration.cpp | 143 +- .../llvm/dist/clang/lib/Lex/HeaderSearch.cpp | 47 +- .../bsd/llvm/dist/clang/lib/Lex/Lexer.cpp | 199 +- .../dist/clang/lib/Lex/LiteralSupport.cpp | 20 +- .../bsd/llvm/dist/clang/lib/Lex/MacroArgs.cpp | 26 +- .../bsd/llvm/dist/clang/lib/Lex/MacroInfo.cpp | 23 +- .../bsd/llvm/dist/clang/lib/Lex/ModuleMap.cpp | 582 +- .../bsd/llvm/dist/clang/lib/Lex/PPCaching.cpp | 30 + .../llvm/dist/clang/lib/Lex/PPDirectives.cpp | 395 +- .../llvm/dist/clang/lib/Lex/PPExpressions.cpp | 84 +- .../llvm/dist/clang/lib/Lex/PPLexerChange.cpp | 168 +- .../dist/clang/lib/Lex/PPMacroExpansion.cpp | 18 +- .../bsd/llvm/dist/clang/lib/Lex/Pragma.cpp | 306 +- .../clang/lib/Lex/PreprocessingRecord.cpp | 3 +- .../llvm/dist/clang/lib/Lex/Preprocessor.cpp | 46 +- .../llvm/dist/clang/lib/Lex/ScratchBuffer.cpp | 8 + .../llvm/dist/clang/lib/Lex/TokenLexer.cpp | 42 +- .../clang/lib/Parse/ParseCXXInlineMethods.cpp | 25 +- .../llvm/dist/clang/lib/Parse/ParseDecl.cpp | 452 +- .../dist/clang/lib/Parse/ParseDeclCXX.cpp | 284 +- .../llvm/dist/clang/lib/Parse/ParseExpr.cpp | 163 +- .../dist/clang/lib/Parse/ParseExprCXX.cpp | 152 +- .../llvm/dist/clang/lib/Parse/ParseInit.cpp | 5 +- .../llvm/dist/clang/lib/Parse/ParseObjc.cpp | 119 +- .../llvm/dist/clang/lib/Parse/ParseOpenMP.cpp | 76 +- .../llvm/dist/clang/lib/Parse/ParsePragma.cpp | 785 ++- .../llvm/dist/clang/lib/Parse/ParseStmt.cpp | 32 +- .../dist/clang/lib/Parse/ParseStmtAsm.cpp | 19 +- .../dist/clang/lib/Parse/ParseTemplate.cpp | 100 +- .../dist/clang/lib/Parse/ParseTentative.cpp | 46 +- .../bsd/llvm/dist/clang/lib/Parse/Parser.cpp | 155 +- .../dist/clang/lib/Rewrite/HTMLRewrite.cpp | 1 + .../clang/lib/Sema/AnalysisBasedWarnings.cpp | 200 +- .../dist/clang/lib/Sema/AttributeList.cpp | 21 + .../llvm/dist/clang/lib/Sema/CMakeLists.txt | 1 + .../clang/lib/Sema/CoroutineStmtBuilder.h | 73 + .../bsd/llvm/dist/clang/lib/Sema/DeclSpec.cpp | 6 +- .../dist/clang/lib/Sema/DelayedDiagnostic.cpp | 6 +- .../dist/clang/lib/Sema/JumpDiagnostics.cpp | 9 + .../lib/Sema/MultiplexExternalSemaSource.cpp | 9 + .../llvm/dist/clang/lib/Sema/ScopeInfo.cpp | 19 +- .../bsd/llvm/dist/clang/lib/Sema/Sema.cpp | 175 +- .../bsd/llvm/dist/clang/lib/Sema/SemaAttr.cpp | 260 +- .../bsd/llvm/dist/clang/lib/Sema/SemaCUDA.cpp | 20 +- .../dist/clang/lib/Sema/SemaCXXScopeSpec.cpp | 37 +- .../bsd/llvm/dist/clang/lib/Sema/SemaCast.cpp | 135 +- .../llvm/dist/clang/lib/Sema/SemaChecking.cpp | 506 +- .../dist/clang/lib/Sema/SemaCodeComplete.cpp | 321 +- .../dist/clang/lib/Sema/SemaCoroutine.cpp | 1191 +++- .../bsd/llvm/dist/clang/lib/Sema/SemaDecl.cpp | 1396 +++-- .../llvm/dist/clang/lib/Sema/SemaDeclAttr.cpp | 888 ++- .../llvm/dist/clang/lib/Sema/SemaDeclCXX.cpp | 1393 ++--- .../llvm/dist/clang/lib/Sema/SemaDeclObjC.cpp | 131 +- .../dist/clang/lib/Sema/SemaExceptionSpec.cpp | 1 + .../bsd/llvm/dist/clang/lib/Sema/SemaExpr.cpp | 936 ++- .../llvm/dist/clang/lib/Sema/SemaExprCXX.cpp | 521 +- .../dist/clang/lib/Sema/SemaExprMember.cpp | 56 +- .../llvm/dist/clang/lib/Sema/SemaExprObjC.cpp | 140 +- .../bsd/llvm/dist/clang/lib/Sema/SemaInit.cpp | 397 +- .../llvm/dist/clang/lib/Sema/SemaLambda.cpp | 89 +- .../llvm/dist/clang/lib/Sema/SemaLookup.cpp | 432 +- .../dist/clang/lib/Sema/SemaObjCProperty.cpp | 238 +- .../llvm/dist/clang/lib/Sema/SemaOpenMP.cpp | 1429 ++++- .../llvm/dist/clang/lib/Sema/SemaOverload.cpp | 750 ++- .../dist/clang/lib/Sema/SemaPseudoObject.cpp | 42 +- .../bsd/llvm/dist/clang/lib/Sema/SemaStmt.cpp | 305 +- .../llvm/dist/clang/lib/Sema/SemaStmtAsm.cpp | 6 +- .../llvm/dist/clang/lib/Sema/SemaStmtAttr.cpp | 27 + .../llvm/dist/clang/lib/Sema/SemaTemplate.cpp | 1319 ++++- .../clang/lib/Sema/SemaTemplateDeduction.cpp | 504 +- .../lib/Sema/SemaTemplateInstantiate.cpp | 327 +- .../lib/Sema/SemaTemplateInstantiateDecl.cpp | 330 +- .../clang/lib/Sema/SemaTemplateVariadic.cpp | 8 + .../bsd/llvm/dist/clang/lib/Sema/SemaType.cpp | 394 +- .../llvm/dist/clang/lib/Sema/TreeTransform.h | 630 +- .../clang/lib/Serialization/ASTCommon.cpp | 4 +- .../clang/lib/Serialization/ASTReader.cpp | 1924 ++++-- .../clang/lib/Serialization/ASTReaderDecl.cpp | 425 +- .../clang/lib/Serialization/ASTReaderStmt.cpp | 70 +- .../clang/lib/Serialization/ASTWriter.cpp | 648 +- .../clang/lib/Serialization/ASTWriterDecl.cpp | 37 +- .../clang/lib/Serialization/ASTWriterStmt.cpp | 43 +- .../clang/lib/Serialization/GeneratePCH.cpp | 7 +- .../lib/Serialization/GlobalModuleIndex.cpp | 76 +- .../dist/clang/lib/Serialization/Module.cpp | 22 - .../clang/lib/Serialization/ModuleManager.cpp | 269 +- .../Checkers/AnalysisOrderChecker.cpp | 49 +- .../Checkers/BasicObjCFoundationChecks.cpp | 46 +- .../BlockInCriticalSectionChecker.cpp | 70 +- .../Checkers/BuiltinFunctionChecker.cpp | 18 + .../StaticAnalyzer/Checkers/CMakeLists.txt | 3 +- .../Checkers/CStringChecker.cpp | 61 +- .../Checkers/CStringSyntaxChecker.cpp | 32 +- .../Checkers/CXXSelfAssignmentChecker.cpp | 4 +- .../Checkers/CallAndMessageChecker.cpp | 76 +- .../Checkers/CastToStructChecker.cpp | 4 + .../Checkers/CheckerDocumentation.cpp | 14 +- .../StaticAnalyzer/Checkers/CloneChecker.cpp | 103 +- .../Checkers/ConversionChecker.cpp | 42 +- .../Checkers/DeadStoresChecker.cpp | 1 + .../Checkers/ExprInspectionChecker.cpp | 7 +- .../Checkers/GenericTaintChecker.cpp | 88 +- .../Checkers/IteratorChecker.cpp | 833 +++ .../Checkers/LocalizationChecker.cpp | 112 +- .../Checkers/MPI-Checker/MPIChecker.cpp | 4 +- .../Checkers/MacOSKeychainAPIChecker.cpp | 172 +- .../StaticAnalyzer/Checkers/MallocChecker.cpp | 221 +- .../Checkers/MisusedMovedObjectChecker.cpp | 481 ++ .../Checkers/NoReturnFunctionChecker.cpp | 4 +- .../Checkers/NonNullParamChecker.cpp | 2 +- .../Checkers/NullabilityChecker.cpp | 8 +- .../Checkers/ObjCPropertyChecker.cpp | 3 +- .../Checkers/PthreadLockChecker.cpp | 148 +- .../Checkers/RetainCountChecker.cpp | 94 +- .../StaticAnalyzer/Checkers/SelectorExtras.h | 40 +- .../Checkers/StdLibraryFunctionsChecker.cpp | 5 +- .../Checkers/UndefResultChecker.cpp | 26 + .../Checkers/UnixAPIChecker.cpp | 55 +- .../StaticAnalyzer/Checkers/ValistChecker.cpp | 90 +- .../Checkers/VirtualCallChecker.cpp | 3 +- .../StaticAnalyzer/Core/AnalysisManager.cpp | 3 +- .../StaticAnalyzer/Core/AnalyzerOptions.cpp | 17 +- .../lib/StaticAnalyzer/Core/BugReporter.cpp | 18 +- .../Core/BugReporterVisitors.cpp | 35 +- .../lib/StaticAnalyzer/Core/CMakeLists.txt | 17 + .../lib/StaticAnalyzer/Core/CallEvent.cpp | 87 +- .../StaticAnalyzer/Core/CheckerManager.cpp | 12 +- .../Core/CommonBugCategories.cpp | 1 + .../StaticAnalyzer/Core/ConstraintManager.cpp | 4 +- .../StaticAnalyzer/Core/DynamicTypeMap.cpp | 2 +- .../lib/StaticAnalyzer/Core/ExprEngine.cpp | 163 +- .../lib/StaticAnalyzer/Core/ExprEngineC.cpp | 14 +- .../lib/StaticAnalyzer/Core/ExprEngineCXX.cpp | 9 +- .../Core/ExprEngineCallAndReturn.cpp | 3 +- .../StaticAnalyzer/Core/ExprEngineObjC.cpp | 4 +- .../lib/StaticAnalyzer/Core/MemRegion.cpp | 62 +- .../StaticAnalyzer/Core/PathDiagnostic.cpp | 47 +- .../lib/StaticAnalyzer/Core/ProgramState.cpp | 115 +- .../Core/RangeConstraintManager.cpp | 102 +- .../Core/RangedConstraintManager.cpp | 204 + .../Core/RangedConstraintManager.h | 102 + .../lib/StaticAnalyzer/Core/RegionStore.cpp | 16 +- .../lib/StaticAnalyzer/Core/SValBuilder.cpp | 1 + .../Core/SimpleConstraintManager.cpp | 230 +- .../StaticAnalyzer/Core/SimpleSValBuilder.cpp | 110 +- .../clang/lib/StaticAnalyzer/Core/Store.cpp | 47 +- .../Core/Z3ConstraintManager.cpp | 1618 +++++ .../Frontend/AnalysisConsumer.cpp | 10 +- .../StaticAnalyzer/Frontend/ModelInjector.cpp | 2 +- .../clang/lib/Tooling/ArgumentsAdjusters.cpp | 23 +- .../dist/clang/lib/Tooling/CMakeLists.txt | 1 + .../clang/lib/Tooling/CommonOptionsParser.cpp | 7 +- .../clang/lib/Tooling/CompilationDatabase.cpp | 50 +- .../clang/lib/Tooling/Core/Diagnostic.cpp | 6 +- .../lib/Tooling/JSONCompilationDatabase.cpp | 8 +- .../dist/clang/lib/Tooling/Refactoring.cpp | 15 +- .../lib/Tooling/Refactoring/AtomicChange.cpp | 177 + .../lib/Tooling/Refactoring/CMakeLists.txt | 20 + .../Refactoring/Rename/RenamingAction.cpp | 134 + .../Tooling/Refactoring/Rename/USRFinder.cpp | 146 + .../Refactoring/Rename/USRFindingAction.cpp | 236 + .../Refactoring/Rename/USRLocFinder.cpp | 451 ++ .../lib/Tooling/RefactoringCallbacks.cpp | 156 +- .../llvm/dist/clang/lib/Tooling/Tooling.cpp | 23 +- .../llvm/dist/clang/test/ARCMT/lit.local.cfg | 2 +- .../dist/clang/test/ARCMT/remap-applying.c | 4 + .../clang/test/ARCMT/remap-applying.c.result | 4 + .../test/ASTMerge/asm/Inputs/asm-function.cpp | 10 + .../dist/clang/test/ASTMerge/asm/test.cpp | 1 + .../Inputs/class-template-partial-spec1.cpp | 118 + .../Inputs/class-template-partial-spec2.cpp | 79 + .../class-template-partial-spec/test.cpp | 25 + .../test/ASTMerge/exprs-cpp/Inputs/exprs3.cpp | 4 + .../clang/test/ASTMerge/exprs-cpp/test.cpp | 2 + .../test/ASTMerge/struct/Inputs/struct1.c | 16 + .../test/ASTMerge/struct/Inputs/struct2.c | 16 + .../dist/clang/test/ASTMerge/struct/test.c | 7 +- .../test/Analysis/CFContainers-invalid.c | 2 +- .../dist/clang/test/Analysis/CFContainers.mm | 2 +- .../llvm/dist/clang/test/Analysis/CFDateGC.m | 2 +- .../llvm/dist/clang/test/Analysis/CFNumber.c | 2 +- .../CFRetainRelease_NSAssertionHandler.m | 2 +- .../dist/clang/test/Analysis/CGColorSpace.c | 2 +- .../dist/clang/test/Analysis/CheckNSError.m | 2 +- .../test/Analysis/DeallocMissingRelease.m | 6 +- .../test/Analysis/DeallocUseAfterFreeErrors.m | 2 +- .../test/Analysis/DynamicTypePropagation.m | 14 +- .../Inputs/system-header-simulator-cxx.h | 389 +- ...Malloc+MismatchedDeallocator+NewDelete.cpp | 4 +- ...oc+MismatchedDeallocator_intersections.cpp | 2 +- .../Malloc+NewDelete_intersections.cpp | 4 +- .../dist/clang/test/Analysis/MemRegion.cpp | 2 +- .../MismatchedDeallocator-checker-test.mm | 2 +- .../MismatchedDeallocator-path-notes.cpp | 6 +- .../dist/clang/test/Analysis/MissingDealloc.m | 4 +- .../test/Analysis/MisusedMovedObject.cpp | 619 ++ .../dist/clang/test/Analysis/NSContainers.m | 2 +- .../llvm/dist/clang/test/Analysis/NSPanel.m | 2 +- .../llvm/dist/clang/test/Analysis/NSString.m | 8 +- .../llvm/dist/clang/test/Analysis/NSWindow.m | 2 +- ...te+MismatchedDeallocator_intersections.cpp | 4 +- .../test/Analysis/NewDelete-checker-test.cpp | 6 +- .../clang/test/Analysis/NewDelete-custom.cpp | 4 +- .../test/Analysis/NewDelete-intersections.mm | 4 +- .../test/Analysis/NewDelete-path-notes.cpp | 8 +- .../test/Analysis/NewDelete-variadic.cpp | 2 +- .../test/Analysis/NewDeleteLeaks-PR18394.cpp | 2 +- .../test/Analysis/NewDeleteLeaks-PR19102.cpp | 2 +- .../llvm/dist/clang/test/Analysis/NoReturn.m | 2 +- .../dist/clang/test/Analysis/OSAtomic_mac.cpp | 2 +- .../dist/clang/test/Analysis/ObjCProperties.m | 2 +- .../Analysis/ObjCPropertiesSyntaxChecks.m | 9 +- .../dist/clang/test/Analysis/ObjCRetSigs.m | 2 +- .../llvm/dist/clang/test/Analysis/PR12905.c | 2 +- .../llvm/dist/clang/test/Analysis/PR24184.cpp | 4 +- .../llvm/dist/clang/test/Analysis/PR2599.m | 2 +- .../llvm/dist/clang/test/Analysis/PR2978.m | 2 +- .../llvm/dist/clang/test/Analysis/PR3991.m | 2 +- .../llvm/dist/clang/test/Analysis/PR7218.c | 2 +- .../additive-folding-range-constraints.c | 2 +- .../clang/test/Analysis/additive-folding.cpp | 11 +- .../clang/test/Analysis/analyzeOneFunction.m | 2 +- .../test/Analysis/analyzer-checker-config.c | 14 +- .../clang/test/Analysis/analyzer-config.c | 11 +- .../clang/test/Analysis/analyzer-config.cpp | 10 +- .../Analysis/analyzer-display-progress.cpp | 2 +- .../test/Analysis/analyzer-display-progress.m | 2 +- .../test/Analysis/analyzer-enabled-checkers.c | 2 +- .../dist/clang/test/Analysis/analyzer-stats.c | 2 +- .../dist/clang/test/Analysis/analyzer_test.py | 43 + .../clang/test/Analysis/array-struct-region.c | 2 +- .../test/Analysis/array-struct-region.cpp | 8 +- .../dist/clang/test/Analysis/array-struct.c | 2 +- .../llvm/dist/clang/test/Analysis/atomics.c | 2 +- .../Analysis/auto-obj-dtors-cfg-output.cpp | 2 +- .../dist/clang/test/Analysis/base-init.cpp | 2 +- .../dist/clang/test/Analysis/bitwise-ops.c | 2 +- .../Analysis/block-in-critical-section.cpp | 78 +- .../clang/test/Analysis/blocks-no-inline.c | 4 +- .../llvm/dist/clang/test/Analysis/blocks.m | 4 +- .../llvm/dist/clang/test/Analysis/blocks.mm | 4 +- .../clang/test/Analysis/bool-assignment.c | 9 +- .../llvm/dist/clang/test/Analysis/bstring.c | 8 +- .../llvm/dist/clang/test/Analysis/bstring.cpp | 2 +- .../clang/test/Analysis/bug_hash_test.cpp | 2 +- .../dist/clang/test/Analysis/bug_hash_test.m | 2 +- .../clang/test/Analysis/builtin-functions.cpp | 16 +- .../clang/test/Analysis/call-invalidation.cpp | 2 +- .../clang/test/Analysis/cast-to-struct.cpp | 16 +- .../clang/test/Analysis/castexpr-callback.c | 2 +- .../bsd/llvm/dist/clang/test/Analysis/casts.c | 9 +- .../llvm/dist/clang/test/Analysis/casts.cpp | 2 +- .../bsd/llvm/dist/clang/test/Analysis/casts.m | 2 +- .../bsd/llvm/dist/clang/test/Analysis/cfg.cpp | 2 +- .../dist/clang/test/Analysis/cfref_PR2519.c | 2 +- .../clang/test/Analysis/cfref_rdar6080742.c | 2 +- .../test/Analysis/check-deserialization.cpp | 4 +- .../clang/test/Analysis/checker-plugins.c | 2 +- .../llvm/dist/clang/test/Analysis/chroot.c | 2 +- .../Analysis/comparison-implicit-casts.cpp | 4 +- .../clang/test/Analysis/complex-init-list.cpp | 2 +- .../llvm/dist/clang/test/Analysis/complex.c | 2 +- .../clang/test/Analysis/concrete-address.c | 2 +- .../test/Analysis/conditional-operator.cpp | 2 +- .../test/Analysis/conditional-path-notes.c | 4 +- .../clang/test/Analysis/const-method-call.cpp | 2 +- .../clang/test/Analysis/constant-folding.c | 2 +- .../dist/clang/test/Analysis/conversion.c | 70 +- .../clang/test/Analysis/copypaste/asm.cpp | 2 +- .../test/Analysis/copypaste/attributes.cpp | 2 +- .../copypaste/autogenerated_automoc.cpp | 19 + .../clang/test/Analysis/copypaste/blocks.cpp | 2 +- .../clang/test/Analysis/copypaste/call.cpp | 2 +- .../clang/test/Analysis/copypaste/catch.cpp | 2 +- .../Analysis/copypaste/dbus_autogenerated.cpp | 19 + .../clang/test/Analysis/copypaste/delete.cpp | 2 +- .../Analysis/copypaste/dependent-exist.cpp | 2 +- .../test/Analysis/copypaste/expr-types.cpp | 2 +- .../clang/test/Analysis/copypaste/fold.cpp | 2 +- .../Analysis/copypaste/function-try-block.cpp | 2 +- .../test/Analysis/copypaste/functions.cpp | 2 +- .../clang/test/Analysis/copypaste/generic.c | 2 +- .../clang/test/Analysis/copypaste/labels.cpp | 2 +- .../clang/test/Analysis/copypaste/lambda.cpp | 2 +- .../Analysis/copypaste/macro-complexity.cpp | 2 +- .../clang/test/Analysis/copypaste/macros.cpp | 2 +- .../Analysis/copypaste/moc_autogenerated.cpp | 19 + .../Analysis/copypaste/not-autogenerated.cpp | 14 + .../test/Analysis/copypaste/objc-methods.m | 2 +- .../plist-diagnostics-notes-as-events.cpp | 2 +- .../Analysis/copypaste/plist-diagnostics.cpp | 2 +- .../test/Analysis/copypaste/sub-sequences.cpp | 2 +- .../Analysis/copypaste/suspicious-clones.cpp | 2 +- .../Analysis/copypaste/text-diagnostics.cpp | 2 +- .../Analysis/copypaste/ui_autogenerated.cpp | 19 + .../llvm/dist/clang/test/Analysis/coverage.c | 2 +- .../dist/clang/test/Analysis/crash-trace.c | 2 +- .../test/Analysis/cstring-syntax-cxx.cpp | 2 +- .../dist/clang/test/Analysis/cstring-syntax.c | 4 +- .../bsd/llvm/dist/clang/test/Analysis/ctor.mm | 2 +- .../dist/clang/test/Analysis/cxx-crashes.cpp | 2 +- .../clang/test/Analysis/cxx-for-range.cpp | 2 +- .../clang/test/Analysis/cxx-method-names.cpp | 2 +- .../clang/test/Analysis/cxx11-crashes.cpp | 2 +- .../dist/clang/test/Analysis/dead-stores.c | 4 +- .../dist/clang/test/Analysis/dead-stores.cpp | 4 +- .../dist/clang/test/Analysis/dead-stores.m | 2 +- .../clang/test/Analysis/debug-CallGraph.c | 29 +- .../clang/test/Analysis/default-analyze.m | 2 +- .../Analysis/default-diagnostic-visitors.c | 2 +- .../delayed-template-parsing-crash.cpp | 2 +- .../llvm/dist/clang/test/Analysis/delegates.m | 2 +- .../clang/test/Analysis/derived-to-base.cpp | 4 +- .../test/Analysis/designated-initializer.c | 2 +- .../diagnostics/deref-track-symbolic-region.c | 4 +- .../deref-track-symbolic-region.cpp | 2 +- .../diagnostics/diag-cross-file-boundaries.c | 4 +- .../diagnostics/explicit-suppression.cpp | 7 +- .../diagnostics/false-positive-suppression.c | 2 +- .../implicit-cxx-std-suppression.cpp | 4 +- .../test/Analysis/diagnostics/macros.cpp | 2 +- .../clang/test/Analysis/diagnostics/macros.m | 2 +- .../Analysis/diagnostics/no-prune-paths.c | 4 +- .../plist-diagnostics-include-check.cpp | 2 +- .../report-issues-within-main-file.cpp | 4 +- .../diagnostics/shortest-path-suppression.c | 2 +- .../Analysis/diagnostics/text-diagnostics.c | 2 +- .../Analysis/diagnostics/undef-value-caller.c | 2 +- .../Analysis/diagnostics/undef-value-param.c | 4 +- .../Analysis/diagnostics/undef-value-param.m | 14 +- .../clang/test/Analysis/disable-all-checks.c | 10 +- .../dist/clang/test/Analysis/dispatch-once.m | 4 +- .../dist/clang/test/Analysis/div-zero.cpp | 2 +- .../clang/test/Analysis/division-by-zero.c | 2 +- .../llvm/dist/clang/test/Analysis/domtest.c | 2 +- .../dist/clang/test/Analysis/dtor-cxx11.cpp | 2 +- .../llvm/dist/clang/test/Analysis/dtor.cpp | 2 +- .../Analysis/dtors-in-dtor-cfg-output.cpp | 2 +- .../dist/clang/test/Analysis/dynamic-cast.cpp | 2 +- .../clang/test/Analysis/dynamic_type_check.m | 2 +- .../dist/clang/test/Analysis/edges-new.mm | 8 +- .../dist/clang/test/Analysis/elementtype.c | 2 +- .../Analysis/engine/replay-without-inlining.c | 2 +- .../llvm/dist/clang/test/Analysis/enum.cpp | 45 +- .../dist/clang/test/Analysis/exceptions.mm | 2 +- .../dist/clang/test/Analysis/exercise-ps.c | 2 +- .../dist/clang/test/Analysis/explain-svals.c | 25 + .../clang/test/Analysis/explain-svals.cpp | 2 +- .../dist/clang/test/Analysis/explain-svals.m | 2 +- .../clang/test/Analysis/expr-inspection.c | 4 +- .../llvm/dist/clang/test/Analysis/fields.c | 2 +- .../bsd/llvm/dist/clang/test/Analysis/free.c | 4 +- .../bsd/llvm/dist/clang/test/Analysis/func.c | 2 +- .../llvm/dist/clang/test/Analysis/generics.m | 4 +- .../Analysis/global-region-invalidation.c | 2 +- .../Analysis/global_region_invalidation.mm | 2 +- .../llvm/dist/clang/test/Analysis/gmalloc.c | 169 + .../llvm/dist/clang/test/Analysis/gtest.cpp | 6 +- .../test/Analysis/html-diags-multifile.c | 2 +- .../dist/clang/test/Analysis/html-diags.c | 4 +- .../test/Analysis/identical-expressions.cpp | 2 +- .../dist/clang/test/Analysis/index-type.c | 4 +- .../dist/clang/test/Analysis/initializer.cpp | 2 +- .../test/Analysis/initializers-cfg-output.cpp | 2 +- .../test/Analysis/inline-not-supported.c | 2 +- .../dist/clang/test/Analysis/inline-plist.c | 20 +- .../test/Analysis/inline-unique-reports.c | 2 +- .../llvm/dist/clang/test/Analysis/inline.c | 2 +- .../llvm/dist/clang/test/Analysis/inline.cpp | 2 +- .../llvm/dist/clang/test/Analysis/inline2.c | 2 +- .../llvm/dist/clang/test/Analysis/inline3.c | 2 +- .../llvm/dist/clang/test/Analysis/inline4.c | 2 +- .../Analysis/inlining/DynDispatchBifurcate.m | 2 +- .../Analysis/inlining/InlineObjCClassMethod.m | 81 +- .../inlining/InlineObjCInstanceMethod.m | 2 +- .../Analysis/inlining/ObjCDynTypePopagation.m | 2 +- .../ObjCImproperDynamictallyDetectableCast.m | 2 +- .../Analysis/inlining/RetainCountExamples.m | 2 +- .../test/Analysis/inlining/analysis-order.c | 2 +- .../assume-super-init-does-not-return-nil.m | 2 +- .../test/Analysis/inlining/containers.cpp | 4 +- .../inlining/dyn-dispatch-bifurcate.cpp | 2 +- .../inlining/eager-reclamation-path-notes.c | 4 +- .../inlining/eager-reclamation-path-notes.cpp | 4 +- .../inlining/false-positive-suppression.c | 6 +- .../inlining/false-positive-suppression.cpp | 4 +- .../inlining/false-positive-suppression.m | 8 +- .../inlining/inline-defensive-checks.c | 43 +- .../inlining/inline-defensive-checks.cpp | 17 +- .../inlining/inline-defensive-checks.m | 2 +- .../clang/test/Analysis/inlining/path-notes.c | 4 +- .../test/Analysis/inlining/path-notes.cpp | 4 +- .../clang/test/Analysis/inlining/path-notes.m | 4 +- .../inlining/retain-count-self-init.m | 2 +- .../dist/clang/test/Analysis/inlining/stl.cpp | 4 +- .../inlining/test-always-inline-size-option.c | 2 +- .../inlining/test_objc_inlining_option.m | 2 +- .../clang/test/Analysis/iterator-range.cpp | 19 + .../bsd/llvm/dist/clang/test/Analysis/ivars.m | 2 +- .../Analysis/keychainAPI-diagnostic-visitor.m | 2 +- .../dist/clang/test/Analysis/keychainAPI.m | 62 +- .../dist/clang/test/Analysis/kmalloc-linux.c | 2 +- .../dist/clang/test/Analysis/lambda-notes.cpp | 2 +- .../Analysis/lambdas-generalized-capture.cpp | 2 +- .../llvm/dist/clang/test/Analysis/lambdas.cpp | 6 +- .../llvm/dist/clang/test/Analysis/lambdas.mm | 2 +- .../test/Analysis/lifetime-cfg-output.cpp | 783 +++ .../test/Analysis/lifetime-extension.cpp | 2 +- .../dist/clang/test/Analysis/lit.local.cfg | 13 +- .../clang/test/Analysis/live-variables.cpp | 2 +- .../dist/clang/test/Analysis/live-variables.m | 2 +- .../test/Analysis/localization-aggressive.m | 21 +- .../dist/clang/test/Analysis/localization.m | 2 +- .../dist/clang/test/Analysis/logical-ops.c | 2 +- .../dist/clang/test/Analysis/loop-widening.c | 2 +- .../llvm/dist/clang/test/Analysis/lvalue.cpp | 2 +- .../clang/test/Analysis/malloc-annotations.c | 2 +- .../dist/clang/test/Analysis/malloc-custom.c | 2 +- .../test/Analysis/malloc-interprocedural.c | 2 +- .../clang/test/Analysis/malloc-overflow.c | 2 +- .../clang/test/Analysis/malloc-overflow.cpp | 2 +- .../clang/test/Analysis/malloc-overflow2.c | 8 +- .../dist/clang/test/Analysis/malloc-plist.c | 38 +- .../clang/test/Analysis/malloc-protoype.c | 2 +- .../dist/clang/test/Analysis/malloc-sizeof.c | 2 +- .../clang/test/Analysis/malloc-sizeof.cpp | 2 +- .../clang/test/Analysis/malloc-three-arg.c | 2 +- .../llvm/dist/clang/test/Analysis/malloc.c | 12 +- .../llvm/dist/clang/test/Analysis/malloc.cpp | 4 +- .../llvm/dist/clang/test/Analysis/malloc.m | 4 +- .../llvm/dist/clang/test/Analysis/malloc.mm | 2 +- .../Analysis/max-nodes-suppress-on-sink.c | 2 +- .../dist/clang/test/Analysis/member-expr.cpp | 2 +- .../test/Analysis/method-call-intra-p.cpp | 2 +- .../test/Analysis/method-call-path-notes.cpp | 4 +- .../dist/clang/test/Analysis/method-call.cpp | 2 +- .../dist/clang/test/Analysis/misc-ps-64.m | 2 +- .../dist/clang/test/Analysis/misc-ps-arm.m | 2 +- .../clang/test/Analysis/misc-ps-cxx0x.cpp | 2 +- .../test/Analysis/misc-ps-eager-assume.m | 2 +- .../dist/clang/test/Analysis/misc-ps-ranges.m | 2 +- .../test/Analysis/misc-ps-region-store-i386.m | 2 +- .../Analysis/misc-ps-region-store-x86_64.m | 2 +- .../test/Analysis/misc-ps-region-store.cpp | 4 +- .../test/Analysis/misc-ps-region-store.m | 8 +- .../test/Analysis/misc-ps-region-store.mm | 4 +- .../llvm/dist/clang/test/Analysis/misc-ps.c | 2 +- .../llvm/dist/clang/test/Analysis/misc-ps.m | 8 +- .../dist/clang/test/Analysis/model-file.cpp | 2 +- .../dist/clang/test/Analysis/mpichecker.cpp | 2 +- .../clang/test/Analysis/mpicheckernotes.cpp | 2 +- .../test/Analysis/new-with-exceptions.cpp | 4 +- .../bsd/llvm/dist/clang/test/Analysis/new.cpp | 2 +- ...undefined-larger-than-voidptr-ret-region.m | 2 +- ...ceiver-undefined-larger-than-voidptr-ret.m | 6 +- .../dist/clang/test/Analysis/no-exit-cfg.c | 2 +- .../dist/clang/test/Analysis/no-outofbounds.c | 2 +- .../test/Analysis/no-unreachable-dtors.cpp | 2 +- .../Analysis/non-diagnosable-assumptions.c | 2 +- .../llvm/dist/clang/test/Analysis/nonnull.m | 2 +- .../clang/test/Analysis/null-deref-offsets.c | 37 + .../test/Analysis/null-deref-path-notes.m | 4 +- .../test/Analysis/null-deref-ps-region.c | 61 +- .../dist/clang/test/Analysis/null-deref-ps.c | 6 +- .../clang/test/Analysis/nullability-no-arc.mm | 2 +- .../clang/test/Analysis/nullability-notes.m | 204 + .../dist/clang/test/Analysis/nullability.c | 2 +- .../dist/clang/test/Analysis/nullability.mm | 4 +- .../test/Analysis/nullability_nullonly.mm | 4 +- .../llvm/dist/clang/test/Analysis/nullptr.cpp | 4 +- .../test/Analysis/number-object-conversion.c | 4 +- .../Analysis/number-object-conversion.cpp | 4 +- .../test/Analysis/number-object-conversion.m | 8 +- .../llvm/dist/clang/test/Analysis/objc-arc.m | 2 +- .../llvm/dist/clang/test/Analysis/objc-bool.m | 2 +- .../dist/clang/test/Analysis/objc-boxing.m | 2 +- .../llvm/dist/clang/test/Analysis/objc-for.m | 2 +- .../dist/clang/test/Analysis/objc-message.m | 2 +- .../test/Analysis/objc-method-coverage.m | 2 +- .../clang/test/Analysis/objc-properties.m | 2 +- .../clang/test/Analysis/objc-radar17039661.m | 4 +- .../dist/clang/test/Analysis/objc-string.mm | 2 +- .../dist/clang/test/Analysis/objc-subscript.m | 2 +- ...t-ivar-assignment-in-annotated-functions.m | 2 +- .../clang/test/Analysis/objc_invalidation.m | 4 +- .../clang/test/Analysis/openmp-unsupported.c | 7 + .../clang/test/Analysis/operator-calls.cpp | 2 +- .../clang/test/Analysis/out-of-bounds-new.cpp | 2 +- .../dist/clang/test/Analysis/out-of-bounds.c | 2 +- .../clang/test/Analysis/outofbound-notwork.c | 2 +- .../dist/clang/test/Analysis/outofbound.c | 2 +- .../clang/test/Analysis/override-werror.c | 2 +- .../llvm/dist/clang/test/Analysis/padding_c.c | 2 +- .../dist/clang/test/Analysis/padding_cpp.cpp | 2 +- .../clang/test/Analysis/padding_message.cpp | 2 +- .../clang/test/Analysis/plist-html-macros.c | 4 +- .../dist/clang/test/Analysis/plist-macros.cpp | 8 +- .../test/Analysis/plist-output-alternate.m | 2 +- .../dist/clang/test/Analysis/plist-output.m | 206 +- .../clang/test/Analysis/pointer-to-member.cpp | 2 +- .../llvm/dist/clang/test/Analysis/pr22954.c | 2 +- .../llvm/dist/clang/test/Analysis/pr4209.m | 2 +- .../test/Analysis/pr_2542_rdar_6793404.m | 2 +- .../llvm/dist/clang/test/Analysis/pr_4164.c | 2 +- .../dist/clang/test/Analysis/properties.m | 20 +- .../dist/clang/test/Analysis/properties.mm | 4 +- .../dist/clang/test/Analysis/pthreadlock.c | 81 +- .../llvm/dist/clang/test/Analysis/ptr-arith.c | 45 +- .../dist/clang/test/Analysis/ptr-arith.cpp | 2 +- .../dist/clang/test/Analysis/qt_malloc.cpp | 2 +- .../dist/clang/test/Analysis/range_casts.c | 2 +- .../dist/clang/test/Analysis/rdar-6442306-1.m | 2 +- .../dist/clang/test/Analysis/rdar-6540084.m | 2 +- .../clang/test/Analysis/rdar-6541136-region.c | 2 +- .../dist/clang/test/Analysis/rdar-6562655.m | 2 +- ...600344-nil-receiver-undefined-struct-ret.m | 2 +- .../dist/clang/test/Analysis/rdar-7168531.m | 2 +- .../clang/test/Analysis/redefined_system.c | 2 +- .../dist/clang/test/Analysis/refcnt_naming.m | 2 +- .../dist/clang/test/Analysis/reference.cpp | 16 +- .../dist/clang/test/Analysis/reference.mm | 2 +- .../llvm/dist/clang/test/Analysis/region-1.m | 2 +- .../dist/clang/test/Analysis/region-store.c | 2 +- .../dist/clang/test/Analysis/region-store.cpp | 2 +- .../clang/test/Analysis/reinterpret-cast.cpp | 2 +- .../clang/test/Analysis/retain-release-arc.m | 4 +- .../test/Analysis/retain-release-cache-out.m | 2 +- .../test/Analysis/retain-release-cf-audited.m | 4 +- .../test/Analysis/retain-release-gc-only.m | 2 +- .../test/Analysis/retain-release-inline.m | 58 +- .../Analysis/retain-release-path-notes-gc.m | 4 +- .../test/Analysis/retain-release-path-notes.m | 4 +- .../Analysis/retain-release-region-store.m | 2 +- .../dist/clang/test/Analysis/retain-release.m | 6 +- .../clang/test/Analysis/retain-release.mm | 2 +- .../clang/test/Analysis/return-ptr-range.cpp | 2 +- .../Analysis/security-syntax-checks-no-emit.c | 2 +- .../test/Analysis/security-syntax-checks.m | 16 +- .../dist/clang/test/Analysis/self-assign.cpp | 2 +- .../llvm/dist/clang/test/Analysis/self-init.m | 4 +- .../dist/clang/test/Analysis/shallow-mode.m | 2 +- .../test/Analysis/simple-stream-checks.c | 4 +- .../dist/clang/test/Analysis/sizeofpointer.c | 2 +- .../dist/clang/test/Analysis/stack-addr-ps.c | 2 +- .../clang/test/Analysis/stack-addr-ps.cpp | 2 +- .../test/Analysis/stack-block-returned.cpp | 2 +- .../dist/clang/test/Analysis/stackaddrleak.c | 4 +- .../dist/clang/test/Analysis/static_local.m | 2 +- .../bsd/llvm/dist/clang/test/Analysis/stats.c | 2 +- .../test/Analysis/std-c-library-functions.c | 10 +- .../test/Analysis/std-c-library-functions.cpp | 2 +- .../llvm/dist/clang/test/Analysis/stream.c | 2 +- .../dist/clang/test/Analysis/string-fail.c | 4 +- .../llvm/dist/clang/test/Analysis/string.c | 8 +- .../dist/clang/test/Analysis/superclass.m | 2 +- .../clang/test/Analysis/svalbuilder-logic.c | 2 +- .../dist/clang/test/Analysis/switch-case.c | 2 +- .../dist/clang/test/Analysis/symbol-reaper.c | 2 +- .../test/Analysis/taint-diagnostic-visitor.c | 13 + .../dist/clang/test/Analysis/taint-generic.c | 60 +- .../dist/clang/test/Analysis/taint-tester.c | 2 +- .../dist/clang/test/Analysis/taint-tester.cpp | 2 +- .../dist/clang/test/Analysis/taint-tester.m | 2 +- .../Analysis/temp-obj-dtors-cfg-output.cpp | 4 +- .../dist/clang/test/Analysis/templates.cpp | 4 +- .../Analysis/temporaries-callback-order.cpp | 36 + .../dist/clang/test/Analysis/temporaries.cpp | 43 +- .../clang/test/Analysis/test-after-div-zero.c | 4 +- .../clang/test/Analysis/test-include-cpp.cpp | 2 +- .../dist/clang/test/Analysis/test-include.c | 2 +- .../test-objc-non-nil-return-value-checker.m | 2 +- .../Analysis/test-variably-modified-types.c | 2 +- .../test/Analysis/traversal-algorithm.mm | 2 +- .../Analysis/traversal-begin-end-function.c | 2 +- .../Analysis/traversal-path-unification.c | 4 +- .../dist/clang/test/Analysis/ubigraph-viz.cpp | 2 +- .../dist/clang/test/Analysis/undef-buffers.c | 2 +- .../dist/clang/test/Analysis/uninit-const.c | 62 +- .../dist/clang/test/Analysis/uninit-const.cpp | 28 +- .../clang/test/Analysis/uninit-msg-expr.m | 4 +- .../test/Analysis/uninit-ps-rdar6145427.m | 2 +- .../test/Analysis/uninit-vals-ps-region.m | 2 +- .../dist/clang/test/Analysis/uninit-vals-ps.c | 10 +- .../clang/test/Analysis/uninit-vals-union.c | 2 +- .../dist/clang/test/Analysis/uninit-vals.cpp | 6 +- .../dist/clang/test/Analysis/uninit-vals.m | 2 +- .../dist/clang/test/Analysis/unions-region.m | 2 +- .../llvm/dist/clang/test/Analysis/unions.cpp | 2 +- .../llvm/dist/clang/test/Analysis/unix-api.c | 2 +- .../dist/clang/test/Analysis/unix-api.cpp | 2 +- .../llvm/dist/clang/test/Analysis/unix-fns.c | 4 +- .../test/Analysis/unreachable-code-path.c | 2 +- .../clang/test/Analysis/unsupported-types.c | 31 + .../dist/clang/test/Analysis/unused-ivars.m | 2 +- .../test/Analysis/valist-as-lazycompound.c | 21 + .../Analysis/valist-uninitialized-no-undef.c | 40 + .../test/Analysis/valist-uninitialized.c | 98 +- .../clang/test/Analysis/valist-unterminated.c | 72 +- .../test/Analysis/variadic-method-types.m | 2 +- .../bsd/llvm/dist/clang/test/Analysis/vfork.c | 4 +- .../dist/clang/test/Analysis/virtualcall.cpp | 17 +- .../bsd/llvm/dist/clang/test/Analysis/vla.c | 2 +- .../dist/clang/test/Analysis/weak-functions.c | 2 +- .../bsd/llvm/dist/clang/test/CMakeLists.txt | 15 +- .../basic.lookup.qual/class.qual/p2.cpp | 93 +- .../dist/clang/test/CXX/class.access/p4.cpp | 2 +- .../CXX/class.derived/class.abstract/p16.cpp | 8 +- .../class.derived/class.member.lookup/p10.cpp | 114 + .../class.derived/class.member.lookup/p6.cpp | 10 +- .../class.derived/class.member.lookup/p7.cpp | 10 +- .../temp.constr.decl/class-template-decl.cpp | 65 + .../dcl.attr/dcl.attr.deprecated/p1.cpp | 37 +- .../CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p4.cpp | 28 + .../dcl.spec/dcl.type/dcl.spec.auto/p3-1y.cpp | 10 +- .../dcl.spec/dcl.type/dcl.spec.auto/p3-1z.cpp | 8 + .../dcl.spec/dcl.type/dcl.spec.auto/p3.cpp | 14 +- .../dcl.spec/dcl.type/dcl.spec.auto/p4.cpp | 2 +- .../dcl.spec/dcl.type/dcl.spec.auto/p5.cpp | 2 +- .../dcl.spec/dcl.type/dcl.spec.auto/p7-1y.cpp | 2 +- .../dcl.spec/dcl.type/dcl.spec.auto/p7.cpp | 35 +- .../dcl.type/dcl.type.class.deduct/p1.cpp | 18 + .../dcl.decl/dcl.init/dcl.init.list/p3.cpp | 45 +- .../dcl.meaning/dcl.fct.default/p4.cpp | 33 + .../llvm/dist/clang/test/CXX/drs/dr10xx.cpp | 24 + .../llvm/dist/clang/test/CXX/drs/dr12xx.cpp | 20 +- .../llvm/dist/clang/test/CXX/drs/dr13xx.cpp | 112 +- .../llvm/dist/clang/test/CXX/drs/dr16xx.cpp | 118 + .../llvm/dist/clang/test/CXX/drs/dr1xx.cpp | 6 +- .../llvm/dist/clang/test/CXX/drs/dr20xx.cpp | 30 + .../llvm/dist/clang/test/CXX/drs/dr21xx.cpp | 24 + .../llvm/dist/clang/test/CXX/drs/dr2xx.cpp | 8 +- .../llvm/dist/clang/test/CXX/drs/dr3xx.cpp | 13 +- .../llvm/dist/clang/test/CXX/drs/dr4xx.cpp | 11 +- .../llvm/dist/clang/test/CXX/drs/dr5xx.cpp | 18 +- .../clang/test/CXX/except/except.spec/p11.cpp | 9 +- .../CXX/expr/expr.post/expr.type.conv/p1.cpp | 10 + .../expr/expr.prim/expr.prim.lambda/p12.cpp | 2 +- .../expr/expr.prim/expr.prim.lambda/p13.cpp | 2 +- .../expr/expr.prim/expr.prim.lambda/p16.cpp | 2 +- .../expr/expr.prim/expr.prim.lambda/p18.cpp | 2 +- .../expr/expr.prim/expr.prim.lambda/p19.cpp | 2 +- .../basic/basic.def.odr/p4/module.cpp | 46 + .../basic/basic.def.odr/p4/module.cppm | 118 + .../basic/basic.def.odr/p4/user.cpp | 25 + .../basic/basic.link/module-declaration.cpp | 55 + .../modules-ts/basic/basic.link/p2/module.cpp | 17 + .../basic/basic.link/p2/module.cppm | 29 + .../modules-ts/basic/basic.link/p2/other.cpp | 16 + .../test/CXX/modules-ts/codegen-basics.cppm | 23 + .../dcl.module/dcl.module.import/p1.cpp | 41 + .../dcl.module/dcl.module.interface/p1.cpp | 27 + .../CXX/modules-ts/dcl.dcl/dcl.module/p5.cpp | 33 + .../over/over.match/over.match.best/p1.cpp | 24 +- .../over.match.class.deduct/p2.cpp | 25 + .../over.match.class.deduct/p3.cpp | 41 + .../test/CXX/special/class.dtor/p10-0x.cpp | 2 +- .../test/CXX/temp/temp.decls/temp.mem/p5.cpp | 13 + .../temp.decls/temp.variadic/sizeofpack.cpp | 2 +- .../test/CXX/temp/temp.deduct.guide/p1.cpp | 108 + .../test/CXX/temp/temp.deduct.guide/p2.cpp | 15 + .../test/CXX/temp/temp.deduct.guide/p3.cpp | 72 + .../temp.deduct/temp.deduct.call/p3-0x.cpp | 53 +- .../temp.deduct/temp.deduct.call/p4.cpp | 9 +- .../dist/clang/test/CXX/temp/temp.res/p3.cpp | 38 + .../test/CXX/temp/temp.res/temp.local/p1.cpp | 57 +- .../cxx1y-variable-template-no-body.cpp | 2 +- .../clang/test/CodeCompletion/auto_type.c | 5 + .../clang/test/CodeCompletion/functions.cpp | 2 +- .../clang/test/CodeCompletion/keywords.cpp | 79 + .../test/CodeCompletion/member-access.cpp | 112 + .../CodeCompletion/ordinary-name-cxx11.cpp | 9 + .../pragma-macro-token-caching.c | 18 + .../test/CodeGen/2006-05-19-SingleEltReturn.c | 11 +- .../dist/clang/test/CodeGen/64bit-swiftcall.c | 27 + .../test/CodeGen/Inputs/debug-info-macro.h | 12 + .../Inputs/pgo-sample-thinlto-summary.prof | 4 + .../CodeGen/Inputs/thinlto-multi-module.ll | 9 + .../llvm/dist/clang/test/CodeGen/PR32874.c | 61 + .../dist/clang/test/CodeGen/aarch64-args.cpp | 67 + .../clang/test/CodeGen/aarch64-neon-2velem.c | 554 +- .../dist/clang/test/CodeGen/aarch64-neon-3v.c | 2 +- .../clang/test/CodeGen/aarch64-neon-across.c | 2 +- .../clang/test/CodeGen/aarch64-neon-extract.c | 2 +- .../CodeGen/aarch64-neon-fcvt-intrinsics.c | 2 +- .../clang/test/CodeGen/aarch64-neon-fma.c | 2 +- .../test/CodeGen/aarch64-neon-intrinsics.c | 1136 ++-- .../test/CodeGen/aarch64-neon-ldst-one.c | 2 +- .../clang/test/CodeGen/aarch64-neon-misc.c | 332 +- .../clang/test/CodeGen/aarch64-neon-perm.c | 2 +- .../test/CodeGen/aarch64-neon-scalar-copy.c | 3 +- .../aarch64-neon-scalar-x-indexed-elem.c | 44 +- .../clang/test/CodeGen/aarch64-neon-shifts.c | 2 +- .../clang/test/CodeGen/aarch64-neon-tbl.c | 2 +- .../test/CodeGen/aarch64-neon-vcombine.c | 2 +- .../test/CodeGen/aarch64-neon-vget-hilo.c | 2 +- .../clang/test/CodeGen/aarch64-neon-vget.c | 2 +- .../dist/clang/test/CodeGen/aarch64-poly128.c | 2 +- .../dist/clang/test/CodeGen/aarch64-poly64.c | 2 +- .../clang/test/CodeGen/aarch64-type-sizes.c | 2 +- .../clang/test/CodeGen/aarch64-varargs-ms.c | 11 + .../CodeGen/address-safety-attr-kasan.cpp | 6 +- .../test/CodeGen/address-safety-attr.cpp | 8 +- .../dist/clang/test/CodeGen/address-space.c | 21 +- .../clang/test/CodeGen/alloc-align-attr.c | 101 + .../llvm/dist/clang/test/CodeGen/alloc-size.c | 2 +- .../llvm/dist/clang/test/CodeGen/altivec-ct.c | 82 + .../llvm/dist/clang/test/CodeGen/altivec.c | 2 +- .../llvm/dist/clang/test/CodeGen/arm-crc32.c | 2 +- .../clang/test/CodeGen/arm-execute-only.c | 78 + .../dist/clang/test/CodeGen/arm-long-calls.c | 4 +- .../test/CodeGen/arm-neon-directed-rounding.c | 2 +- .../dist/clang/test/CodeGen/arm-neon-fma.c | 2 +- .../test/CodeGen/arm-neon-numeric-maxmin.c | 2 +- .../dist/clang/test/CodeGen/arm-neon-shifts.c | 1 + .../dist/clang/test/CodeGen/arm-neon-vcvtX.c | 2 +- .../dist/clang/test/CodeGen/arm-neon-vget.c | 2 +- .../dist/clang/test/CodeGen/arm-no-movt.c | 4 +- .../dist/clang/test/CodeGen/arm-swiftcall.c | 8 + .../dist/clang/test/CodeGen/arm-target-attr.c | 19 + .../clang/test/CodeGen/arm-target-features.c | 34 +- .../CodeGen/arm-thumb-mode-target-feature.c | 33 + .../test/CodeGen/arm-v8.1a-neon-intrinsics.c | 2 +- .../dist/clang/test/CodeGen/arm64-crc32.c | 2 +- .../dist/clang/test/CodeGen/arm64-lanes.c | 4 +- .../dist/clang/test/CodeGen/arm64_vcopy.c | 2 +- .../clang/test/CodeGen/arm64_vdupq_n_f64.c | 2 +- .../llvm/dist/clang/test/CodeGen/arm_acle.c | 393 +- .../clang/test/CodeGen/arm_neon_intrinsics.c | 1087 ++-- .../clang/test/CodeGen/asan-globals-gc.cpp | 18 + .../CodeGen/asan-no-globals-no-comdat.cpp | 11 + .../clang/test/CodeGen/atomic-ops-libcall.c | 8 +- .../dist/clang/test/CodeGen/attr-coldhot.c | 6 +- .../llvm/dist/clang/test/CodeGen/attr-naked.c | 5 +- .../dist/clang/test/CodeGen/attr-target-x86.c | 2 +- .../llvm/dist/clang/test/CodeGen/attributes.c | 10 + .../test/CodeGen/avr-inline-asm-constraints.c | 124 + .../avr-unsupported-inline-asm-constraints.c | 8 + .../test/CodeGen/avr/attributes/interrupt.c | 6 + .../test/CodeGen/avr/attributes/signal.c | 6 + .../avr/target-cpu-defines/atmega328p.c | 7 + .../avr/target-cpu-defines/attiny104.c | 7 + .../CodeGen/avr/target-cpu-defines/common.c | 6 + .../dist/clang/test/CodeGen/avx-builtins.c | 97 +- .../dist/clang/test/CodeGen/avx2-builtins.c | 36 +- .../test/CodeGen/avx512-reduceMinMaxIntrin.c | 10 +- .../clang/test/CodeGen/avx512bw-builtins.c | 56 +- .../clang/test/CodeGen/avx512dq-builtins.c | 105 +- .../clang/test/CodeGen/avx512f-builtins.c | 363 +- .../clang/test/CodeGen/avx512pf-builtins.c | 32 +- .../clang/test/CodeGen/avx512vl-builtins.c | 62 +- .../clang/test/CodeGen/avx512vlbw-builtins.c | 12 +- .../clang/test/CodeGen/avx512vldq-builtins.c | 67 +- .../test/CodeGen/avx512vpopcntdqintrin.c | 38 + .../clang/test/CodeGen/bitscan-builtins.c | 3 + .../bsd/llvm/dist/clang/test/CodeGen/blocks.c | 34 + .../clang/test/CodeGen/builtin-clflushopt.c | 2 +- .../dist/clang/test/CodeGen/builtin-clzero.c | 9 + .../test/CodeGen/builtins-arm-exclusive.c | 5 +- .../dist/clang/test/CodeGen/builtins-arm.c | 2 +- .../dist/clang/test/CodeGen/builtins-arm64.c | 2 +- .../clang/test/CodeGen/builtins-hexagon.c | 12 + .../test/CodeGen/builtins-mips-msa-error.c | 14 +- .../clang/test/CodeGen/builtins-mips-msa.c | 7 + .../clang/test/CodeGen/builtins-ppc-altivec.c | 42 +- .../CodeGen/builtins-ppc-crypto-disabled.c | 6 +- .../clang/test/CodeGen/builtins-ppc-crypto.c | 4 +- .../clang/test/CodeGen/builtins-ppc-error.c | 55 +- .../clang/test/CodeGen/builtins-ppc-htm.c | 2 +- .../test/CodeGen/builtins-ppc-p8vector.c | 6 +- .../test/CodeGen/builtins-ppc-p9vector.c | 4 +- .../test/CodeGen/builtins-ppc-quadword.c | 6 +- .../clang/test/CodeGen/builtins-ppc-vsx.c | 115 +- .../CodeGen/builtins-systemz-vector2-error.c | 61 + .../test/CodeGen/builtins-systemz-vector2.c | 136 + .../CodeGen/builtins-systemz-zvector-error.c | 38 +- .../test/CodeGen/builtins-systemz-zvector.c | 88 + .../CodeGen/builtins-systemz-zvector2-error.c | 153 + .../test/CodeGen/builtins-systemz-zvector2.c | 545 ++ .../dist/clang/test/CodeGen/builtins-wasm.c | 20 +- .../dist/clang/test/CodeGen/builtins-x86.c | 5 +- .../clang/test/CodeGen/captured-statements.c | 7 +- .../clang/test/CodeGen/catch-undef-behavior.c | 23 +- .../dist/clang/test/CodeGen/cfi-check-fail.c | 5 + .../test/CodeGen/cleanup-destslot-simple.c | 8 +- .../test/CodeGen/coff-aarch64-type-sizes.c | 88 + .../test/CodeGen/compound-assign-overflow.c | 4 +- .../CodeGen/debug-info-imported-entity.cpp | 3 +- .../clang/test/CodeGen/debug-info-macro.c | 57 + .../dist/clang/test/CodeGen/debug-info-vla.c | 4 +- .../test/CodeGen/default-address-space.c | 61 + .../dist/clang/test/CodeGen/dependent-lib.c | 8 +- .../bsd/llvm/dist/clang/test/CodeGen/fentry.c | 11 + .../test/CodeGen/ffp-contract-fast-option.cpp | 29 + .../clang/test/CodeGen/ffp-contract-option.c | 6 +- .../test/CodeGen/fp-contract-fast-pragma.cpp | 69 + .../clang/test/CodeGen/fp-contract-on-asm.c | 18 + .../test/CodeGen/fp-contract-on-pragma.cpp | 76 + .../clang/test/CodeGen/function-sections.c | 8 +- .../clang/test/CodeGen/libcall-declarations.c | 15 +- .../llvm/dist/clang/test/CodeGen/libcalls.c | 4 +- .../dist/clang/test/CodeGen/lifetime-asan.c | 8 +- .../llvm/dist/clang/test/CodeGen/lifetime2.c | 52 +- .../dist/clang/test/CodeGen/linker-option.c | 4 +- .../clang/test/CodeGen/lto-newpm-pipeline.c | 53 + .../dist/clang/test/CodeGen/lwp-builtins.c | 39 + .../llvm/dist/clang/test/CodeGen/mangle-ms.c | 9 + .../bsd/llvm/dist/clang/test/CodeGen/mangle.c | 4 + .../bsd/llvm/dist/clang/test/CodeGen/mcount.c | 43 +- .../dist/clang/test/CodeGen/micromips-attr.c | 12 + .../clang/test/CodeGen/mips-aggregate-arg.c | 38 + .../test/CodeGen/mips-debug-info-bitfield.c | 17 + .../llvm/dist/clang/test/CodeGen/mips-madd4.c | 87 + .../dist/clang/test/CodeGen/mips-varargs.c | 67 +- .../dist/clang/test/CodeGen/mmx-builtins.c | 87 + .../test/CodeGen/mozilla-ms-inline-asm.c | 38 +- .../test/CodeGen/ms-barriers-intrinsics.c | 6 +- .../dist/clang/test/CodeGen/ms-declspecs.c | 2 +- .../clang/test/CodeGen/ms-inline-asm-64.c | 20 +- .../clang/test/CodeGen/ms-inline-asm-EVEN.c | 16 + .../clang/test/CodeGen/ms-inline-asm-avx512.c | 15 +- .../dist/clang/test/CodeGen/ms-inline-asm.c | 164 +- .../dist/clang/test/CodeGen/ms-inline-asm.cpp | 65 +- .../clang/test/CodeGen/ms-intrinsics-other.c | 161 + .../test/CodeGen/ms-intrinsics-rotations.c | 330 +- .../dist/clang/test/CodeGen/ms-intrinsics.c | 39 +- .../clang/test/CodeGen/ms-x86-intrinsics.c | 65 +- .../bsd/llvm/dist/clang/test/CodeGen/ms_abi.c | 6 +- .../dist/clang/test/CodeGen/ms_abi_aarch64.c | 68 + .../clang/test/CodeGen/named_reg_global.c | 2 +- .../clang/test/CodeGen/neon-aapcs-align.c | 17 + .../clang/test/CodeGen/neon-immediate-ubsan.c | 2 +- .../dist/clang/test/CodeGen/no-devirt.cpp | 59 + .../test/CodeGen/noduplicate-cxx11-test.cpp | 2 +- .../dist/clang/test/CodeGen/object-size.c | 129 +- .../dist/clang/test/CodeGen/object-size.cpp | 14 +- .../dist/clang/test/CodeGen/opt-record-MIR.c | 33 + .../clang/test/CodeGen/pass-object-size.c | 57 +- .../test/CodeGen/pgo-sample-thinlto-summary.c | 46 + .../llvm/dist/clang/test/CodeGen/piclevels.c | 13 +- .../clang/test/CodeGen/ppc64-align-struct.c | 2 +- .../clang/test/CodeGen/ppc64-complex-parms.c | 2 +- .../dist/clang/test/CodeGen/ppc64-vector.c | 2 +- .../clang/test/CodeGen/ppc64le-aggregates.c | 2 +- .../llvm/dist/clang/test/CodeGen/pr26099.c | 12 + .../bsd/llvm/dist/clang/test/CodeGen/pr3997.c | 13 + .../dist/clang/test/CodeGen/pragma-comment.c | 4 +- .../test/CodeGen/pragma-detect_mismatch.c | 4 +- .../dist/clang/test/CodeGen/pragma-weak.c | 2 +- .../test/CodeGen/sanitize-init-order.cpp | 4 +- .../clang/test/CodeGen/sanitize-recover.c | 27 +- .../sanitize-thread-no-checking-at-run-time.m | 15 +- .../clang/test/CodeGen/sparcv8-inline-asm.c | 11 + .../clang/test/CodeGen/split-debug-filename.c | 5 + .../dist/clang/test/CodeGen/sse-builtins.c | 2 +- .../dist/clang/test/CodeGen/sse2-builtins.c | 11 +- .../dist/clang/test/CodeGen/sse41-builtins.c | 2 +- .../clang/test/CodeGen/systemz-abi-vector.c | 4 + .../dist/clang/test/CodeGen/systemz-abi.c | 4 + .../dist/clang/test/CodeGen/target-data.c | 6 +- .../CodeGen/temporary-lifetime-exceptions.cpp | 12 +- .../clang/test/CodeGen/temporary-lifetime.cpp | 48 +- .../clang/test/CodeGen/thin_link_bitcode.c | 14 + .../test/CodeGen/thinlto-backend-option.ll | 15 + .../clang/test/CodeGen/thinlto-emit-llvm.c | 10 + .../test/CodeGen/thinlto-multi-module.ll | 22 + .../clang/test/CodeGen/thinlto_backend.ll | 10 +- .../clang/test/CodeGen/transparent-union.c | 11 + .../test/CodeGen/ubsan-pointer-overflow.m | 220 + .../test/CodeGen/ubsan-promoted-arith.cpp | 131 + .../dist/clang/test/CodeGen/ubsan-shift.c | 47 + .../dist/clang/test/CodeGen/ubsan-volatile.c | 7 + .../dist/clang/test/CodeGen/unaligned-decl.c | 22 + .../dist/clang/test/CodeGen/unaligned-expr.c | 217 + .../dist/clang/test/CodeGen/unaligned-field.c | 17 + .../dist/clang/test/CodeGen/union-align.c | 4 +- .../dist/clang/test/CodeGen/union-tbaa1.c | 44 + .../clang/test/CodeGen/unsigned-promotion.c | 113 - .../dist/clang/test/CodeGen/unwind-attr.c | 2 +- .../llvm/dist/clang/test/CodeGen/vectorcall.c | 19 +- .../llvm/dist/clang/test/CodeGen/wchar-size.c | 8 + .../dist/clang/test/CodeGen/x86-nontemporal.c | 93 + .../clang/test/CodeGen/x86_64-arguments.c | 4 +- .../dist/clang/test/CodeGen/x86_64-mno-sse.c | 15 + .../clang/test/CodeGen/xop-builtins-cmp.c | 405 ++ .../dist/clang/test/CodeGen/xop-builtins.c | 10 +- .../test/CodeGen/xray-always-instrument.cpp | 15 + .../CodeGen/xray-attributes-supported.cpp | 6 + .../clang/test/CodeGen/xray-customevent.cpp | 28 + .../clang/test/CodeGen/xray-imbue-arg1.cpp | 12 + .../CodeGen/xray-instruction-threshold.cpp | 14 + .../dist/clang/test/CodeGen/xray-log-args.cpp | 13 + .../llvm/dist/clang/test/CodeGen/zvector.c | 4502 ++++++++------ .../llvm/dist/clang/test/CodeGen/zvector2.c | 194 + .../clang/test/CodeGenCUDA/flush-denormals.cu | 4 +- .../clang/test/CodeGenCUDA/fp-contract.cu | 4 +- .../test/CodeGenCUDA/propagate-metadata.cu | 62 + .../CodeGenCXX/amdgcn-automatic-variable.cpp | 105 + .../apple-kext-indirect-virtual-dtor-call.cpp | 2 +- .../apple-kext-no-staticinit-section.cpp | 2 +- .../CodeGenCXX/array-default-argument.cpp | 36 + .../test/CodeGenCXX/atomic-dllexport.cpp | 9 + .../attr-x86-no_caller_saved_registers.cpp | 31 + .../test/CodeGenCXX/captured-statements.cpp | 17 +- .../clang/test/CodeGenCXX/cfi-ms-rtti.cpp | 4 +- .../CodeGenCXX/clang-sections-tentative.c | 41 + .../clang/test/CodeGenCXX/clang-sections.cpp | 78 + .../clang/test/CodeGenCXX/constructors.cpp | 56 +- .../cxx0x-initializer-stdinitializerlist.cpp | 143 +- .../cxx11-initializer-aggregate.cpp | 15 +- .../test/CodeGenCXX/cxx1z-class-deduction.cpp | 21 + .../CodeGenCXX/debug-info-anon-namespace.cpp | 4 +- .../CodeGenCXX/debug-info-class-optzns.cpp | 26 + .../debug-info-global-ctor-dtor.cpp | 4 +- .../debug-info-inheriting-constructor.cpp | 25 + .../CodeGenCXX/debug-info-ms-dtor-thunks.cpp | 14 + .../test/CodeGenCXX/debug-info-namespace.cpp | 36 +- .../debug-info-template-deduction-guide.cpp | 17 + .../CodeGenCXX/debug-info-use-after-free.cpp | 3 + .../dist/clang/test/CodeGenCXX/debug-info.cpp | 2 +- .../clang/test/CodeGenCXX/destructors.cpp | 14 +- ...irtualize-virtual-function-calls-final.cpp | 50 + .../test/CodeGenCXX/dllexport-dtor-thunks.cpp | 10 + .../dist/clang/test/CodeGenCXX/dllexport.cpp | 6 +- .../CodeGenCXX/dllimport-memptr-global.cpp | 58 + .../dist/clang/test/CodeGenCXX/dllimport.cpp | 29 +- .../test/CodeGenCXX/dynamic-cast-hint.cpp | 6 +- .../test/CodeGenCXX/exceptions-cxx-new.cpp | 4 +- .../clang/test/CodeGenCXX/exceptions-seh.cpp | 6 +- .../CodeGenCXX/explicit-instantiation.cpp | 17 + .../test/CodeGenCXX/float128-declarations.cpp | 4 + .../clang/test/CodeGenCXX/global-init.cpp | 2 +- .../CodeGenCXX/implicit-exception-spec.cpp | 22 + .../CodeGenCXX/inheriting-constructor.cpp | 16 +- .../initializer-list-ctor-order.cpp | 29 + .../CodeGenCXX/invariant.group-for-vptrs.cpp | 23 +- .../test/CodeGenCXX/linetable-cleanup.cpp | 4 +- .../CodeGenCXX/linetable-virtual-variadic.cpp | 6 +- .../clang/test/CodeGenCXX/lpad-linetable.cpp | 2 +- .../dist/clang/test/CodeGenCXX/mangle-ms.cpp | 7 + .../clang/test/CodeGenCXX/mangle-unnamed.cpp | 4 +- .../dist/clang/test/CodeGenCXX/mangle.cpp | 12 + .../CodeGenCXX/microsoft-abi-dynamic-cast.cpp | 2 +- .../CodeGenCXX/microsoft-abi-eh-cleanups.cpp | 6 +- .../microsoft-abi-sret-and-byval.cpp | 10 + .../CodeGenCXX/microsoft-abi-structors.cpp | 10 +- .../test/CodeGenCXX/microsoft-abi-throw.cpp | 2 +- .../microsoft-abi-virtual-inheritance.cpp | 6 +- .../test/CodeGenCXX/ms-inline-asm-fields.cpp | 4 +- .../clang/test/CodeGenCXX/ms-thread_local.cpp | 4 +- .../clang/test/CodeGenCXX/msabi-blocks.cpp | 113 + .../clang/test/CodeGenCXX/new-array-init.cpp | 7 + .../clang/test/CodeGenCXX/no-lto-unit.cpp | 13 + .../llvm/dist/clang/test/CodeGenCXX/nrvo.cpp | 4 +- .../test/CodeGenCXX/optnone-class-members.cpp | 2 +- .../test/CodeGenCXX/optnone-def-decl.cpp | 2 +- .../test/CodeGenCXX/optnone-templates.cpp | 2 +- .../dist/clang/test/CodeGenCXX/pr33080.cpp | 33 + .../clang/test/CodeGenCXX/reference-init.cpp | 13 +- .../dist/clang/test/CodeGenCXX/regcall.cpp | 4 +- .../test/CodeGenCXX/static-init-wasm.cpp | 8 +- .../clang/test/CodeGenCXX/static-init.cpp | 8 +- .../dist/clang/test/CodeGenCXX/std-byte.cpp | 41 + .../dist/clang/test/CodeGenCXX/stmtexpr.cpp | 112 +- .../CodeGenCXX/strict-vtable-pointers.cpp | 117 +- .../CodeGenCXX/template-instantiation.cpp | 33 +- .../dist/clang/test/CodeGenCXX/thunks.cpp | 2 +- .../test/CodeGenCXX/type-metadata-thinlto.cpp | 11 + .../clang/test/CodeGenCXX/type-metadata.cpp | 16 +- .../clang/test/CodeGenCXX/ubsan-bitfields.cpp | 34 + .../CodeGenCXX/ubsan-global-alignment.cpp | 29 + .../CodeGenCXX/ubsan-nullability-assign.cpp | 35 + .../test/CodeGenCXX/ubsan-suppress-checks.cpp | 232 + .../test/CodeGenCXX/ubsan-type-checks.cpp | 36 + .../CodeGenCXX/unaligned-member-qualifier.cpp | 20 + .../dist/clang/test/CodeGenCXX/unaligned.cpp | 6 + .../clang/test/CodeGenCXX/union-tbaa2.cpp | 45 + .../llvm/dist/clang/test/CodeGenCXX/vla.cpp | 59 +- .../dist/clang/test/CodeGenCXX/volatile-1.cpp | 34 +- .../dist/clang/test/CodeGenCXX/volatile.cpp | 4 +- .../vtable-available-externally.cpp | 33 +- .../clang/test/CodeGenCXX/vtable-linkage.cpp | 6 +- .../CodeGenCXX/windows-itanium-dllexport.cpp | 25 + .../CodeGenCXX/windows-itanium-type-info.cpp | 10 +- .../test/CodeGenCoroutines/Inputs/coroutine.h | 80 + .../test/CodeGenCoroutines/coro-alloc.cpp | 117 +- .../coro-await-domination.cpp | 38 + .../test/CodeGenCoroutines/coro-await.cpp | 328 + .../test/CodeGenCoroutines/coro-builtins.c | 22 +- .../test/CodeGenCoroutines/coro-cleanup.cpp | 97 + .../CodeGenCoroutines/coro-eh-cleanup.cpp | 86 + .../clang/test/CodeGenCoroutines/coro-gro.cpp | 86 + .../test/CodeGenCoroutines/coro-lambda.cpp | 58 + .../test/CodeGenCoroutines/coro-params.cpp | 129 + .../CodeGenCoroutines/coro-promise-dtor.cpp | 47 + .../test/CodeGenCoroutines/coro-ret-void.cpp | 39 + .../test/CodeGenCoroutines/coro-return.cpp | 59 + .../coro-unhandled-exception.cpp | 72 + .../dist/clang/test/CodeGenObjC/arc-blocks.m | 103 +- .../dist/clang/test/CodeGenObjC/arc-foreach.m | 31 +- .../CodeGenObjC/arc-linetable-autorelease.m | 5 +- .../test/CodeGenObjC/arc-precise-lifetime.m | 68 +- .../clang/test/CodeGenObjC/arc-property.m | 20 + .../clang/test/CodeGenObjC/arc-ternary-op.m | 12 +- .../llvm/dist/clang/test/CodeGenObjC/arc.m | 126 +- .../clang/test/CodeGenObjC/attr-callconv.m | 2 +- .../CodeGenObjC/availability-cf-link-guard.m | 44 + .../test/CodeGenObjC/availability-check.m | 31 + .../CodeGenObjC/empty-collection-literals.m | 51 + .../CodeGenObjC/exceptions-asm-attribute.m | 10 +- .../dist/clang/test/CodeGenObjC/exceptions.m | 4 +- .../clang/test/CodeGenObjC/gnu-exceptions.m | 2 +- .../dist/clang/test/CodeGenObjC/image-info.m | 4 +- .../test/CodeGenObjC/ivar-type-encoding.m | 51 + .../test/CodeGenObjC/metadata-symbols-64.m | 16 +- .../clang/test/CodeGenObjC/metadata_symbols.m | 10 +- .../clang/test/CodeGenObjC/non-lazy-classes.m | 6 +- .../clang/test/CodeGenObjC/objc_copyStruct.m | 16 + .../test/CodeGenObjC/parameterized_classes.m | 56 + .../clang/test/CodeGenObjC/protocol-comdat.m | 8 + .../dist/clang/test/CodeGenObjC/sections.m | 72 + .../dist/clang/test/CodeGenObjC/stret-1.m | 11 +- .../clang/test/CodeGenObjC/stret-lifetime.m | 34 + .../dist/clang/test/CodeGenObjC/ubsan-bool.m | 57 +- .../ubsan-nonnull-and-nullability.m | 61 + .../clang/test/CodeGenObjC/ubsan-nonnull.m | 48 + .../test/CodeGenObjC/ubsan-nullability.m | 192 + .../clang/test/CodeGenObjCXX/arc-attrs-abi.mm | 38 + .../clang/test/CodeGenObjCXX/arc-blocks.mm | 2 +- .../clang/test/CodeGenObjCXX/arc-indirect.mm | 22 + .../clang/test/CodeGenObjCXX/arc-mangle.mm | 10 + .../dist/clang/test/CodeGenObjCXX/arc-move.mm | 8 +- .../test/CodeGenObjCXX/arc-references.mm | 10 +- .../llvm/dist/clang/test/CodeGenObjCXX/arc.mm | 6 +- .../dist/clang/test/CodeGenObjCXX/boxing.mm | 12 + .../dist/clang/test/CodeGenObjCXX/encode.mm | 2 +- .../test/CodeGenObjCXX/lambda-expressions.mm | 13 + .../test/CodeGenObjCXX/lambda-to-block.mm | 18 + .../dist/clang/test/CodeGenObjCXX/literals.mm | 10 +- .../clang/test/CodeGenObjCXX/objc-weak.mm | 69 + .../test/CodeGenObjCXX/objfw-exceptions.mm | 17 + .../CodeGenOpenCL/addr-space-struct-arg.cl | 52 +- .../address-space-constant-initializers.cl | 2 + .../test/CodeGenOpenCL/address-spaces.cl | 31 +- .../amdgcn-automatic-variable.cl | 60 + .../CodeGenOpenCL/amdgcn-large-globals.cl | 12 + .../CodeGenOpenCL/amdgpu-abi-struct-coerce.cl | 1 + .../test/CodeGenOpenCL/amdgpu-alignment.cl | 523 ++ .../clang/test/CodeGenOpenCL/amdgpu-attrs.cl | 52 +- ...amdgpu-debug-info-pointer-address-space.cl | 126 + .../amdgpu-debug-info-variable-expression.cl | 131 + .../test/CodeGenOpenCL/amdgpu-env-amdgiz.cl | 9 + .../test/CodeGenOpenCL/amdgpu-nullptr.cl | 223 +- .../CodeGenOpenCL/amdgpu-sizeof-alignof.cl | 70 + .../dist/clang/test/CodeGenOpenCL/blocks.cl | 17 + .../clang/test/CodeGenOpenCL/bool_cast.cl | 4 +- .../CodeGenOpenCL/builtins-amdgcn-gfx9.cl | 11 + .../test/CodeGenOpenCL/builtins-amdgcn-vi.cl | 8 + .../test/CodeGenOpenCL/builtins-amdgcn.cl | 103 + .../dist/clang/test/CodeGenOpenCL/byval.cl | 19 + .../CodeGenOpenCL/cl20-device-side-enqueue.cl | 58 +- .../constant-addr-space-globals.cl | 8 +- .../test/CodeGenOpenCL/denorms-are-zero.cl | 10 +- .../test/CodeGenOpenCL/gfx9-fp32-denorms.cl | 13 + .../dist/clang/test/CodeGenOpenCL/half.cl | 17 + .../test/CodeGenOpenCL/kernel-arg-info.cl | 36 +- .../test/CodeGenOpenCL/kernel-attributes.cl | 8 +- .../test/CodeGenOpenCL/kernel-metadata.cl | 2 +- .../kernels-have-spir-cc-by-default.cl | 65 + .../dist/clang/test/CodeGenOpenCL/lifetime.cl | 15 + .../dist/clang/test/CodeGenOpenCL/overload.cl | 46 + .../clang/test/CodeGenOpenCL/pipe_types.cl | 2 +- .../clang/test/CodeGenOpenCL/preserve_vec3.cl | 24 + .../clang/test/CodeGenOpenCL/ptx-calls.cl | 2 +- .../clang/test/CodeGenOpenCL/ptx-kernels.cl | 2 +- .../test/CodeGenOpenCL/relaxed-fpmath.cl | 29 +- .../dist/clang/test/CodeGenOpenCL/sampler.cl | 4 + .../dist/clang/test/CodeGenOpenCL/size_t.cl | 3 +- .../clang/test/CodeGenOpenCL/spir_version.cl | 17 +- .../llvm/dist/clang/test/CodeGenOpenCL/vla.cl | 12 +- .../dist/clang/test/Coverage/ast-printing.c | 1 + .../dist/clang/test/Coverage/ast-printing.cpp | 1 + .../test/CoverageMapping/empty-destructor.cpp | 11 + .../CoverageMapping/implicit-def-in-macro.m | 2 +- .../CoverageMapping/macro-expressions.cpp | 2 +- .../dist/clang/test/CoverageMapping/objc.m | 2 +- .../clang/test/CoverageMapping/pr32679.cpp | 32 + .../clang/test/CoverageMapping/unused_names.c | 13 +- .../baremetal_arm/include/c++/5.0.0/.keep | 0 .../baremetal_arm/include/c++/6.0.0/.keep | 0 .../Inputs/baremetal_arm/include/c++/v1/.keep | 0 .../lib/linux/aarch64/.keep | 0 .../lib/linux/arm/.keep | 0 .../lib/linux/i386/.keep | 0 .../lib/linux/x86_64/.keep | 0 .../test/Driver/XRay/xray-instrument-cpu.c | 2 +- .../dist/clang/test/Driver/aarch64-cpus.c | 52 +- .../dist/clang/test/Driver/amdgpu-features.c | 4 +- .../bsd/llvm/dist/clang/test/Driver/ananas.c | 9 + .../test/Driver/android-ndk-standalone.cpp | 14 + .../test/Driver/arch-specific-libdir-rpath.c | 85 + .../clang/test/Driver/arch-specific-libdir.c | 53 + .../bsd/llvm/dist/clang/test/Driver/arm-abi.c | 4 + .../dist/clang/test/Driver/arm-cortex-cpus.c | 18 +- .../Driver/arm-default-build-attributes.s | 20 + .../dist/clang/test/Driver/arm-execute-only.c | 76 +- .../clang/test/Driver/arm-no-neg-immediates.c | 8 + .../dist/clang/test/Driver/autocomplete.c | 91 + .../llvm/dist/clang/test/Driver/avr-mmcu.c | 5 + .../llvm/dist/clang/test/Driver/baremetal.cpp | 77 + .../llvm/dist/clang/test/Driver/cl-cc-flags.c | 33 + .../dist/clang/test/Driver/cl-diagnostics.c | 28 + .../llvm/dist/clang/test/Driver/cl-include.c | 14 + .../dist/clang/test/Driver/cl-link-at-file.c | 1 - .../bsd/llvm/dist/clang/test/Driver/cl-link.c | 11 +- .../llvm/dist/clang/test/Driver/cl-options.c | 21 + .../llvm/dist/clang/test/Driver/cl-outputs.c | 4 +- .../bsd/llvm/dist/clang/test/Driver/cl-zc.cpp | 5 + .../dist/clang/test/Driver/clang_f_opts.c | 30 +- .../dist/clang/test/Driver/compress-noias.c | 37 + .../llvm/dist/clang/test/Driver/compress.c | 38 +- .../dist/clang/test/Driver/constructors.c | 8 + .../test/Driver/crash-report-crashfile.m | 33 +- .../clang/test/Driver/crash-report-spaces.c | 19 + .../clang/test/Driver/cuda-external-tools.cu | 4 +- .../test/Driver/cuda-no-stack-protector.cu | 23 + .../test/Driver/darwin-iphone-defaults.m | 2 +- .../clang/test/Driver/darwin-ld-pthread.c | 4 + .../test/Driver/darwin-sdk-vs-os-version.c | 10 + .../test/Driver/darwin-simulator-macro.c | 12 + .../dist/clang/test/Driver/darwin-version.c | 51 + .../dist/clang/test/Driver/debug-options.c | 35 +- .../dist/clang/test/Driver/embed-bitcode.c | 11 +- .../dist/clang/test/Driver/emulated-tls.cpp | 4 +- .../llvm/dist/clang/test/Driver/fast-math.c | 21 +- .../bsd/llvm/dist/clang/test/Driver/fopenmp.c | 16 +- .../clang/test/Driver/frame-pointer-elim.c | 4 +- .../dist/clang/test/Driver/frame-pointer.c | 7 + .../clang/test/Driver/fsanitize-coverage.c | 55 +- .../clang/test/Driver/fsanitize-object-size.c | 31 + .../llvm/dist/clang/test/Driver/fsanitize.c | 91 +- .../bsd/llvm/dist/clang/test/Driver/fuchsia.c | 8 +- .../llvm/dist/clang/test/Driver/fuchsia.cpp | 6 +- .../bsd/llvm/dist/clang/test/Driver/fuzzer.c | 28 + .../llvm/dist/clang/test/Driver/gfortran.f90 | 2 - .../llvm/dist/clang/test/Driver/gold-lto.c | 2 +- .../clang/test/Driver/hexagon-toolchain-elf.c | 24 + .../clang/test/Driver/immediate-options.c | 5 + .../test/Driver/include-default-header.cl | 6 + .../llvm/dist/clang/test/Driver/linux-as.c | 27 + .../llvm/dist/clang/test/Driver/linux-ld.c | 48 + .../llvm/dist/clang/test/Driver/lto-unit.c | 9 + .../llvm/dist/clang/test/Driver/m_and_mm.c | 12 + .../dist/clang/test/Driver/mglobal-merge.c | 4 +- .../bsd/llvm/dist/clang/test/Driver/mingw.cpp | 12 - .../bsd/llvm/dist/clang/test/Driver/mips-as.c | 79 +- .../dist/clang/test/Driver/mips-features.c | 23 + .../dist/clang/test/Driver/modules-ts.cpp | 14 +- .../llvm/dist/clang/test/Driver/msc-version.c | 2 +- .../dist/clang/test/Driver/myriad-toolchain.c | 4 +- .../llvm/dist/clang/test/Driver/nacl-direct.c | 2 +- .../llvm/dist/clang/test/Driver/nios2-cpu.c | 26 + .../test/Driver/no-arc-exception-silence.m | 2 + .../dist/clang/test/Driver/nozlibcompress.c | 9 +- .../bsd/llvm/dist/clang/test/Driver/openbsd.c | 34 + .../dist/clang/test/Driver/openmp-offload.c | 72 +- .../bsd/llvm/dist/clang/test/Driver/pic.c | 7 + .../dist/clang/test/Driver/ppc-features.cpp | 55 +- .../llvm/dist/clang/test/Driver/r600-mcpu.cl | 4 + .../llvm/dist/clang/test/Driver/reloc-model.c | 4 + .../dist/clang/test/Driver/response-file.c | 9 +- .../dist/clang/test/Driver/sanitizer-ld.c | 11 + .../llvm/dist/clang/test/Driver/split-debug.c | 23 +- .../llvm/dist/clang/test/Driver/split-debug.h | 9 - .../bsd/llvm/dist/clang/test/Driver/std.cpp | 10 + .../dist/clang/test/Driver/systemz-march.c | 4 + .../Driver/unavailable_aligned_allocation.cpp | 54 + .../llvm/dist/clang/test/Driver/unknown-arg.c | 4 +- .../llvm/dist/clang/test/Driver/unknown-std.S | 2 + .../llvm/dist/clang/test/Driver/unknown-std.c | 20 + .../dist/clang/test/Driver/unknown-std.cl | 16 + .../dist/clang/test/Driver/unknown-std.cpp | 24 + .../clang/test/Driver/unsupported-faltivec.c | 10 + .../dist/clang/test/Driver/wasm-toolchain.c | 6 +- .../dist/clang/test/Driver/windows-cross.c | 24 +- .../clang/test/Driver/x86-target-features.c | 35 + .../FixIt/fixit-add-synthesize-to-property.m | 14 + .../clang/test/FixIt/fixit-availability.c | 10 + .../clang/test/FixIt/fixit-availability.mm | 111 + .../clang/test/FixIt/fixit-format-darwin.m | 86 + .../clang/test/FixIt/fixit-pragma-attribute.c | 6 + .../test/FixIt/fixit-pragma-attribute.cpp | 83 + .../bsd/llvm/dist/clang/test/FixIt/fixit.c | 3 +- .../bsd/llvm/dist/clang/test/FixIt/fixit.cpp | 11 + .../dist/clang/test/FixIt/format-darwin.m | 23 +- .../bsd/llvm/dist/clang/test/FixIt/format.m | 13 + .../llvm/dist/clang/test/FixIt/no-fixit.cpp | 12 + .../dist/clang/test/Format/incomplete.cpp | 2 +- .../llvm/dist/clang/test/Format/inplace.cpp | 264 + .../test/Format/style-on-command-line.cpp | 23 +- .../line-directive-in-system.h | 2 + .../Inputs/SystemHeaderPrefix/noline.h | 1 + .../dist/clang/test/Frontend/Inputs/empty.h | 0 .../test/Frontend/Inputs/line-directive.h | 2 + ...zation-remark-with-hotness-sample.proftext | 7 + .../clang/test/Frontend/aarch64-target-cpu.c | 2 +- .../dist/clang/test/Frontend/gnu-inline.c | 4 +- .../dist/clang/test/Frontend/gnu-mcount.c | 20 +- .../dist/clang/test/Frontend/iframework.c | 1 + .../clang/test/Frontend/objc-bool-is-bool.m | 6 +- .../optimization-remark-with-hotness.c | 36 +- .../clang/test/Frontend/optimization-remark.c | 6 +- .../Frontend/pp-only-no-editor-placeholders.c | 4 + .../clang/test/Frontend/preprocessed-input.i | 10 + .../Frontend/rewrite-includes-filenotfound.c | 6 + .../Frontend/rewrite-includes-line-markers.c | 8 + .../test/Frontend/rewrite-includes-modules.c | 27 +- .../Frontend/system-header-line-directive.c | 23 + .../test/Headers/Inputs/usr/include/math.h | 1 + .../test/Headers/Inputs/usr/include/tgmath.h | 4 + .../dist/clang/test/Headers/altivec-header.c | 8 +- .../dist/clang/test/Headers/altivec-intrin.c | 2 +- .../llvm/dist/clang/test/Headers/htm-header.c | 19 + .../dist/clang/test/Headers/ms-cppoperkey.cpp | 16 + .../clang/test/Headers/ms-cppoperkey1.cpp | 27 + .../clang/test/Headers/ms-cppoperkey2.cpp | 11 + .../clang/test/Headers/opencl-c-header.cl | 43 +- .../clang/test/Headers/stdarg-gnuc_va_list.c | 10 + .../llvm/dist/clang/test/Headers/stdatomic.c | 1 + .../test/Headers/stdint-typeof-MINMAX.cpp | 32 + .../dist/clang/test/Headers/tgmath-darwin.c | 12 + .../Import/conflicting-struct/Inputs/S1.cpp | 6 + .../Import/conflicting-struct/Inputs/S2.cpp | 7 + .../test/Import/conflicting-struct/test.cpp | 7 + .../dist/clang/test/Import/direct/Inputs/S.c | 3 + .../llvm/dist/clang/test/Import/direct/test.c | 5 + .../dist/clang/test/Import/enum/Inputs/S.cpp | 4 + .../llvm/dist/clang/test/Import/enum/test.cpp | 4 + .../forward-declared-struct/Inputs/S1.c | 1 + .../forward-declared-struct/Inputs/S2.c | 3 + .../Import/forward-declared-struct/test.c | 5 + .../import-overrides/Inputs/Hierarchy.cpp | 9 + .../test/Import/import-overrides/test.cpp | 7 + .../Import/in-class-initializer/Inputs/S.cpp | 3 + .../test/Import/in-class-initializer/test.cpp | 5 + .../indirect-struct-member-access/Inputs/S.c | 3 + .../indirect-struct-member-access/test.c | 4 + .../test/Import/member-in-struct/Inputs/S.c | 3 + .../clang/test/Import/member-in-struct/test.c | 5 + .../multiple-forward-declarations/Inputs/S1.c | 1 + .../multiple-forward-declarations/Inputs/S2.c | 1 + .../multiple-forward-declarations/test.c | 4 + .../Import/overloaded-function/Inputs/F1.c | 1 + .../Import/overloaded-function/Inputs/F2.c | 4 + .../test/Import/overloaded-function/test.c | 7 + .../Import/struct-in-namespace/Inputs/N1.cpp | 11 + .../Import/struct-in-namespace/Inputs/N2.cpp | 5 + .../Import/struct-in-namespace/Inputs/N3.cpp | 5 + .../test/Import/struct-in-namespace/test.cpp | 7 + .../template-specialization/Inputs/T.cpp | 14 + .../Import/template-specialization/test.cpp | 7 + .../test/Index/Core/Inputs/sys/system-head.h | 36 + .../Index/Core/external-source-symbol-attr.m | 104 + .../Index/Core/index-dependent-source.cpp | 160 + .../Index/Core/index-instantiated-source.cpp | 88 + .../dist/clang/test/Index/Core/index-pch.c | 13 + .../Index/Core/index-source-invalid-name.cpp | 13 + .../clang/test/Index/Core/index-source.cpp | 473 +- .../dist/clang/test/Index/Core/index-source.m | 345 +- .../clang/test/Index/Core/index-subkinds.m | 6 +- .../clang/test/Index/Core/index-system.mm | 3 + .../clang/test/Index/Core/index-with-module.m | 8 +- .../Core/no-templated-canonical-decl.cpp | 4 + .../dist/clang/test/Index/Inputs/empty.dia | 0 .../test/Index/KeepGoingWithLotsOfErrors.mm | 29 + .../test/Index/allow-editor-placeholders.cpp | 5 + .../Index/annotate-nested-name-specifier.cpp | 40 +- .../llvm/dist/clang/test/Index/availability.c | 18 +- .../dist/clang/test/Index/code-completion.cpp | 4 +- .../clang/test/Index/comment-cplus-decls.cpp | 16 +- .../clang/test/Index/complete-available.m | 20 + .../test/Index/complete-block-properties.m | 10 +- .../test/Index/complete-cached-globals.cpp | 25 + .../clang/test/Index/complete-objc-message.m | 51 + .../test/Index/complete-optional-params.cpp | 36 +- .../dist/clang/test/Index/complete-preamble.h | 5 + .../test/Index/crash-recovery-code-complete.c | 1 + .../clang/test/Index/crash-recovery-modules.m | 3 +- .../clang/test/Index/crash-recovery-reparse.c | 1 + .../dist/clang/test/Index/crash-recovery.c | 1 + .../clang/test/Index/ctor-init-source-loc.cpp | 117 + .../clang/test/Index/cursor-dynamic-call.mm | 12 +- .../llvm/dist/clang/test/Index/file-refs.cpp | 4 +- .../llvm/dist/clang/test/Index/get-cursor.cpp | 17 +- .../llvm/dist/clang/test/Index/get-cursor.m | 44 + .../llvm/dist/clang/test/Index/index-attrs.c | 10 +- .../dist/clang/test/Index/index-attrs.cpp | 14 +- .../llvm/dist/clang/test/Index/index-decls.m | 2 +- .../llvm/dist/clang/test/Index/index-module.m | 3 +- .../llvm/dist/clang/test/Index/index-refs.cpp | 1 + .../llvm/dist/clang/test/Index/keep-going.cpp | 4 +- .../bsd/llvm/dist/clang/test/Index/linkage.c | 2 +- .../dist/clang/test/Index/opencl-types.cl | 126 + .../Index/overriding-ftemplate-comments.cpp | 2 +- .../test/Index/overriding-method-comments.mm | 2 +- .../dist/clang/test/Index/pch-from-libclang.c | 27 + .../llvm/dist/clang/test/Index/pipe-size.cl | 16 + .../test/Index/print-type-declaration.cpp | 7 + .../llvm/dist/clang/test/Index/print-type.cpp | 145 +- .../clang/test/Index/read-empty-diags.test | 2 + .../test/Index/recursive-cxx-member-calls.cpp | 4 +- .../dist/clang/test/Index/single-file-parse.m | 121 + .../llvm/dist/clang/test/Index/target-info.c | 6 + .../bsd/llvm/dist/clang/test/Index/usrs.cpp | 11 + .../bsd/llvm/dist/clang/test/Index/usrs.m | 2 +- .../llvm/dist/clang/test/Integration/carbon.c | 1 + .../dist/clang/test/Integration/cocoa-pch.m | 1 + .../llvm/dist/clang/test/Integration/cocoa.m | 1 + .../clang/test/Layout/ms-x86-basic-layout.cpp | 4 +- .../clang/test/Lexer/asm-preproc-no-unicode.s | 8 + .../Lexer/case-insensitive-include-pr31836.sh | 9 + .../dist/clang/test/Lexer/cxx-features.cpp | 14 +- .../dist/clang/test/Lexer/cxx1z-trigraphs.cpp | 7 +- .../llvm/dist/clang/test/Lexer/newline-nul.c | Bin 0 -> 332 bytes .../bsd/llvm/dist/clang/test/Lexer/preamble.c | 11 +- .../llvm/dist/clang/test/Lexer/preamble2.c | 19 + .../clang/test/Misc/Inputs/module.modulemap | 1 + .../dist/clang/test/Misc/ast-dump-attr.cpp | 47 + .../llvm/dist/clang/test/Misc/ast-dump-decl.c | 24 +- .../dist/clang/test/Misc/ast-dump-decl.cpp | 15 +- .../llvm/dist/clang/test/Misc/ast-dump-decl.m | 4 +- .../clang/test/Misc/ast-dump-templates.cpp | 10 +- .../clang/test/Misc/ast-print-objectivec.m | 15 +- .../test/Misc/ast-print-out-of-line-func.cpp | 95 + .../Misc/backend-stack-frame-diagnostics.cpp | 2 +- .../clang/test/Misc/caret-diags-multiline.cpp | 239 + .../dist/clang/test/Misc/cc1as-compress.s | 8 + .../llvm/dist/clang/test/Misc/diag-mapping2.c | 1 + .../clang/test/Misc/diag-template-diffing.cpp | 8 +- .../dist/clang/test/Misc/find-diagnostic-id.c | 5 + .../bsd/llvm/dist/clang/test/Misc/pr32207.c | 4 + ...agma-attribute-cxx-subject-match-rules.cpp | 169 + .../clang/test/Misc/pragma-attribute-cxx.cpp | 106 + ...ragma-attribute-objc-subject-match-rules.m | 113 + .../clang/test/Misc/pragma-attribute-objc.m | 164 + .../Misc/pragma-attribute-strict-subjects.c | 222 + ...a-attribute-supported-attributes-list.test | 67 + .../llvm/dist/clang/test/Misc/warning-flags.c | 4 +- .../clang/test/Modules/DebugInfoNamespace.cpp | 19 + .../test/Modules/DebugInfoSubmoduleImport.c | 5 + .../test/Modules/DebugInfoTransitiveImport.m | 4 +- .../dist/clang/test/Modules/ExtDebugInfo.cpp | 8 +- .../Modules/Inputs/DebugInfoNamespace/A.h | 3 + .../Modules/Inputs/DebugInfoNamespace/B.h | 3 + .../DebugInfoNamespace/module.modulemap | 8 + .../test/Modules/Inputs/DebugObjCImport.h | 2 + .../Headers/coroutines.h | 3 + .../Headers/not_coroutines.h | 3 + .../DependsOnModule.framework/module.map | 9 +- .../Modules/Inputs/F.framework/Headers/F.h | 1 + .../F.framework/Modules/module.modulemap | 7 + .../Modules/module.private.modulemap | 7 + .../Inputs/F.framework/PrivateHeaders/NS.h | 19 + .../Frameworks/Sub.framework/Headers/B.h | 1 + .../Frameworks/Sub.framework/Headers/Sub.h | 2 + .../Sub.framework/PrivateHeaders/BPriv.h | 1 + .../Sub.framework/PrivateHeaders/SubPriv.h | 1 + .../Modules/Inputs/Main.framework/Headers/A.h | 1 + .../Inputs/Main.framework/Headers/Main.h | 2 + .../Main.framework/Modules/module.modulemap | 12 + .../Modules/module.private.modulemap | 11 + .../Main.framework/PrivateHeaders/APriv.h | 1 + .../Main.framework/PrivateHeaders/MainPriv.h | 1 + .../Frameworks/Sub.framework/Headers/B.h | 1 + .../Frameworks/Sub.framework/Headers/Sub.h | 2 + .../Sub.framework/PrivateHeaders/BPriv.h | 1 + .../Sub.framework/PrivateHeaders/SubPriv.h | 1 + .../Inputs/MainA.framework/Headers/A.h | 1 + .../Inputs/MainA.framework/Headers/Main.h | 2 + .../MainA.framework/Modules/module.modulemap | 12 + .../Modules/module.private.modulemap | 12 + .../MainA.framework/PrivateHeaders/APriv.h | 1 + .../MainA.framework/PrivateHeaders/MainPriv.h | 1 + .../clang/test/Modules/Inputs/SameHeader/A.h | 3 + .../clang/test/Modules/Inputs/SameHeader/B.h | 4 + .../clang/test/Modules/Inputs/SameHeader/C.h | 12 + .../Inputs/SameHeader/module.modulemap | 11 + .../clang/test/Modules/Inputs/anon-redecl/a.h | 2 + .../clang/test/Modules/Inputs/anon-redecl/b.h | 2 + .../test/Modules/Inputs/anon-redecl/c1.h | 2 + .../test/Modules/Inputs/anon-redecl/c2.h | 2 + .../Inputs/anon-redecl/module.modulemap | 6 + .../test/Modules/Inputs/category_right_sub.h | 5 + .../check-for-sanitizer-feature/check.h | 5 + .../Inputs/check-for-sanitizer-feature/map | 3 + .../test/Modules/Inputs/codegen-flags/foo.h | 4 + .../Inputs/codegen-flags/foo.modulemap | 1 + .../test/Modules/Inputs/codegen-flags/use.cpp | 5 + .../test/Modules/Inputs/codegen-nodep/foo.h | 11 + .../Inputs/codegen-nodep/foo.modulemap | 1 + .../test/Modules/Inputs/codegen-opt/bar.h | 2 + .../Modules/Inputs/codegen-opt/bar.modulemap | 1 + .../test/Modules/Inputs/codegen-opt/foo.h | 10 + .../Modules/Inputs/codegen-opt/foo.modulemap | 1 + .../test/Modules/Inputs/codegen-opt/use.cpp | 2 + .../clang/test/Modules/Inputs/codegen/foo.h | 32 + .../test/Modules/Inputs/codegen/foo.modulemap | 1 + .../clang/test/Modules/Inputs/codegen/use.cpp | 8 + .../crash-typo-correction-visibility/module.h | 1 + .../module.modulemap | 3 + .../clang/test/Modules/Inputs/cxx17/decls.h | 3 + .../Modules/Inputs/cxx17/module.modulemap | 1 + .../clang/test/Modules/Inputs/diag_flags.h | 1 + .../clang/test/Modules/Inputs/diag_pragma.h | 10 + .../Inputs/diagnose-missing-import/a.h | 8 + .../diagnose-missing-import/module.modulemap | 3 + .../Inputs/gnumode-non-benign/module.h | 5 + .../gnumode-non-benign/module.modulemap | 1 + .../test/Modules/Inputs/header-attribs/bar.h | 1 + .../test/Modules/Inputs/header-attribs/baz.h | 1 + .../test/Modules/Inputs/header-attribs/foo.h | 1 + .../Inputs/header-attribs/modular.modulemap | 5 + .../Inputs/header-attribs/textual.modulemap | 5 + .../test/Modules/Inputs/hidden-names/hidden.h | 3 + .../Inputs/hidden-names/module.modulemap | 4 + .../Modules/Inputs/hidden-names/visible.h | 2 + .../implicit-built-Werror-using-W/convert.h | 8 + .../module.modulemap | 3 + .../Foo.framework/Headers/Bar.h | 1 + .../Foo.framework/Headers/FooPublic.h | 1 + .../Foo.framework/Modules/module.modulemap | 5 + .../Modules/module.private.modulemap | 5 + .../Foo.framework/PrivateHeaders/Baz.h | 1 + .../Foo.framework/PrivateHeaders/Foo.h | 1 + .../Inputs/invalid-module-id/NC-Prefix.pch | 3 + .../NC.framework/Headers/NC.h | 1 + .../NC.framework/Headers/NU-Visibility.h | 1 + .../NC.framework/Headers/NUGeometry.h | 1 + .../NC.framework/Modules/module.modulemap | 6 + .../Modules/module.private.modulemap | 5 + .../NC.framework/PrivateHeaders/NUAssert.h | 1 + .../NC.framework/PrivateHeaders/NULog.h | 1 + .../Inputs/lookup-assert-protocol/Base.h | 3 + .../Inputs/lookup-assert-protocol/Derive.h | 4 + .../Inputs/lookup-assert-protocol/H3.h | 1 + .../Inputs/lookup-assert-protocol/module.map | 4 + .../Modules/Inputs/malformed-overload/X.h | 2 + .../malformed-overload/module.modulemap | 4 + .../Modules/Inputs/merge-function-defs/a.h | 4 + .../Modules/Inputs/merge-function-defs/b.h | 0 .../Modules/Inputs/merge-function-defs/map | 4 + .../Modules/Inputs/merge-name-for-linkage/b.h | 4 + .../Inputs/merge-name-for-linkage/c1.h | 1 + .../Inputs/merge-name-for-linkage/c2.h | 2 + .../merge-name-for-linkage/module.modulemap | 1 + .../test/Modules/Inputs/merge-using-decls/b.h | 6 + .../dist/clang/test/Modules/Inputs/module.map | 19 + .../test/Modules/Inputs/objc-desig-init/A.h | 1 + .../test/Modules/Inputs/objc-desig-init/A2.h | 4 + .../Modules/Inputs/objc-desig-init/Base.h | 4 + .../test/Modules/Inputs/objc-desig-init/X.h | 4 + .../Inputs/objc-desig-init/module.modulemap | 9 + .../Modules/Inputs/objcAtKeywordMissingEnd.h | 3 + .../Modules/Inputs/outofdate-rebuild/AppKit.h | 3 + .../Modules/Inputs/outofdate-rebuild/Cocoa.h | 5 + .../Inputs/outofdate-rebuild/CoreText.h | 1 + .../Inputs/outofdate-rebuild/CoreVideo.h | 3 + .../Inputs/outofdate-rebuild/Foundation.h | 3 + .../Inputs/outofdate-rebuild/module.modulemap | 19 + .../Modules/Inputs/overloadable-attrs/a.h | 28 + .../overloadable-attrs/module.modulemap | 3 + .../test/Modules/Inputs/pragma_pack_set.h | 3 + .../Modules/Inputs/preprocess-decluse/a.h | 1 + .../Inputs/preprocess-decluse/a.modulemap | 1 + .../Modules/Inputs/preprocess-decluse/b.h | 1 + .../Inputs/preprocess-decluse/b.modulemap | 1 + .../Inputs/preprocess-decluse/main.modulemap | 1 + .../clang/test/Modules/Inputs/preprocess/a.h | 2 + .../clang/test/Modules/Inputs/preprocess/b.h | 2 + .../clang/test/Modules/Inputs/preprocess/c.h | 4 + .../test/Modules/Inputs/preprocess/file.h | 6 + .../test/Modules/Inputs/preprocess/file2.h | 2 + .../test/Modules/Inputs/preprocess/fwd.h | 1 + .../Inputs/preprocess/module.modulemap | 7 +- .../test/Modules/Inputs/preprocess/other.h | 1 + .../Modules/Inputs/submodule-visibility/b.h | 6 +- .../Inputs/submodule-visibility/other.h | 9 + .../Modules/Inputs/system-out-of-date/X.h | 2 + .../Modules/Inputs/system-out-of-date/Y.h | 1 + .../Modules/Inputs/system-out-of-date/Z.h | 2 + .../Inputs/system-out-of-date/module.map | 12 + .../Modules/Inputs/template-default-args/a.h | 13 + .../Modules/Inputs/template-default-args/d.h | 7 + .../Inputs/warning-mismatch/Mismatch.h | 1 + .../Modules/Inputs/warning-mismatch/System.h | 2 + .../Inputs/warning-mismatch/module.modulemap | 7 + .../dist/clang/test/Modules/ModuleDebugInfo.m | 6 +- .../dist/clang/test/Modules/anon-redecl.cpp | 15 + .../llvm/dist/clang/test/Modules/autolink.m | 6 +- .../dist/clang/test/Modules/autolinkTBD.m | 6 +- .../llvm/dist/clang/test/Modules/builtins.m | 1 + .../Modules/check-for-sanitizer-feature.cpp | 66 + .../clang/test/Modules/codegen-flags.test | 25 + .../clang/test/Modules/codegen-nodep.test | 13 + .../dist/clang/test/Modules/codegen-opt.test | 65 + .../llvm/dist/clang/test/Modules/codegen.test | 49 + .../test/Modules/const-var-init-update.cpp | 30 + .../crash-typo-correction-visibility.cpp | 10 + .../Modules/crash-vfs-path-emptydir-entries.m | 2 +- .../crash-vfs-path-symlink-component.m | 4 +- .../crash-vfs-path-symlink-topheader.m | 2 +- .../test/Modules/crash-vfs-path-traversal.m | 4 +- .../test/Modules/crash-vfs-relative-incdir.m | 2 +- .../test/Modules/crash-vfs-relative-overlay.m | 4 +- .../test/Modules/crash-vfs-run-reproducer.m | 2 +- .../dist/clang/test/Modules/cxx-templates.cpp | 10 +- .../llvm/dist/clang/test/Modules/cxx17.cpp | 11 + .../debug-info-moduleimport-in-module.m | 21 + .../test/Modules/debug-info-moduleimport.m | 5 +- .../dependency-dump-dependent-module.m | 2 + .../dist/clang/test/Modules/dependency-dump.m | 2 + .../dist/clang/test/Modules/diag-flags.cpp | 44 + .../dist/clang/test/Modules/diag-pragma.cpp | 47 + .../test/Modules/diagnose-missing-import.m | 14 + .../Modules/diagnostic-options-out-of-date.m | 10 + .../clang/test/Modules/diagnostics.modulemap | 14 +- ...orated-type-specifier-from-hidden-module.m | 7 +- .../dist/clang/test/Modules/extern_cxx.cpp | 25 + .../clang/test/Modules/find-privateheaders.m | 13 + .../clang/test/Modules/gnumode-non-benign.cpp | 11 + .../clang/test/Modules/header-attribs.cpp | 10 + .../dist/clang/test/Modules/hidden-names.cpp | 13 + .../Modules/implicit-built-Werror-using-W.cpp | 42 + .../implicit-private-with-different-name.m | 2 +- .../dist/clang/test/Modules/import-syntax.c | 35 + .../clang/test/Modules/incomplete-umbrella.m | 15 + .../clang/test/Modules/interface-visibility.m | 29 + .../test/Modules/invalid-pch-module-id.m | 13 + .../clang/test/Modules/localsubmodulevis.m | 8 + .../test/Modules/lookup-assert-protocol.m | 17 + .../bsd/llvm/dist/clang/test/Modules/lookup.m | 4 +- .../clang/test/Modules/macro-redefinition.cpp | 27 + .../clang/test/Modules/malformed-overload.m | 9 + .../test/Modules/merge-function-defs.cpp | 11 + .../test/Modules/merge-name-for-linkage.cpp | 1 + .../clang/test/Modules/merge-using-decls.cpp | 13 + .../dist/clang/test/Modules/missing-flag.cpp | 4 + .../test/Modules/module-impl-with-link.c | 5 +- .../clang/test/Modules/module_file_info.m | 11 +- .../dist/clang/test/Modules/module_map_cwd.c | 9 + .../modules-cache-path-canonicalization.m | 30 + .../dist/clang/test/Modules/objc-at-keyword.m | 7 + .../dist/clang/test/Modules/objc-categories.m | 6 + .../test/Modules/objc-designated-init-mod.m | 17 + .../llvm/dist/clang/test/Modules/odr_hash.cpp | 2002 +++++++ .../clang/test/Modules/outofdate-rebuild.m | 15 + .../clang/test/Modules/overloadable-attrs.cpp | 22 + .../dist/clang/test/Modules/pragma-pack.cpp | 25 + .../test/Modules/preprocess-build-diamond.m | 26 + .../clang/test/Modules/preprocess-build.cpp | 35 + .../clang/test/Modules/preprocess-decluse.cpp | 18 + .../test/Modules/preprocess-missing.modulemap | 7 + .../clang/test/Modules/preprocess-module.cpp | 159 + .../clang/test/Modules/preprocess-nested.cpp | 57 + .../test/Modules/preprocess-unavailable.cpp | 12 + .../dist/clang/test/Modules/preprocess.cpp | 32 +- .../llvm/dist/clang/test/Modules/preprocess.m | 8 +- .../llvm/dist/clang/test/Modules/rebuild.m | 8 +- .../test/Modules/redefinition-c-tagtypes.m | 48 + .../test/Modules/redefinition-same-header.m | 12 + .../clang/test/Modules/relative-dep-gen.cpp | 21 +- .../clang/test/Modules/requires-coroutines.mm | 13 + .../test/Modules/requires-gnuinlineasm.m | 4 +- .../llvm/dist/clang/test/Modules/requires.m | 17 +- .../llvm/dist/clang/test/Modules/requires.mm | 8 +- .../dist/clang/test/Modules/string_names.cpp | 4 + .../test/Modules/submodule-visibility.cpp | 9 + .../test/Modules/system-out-of-date-test.m | 17 + .../test/Modules/template-default-args.cpp | 17 + .../umbrella-header-include-builtin.mm | 8 + .../clang/test/Modules/warning-mismatch.m | 13 + .../dist/clang/test/OpenMP/cancel_codegen.cpp | 14 +- .../clang/test/OpenMP/cancel_messages.cpp | 8 + .../OpenMP/cancellation_point_codegen.cpp | 25 +- .../OpenMP/cancellation_point_messages.cpp | 8 + .../test/OpenMP/capturing_in_templates.cpp | 30 + .../OpenMP/declare_reduction_messages.cpp | 14 +- .../OpenMP/distribute_collapse_messages.cpp | 26 +- .../distribute_firstprivate_codegen.cpp | 382 ++ .../OpenMP/distribute_lastprivate_codegen.cpp | 2 - .../distribute_parallel_for_ast_print.cpp | 37 +- .../distribute_parallel_for_codegen.cpp | 2260 +++++++ ...bute_parallel_for_firstprivate_codegen.cpp | 619 ++ .../distribute_parallel_for_if_codegen.cpp | 192 + ...ibute_parallel_for_lastprivate_codegen.cpp | 653 ++ .../distribute_parallel_for_messages.cpp | 118 + ...ibute_parallel_for_num_threads_codegen.cpp | 121 + ...istribute_parallel_for_private_codegen.cpp | 297 + ...tribute_parallel_for_proc_bind_codegen.cpp | 93 + ...ute_parallel_for_simd_aligned_messages.cpp | 5 +- .../distribute_simd_aligned_messages.cpp | 5 +- .../test/OpenMP/for_reduction_codegen.cpp | 46 +- .../test/OpenMP/for_reduction_codegen_UDR.cpp | 47 +- .../test/OpenMP/for_simd_aligned_messages.cpp | 5 +- .../bsd/llvm/dist/clang/test/OpenMP/linking.c | 16 +- .../test/OpenMP/nvptx_target_codegen.cpp | 35 +- .../OpenMP/nvptx_target_parallel_codegen.cpp | 136 + ...tx_target_parallel_num_threads_codegen.cpp | 126 + ...vptx_target_parallel_proc_bind_codegen.cpp | 106 + ...vptx_target_parallel_reduction_codegen.cpp | 830 +++ .../test/OpenMP/nvptx_target_printf_codegen.c | 116 + .../OpenMP/nvptx_target_teams_codegen.cpp | 222 + .../OpenMP/nvptx_teams_reduction_codegen.cpp | 1143 ++++ .../dist/clang/test/OpenMP/openmp_check.cpp | 28 +- .../clang/test/OpenMP/ordered_messages.cpp | 11 + .../clang/test/OpenMP/parallel_codegen.cpp | 4 +- .../parallel_for_simd_aligned_messages.cpp | 5 +- .../clang/test/OpenMP/parallel_if_codegen.cpp | 2 +- .../clang/test/OpenMP/report_default_DSA.cpp | 18 + .../test/OpenMP/simd_aligned_messages.cpp | 5 +- .../clang/test/OpenMP/target_ast_print.cpp | 63 +- .../dist/clang/test/OpenMP/target_codegen.cpp | 267 +- .../OpenMP/target_codegen_global_capture.cpp | 143 +- .../OpenMP/target_codegen_registration.cpp | 64 +- .../clang/test/OpenMP/target_data_codegen.cpp | 51 +- .../clang/test/OpenMP/target_data_messages.c | 2 +- .../target_data_use_device_ptr_codegen.cpp | 115 +- .../test/OpenMP/target_enter_data_codegen.cpp | 51 +- .../OpenMP/target_enter_data_map_messages.c | 2 +- .../target_enter_data_nowait_messages.cpp | 2 +- .../test/OpenMP/target_exit_data_codegen.cpp | 51 +- .../OpenMP/target_exit_data_map_messages.c | 2 +- .../target_exit_data_nowait_messages.cpp | 2 +- .../OpenMP/target_firstprivate_codegen.cpp | 160 +- .../OpenMP/target_is_device_ptr_codegen.cpp | 112 +- .../clang/test/OpenMP/target_map_codegen.cpp | 1626 ++--- .../clang/test/OpenMP/target_map_messages.cpp | 4 +- .../test/OpenMP/target_parallel_codegen.cpp | 810 +++ .../target_parallel_codegen_registration.cpp | 441 ++ ...t_parallel_codegen_registration_naming.cpp | 66 + .../target_parallel_default_messages.cpp | 3 + .../target_parallel_for_collapse_messages.cpp | 26 +- .../target_parallel_for_ordered_messages.cpp | 26 +- ...get_parallel_for_simd_aligned_messages.cpp | 5 +- .../OpenMP/target_parallel_if_codegen.cpp | 415 ++ .../target_parallel_num_threads_codegen.cpp | 346 ++ .../OpenMP/target_simd_aligned_messages.cpp | 5 +- .../test/OpenMP/target_teams_codegen.cpp | 810 +++ .../target_teams_codegen_registration.cpp | 441 ++ ...rget_teams_codegen_registration_naming.cpp | 66 + ...ute_parallel_for_simd_aligned_messages.cpp | 5 +- ...teams_distribute_simd_aligned_messages.cpp | 5 +- .../test/OpenMP/target_teams_map_messages.cpp | 2 +- .../OpenMP/target_teams_num_teams_codegen.cpp | 346 ++ .../target_teams_thread_limit_codegen.cpp | 359 ++ .../test/OpenMP/target_update_codegen.cpp | 53 +- .../clang/test/OpenMP/taskgroup_ast_print.cpp | 60 +- .../clang/test/OpenMP/taskgroup_messages.cpp | 2 + .../taskgroup_task_reduction_messages.cpp | 258 + .../clang/test/OpenMP/taskloop_ast_print.cpp | 12 +- .../clang/test/OpenMP/taskloop_codegen.cpp | 14 +- .../OpenMP/taskloop_firstprivate_codegen.cpp | 8 +- .../OpenMP/taskloop_lastprivate_codegen.cpp | 8 +- .../test/OpenMP/taskloop_private_codegen.cpp | 8 +- .../OpenMP/taskloop_reduction_codegen.cpp | 197 + .../OpenMP/taskloop_reduction_messages.cpp | 331 ++ .../OpenMP/taskloop_simd_aligned_messages.cpp | 5 +- .../test/OpenMP/taskloop_simd_ast_print.cpp | 12 +- .../test/OpenMP/taskloop_simd_codegen.cpp | 14 +- .../taskloop_simd_firstprivate_codegen.cpp | 8 +- .../taskloop_simd_lastprivate_codegen.cpp | 8 +- .../OpenMP/taskloop_simd_private_codegen.cpp | 8 +- .../taskloop_simd_reduction_codegen.cpp | 197 + .../taskloop_simd_reduction_messages.cpp | 331 ++ ...ute_parallel_for_simd_aligned_messages.cpp | 5 +- ...teams_distribute_simd_aligned_messages.cpp | 5 +- .../test/OpenMP/threadprivate_codegen.cpp | 2 +- .../llvm/dist/clang/test/OpenMP/varargs.cpp | 8 + .../llvm/dist/clang/test/OpenMP/vla_crash.c | 22 + external/bsd/llvm/dist/clang/test/PCH/attrs.c | 3 +- .../PCH/cxx-dependent-sized-ext-vector.cpp | 18 + .../dist/clang/test/PCH/cxx-templates.cpp | 8 + .../llvm/dist/clang/test/PCH/cxx-templates.h | 3 + .../llvm/dist/clang/test/PCH/cxx-traits.cpp | 1 + .../bsd/llvm/dist/clang/test/PCH/cxx-traits.h | 1 + .../dist/clang/test/PCH/emit-dependencies.c | 9 + .../clang/test/PCH/empty-def-fwd-struct.h | 12 + .../llvm/dist/clang/test/PCH/macro-undef.cpp | 6 +- .../bsd/llvm/dist/clang/test/PCH/ocl_types.h | 3 - .../llvm/dist/clang/test/PCH/pragma-pack.c | 90 + .../clang/test/Parser/MicrosoftExtensions.cpp | 6 +- .../dist/clang/test/Parser/altivec-csk-bool.c | 4 +- .../bsd/llvm/dist/clang/test/Parser/altivec.c | 6 +- .../attr-external-source-symbol-cxx11.cpp | 5 + .../test/Parser/attr-external-source-symbol.m | 84 + .../test/Parser/backtrack-off-by-one.cpp | 9 +- .../dist/clang/test/Parser/cxx-altivec.cpp | 6 +- .../test/Parser/cxx-modules-interface.cppm | 7 +- .../test/Parser/cxx-template-argument.cpp | 2 +- .../clang/test/Parser/cxx-template-decl.cpp | 10 + .../dist/clang/test/Parser/cxx0x-ambig.cpp | 28 +- .../clang/test/Parser/cxx0x-attributes.cpp | 10 +- .../dist/clang/test/Parser/cxx0x-decl.cpp | 19 + .../test/Parser/cxx11-stmt-attributes.cpp | 1 + ...xx1z-class-template-argument-deduction.cpp | 194 + .../test/Parser/cxx1z-fold-expressions.cpp | 9 + .../clang/test/Parser/declspec-recovery.c | 8 + .../clang/test/Parser/declspec-supported.c | 10 + .../Parser/editor-placeholder-recovery.cpp | 71 + .../bsd/llvm/dist/clang/test/Parser/eof.cpp | 2 +- .../Parser/ms-square-bracket-attributes.mm | 2 +- .../Parser/objc-at-implementation-eof-crash.m | 24 + .../test/Parser/objc-at-interface-eof-crash.m | 23 + .../dist/clang/test/Parser/objc-available.m | 13 +- .../Parser/objc-cxx-keyword-identifiers.mm | 62 + .../clang/test/Parser/opencl-atomics-cl20.cl | 2 +- .../clang/test/Parser/placeholder-recovery.m | 13 +- .../test/Parser/pragma-attribute-declspec.cpp | 13 + .../clang/test/Parser/pragma-attribute.cpp | 181 + .../llvm/dist/clang/test/Parser/pragma-fp.cpp | 64 + .../clang/test/Parser/vector-cast-define.cl | 10 + .../bsd/llvm/dist/clang/test/Parser/vsx.c | 4 +- .../Inputs/nonportable-hmaps/foo.hmap | Bin 0 -> 102 bytes .../nonportable-hmaps/headers/foo/Foo.h | 0 .../Preprocessor/aarch64-target-features.c | 16 +- .../clang/test/Preprocessor/arm-acle-6.4.c | 15 + .../clang/test/Preprocessor/arm-acle-6.5.c | 3 + .../test/Preprocessor/arm-target-features.c | 33 + .../test/Preprocessor/cxx_oper_keyword.cpp | 12 + .../llvm/dist/clang/test/Preprocessor/init.c | 397 +- .../test/Preprocessor/line-directive-output.c | 7 + .../test/Preprocessor/macro_paste_commaext.c | 21 +- .../nonportable-include-with-hmap.c | 16 + .../dist/clang/test/Preprocessor/pp-modules.c | 6 +- .../test/Preprocessor/pragma_diagnostic.c | 7 +- .../clang/test/Preprocessor/pragma_module.c | 52 + .../Preprocessor/predefined-arch-macros.c | 249 +- .../test/Preprocessor/predefined-macros.c | 6 + .../dist/clang/test/Preprocessor/stdint.c | 105 +- .../clang/test/Preprocessor/stringize_space.c | 11 + .../test/Preprocessor/x86_target_features.c | 12 + .../test/Profile/Inputs/cxx-class.proftext | 11 + .../Inputs/cxx-missing-bodies.proftext | 9 + .../llvm/dist/clang/test/Profile/c-generate.c | 3 +- .../dist/clang/test/Profile/c-outdated-data.c | 16 +- .../llvm/dist/clang/test/Profile/c-ternary.c | 15 + .../dist/clang/test/Profile/cxx-class.cpp | 36 +- .../clang/test/Profile/cxx-missing-bodies.cpp | 21 + .../dist/clang/test/Profile/cxx-structors.cpp | 41 +- .../Profile/cxx-virtual-destructor-calls.cpp | 9 - .../dist/clang/test/Rewriter/lit.local.cfg | 2 +- .../objc-modern-metadata-visibility2.mm | 45 + .../llvm/dist/clang/test/Sema/128bitfloat.cpp | 10 +- .../dist/clang/test/Sema/2010-05-31-palignr.c | 8 +- .../dist/clang/test/Sema/address-packed.c | 9 + .../dist/clang/test/Sema/address-unaligned.c | 16 + .../dist/clang/test/Sema/address_spaces.c | 2 +- .../dist/clang/test/Sema/alias-redefinition.c | 3 +- .../dist/clang/test/Sema/alloc-align-attr.c | 19 + .../llvm/dist/clang/test/Sema/altivec-init.c | 6 +- .../dist/clang/test/Sema/arm-interrupt-attr.c | 38 +- external/bsd/llvm/dist/clang/test/Sema/asm.c | 35 + .../bsd/llvm/dist/clang/test/Sema/ast-print.c | 9 + .../llvm/dist/clang/test/Sema/atomic-ops.c | 14 + .../dist/clang/test/Sema/attr-availability.c | 29 +- .../dist/clang/test/Sema/attr-deprecated.c | 27 +- .../test/Sema/attr-external-source-symbol.c | 19 + .../llvm/dist/clang/test/Sema/attr-ifunc.c | 4 + .../dist/clang/test/Sema/attr-micromips.c | 17 + .../dist/clang/test/Sema/attr-selectany.c | 3 +- .../test/Sema/attr-unavailable-message.c | 8 +- .../bsd/llvm/dist/clang/test/Sema/auto-type.c | 2 +- .../dist/clang/test/Sema/avr-interrupt-attr.c | 8 + .../dist/clang/test/Sema/avr-signal-attr.c | 8 + .../llvm/dist/clang/test/Sema/block-args.c | 2 +- .../clang/test/Sema/builtin-object-size.c | 15 + .../llvm/dist/clang/test/Sema/builtins-ppc.c | 4 +- .../llvm/dist/clang/test/Sema/builtins-x86.c | 14 + .../dist/clang/test/Sema/callingconv-cast.c | 13 + .../llvm/dist/clang/test/Sema/const-eval.c | 11 +- .../dist/clang/test/Sema/declspec-naked.c | 11 + .../clang/test/Sema/designated-initializers.c | 17 + .../llvm/dist/clang/test/Sema/diagnose_if.c | 4 + .../bsd/llvm/dist/clang/test/Sema/enable_if.c | 4 +- .../bsd/llvm/dist/clang/test/Sema/enum-attr.c | 130 + .../dist/clang/test/Sema/expr-address-of.c | 3 +- .../dist/clang/test/Sema/ext_vector_ops.c | 27 + .../dist/clang/test/Sema/integer-overflow.c | 7 + .../llvm/dist/clang/test/Sema/knr-def-call.c | 14 +- .../llvm/dist/clang/test/Sema/loop-control.c | 48 + .../llvm/dist/clang/test/Sema/ms-inline-asm.c | 2 +- .../bsd/llvm/dist/clang/test/Sema/nonnull.c | 7 + .../llvm/dist/clang/test/Sema/overloadable.c | 135 +- .../bsd/llvm/dist/clang/test/Sema/pr30306.cpp | 15 + .../Sema/pragma-attribute-strict-subjects.c | 153 + .../dist/clang/test/Sema/pragma-attribute.c | 47 + .../clang/test/Sema/pragma-clang-section.c | 17 + .../test/Sema/redefinition-same-header.c | 14 + .../Sema/sizeof-struct-non-zero-as-member.cl | 1 + external/bsd/llvm/dist/clang/test/Sema/tls.c | 6 +- .../dist/clang/test/Sema/transparent-union.c | 24 + .../dist/clang/test/Sema/typo-correction.c | 7 + .../clang/test/Sema/unaligned-qualifier.c | 4 + .../dist/clang/test/Sema/varargs-aarch64.c | 11 + .../dist/clang/test/Sema/varargs-x86-32.c | 2 +- .../bsd/llvm/dist/clang/test/Sema/varargs.c | 2 +- .../llvm/dist/clang/test/Sema/vector-cast.c | 5 +- .../dist/clang/test/Sema/vector-gcc-compat.c | 330 ++ .../clang/test/Sema/vector-gcc-compat.cpp | 328 + .../llvm/dist/clang/test/Sema/vector-ops.c | 116 +- .../dist/clang/test/Sema/warn-cast-qual.c | 31 + .../clang/test/Sema/warn-documentation.cpp | 74 +- .../dist/clang/test/Sema/warn-documentation.m | 70 + .../clang/test/Sema/warn-strict-prototypes.c | 9 +- .../clang/test/Sema/warn-strict-prototypes.m | 11 +- .../dist/clang/test/Sema/warn-unreachable.c | 47 + .../clang/test/Sema/xray-log-args-class.cpp | 7 + .../dist/clang/test/Sema/xray-log-args-oob.c | 9 + .../clang/test/Sema/xray-log-args-oob.cpp | 9 + .../bsd/llvm/dist/clang/test/Sema/zvector.c | 24 +- .../bsd/llvm/dist/clang/test/Sema/zvector2.c | 211 + .../SemaCXX/Inputs/nullability-completeness.h | 4 + .../clang/test/SemaCXX/Inputs/std-coroutine.h | 37 + .../test/SemaCXX/MicrosoftCompatibility.cpp | 24 + .../test/SemaCXX/MicrosoftExtensions.cpp | 35 +- .../llvm/dist/clang/test/SemaCXX/P30636.cpp | 20 + .../llvm/dist/clang/test/SemaCXX/PR16677.cpp | 5 +- .../llvm/dist/clang/test/SemaCXX/PR27037.cpp | 13 + .../llvm/dist/clang/test/SemaCXX/PR9572.cpp | 43 +- .../clang/test/SemaCXX/alloc-align-attr.cpp | 40 + .../llvm/dist/clang/test/SemaCXX/altivec.cpp | 2 +- .../test/SemaCXX/amdgpu-sizeof-alignof.cpp | 47 + .../clang/test/SemaCXX/anonymous-struct.cpp | 3 + .../dist/clang/test/SemaCXX/array-bounds.cpp | 18 +- .../clang/test/SemaCXX/attr-deprecated.cpp | 20 +- ...attr-non-x86-no_caller_saved_registers.cpp | 29 + .../dist/clang/test/SemaCXX/attr-noreturn.cpp | 6 +- .../attr-require-constant-initialization.cpp | 116 +- .../clang/test/SemaCXX/attr-selectany.cpp | 2 +- .../attr-x86-no_caller_saved_registers.cpp | 33 + .../dist/clang/test/SemaCXX/auto-cxx0x.cpp | 9 + .../test/SemaCXX/calling-conv-compat.cpp | 44 +- .../clang/test/SemaCXX/co_await-range-for.cpp | 165 + .../SemaCXX/constant-expression-cxx11.cpp | 47 +- .../SemaCXX/constant-expression-cxx1y.cpp | 5 + .../test/SemaCXX/constructor-initializer.cpp | 19 + .../llvm/dist/clang/test/SemaCXX/coreturn.cpp | 123 +- .../dist/clang/test/SemaCXX/coroutine-seh.cpp | 37 + .../coroutine-unhandled_exception-warning.cpp | 41 + .../coroutine-uninitialized-warning-crash.cpp | 44 + .../dist/clang/test/SemaCXX/coroutines.cpp | 908 ++- .../dist/clang/test/SemaCXX/cxx-altivec.cpp | 2 +- .../dist/clang/test/SemaCXX/cxx0x-class.cpp | 8 + .../SemaCXX/cxx0x-cursory-default-delete.cpp | 6 +- .../SemaCXX/cxx0x-initializer-aggregates.cpp | 2 +- .../SemaCXX/cxx0x-initializer-constructor.cpp | 3 +- .../SemaCXX/cxx0x-initializer-references.cpp | 16 +- .../SemaCXX/cxx0x-initializer-scalars.cpp | 10 +- .../test/SemaCXX/cxx11-inheriting-ctors.cpp | 28 + .../cxx1y-contextual-conversion-tweaks.cpp | 2 +- .../SemaCXX/cxx1y-deduced-return-type.cpp | 48 +- .../cxx1y-generic-lambdas-capturing.cpp | 4 + .../test/SemaCXX/cxx1y-generic-lambdas.cpp | 9 +- .../cxx1y-variable-templates_in_class.cpp | 6 +- .../cxx1y-variable-templates_top_level.cpp | 13 +- ...xx1z-class-template-argument-deduction.cpp | 282 + .../test/SemaCXX/cxx1z-constexpr-lambdas.cpp | 119 +- .../test/SemaCXX/cxx1z-decomposition.cpp | 6 + .../test/SemaCXX/cxx1z-lambda-star-this.cpp | 531 +- .../SemaCXX/cxx1z-noexcept-function-type.cpp | 6 +- .../SemaCXX/default-assignment-operator.cpp | 85 +- .../default-constructor-initializers.cpp | 83 +- .../dist/clang/test/SemaCXX/deprecated.cpp | 8 +- .../designated-initializers-base-class.cpp | 12 + .../clang/test/SemaCXX/dllimport-memptr.cpp | 7 + .../dist/clang/test/SemaCXX/dllimport.cpp | 106 +- .../dist/clang/test/SemaCXX/enable_if.cpp | 49 +- .../dist/clang/test/SemaCXX/enum-attr.cpp | 108 + .../dist/clang/test/SemaCXX/enum-scoped.cpp | 2 +- .../dist/clang/test/SemaCXX/eval-crashes.cpp | 56 + .../clang/test/SemaCXX/for-range-examples.cpp | 34 + .../clang/test/SemaCXX/format-strings.cpp | 20 +- .../llvm/dist/clang/test/SemaCXX/friend2.cpp | 37 + .../llvm/dist/clang/test/SemaCXX/friend3.cpp | 27 + .../dist/clang/test/SemaCXX/i-c-e-cxx.cpp | 47 +- .../test/SemaCXX/implicit-exception-spec.cpp | 58 + .../SemaCXX/implicit-member-functions.cpp | 3 +- .../implicit-virtual-member-functions.cpp | 74 +- .../test/SemaCXX/invalid-member-expr.cpp | 4 +- .../test/SemaCXX/invalid-template-params.cpp | 23 + .../clang/test/SemaCXX/lambda-expressions.cpp | 14 +- .../test/SemaCXX/libstdcxx_pair_swap_hack.cpp | 2 +- .../dist/clang/test/SemaCXX/local-classes.cpp | 12 + .../clang/test/SemaCXX/make_integer_seq.cpp | 2 +- .../dist/clang/test/SemaCXX/modules-ts.cppm | 29 +- .../llvm/dist/clang/test/SemaCXX/ms-uuid.cpp | 2 +- .../clang/test/SemaCXX/nested-name-spec.cpp | 11 +- .../dist/clang/test/SemaCXX/new-delete.cpp | 71 +- .../llvm/dist/clang/test/SemaCXX/no-wchar.cpp | 8 +- .../dist/clang/test/SemaCXX/null-cast.cpp | 8 + .../dist/clang/test/SemaCXX/nullability.cpp | 8 +- .../dist/clang/test/SemaCXX/printf-cstr.cpp | 47 +- .../clang/test/SemaCXX/pseudo-destructors.cpp | 23 + .../dist/clang/test/SemaCXX/ptrtomember.cpp | 4 + .../llvm/dist/clang/test/SemaCXX/suppress.cpp | 25 + .../template-multiple-attr-propagation.cpp | 29 + .../test/SemaCXX/template-specialization.cpp | 21 + .../test/SemaCXX/type-convert-construct.cpp | 10 +- .../dist/clang/test/SemaCXX/type-traits.cpp | 253 +- .../clang/test/SemaCXX/typo-correction.cpp | 38 +- .../unavailable_aligned_allocation.cpp | 109 + .../dist/clang/test/SemaCXX/uninitialized.cpp | 4 +- .../llvm/dist/clang/test/SemaCXX/varargs.cpp | 55 +- .../dist/clang/test/SemaCXX/vector-no-lax.cpp | 2 +- .../clang/test/SemaCXX/virtual-base-used.cpp | 199 +- .../virtual-member-functions-key-function.cpp | 43 +- .../SemaCXX/warn-bitfield-enum-conversion.cpp | 59 + .../test/SemaCXX/warn-bool-conversion.cpp | 63 +- .../clang/test/SemaCXX/warn-cast-qual.cpp | 140 + ...n-inconsistent-missing-destructor-override | 33 + .../clang/test/SemaCXX/warn-loop-analysis.cpp | 12 + .../dist/clang/test/SemaCXX/warn-shadow.cpp | 114 +- .../SemaCXX/warn-thread-safety-parsing.cpp | 42 +- .../SemaCXX/warn-throw-out-noexcept-func.cpp | 301 + .../test/SemaCXX/warn-unused-filescoped.cpp | 18 +- .../SemaCXX/warn-unused-lambda-capture.cpp | 193 + .../clang/test/SemaCXX/warn-unused-result.cpp | 46 + .../clang/test/SemaCXX/warn-unused-value.cpp | 6 + .../clang/test/SemaCXX/warn-zero-nullptr.cpp | 27 + .../clang/test/SemaCXX/zero-length-arrays.cpp | 11 +- .../clang/test/SemaObjC/arc-peformselector.m | 12 + .../test/SemaObjC/arc-property-decl-attrs.m | 104 + .../clang/test/SemaObjC/arc-repeated-weak.mm | 21 +- .../SemaObjC/arc-unavailable-for-weakref.m | 1 + .../bsd/llvm/dist/clang/test/SemaObjC/arc.m | 32 +- .../clang/test/SemaObjC/attr-availability.m | 30 +- .../clang/test/SemaObjC/attr-deprecated.m | 22 +- .../test/SemaObjC/attr-ns_returns_retained.m | 18 + .../clang/test/SemaObjC/category-attribute.m | 23 + .../SemaObjC/class-message-protocol-lookup.m | 27 + .../test/SemaObjC/class-unavail-warning.m | 4 +- .../test/SemaObjC/default-synthesize-3.m | 8 +- .../clang/test/SemaObjC/default-synthesize.m | 2 +- .../dist/clang/test/SemaObjC/diagnose_if.m | 16 + .../llvm/dist/clang/test/SemaObjC/foreach.m | 24 + .../forward-protocol-incomplete-impl-warn.m | 2 +- .../clang/test/SemaObjC/method-bad-param.m | 6 + .../clang/test/SemaObjC/objc-class-property.m | 9 + .../SemaObjC/objc-container-subscripting-1.m | 5 +- .../SemaObjC/objc-container-subscripting-2.m | 19 + .../SemaObjC/property-ambiguous-synthesis.m | 2 +- .../test/SemaObjC/property-typecheck-1.m | 5 + .../SemaObjC/special-dep-unavail-warning.m | 4 +- .../SemaObjC/unguarded-availability-new.m | 160 + .../test/SemaObjC/unguarded-availability.m | 126 +- .../test/SemaObjC/unsafe-perform-selector.m | 127 + .../warn-deprecated-implementations.m | 29 +- .../test/SemaObjC/x86-method-vector-values.m | 125 + .../clang/test/SemaObjCXX/arc-bridged-cast.mm | 16 + .../clang/test/SemaObjCXX/arc-overloading.mm | 2 +- .../test/SemaObjCXX/arc-ptr-comparison.mm | 24 + .../test/SemaObjCXX/arc-system-header.mm | 2 +- .../clang/test/SemaObjCXX/arc-templates.mm | 4 +- .../SemaObjCXX/arc-unavailable-for-weakref.mm | 1 + .../llvm/dist/clang/test/SemaObjCXX/blocks.mm | 27 +- .../test/SemaObjCXX/interface-return-type.mm | 7 + .../dist/clang/test/SemaObjCXX/is-base-of.mm | 25 + .../clang/test/SemaObjCXX/ivar-construct.mm | 2 +- .../test/SemaObjCXX/objc-weak-type-traits.mm | 210 + .../dist/clang/test/SemaObjCXX/objc-weak.mm | 28 + .../dist/clang/test/SemaObjCXX/overload.mm | 27 + .../dist/clang/test/SemaObjCXX/pr32725.mm | 9 + .../clang/test/SemaOpenCL/access-qualifier.cl | 4 + .../address-spaces-conversions-cl2.0.cl | 37 + .../test/SemaOpenCL/arithmetic-conversions.cl | 23 + .../dist/clang/test/SemaOpenCL/array-init.cl | 20 + .../dist/clang/test/SemaOpenCL/as_type.cl | 9 +- .../dist/clang/test/SemaOpenCL/atomic-init.cl | 12 + .../SemaOpenCL/builtins-amdgcn-error-f16.cl | 6 +- .../SemaOpenCL/builtins-amdgcn-error-gfx9.cl | 9 + .../test/SemaOpenCL/builtins-amdgcn-error.cl | 50 +- .../SemaOpenCL/cl20-device-side-enqueue.cl | 45 +- .../test/SemaOpenCL/clang-builtin-version.cl | 59 +- .../llvm/dist/clang/test/SemaOpenCL/cond.cl | 2 +- .../clang/test/SemaOpenCL/extension-begin.cl | 2 +- .../llvm/dist/clang/test/SemaOpenCL/func.cl | 7 + .../llvm/dist/clang/test/SemaOpenCL/images.cl | 33 +- ...valid-assignment-constant-address-space.cl | 7 + .../clang/test/SemaOpenCL/invalid-block.cl | 47 +- .../test/SemaOpenCL/invalid-kernel-attrs.cl | 4 + .../test/SemaOpenCL/invalid-pipes-cl2.0.cl | 5 + .../dist/clang/test/SemaOpenCL/logical-ops.cl | 117 + .../dist/clang/test/SemaOpenCL/sampler_t.cl | 13 +- .../test/SemaOpenCL/storageclass-cl20.cl | 4 +- .../clang/test/SemaOpenCL/storageclass.cl | 40 +- .../clang/test/SemaOpenCL/to_addr_builtin.cl | 2 +- .../llvm/dist/clang/test/SemaOpenCL/types.cl | 6 + .../SemaOpenCL/vector_literals_invalid.cl | 3 +- .../test/SemaOpenCL/vector_swizzle_length.cl | 10 + .../test/SemaTemplate/alias-templates.cpp | 11 + .../SemaTemplate/constexpr-instantiate.cpp | 2 +- .../test/SemaTemplate/deduction-crash.cpp | 36 +- .../clang/test/SemaTemplate/deduction.cpp | 64 +- .../test/SemaTemplate/default-arguments.cpp | 16 + .../SemaTemplate/default-expr-arguments-3.cpp | 2 +- .../dependent-template-recover.cpp | 22 + .../test/SemaTemplate/destructor-template.cpp | 6 + .../SemaTemplate/explicit-instantiation.cpp | 6 +- .../explicit-specialization-member.cpp | 11 +- .../test/SemaTemplate/injected-class-name.cpp | 5 +- .../test/SemaTemplate/instantiate-c99.cpp | 19 + .../test/SemaTemplate/instantiate-enum.cpp | 5 +- .../SemaTemplate/instantiate-member-class.cpp | 4 +- .../test/SemaTemplate/member-access-ambig.cpp | 2 +- .../ms-lookup-template-base-classes.cpp | 3 +- .../ms-sizeof-missing-typename.cpp | 2 +- .../test/SemaTemplate/overload-candidates.cpp | 34 +- .../dist/clang/test/SemaTemplate/temp_arg.cpp | 2 +- .../test/SemaTemplate/temp_arg_nontype.cpp | 8 + .../test/SemaTemplate/temp_arg_template.cpp | 41 +- .../SemaTemplate/temp_arg_template_cxx1z.cpp | 31 +- .../clang/test/SemaTemplate/temp_arg_type.cpp | 54 + .../clang/test/SemaTemplate/temp_explicit.cpp | 23 +- .../test/SemaTemplate/template-id-expr.cpp | 13 +- .../SemaTemplate/typename-specifier-3.cpp | 3 +- .../test/SemaTemplate/typename-specifier.cpp | 2 +- .../test/SemaTemplate/typo-template-name.cpp | 43 + .../test/SemaTemplate/undefined-template.cpp | 8 + .../value-dependent-null-pointer-constant.cpp | 15 +- .../SemaTemplate/virtual-member-functions.cpp | 54 +- .../dist/clang/test/Tooling/lit.local.cfg | 2 +- .../bsd/llvm/dist/clang/test/Unit/lit.cfg | 5 +- .../clang-rename/ClassAsTemplateArgument.cpp | 21 + .../test/clang-rename/ClassFindByName.cpp | 10 + .../test/clang-rename/ClassSimpleRenaming.cpp | 14 + .../test/clang-rename/ClassTestMulti.cpp | 11 + .../clang-rename/ClassTestMultiByName.cpp | 8 + .../clang-rename/ComplexFunctionOverride.cpp | 47 + .../clang-rename/ComplicatedClassType.cpp | 63 + .../dist/clang/test/clang-rename/Ctor.cpp | 14 + .../test/clang-rename/CtorInitializer.cpp | 17 + .../clang/test/clang-rename/DeclRefExpr.cpp | 24 + .../dist/clang/test/clang-rename/Field.cpp | 15 + .../clang/test/clang-rename/FunctionMacro.cpp | 20 + .../test/clang-rename/FunctionOverride.cpp | 13 + .../FunctionWithClassFindByName.cpp | 12 + .../clang-rename/IncludeHeaderWithSymbol.cpp | 10 + .../clang-rename/Inputs/HeaderWithSymbol.h | 1 + .../clang-rename/Inputs/OffsetToNewName.yaml | 6 + .../Inputs/QualifiedNameToNewName.yaml | 6 + .../test/clang-rename/InvalidNewName.cpp | 2 + .../clang/test/clang-rename/InvalidOffset.cpp | 9 + .../clang-rename/InvalidQualifiedName.cpp | 4 + .../test/clang-rename/MemberExprMacro.cpp | 22 + .../clang/test/clang-rename/Namespace.cpp | 13 + .../clang/test/clang-rename/NoNewName.cpp | 4 + .../TemplateClassInstantiation.cpp | 42 + .../test/clang-rename/TemplateTypename.cpp | 24 + .../clang-rename/TemplatedClassFunction.cpp | 22 + .../clang-rename/UserDefinedConversion.cpp | 26 + .../dist/clang/test/clang-rename/Variable.cpp | 33 + .../clang/test/clang-rename/VariableMacro.cpp | 21 + .../clang/test/clang-rename/YAMLInput.cpp | 10 + external/bsd/llvm/dist/clang/test/lit.cfg | 36 +- .../bsd/llvm/dist/clang/test/lit.site.cfg.in | 12 +- .../bsd/llvm/dist/clang/tools/CMakeLists.txt | 2 + .../clang/tools/c-index-test/CMakeLists.txt | 3 + .../clang/tools/c-index-test/c-index-test.c | 158 +- .../clang/tools/c-index-test/core_main.cpp | 85 +- .../clang/tools/clang-check/ClangCheck.cpp | 4 +- .../clang/tools/clang-format-vs/.gitignore | 1 - .../tools/clang-format-vs/CMakeLists.txt | 7 +- .../tools/clang-format-vs/ClangFormat.sln | 4 +- .../ClangFormat/ClangFormat.csproj | 56 +- .../ClangFormat/ClangFormatPackage.cs | 192 +- .../RunningDocTableEventsDispatcher.cs | 79 + .../tools/clang-format-vs/ClangFormat/Vsix.cs | 96 + .../clang-format-vs/ClangFormat/license.txt | 39 + .../ClangFormat/packages.config | 1 - .../source.extension.vsixmanifest.in | 49 +- .../clang/tools/clang-format/ClangFormat.cpp | 55 +- .../tools/clang-format/clang-format-test.el | 126 + .../clang/tools/clang-format/clang-format.el | 25 +- .../clang/tools/clang-format/clang-format.py | 15 +- .../clang/tools/clang-format/git-clang-format | 87 +- .../clang/tools/clang-fuzzer/CMakeLists.txt | 3 +- .../clang/tools/clang-fuzzer/ClangFuzzer.cpp | 11 +- .../clang-import-test/clang-import-test.cpp | 126 +- .../ClangOffloadBundler.cpp | 7 +- .../clang/tools/clang-rename/CMakeLists.txt | 24 + .../clang/tools/clang-rename/ClangRename.cpp | 239 + .../clang/tools/clang-rename/clang-rename.el | 79 + .../clang/tools/clang-rename/clang-rename.py | 61 + .../dist/clang/tools/diagtool/CMakeLists.txt | 1 + .../clang/tools/diagtool/FindDiagnosticID.cpp | 58 + .../dist/clang/tools/driver/CMakeLists.txt | 2 +- .../dist/clang/tools/driver/cc1as_main.cpp | 37 +- .../llvm/dist/clang/tools/driver/driver.cpp | 65 +- .../dist/clang/tools/libclang/ARCMigrate.cpp | 1 + .../llvm/dist/clang/tools/libclang/CIndex.cpp | 263 +- .../tools/libclang/CIndexCodeCompletion.cpp | 9 +- .../clang/tools/libclang/CIndexDiagnostic.cpp | 30 +- .../tools/libclang/CXCompilationDatabase.cpp | 31 +- .../dist/clang/tools/libclang/CXCursor.cpp | 27 +- .../tools/libclang/CXIndexDataConsumer.cpp | 6 +- .../clang/tools/libclang/CXTranslationUnit.h | 4 + .../llvm/dist/clang/tools/libclang/CXType.cpp | 72 +- .../dist/clang/tools/libclang/Indexing.cpp | 3 +- .../clang/tools/libclang/libclang.exports | 12 + .../tools/scan-build-py/bin/analyze-build | 4 +- .../clang/tools/scan-build-py/bin/analyze-c++ | 4 +- .../clang/tools/scan-build-py/bin/analyze-cc | 4 +- .../tools/scan-build-py/bin/intercept-build | 4 +- .../tools/scan-build-py/bin/intercept-c++ | 4 +- .../tools/scan-build-py/bin/intercept-cc | 4 +- .../clang/tools/scan-build-py/bin/scan-build | 4 +- .../tools/scan-build-py/libear/__init__.py | 4 +- .../scan-build-py/libscanbuild/__init__.py | 177 +- .../scan-build-py/libscanbuild/analyze.py | 758 +-- .../scan-build-py/libscanbuild/arguments.py | 431 ++ .../tools/scan-build-py/libscanbuild/clang.py | 17 +- .../scan-build-py/libscanbuild/intercept.py | 212 +- .../scan-build-py/libscanbuild/report.py | 85 +- .../scan-build-py/tests/unit/__init__.py | 2 - .../scan-build-py/tests/unit/test_analyze.py | 328 + .../tests/unit/test_intercept.py | 12 +- .../scan-build-py/tests/unit/test_report.py | 15 +- .../clang/tools/scan-build/CMakeLists.txt | 3 + .../tools/scan-build/libexec/ccc-analyzer | 3 +- .../clang/tools/scan-view/share/Reporter.py | 3 + .../clang/tools/scan-view/share/startfile.py | 3 + .../dist/clang/unittests/AST/CommentLexer.cpp | 3 +- .../clang/unittests/AST/DeclPrinterTest.cpp | 2 +- .../ASTMatchers/ASTMatchersNodeTest.cpp | 88 +- .../unittests/ASTMatchers/ASTMatchersTest.h | 44 +- .../ASTMatchers/Dynamic/ParserTest.cpp | 28 +- .../ASTMatchers/Dynamic/RegistryTest.cpp | 43 + .../ASTMatchers/Dynamic/VariantValueTest.cpp | 25 + .../dist/clang/unittests/Analysis/CFGTest.cpp | 14 +- .../clang/unittests/Analysis/CMakeLists.txt | 5 +- .../unittests/Analysis/CloneDetectionTest.cpp | 110 + .../dist/clang/unittests/Basic/CMakeLists.txt | 1 + .../clang/unittests/Basic/DiagnosticTest.cpp | 37 +- .../clang/unittests/Basic/FileManagerTest.cpp | 52 +- .../unittests/Basic/MemoryBufferCacheTest.cpp | 94 + .../unittests/Basic/SourceManagerTest.cpp | 108 +- .../unittests/Basic/VirtualFileSystemTest.cpp | 106 +- .../llvm/dist/clang/unittests/CMakeLists.txt | 1 + .../clang/unittests/Driver/CMakeLists.txt | 1 + .../clang/unittests/Driver/ToolChainTest.cpp | 30 +- .../clang/unittests/Format/CMakeLists.txt | 6 +- .../clang/unittests/Format/CleanupTest.cpp | 18 +- .../clang/unittests/Format/FormatTest.cpp | 2782 ++++----- .../unittests/Format/FormatTestComments.cpp | 2576 ++++++++ .../clang/unittests/Format/FormatTestJS.cpp | 403 +- .../clang/unittests/Format/FormatTestJava.cpp | 24 +- .../clang/unittests/Format/FormatTestObjC.cpp | 40 +- .../unittests/Format/FormatTestProto.cpp | 184 +- .../unittests/Format/FormatTestSelective.cpp | 28 +- .../unittests/Format/FormatTestTextProto.cpp | 250 + .../Format/NamespaceEndCommentsFixerTest.cpp | 658 ++ .../unittests/Format/SortImportsTestJS.cpp | 17 + .../unittests/Format/SortIncludesTest.cpp | 23 + .../Format/UsingDeclarationsSorterTest.cpp | 234 + .../unittests/Frontend/CodeGenActionTest.cpp | 2 +- .../unittests/Frontend/FrontendActionTest.cpp | 21 +- .../dist/clang/unittests/Lex/LexerTest.cpp | 92 +- .../clang/unittests/Lex/PPCallbacksTest.cpp | 30 +- .../Lex/PPConditionalDirectiveRecordTest.cpp | 24 +- .../clang/unittests/Rename/CMakeLists.txt | 22 + .../clang/unittests/Rename/ClangRenameTest.h | 112 + .../unittests/Rename/RenameClassTest.cpp | 684 +++ .../clang/unittests/Tooling/CMakeLists.txt | 5 +- .../clang/unittests/Tooling/CastExprTest.cpp | 38 + .../unittests/Tooling/CommentHandlerTest.cpp | 3 +- .../Tooling/CompilationDatabaseTest.cpp | 53 +- .../unittests/Tooling/DiagnosticsYamlTest.cpp | 167 + .../clang/unittests/Tooling/LookupTest.cpp | 6 +- .../Tooling/RecursiveASTVisitorTest.cpp | 152 + .../Tooling/RefactoringCallbacksTest.cpp | 91 +- .../unittests/Tooling/RefactoringTest.cpp | 214 +- .../clang/unittests/Tooling/TestVisitor.h | 5 +- .../clang/unittests/Tooling/ToolingTest.cpp | 2 +- .../dist/clang/utils/TableGen/CMakeLists.txt | 1 + .../clang/utils/TableGen/ClangAttrEmitter.cpp | 672 ++- .../TableGen/ClangDiagnosticsEmitter.cpp | 4 +- .../utils/TableGen/ClangOptionDocEmitter.cpp | 392 ++ .../utils/TableGen/ClangSACheckersEmitter.cpp | 3 +- .../dist/clang/utils/TableGen/TableGen.cpp | 35 +- .../clang/utils/TableGen/TableGenBackends.h | 7 + .../dist/clang/utils/bash-autocomplete.sh | 83 + .../dist/clang/utils/perf-training/lit.cfg | 3 +- .../utils/perf-training/order-files.lit.cfg | 3 +- .../dist/clang/www/analyzer/alpha_checks.html | 256 +- .../clang/www/analyzer/available_checks.html | 323 +- .../www/analyzer/checker_dev_manual.html | 4 +- .../clang/www/analyzer/implicit_checks.html | 4 +- .../www/analyzer/scripts/expandcollapse.js | 2 +- .../llvm/dist/clang/www/cxx_dr_status.html | 712 +-- .../bsd/llvm/dist/clang/www/cxx_status.html | 117 +- .../bsd/llvm/dist/clang/www/get_started.html | 4 + 2794 files changed, 172166 insertions(+), 36287 deletions(-) create mode 100644 external/bsd/llvm/dist/clang/bindings/python/tests/test_exception_specification_kind.py create mode 100644 external/bsd/llvm/dist/clang/cmake/caches/Apple-stage2-ThinLTO.cmake create mode 100644 external/bsd/llvm/dist/clang/cmake/caches/BaremetalARM.cmake create mode 100644 external/bsd/llvm/dist/clang/cmake/caches/Fuchsia-stage2.cmake create mode 100644 external/bsd/llvm/dist/clang/cmake/caches/Fuchsia.cmake create mode 100644 external/bsd/llvm/dist/clang/cmake/modules/FindZ3.cmake create mode 100644 external/bsd/llvm/dist/clang/docs/ClangCommandLineReference.rst create mode 100644 external/bsd/llvm/dist/clang/include/clang/AST/ASTStructuralEquivalence.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/AST/ExternalASTMerger.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/AST/ODRHash.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Basic/AttrSubjectMatchRules.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Basic/BuiltinsNios2.def create mode 100644 external/bsd/llvm/dist/clang/include/clang/Basic/MemoryBufferCache.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Basic/XRayLists.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/CodeGen/ConstantInitBuilder.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/CodeGen/ConstantInitFuture.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Driver/ClangOptionDocs.td create mode 100644 external/bsd/llvm/dist/clang/include/clang/Driver/XRayArgs.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Frontend/PrecompiledPreamble.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Parse/RAIIObjectsForParser.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Tooling/Refactoring/AtomicChange.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Tooling/Refactoring/Rename/RenamingAction.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h create mode 100644 external/bsd/llvm/dist/clang/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h create mode 100644 external/bsd/llvm/dist/clang/lib/AST/ASTStructuralEquivalence.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/AST/ExternalASTMerger.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/AST/ODRHash.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Basic/MemoryBufferCache.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Basic/XRayLists.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/CodeGen/CGGPUBuiltin.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/CodeGen/ConstantInitBuilder.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/CodeGen/MacroPPCallbacks.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/CodeGen/MacroPPCallbacks.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/AMDGPU.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/AMDGPU.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/AVR.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/AVR.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Ananas.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Ananas.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/AArch64.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/AArch64.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/ARM.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/ARM.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/Mips.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/Mips.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/PPC.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/PPC.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/Sparc.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/Sparc.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/SystemZ.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/X86.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Arch/X86.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/BareMetal.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/BareMetal.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Bitrig.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Bitrig.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Clang.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Clang.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/CloudABI.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/CloudABI.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/CommonArgs.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/CommonArgs.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Contiki.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Contiki.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/CrossWindows.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/CrossWindows.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Cuda.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Cuda.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Darwin.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Darwin.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/DragonFly.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/DragonFly.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/FreeBSD.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/FreeBSD.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Fuchsia.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Fuchsia.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Gnu.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Gnu.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Haiku.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Haiku.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Hexagon.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Hexagon.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Lanai.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Linux.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Linux.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/MSVC.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/MSVC.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/MSVCSetupApi.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/MinGW.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/MinGW.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Minix.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Minix.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/MipsLinux.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/MipsLinux.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Myriad.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Myriad.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/NaCl.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/NaCl.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/NetBSD.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/NetBSD.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/OpenBSD.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/OpenBSD.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/PS4CPU.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/PS4CPU.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Solaris.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/Solaris.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/TCE.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/TCE.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/WebAssembly.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/WebAssembly.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/XCore.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/ToolChains/XCore.h create mode 100644 external/bsd/llvm/dist/clang/lib/Driver/XRayArgs.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Format/NamespaceEndCommentsFixer.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Format/NamespaceEndCommentsFixer.h create mode 100644 external/bsd/llvm/dist/clang/lib/Format/UsingDeclarationsSorter.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Format/UsingDeclarationsSorter.h create mode 100644 external/bsd/llvm/dist/clang/lib/Frontend/PrecompiledPreamble.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Headers/avx512vpopcntdqintrin.h create mode 100644 external/bsd/llvm/dist/clang/lib/Headers/clzerointrin.h create mode 100644 external/bsd/llvm/dist/clang/lib/Headers/lwpintrin.h create mode 100644 external/bsd/llvm/dist/clang/lib/Sema/CoroutineStmtBuilder.h create mode 100644 external/bsd/llvm/dist/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.h create mode 100644 external/bsd/llvm/dist/clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Tooling/Refactoring/AtomicChange.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Tooling/Refactoring/CMakeLists.txt create mode 100644 external/bsd/llvm/dist/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp create mode 100644 external/bsd/llvm/dist/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp create mode 100644 external/bsd/llvm/dist/clang/test/ARCMT/remap-applying.c create mode 100644 external/bsd/llvm/dist/clang/test/ARCMT/remap-applying.c.result create mode 100644 external/bsd/llvm/dist/clang/test/ASTMerge/class-template-partial-spec/Inputs/class-template-partial-spec1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/ASTMerge/class-template-partial-spec/Inputs/class-template-partial-spec2.cpp create mode 100644 external/bsd/llvm/dist/clang/test/ASTMerge/class-template-partial-spec/test.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/MisusedMovedObject.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/analyzer_test.py create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/copypaste/autogenerated_automoc.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/copypaste/dbus_autogenerated.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/copypaste/moc_autogenerated.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/copypaste/not-autogenerated.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/copypaste/ui_autogenerated.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/explain-svals.c create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/gmalloc.c create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/iterator-range.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/lifetime-cfg-output.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/null-deref-offsets.c create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/nullability-notes.m create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/openmp-unsupported.c create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/taint-diagnostic-visitor.c create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/temporaries-callback-order.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/unsupported-types.c create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/valist-as-lazycompound.c create mode 100644 external/bsd/llvm/dist/clang/test/Analysis/valist-uninitialized-no-undef.c create mode 100644 external/bsd/llvm/dist/clang/test/CXX/class.derived/class.member.lookup/p10.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/concepts-ts/temp/temp.constr/temp.constr.decl/class-template-decl.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-1z.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.class.deduct/p1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/drs/dr20xx.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/drs/dr21xx.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/expr/expr.post/expr.type.conv/p1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/user.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/basic/basic.link/module-declaration.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/basic/basic.link/p2/module.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/basic/basic.link/p2/module.cppm create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/basic/basic.link/p2/other.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/codegen-basics.cppm create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/dcl.dcl/dcl.module/dcl.module.import/p1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/dcl.dcl/dcl.module/dcl.module.interface/p1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/modules-ts/dcl.dcl/dcl.module/p5.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/over/over.match/over.match.funcs/over.match.class.deduct/p2.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/over/over.match/over.match.funcs/over.match.class.deduct/p3.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/temp/temp.deduct.guide/p1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/temp/temp.deduct.guide/p2.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/temp/temp.deduct.guide/p3.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CXX/temp/temp.res/p3.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeCompletion/auto_type.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeCompletion/keywords.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeCompletion/pragma-macro-token-caching.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/Inputs/debug-info-macro.h create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/Inputs/pgo-sample-thinlto-summary.prof create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/Inputs/thinlto-multi-module.ll create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/PR32874.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/aarch64-args.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/aarch64-varargs-ms.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/alloc-align-attr.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/altivec-ct.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/arm-execute-only.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/arm-target-attr.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/arm-thumb-mode-target-feature.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/asan-globals-gc.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/asan-no-globals-no-comdat.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/avr-inline-asm-constraints.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/avr-unsupported-inline-asm-constraints.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/avr/attributes/interrupt.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/avr/attributes/signal.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/avr/target-cpu-defines/atmega328p.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/avr/target-cpu-defines/attiny104.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/avr/target-cpu-defines/common.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/avx512vpopcntdqintrin.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/builtin-clzero.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/builtins-systemz-vector2-error.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/builtins-systemz-vector2.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/builtins-systemz-zvector2-error.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/builtins-systemz-zvector2.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/coff-aarch64-type-sizes.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/debug-info-macro.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/default-address-space.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/fentry.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/ffp-contract-fast-option.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/fp-contract-fast-pragma.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/fp-contract-on-asm.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/fp-contract-on-pragma.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/lto-newpm-pipeline.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/lwp-builtins.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/micromips-attr.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/mips-aggregate-arg.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/mips-debug-info-bitfield.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/mips-madd4.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/ms-inline-asm-EVEN.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/ms-intrinsics-other.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/ms_abi_aarch64.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/neon-aapcs-align.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/no-devirt.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/opt-record-MIR.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/pgo-sample-thinlto-summary.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/pr26099.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/pr3997.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/sparcv8-inline-asm.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/thin_link_bitcode.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/thinlto-backend-option.ll create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/thinlto-emit-llvm.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/thinlto-multi-module.ll create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/ubsan-pointer-overflow.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/ubsan-promoted-arith.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/ubsan-shift.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/ubsan-volatile.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/unaligned-decl.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/unaligned-expr.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/unaligned-field.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/union-tbaa1.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/wchar-size.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/x86-nontemporal.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/x86_64-mno-sse.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/xop-builtins-cmp.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/xray-always-instrument.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/xray-customevent.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/xray-imbue-arg1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/xray-instruction-threshold.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/xray-log-args.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGen/zvector2.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCUDA/propagate-metadata.cu create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/amdgcn-automatic-variable.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/array-default-argument.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/atomic-dllexport.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/attr-x86-no_caller_saved_registers.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/clang-sections-tentative.c create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/clang-sections.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/cxx1z-class-deduction.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/debug-info-class-optzns.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/debug-info-inheriting-constructor.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/debug-info-ms-dtor-thunks.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/debug-info-template-deduction-guide.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/dllexport-dtor-thunks.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/dllimport-memptr-global.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/implicit-exception-spec.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/initializer-list-ctor-order.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/msabi-blocks.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/no-lto-unit.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/pr33080.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/std-byte.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/type-metadata-thinlto.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/ubsan-bitfields.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/ubsan-global-alignment.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/ubsan-nullability-assign.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/ubsan-suppress-checks.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/ubsan-type-checks.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/unaligned-member-qualifier.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/unaligned.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCXX/union-tbaa2.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/Inputs/coroutine.h create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-await-domination.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-await.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-cleanup.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-eh-cleanup.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-gro.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-lambda.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-params.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-promise-dtor.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-ret-void.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-return.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenCoroutines/coro-unhandled-exception.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/availability-cf-link-guard.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/availability-check.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/empty-collection-literals.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/ivar-type-encoding.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/objc_copyStruct.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/sections.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/stret-lifetime.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/ubsan-nonnull-and-nullability.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/ubsan-nonnull.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjC/ubsan-nullability.m create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjCXX/arc-attrs-abi.mm create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjCXX/arc-indirect.mm create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjCXX/boxing.mm create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjCXX/lambda-to-block.mm create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjCXX/objc-weak.mm create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenObjCXX/objfw-exceptions.mm create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/amdgcn-automatic-variable.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/amdgcn-large-globals.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/amdgpu-alignment.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/amdgpu-debug-info-pointer-address-space.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/amdgpu-debug-info-variable-expression.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/amdgpu-env-amdgiz.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/amdgpu-sizeof-alignof.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/blocks.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx9.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/byval.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/gfx9-fp32-denorms.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/lifetime.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/overload.cl create mode 100644 external/bsd/llvm/dist/clang/test/CodeGenOpenCL/preserve_vec3.cl create mode 100644 external/bsd/llvm/dist/clang/test/CoverageMapping/empty-destructor.cpp create mode 100644 external/bsd/llvm/dist/clang/test/CoverageMapping/pr32679.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Driver/Inputs/baremetal_arm/include/c++/5.0.0/.keep create mode 100644 external/bsd/llvm/dist/clang/test/Driver/Inputs/baremetal_arm/include/c++/6.0.0/.keep create mode 100644 external/bsd/llvm/dist/clang/test/Driver/Inputs/baremetal_arm/include/c++/v1/.keep create mode 100644 external/bsd/llvm/dist/clang/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/aarch64/.keep create mode 100644 external/bsd/llvm/dist/clang/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/arm/.keep create mode 100644 external/bsd/llvm/dist/clang/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/i386/.keep create mode 100644 external/bsd/llvm/dist/clang/test/Driver/Inputs/resource_dir_with_arch_subdir/lib/linux/x86_64/.keep create mode 100644 external/bsd/llvm/dist/clang/test/Driver/ananas.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/arch-specific-libdir-rpath.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/arch-specific-libdir.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/arm-default-build-attributes.s create mode 100644 external/bsd/llvm/dist/clang/test/Driver/arm-no-neg-immediates.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/autocomplete.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/avr-mmcu.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/baremetal.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Driver/cl-cc-flags.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/cl-diagnostics.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/cl-include.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/compress-noias.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/crash-report-spaces.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/cuda-no-stack-protector.cu create mode 100644 external/bsd/llvm/dist/clang/test/Driver/darwin-ld-pthread.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/darwin-sdk-vs-os-version.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/darwin-simulator-macro.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/fsanitize-object-size.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/fuzzer.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/include-default-header.cl create mode 100644 external/bsd/llvm/dist/clang/test/Driver/lto-unit.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/nios2-cpu.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/no-arc-exception-silence.m create mode 100644 external/bsd/llvm/dist/clang/test/Driver/reloc-model.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/unavailable_aligned_allocation.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Driver/unknown-std.S create mode 100644 external/bsd/llvm/dist/clang/test/Driver/unknown-std.c create mode 100644 external/bsd/llvm/dist/clang/test/Driver/unknown-std.cl create mode 100644 external/bsd/llvm/dist/clang/test/Driver/unknown-std.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Driver/unsupported-faltivec.c create mode 100644 external/bsd/llvm/dist/clang/test/FixIt/fixit-add-synthesize-to-property.m create mode 100644 external/bsd/llvm/dist/clang/test/FixIt/fixit-availability.c create mode 100644 external/bsd/llvm/dist/clang/test/FixIt/fixit-availability.mm create mode 100644 external/bsd/llvm/dist/clang/test/FixIt/fixit-format-darwin.m create mode 100644 external/bsd/llvm/dist/clang/test/FixIt/fixit-pragma-attribute.c create mode 100644 external/bsd/llvm/dist/clang/test/FixIt/fixit-pragma-attribute.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Format/inplace.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/Inputs/SystemHeaderPrefix/line-directive-in-system.h create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/Inputs/SystemHeaderPrefix/noline.h create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/Inputs/empty.h create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/Inputs/line-directive.h create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/Inputs/optimization-remark-with-hotness-sample.proftext create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/pp-only-no-editor-placeholders.c create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/preprocessed-input.i create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/rewrite-includes-filenotfound.c create mode 100644 external/bsd/llvm/dist/clang/test/Frontend/system-header-line-directive.c create mode 100644 external/bsd/llvm/dist/clang/test/Headers/Inputs/usr/include/math.h create mode 100644 external/bsd/llvm/dist/clang/test/Headers/Inputs/usr/include/tgmath.h create mode 100644 external/bsd/llvm/dist/clang/test/Headers/htm-header.c create mode 100644 external/bsd/llvm/dist/clang/test/Headers/ms-cppoperkey.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Headers/ms-cppoperkey1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Headers/ms-cppoperkey2.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Headers/stdarg-gnuc_va_list.c create mode 100644 external/bsd/llvm/dist/clang/test/Headers/stdint-typeof-MINMAX.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Headers/tgmath-darwin.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/conflicting-struct/Inputs/S1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/conflicting-struct/Inputs/S2.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/conflicting-struct/test.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/direct/Inputs/S.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/direct/test.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/enum/Inputs/S.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/enum/test.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/forward-declared-struct/Inputs/S1.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/forward-declared-struct/Inputs/S2.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/forward-declared-struct/test.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/import-overrides/Inputs/Hierarchy.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/import-overrides/test.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/in-class-initializer/Inputs/S.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/in-class-initializer/test.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/indirect-struct-member-access/Inputs/S.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/indirect-struct-member-access/test.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/member-in-struct/Inputs/S.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/member-in-struct/test.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/multiple-forward-declarations/Inputs/S1.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/multiple-forward-declarations/Inputs/S2.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/multiple-forward-declarations/test.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/overloaded-function/Inputs/F1.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/overloaded-function/Inputs/F2.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/overloaded-function/test.c create mode 100644 external/bsd/llvm/dist/clang/test/Import/struct-in-namespace/Inputs/N1.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/struct-in-namespace/Inputs/N2.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/struct-in-namespace/Inputs/N3.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/struct-in-namespace/test.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/template-specialization/Inputs/T.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Import/template-specialization/test.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Index/Core/Inputs/sys/system-head.h create mode 100644 external/bsd/llvm/dist/clang/test/Index/Core/external-source-symbol-attr.m create mode 100644 external/bsd/llvm/dist/clang/test/Index/Core/index-dependent-source.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Index/Core/index-instantiated-source.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Index/Core/index-pch.c create mode 100644 external/bsd/llvm/dist/clang/test/Index/Core/index-source-invalid-name.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Index/Core/index-system.mm create mode 100644 external/bsd/llvm/dist/clang/test/Index/Core/no-templated-canonical-decl.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Index/Inputs/empty.dia create mode 100644 external/bsd/llvm/dist/clang/test/Index/KeepGoingWithLotsOfErrors.mm create mode 100644 external/bsd/llvm/dist/clang/test/Index/allow-editor-placeholders.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Index/complete-available.m create mode 100644 external/bsd/llvm/dist/clang/test/Index/complete-cached-globals.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Index/ctor-init-source-loc.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Index/opencl-types.cl create mode 100644 external/bsd/llvm/dist/clang/test/Index/pch-from-libclang.c create mode 100644 external/bsd/llvm/dist/clang/test/Index/pipe-size.cl create mode 100644 external/bsd/llvm/dist/clang/test/Index/read-empty-diags.test create mode 100644 external/bsd/llvm/dist/clang/test/Index/single-file-parse.m create mode 100644 external/bsd/llvm/dist/clang/test/Index/target-info.c create mode 100644 external/bsd/llvm/dist/clang/test/Lexer/asm-preproc-no-unicode.s create mode 100644 external/bsd/llvm/dist/clang/test/Lexer/case-insensitive-include-pr31836.sh create mode 100644 external/bsd/llvm/dist/clang/test/Lexer/newline-nul.c create mode 100644 external/bsd/llvm/dist/clang/test/Lexer/preamble2.c create mode 100644 external/bsd/llvm/dist/clang/test/Misc/Inputs/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Misc/ast-print-out-of-line-func.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Misc/caret-diags-multiline.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Misc/cc1as-compress.s create mode 100644 external/bsd/llvm/dist/clang/test/Misc/find-diagnostic-id.c create mode 100644 external/bsd/llvm/dist/clang/test/Misc/pr32207.c create mode 100644 external/bsd/llvm/dist/clang/test/Misc/pragma-attribute-cxx-subject-match-rules.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Misc/pragma-attribute-cxx.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Misc/pragma-attribute-objc-subject-match-rules.m create mode 100644 external/bsd/llvm/dist/clang/test/Misc/pragma-attribute-objc.m create mode 100644 external/bsd/llvm/dist/clang/test/Misc/pragma-attribute-strict-subjects.c create mode 100644 external/bsd/llvm/dist/clang/test/Misc/pragma-attribute-supported-attributes-list.test create mode 100644 external/bsd/llvm/dist/clang/test/Modules/DebugInfoNamespace.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/DebugInfoNamespace/A.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/DebugInfoNamespace/B.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/DebugInfoNamespace/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/DebugObjCImport.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/DependsOnModule.framework/Headers/coroutines.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/DependsOnModule.framework/Headers/not_coroutines.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/F.framework/Headers/F.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/F.framework/Modules/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/F.framework/Modules/module.private.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/F.framework/PrivateHeaders/NS.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/B.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/Sub.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/BPriv.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/SubPriv.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/Headers/A.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/Headers/Main.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/Modules/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/Modules/module.private.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/PrivateHeaders/APriv.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/Main.framework/PrivateHeaders/MainPriv.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/Frameworks/Sub.framework/Headers/B.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/Frameworks/Sub.framework/Headers/Sub.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/Frameworks/Sub.framework/PrivateHeaders/BPriv.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/Frameworks/Sub.framework/PrivateHeaders/SubPriv.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/Headers/A.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/Headers/Main.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/Modules/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/Modules/module.private.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/PrivateHeaders/APriv.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/MainA.framework/PrivateHeaders/MainPriv.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/SameHeader/A.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/SameHeader/B.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/SameHeader/C.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/SameHeader/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/anon-redecl/a.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/anon-redecl/b.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/anon-redecl/c1.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/anon-redecl/c2.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/anon-redecl/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/check-for-sanitizer-feature/check.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/check-for-sanitizer-feature/map create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-flags/foo.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-flags/foo.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-flags/use.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-nodep/foo.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-nodep/foo.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-opt/bar.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-opt/bar.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-opt/foo.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-opt/foo.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen-opt/use.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen/foo.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen/foo.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/codegen/use.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/crash-typo-correction-visibility/module.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/crash-typo-correction-visibility/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/cxx17/decls.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/cxx17/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/diag_flags.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/diagnose-missing-import/a.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/diagnose-missing-import/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/gnumode-non-benign/module.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/gnumode-non-benign/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/header-attribs/bar.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/header-attribs/baz.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/header-attribs/foo.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/header-attribs/modular.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/header-attribs/textual.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/hidden-names/hidden.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/hidden-names/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/hidden-names/visible.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/implicit-built-Werror-using-W/convert.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/implicit-built-Werror-using-W/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/incomplete-umbrella/Foo.framework/Headers/Bar.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/incomplete-umbrella/Foo.framework/Headers/FooPublic.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/incomplete-umbrella/Foo.framework/Modules/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/incomplete-umbrella/Foo.framework/Modules/module.private.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/incomplete-umbrella/Foo.framework/PrivateHeaders/Baz.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/incomplete-umbrella/Foo.framework/PrivateHeaders/Foo.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.private.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/lookup-assert-protocol/Base.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/lookup-assert-protocol/Derive.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/lookup-assert-protocol/H3.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/lookup-assert-protocol/module.map create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/malformed-overload/X.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/malformed-overload/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/merge-function-defs/a.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/merge-function-defs/b.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/merge-function-defs/map create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/merge-name-for-linkage/c1.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/merge-name-for-linkage/c2.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/objc-desig-init/A.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/objc-desig-init/A2.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/objc-desig-init/Base.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/objc-desig-init/X.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/objc-desig-init/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/objcAtKeywordMissingEnd.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/outofdate-rebuild/AppKit.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/outofdate-rebuild/Cocoa.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/outofdate-rebuild/CoreText.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/outofdate-rebuild/CoreVideo.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/outofdate-rebuild/Foundation.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/outofdate-rebuild/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/overloadable-attrs/a.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/overloadable-attrs/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/pragma_pack_set.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess-decluse/a.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess-decluse/a.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess-decluse/b.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess-decluse/b.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess-decluse/main.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess/a.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess/b.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess/c.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess/file2.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/preprocess/other.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/system-out-of-date/X.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/system-out-of-date/Y.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/system-out-of-date/Z.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/system-out-of-date/module.map create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/warning-mismatch/Mismatch.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/warning-mismatch/System.h create mode 100644 external/bsd/llvm/dist/clang/test/Modules/Inputs/warning-mismatch/module.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/anon-redecl.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/check-for-sanitizer-feature.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/codegen-flags.test create mode 100644 external/bsd/llvm/dist/clang/test/Modules/codegen-nodep.test create mode 100644 external/bsd/llvm/dist/clang/test/Modules/codegen-opt.test create mode 100644 external/bsd/llvm/dist/clang/test/Modules/codegen.test create mode 100644 external/bsd/llvm/dist/clang/test/Modules/const-var-init-update.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/crash-typo-correction-visibility.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/cxx17.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/debug-info-moduleimport-in-module.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/diag-flags.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/diag-pragma.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/diagnose-missing-import.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/extern_cxx.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/find-privateheaders.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/gnumode-non-benign.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/header-attribs.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/hidden-names.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/implicit-built-Werror-using-W.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/import-syntax.c create mode 100644 external/bsd/llvm/dist/clang/test/Modules/incomplete-umbrella.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/interface-visibility.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/invalid-pch-module-id.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/localsubmodulevis.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/lookup-assert-protocol.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/macro-redefinition.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/malformed-overload.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/merge-function-defs.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/missing-flag.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/module_map_cwd.c create mode 100644 external/bsd/llvm/dist/clang/test/Modules/modules-cache-path-canonicalization.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/objc-at-keyword.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/objc-designated-init-mod.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/odr_hash.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/outofdate-rebuild.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/overloadable-attrs.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/pragma-pack.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/preprocess-build-diamond.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/preprocess-build.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/preprocess-decluse.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/preprocess-missing.modulemap create mode 100644 external/bsd/llvm/dist/clang/test/Modules/preprocess-module.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/preprocess-nested.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/preprocess-unavailable.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Modules/redefinition-c-tagtypes.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/redefinition-same-header.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/requires-coroutines.mm create mode 100644 external/bsd/llvm/dist/clang/test/Modules/system-out-of-date-test.m create mode 100644 external/bsd/llvm/dist/clang/test/Modules/warning-mismatch.m create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/capturing_in_templates.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_firstprivate_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_parallel_for_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_parallel_for_if_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_parallel_for_messages.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/distribute_parallel_for_proc_bind_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/nvptx_target_parallel_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/nvptx_target_parallel_num_threads_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/nvptx_target_parallel_proc_bind_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/nvptx_target_parallel_reduction_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/nvptx_target_printf_codegen.c create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/nvptx_target_teams_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/report_default_DSA.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_parallel_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_parallel_codegen_registration.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_parallel_codegen_registration_naming.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_parallel_if_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_parallel_num_threads_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_teams_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_teams_codegen_registration.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_teams_codegen_registration_naming.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_teams_num_teams_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/target_teams_thread_limit_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/taskgroup_task_reduction_messages.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/taskloop_reduction_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/taskloop_reduction_messages.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/taskloop_simd_reduction_messages.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/varargs.cpp create mode 100644 external/bsd/llvm/dist/clang/test/OpenMP/vla_crash.c create mode 100644 external/bsd/llvm/dist/clang/test/PCH/cxx-dependent-sized-ext-vector.cpp create mode 100644 external/bsd/llvm/dist/clang/test/PCH/emit-dependencies.c create mode 100644 external/bsd/llvm/dist/clang/test/PCH/empty-def-fwd-struct.h create mode 100644 external/bsd/llvm/dist/clang/test/PCH/pragma-pack.c create mode 100644 external/bsd/llvm/dist/clang/test/Parser/attr-external-source-symbol-cxx11.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Parser/attr-external-source-symbol.m create mode 100644 external/bsd/llvm/dist/clang/test/Parser/cxx1z-class-template-argument-deduction.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Parser/declspec-recovery.c create mode 100644 external/bsd/llvm/dist/clang/test/Parser/declspec-supported.c create mode 100644 external/bsd/llvm/dist/clang/test/Parser/editor-placeholder-recovery.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Parser/objc-at-implementation-eof-crash.m create mode 100644 external/bsd/llvm/dist/clang/test/Parser/objc-at-interface-eof-crash.m create mode 100644 external/bsd/llvm/dist/clang/test/Parser/objc-cxx-keyword-identifiers.mm create mode 100644 external/bsd/llvm/dist/clang/test/Parser/pragma-attribute-declspec.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Parser/pragma-attribute.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Parser/pragma-fp.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Parser/vector-cast-define.cl create mode 100644 external/bsd/llvm/dist/clang/test/Preprocessor/Inputs/nonportable-hmaps/foo.hmap create mode 100644 external/bsd/llvm/dist/clang/test/Preprocessor/Inputs/nonportable-hmaps/headers/foo/Foo.h create mode 100644 external/bsd/llvm/dist/clang/test/Preprocessor/nonportable-include-with-hmap.c create mode 100644 external/bsd/llvm/dist/clang/test/Preprocessor/pragma_module.c create mode 100644 external/bsd/llvm/dist/clang/test/Profile/Inputs/cxx-missing-bodies.proftext create mode 100644 external/bsd/llvm/dist/clang/test/Profile/c-ternary.c create mode 100644 external/bsd/llvm/dist/clang/test/Profile/cxx-missing-bodies.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Rewriter/objc-modern-metadata-visibility2.mm create mode 100644 external/bsd/llvm/dist/clang/test/Sema/address-unaligned.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/alloc-align-attr.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/attr-external-source-symbol.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/attr-micromips.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/avr-interrupt-attr.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/avr-signal-attr.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/declspec-naked.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/enum-attr.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/ext_vector_ops.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/pr30306.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Sema/pragma-attribute-strict-subjects.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/pragma-attribute.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/pragma-clang-section.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/redefinition-same-header.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/unaligned-qualifier.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/varargs-aarch64.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/vector-gcc-compat.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/vector-gcc-compat.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Sema/xray-log-args-class.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Sema/xray-log-args-oob.c create mode 100644 external/bsd/llvm/dist/clang/test/Sema/xray-log-args-oob.cpp create mode 100644 external/bsd/llvm/dist/clang/test/Sema/zvector2.c create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/Inputs/nullability-completeness.h create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/Inputs/std-coroutine.h create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/P30636.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/PR27037.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/alloc-align-attr.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/amdgpu-sizeof-alignof.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/attr-non-x86-no_caller_saved_registers.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/attr-x86-no_caller_saved_registers.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/co_await-range-for.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/coroutine-seh.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/coroutine-unhandled_exception-warning.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/coroutine-uninitialized-warning-crash.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/designated-initializers-base-class.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/dllimport-memptr.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/enum-attr.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/eval-crashes.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/friend3.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/invalid-template-params.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/null-cast.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/suppress.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/template-multiple-attr-propagation.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/template-specialization.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/unavailable_aligned_allocation.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/warn-bitfield-enum-conversion.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/warn-cast-qual.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/warn-inconsistent-missing-destructor-override create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/warn-throw-out-noexcept-func.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/warn-unused-lambda-capture.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaCXX/warn-zero-nullptr.cpp create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjC/attr-ns_returns_retained.m create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjC/category-attribute.m create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjC/diagnose_if.m create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjC/unguarded-availability-new.m create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjC/unsafe-perform-selector.m create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjC/x86-method-vector-values.m create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjCXX/arc-ptr-comparison.mm create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjCXX/interface-return-type.mm create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjCXX/is-base-of.mm create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjCXX/objc-weak-type-traits.mm create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjCXX/objc-weak.mm create mode 100644 external/bsd/llvm/dist/clang/test/SemaObjCXX/pr32725.mm create mode 100644 external/bsd/llvm/dist/clang/test/SemaOpenCL/arithmetic-conversions.cl create mode 100644 external/bsd/llvm/dist/clang/test/SemaOpenCL/array-init.cl create mode 100644 external/bsd/llvm/dist/clang/test/SemaOpenCL/atomic-init.cl create mode 100644 external/bsd/llvm/dist/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx9.cl create mode 100644 external/bsd/llvm/dist/clang/test/SemaOpenCL/invalid-assignment-constant-address-space.cl create mode 100644 external/bsd/llvm/dist/clang/test/SemaOpenCL/logical-ops.cl create mode 100644 external/bsd/llvm/dist/clang/test/SemaOpenCL/types.cl create mode 100644 external/bsd/llvm/dist/clang/test/SemaOpenCL/vector_swizzle_length.cl create mode 100644 external/bsd/llvm/dist/clang/test/SemaTemplate/typo-template-name.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/ClassAsTemplateArgument.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/ClassFindByName.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/ClassSimpleRenaming.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/ClassTestMulti.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/ClassTestMultiByName.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/ComplexFunctionOverride.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/ComplicatedClassType.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/Ctor.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/CtorInitializer.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/DeclRefExpr.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/Field.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/FunctionMacro.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/FunctionOverride.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/FunctionWithClassFindByName.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/IncludeHeaderWithSymbol.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/Inputs/HeaderWithSymbol.h create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/Inputs/OffsetToNewName.yaml create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/Inputs/QualifiedNameToNewName.yaml create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/InvalidNewName.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/InvalidOffset.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/InvalidQualifiedName.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/MemberExprMacro.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/Namespace.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/NoNewName.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/TemplateClassInstantiation.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/TemplateTypename.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/TemplatedClassFunction.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/UserDefinedConversion.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/Variable.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/VariableMacro.cpp create mode 100644 external/bsd/llvm/dist/clang/test/clang-rename/YAMLInput.cpp create mode 100644 external/bsd/llvm/dist/clang/tools/clang-format-vs/ClangFormat/RunningDocTableEventsDispatcher.cs create mode 100644 external/bsd/llvm/dist/clang/tools/clang-format-vs/ClangFormat/Vsix.cs create mode 100644 external/bsd/llvm/dist/clang/tools/clang-format-vs/ClangFormat/license.txt create mode 100644 external/bsd/llvm/dist/clang/tools/clang-format/clang-format-test.el create mode 100644 external/bsd/llvm/dist/clang/tools/clang-rename/CMakeLists.txt create mode 100644 external/bsd/llvm/dist/clang/tools/clang-rename/ClangRename.cpp create mode 100644 external/bsd/llvm/dist/clang/tools/clang-rename/clang-rename.el create mode 100644 external/bsd/llvm/dist/clang/tools/clang-rename/clang-rename.py create mode 100644 external/bsd/llvm/dist/clang/tools/diagtool/FindDiagnosticID.cpp create mode 100644 external/bsd/llvm/dist/clang/tools/scan-build-py/libscanbuild/arguments.py create mode 100644 external/bsd/llvm/dist/clang/unittests/Analysis/CloneDetectionTest.cpp create mode 100644 external/bsd/llvm/dist/clang/unittests/Basic/MemoryBufferCacheTest.cpp create mode 100644 external/bsd/llvm/dist/clang/unittests/Format/FormatTestComments.cpp create mode 100644 external/bsd/llvm/dist/clang/unittests/Format/FormatTestTextProto.cpp create mode 100644 external/bsd/llvm/dist/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp create mode 100644 external/bsd/llvm/dist/clang/unittests/Format/UsingDeclarationsSorterTest.cpp create mode 100644 external/bsd/llvm/dist/clang/unittests/Rename/CMakeLists.txt create mode 100644 external/bsd/llvm/dist/clang/unittests/Rename/ClangRenameTest.h create mode 100644 external/bsd/llvm/dist/clang/unittests/Rename/RenameClassTest.cpp create mode 100644 external/bsd/llvm/dist/clang/unittests/Tooling/CastExprTest.cpp create mode 100644 external/bsd/llvm/dist/clang/unittests/Tooling/DiagnosticsYamlTest.cpp create mode 100644 external/bsd/llvm/dist/clang/utils/TableGen/ClangOptionDocEmitter.cpp create mode 100644 external/bsd/llvm/dist/clang/utils/bash-autocomplete.sh diff --git a/external/bsd/llvm/dist/clang/CMakeLists.txt b/external/bsd/llvm/dist/clang/CMakeLists.txt index c56707e7fb57..2667b1d6892e 100644 --- a/external/bsd/llvm/dist/clang/CMakeLists.txt +++ b/external/bsd/llvm/dist/clang/CMakeLists.txt @@ -42,7 +42,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) list(GET CONFIG_OUTPUT 3 INCLUDE_DIR) list(GET CONFIG_OUTPUT 4 LLVM_OBJ_ROOT) list(GET CONFIG_OUTPUT 5 MAIN_SRC_DIR) - list(GET CONFIG_OUTPUT 6 LLVM_CMAKE_PATH) + list(GET CONFIG_OUTPUT 6 LLVM_CONFIG_CMAKE_PATH) if(NOT MSVC_IDE) set(LLVM_ENABLE_ASSERTIONS ${ENABLE_ASSERTIONS} @@ -57,6 +57,10 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree") set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree") + # Normalize LLVM_CMAKE_PATH. --cmakedir might contain backslashes. + # CMake assumes slashes as PATH. + file(TO_CMAKE_PATH ${LLVM_CONFIG_CMAKE_PATH} LLVM_CMAKE_PATH) + find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) @@ -78,6 +82,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) endif() + option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON) option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF) @@ -181,6 +186,8 @@ if (LIBXML2_FOUND) set(CLANG_HAVE_LIBXML 1) endif() +find_package(Z3 4.5) + include(CheckIncludeFile) check_include_file(sys/resource.h CLANG_HAVE_RLIMITS) @@ -325,10 +332,6 @@ if (APPLE) endif() endif() -configure_file( - ${CLANG_SOURCE_DIR}/include/clang/Config/config.h.cmake - ${CLANG_BINARY_DIR}/include/clang/Config/config.h) - include(CMakeParseArguments) include(AddClang) @@ -356,6 +359,10 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) PATTERN "*.inc" PATTERN "*.h" ) + + install(PROGRAMS utils/bash-autocomplete.sh + DESTINATION share/clang + ) endif() add_definitions( -D_GNU_SOURCE ) @@ -364,29 +371,25 @@ option(CLANG_BUILD_TOOLS "Build the Clang tools. If OFF, just generate build targets." ON) option(CLANG_ENABLE_ARCMT "Build ARCMT." ON) -if (CLANG_ENABLE_ARCMT) - set(ENABLE_CLANG_ARCMT "1") -else() - set(ENABLE_CLANG_ARCMT "0") -endif() - option(CLANG_ENABLE_STATIC_ANALYZER "Build static analyzer." ON) -if (CLANG_ENABLE_STATIC_ANALYZER) - set(ENABLE_CLANG_STATIC_ANALYZER "1") -else() - set(ENABLE_CLANG_STATIC_ANALYZER "0") + +option(CLANG_ANALYZER_BUILD_Z3 + "Build the static analyzer with the Z3 constraint manager." OFF) + +if(NOT CLANG_ENABLE_STATIC_ANALYZER AND (CLANG_ENABLE_ARCMT OR CLANG_ANALYZER_BUILD_Z3)) + message(FATAL_ERROR "Cannot disable static analyzer while enabling ARCMT or Z3") endif() -if (NOT CLANG_ENABLE_STATIC_ANALYZER AND CLANG_ENABLE_ARCMT) - message(FATAL_ERROR "Cannot disable static analyzer while enabling ARCMT") +if(CLANG_ANALYZER_BUILD_Z3) + if(Z3_FOUND) + set(CLANG_ANALYZER_WITH_Z3 1) + else() + message(FATAL_ERROR "Cannot find Z3 header file or shared library") + endif() endif() if(CLANG_ENABLE_ARCMT) - add_definitions(-DCLANG_ENABLE_ARCMT) - add_definitions(-DCLANG_ENABLE_OBJC_REWRITER) -endif() -if(CLANG_ENABLE_STATIC_ANALYZER) - add_definitions(-DCLANG_ENABLE_STATIC_ANALYZER) + set(CLANG_ENABLE_OBJC_REWRITER ON) endif() # Clang version information @@ -415,11 +418,6 @@ add_subdirectory(tools) add_subdirectory(runtime) option(CLANG_BUILD_EXAMPLES "Build CLANG example programs by default." OFF) -if (CLANG_BUILD_EXAMPLES) - set(ENABLE_CLANG_EXAMPLES "1") -else() - set(ENABLE_CLANG_EXAMPLES "0") -endif() add_subdirectory(examples) if(APPLE) @@ -515,6 +513,10 @@ if (CLANG_ENABLE_BOOTSTRAP) set(STAMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-stamps/) set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-bins/) + if(BOOTSTRAP_LLVM_ENABLE_LLD) + add_dependencies(clang-bootstrap-deps lld) + endif() + # If the next stage is LTO we need to depend on LTO and possibly lld or LLVMgold if(BOOTSTRAP_LLVM_ENABLE_LTO OR LLVM_ENABLE_LTO AND NOT LLVM_BUILD_INSTRUMENTED) if(APPLE) @@ -531,9 +533,7 @@ if (CLANG_ENABLE_BOOTSTRAP) -DDYLD_LIBRARY_PATH=${LLVM_LIBRARY_OUTPUT_INTDIR}) elseif(NOT WIN32) add_dependencies(clang-bootstrap-deps llvm-ar llvm-ranlib) - if(BOOTSTRAP_LLVM_ENABLE_LLD) - add_dependencies(clang-bootstrap-deps lld) - elseif(LLVM_BINUTILS_INCDIR) + if(NOT BOOTSTRAP_LLVM_ENABLE_LLD AND LLVM_BINUTILS_INCDIR) add_dependencies(clang-bootstrap-deps LLVMgold) endif() set(LTO_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) @@ -579,10 +579,17 @@ if (CLANG_ENABLE_BOOTSTRAP) add_dependencies(clang-bootstrap-deps compiler-rt) endif() + set(C_COMPILER "clang") + set(CXX_COMPILER "clang++") + if(WIN32) + set(C_COMPILER "clang-cl.exe") + set(CXX_COMPILER "clang-cl.exe") + endif() + set(COMPILER_OPTIONS - -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++ - -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang - -DCMAKE_ASM_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) + -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/${CXX_COMPILER} + -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/${C_COMPILER} + -DCMAKE_ASM_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/${C_COMPILER}) if(BOOTSTRAP_LLVM_BUILD_INSTRUMENTED) add_dependencies(clang-bootstrap-deps llvm-profdata) @@ -696,3 +703,7 @@ endif() if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION) add_subdirectory(utils/ClangVisualizers) endif() + +configure_file( + ${CLANG_SOURCE_DIR}/include/clang/Config/config.h.cmake + ${CLANG_BINARY_DIR}/include/clang/Config/config.h) diff --git a/external/bsd/llvm/dist/clang/bindings/python/clang/__init__.py b/external/bsd/llvm/dist/clang/bindings/python/clang/__init__.py index fba49e38c9be..88f30812383f 100644 --- a/external/bsd/llvm/dist/clang/bindings/python/clang/__init__.py +++ b/external/bsd/llvm/dist/clang/bindings/python/clang/__init__.py @@ -20,13 +20,5 @@ The available modules are: Bindings for the Clang indexing library. """ - -# Python 3 uses unicode for strings. The bindings, in particular the interaction -# with ctypes, need modifying to handle conversions between unicode and -# c-strings. -import sys -if sys.version_info[0] != 2: - raise Exception("Only Python 2 is supported.") - __all__ = ['cindex'] diff --git a/external/bsd/llvm/dist/clang/bindings/python/clang/cindex.py b/external/bsd/llvm/dist/clang/bindings/python/clang/cindex.py index cf867bbf7d0b..236803a9ab9b 100644 --- a/external/bsd/llvm/dist/clang/bindings/python/clang/cindex.py +++ b/external/bsd/llvm/dist/clang/bindings/python/clang/cindex.py @@ -67,6 +67,60 @@ import collections import clang.enumerations +import sys +if sys.version_info[0] == 3: + # Python 3 strings are unicode, translate them to/from utf8 for C-interop. + class c_interop_string(c_char_p): + + def __init__(self, p=None): + if p is None: + p = "" + if isinstance(p, str): + p = p.encode("utf8") + super(c_char_p, self).__init__(p) + + def __str__(self): + return self.value + + @property + def value(self): + if super(c_char_p, self).value is None: + return None + return super(c_char_p, self).value.decode("utf8") + + @classmethod + def from_param(cls, param): + if isinstance(param, str): + return cls(param) + if isinstance(param, bytes): + return cls(param) + raise TypeError("Cannot convert '{}' to '{}'".format(type(param).__name__, cls.__name__)) + + @staticmethod + def to_python_string(x, *args): + return x.value + + def b(x): + if isinstance(x, bytes): + return x + return x.encode('utf8') + + xrange = range + +elif sys.version_info[0] == 2: + # Python 2 strings are utf8 byte strings, no translation is needed for + # C-interop. + c_interop_string = c_char_p + + def _to_python_string(x, *args): + return x + + c_interop_string.to_python_string = staticmethod(_to_python_string) + + def b(x): + return x + + # ctypes doesn't implicitly convert c_void_p to the appropriate wrapper # object. This is a problem, because it means that from_parameter will see an # integer and pass the wrong value on platforms where int != void*. Work around @@ -157,6 +211,7 @@ class _CXString(Structure): assert isinstance(res, _CXString) return conf.lib.clang_getCString(res) + class SourceLocation(Structure): """ A SourceLocation represents a particular location within a source file. @@ -596,7 +651,7 @@ class CursorKind(BaseEnumeration): @staticmethod def get_all_kinds(): """Return all CursorKind enumeration instances.""" - return filter(None, CursorKind._kinds) + return [x for x in CursorKind._kinds if not x is None] def is_declaration(self): """Test if this is a declaration kind.""" @@ -727,7 +782,7 @@ CursorKind.CONVERSION_FUNCTION = CursorKind(26) # A C++ template type parameter CursorKind.TEMPLATE_TYPE_PARAMETER = CursorKind(27) -# A C++ non-type template paramater. +# A C++ non-type template parameter. CursorKind.TEMPLATE_NON_TYPE_PARAMETER = CursorKind(28) # A C++ template template parameter. @@ -1312,6 +1367,30 @@ TemplateArgumentKind.DECLARATION = TemplateArgumentKind(2) TemplateArgumentKind.NULLPTR = TemplateArgumentKind(3) TemplateArgumentKind.INTEGRAL = TemplateArgumentKind(4) +### Exception Specification Kinds ### +class ExceptionSpecificationKind(BaseEnumeration): + """ + An ExceptionSpecificationKind describes the kind of exception specification + that a function has. + """ + + # The required BaseEnumeration declarations. + _kinds = [] + _name_map = None + + def __repr__(self): + return 'ExceptionSpecificationKind.{}'.format(self.name) + +ExceptionSpecificationKind.NONE = ExceptionSpecificationKind(0) +ExceptionSpecificationKind.DYNAMIC_NONE = ExceptionSpecificationKind(1) +ExceptionSpecificationKind.DYNAMIC = ExceptionSpecificationKind(2) +ExceptionSpecificationKind.MS_ANY = ExceptionSpecificationKind(3) +ExceptionSpecificationKind.BASIC_NOEXCEPT = ExceptionSpecificationKind(4) +ExceptionSpecificationKind.COMPUTED_NOEXCEPT = ExceptionSpecificationKind(5) +ExceptionSpecificationKind.UNEVALUATED = ExceptionSpecificationKind(6) +ExceptionSpecificationKind.UNINSTANTIATED = ExceptionSpecificationKind(7) +ExceptionSpecificationKind.UNPARSED = ExceptionSpecificationKind(8) + ### Cursors ### class Cursor(Structure): @@ -1399,6 +1478,11 @@ class Cursor(Structure): """ return conf.lib.clang_CXXMethod_isVirtual(self) + def is_scoped_enum(self): + """Returns True if the cursor refers to a scoped enum declaration. + """ + return conf.lib.clang_EnumDecl_isScoped(self) + def get_definition(self): """ If the cursor is a reference to a declaration or a declaration of @@ -1531,6 +1615,18 @@ class Cursor(Structure): return self._result_type + @property + def exception_specification_kind(self): + ''' + Retrieve the exception specification kind, which is one of the values + from the ExceptionSpecificationKind enumeration. + ''' + if not hasattr(self, '_exception_specification_kind'): + exc_kind = conf.lib.clang_getCursorExceptionSpecificationType(self) + self._exception_specification_kind = ExceptionSpecificationKind.from_id(exc_kind) + + return self._exception_specification_kind + @property def underlying_typedef_type(self): """Return the underlying type of a typedef declaration. @@ -1887,6 +1983,7 @@ TypeKind.OBJCID = TypeKind(27) TypeKind.OBJCCLASS = TypeKind(28) TypeKind.OBJCSEL = TypeKind(29) TypeKind.FLOAT128 = TypeKind(30) +TypeKind.HALF = TypeKind(31) TypeKind.COMPLEX = TypeKind(100) TypeKind.POINTER = TypeKind(101) TypeKind.BLOCKPOINTER = TypeKind(102) @@ -1907,6 +2004,47 @@ TypeKind.DEPENDENTSIZEDARRAY = TypeKind(116) TypeKind.MEMBERPOINTER = TypeKind(117) TypeKind.AUTO = TypeKind(118) TypeKind.ELABORATED = TypeKind(119) +TypeKind.PIPE = TypeKind(120) +TypeKind.OCLIMAGE1DRO = TypeKind(121) +TypeKind.OCLIMAGE1DARRAYRO = TypeKind(122) +TypeKind.OCLIMAGE1DBUFFERRO = TypeKind(123) +TypeKind.OCLIMAGE2DRO = TypeKind(124) +TypeKind.OCLIMAGE2DARRAYRO = TypeKind(125) +TypeKind.OCLIMAGE2DDEPTHRO = TypeKind(126) +TypeKind.OCLIMAGE2DARRAYDEPTHRO = TypeKind(127) +TypeKind.OCLIMAGE2DMSAARO = TypeKind(128) +TypeKind.OCLIMAGE2DARRAYMSAARO = TypeKind(129) +TypeKind.OCLIMAGE2DMSAADEPTHRO = TypeKind(130) +TypeKind.OCLIMAGE2DARRAYMSAADEPTHRO = TypeKind(131) +TypeKind.OCLIMAGE3DRO = TypeKind(132) +TypeKind.OCLIMAGE1DWO = TypeKind(133) +TypeKind.OCLIMAGE1DARRAYWO = TypeKind(134) +TypeKind.OCLIMAGE1DBUFFERWO = TypeKind(135) +TypeKind.OCLIMAGE2DWO = TypeKind(136) +TypeKind.OCLIMAGE2DARRAYWO = TypeKind(137) +TypeKind.OCLIMAGE2DDEPTHWO = TypeKind(138) +TypeKind.OCLIMAGE2DARRAYDEPTHWO = TypeKind(139) +TypeKind.OCLIMAGE2DMSAAWO = TypeKind(140) +TypeKind.OCLIMAGE2DARRAYMSAAWO = TypeKind(141) +TypeKind.OCLIMAGE2DMSAADEPTHWO = TypeKind(142) +TypeKind.OCLIMAGE2DARRAYMSAADEPTHWO = TypeKind(143) +TypeKind.OCLIMAGE3DWO = TypeKind(144) +TypeKind.OCLIMAGE1DRW = TypeKind(145) +TypeKind.OCLIMAGE1DARRAYRW = TypeKind(146) +TypeKind.OCLIMAGE1DBUFFERRW = TypeKind(147) +TypeKind.OCLIMAGE2DRW = TypeKind(148) +TypeKind.OCLIMAGE2DARRAYRW = TypeKind(149) +TypeKind.OCLIMAGE2DDEPTHRW = TypeKind(150) +TypeKind.OCLIMAGE2DARRAYDEPTHRW = TypeKind(151) +TypeKind.OCLIMAGE2DMSAARW = TypeKind(152) +TypeKind.OCLIMAGE2DARRAYMSAARW = TypeKind(153) +TypeKind.OCLIMAGE2DMSAADEPTHRW = TypeKind(154) +TypeKind.OCLIMAGE2DARRAYMSAADEPTHRW = TypeKind(155) +TypeKind.OCLIMAGE3DRW = TypeKind(156) +TypeKind.OCLSAMPLER = TypeKind(157) +TypeKind.OCLEVENT = TypeKind(158) +TypeKind.OCLQUEUE = TypeKind(159) +TypeKind.OCLRESERVEID = TypeKind(160) class RefQualifierKind(BaseEnumeration): """Describes a specific ref-qualifier of a type.""" @@ -2065,6 +2203,12 @@ class Type(Structure): return conf.lib.clang_isFunctionTypeVariadic(self) + def get_address_space(self): + return conf.lib.clang_getAddressSpace(self) + + def get_typedef_name(self): + return conf.lib.clang_getTypedefName(self) + def is_pod(self): """Determine whether this Type represents plain old data (POD).""" return conf.lib.clang_isPODType(self) @@ -2127,7 +2271,7 @@ class Type(Structure): """ Retrieve the offset of a field in the record. """ - return conf.lib.clang_Type_getOffsetOf(self, c_char_p(fieldname)) + return conf.lib.clang_Type_getOffsetOf(self, fieldname) def get_ref_qualifier(self): """ @@ -2151,6 +2295,14 @@ class Type(Structure): callbacks['fields_visit'](visitor), fields) return iter(fields) + def get_exception_specification_kind(self): + """ + Return the kind of the exception specification; a value from + the ExceptionSpecificationKind enumeration. + """ + return ExceptionSpecificationKind.from_id( + conf.lib.clang.getExceptionSpecificationType(self)) + @property def spelling(self): """Retrieve the spelling of this Type.""" @@ -2238,7 +2390,7 @@ class CompletionChunk: def spelling(self): if self.__kindNumber in SpellingCache: return SpellingCache[self.__kindNumber] - return conf.lib.clang_getCompletionChunkText(self.cs, self.key).spelling + return conf.lib.clang_getCompletionChunkText(self.cs, self.key) # We do not use @CachedProperty here, as the manual implementation is # apparently still significantly faster. Please profile carefully if you @@ -2344,7 +2496,7 @@ class CompletionString(ClangObject): return " | ".join([str(a) for a in self]) \ + " || Priority: " + str(self.priority) \ + " || Availability: " + str(self.availability) \ - + " || Brief comment: " + str(self.briefComment.spelling) + + " || Brief comment: " + str(self.briefComment) availabilityKinds = { 0: CompletionChunk.Kind("Available"), @@ -2541,7 +2693,7 @@ class TranslationUnit(ClangObject): args_array = None if len(args) > 0: - args_array = (c_char_p * len(args))(* args) + args_array = (c_char_p * len(args))(*[b(x) for x in args]) unsaved_array = None if len(unsaved_files) > 0: @@ -2550,8 +2702,8 @@ class TranslationUnit(ClangObject): if hasattr(contents, "read"): contents = contents.read() - unsaved_array[i].name = name - unsaved_array[i].contents = contents + unsaved_array[i].name = b(name) + unsaved_array[i].contents = b(contents) unsaved_array[i].length = len(contents) ptr = conf.lib.clang_parseTranslationUnit(index, filename, args_array, @@ -2796,8 +2948,8 @@ class TranslationUnit(ClangObject): print(value) if not isinstance(value, str): raise TypeError('Unexpected unsaved file contents.') - unsaved_files_array[i].name = name - unsaved_files_array[i].contents = value + unsaved_files_array[i].name = b(name) + unsaved_files_array[i].contents = b(value) unsaved_files_array[i].length = len(value) ptr = conf.lib.clang_codeCompleteAt(self, path, line, column, unsaved_files_array, len(unsaved_files), options) @@ -2832,7 +2984,7 @@ class File(ClangObject): @property def name(self): """Return the complete file and path name of the file.""" - return conf.lib.clang_getCString(conf.lib.clang_getFileName(self)) + return conf.lib.clang_getFileName(self) @property def time(self): @@ -3063,7 +3215,7 @@ functionList = [ [c_object_p]), ("clang_CompilationDatabase_fromDirectory", - [c_char_p, POINTER(c_uint)], + [c_interop_string, POINTER(c_uint)], c_object_p, CompilationDatabase.from_result), @@ -3073,7 +3225,7 @@ functionList = [ CompileCommands.from_result), ("clang_CompilationDatabase_getCompileCommands", - [c_object_p, c_char_p], + [c_object_p, c_interop_string], c_object_p, CompileCommands.from_result), @@ -3108,7 +3260,7 @@ functionList = [ c_uint), ("clang_codeCompleteAt", - [TranslationUnit, c_char_p, c_int, c_int, c_void_p, c_int, c_int], + [TranslationUnit, c_interop_string, c_int, c_int, c_void_p, c_int, c_int], POINTER(CCRStructure)), ("clang_codeCompleteGetDiagnostic", @@ -3124,7 +3276,7 @@ functionList = [ c_object_p), ("clang_createTranslationUnit", - [Index, c_char_p], + [Index, c_interop_string], c_object_p), ("clang_CXXConstructor_isConvertingConstructor", @@ -3167,6 +3319,10 @@ functionList = [ [Cursor], bool), + ("clang_EnumDecl_isScoped", + [Cursor], + bool), + ("clang_defaultDiagnosticDisplayOptions", [], c_uint), @@ -3214,7 +3370,8 @@ functionList = [ ("clang_formatDiagnostic", [Diagnostic, c_uint], - _CXString), + _CXString, + _CXString.from_result), ("clang_getArgType", [Type, c_uint], @@ -3254,7 +3411,8 @@ functionList = [ ("clang_getCompletionBriefComment", [c_void_p], - _CXString), + _CXString, + _CXString.from_result), ("clang_getCompletionChunkCompletionString", [c_void_p, c_int], @@ -3266,7 +3424,8 @@ functionList = [ ("clang_getCompletionChunkText", [c_void_p, c_int], - _CXString), + _CXString, + _CXString.from_result), ("clang_getCompletionPriority", [c_void_p], @@ -3274,7 +3433,8 @@ functionList = [ ("clang_getCString", [_CXString], - c_char_p), + c_interop_string, + c_interop_string.to_python_string), ("clang_getCursor", [TranslationUnit, SourceLocation], @@ -3421,12 +3581,13 @@ functionList = [ Type.from_result), ("clang_getFile", - [TranslationUnit, c_char_p], + [TranslationUnit, c_interop_string], c_object_p), ("clang_getFileName", [File], - _CXString), # TODO go through _CXString.from_result? + _CXString, + _CXString.from_result), ("clang_getFileTime", [File], @@ -3550,7 +3711,8 @@ functionList = [ ("clang_getTUResourceUsageName", [c_uint], - c_char_p), + c_interop_string, + c_interop_string.to_python_string), ("clang_getTypeDeclaration", [Type], @@ -3562,6 +3724,11 @@ functionList = [ Type, Type.from_result), + ("clang_getTypedefName", + [Type], + _CXString, + _CXString.from_result), + ("clang_getTypeKindSpelling", [c_uint], _CXString, @@ -3645,7 +3812,7 @@ functionList = [ bool), ("clang_parseTranslationUnit", - [Index, c_char_p, c_void_p, c_int, c_void_p, c_int, c_int], + [Index, c_interop_string, c_void_p, c_int, c_void_p, c_int, c_int], c_object_p), ("clang_reparseTranslationUnit", @@ -3653,7 +3820,7 @@ functionList = [ c_int), ("clang_saveTranslationUnit", - [TranslationUnit, c_char_p, c_uint], + [TranslationUnit, c_interop_string, c_uint], c_int), ("clang_tokenize", @@ -3725,7 +3892,7 @@ functionList = [ Type.from_result), ("clang_Type_getOffsetOf", - [Type, c_char_p], + [Type, c_interop_string], c_longlong), ("clang_Type_getSizeOf", @@ -3784,7 +3951,8 @@ def register_functions(lib, ignore_errors): def register(item): return register_function(lib, item, ignore_errors) - map(register, functionList) + for f in functionList: + register(f) class Config: library_path = None diff --git a/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_cursor.py b/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_cursor.py index 8103e96df4f9..4787ea931e13 100644 --- a/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_cursor.py +++ b/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_cursor.py @@ -255,6 +255,22 @@ def test_is_virtual_method(): assert foo.is_virtual_method() assert not bar.is_virtual_method() +def test_is_scoped_enum(): + """Ensure Cursor.is_scoped_enum works.""" + source = 'class X {}; enum RegularEnum {}; enum class ScopedEnum {};' + tu = get_tu(source, lang='cpp') + + cls = get_cursor(tu, 'X') + regular_enum = get_cursor(tu, 'RegularEnum') + scoped_enum = get_cursor(tu, 'ScopedEnum') + assert cls is not None + assert regular_enum is not None + assert scoped_enum is not None + + assert not cls.is_scoped_enum() + assert not regular_enum.is_scoped_enum() + assert scoped_enum.is_scoped_enum() + def test_underlying_type(): tu = get_tu('typedef int foo;') typedef = get_cursor(tu, 'foo') diff --git a/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_translation_unit.py b/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_translation_unit.py index be6cd671ae0c..65d1ee02ffa4 100644 --- a/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_translation_unit.py +++ b/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_translation_unit.py @@ -59,9 +59,12 @@ int SOME_DEFINE; assert spellings[-1] == 'y' def test_unsaved_files_2(): - import StringIO + try: + from StringIO import StringIO + except: + from io import StringIO tu = TranslationUnit.from_source('fake.c', unsaved_files = [ - ('fake.c', StringIO.StringIO('int x;'))]) + ('fake.c', StringIO('int x;'))]) spellings = [c.spelling for c in tu.cursor.get_children()] assert spellings[-1] == 'x' diff --git a/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_type.py b/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_type.py index f2184338be4b..6ee0773828ec 100644 --- a/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_type.py +++ b/external/bsd/llvm/dist/clang/bindings/python/tests/cindex/test_type.py @@ -37,37 +37,44 @@ def test_a_struct(): assert not fields[0].type.is_const_qualified() assert fields[0].type.kind == TypeKind.INT assert fields[0].type.get_canonical().kind == TypeKind.INT + assert fields[0].type.get_typedef_name() == '' assert fields[1].spelling == 'b' assert not fields[1].type.is_const_qualified() assert fields[1].type.kind == TypeKind.TYPEDEF assert fields[1].type.get_canonical().kind == TypeKind.INT assert fields[1].type.get_declaration().spelling == 'I' + assert fields[1].type.get_typedef_name() == 'I' assert fields[2].spelling == 'c' assert not fields[2].type.is_const_qualified() assert fields[2].type.kind == TypeKind.LONG assert fields[2].type.get_canonical().kind == TypeKind.LONG + assert fields[2].type.get_typedef_name() == '' assert fields[3].spelling == 'd' assert not fields[3].type.is_const_qualified() assert fields[3].type.kind == TypeKind.ULONG assert fields[3].type.get_canonical().kind == TypeKind.ULONG + assert fields[3].type.get_typedef_name() == '' assert fields[4].spelling == 'e' assert not fields[4].type.is_const_qualified() assert fields[4].type.kind == TypeKind.LONG assert fields[4].type.get_canonical().kind == TypeKind.LONG + assert fields[4].type.get_typedef_name() == '' assert fields[5].spelling == 'f' assert fields[5].type.is_const_qualified() assert fields[5].type.kind == TypeKind.INT assert fields[5].type.get_canonical().kind == TypeKind.INT + assert fields[5].type.get_typedef_name() == '' assert fields[6].spelling == 'g' assert not fields[6].type.is_const_qualified() assert fields[6].type.kind == TypeKind.POINTER assert fields[6].type.get_pointee().kind == TypeKind.INT + assert fields[6].type.get_typedef_name() == '' assert fields[7].spelling == 'h' assert not fields[7].type.is_const_qualified() @@ -75,6 +82,7 @@ def test_a_struct(): assert fields[7].type.get_pointee().kind == TypeKind.POINTER assert fields[7].type.get_pointee().get_pointee().kind == TypeKind.POINTER assert fields[7].type.get_pointee().get_pointee().get_pointee().kind == TypeKind.INT + assert fields[7].type.get_typedef_name() == '' def test_references(): """Ensure that a Type maintains a reference to a TranslationUnit.""" @@ -404,3 +412,12 @@ def test_decay(): assert a.kind == TypeKind.INCOMPLETEARRAY assert a.element_type.kind == TypeKind.INT assert a.get_canonical().kind == TypeKind.INCOMPLETEARRAY + +def test_addrspace(): + """Ensure the address space can be queried""" + tu = get_tu('__attribute__((address_space(2))) int testInteger = 3;', 'c') + + testInteger = get_cursor(tu, 'testInteger') + + assert testInteger is not None, "Could not find testInteger." + assert testInteger.type.get_address_space() == 2 diff --git a/external/bsd/llvm/dist/clang/bindings/python/tests/test_exception_specification_kind.py b/external/bsd/llvm/dist/clang/bindings/python/tests/test_exception_specification_kind.py new file mode 100644 index 000000000000..543d47f7db97 --- /dev/null +++ b/external/bsd/llvm/dist/clang/bindings/python/tests/test_exception_specification_kind.py @@ -0,0 +1,27 @@ +import clang.cindex +from clang.cindex import ExceptionSpecificationKind +from .util import get_tu + + +def find_function_declarations(node, declarations=[]): + if node.kind == clang.cindex.CursorKind.FUNCTION_DECL: + declarations.append((node.spelling, node.exception_specification_kind)) + for child in node.get_children(): + declarations = find_function_declarations(child, declarations) + return declarations + + +def test_exception_specification_kind(): + source = """int square1(int x); + int square2(int x) noexcept; + int square3(int x) noexcept(noexcept(x * x));""" + + tu = get_tu(source, lang='cpp', flags=['-std=c++14']) + + declarations = find_function_declarations(tu.cursor) + expected = [ + ('square1', ExceptionSpecificationKind.NONE), + ('square2', ExceptionSpecificationKind.BASIC_NOEXCEPT), + ('square3', ExceptionSpecificationKind.COMPUTED_NOEXCEPT) + ] + assert declarations == expected diff --git a/external/bsd/llvm/dist/clang/cmake/caches/Apple-stage2-ThinLTO.cmake b/external/bsd/llvm/dist/clang/cmake/caches/Apple-stage2-ThinLTO.cmake new file mode 100644 index 000000000000..54e54e306e7a --- /dev/null +++ b/external/bsd/llvm/dist/clang/cmake/caches/Apple-stage2-ThinLTO.cmake @@ -0,0 +1,6 @@ +# This file sets up a CMakeCache for Apple-style stage2 ThinLTO bootstrap. It is +# specified by the stage1 build. + + +set(LLVM_ENABLE_LTO THIN CACHE BOOL "") +include(${CMAKE_CURRENT_LIST_DIR}/Apple-stage2.cmake) diff --git a/external/bsd/llvm/dist/clang/cmake/caches/Apple-stage2.cmake b/external/bsd/llvm/dist/clang/cmake/caches/Apple-stage2.cmake index 11c595c1530f..f07973dc0ab2 100644 --- a/external/bsd/llvm/dist/clang/cmake/caches/Apple-stage2.cmake +++ b/external/bsd/llvm/dist/clang/cmake/caches/Apple-stage2.cmake @@ -13,6 +13,7 @@ set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(LLVM_ENABLE_MODULES ON CACHE BOOL "") set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") @@ -28,8 +29,10 @@ set(LLVM_BUILD_TESTS ON CACHE BOOL "") set(LLVM_ENABLE_LTO ON CACHE BOOL "") set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +if(LLVM_ENABLE_LTO AND NOT LLVM_ENABLE_LTO STREQUAL "THIN") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +endif() set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") diff --git a/external/bsd/llvm/dist/clang/cmake/caches/BaremetalARM.cmake b/external/bsd/llvm/dist/clang/cmake/caches/BaremetalARM.cmake new file mode 100644 index 000000000000..73f797d9c4b1 --- /dev/null +++ b/external/bsd/llvm/dist/clang/cmake/caches/BaremetalARM.cmake @@ -0,0 +1,50 @@ +set(LLVM_TARGETS_TO_BUILD ARM;X86 CACHE STRING "") + +# Builtins +set(LLVM_BUILTIN_TARGETS "armv7m-none-eabi;armv6m-none-eabi;armv7em-none-eabi" CACHE STRING "Builtin Targets") + +set(BUILTINS_armv6m-none-eabi_CMAKE_SYSROOT ${BAREMETAL_ARMV6M_SYSROOT} CACHE STRING "armv6m-none-eabi Sysroot") +set(BUILTINS_armv6m-none-eabi_CMAKE_SYSTEM_NAME Generic CACHE STRING "armv6m-none-eabi System Name") +set(BUILTINS_armv6m-none-eabi_COMPILER_RT_BAREMETAL_BUILD ON CACHE BOOL "armv6m-none-eabi Baremetal build") +set(BUILTINS_armv6m-none-eabi_COMPILER_RT_OS_DIR "baremetal" CACHE STRING "armv6m-none-eabi os dir") + +set(BUILTINS_armv7m-none-eabi_CMAKE_SYSROOT ${BAREMETAL_ARMV7M_SYSROOT} CACHE STRING "armv7m-none-eabi Sysroot") +set(BUILTINS_armv7m-none-eabi_CMAKE_SYSTEM_NAME Generic CACHE STRING "armv7m-none-eabi System Name") +set(BUILTINS_armv7m-none-eabi_COMPILER_RT_BAREMETAL_BUILD ON CACHE BOOL "armv7m-none-eabi Baremetal build") +set(BUILTINS_armv7m-none-eabi_CMAKE_C_FLAGS "-mfpu=fp-armv8" CACHE STRING "armv7m-none-eabi C Flags") +set(BUILTINS_armv7m-none-eabi_CMAKE_ASM_FLAGS "-mfpu=fp-armv8" CACHE STRING "armv7m-none-eabi ASM Flags") +set(BUILTINS_armv7m-none-eabi_COMPILER_RT_OS_DIR "baremetal" CACHE STRING "armv7m-none-eabi os dir") + +set(BUILTINS_armv7em-none-eabi_CMAKE_SYSROOT ${BAREMETAL_ARMV7EM_SYSROOT} CACHE STRING "armv7em-none-eabi Sysroot") +set(BUILTINS_armv7em-none-eabi_CMAKE_SYSTEM_NAME Generic CACHE STRING "armv7em-none-eabi System Name") +set(BUILTINS_armv7em-none-eabi_COMPILER_RT_BAREMETAL_BUILD ON CACHE BOOL "armv7em-none-eabi Baremetal build") +set(BUILTINS_armv7em-none-eabi_CMAKE_C_FLAGS "-mfpu=fp-armv8" CACHE STRING "armv7em-none-eabi C Flags") +set(BUILTINS_armv7em-none-eabi_CMAKE_ASM_FLAGS "-mfpu=fp-armv8" CACHE STRING "armv7em-none-eabi ASM Flags") +set(BUILTINS_armv7em-none-eabi_COMPILER_RT_OS_DIR "baremetal" CACHE STRING "armv7em-none-eabi os dir") + +set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") +set(LLVM_TOOLCHAIN_TOOLS + llc + llvm-ar + llvm-cxxfilt + llvm-dwarfdump + llvm-dsymutil + llvm-nm + llvm-objdump + llvm-ranlib + llvm-readobj + llvm-size + llvm-symbolizer + opt + CACHE STRING "") + +set(LLVM_DISTRIBUTION_COMPONENTS + clang + lld + clang-headers + builtins-armv6m-none-eabi + builtins-armv7m-none-eabi + builtins-armv7em-none-eabi + runtimes + ${LLVM_TOOLCHAIN_TOOLS} + CACHE STRING "") diff --git a/external/bsd/llvm/dist/clang/cmake/caches/DistributionExample.cmake b/external/bsd/llvm/dist/clang/cmake/caches/DistributionExample.cmake index 862f547c1656..551f4ee07eac 100644 --- a/external/bsd/llvm/dist/clang/cmake/caches/DistributionExample.cmake +++ b/external/bsd/llvm/dist/clang/cmake/caches/DistributionExample.cmake @@ -29,6 +29,13 @@ set(CLANG_BOOTSTRAP_TARGETS # Setup the bootstrap build. set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") -set(CLANG_BOOTSTRAP_CMAKE_ARGS - -C ${CMAKE_CURRENT_LIST_DIR}/DistributionExample-stage2.cmake - CACHE STRING "") + +if(STAGE2_CACHE_FILE) + set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${STAGE2_CACHE_FILE} + CACHE STRING "") +else() + set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${CMAKE_CURRENT_LIST_DIR}/DistributionExample-stage2.cmake + CACHE STRING "") +endif() diff --git a/external/bsd/llvm/dist/clang/cmake/caches/Fuchsia-stage2.cmake b/external/bsd/llvm/dist/clang/cmake/caches/Fuchsia-stage2.cmake new file mode 100644 index 000000000000..1b7b636fef3e --- /dev/null +++ b/external/bsd/llvm/dist/clang/cmake/caches/Fuchsia-stage2.cmake @@ -0,0 +1,85 @@ +# This file sets up a CMakeCache for the second stage of a Fuchsia toolchain +# build. + +set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64 CACHE STRING "") + +set(PACKAGE_VENDOR Fuchsia CACHE STRING "") + +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") + +set(LLVM_ENABLE_LTO ON CACHE BOOL "") +if(NOT APPLE) + set(LLVM_ENABLE_LLD ON CACHE BOOL "") + set(CLANG_DEFAULT_LINKER lld CACHE STRING "") +endif() + +if(APPLE) + set(LLDB_CODESIGN_IDENTITY "" CACHE STRING "") +endif() + +set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") + +set(LLVM_BUILTIN_TARGETS "x86_64-fuchsia;aarch64-fuchsia" CACHE STRING "") +foreach(target x86_64;aarch64) + set(BUILTINS_${target}-fuchsia_CMAKE_SYSROOT ${FUCHSIA_${target}_SYSROOT} CACHE PATH "") + set(BUILTINS_${target}-fuchsia_CMAKE_SYSTEM_NAME Fuchsia CACHE STRING "") +endforeach() +if(NOT APPLE) + list(APPEND LLVM_BUILTIN_TARGETS "default") +endif() + +set(LLVM_RUNTIME_TARGETS "default;x86_64-fuchsia;aarch64-fuchsia" CACHE STRING "") +foreach(target x86_64;aarch64) + set(RUNTIMES_${target}-fuchsia_CMAKE_BUILD_WITH_INSTALL_RPATH ON CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia_CMAKE_SYSROOT ${FUCHSIA_${target}_SYSROOT} CACHE PATH "") + set(RUNTIMES_${target}-fuchsia_CMAKE_SYSTEM_NAME Fuchsia CACHE STRING "") + set(RUNTIMES_${target}-fuchsia_UNIX 1 CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia_LLVM_ENABLE_LIBCXX ON CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") +endforeach() + +# Setup toolchain. +set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") +set(LLVM_TOOLCHAIN_TOOLS + llc + llvm-ar + llvm-cov + llvm-cxxfilt + llvm-dwarfdump + llvm-dsymutil + llvm-lib + llvm-nm + llvm-objdump + llvm-profdata + llvm-ranlib + llvm-readelf + llvm-readobj + llvm-size + llvm-symbolizer + opt + CACHE STRING "") + +set(LLVM_DISTRIBUTION_COMPONENTS + clang + lld + lldb + liblldb + LTO + clang-format + clang-headers + clang-tidy + clangd + builtins + runtimes + ${LLVM_TOOLCHAIN_TOOLS} + CACHE STRING "") diff --git a/external/bsd/llvm/dist/clang/cmake/caches/Fuchsia.cmake b/external/bsd/llvm/dist/clang/cmake/caches/Fuchsia.cmake new file mode 100644 index 000000000000..0932c046f628 --- /dev/null +++ b/external/bsd/llvm/dist/clang/cmake/caches/Fuchsia.cmake @@ -0,0 +1,52 @@ +# This file sets up a CMakeCache for a Fuchsia toolchain build. + +set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") + +set(PACKAGE_VENDOR Fuchsia CACHE STRING "") + +set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") +set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") +set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") + +set(CMAKE_BUILD_TYPE Release CACHE STRING "") + +set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") +if(NOT APPLE) + set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") +endif() + +if(APPLE) + set(COMPILER_RT_ENABLE_IOS OFF CACHE BOOL "") + set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "") + set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "") +endif() + +set(CLANG_BOOTSTRAP_TARGETS + check-all + check-llvm + check-clang + llvm-config + test-suite + test-depends + llvm-test-depends + clang-test-depends + distribution + install-distribution + clang CACHE STRING "") + +foreach(target x86_64;aarch64) + if(FUCHSIA_${target}_SYSROOT) + list(APPEND EXTRA_ARGS -DFUCHSIA_${target}_SYSROOT=${FUCHSIA_${target}_SYSROOT}) + endif() +endforeach() + +# Setup the bootstrap build. +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_CMAKE_ARGS + ${EXTRA_ARGS} + -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake + CACHE STRING "") diff --git a/external/bsd/llvm/dist/clang/cmake/modules/CMakeLists.txt b/external/bsd/llvm/dist/clang/cmake/modules/CMakeLists.txt index b784c0d215ea..be6d1d7257bc 100644 --- a/external/bsd/llvm/dist/clang/cmake/modules/CMakeLists.txt +++ b/external/bsd/llvm/dist/clang/cmake/modules/CMakeLists.txt @@ -4,17 +4,27 @@ set(CLANG_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/clang) set(clang_cmake_builddir "${CMAKE_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR}") +# Keep this in sync with llvm/cmake/CMakeLists.txt! +set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) +set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") + get_property(CLANG_EXPORTS GLOBAL PROPERTY CLANG_EXPORTS) export(TARGETS ${CLANG_EXPORTS} FILE ${clang_cmake_builddir}/ClangTargets.cmake) # Generate ClangConfig.cmake for the build tree. set(CLANG_CONFIG_CMAKE_DIR "${clang_cmake_builddir}") +set(CLANG_CONFIG_LLVM_CMAKE_DIR "${llvm_cmake_builddir}") set(CLANG_CONFIG_EXPORTS_FILE "${clang_cmake_builddir}/ClangTargets.cmake") +set(CLANG_CONFIG_INCLUDE_DIRS + "${CLANG_SOURCE_DIR}/include" + "${CLANG_BINARY_DIR}/include" + ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/ClangConfig.cmake.in ${clang_cmake_builddir}/ClangConfig.cmake @ONLY) set(CLANG_CONFIG_CMAKE_DIR) +set(CLANG_CONFIG_LLVM_CMAKE_DIR) set(CLANG_CONFIG_EXPORTS_FILE) # Generate ClangConfig.cmake for the install tree. @@ -29,7 +39,11 @@ foreach(p ${_count}) get_filename_component(CLANG_INSTALL_PREFIX \"\${CLANG_INSTALL_PREFIX}\" PATH)") endforeach(p) set(CLANG_CONFIG_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}/${CLANG_INSTALL_PACKAGE_DIR}") +set(CLANG_CONFIG_LLVM_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") set(CLANG_CONFIG_EXPORTS_FILE "\${CLANG_CMAKE_DIR}/ClangTargets.cmake") +set(CLANG_CONFIG_INCLUDE_DIRS + "\${CLANG_INSTALL_PREFIX}/include" + ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/ClangConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/ClangConfig.cmake diff --git a/external/bsd/llvm/dist/clang/cmake/modules/ClangConfig.cmake.in b/external/bsd/llvm/dist/clang/cmake/modules/ClangConfig.cmake.in index a946944dd991..03bca691c2b6 100644 --- a/external/bsd/llvm/dist/clang/cmake/modules/ClangConfig.cmake.in +++ b/external/bsd/llvm/dist/clang/cmake/modules/ClangConfig.cmake.in @@ -1,11 +1,13 @@ # This file allows users to call find_package(Clang) and pick up our targets. -find_package(LLVM REQUIRED CONFIG) - @CLANG_CONFIG_CODE@ +find_package(LLVM REQUIRED CONFIG + HINTS "@CLANG_CONFIG_LLVM_CMAKE_DIR@") + set(CLANG_EXPORTED_TARGETS "@CLANG_EXPORTS@") set(CLANG_CMAKE_DIR "@CLANG_CONFIG_CMAKE_DIR@") +set(CLANG_INCLUDE_DIRS "@CLANG_CONFIG_INCLUDE_DIRS@") # Provide all our library targets to users. include("@CLANG_CONFIG_EXPORTS_FILE@") diff --git a/external/bsd/llvm/dist/clang/cmake/modules/FindZ3.cmake b/external/bsd/llvm/dist/clang/cmake/modules/FindZ3.cmake new file mode 100644 index 000000000000..779ef928da1b --- /dev/null +++ b/external/bsd/llvm/dist/clang/cmake/modules/FindZ3.cmake @@ -0,0 +1,28 @@ +find_path(Z3_INCLUDE_DIR NAMES z3.h + PATH_SUFFIXES libz3 z3 + ) + +find_library(Z3_LIBRARIES NAMES z3 libz3 + ) + +find_program(Z3_EXECUTABLE z3) + +if(Z3_INCLUDE_DIR AND Z3_EXECUTABLE) + execute_process (COMMAND ${Z3_EXECUTABLE} -version + OUTPUT_VARIABLE libz3_version_str + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + + string(REGEX REPLACE "^Z3 version ([0-9.]+)" "\\1" + Z3_VERSION_STRING "${libz3_version_str}") + unset(libz3_version_str) +endif() + +# handle the QUIETLY and REQUIRED arguments and set Z3_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Z3 + REQUIRED_VARS Z3_LIBRARIES Z3_INCLUDE_DIR + VERSION_VAR Z3_VERSION_STRING) + +mark_as_advanced(Z3_INCLUDE_DIR Z3_LIBRARIES) diff --git a/external/bsd/llvm/dist/clang/docs/AttributeReference.rst b/external/bsd/llvm/dist/clang/docs/AttributeReference.rst index db4812afdaa0..58004a3c0a32 100644 --- a/external/bsd/llvm/dist/clang/docs/AttributeReference.rst +++ b/external/bsd/llvm/dist/clang/docs/AttributeReference.rst @@ -22,9 +22,9 @@ Function Attributes interrupt --------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "" Clang supports the GNU style ``__attribute__((interrupt("TYPE")))`` attribute on ARM targets. This attribute may be attached to a function definition and @@ -63,12 +63,45 @@ The semantics are as follows: a sequence equivalent to "movs pc, lr" will be used. +interrupt +--------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +Clang supports the GNU style ``__attribute__((interrupt))`` attribute on +AVR targets. This attribute may be attached to a function definition and instructs +the backend to generate appropriate function entry/exit code so that it can be used +directly as an interrupt service routine. + +On the AVR, the hardware globally disables interrupts when an interrupt is executed. +The first instruction of an interrupt handler declared with this attribute is a SEI +instruction to re-enable interrupts. See also the signal attribute that +does not insert a SEI instruction. + + +signal +------ +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +Clang supports the GNU style ``__attribute__((signal))`` attribute on +AVR targets. This attribute may be attached to a function definition and instructs +the backend to generate appropriate function entry/exit code so that it can be used +directly as an interrupt service routine. + +Interrupt handler functions defined with the signal attribute do not re-enable interrupts. + + abi_tag (gnu::abi_tag) ---------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``abi_tag`` attribute can be applied to a function, variable, class or inline namespace declaration to modify the mangled name of the entity. It gives @@ -83,19 +116,52 @@ the old manged name and the new code will use the new mangled name with tags. acquire_capability (acquire_shared_capability, clang::acquire_capability, clang::acquire_shared_capability) ----------------------------------------------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" Marks a function as acquiring a capability. +alloc_align (gnu::alloc_align) +------------------------------ +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "" + +Use ``__attribute__((alloc_align())`` on a function +declaration to specify that the return value of the function (which must be a +pointer type) is at least as aligned as the value of the indicated parameter. The +parameter is given by its index in the list of formal parameters; the first +parameter has index 1 unless the function is a C++ non-static member function, +in which case the first parameter has index 2 to account for the implicit ``this`` +parameter. + +.. code-block:: c++ + + // The returned pointer has the alignment specified by the first parameter. + void *a(size_t align) __attribute__((alloc_align(1))); + + // The returned pointer has the alignment specified by the second parameter. + void *b(void *v, size_t align) __attribute__((alloc_align(2))); + + // The returned pointer has the alignment specified by the second visible + // parameter, however it must be adjusted for the implicit 'this' parameter. + void *Foo::b(void *v, size_t align) __attribute__((alloc_align(3))); + +Note that this attribute merely informs the compiler that a function always +returns a sufficiently aligned pointer. It does not cause the compiler to +emit code to enforce that alignment. The behavior is undefined if the returned +poitner is not sufficiently aligned. + + alloc_size (gnu::alloc_size) ---------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``alloc_size`` attribute can be placed on functions that return pointers in order to hint to the compiler how many bytes of memory will be available at the @@ -134,9 +200,9 @@ An example of how to use ``alloc_size`` interrupt --------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "" Clang supports the GNU style ``__attribute__((interrupt))`` attribute on x86/x86-64 targets.The compiler generates function entry and exit sequences @@ -187,12 +253,49 @@ hardware design, touch the red zone. The system will crash if the wrong handler is used. +no_caller_saved_registers (gnu::no_caller_saved_registers) +---------------------------------------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "" + +Use this attribute to indicate that the specified function has no +caller-saved registers. That is, all registers are callee-saved except for +registers used for passing parameters to the function or returning parameters +from the function. +The compiler saves and restores any modified registers that were not used for +passing or returning arguments to the function. + +The user can call functions specified with the 'no_caller_saved_registers' +attribute from an interrupt handler without saving and restoring all +call-clobbered registers. + +Note that 'no_caller_saved_registers' attribute is not a calling convention. +In fact, it only overrides the decision of which registers should be saved by +the caller, but not how the parameters are passed from the caller to the callee. + +For example: + + .. code-block:: c + + __attribute__ ((no_caller_saved_registers, fastcall)) + void f (int arg1, int arg2) { + ... + } + + In this case parameters 'arg1' and 'arg2' will be passed in registers. + In this case, on 32-bit x86 targets, the function 'f' will use ECX and EDX as + register parameters. However, it will not assume any scratch registers and + should save and restore any modified registers except for ECX and EDX. + + assert_capability (assert_shared_capability, clang::assert_capability, clang::assert_shared_capability) ------------------------------------------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" Marks a function that dynamically tests whether a capability is held, and halts the program if it is not held. @@ -201,9 +304,9 @@ the program if it is not held. assume_aligned (gnu::assume_aligned) ------------------------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" Use ``__attribute__((assume_aligned([,]))`` on a function declaration to specify that the return value of the function (which must be a @@ -227,9 +330,9 @@ to enforce the provided alignment assumption. availability ------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" The ``availability`` attribute can be placed on declarations to describe the lifecycle of that declaration relative to operating system versions. Consider @@ -239,13 +342,13 @@ the function declaration for a hypothetical function ``f``: void f(void) __attribute__((availability(macos,introduced=10.4,deprecated=10.6,obsoleted=10.7))); -The availability attribute states that ``f`` was introduced in Mac OS X 10.4, -deprecated in Mac OS X 10.6, and obsoleted in Mac OS X 10.7. This information +The availability attribute states that ``f`` was introduced in macOS 10.4, +deprecated in macOS 10.6, and obsoleted in macOS 10.7. This information is used by Clang to determine when it is safe to use ``f``: for example, if -Clang is instructed to compile code for Mac OS X 10.5, a call to ``f()`` -succeeds. If Clang is instructed to compile code for Mac OS X 10.6, the call +Clang is instructed to compile code for macOS 10.5, a call to ``f()`` +succeeds. If Clang is instructed to compile code for macOS 10.6, the call succeeds but Clang emits a warning specifying that the function is deprecated. -Finally, if Clang is instructed to compile code for Mac OS X 10.7, the call +Finally, if Clang is instructed to compile code for macOS 10.7, the call fails because ``f()`` is no longer available. The availability attribute is a comma-separated list starting with the @@ -290,7 +393,7 @@ are: command-line arguments. ``macos`` - Apple's Mac OS X operating system. The minimum deployment target is + Apple's macOS operating system. The minimum deployment target is specified by the ``-mmacosx-version-min=*version*`` command-line argument. ``macosx`` is supported for backward-compatibility reasons, but it is deprecated. @@ -345,13 +448,26 @@ When one method overrides another, the overriding method can be more widely avai - (id)method __attribute__((availability(macos,introduced=10.5))); // error: this method was available via the base class in 10.4 @end +Starting with the macOS 10.12 SDK, the ``API_AVAILABLE`` macro from +```` can simplify the spelling: + +.. code-block:: objc + + @interface A + - (id)method API_AVAILABLE(macos(10.11))); + - (id)otherMethod API_AVAILABLE(macos(10.11), ios(11.0)); + @end + +Also see the documentation for `@available +`_ + _Noreturn --------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" A function declared as ``_Noreturn`` shall not return to its caller. The compiler will generate a diagnostic for a function declared as ``_Noreturn`` @@ -361,9 +477,9 @@ that appears to be capable of returning to its caller. noreturn -------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","X","","", "" + "","X","","", "", "X" A function declared as ``[[noreturn]]`` shall not return to its caller. The compiler will generate a diagnostic for a function declared as ``[[noreturn]]`` @@ -373,9 +489,9 @@ that appears to be capable of returning to its caller. carries_dependency ------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``carries_dependency`` attribute specifies dependency propagation into and out of functions. @@ -393,9 +509,9 @@ in generation of more efficient code. convergent (clang::convergent) ------------------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``convergent`` attribute can be placed on a function declaration. It is translated into the LLVM ``convergent`` attribute, which indicates that the call @@ -422,9 +538,9 @@ Sample usage: deprecated (gnu::deprecated) ---------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","X","", "" + "X","X","X","", "", "" The ``deprecated`` attribute can be applied to a function, a variable, or a type. This is useful when identifying functions, variables, or types that are @@ -447,9 +563,9 @@ string argument which is the message to display when emitting the warning. diagnose_if ----------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "" The ``diagnose_if`` attribute can be placed on function declarations to emit warnings or errors at compile-time if calls to the attributed function meet @@ -510,9 +626,9 @@ Query for this feature with ``__has_attribute(diagnose_if)``. disable_tail_calls (clang::disable_tail_calls) ---------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``disable_tail_calls`` attribute instructs the backend to not perform tail call optimization inside the marked function. @@ -550,9 +666,9 @@ Marking virtual functions as ``disable_tail_calls`` is legal. enable_if --------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" .. Note:: Some features of this attribute are experimental. The meaning of multiple enable_if attributes on a single declaration is subject to change in @@ -684,12 +800,73 @@ conditions for ``foo`` fail). However, in ``baz``, ``foo`` is resolved during template instantiation, so the value for ``T::number`` is known. +external_source_symbol (clang::external_source_symbol) +------------------------------------------------------ +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "X" + +The ``external_source_symbol`` attribute specifies that a declaration originates +from an external source and describes the nature of that source. + +The fact that Clang is capable of recognizing declarations that were defined +externally can be used to provide better tooling support for mixed-language +projects or projects that rely on auto-generated code. For instance, an IDE that +uses Clang and that supports mixed-language projects can use this attribute to +provide a correct 'jump-to-definition' feature. For a concrete example, +consider a protocol that's defined in a Swift file: + +.. code-block:: swift + + @objc public protocol SwiftProtocol { + func method() + } + +This protocol can be used from Objective-C code by including a header file that +was generated by the Swift compiler. The declarations in that header can use +the ``external_source_symbol`` attribute to make Clang aware of the fact +that ``SwiftProtocol`` actually originates from a Swift module: + +.. code-block:: objc + + __attribute__((external_source_symbol(language="Swift",defined_in="module"))) + @protocol SwiftProtocol + @required + - (void) method; + @end + +Consequently, when 'jump-to-definition' is performed at a location that +references ``SwiftProtocol``, the IDE can jump to the original definition in +the Swift source file rather than jumping to the Objective-C declaration in the +auto-generated header file. + +The ``external_source_symbol`` attribute is a comma-separated list that includes +clauses that describe the origin and the nature of the particular declaration. +Those clauses can be: + +language=\ *string-literal* + The name of the source language in which this declaration was defined. + +defined_in=\ *string-literal* + The name of the source container in which the declaration was defined. The + exact definition of source container is language-specific, e.g. Swift's + source containers are modules, so ``defined_in`` should specify the Swift + module name. + +generated_declaration + This declaration was automatically generated by some tool. + +The clauses can be specified in any order. The clauses that are listed above are +all optional, but the attribute has to have at least one clause. + + flatten (gnu::flatten) ---------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``flatten`` attribute causes calls within the attributed function to be inlined unless it is impossible to do so, for example if the body of the @@ -699,9 +876,9 @@ callee is unavailable or if the callee has the ``noinline`` attribute. format (gnu::format) -------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" Clang supports the ``format`` attribute, which indicates that the function accepts a ``printf`` or ``scanf``-like format string and corresponding @@ -764,9 +941,9 @@ Clang implements two kinds of checks with this attribute. ifunc (gnu::ifunc) ------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" ``__attribute__((ifunc("resolver")))`` is used to mark that the address of a declaration should be resolved at runtime by calling a resolver function. @@ -780,9 +957,9 @@ Not all targets support this attribute. ELF targets support this attribute when internal_linkage (clang::internal_linkage) ------------------------------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``internal_linkage`` attribute changes the linkage type of the declaration to internal. This is similar to C-style ``static``, but can be used on classes and class methods. When applied to a class definition, @@ -790,12 +967,28 @@ this attribute affects all methods and static data members of that class. This can be used to contain the ABI of a C++ library by excluding unwanted class methods from the export tables. +micromips (gnu::micromips) +-------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "X" + +Clang supports the GNU style ``__attribute__((micromips))`` and +``__attribute__((nomicromips))`` attributes on MIPS targets. These attributes +may be attached to a function definition and instructs the backend to generate +or not to generate microMIPS code for that function. + +These attributes override the `-mmicromips` and `-mno-micromips` options +on the command line. + + interrupt --------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" Clang supports the GNU style ``__attribute__((interrupt("ARGUMENT")))`` attribute on MIPS targets. This attribute may be attached to a function definition and instructs @@ -836,9 +1029,9 @@ The semantics are as follows: noalias ------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","X","", "" + "","","X","", "", "" The ``noalias`` attribute indicates that the only memory accesses inside function are loads and stores from objects pointed to by its pointer-typed @@ -848,9 +1041,9 @@ arguments, with arbitrary offsets. noduplicate (clang::noduplicate) -------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``noduplicate`` attribute can be placed on function declarations to control whether function calls to this function can be duplicated or not as a result of @@ -891,12 +1084,28 @@ where the call to "nodupfunc" is duplicated and sunk into the two branches of the condition. +nomicromips (gnu::nomicromips) +------------------------------ +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "X" + +Clang supports the GNU style ``__attribute__((micromips))`` and +``__attribute__((nomicromips))`` attributes on MIPS targets. These attributes +may be attached to a function definition and instructs the backend to generate +or not to generate microMIPS code for that function. + +These attributes override the `-mmicromips` and `-mno-micromips` options +on the command line. + + no_sanitize (clang::no_sanitize) -------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" Use the ``no_sanitize`` attribute on a function declaration to specify that a particular instrumentation or set of instrumentations should not be @@ -913,9 +1122,9 @@ full list of supported sanitizer flags. no_sanitize_address (no_address_safety_analysis, gnu::no_address_safety_analysis, gnu::no_sanitize_address) ----------------------------------------------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" .. _langext-address_sanitizer: @@ -927,9 +1136,9 @@ not be applied to that function. no_sanitize_thread ------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" .. _langext-thread_sanitizer: @@ -942,9 +1151,9 @@ tool to avoid false positives and provide meaningful stack traces. no_sanitize_memory ------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" .. _langext-memory_sanitizer: @@ -957,9 +1166,9 @@ to avoid false positives in other places. no_split_stack (gnu::no_split_stack) ------------------------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``no_split_stack`` attribute disables the emission of the split stack preamble for a particular function. It has no effect if ``-fsplit-stack`` @@ -969,9 +1178,9 @@ is not specified. not_tail_called (clang::not_tail_called) ---------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``not_tail_called`` attribute prevents tail-call optimization on statically bound calls. It has no effect on indirect calls. Virtual functions, objective-c methods, and functions marked as ``always_inline`` cannot be marked as ``not_tail_called``. @@ -1026,9 +1235,9 @@ Marking virtual functions as ``not_tail_called`` is an error: #pragma omp declare simd ------------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","", "X" + "","","","", "X", "" The `declare simd` construct can be applied to a function to enable the creation of one or more versions that can process multiple arguments using SIMD @@ -1062,9 +1271,9 @@ where clause is one of the following: #pragma omp declare target -------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","", "X" + "","","","", "X", "" The `declare target` directive specifies that variables and functions are mapped to a device for OpenMP offload mechanism. @@ -1081,9 +1290,9 @@ The syntax of the declare target directive is as follows: objc_boxable ------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" Structs and unions marked with the ``objc_boxable`` attribute can be used with the Objective-C boxed expression syntax, ``@(...)``. @@ -1111,9 +1320,9 @@ can only be placed on a declaration of a trivially-copyable struct or union: objc_method_family ------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" Many methods in Objective-C have conventional meanings determined by their selectors. It is sometimes useful to be able to mark a method as having a @@ -1141,9 +1350,9 @@ Query for this feature with ``__has_attribute(objc_method_family)``. objc_requires_super ------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" Some Objective-C classes allow a subclass to override a particular method in a parent class but expect that the overriding method also calls the overridden @@ -1189,9 +1398,9 @@ implementation of an override in a subclass does not call super. For example: objc_runtime_name ----------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" By default, the Objective-C interface or protocol identifier is used in the metadata name for that object. The `objc_runtime_name` @@ -1212,9 +1421,9 @@ can only be placed before an @protocol or @interface declaration: objc_runtime_visible -------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" This attribute specifies that the Objective-C class to which it applies is visible to the Objective-C runtime but not to the linker. Classes annotated with this attribute cannot be subclassed and cannot have categories defined for them. @@ -1222,9 +1431,9 @@ This attribute specifies that the Objective-C class to which it applies is visib optnone (clang::optnone) ------------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``optnone`` attribute suppresses essentially all optimizations on a function or method, regardless of the optimization level applied to @@ -1241,9 +1450,9 @@ attributes. overloadable ------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" Clang provides support for C++ function overloading in C. Function overloading in C is introduced using the ``overloadable`` attribute. For example, one @@ -1282,20 +1491,27 @@ semantics: for ``T`` and ``U`` to be incompatible. The declaration of ``overloadable`` functions is restricted to function -declarations and definitions. Most importantly, if any function with a given -name is given the ``overloadable`` attribute, then all function declarations -and definitions with that name (and in that scope) must have the -``overloadable`` attribute. This rule even applies to redeclarations of -functions whose original declaration had the ``overloadable`` attribute, e.g., +declarations and definitions. If a function is marked with the ``overloadable`` +attribute, then all declarations and definitions of functions with that name, +except for at most one (see the note below about unmarked overloads), must have +the ``overloadable`` attribute. In addition, redeclarations of a function with +the ``overloadable`` attribute must have the ``overloadable`` attribute, and +redeclarations of a function without the ``overloadable`` attribute must *not* +have the ``overloadable`` attribute. e.g., .. code-block:: c int f(int) __attribute__((overloadable)); float f(float); // error: declaration of "f" must have the "overloadable" attribute + int f(int); // error: redeclaration of "f" must have the "overloadable" attribute int g(int) __attribute__((overloadable)); int g(int) { } // error: redeclaration of "g" must also have the "overloadable" attribute + int h(int); + int h(int) __attribute__((overloadable)); // error: declaration of "h" must not + // have the "overloadable" attribute + Functions marked ``overloadable`` must have prototypes. Therefore, the following code is ill-formed: @@ -1328,15 +1544,36 @@ caveats to this use of name mangling: linkage specification, it's name *will* be mangled in the same way as it would in C. -Query for this feature with ``__has_extension(attribute_overloadable)``. +For the purpose of backwards compatibility, at most one function with the same +name as other ``overloadable`` functions may omit the ``overloadable`` +attribute. In this case, the function without the ``overloadable`` attribute +will not have its name mangled. + +For example: + +.. code-block:: c + + // Notes with mangled names assume Itanium mangling. + int f(int); + int f(double) __attribute__((overloadable)); + void foo() { + f(5); // Emits a call to f (not _Z1fi, as it would with an overload that + // was marked with overloadable). + f(1.0); // Emits a call to _Z1fd. + } + +Support for unmarked overloads is not present in some versions of clang. You may +query for it using ``__has_extension(overloadable_unmarked)``. + +Query for this attribute with ``__has_attribute(overloadable)``. release_capability (release_shared_capability, clang::release_capability, clang::release_shared_capability) ----------------------------------------------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" Marks a function as releasing a capability. @@ -1344,9 +1581,9 @@ Marks a function as releasing a capability. kernel ------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" ``__attribute__((kernel))`` is used to mark a ``kernel`` function in RenderScript. @@ -1362,9 +1599,9 @@ See the RenderScript_ documentation for more information. target (gnu::target) -------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" Clang supports the GNU style ``__attribute__((target("OPTIONS")))`` attribute. This attribute may be attached to a function definition and instructs @@ -1384,9 +1621,9 @@ the front end. try_acquire_capability (try_acquire_shared_capability, clang::try_acquire_capability, clang::try_acquire_shared_capability) --------------------------------------------------------------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" Marks a function that attempts to acquire a capability. This function may fail to actually acquire the capability; they accept a Boolean value determining @@ -1397,9 +1634,9 @@ the capability means success (false). nodiscard, warn_unused_result, clang::warn_unused_result, gnu::warn_unused_result --------------------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" Clang supports the ability to diagnose when the results of a function call expression are discarded under suspicious circumstances. A diagnostic is @@ -1421,12 +1658,12 @@ potentially-evaluated discarded-value expression that is not explicitly cast to void f() { foo(); } // Does not diagnose, error_info is a reference. -xray_always_instrument (clang::xray_always_instrument), xray_never_instrument (clang::xray_never_instrument) ------------------------------------------------------------------------------------------------------------- +xray_always_instrument (clang::xray_always_instrument), xray_never_instrument (clang::xray_never_instrument), xray_log_args (clang::xray_log_args) +-------------------------------------------------------------------------------------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" ``__attribute__((xray_always_instrument))`` or ``[[clang::xray_always_instrument]]`` is used to mark member functions (in C++), methods (in Objective C), and free functions (in C, C++, and Objective C) to be instrumented with XRay. This will cause the function to always have space at the beginning and exit points to allow for runtime patching. @@ -1434,6 +1671,24 @@ Conversely, ``__attribute__((xray_never_instrument))`` or ``[[clang::xray_never_ If a function has neither of these attributes, they become subject to the XRay heuristics used to determine whether a function should be instrumented or otherwise. +``__attribute__((xray_log_args(N)))`` or ``[[clang::xray_log_args(N)]]`` is used to preserve N function arguments for the logging function. Currently, only N==1 is supported. + + +xray_always_instrument (clang::xray_always_instrument), xray_never_instrument (clang::xray_never_instrument), xray_log_args (clang::xray_log_args) +-------------------------------------------------------------------------------------------------------------------------------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "X" + +``__attribute__((xray_always_instrument))`` or ``[[clang::xray_always_instrument]]`` is used to mark member functions (in C++), methods (in Objective C), and free functions (in C, C++, and Objective C) to be instrumented with XRay. This will cause the function to always have space at the beginning and exit points to allow for runtime patching. + +Conversely, ``__attribute__((xray_never_instrument))`` or ``[[clang::xray_never_instrument]]`` will inhibit the insertion of these instrumentation points. + +If a function has neither of these attributes, they become subject to the XRay heuristics used to determine whether a function should be instrumented or otherwise. + +``__attribute__((xray_log_args(N)))`` or ``[[clang::xray_log_args(N)]]`` is used to preserve N function arguments for the logging function. Currently, only N==1 is supported. + Variable Attributes =================== @@ -1442,9 +1697,9 @@ Variable Attributes dllexport (gnu::dllexport) -------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","X","", "" + "X","X","X","", "", "X" The ``__declspec(dllexport)`` attribute declares a variable, function, or Objective-C interface to be exported from the module. It is available under the @@ -1459,9 +1714,9 @@ information. dllimport (gnu::dllimport) -------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","X","", "" + "X","X","X","", "", "X" The ``__declspec(dllimport)`` attribute declares a variable, function, or Objective-C interface to be imported from an external module. It is available @@ -1476,9 +1731,9 @@ for more information. init_seg -------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","", "X" + "","","","", "X", "" The attribute applied by ``pragma init_seg()`` controls the section into which global initialization function pointers are emitted. It is only @@ -1495,9 +1750,9 @@ documentation on MSDN for more information. nodebug (gnu::nodebug) ---------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``nodebug`` attribute allows you to suppress debugging information for a function or method, or for a variable that is not a parameter or a non-static @@ -1507,9 +1762,9 @@ data member. nosvm ----- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" OpenCL 2.0 supports the optional ``__attribute__((nosvm))`` qualifier for pointer variable. It informs the compiler that the pointer does not refer @@ -1522,9 +1777,9 @@ by Clang. pass_object_size ---------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" .. Note:: The mangling of functions with parameters that are annotated with ``pass_object_size`` is subject to change. You can get around this by @@ -1622,9 +1877,9 @@ Currently, ``pass_object_size`` is a bit restricted in terms of its usage: require_constant_initialization (clang::require_constant_initialization) ------------------------------------------------------------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" This attribute specifies that the variable to which it is attached is intended to have a `constant initializer `_ @@ -1662,9 +1917,9 @@ of silently falling back on dynamic initialization. section (gnu::section, __declspec(allocate)) -------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","X","", "" + "X","X","X","", "", "X" The ``section`` attribute allows you to specify a specific section a global variable or function should be in after translation. @@ -1673,9 +1928,9 @@ global variable or function should be in after translation. swiftcall (gnu::swiftcall) -------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" The ``swiftcall`` attribute indicates that a function should be called using the Swift calling convention for a function or function pointer. @@ -1740,9 +1995,9 @@ attributes. swift_context (gnu::swift_context) ---------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``swift_context`` attribute marks a parameter of a ``swiftcall`` function as having the special context-parameter ABI treatment. @@ -1760,9 +2015,9 @@ A context parameter must have pointer or reference type. swift_error_result (gnu::swift_error_result) -------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``swift_error_result`` attribute marks a parameter of a ``swiftcall`` function as having the special error-result ABI treatment. @@ -1798,9 +2053,9 @@ but this is not enforced by the ABI. swift_indirect_result (gnu::swift_indirect_result) -------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``swift_indirect_result`` attribute marks a parameter of a ``swiftcall`` function as having the special indirect-result ABI treatment. @@ -1829,9 +2084,9 @@ optimizations like C++'s named return value optimization (NRVO). tls_model (gnu::tls_model) -------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``tls_model`` attribute allows you to specify which thread-local storage model to use. It accepts the following strings: @@ -1847,9 +2102,9 @@ TLS models are mutually exclusive. thread ------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","X","", "" + "","","X","", "", "" The ``__declspec(thread)`` attribute declares a variable with thread local storage. It is available under the ``-fms-extensions`` flag for MSVC @@ -1867,9 +2122,9 @@ members, and static locals. maybe_unused, unused, gnu::unused --------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" When passing the ``-Wunused`` flag to Clang, entities that are unused by the program may be diagnosed. The ``[[maybe_unused]]`` (or @@ -1899,9 +2154,9 @@ Type Attributes align_value ----------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" The align_value attribute can be added to the typedef of a pointer type or the declaration of a variable of pointer or reference type. It specifies that the @@ -1922,9 +2177,9 @@ behavior of the program is undefined. empty_bases ----------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","X","", "" + "","","X","", "", "" The empty_bases attribute permits the compiler to utilize the empty-base-optimization more frequently. @@ -1932,12 +2187,63 @@ This attribute only applies to struct, class, and union types. It is only supported when using the Microsoft C++ ABI. +enum_extensibility (clang::enum_extensibility) +---------------------------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "X" + +Attribute ``enum_extensibility`` is used to distinguish between enum definitions +that are extensible and those that are not. The attribute can take either +``closed`` or ``open`` as an argument. ``closed`` indicates a variable of the +enum type takes a value that corresponds to one of the enumerators listed in the +enum definition or, when the enum is annotated with ``flag_enum``, a value that +can be constructed using values corresponding to the enumerators. ``open`` +indicates a variable of the enum type can take any values allowed by the +standard and instructs clang to be more lenient when issuing warnings. + +.. code-block:: c + + enum __attribute__((enum_extensibility(closed))) ClosedEnum { + A0, A1 + }; + + enum __attribute__((enum_extensibility(open))) OpenEnum { + B0, B1 + }; + + enum __attribute__((enum_extensibility(closed),flag_enum)) ClosedFlagEnum { + C0 = 1 << 0, C1 = 1 << 1 + }; + + enum __attribute__((enum_extensibility(open),flag_enum)) OpenFlagEnum { + D0 = 1 << 0, D1 = 1 << 1 + }; + + void foo1() { + enum ClosedEnum ce; + enum OpenEnum oe; + enum ClosedFlagEnum cfe; + enum OpenFlagEnum ofe; + + ce = A1; // no warnings + ce = 100; // warning issued + oe = B1; // no warnings + oe = 100; // no warnings + cfe = C0 | C1; // no warnings + cfe = C0 | C1 | 4; // warning issued + ofe = D0 | D1; // no warnings + ofe = D0 | D1 | 4; // no warnings + } + + flag_enum --------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" This attribute can be added to an enumerator to signal to the compiler that it is intended to be used as a flag type. This will cause the compiler to assume @@ -1948,9 +2254,9 @@ manipulating bits of the enumerator when issuing warnings. lto_visibility_public (clang::lto_visibility_public) ---------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","X","","", "" + "","X","","", "", "X" See :doc:`LTOVisibility`. @@ -1958,9 +2264,9 @@ See :doc:`LTOVisibility`. layout_version -------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","X","", "" + "","","X","", "", "" The layout_version attribute requests that the compiler utilize the class layout rules of a particular compiler version. @@ -1971,9 +2277,9 @@ It is only supported when using the Microsoft C++ ABI. __single_inhertiance, __multiple_inheritance, __virtual_inheritance ------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" This collection of keywords is enabled under ``-fms-extensions`` and controls the pointer-to-member representation used on ``*-*-win32`` targets. @@ -2020,9 +2326,9 @@ an error: novtable -------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","X","", "" + "","","X","", "", "" This attribute can be added to a class declaration or definition to signal to the compiler that constructors and destructors will not reference the virtual @@ -2032,9 +2338,9 @@ function table. It is only supported when using the Microsoft C++ ABI. objc_subclassing_restricted --------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "X" This attribute can be added to an Objective-C ``@interface`` declaration to ensure that this class cannot be subclassed. @@ -2043,9 +2349,9 @@ ensure that this class cannot be subclassed. transparent_union (gnu::transparent_union) ------------------------------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" This attribute can be applied to a union to change the behaviour of calls to functions that have an argument with a transparent union type. The compiler @@ -2068,9 +2374,9 @@ Statement Attributes fallthrough, clang::fallthrough ------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","X","","", "" + "","X","","", "", "" The ``fallthrough`` (or ``clang::fallthrough``) attribute is used to annotate intentional fall-through @@ -2122,9 +2428,9 @@ Here is an example: #pragma clang loop ------------------ .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","", "X" + "","","","", "X", "" The ``#pragma clang loop`` directive allows loop optimization hints to be specified for the subsequent loop. The directive allows vectorization, @@ -2138,9 +2444,9 @@ for details. #pragma unroll, #pragma nounroll -------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","", "X" + "","","","", "X", "" Loop unrolling optimization hints can be specified with ``#pragma unroll`` and ``#pragma nounroll``. The pragma is placed immediately before a for, while, @@ -2195,9 +2501,9 @@ for further details including limitations of the unroll hints. __read_only, __write_only, __read_write (read_only, write_only, read_write) --------------------------------------------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The access qualifiers must be used with image object arguments or pipe arguments to declare if they are being read or written by a kernel or function. @@ -2221,12 +2527,29 @@ The read_write (or __read_write) qualifier can not be used with pipe. More details can be found in the OpenCL C language Spec v2.0, Section 6.6. +__attribute__((intel_reqd_sub_group_size)) +------------------------------------------ +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +The optional attribute intel_reqd_sub_group_size can be used to indicate that +the kernel must be compiled and executed with the specified subgroup size. When +this attribute is present, get_max_sub_group_size() is guaranteed to return the +specified integer value. This is important for the correctness of many subgroup +algorithms, and in some cases may be used by the compiler to generate more optimal +code. See `cl_intel_required_subgroup_size +` +for details. + + __attribute__((opencl_unroll_hint)) ----------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "" The opencl_unroll_hint attribute qualifier can be used to specify that a loop (for, while and do loops) can be unrolled. This attribute qualifier can be @@ -2236,6 +2559,483 @@ This is a compiler hint and the compiler may ignore this directive. See s6.11.5 for details. +suppress (gsl::suppress) +------------------------ +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "","X","","", "", "" + +The ``[[gsl::suppress]]`` attribute suppresses specific +clang-tidy diagnostics for rules of the `C++ Core Guidelines`_ in a portable +way. The attribute can be attached to declarations, statements, and at +namespace scope. + +.. code-block:: c++ + + [[gsl::suppress("Rh-public")]] + void f_() { + int *p; + [[gsl::suppress("type")]] { + p = reinterpret_cast(7); + } + } + namespace N { + [[clang::suppress("type", "bounds")]]; + ... + } + +.. _`C++ Core Guidelines`: https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#inforce-enforcement + + +Consumed Annotation Checking +============================ +Clang supports additional attributes for checking basic resource management +properties, specifically for unique objects that have a single owning reference. +The following attributes are currently supported, although **the implementation +for these annotations is currently in development and are subject to change.** + +callable_when +------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +Use ``__attribute__((callable_when(...)))`` to indicate what states a method +may be called in. Valid states are unconsumed, consumed, or unknown. Each +argument to this attribute must be a quoted string. E.g.: + +``__attribute__((callable_when("unconsumed", "unknown")))`` + + +consumable +---------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +Each ``class`` that uses any of the typestate annotations must first be marked +using the ``consumable`` attribute. Failure to do so will result in a warning. + +This attribute accepts a single parameter that must be one of the following: +``unknown``, ``consumed``, or ``unconsumed``. + + +param_typestate +--------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +This attribute specifies expectations about function parameters. Calls to an +function with annotated parameters will issue a warning if the corresponding +argument isn't in the expected state. The attribute is also used to set the +initial state of the parameter when analyzing the function's body. + + +return_typestate +---------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +The ``return_typestate`` attribute can be applied to functions or parameters. +When applied to a function the attribute specifies the state of the returned +value. The function's body is checked to ensure that it always returns a value +in the specified state. On the caller side, values returned by the annotated +function are initialized to the given state. + +When applied to a function parameter it modifies the state of an argument after +a call to the function returns. The function's body is checked to ensure that +the parameter is in the expected state before returning. + + +set_typestate +------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +Annotate methods that transition an object into a new state with +``__attribute__((set_typestate(new_state)))``. The new state must be +unconsumed, consumed, or unknown. + + +test_typestate +-------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +Use ``__attribute__((test_typestate(tested_state)))`` to indicate that a method +returns true if the object is in the specified state.. + + +AMD GPU Attributes +================== + + +amdgpu_flat_work_group_size +--------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +The flat work-group size is the number of work-items in the work-group size +specified when the kernel is dispatched. It is the product of the sizes of the +x, y, and z dimension of the work-group. + +Clang supports the +``__attribute__((amdgpu_flat_work_group_size(, )))`` attribute for the +AMDGPU target. This attribute may be attached to a kernel function definition +and is an optimization hint. + +```` parameter specifies the minimum flat work-group size, and ```` +parameter specifies the maximum flat work-group size (must be greater than +````) to which all dispatches of the kernel will conform. Passing ``0, 0`` +as ``, `` implies the default behavior (``128, 256``). + +If specified, the AMDGPU target backend might be able to produce better machine +code for barriers and perform scratch promotion by estimating available group +segment size. + +An error will be given if: + - Specified values violate subtarget specifications; + - Specified values are not compatible with values provided through other + attributes. + + +amdgpu_num_sgpr +--------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +Clang supports the ``__attribute__((amdgpu_num_sgpr()))`` and +``__attribute__((amdgpu_num_vgpr()))`` attributes for the AMDGPU +target. These attributes may be attached to a kernel function definition and are +an optimization hint. + +If these attributes are specified, then the AMDGPU target backend will attempt +to limit the number of SGPRs and/or VGPRs used to the specified value(s). The +number of used SGPRs and/or VGPRs may further be rounded up to satisfy the +allocation requirements or constraints of the subtarget. Passing ``0`` as +``num_sgpr`` and/or ``num_vgpr`` implies the default behavior (no limits). + +These attributes can be used to test the AMDGPU target backend. It is +recommended that the ``amdgpu_waves_per_eu`` attribute be used to control +resources such as SGPRs and VGPRs since it is aware of the limits for different +subtargets. + +An error will be given if: + - Specified values violate subtarget specifications; + - Specified values are not compatible with values provided through other + attributes; + - The AMDGPU target backend is unable to create machine code that can meet the + request. + + +amdgpu_num_vgpr +--------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +Clang supports the ``__attribute__((amdgpu_num_sgpr()))`` and +``__attribute__((amdgpu_num_vgpr()))`` attributes for the AMDGPU +target. These attributes may be attached to a kernel function definition and are +an optimization hint. + +If these attributes are specified, then the AMDGPU target backend will attempt +to limit the number of SGPRs and/or VGPRs used to the specified value(s). The +number of used SGPRs and/or VGPRs may further be rounded up to satisfy the +allocation requirements or constraints of the subtarget. Passing ``0`` as +``num_sgpr`` and/or ``num_vgpr`` implies the default behavior (no limits). + +These attributes can be used to test the AMDGPU target backend. It is +recommended that the ``amdgpu_waves_per_eu`` attribute be used to control +resources such as SGPRs and VGPRs since it is aware of the limits for different +subtargets. + +An error will be given if: + - Specified values violate subtarget specifications; + - Specified values are not compatible with values provided through other + attributes; + - The AMDGPU target backend is unable to create machine code that can meet the + request. + + +amdgpu_waves_per_eu +------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "X" + +A compute unit (CU) is responsible for executing the wavefronts of a work-group. +It is composed of one or more execution units (EU), which are responsible for +executing the wavefronts. An EU can have enough resources to maintain the state +of more than one executing wavefront. This allows an EU to hide latency by +switching between wavefronts in a similar way to symmetric multithreading on a +CPU. In order to allow the state for multiple wavefronts to fit on an EU, the +resources used by a single wavefront have to be limited. For example, the number +of SGPRs and VGPRs. Limiting such resources can allow greater latency hiding, +but can result in having to spill some register state to memory. + +Clang supports the ``__attribute__((amdgpu_waves_per_eu([, ])))`` +attribute for the AMDGPU target. This attribute may be attached to a kernel +function definition and is an optimization hint. + +```` parameter specifies the requested minimum number of waves per EU, and +*optional* ```` parameter specifies the requested maximum number of waves +per EU (must be greater than ```` if specified). If ```` is omitted, +then there is no restriction on the maximum number of waves per EU other than +the one dictated by the hardware for which the kernel is compiled. Passing +``0, 0`` as ``, `` implies the default behavior (no limits). + +If specified, this attribute allows an advanced developer to tune the number of +wavefronts that are capable of fitting within the resources of an EU. The AMDGPU +target backend can use this information to limit resources, such as number of +SGPRs, number of VGPRs, size of available group and private memory segments, in +such a way that guarantees that at least ```` wavefronts and at most +```` wavefronts are able to fit within the resources of an EU. Requesting +more wavefronts can hide memory latency but limits available registers which +can result in spilling. Requesting fewer wavefronts can help reduce cache +thrashing, but can reduce memory latency hiding. + +This attribute controls the machine code generated by the AMDGPU target backend +to ensure it is capable of meeting the requested values. However, when the +kernel is executed, there may be other reasons that prevent meeting the request, +for example, there may be wavefronts from other kernels executing on the EU. + +An error will be given if: + - Specified values violate subtarget specifications; + - Specified values are not compatible with values provided through other + attributes; + - The AMDGPU target backend is unable to create machine code that can meet the + request. + + +Calling Conventions +=================== +Clang supports several different calling conventions, depending on the target +platform and architecture. The calling convention used for a function determines +how parameters are passed, how results are returned to the caller, and other +low-level details of calling a function. + +fastcall (gnu::fastcall, __fastcall, _fastcall) +----------------------------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","X", "", "" + +On 32-bit x86 targets, this attribute changes the calling convention of a +function to use ECX and EDX as register parameters and clear parameters off of +the stack on return. This convention does not support variadic calls or +unprototyped functions in C, and has no effect on x86_64 targets. This calling +convention is supported primarily for compatibility with existing code. Users +seeking register parameters should use the ``regparm`` attribute, which does +not require callee-cleanup. See the documentation for `__fastcall`_ on MSDN. + +.. _`__fastcall`: http://msdn.microsoft.com/en-us/library/6xa169sk.aspx + + +ms_abi (gnu::ms_abi) +-------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "" + +On non-Windows x86_64 targets, this attribute changes the calling convention of +a function to match the default convention used on Windows x86_64. This +attribute has no effect on Windows targets or non-x86_64 targets. + + +pcs (gnu::pcs) +-------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "" + +On ARM targets, this attribute can be used to select calling conventions +similar to ``stdcall`` on x86. Valid parameter values are "aapcs" and +"aapcs-vfp". + + +preserve_all +------------ +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "" + +On X86-64 and AArch64 targets, this attribute changes the calling convention of +a function. The ``preserve_all`` calling convention attempts to make the code +in the caller even less intrusive than the ``preserve_most`` calling convention. +This calling convention also behaves identical to the ``C`` calling convention +on how arguments and return values are passed, but it uses a different set of +caller/callee-saved registers. This removes the burden of saving and +recovering a large register set before and after the call in the caller. If +the arguments are passed in callee-saved registers, then they will be +preserved by the callee across the call. This doesn't apply for values +returned in callee-saved registers. + +- On X86-64 the callee preserves all general purpose registers, except for + R11. R11 can be used as a scratch register. Furthermore it also preserves + all floating-point registers (XMMs/YMMs). + +The idea behind this convention is to support calls to runtime functions +that don't need to call out to any other functions. + +This calling convention, like the ``preserve_most`` calling convention, will be +used by a future version of the Objective-C runtime and should be considered +experimental at this time. + + +preserve_most +------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","", "", "" + +On X86-64 and AArch64 targets, this attribute changes the calling convention of +a function. The ``preserve_most`` calling convention attempts to make the code +in the caller as unintrusive as possible. This convention behaves identically +to the ``C`` calling convention on how arguments and return values are passed, +but it uses a different set of caller/callee-saved registers. This alleviates +the burden of saving and recovering a large register set before and after the +call in the caller. If the arguments are passed in callee-saved registers, +then they will be preserved by the callee across the call. This doesn't +apply for values returned in callee-saved registers. + +- On X86-64 the callee preserves all general purpose registers, except for + R11. R11 can be used as a scratch register. Floating-point registers + (XMMs/YMMs) are not preserved and need to be saved by the caller. + +The idea behind this convention is to support calls to runtime functions +that have a hot path and a cold path. The hot path is usually a small piece +of code that doesn't use many registers. The cold path might need to call out to +another function and therefore only needs to preserve the caller-saved +registers, which haven't already been saved by the caller. The +`preserve_most` calling convention is very similar to the ``cold`` calling +convention in terms of caller/callee-saved registers, but they are used for +different types of function calls. ``coldcc`` is for function calls that are +rarely executed, whereas `preserve_most` function calls are intended to be +on the hot path and definitely executed a lot. Furthermore ``preserve_most`` +doesn't prevent the inliner from inlining the function call. + +This calling convention will be used by a future version of the Objective-C +runtime and should therefore still be considered experimental at this time. +Although this convention was created to optimize certain runtime calls to +the Objective-C runtime, it is not limited to this runtime and might be used +by other runtimes in the future too. The current implementation only +supports X86-64 and AArch64, but the intention is to support more architectures +in the future. + + +regcall (gnu::regcall, __regcall) +--------------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","X", "", "" + +On x86 targets, this attribute changes the calling convention to +`__regcall`_ convention. This convention aims to pass as many arguments +as possible in registers. It also tries to utilize registers for the +return value whenever it is possible. + +.. _`__regcall`: https://software.intel.com/en-us/node/693069 + + +regparm (gnu::regparm) +---------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","", "", "" + +On 32-bit x86 targets, the regparm attribute causes the compiler to pass +the first three integer parameters in EAX, EDX, and ECX instead of on the +stack. This attribute has no effect on variadic functions, and all parameters +are passed via the stack as normal. + + +stdcall (gnu::stdcall, __stdcall, _stdcall) +------------------------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","X", "", "" + +On 32-bit x86 targets, this attribute changes the calling convention of a +function to clear parameters off of the stack on return. This convention does +not support variadic calls or unprototyped functions in C, and has no effect on +x86_64 targets. This calling convention is used widely by the Windows API and +COM applications. See the documentation for `__stdcall`_ on MSDN. + +.. _`__stdcall`: http://msdn.microsoft.com/en-us/library/zxk0tw93.aspx + + +thiscall (gnu::thiscall, __thiscall, _thiscall) +----------------------------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","X","","X", "", "" + +On 32-bit x86 targets, this attribute changes the calling convention of a +function to use ECX for the first parameter (typically the implicit ``this`` +parameter of C++ methods) and clear parameters off of the stack on return. This +convention does not support variadic calls or unprototyped functions in C, and +has no effect on x86_64 targets. See the documentation for `__thiscall`_ on +MSDN. + +.. _`__thiscall`: http://msdn.microsoft.com/en-us/library/ek8tkfbw.aspx + + +vectorcall (__vectorcall, _vectorcall) +-------------------------------------- +.. csv-table:: Supported Syntaxes + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" + + "X","","","X", "", "" + +On 32-bit x86 *and* x86_64 targets, this attribute changes the calling +convention of a function to pass vector parameters in SSE registers. + +On 32-bit x86 targets, this calling convention is similar to ``__fastcall``. +The first two integer parameters are passed in ECX and EDX. Subsequent integer +parameters are passed in memory, and callee clears the stack. On x86_64 +targets, the callee does *not* clear the stack, and integer parameters are +passed in RCX, RDX, R8, and R9 as is done for the default Windows x64 calling +convention. + +On both 32-bit x86 and x86_64 targets, vector and floating point arguments are +passed in XMM0-XMM5. Homogeneous vector aggregates of up to four elements are +passed in sequential SSE registers if enough are available. If AVX is enabled, +256 bit vectors are passed in YMM0-YMM5. Any vector or aggregate type that +cannot be passed in registers for any reason is passed by reference, which +allows the caller to align the parameter memory. + +See the documentation for `__vectorcall`_ on MSDN for more details. + +.. _`__vectorcall`: http://msdn.microsoft.com/en-us/library/dn375768.aspx + + Type Safety Checking ==================== Clang supports additional attributes to enable checking type safety properties @@ -2272,9 +3072,9 @@ example: argument_with_type_tag ---------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "" Use ``__attribute__((argument_with_type_tag(arg_kind, arg_idx, type_tag_idx)))`` on a function declaration to specify that the function @@ -2309,9 +3109,9 @@ For example: pointer_with_type_tag --------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "" Use ``__attribute__((pointer_with_type_tag(ptr_kind, ptr_idx, type_tag_idx)))`` on a function declaration to specify that the function accepts a type tag that @@ -2346,9 +3146,9 @@ For example: type_tag_for_datatype --------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","","","", "" + "X","","","", "", "" When declaring a variable, use ``__attribute__((type_tag_for_datatype(kind, type)))`` to create a type tag that @@ -2456,454 +3256,6 @@ values for this optional third argument: // is not a null pointer -AMD GPU Attributes -================== - - -amdgpu_flat_work_group_size ---------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -The flat work-group size is the number of work-items in the work-group size -specified when the kernel is dispatched. It is the product of the sizes of the -x, y, and z dimension of the work-group. - -Clang supports the -``__attribute__((amdgpu_flat_work_group_size(, )))`` attribute for the -AMDGPU target. This attribute may be attached to a kernel function definition -and is an optimization hint. - -```` parameter specifies the minimum flat work-group size, and ```` -parameter specifies the maximum flat work-group size (must be greater than -````) to which all dispatches of the kernel will conform. Passing ``0, 0`` -as ``, `` implies the default behavior (``128, 256``). - -If specified, the AMDGPU target backend might be able to produce better machine -code for barriers and perform scratch promotion by estimating available group -segment size. - -An error will be given if: - - Specified values violate subtarget specifications; - - Specified values are not compatible with values provided through other - attributes. - - -amdgpu_num_sgpr ---------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Clang supports the ``__attribute__((amdgpu_num_sgpr()))`` and -``__attribute__((amdgpu_num_vgpr()))`` attributes for the AMDGPU -target. These attributes may be attached to a kernel function definition and are -an optimization hint. - -If these attributes are specified, then the AMDGPU target backend will attempt -to limit the number of SGPRs and/or VGPRs used to the specified value(s). The -number of used SGPRs and/or VGPRs may further be rounded up to satisfy the -allocation requirements or constraints of the subtarget. Passing ``0`` as -``num_sgpr`` and/or ``num_vgpr`` implies the default behavior (no limits). - -These attributes can be used to test the AMDGPU target backend. It is -recommended that the ``amdgpu_waves_per_eu`` attribute be used to control -resources such as SGPRs and VGPRs since it is aware of the limits for different -subtargets. - -An error will be given if: - - Specified values violate subtarget specifications; - - Specified values are not compatible with values provided through other - attributes; - - The AMDGPU target backend is unable to create machine code that can meet the - request. - - -amdgpu_num_vgpr ---------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Clang supports the ``__attribute__((amdgpu_num_sgpr()))`` and -``__attribute__((amdgpu_num_vgpr()))`` attributes for the AMDGPU -target. These attributes may be attached to a kernel function definition and are -an optimization hint. - -If these attributes are specified, then the AMDGPU target backend will attempt -to limit the number of SGPRs and/or VGPRs used to the specified value(s). The -number of used SGPRs and/or VGPRs may further be rounded up to satisfy the -allocation requirements or constraints of the subtarget. Passing ``0`` as -``num_sgpr`` and/or ``num_vgpr`` implies the default behavior (no limits). - -These attributes can be used to test the AMDGPU target backend. It is -recommended that the ``amdgpu_waves_per_eu`` attribute be used to control -resources such as SGPRs and VGPRs since it is aware of the limits for different -subtargets. - -An error will be given if: - - Specified values violate subtarget specifications; - - Specified values are not compatible with values provided through other - attributes; - - The AMDGPU target backend is unable to create machine code that can meet the - request. - - -amdgpu_waves_per_eu -------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -A compute unit (CU) is responsible for executing the wavefronts of a work-group. -It is composed of one or more execution units (EU), which are responsible for -executing the wavefronts. An EU can have enough resources to maintain the state -of more than one executing wavefront. This allows an EU to hide latency by -switching between wavefronts in a similar way to symmetric multithreading on a -CPU. In order to allow the state for multiple wavefronts to fit on an EU, the -resources used by a single wavefront have to be limited. For example, the number -of SGPRs and VGPRs. Limiting such resources can allow greater latency hiding, -but can result in having to spill some register state to memory. - -Clang supports the ``__attribute__((amdgpu_waves_per_eu([, ])))`` -attribute for the AMDGPU target. This attribute may be attached to a kernel -function definition and is an optimization hint. - -```` parameter specifies the requested minimum number of waves per EU, and -*optional* ```` parameter specifies the requested maximum number of waves -per EU (must be greater than ```` if specified). If ```` is omitted, -then there is no restriction on the maximum number of waves per EU other than -the one dictated by the hardware for which the kernel is compiled. Passing -``0, 0`` as ``, `` implies the default behavior (no limits). - -If specified, this attribute allows an advanced developer to tune the number of -wavefronts that are capable of fitting within the resources of an EU. The AMDGPU -target backend can use this information to limit resources, such as number of -SGPRs, number of VGPRs, size of available group and private memory segments, in -such a way that guarantees that at least ```` wavefronts and at most -```` wavefronts are able to fit within the resources of an EU. Requesting -more wavefronts can hide memory latency but limits available registers which -can result in spilling. Requesting fewer wavefronts can help reduce cache -thrashing, but can reduce memory latency hiding. - -This attribute controls the machine code generated by the AMDGPU target backend -to ensure it is capable of meeting the requested values. However, when the -kernel is executed, there may be other reasons that prevent meeting the request, -for example, there may be wavefronts from other kernels executing on the EU. - -An error will be given if: - - Specified values violate subtarget specifications; - - Specified values are not compatible with values provided through other - attributes; - - The AMDGPU target backend is unable to create machine code that can meet the - request. - - -Calling Conventions -=================== -Clang supports several different calling conventions, depending on the target -platform and architecture. The calling convention used for a function determines -how parameters are passed, how results are returned to the caller, and other -low-level details of calling a function. - -fastcall (gnu::fastcall, __fastcall, _fastcall) ------------------------------------------------ -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","X", "" - -On 32-bit x86 targets, this attribute changes the calling convention of a -function to use ECX and EDX as register parameters and clear parameters off of -the stack on return. This convention does not support variadic calls or -unprototyped functions in C, and has no effect on x86_64 targets. This calling -convention is supported primarily for compatibility with existing code. Users -seeking register parameters should use the ``regparm`` attribute, which does -not require callee-cleanup. See the documentation for `__fastcall`_ on MSDN. - -.. _`__fastcall`: http://msdn.microsoft.com/en-us/library/6xa169sk.aspx - - -ms_abi (gnu::ms_abi) --------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -On non-Windows x86_64 targets, this attribute changes the calling convention of -a function to match the default convention used on Windows x86_64. This -attribute has no effect on Windows targets or non-x86_64 targets. - - -pcs (gnu::pcs) --------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -On ARM targets, this attribute can be used to select calling conventions -similar to ``stdcall`` on x86. Valid parameter values are "aapcs" and -"aapcs-vfp". - - -preserve_all ------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -On X86-64 and AArch64 targets, this attribute changes the calling convention of -a function. The ``preserve_all`` calling convention attempts to make the code -in the caller even less intrusive than the ``preserve_most`` calling convention. -This calling convention also behaves identical to the ``C`` calling convention -on how arguments and return values are passed, but it uses a different set of -caller/callee-saved registers. This removes the burden of saving and -recovering a large register set before and after the call in the caller. If -the arguments are passed in callee-saved registers, then they will be -preserved by the callee across the call. This doesn't apply for values -returned in callee-saved registers. - -- On X86-64 the callee preserves all general purpose registers, except for - R11. R11 can be used as a scratch register. Furthermore it also preserves - all floating-point registers (XMMs/YMMs). - -The idea behind this convention is to support calls to runtime functions -that don't need to call out to any other functions. - -This calling convention, like the ``preserve_most`` calling convention, will be -used by a future version of the Objective-C runtime and should be considered -experimental at this time. - - -preserve_most -------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -On X86-64 and AArch64 targets, this attribute changes the calling convention of -a function. The ``preserve_most`` calling convention attempts to make the code -in the caller as unintrusive as possible. This convention behaves identically -to the ``C`` calling convention on how arguments and return values are passed, -but it uses a different set of caller/callee-saved registers. This alleviates -the burden of saving and recovering a large register set before and after the -call in the caller. If the arguments are passed in callee-saved registers, -then they will be preserved by the callee across the call. This doesn't -apply for values returned in callee-saved registers. - -- On X86-64 the callee preserves all general purpose registers, except for - R11. R11 can be used as a scratch register. Floating-point registers - (XMMs/YMMs) are not preserved and need to be saved by the caller. - -The idea behind this convention is to support calls to runtime functions -that have a hot path and a cold path. The hot path is usually a small piece -of code that doesn't use many registers. The cold path might need to call out to -another function and therefore only needs to preserve the caller-saved -registers, which haven't already been saved by the caller. The -`preserve_most` calling convention is very similar to the ``cold`` calling -convention in terms of caller/callee-saved registers, but they are used for -different types of function calls. ``coldcc`` is for function calls that are -rarely executed, whereas `preserve_most` function calls are intended to be -on the hot path and definitely executed a lot. Furthermore ``preserve_most`` -doesn't prevent the inliner from inlining the function call. - -This calling convention will be used by a future version of the Objective-C -runtime and should therefore still be considered experimental at this time. -Although this convention was created to optimize certain runtime calls to -the Objective-C runtime, it is not limited to this runtime and might be used -by other runtimes in the future too. The current implementation only -supports X86-64 and AArch64, but the intention is to support more architectures -in the future. - - -regcall (gnu::regcall, __regcall) ---------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","X", "" - -On x86 targets, this attribute changes the calling convention to -`__regcall`_ convention. This convention aims to pass as many arguments -as possible in registers. It also tries to utilize registers for the -return value whenever it is possible. - -.. _`__regcall`: https://software.intel.com/en-us/node/693069 - - -regparm (gnu::regparm) ----------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","", "" - -On 32-bit x86 targets, the regparm attribute causes the compiler to pass -the first three integer parameters in EAX, EDX, and ECX instead of on the -stack. This attribute has no effect on variadic functions, and all parameters -are passed via the stack as normal. - - -stdcall (gnu::stdcall, __stdcall, _stdcall) -------------------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","X", "" - -On 32-bit x86 targets, this attribute changes the calling convention of a -function to clear parameters off of the stack on return. This convention does -not support variadic calls or unprototyped functions in C, and has no effect on -x86_64 targets. This calling convention is used widely by the Windows API and -COM applications. See the documentation for `__stdcall`_ on MSDN. - -.. _`__stdcall`: http://msdn.microsoft.com/en-us/library/zxk0tw93.aspx - - -thiscall (gnu::thiscall, __thiscall, _thiscall) ------------------------------------------------ -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","X","","X", "" - -On 32-bit x86 targets, this attribute changes the calling convention of a -function to use ECX for the first parameter (typically the implicit ``this`` -parameter of C++ methods) and clear parameters off of the stack on return. This -convention does not support variadic calls or unprototyped functions in C, and -has no effect on x86_64 targets. See the documentation for `__thiscall`_ on -MSDN. - -.. _`__thiscall`: http://msdn.microsoft.com/en-us/library/ek8tkfbw.aspx - - -vectorcall (__vectorcall, _vectorcall) --------------------------------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","X", "" - -On 32-bit x86 *and* x86_64 targets, this attribute changes the calling -convention of a function to pass vector parameters in SSE registers. - -On 32-bit x86 targets, this calling convention is similar to ``__fastcall``. -The first two integer parameters are passed in ECX and EDX. Subsequent integer -parameters are passed in memory, and callee clears the stack. On x86_64 -targets, the callee does *not* clear the stack, and integer parameters are -passed in RCX, RDX, R8, and R9 as is done for the default Windows x64 calling -convention. - -On both 32-bit x86 and x86_64 targets, vector and floating point arguments are -passed in XMM0-XMM5. Homogeneous vector aggregates of up to four elements are -passed in sequential SSE registers if enough are available. If AVX is enabled, -256 bit vectors are passed in YMM0-YMM5. Any vector or aggregate type that -cannot be passed in registers for any reason is passed by reference, which -allows the caller to align the parameter memory. - -See the documentation for `__vectorcall`_ on MSDN for more details. - -.. _`__vectorcall`: http://msdn.microsoft.com/en-us/library/dn375768.aspx - - -Consumed Annotation Checking -============================ -Clang supports additional attributes for checking basic resource management -properties, specifically for unique objects that have a single owning reference. -The following attributes are currently supported, although **the implementation -for these annotations is currently in development and are subject to change.** - -callable_when -------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Use ``__attribute__((callable_when(...)))`` to indicate what states a method -may be called in. Valid states are unconsumed, consumed, or unknown. Each -argument to this attribute must be a quoted string. E.g.: - -``__attribute__((callable_when("unconsumed", "unknown")))`` - - -consumable ----------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Each ``class`` that uses any of the typestate annotations must first be marked -using the ``consumable`` attribute. Failure to do so will result in a warning. - -This attribute accepts a single parameter that must be one of the following: -``unknown``, ``consumed``, or ``unconsumed``. - - -param_typestate ---------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -This attribute specifies expectations about function parameters. Calls to an -function with annotated parameters will issue a warning if the corresponding -argument isn't in the expected state. The attribute is also used to set the -initial state of the parameter when analyzing the function's body. - - -return_typestate ----------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -The ``return_typestate`` attribute can be applied to functions or parameters. -When applied to a function the attribute specifies the state of the returned -value. The function's body is checked to ensure that it always returns a value -in the specified state. On the caller side, values returned by the annotated -function are initialized to the given state. - -When applied to a function parameter it modifies the state of an argument after -a call to the function returns. The function's body is checked to ensure that -the parameter is in the expected state before returning. - - -set_typestate -------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Annotate methods that transition an object into a new state with -``__attribute__((set_typestate(new_state)))``. The new state must be -unconsumed, consumed, or unknown. - - -test_typestate --------------- -.. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" - - "X","","","", "" - -Use ``__attribute__((test_typestate(tested_state)))`` to indicate that a method -returns true if the object is in the specified state.. - - OpenCL Address Spaces ===================== The address space qualifier may be used to specify the region of memory that is @@ -2927,9 +3279,9 @@ More details can be found in the OpenCL C language Spec v2.0, Section 6.5. constant (__constant) --------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The constant address space attribute signals that an object is located in a constant (non-modifiable) memory region. It is available to all work items. @@ -2941,9 +3293,9 @@ have an initializer. generic (__generic) ------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The generic address space attribute is only available with OpenCL v2.0 and later. It can be used with pointer types. Variables in global and local scope and @@ -2956,9 +3308,9 @@ spaces. global (__global) ----------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The global address space attribute specifies that an object is allocated in global memory, which is accessible by all work items. The content stored in this @@ -2971,9 +3323,9 @@ scope) variables and static local variable as well. local (__local) --------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The local address space specifies that an object is allocated in the local (work group) memory area, which is accessible to all work items in the same work @@ -2986,9 +3338,9 @@ space are allowed. Local address space variables cannot have an initializer. private (__private) ------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The private address space specifies that an object is allocated in the private (work item) memory. Other work items cannot access the same memory area and its @@ -3030,9 +3382,9 @@ In Objective-C, there is an alternate spelling for the nullability qualifiers th nonnull (gnu::nonnull) ---------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "" The ``nonnull`` attribute indicates that some function parameters must not be null, and can be used in several different ways. It's original usage (`from GCC `_) is as a function (or Objective-C method) attribute that specifies which parameters of the function are nonnull in a comma-separated list. For example: @@ -3062,9 +3414,9 @@ Note that the ``nonnull`` attribute indicates that passing null to a non-null pa returns_nonnull (gnu::returns_nonnull) -------------------------------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "X","X","","", "" + "X","X","","", "", "X" The ``returns_nonnull`` attribute indicates that a particular function (or Objective-C method) always returns a non-null pointer. For example, a particular system ``malloc`` might be defined to terminate a process when memory is not available rather than returning a null pointer: @@ -3078,9 +3430,9 @@ The ``returns_nonnull`` attribute implies that returning a null pointer is undef _Nonnull -------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The ``_Nonnull`` nullability qualifier indicates that null is not a meaningful value for a value of the ``_Nonnull`` pointer type. For example, given a declaration such as: @@ -3094,9 +3446,9 @@ a caller of ``fetch`` should not provide a null value, and the compiler will pro _Null_unspecified ----------------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The ``_Null_unspecified`` nullability qualifier indicates that neither the ``_Nonnull`` nor ``_Nullable`` qualifiers make sense for a particular pointer type. It is used primarily to indicate that the role of null with specific pointers in a nullability-annotated header is unclear, e.g., due to overly-complex implementations or historical factors with a long-lived API. @@ -3104,9 +3456,9 @@ The ``_Null_unspecified`` nullability qualifier indicates that neither the ``_No _Nullable --------- .. csv-table:: Supported Syntaxes - :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma" + :header: "GNU", "C++11", "__declspec", "Keyword", "Pragma", "Pragma clang attribute" - "","","","X", "" + "","","","X", "", "" The ``_Nullable`` nullability qualifier indicates that a value of the ``_Nullable`` pointer type can be null. For example, given: diff --git a/external/bsd/llvm/dist/clang/docs/AutomaticReferenceCounting.rst b/external/bsd/llvm/dist/clang/docs/AutomaticReferenceCounting.rst index aa2a28399d14..fbd1ba4c4d47 100644 --- a/external/bsd/llvm/dist/clang/docs/AutomaticReferenceCounting.rst +++ b/external/bsd/llvm/dist/clang/docs/AutomaticReferenceCounting.rst @@ -2258,16 +2258,13 @@ non-block type [*]_. Equivalent to the following code: .. code-block:: objc - id objc_storeStrong(id *object, id value) { - value = [value retain]; + void objc_storeStrong(id *object, id value) { id oldValue = *object; + value = [value retain]; *object = value; [oldValue release]; - return value; } -Always returns ``value``. - .. [*] This does not imply that a ``__strong`` object of block type is an invalid argument to this function. Rather it implies that an ``objc_retain`` and not an ``objc_retainBlock`` operation will be emitted if the argument is diff --git a/external/bsd/llvm/dist/clang/docs/Block-ABI-Apple.rst b/external/bsd/llvm/dist/clang/docs/Block-ABI-Apple.rst index 628e6f3d90ba..7f49bbd40d71 100644 --- a/external/bsd/llvm/dist/clang/docs/Block-ABI-Apple.rst +++ b/external/bsd/llvm/dist/clang/docs/Block-ABI-Apple.rst @@ -856,15 +856,15 @@ mentioned above, call: .. code-block:: c - _Block_object_assign(&dst->target, src->target, BLOCK_FIELD_); + _Block_object_assign(&dst->target, src->target, BLOCK_FIELD_); in the copy helper and: .. code-block:: c - _Block_object_dispose(->target, BLOCK_FIELD_); + _Block_object_dispose(->target, BLOCK_FIELD_); -in the dispose helper where ```` is: +in the dispose helper where ```` is: .. code-block:: c @@ -888,7 +888,7 @@ and functions are generated in the same manner. Under ObjC we allow ``__weak`` as an attribute on ``__block`` variables, and this causes the addition of ``BLOCK_FIELD_IS_WEAK`` orred onto the ``BLOCK_FIELD_IS_BYREF`` flag when copying the ``block_byref`` structure in the -``Block`` copy helper, and onto the ``BLOCK_FIELD_`` field within the +``Block`` copy helper, and onto the ``BLOCK_FIELD_`` field within the ``block_byref`` copy/dispose helper calls. The prototypes, and summary, of the helper functions are: diff --git a/external/bsd/llvm/dist/clang/docs/CMakeLists.txt b/external/bsd/llvm/dist/clang/docs/CMakeLists.txt index 13b79fdfa534..d2956c18f80c 100644 --- a/external/bsd/llvm/dist/clang/docs/CMakeLists.txt +++ b/external/bsd/llvm/dist/clang/docs/CMakeLists.txt @@ -91,8 +91,8 @@ endif() endif() if (LLVM_ENABLE_SPHINX) + include(AddSphinxTarget) if (SPHINX_FOUND) - include(AddSphinxTarget) if (${SPHINX_OUTPUT_HTML}) add_sphinx_target(html clang) add_custom_command(TARGET docs-clang-html POST_BUILD diff --git a/external/bsd/llvm/dist/clang/docs/ClangCommandLineReference.rst b/external/bsd/llvm/dist/clang/docs/ClangCommandLineReference.rst new file mode 100644 index 000000000000..a7b485a39438 --- /dev/null +++ b/external/bsd/llvm/dist/clang/docs/ClangCommandLineReference.rst @@ -0,0 +1,2629 @@ +.. + ------------------------------------------------------------------- + NOTE: This file is automatically generated by running clang-tblgen + -gen-opt-docs. Do not edit this file by hand!! + ------------------------------------------------------------------- + +===================================== +Clang command line argument reference +===================================== +.. contents:: + :local: + +Introduction +============ + +This page lists the command line arguments currently supported by the +GCC-compatible ``clang`` and ``clang++`` drivers. + + +.. program:: clang +.. option:: -B, --prefix , --prefix= + +Add to search path for binaries and object files used implicitly + +.. option:: -F + +Add directory to framework include search path + +.. option:: -ObjC + +Treat source input files as Objective-C inputs + +.. program:: clang1 +.. option:: -ObjC++ +.. program:: clang + +Treat source input files as Objective-C++ inputs + +.. option:: -Qunused-arguments + +Don't emit warning for unused driver arguments + +.. option:: -Wa,,... + +Pass the comma separated arguments in to the assembler + +.. option:: -Wlarge-by-value-copy= + +.. option:: -Xarch\_ + +.. option:: -Xcuda-fatbinary + +Pass to fatbinary invocation + +.. option:: -Xcuda-ptxas + +Pass to the ptxas assembler + +.. option:: -Z + +.. option:: -a, --profile-blocks + +.. option:: -all\_load + +.. option:: -allowable\_client + +.. option:: --analyze + +Run the static analyzer + +.. option:: --analyze-auto + +.. option:: --analyzer-no-default-checks + +.. option:: --analyzer-output + +Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|text). + +.. option:: -ansi, --ansi + +.. option:: -arch + +.. program:: clang1 +.. option:: -arch\_errors\_fatal +.. program:: clang + +.. program:: clang2 +.. option:: -arch\_only +.. program:: clang + +.. option:: -arcmt-migrate-emit-errors + +Emit ARC errors even if the migrator can fix them + +.. option:: -arcmt-migrate-report-output + +Output path for the plist report + +.. option:: --autocomplete= + +.. option:: -bind\_at\_load + +.. option:: -bundle + +.. program:: clang1 +.. option:: -bundle\_loader +.. program:: clang + +.. option:: -client\_name + +.. option:: -compatibility\_version + +.. option:: --constant-cfstrings + +.. option:: -coverage, --coverage + +.. option:: --cuda-compile-host-device + +Compile CUDA code for both host and device (default). Has no effect on non-CUDA compilations. + +.. option:: --cuda-device-only + +Compile CUDA code for device only + +.. option:: --cuda-gpu-arch=, --no-cuda-gpu-arch= + +CUDA GPU architecture (e.g. sm\_35). May be specified more than once. + +.. option:: --cuda-host-only + +Compile CUDA code for host only. Has no effect on non-CUDA compilations. + +.. option:: --cuda-noopt-device-debug, --no-cuda-noopt-device-debug + +Enable device-side debug info generation. Disables ptxas optimizations. + +.. option:: -current\_version + +.. option:: -dead\_strip + +.. option:: -dependency-dot + +Filename to write DOT-formatted header dependencies to + +.. option:: -dependency-file + +Filename (or -) to write dependency output to + +.. option:: -dumpmachine + +.. option:: -dumpversion + +.. option:: --dyld-prefix=, --dyld-prefix + +.. option:: -dylib\_file + +.. option:: -dylinker + +.. program:: clang1 +.. option:: -dylinker\_install\_name +.. program:: clang + +.. option:: -dynamic + +.. option:: -dynamiclib + +.. option:: -emit-ast + +Emit Clang AST files for source inputs + +.. option:: -exported\_symbols\_list + +.. option:: -faligned-new= + +.. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals + +Use approximate transcendental functions + +.. option:: -fcuda-flush-denormals-to-zero, -fno-cuda-flush-denormals-to-zero + +Flush denormal floating point values to zero in CUDA device mode. + +.. option:: -fheinous-gnu-extensions + +.. option:: -flat\_namespace + +.. option:: -fopenmp-targets=,... + +Specify comma-separated list of triples OpenMP offloading targets to be supported + +.. option:: -force\_cpusubtype\_ALL + +.. program:: clang1 +.. option:: -force\_flat\_namespace +.. program:: clang + +.. program:: clang2 +.. option:: -force\_load +.. program:: clang + +.. option:: -framework + +.. option:: -frtlib-add-rpath, -fno-rtlib-add-rpath + +Add -rpath with architecture-specific resource directory to the linker flags + +.. option:: --gcc-toolchain=, -gcc-toolchain + +Use the gcc toolchain at the given directory + +.. option:: -gcodeview + +Generate CodeView debug information + +.. option:: -headerpad\_max\_install\_names + +.. option:: -help, --help + +Display available options + +.. option:: --help-hidden + +.. option:: -image\_base + +.. option:: -index-header-map + +Make the next included directory (-I or -F) an indexer header map + +.. option:: -init + +.. option:: -install\_name + +.. option:: -keep\_private\_externs + +.. option:: -lazy\_framework + +.. program:: clang1 +.. option:: -lazy\_library +.. program:: clang + +.. option:: -mbig-endian, -EB + +.. option:: --migrate + +Run the migrator + +.. option:: -mios-simulator-version-min=, -miphonesimulator-version-min= + +.. option:: -mlinker-version= + +.. option:: -mlittle-endian, -EL + +.. option:: -mllvm + +Additional arguments to forward to LLVM's option processing + +.. option:: -module-dependency-dir + +Directory to dump module dependencies to + +.. option:: -mtvos-simulator-version-min=, -mappletvsimulator-version-min= + +.. option:: -multi\_module + +.. option:: -multiply\_defined + +.. program:: clang1 +.. option:: -multiply\_defined\_unused +.. program:: clang + +.. option:: -mwatchos-simulator-version-min=, -mwatchsimulator-version-min= + +.. option:: --no-cuda-version-check + +Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture. + +.. option:: -no-integrated-cpp, --no-integrated-cpp + +.. option:: -no\_dead\_strip\_inits\_and\_terms + +.. option:: -nobuiltininc + +Disable builtin #include directories + +.. option:: -nocudainc + +.. option:: -nocudalib + +.. option:: -nodefaultlibs + +.. option:: -nofixprebinding + +.. option:: -nolibc + +.. option:: -nomultidefs + +.. option:: -nopie, -no-pie + +.. option:: -noprebind + +.. option:: -noseglinkedit + +.. option:: -nostartfiles + +.. option:: -nostdinc, --no-standard-includes + +.. program:: clang1 +.. option:: -nostdinc++ +.. program:: clang + +Disable standard #include directories for the C++ standard library + +.. option:: -nostdlib, --no-standard-libraries + +.. option:: -nostdlibinc + +.. option:: -o, --output , --output= + +Write output to + +.. option:: -objcmt-atomic-property + +Make migration to 'atomic' properties + +.. option:: -objcmt-migrate-all + +Enable migration to modern ObjC + +.. option:: -objcmt-migrate-annotation + +Enable migration to property and method annotations + +.. option:: -objcmt-migrate-designated-init + +Enable migration to infer NS\_DESIGNATED\_INITIALIZER for initializer methods + +.. option:: -objcmt-migrate-instancetype + +Enable migration to infer instancetype for method result type + +.. option:: -objcmt-migrate-literals + +Enable migration to modern ObjC literals + +.. option:: -objcmt-migrate-ns-macros + +Enable migration to NS\_ENUM/NS\_OPTIONS macros + +.. option:: -objcmt-migrate-property + +Enable migration to modern ObjC property + +.. option:: -objcmt-migrate-property-dot-syntax + +Enable migration of setter/getter messages to property-dot syntax + +.. option:: -objcmt-migrate-protocol-conformance + +Enable migration to add protocol conformance on classes + +.. option:: -objcmt-migrate-readonly-property + +Enable migration to modern ObjC readonly property + +.. option:: -objcmt-migrate-readwrite-property + +Enable migration to modern ObjC readwrite property + +.. option:: -objcmt-migrate-subscripting + +Enable migration to modern ObjC subscripting + +.. option:: -objcmt-ns-nonatomic-iosonly + +Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'atomic' attribute + +.. option:: -objcmt-returns-innerpointer-property + +Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER + +.. option:: -objcmt-whitelist-dir-path=, -objcmt-white-list-dir-path= + +Only modify files with a filename contained in the provided directory path + +.. option:: -object + +.. option:: -p, --profile + +.. option:: -pagezero\_size + +.. option:: -pg + +Enable mcount instrumentation + +.. option:: -pie + +.. option:: -pipe, --pipe + +Use pipes between commands, when possible + +.. option:: -prebind + +.. program:: clang1 +.. option:: -prebind\_all\_twolevel\_modules +.. program:: clang + +.. option:: -preload + +.. option:: --print-diagnostic-categories + +.. option:: -print-file-name=, --print-file-name=, --print-file-name + +Print the full library path of + +.. option:: -print-ivar-layout + +Enable Objective-C Ivar layout bitmap print trace + +.. option:: -print-libgcc-file-name, --print-libgcc-file-name + +Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang\_rt.builtins.\*.a") + +.. option:: -print-multi-directory, --print-multi-directory + +.. option:: -print-multi-lib, --print-multi-lib + +.. option:: -print-prog-name=, --print-prog-name=, --print-prog-name + +Print the full program path of + +.. option:: -print-resource-dir, --print-resource-dir + +Print the resource directory pathname + +.. option:: -print-search-dirs, --print-search-dirs + +Print the paths used for finding libraries and programs + +.. option:: -private\_bundle + +.. option:: -pthread, -no-pthread + +Support POSIX threads in generated code + +.. option:: -pthreads + +.. option:: -rdynamic + +.. option:: -read\_only\_relocs + +.. option:: -relocatable-pch, --relocatable-pch + +Whether to build a relocatable precompiled header + +.. option:: -remap + +.. option:: -rewrite-legacy-objc + +Rewrite Legacy Objective-C source to C++ + +.. option:: -rtlib=, --rtlib=, --rtlib + +Compiler runtime library to use + +.. option:: -save-stats=, --save-stats=, -save-stats (equivalent to -save-stats=cwd), --save-stats (equivalent to -save-stats=cwd) + +Save llvm statistics. + +.. option:: -save-temps=, --save-temps=, -save-temps (equivalent to -save-temps=cwd), --save-temps (equivalent to -save-temps=cwd) + +Save intermediate compilation results. + +.. option:: -sectalign + +.. option:: -sectcreate + +.. option:: -sectobjectsymbols + +.. option:: -sectorder + +.. option:: -seg1addr + +.. option:: -seg\_addr\_table + +.. program:: clang1 +.. option:: -seg\_addr\_table\_filename +.. program:: clang + +.. option:: -segaddr + +.. option:: -segcreate + +.. option:: -seglinkedit + +.. option:: -segprot + +.. option:: -segs\_read\_ + +.. program:: clang1 +.. option:: -segs\_read\_only\_addr +.. program:: clang + +.. program:: clang2 +.. option:: -segs\_read\_write\_addr +.. program:: clang + +.. option:: -serialize-diagnostics , --serialize-diagnostics + +Serialize compiler diagnostics to a file + +.. option:: -shared, --shared + +.. option:: -shared-libasan + +.. option:: -shared-libgcc + +.. option:: -single\_module + +.. option:: -specs=, --specs= + +.. option:: -static, --static + +.. option:: -static-libgcc + +.. option:: -static-libstdc++ + +.. option:: -std-default= + +.. option:: -stdlib=, --stdlib=, --stdlib + +C++ standard library to use + +.. option:: -sub\_library + +.. program:: clang1 +.. option:: -sub\_umbrella +.. program:: clang + +.. option:: --sysroot=, --sysroot + +.. option:: --target-help + +.. option:: --target=, -target + +Generate code for the given target + +.. option:: -time + +Time individual commands + +.. option:: -traditional, --traditional + +.. option:: -traditional-cpp, --traditional-cpp + +Enable some traditional CPP emulation + +.. option:: -twolevel\_namespace + +.. program:: clang1 +.. option:: -twolevel\_namespace\_hints +.. program:: clang + +.. option:: -umbrella + +.. option:: -unexported\_symbols\_list + +.. option:: -v, --verbose + +Show commands to run and use verbose output + +.. option:: --verify-debug-info + +Verify the binary representation of debug output + +.. option:: --version + +.. option:: -w, --no-warnings + +Suppress all warnings + +.. option:: -weak-l + +.. option:: -weak\_framework + +.. program:: clang1 +.. option:: -weak\_library +.. program:: clang + +.. program:: clang2 +.. option:: -weak\_reference\_mismatches +.. program:: clang + +.. option:: -whatsloaded + +.. option:: -whyload + +.. option:: -working-directory, -working-directory= + +Resolve file paths relative to the specified directory + +.. option:: -x, --language , --language= + +Treat subsequent input files as having type + +.. option:: -y + +Actions +======= +The action to perform on the input. + +.. option:: -E, --preprocess + +Only run the preprocessor + +.. option:: -S, --assemble + +Only run preprocess and compilation steps + +.. option:: -c, --compile + +Only run preprocess, compile, and assemble steps + +.. option:: -emit-llvm + +Use the LLVM representation for assembler and object files + +.. option:: -fsyntax-only + +.. option:: -module-file-info + +Provide information about a particular module file + +.. option:: --precompile + +Only precompile the input + +.. option:: -rewrite-objc + +Rewrite Objective-C source to C++ + +.. option:: -verify-pch + +Load and verify that a pre-compiled header file is not stale + +Compilation flags +================= + +Flags controlling the behavior of Clang during compilation. These flags have +no effect during actions that do not perform compilation. + +.. option:: -Xassembler + +Pass to the assembler + +.. option:: -Xclang + +Pass to the clang compiler + +.. option:: -fcomment-block-commands=,... + +Treat each comma separated argument in as a documentation comment block command + +.. option:: -fdeclspec, -fno-declspec + +Allow \_\_declspec as a keyword + +.. option:: -fdepfile-entry= + +.. option:: -fdiagnostics-fixit-info, -fno-diagnostics-fixit-info + +.. option:: -fdiagnostics-format= + +.. option:: -fdiagnostics-parseable-fixits + +Print fix-its in machine parseable form + +.. option:: -fdiagnostics-print-source-range-info + +Print source range spans in numeric form + +.. option:: -fdiagnostics-show-category= + +.. option:: -fexperimental-new-pass-manager, -fno-experimental-new-pass-manager + +Enables an experimental new pass manager in LLVM. + +.. option:: -finline-functions, -fno-inline-functions + +Inline suitable functions + +.. option:: -finline-hint-functions + +Inline functions which are (explicitly or implicitly) marked inline + +.. option:: -fno-crash-diagnostics + +Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash + +.. option:: -fno-sanitize-blacklist + +Don't use blacklist file for sanitizers + +.. option:: -fparse-all-comments + +.. option:: -fsanitize-address-field-padding= + +Level of field padding for AddressSanitizer + +.. option:: -fsanitize-address-globals-dead-stripping + +Enable linker dead stripping of globals in AddressSanitizer + +.. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope + +Enable use-after-scope detection in AddressSanitizer + +.. option:: -fsanitize-blacklist= + +Path to blacklist file for sanitizers + +.. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso + +Enable control flow integrity (CFI) checks for cross-DSO calls. + +.. option:: -fsanitize-coverage=,..., -fno-sanitize-coverage=,... + +Specify the type of coverage instrumentation for Sanitizers + +.. option:: -fsanitize-link-c++-runtime + +.. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins + +Enable origins tracking in MemorySanitizer + +.. program:: clang1 +.. option:: -fsanitize-memory-track-origins= +.. program:: clang + +Enable origins tracking in MemorySanitizer + +.. option:: -fsanitize-memory-use-after-dtor + +Enable use-after-destroy detection in MemorySanitizer + +.. option:: -fsanitize-recover, -fno-sanitize-recover + +.. program:: clang1 +.. option:: -fsanitize-recover=,..., -fno-sanitize-recover=,... +.. program:: clang + +Enable recovery for specified sanitizers + +.. option:: -fsanitize-stats, -fno-sanitize-stats + +Enable sanitizer statistics gathering. + +.. option:: -fsanitize-thread-atomics, -fno-sanitize-thread-atomics + +Enable atomic operations instrumentation in ThreadSanitizer (default) + +.. option:: -fsanitize-thread-func-entry-exit, -fno-sanitize-thread-func-entry-exit + +Enable function entry/exit instrumentation in ThreadSanitizer (default) + +.. option:: -fsanitize-thread-memory-access, -fno-sanitize-thread-memory-access + +Enable memory access instrumentation in ThreadSanitizer (default) + +.. option:: -fsanitize-trap=,..., -fno-sanitize-trap=,... + +Enable trapping for specified sanitizers + +.. option:: -fsanitize-undefined-strip-path-components= + +Strip (or keep only, if negative) a given number of path components when emitting check metadata. + +.. option:: -fsanitize-undefined-trap-on-error, -fno-sanitize-undefined-trap-on-error + +.. option:: -fsanitize=,..., -fno-sanitize=,... + +Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks + +.. option:: --param , --param= + +.. option:: -std=, --std=, --std + +Language standard to compile for + +Preprocessor flags +~~~~~~~~~~~~~~~~~~ + +Flags controlling the behavior of the Clang preprocessor. + +.. option:: -C, --comments + +Include comments in preprocessed output + +.. option:: -CC, --comments-in-macros + +Include comments from within macros in preprocessed output + +.. option:: -D=, --define-macro , --define-macro= + +Define to (or 1 if omitted) + +.. option:: -H, --trace-includes + +Show header includes and nesting depth + +.. option:: -P, --no-line-commands + +Disable linemarker output in -E mode + +.. option:: -U, --undefine-macro , --undefine-macro= + +Undefine macro + +.. option:: -Wp,,... + +Pass the comma separated arguments in to the preprocessor + +.. option:: -Xpreprocessor + +Pass to the preprocessor + +Include path management +----------------------- + +Flags controlling how ``#include``\s are resolved to files. + +.. option:: -I, --include-directory , --include-directory= + +Add directory to include search path + +.. option:: -I-, --include-barrier + +Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path + +.. option:: --cuda-path= + +CUDA installation path + +.. option:: -cxx-isystem + +Add directory to the C++ SYSTEM include search path + +.. option:: -fbuild-session-file= + +Use the last modification time of as the build session timestamp + +.. option:: -fbuild-session-timestamp=