aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-05-27 18:47:56 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-05-27 18:47:56 +0000
commit5e20cdd81c44a443562a09007668ffdf76c455af (patch)
treedbbd4047878da71c1a706e26ce05b4e7791b14cc
parentd5f23b0b7528b5c3caed1ba14f897cc4aaa9e3c3 (diff)
downloadsrc-vendor/clang/clang-trunk-r238337.tar.gz
src-vendor/clang/clang-trunk-r238337.zip
Vendor import of clang trunk r238337:vendor/clang/clang-trunk-r238337
-rw-r--r--CMakeLists.txt6
-rw-r--r--CODE_OWNERS.TXT12
-rw-r--r--LICENSE.TXT2
-rw-r--r--bindings/python/clang/cindex.py40
-rw-r--r--bindings/python/tests/cindex/test_type.py21
-rw-r--r--docs/AddressSanitizer.rst3
-rw-r--r--docs/AutomaticReferenceCounting.rst10
-rw-r--r--docs/ClangFormatStyleOptions.rst30
-rw-r--r--docs/ControlFlowIntegrity.rst145
-rw-r--r--docs/ControlFlowIntegrityDesign.rst275
-rw-r--r--docs/InternalsManual.rst434
-rw-r--r--docs/LanguageExtensions.rst8
-rw-r--r--docs/LibASTMatchersReference.html85
-rw-r--r--docs/MSVCCompatibility.rst27
-rw-r--r--docs/Makefile30
-rw-r--r--docs/MemorySanitizer.rst46
-rw-r--r--docs/Modules.rst31
-rw-r--r--docs/ReleaseNotes.rst196
-rw-r--r--docs/SanitizerCoverage.rst355
-rw-r--r--docs/ThreadSafetyAnalysis.rst3
-rw-r--r--docs/ThreadSanitizer.rst3
-rw-r--r--docs/UsersManual.rst61
-rw-r--r--docs/conf.py4
-rw-r--r--docs/doxygen.cfg.in2565
-rw-r--r--docs/doxygen.css408
-rw-r--r--docs/doxygen.footer10
-rw-r--r--docs/doxygen.header9
-rw-r--r--docs/index.rst2
-rw-r--r--docs/tools/dump_ast_matchers.py4
-rw-r--r--examples/PrintFunctionNames/PrintFunctionNames.cpp63
-rw-r--r--include/clang-c/Index.h74
-rw-r--r--include/clang/AST/ASTConsumer.h6
-rw-r--r--include/clang/AST/ASTContext.h46
-rw-r--r--include/clang/AST/ASTImporter.h5
-rw-r--r--include/clang/AST/ASTMutationListener.h18
-rw-r--r--include/clang/AST/ASTUnresolvedSet.h2
-rw-r--r--include/clang/AST/Attr.h38
-rw-r--r--include/clang/AST/AttrIterator.h2
-rw-r--r--include/clang/AST/CXXInheritance.h6
-rw-r--r--include/clang/AST/CanonicalType.h110
-rw-r--r--include/clang/AST/CommentCommandTraits.h4
-rw-r--r--include/clang/AST/CommentLexer.h4
-rw-r--r--include/clang/AST/CommentParser.h4
-rw-r--r--include/clang/AST/CommentSema.h4
-rw-r--r--include/clang/AST/DataRecursiveASTVisitor.h54
-rw-r--r--include/clang/AST/Decl.h219
-rw-r--r--include/clang/AST/DeclBase.h157
-rw-r--r--include/clang/AST/DeclCXX.h42
-rw-r--r--include/clang/AST/DeclContextInternals.h16
-rw-r--r--include/clang/AST/DeclObjC.h23
-rw-r--r--include/clang/AST/DeclTemplate.h109
-rw-r--r--include/clang/AST/DeclarationName.h6
-rw-r--r--include/clang/AST/Expr.h76
-rw-r--r--include/clang/AST/ExprCXX.h25
-rw-r--r--include/clang/AST/ExternalASTSource.h182
-rw-r--r--include/clang/AST/LambdaCapture.h5
-rw-r--r--include/clang/AST/Mangle.h27
-rw-r--r--include/clang/AST/NSAPI.h49
-rw-r--r--include/clang/AST/NestedNameSpecifier.h4
-rw-r--r--include/clang/AST/OpenMPClause.h562
-rw-r--r--include/clang/AST/RecordLayout.h6
-rw-r--r--include/clang/AST/RecursiveASTVisitor.h74
-rw-r--r--include/clang/AST/Redeclarable.h26
-rw-r--r--include/clang/AST/Stmt.h90
-rw-r--r--include/clang/AST/StmtCXX.h2
-rw-r--r--include/clang/AST/StmtIterator.h4
-rw-r--r--include/clang/AST/StmtObjC.h21
-rw-r--r--include/clang/AST/StmtOpenMP.h96
-rw-r--r--include/clang/AST/TemplateBase.h2
-rw-r--r--include/clang/AST/Type.h8
-rw-r--r--include/clang/AST/TypeLoc.h2
-rw-r--r--include/clang/AST/TypeNodes.def2
-rw-r--r--include/clang/AST/UnresolvedSet.h88
-rw-r--r--include/clang/AST/VTableBuilder.h4
-rw-r--r--include/clang/ASTMatchers/ASTMatchers.h278
-rw-r--r--include/clang/ASTMatchers/ASTMatchersInternal.h390
-rw-r--r--include/clang/ASTMatchers/ASTMatchersMacros.h15
-rw-r--r--include/clang/ASTMatchers/Dynamic/Parser.h2
-rw-r--r--include/clang/ASTMatchers/Dynamic/Registry.h2
-rw-r--r--include/clang/ASTMatchers/Dynamic/VariantValue.h6
-rw-r--r--include/clang/Analysis/Analyses/Dominators.h4
-rw-r--r--include/clang/Analysis/Analyses/FormatString.h24
-rw-r--r--include/clang/Analysis/Analyses/LiveVariables.h7
-rw-r--r--include/clang/Analysis/Analyses/ThreadSafety.h15
-rw-r--r--include/clang/Analysis/Analyses/ThreadSafetyCommon.h12
-rw-r--r--include/clang/Analysis/Analyses/ThreadSafetyTIL.h8
-rw-r--r--include/clang/Analysis/Analyses/ThreadSafetyUtil.h54
-rw-r--r--include/clang/Analysis/AnalysisContext.h10
-rw-r--r--include/clang/Analysis/CFG.h3
-rw-r--r--include/clang/Basic/ABI.h9
-rw-r--r--include/clang/Basic/Attr.td104
-rw-r--r--include/clang/Basic/AttrDocs.td37
-rw-r--r--include/clang/Basic/Builtins.def35
-rw-r--r--include/clang/Basic/Builtins.h6
-rw-r--r--include/clang/Basic/BuiltinsARM.def2
-rw-r--r--include/clang/Basic/BuiltinsPPC.def79
-rw-r--r--include/clang/Basic/BuiltinsSystemZ.def252
-rw-r--r--include/clang/Basic/BuiltinsX86.def280
-rw-r--r--include/clang/Basic/DeclNodes.td1
-rw-r--r--include/clang/Basic/Diagnostic.h21
-rw-r--r--include/clang/Basic/DiagnosticASTKinds.td8
-rw-r--r--include/clang/Basic/DiagnosticCommentKinds.td2
-rw-r--r--include/clang/Basic/DiagnosticCommonKinds.td15
-rw-r--r--include/clang/Basic/DiagnosticDriverKinds.td15
-rw-r--r--include/clang/Basic/DiagnosticFrontendKinds.td10
-rw-r--r--include/clang/Basic/DiagnosticGroups.td18
-rw-r--r--include/clang/Basic/DiagnosticIDs.h2
-rw-r--r--include/clang/Basic/DiagnosticLexKinds.td15
-rw-r--r--include/clang/Basic/DiagnosticOptions.h2
-rw-r--r--include/clang/Basic/DiagnosticParseKinds.td30
-rw-r--r--include/clang/Basic/DiagnosticSemaKinds.td344
-rw-r--r--include/clang/Basic/DiagnosticSerializationKinds.td5
-rw-r--r--include/clang/Basic/FileManager.h10
-rw-r--r--include/clang/Basic/IdentifierTable.h40
-rw-r--r--include/clang/Basic/LLVM.h2
-rw-r--r--include/clang/Basic/LangOptions.def11
-rw-r--r--include/clang/Basic/LangOptions.h20
-rw-r--r--include/clang/Basic/Linkage.h4
-rw-r--r--include/clang/Basic/Module.h102
-rw-r--r--include/clang/Basic/PlistSupport.h23
-rw-r--r--include/clang/Basic/SanitizerBlacklist.h3
-rw-r--r--include/clang/Basic/Sanitizers.def33
-rw-r--r--include/clang/Basic/Sanitizers.h53
-rw-r--r--include/clang/Basic/SourceManager.h36
-rw-r--r--include/clang/Basic/SourceManagerInternals.h5
-rw-r--r--include/clang/Basic/Specifiers.h7
-rw-r--r--include/clang/Basic/TargetBuiltins.h10
-rw-r--r--include/clang/Basic/TargetInfo.h16
-rw-r--r--include/clang/Basic/TokenKinds.def35
-rw-r--r--include/clang/Basic/VersionTuple.h54
-rw-r--r--include/clang/CodeGen/BackendUtil.h2
-rw-r--r--include/clang/CodeGen/CGFunctionInfo.h8
-rw-r--r--include/clang/CodeGen/CodeGenAction.h2
-rw-r--r--include/clang/CodeGen/ModuleBuilder.h2
-rw-r--r--include/clang/Driver/CC1Options.td50
-rw-r--r--include/clang/Driver/CLCompatOptions.td44
-rw-r--r--include/clang/Driver/Driver.h15
-rw-r--r--include/clang/Driver/Job.h2
-rw-r--r--include/clang/Driver/Multilib.h22
-rw-r--r--include/clang/Driver/Options.td143
-rw-r--r--include/clang/Driver/SanitizerArgs.h9
-rw-r--r--include/clang/Driver/ToolChain.h16
-rw-r--r--include/clang/Driver/Types.def3
-rw-r--r--include/clang/Format/Format.h31
-rw-r--r--include/clang/Frontend/ASTUnit.h14
-rw-r--r--include/clang/Frontend/CodeGenOptions.def26
-rw-r--r--include/clang/Frontend/CodeGenOptions.h13
-rw-r--r--include/clang/Frontend/CommandLineSourceLoc.h2
-rw-r--r--include/clang/Frontend/CompilerInstance.h52
-rw-r--r--include/clang/Frontend/CompilerInvocation.h2
-rw-r--r--include/clang/Frontend/DependencyOutputOptions.h9
-rw-r--r--include/clang/Frontend/DiagnosticRenderer.h4
-rw-r--r--include/clang/Frontend/FrontendActions.h20
-rw-r--r--include/clang/Frontend/FrontendOptions.h1
-rw-r--r--include/clang/Frontend/MultiplexConsumer.h4
-rw-r--r--include/clang/Frontend/PreprocessorOutputOptions.h2
-rw-r--r--include/clang/Frontend/TextDiagnostic.h4
-rw-r--r--include/clang/Frontend/TextDiagnosticPrinter.h2
-rw-r--r--include/clang/Frontend/Utils.h5
-rw-r--r--include/clang/Frontend/VerifyDiagnosticConsumer.h6
-rw-r--r--include/clang/Index/USRGeneration.h6
-rw-r--r--include/clang/Lex/ExternalPreprocessorSource.h4
-rw-r--r--include/clang/Lex/HeaderMap.h4
-rw-r--r--include/clang/Lex/HeaderSearch.h12
-rw-r--r--include/clang/Lex/Lexer.h24
-rw-r--r--include/clang/Lex/LiteralSupport.h14
-rw-r--r--include/clang/Lex/MacroArgs.h3
-rw-r--r--include/clang/Lex/MacroInfo.h236
-rw-r--r--include/clang/Lex/ModuleLoader.h3
-rw-r--r--include/clang/Lex/ModuleMap.h11
-rw-r--r--include/clang/Lex/PPCallbacks.h44
-rw-r--r--include/clang/Lex/PPConditionalDirectiveRecord.h4
-rw-r--r--include/clang/Lex/PTHLexer.h7
-rw-r--r--include/clang/Lex/PTHManager.h7
-rw-r--r--include/clang/Lex/Pragma.h2
-rw-r--r--include/clang/Lex/PreprocessingRecord.h226
-rw-r--r--include/clang/Lex/Preprocessor.h321
-rw-r--r--include/clang/Lex/PreprocessorLexer.h4
-rw-r--r--include/clang/Lex/Token.h19
-rw-r--r--include/clang/Lex/TokenLexer.h4
-rw-r--r--include/clang/Parse/Parser.h53
-rw-r--r--include/clang/Rewrite/Core/DeltaTree.h2
-rw-r--r--include/clang/Rewrite/Core/RewriteBuffer.h117
-rw-r--r--include/clang/Rewrite/Core/RewriteRope.h2
-rw-r--r--include/clang/Rewrite/Core/Rewriter.h97
-rw-r--r--include/clang/Rewrite/Core/TokenRewriter.h4
-rw-r--r--include/clang/Rewrite/Frontend/FixItRewriter.h2
-rw-r--r--include/clang/Rewrite/Frontend/FrontendActions.h2
-rw-r--r--include/clang/Sema/AttributeList.h12
-rw-r--r--include/clang/Sema/CodeCompleteConsumer.h25
-rw-r--r--include/clang/Sema/DeclSpec.h20
-rw-r--r--include/clang/Sema/DelayedDiagnostic.h15
-rw-r--r--include/clang/Sema/ExternalSemaSource.h26
-rw-r--r--include/clang/Sema/Initialization.h17
-rw-r--r--include/clang/Sema/Lookup.h23
-rw-r--r--include/clang/Sema/MultiplexExternalSemaSource.h36
-rw-r--r--include/clang/Sema/Overload.h4
-rw-r--r--include/clang/Sema/Ownership.h2
-rw-r--r--include/clang/Sema/Scope.h55
-rw-r--r--include/clang/Sema/ScopeInfo.h38
-rw-r--r--include/clang/Sema/Sema.h508
-rw-r--r--include/clang/Sema/SemaInternal.h59
-rw-r--r--include/clang/Sema/Template.h4
-rw-r--r--include/clang/Sema/TemplateDeduction.h18
-rw-r--r--include/clang/Sema/TypoCorrection.h2
-rw-r--r--include/clang/Serialization/ASTBitCodes.h50
-rw-r--r--include/clang/Serialization/ASTDeserializationListener.h13
-rw-r--r--include/clang/Serialization/ASTReader.h339
-rw-r--r--include/clang/Serialization/ASTWriter.h95
-rw-r--r--include/clang/Serialization/ContinuousRangeMap.h4
-rw-r--r--include/clang/Serialization/GlobalModuleIndex.h4
-rw-r--r--include/clang/Serialization/Module.h9
-rw-r--r--include/clang/Serialization/ModuleManager.h62
-rw-r--r--include/clang/StaticAnalyzer/Core/AnalyzerOptions.h98
-rw-r--r--include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h4
-rw-r--r--include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h30
-rw-r--r--include/clang/StaticAnalyzer/Core/Checker.h49
-rw-r--r--include/clang/StaticAnalyzer/Core/CheckerManager.h63
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h4
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h2
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h6
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h1
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h2
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h2
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h4
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h2
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h10
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/Store.h2
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h4
-rw-r--r--include/clang/Tooling/CompilationDatabase.h2
-rw-r--r--include/clang/Tooling/Tooling.h8
-rw-r--r--include/clang/module.modulemap93
-rw-r--r--lib/ARCMigrate/ARCMT.cpp6
-rw-r--r--lib/ARCMigrate/ObjCMT.cpp99
-rw-r--r--lib/ARCMigrate/PlistReporter.cpp14
-rw-r--r--lib/ARCMigrate/TransAPIUses.cpp2
-rw-r--r--lib/ARCMigrate/TransRetainReleaseDealloc.cpp2
-rw-r--r--lib/ARCMigrate/TransUnusedInitDelegate.cpp2
-rw-r--r--lib/ARCMigrate/Transforms.cpp8
-rw-r--r--lib/ARCMigrate/Transforms.h2
-rw-r--r--lib/AST/ASTContext.cpp144
-rw-r--r--lib/AST/ASTDumper.cpp56
-rw-r--r--lib/AST/ASTImporter.cpp753
-rw-r--r--lib/AST/AttrImpl.cpp8
-rw-r--r--lib/AST/CXXABI.h16
-rw-r--r--lib/AST/CXXInheritance.cpp138
-rw-r--r--lib/AST/CommentLexer.cpp6
-rw-r--r--lib/AST/Decl.cpp282
-rw-r--r--lib/AST/DeclBase.cpp210
-rw-r--r--lib/AST/DeclCXX.cpp32
-rw-r--r--lib/AST/DeclGroup.cpp2
-rw-r--r--lib/AST/DeclObjC.cpp31
-rw-r--r--lib/AST/DeclTemplate.cpp86
-rw-r--r--lib/AST/Expr.cpp140
-rw-r--r--lib/AST/ExprCXX.cpp21
-rw-r--r--lib/AST/ExprClassification.cpp12
-rw-r--r--lib/AST/ExprConstant.cpp49
-rw-r--r--lib/AST/ExternalASTSource.cpp5
-rw-r--r--lib/AST/InheritViz.cpp19
-rw-r--r--lib/AST/ItaniumCXXABI.cpp18
-rw-r--r--lib/AST/ItaniumMangle.cpp749
-rw-r--r--lib/AST/MicrosoftCXXABI.cpp55
-rw-r--r--lib/AST/MicrosoftMangle.cpp451
-rw-r--r--lib/AST/NSAPI.cpp102
-rw-r--r--lib/AST/RecordLayoutBuilder.cpp221
-rw-r--r--lib/AST/Stmt.cpp230
-rw-r--r--lib/AST/StmtPrinter.cpp56
-rw-r--r--lib/AST/StmtProfile.cpp52
-rw-r--r--lib/AST/Type.cpp34
-rw-r--r--lib/AST/TypePrinter.cpp24
-rw-r--r--lib/AST/VTableBuilder.cpp223
-rw-r--r--lib/ASTMatchers/ASTMatchFinder.cpp2
-rw-r--r--lib/ASTMatchers/CMakeLists.txt1
-rw-r--r--lib/ASTMatchers/Dynamic/Diagnostics.cpp10
-rw-r--r--lib/ASTMatchers/Dynamic/Marshallers.h53
-rw-r--r--lib/ASTMatchers/Dynamic/Registry.cpp10
-rw-r--r--lib/Analysis/AnalysisDeclContext.cpp8
-rw-r--r--lib/Analysis/CFG.cpp15
-rw-r--r--lib/Analysis/Consumed.cpp15
-rw-r--r--lib/Analysis/FormatString.cpp101
-rw-r--r--lib/Analysis/LiveVariables.cpp7
-rw-r--r--lib/Analysis/PrintfFormatString.cpp43
-rw-r--r--lib/Analysis/ThreadSafety.cpp301
-rw-r--r--lib/Analysis/ThreadSafetyCommon.cpp38
-rw-r--r--lib/Analysis/ThreadSafetyTIL.cpp23
-rw-r--r--lib/Analysis/UninitializedValues.cpp59
-rw-r--r--lib/Basic/Diagnostic.cpp13
-rw-r--r--lib/Basic/DiagnosticIDs.cpp2
-rw-r--r--lib/Basic/FileManager.cpp2
-rw-r--r--lib/Basic/IdentifierTable.cpp30
-rw-r--r--lib/Basic/LangOptions.cpp2
-rw-r--r--lib/Basic/Module.cpp111
-rw-r--r--lib/Basic/OpenMPKinds.cpp3
-rw-r--r--lib/Basic/SanitizerBlacklist.cpp6
-rw-r--r--lib/Basic/Sanitizers.cpp41
-rw-r--r--lib/Basic/SourceManager.cpp4
-rw-r--r--lib/Basic/TargetInfo.cpp1
-rw-r--r--lib/Basic/Targets.cpp815
-rw-r--r--lib/Basic/Version.cpp2
-rw-r--r--lib/Basic/VersionTuple.cpp16
-rw-r--r--lib/Basic/VirtualFileSystem.cpp10
-rw-r--r--lib/CodeGen/ABIInfo.h2
-rw-r--r--lib/CodeGen/BackendUtil.cpp165
-rw-r--r--lib/CodeGen/CGAtomic.cpp962
-rw-r--r--lib/CodeGen/CGBlocks.cpp132
-rw-r--r--lib/CodeGen/CGBuilder.h2
-rw-r--r--lib/CodeGen/CGBuiltin.cpp719
-rw-r--r--lib/CodeGen/CGCUDANV.cpp218
-rw-r--r--lib/CodeGen/CGCUDARuntime.h17
-rw-r--r--lib/CodeGen/CGCXX.cpp7
-rw-r--r--lib/CodeGen/CGCXXABI.cpp7
-rw-r--r--lib/CodeGen/CGCXXABI.h11
-rw-r--r--lib/CodeGen/CGCall.cpp193
-rw-r--r--lib/CodeGen/CGClass.cpp414
-rw-r--r--lib/CodeGen/CGCleanup.cpp46
-rw-r--r--lib/CodeGen/CGCleanup.h13
-rw-r--r--lib/CodeGen/CGDebugInfo.cpp1186
-rw-r--r--lib/CodeGen/CGDebugInfo.h421
-rw-r--r--lib/CodeGen/CGDecl.cpp89
-rw-r--r--lib/CodeGen/CGDeclCXX.cpp68
-rw-r--r--lib/CodeGen/CGException.cpp1026
-rw-r--r--lib/CodeGen/CGExpr.cpp123
-rw-r--r--lib/CodeGen/CGExprAgg.cpp78
-rw-r--r--lib/CodeGen/CGExprCXX.cpp50
-rw-r--r--lib/CodeGen/CGExprComplex.cpp29
-rw-r--r--lib/CodeGen/CGExprConstant.cpp20
-rw-r--r--lib/CodeGen/CGExprScalar.cpp321
-rw-r--r--lib/CodeGen/CGLoopInfo.cpp5
-rw-r--r--lib/CodeGen/CGLoopInfo.h4
-rw-r--r--lib/CodeGen/CGObjC.cpp64
-rw-r--r--lib/CodeGen/CGObjCGNU.cpp171
-rw-r--r--lib/CodeGen/CGObjCMac.cpp68
-rw-r--r--lib/CodeGen/CGObjCRuntime.cpp2
-rw-r--r--lib/CodeGen/CGOpenMPRuntime.cpp2202
-rw-r--r--lib/CodeGen/CGOpenMPRuntime.h392
-rw-r--r--lib/CodeGen/CGRecordLayout.h4
-rw-r--r--lib/CodeGen/CGRecordLayoutBuilder.cpp48
-rw-r--r--lib/CodeGen/CGStmt.cpp125
-rw-r--r--lib/CodeGen/CGStmtOpenMP.cpp2112
-rw-r--r--lib/CodeGen/CGVTT.cpp16
-rw-r--r--lib/CodeGen/CGVTables.cpp92
-rw-r--r--lib/CodeGen/CGValue.h2
-rw-r--r--lib/CodeGen/CMakeLists.txt2
-rw-r--r--lib/CodeGen/CodeGenAction.cpp74
-rw-r--r--lib/CodeGen/CodeGenFunction.cpp153
-rw-r--r--lib/CodeGen/CodeGenFunction.h407
-rw-r--r--lib/CodeGen/CodeGenModule.cpp274
-rw-r--r--lib/CodeGen/CodeGenModule.h25
-rw-r--r--lib/CodeGen/CodeGenPGO.cpp910
-rw-r--r--lib/CodeGen/CodeGenPGO.h135
-rw-r--r--lib/CodeGen/CodeGenTypes.cpp15
-rw-r--r--lib/CodeGen/CodeGenTypes.h29
-rw-r--r--lib/CodeGen/CoverageMappingGen.cpp1257
-rw-r--r--lib/CodeGen/EHScopeStack.h148
-rw-r--r--lib/CodeGen/ItaniumCXXABI.cpp461
-rw-r--r--lib/CodeGen/MicrosoftCXXABI.cpp1268
-rw-r--r--lib/CodeGen/ModuleBuilder.cpp10
-rw-r--r--lib/CodeGen/SanitizerMetadata.h4
-rw-r--r--lib/CodeGen/TargetInfo.cpp838
-rw-r--r--lib/Driver/CrossWindowsToolChain.cpp2
-rw-r--r--lib/Driver/Driver.cpp129
-rw-r--r--lib/Driver/Job.cpp14
-rw-r--r--lib/Driver/MSVCToolChain.cpp7
-rw-r--r--lib/Driver/Multilib.cpp125
-rw-r--r--lib/Driver/SanitizerArgs.cpp553
-rw-r--r--lib/Driver/ToolChain.cpp53
-rw-r--r--lib/Driver/ToolChains.cpp377
-rw-r--r--lib/Driver/ToolChains.h99
-rw-r--r--lib/Driver/Tools.cpp1405
-rw-r--r--lib/Driver/Tools.h57
-rw-r--r--lib/Driver/Types.cpp5
-rw-r--r--lib/Edit/EditedSource.cpp10
-rw-r--r--lib/Format/BreakableToken.cpp18
-rw-r--r--lib/Format/ContinuationIndenter.cpp184
-rw-r--r--lib/Format/Format.cpp292
-rw-r--r--lib/Format/FormatToken.cpp55
-rw-r--r--lib/Format/FormatToken.h194
-rw-r--r--lib/Format/TokenAnnotator.cpp433
-rw-r--r--lib/Format/TokenAnnotator.h22
-rw-r--r--lib/Format/UnwrappedLineFormatter.cpp941
-rw-r--r--lib/Format/UnwrappedLineFormatter.h132
-rw-r--r--lib/Format/UnwrappedLineParser.cpp361
-rw-r--r--lib/Format/UnwrappedLineParser.h16
-rw-r--r--lib/Format/WhitespaceManager.cpp100
-rw-r--r--lib/Format/WhitespaceManager.h7
-rw-r--r--lib/Frontend/ASTConsumers.cpp1
-rw-r--r--lib/Frontend/ASTMerge.cpp8
-rw-r--r--lib/Frontend/ASTUnit.cpp204
-rw-r--r--lib/Frontend/CacheTokens.cpp31
-rw-r--r--lib/Frontend/ChainedIncludesSource.cpp7
-rw-r--r--lib/Frontend/CompilerInstance.cpp330
-rw-r--r--lib/Frontend/CompilerInvocation.cpp169
-rw-r--r--lib/Frontend/DependencyFile.cpp82
-rw-r--r--lib/Frontend/FrontendAction.cpp46
-rw-r--r--lib/Frontend/FrontendActions.cpp134
-rw-r--r--lib/Frontend/FrontendOptions.cpp1
-rw-r--r--lib/Frontend/HeaderIncludeGen.cpp2
-rw-r--r--lib/Frontend/InitHeaderSearch.cpp31
-rw-r--r--lib/Frontend/InitPreprocessor.cpp13
-rw-r--r--lib/Frontend/ModuleDependencyCollector.cpp4
-rw-r--r--lib/Frontend/MultiplexConsumer.cpp25
-rw-r--r--lib/Frontend/PrintPreprocessedOutput.cpp38
-rw-r--r--lib/Frontend/Rewrite/InclusionRewriter.cpp24
-rw-r--r--lib/Frontend/Rewrite/RewriteModernObjC.cpp85
-rw-r--r--lib/Frontend/Rewrite/RewriteObjC.cpp36
-rw-r--r--lib/Frontend/SerializedDiagnosticPrinter.cpp9
-rw-r--r--lib/Frontend/TextDiagnostic.cpp8
-rw-r--r--lib/Frontend/VerifyDiagnosticConsumer.cpp6
-rw-r--r--lib/Headers/CMakeLists.txt6
-rw-r--r--lib/Headers/Intrin.h11
-rw-r--r--lib/Headers/__stddef_max_align_t.h9
-rw-r--r--lib/Headers/altivec.h1348
-rw-r--r--lib/Headers/arm_acle.h68
-rw-r--r--lib/Headers/avx2intrin.h37
-rw-r--r--lib/Headers/avx512bwintrin.h438
-rw-r--r--lib/Headers/avx512dqintrin.h237
-rw-r--r--lib/Headers/avx512erintrin.h326
-rw-r--r--lib/Headers/avx512fintrin.h995
-rw-r--r--lib/Headers/avx512vlbwintrin.h774
-rw-r--r--lib/Headers/avx512vldqintrin.h349
-rw-r--r--lib/Headers/avx512vlintrin.h1236
-rw-r--r--lib/Headers/avxintrin.h196
-rw-r--r--lib/Headers/cuda_builtin_vars.h110
-rw-r--r--lib/Headers/emmintrin.h84
-rw-r--r--lib/Headers/htmintrin.h226
-rw-r--r--lib/Headers/htmxlintrin.h363
-rw-r--r--lib/Headers/immintrin.h8
-rw-r--r--lib/Headers/module.modulemap15
-rw-r--r--lib/Headers/s390intrin.h35
-rw-r--r--lib/Headers/stdatomic.h4
-rw-r--r--lib/Headers/unwind.h18
-rw-r--r--lib/Headers/xmmintrin.h2
-rw-r--r--lib/Index/SimpleFormatContext.h2
-rw-r--r--lib/Index/USRGeneration.cpp2
-rw-r--r--lib/Lex/HeaderSearch.cpp47
-rw-r--r--lib/Lex/Lexer.cpp12
-rw-r--r--lib/Lex/LiteralSupport.cpp90
-rw-r--r--lib/Lex/MacroArgs.cpp7
-rw-r--r--lib/Lex/MacroInfo.cpp17
-rw-r--r--lib/Lex/ModuleMap.cpp184
-rw-r--r--lib/Lex/PPConditionalDirectiveRecord.cpp4
-rw-r--r--lib/Lex/PPDirectives.cpp325
-rw-r--r--lib/Lex/PPExpressions.cpp25
-rw-r--r--lib/Lex/PPLexerChange.cpp130
-rw-r--r--lib/Lex/PPMacroExpansion.cpp293
-rw-r--r--lib/Lex/Pragma.cpp67
-rw-r--r--lib/Lex/PreprocessingRecord.cpp74
-rw-r--r--lib/Lex/Preprocessor.cpp82
-rw-r--r--lib/Lex/ScratchBuffer.cpp5
-rw-r--r--lib/Lex/TokenLexer.cpp9
-rw-r--r--lib/Parse/ParseCXXInlineMethods.cpp54
-rw-r--r--lib/Parse/ParseDecl.cpp268
-rw-r--r--lib/Parse/ParseDeclCXX.cpp272
-rw-r--r--lib/Parse/ParseExpr.cpp104
-rw-r--r--lib/Parse/ParseExprCXX.cpp65
-rw-r--r--lib/Parse/ParseInit.cpp2
-rw-r--r--lib/Parse/ParseObjc.cpp11
-rw-r--r--lib/Parse/ParseOpenMP.cpp11
-rw-r--r--lib/Parse/ParsePragma.cpp43
-rw-r--r--lib/Parse/ParseStmt.cpp53
-rw-r--r--lib/Parse/ParseStmtAsm.cpp12
-rw-r--r--lib/Parse/ParseTemplate.cpp4
-rw-r--r--lib/Parse/Parser.cpp70
-rw-r--r--lib/Parse/RAIIObjectsForParser.h22
-rw-r--r--lib/Rewrite/RewriteRope.cpp4
-rw-r--r--lib/Rewrite/Rewriter.cpp2
-rw-r--r--lib/Sema/AnalysisBasedWarnings.cpp43
-rw-r--r--lib/Sema/CodeCompleteConsumer.cpp47
-rw-r--r--lib/Sema/DeclSpec.cpp14
-rw-r--r--lib/Sema/DelayedDiagnostic.cpp2
-rw-r--r--lib/Sema/IdentifierResolver.cpp7
-rw-r--r--lib/Sema/JumpDiagnostics.cpp55
-rw-r--r--lib/Sema/MultiplexExternalSemaSource.cpp32
-rw-r--r--lib/Sema/Scope.cpp23
-rw-r--r--lib/Sema/ScopeInfo.cpp2
-rw-r--r--lib/Sema/Sema.cpp109
-rw-r--r--lib/Sema/SemaAccess.cpp2
-rw-r--r--lib/Sema/SemaAttr.cpp5
-rw-r--r--lib/Sema/SemaCUDA.cpp21
-rw-r--r--lib/Sema/SemaCXXScopeSpec.cpp36
-rw-r--r--lib/Sema/SemaCast.cpp47
-rw-r--r--lib/Sema/SemaChecking.cpp781
-rw-r--r--lib/Sema/SemaCodeComplete.cpp440
-rw-r--r--lib/Sema/SemaDecl.cpp887
-rw-r--r--lib/Sema/SemaDeclAttr.cpp334
-rw-r--r--lib/Sema/SemaDeclCXX.cpp383
-rw-r--r--lib/Sema/SemaDeclObjC.cpp128
-rw-r--r--lib/Sema/SemaExceptionSpec.cpp12
-rw-r--r--lib/Sema/SemaExpr.cpp856
-rw-r--r--lib/Sema/SemaExprCXX.cpp623
-rw-r--r--lib/Sema/SemaExprMember.cpp103
-rw-r--r--lib/Sema/SemaExprObjC.cpp183
-rw-r--r--lib/Sema/SemaFixItUtils.cpp7
-rw-r--r--lib/Sema/SemaInit.cpp600
-rw-r--r--lib/Sema/SemaLambda.cpp268
-rw-r--r--lib/Sema/SemaLookup.cpp239
-rw-r--r--lib/Sema/SemaObjCProperty.cpp42
-rw-r--r--lib/Sema/SemaOpenMP.cpp1666
-rw-r--r--lib/Sema/SemaOverload.cpp307
-rw-r--r--lib/Sema/SemaPseudoObject.cpp22
-rw-r--r--lib/Sema/SemaStmt.cpp638
-rw-r--r--lib/Sema/SemaStmtAsm.cpp53
-rw-r--r--lib/Sema/SemaTemplate.cpp87
-rw-r--r--lib/Sema/SemaTemplateDeduction.cpp286
-rw-r--r--lib/Sema/SemaTemplateInstantiate.cpp268
-rw-r--r--lib/Sema/SemaTemplateInstantiateDecl.cpp105
-rw-r--r--lib/Sema/SemaTemplateVariadic.cpp13
-rw-r--r--lib/Sema/SemaType.cpp181
-rw-r--r--lib/Sema/TreeTransform.h162
-rw-r--r--lib/Serialization/ASTCommon.cpp25
-rw-r--r--lib/Serialization/ASTCommon.h23
-rw-r--r--lib/Serialization/ASTReader.cpp1273
-rw-r--r--lib/Serialization/ASTReaderDecl.cpp779
-rw-r--r--lib/Serialization/ASTReaderStmt.cpp94
-rw-r--r--lib/Serialization/ASTWriter.cpp1345
-rw-r--r--lib/Serialization/ASTWriterDecl.cpp264
-rw-r--r--lib/Serialization/ASTWriterStmt.cpp44
-rw-r--r--lib/Serialization/GlobalModuleIndex.cpp8
-rw-r--r--lib/Serialization/Module.cpp1
-rw-r--r--lib/Serialization/ModuleManager.cpp93
-rw-r--r--lib/StaticAnalyzer/Checkers/CStringChecker.cpp4
-rw-r--r--lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp1
-rw-r--r--lib/StaticAnalyzer/Checkers/Checkers.td6
-rw-r--r--lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp2
-rw-r--r--lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp2
-rw-r--r--lib/StaticAnalyzer/Checkers/InterCheckerAPI.h2
-rw-r--r--lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp2
-rw-r--r--lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp22
-rw-r--r--lib/StaticAnalyzer/Checkers/MallocChecker.cpp507
-rw-r--r--lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp8
-rw-r--r--lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp351
-rw-r--r--lib/StaticAnalyzer/Core/AnalyzerOptions.cpp59
-rw-r--r--lib/StaticAnalyzer/Core/BugReporter.cpp41
-rw-r--r--lib/StaticAnalyzer/Core/BugReporterVisitors.cpp11
-rw-r--r--lib/StaticAnalyzer/Core/Checker.cpp8
-rw-r--r--lib/StaticAnalyzer/Core/ExprEngine.cpp15
-rw-r--r--lib/StaticAnalyzer/Core/ExprEngineC.cpp2
-rw-r--r--lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp8
-rw-r--r--lib/StaticAnalyzer/Core/MemRegion.cpp15
-rw-r--r--lib/StaticAnalyzer/Core/PathDiagnostic.cpp22
-rw-r--r--lib/StaticAnalyzer/Core/PlistDiagnostics.cpp28
-rw-r--r--lib/StaticAnalyzer/Core/RegionStore.cpp2
-rw-r--r--lib/StaticAnalyzer/Core/SimpleConstraintManager.h2
-rw-r--r--lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp2
-rw-r--r--lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp13
-rw-r--r--lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp2
-rw-r--r--lib/StaticAnalyzer/Frontend/ModelInjector.h4
-rw-r--r--lib/Tooling/CommonOptionsParser.cpp12
-rw-r--r--lib/Tooling/CompilationDatabase.cpp22
-rw-r--r--lib/Tooling/Core/Replacement.cpp8
-rw-r--r--lib/Tooling/FileMatchTrie.cpp15
-rw-r--r--lib/Tooling/JSONCompilationDatabase.cpp6
-rw-r--r--lib/Tooling/Tooling.cpp2
-rw-r--r--runtime/compiler-rt/Makefile21
-rw-r--r--test/ARCMT/nonobjc-to-objc-cast.m11
-rw-r--r--test/ARCMT/nonobjc-to-objc-cast.m.result11
-rw-r--r--test/ARCMT/objcmt-ns-macros.m23
-rw-r--r--test/ARCMT/objcmt-ns-macros.m.result27
-rw-r--r--test/ARCMT/objcmt-property-dot-syntax.m63
-rw-r--r--test/ARCMT/objcmt-property-dot-syntax.m.result63
-rw-r--r--test/ARCMT/objcmt-property.m8
-rw-r--r--test/ARCMT/objcmt-property.m.result7
-rw-r--r--test/ASTMerge/Inputs/body1.c6
-rw-r--r--test/ASTMerge/Inputs/body2.c4
-rw-r--r--test/ASTMerge/codegen-body.c6
-rw-r--r--test/ASTMerge/codegen-exprs.c5
-rw-r--r--test/Analysis/Malloc+MismatchedDeallocator+NewDelete.cpp8
-rw-r--r--test/Analysis/Malloc+MismatchedDeallocator_intersections.cpp13
-rw-r--r--test/Analysis/MismatchedDeallocator-checker-test.mm16
-rw-r--r--test/Analysis/MismatchedDeallocator-path-notes.cpp180
-rw-r--r--test/Analysis/NewDelete-checker-test.cpp29
-rw-r--r--test/Analysis/NewDelete-intersections.mm16
-rw-r--r--test/Analysis/NewDelete-path-notes.cpp2
-rw-r--r--test/Analysis/array-struct.c16
-rw-r--r--test/Analysis/conditional-path-notes.c9
-rw-r--r--test/Analysis/crash-trace.c4
-rw-r--r--test/Analysis/cxx-for-range.cpp6
-rw-r--r--test/Analysis/diagnostics/deref-track-symbolic-region.c2
-rw-r--r--test/Analysis/diagnostics/report-issues-within-main-file.cpp9
-rw-r--r--test/Analysis/diagnostics/undef-value-caller.c1
-rw-r--r--test/Analysis/diagnostics/undef-value-param.c3
-rw-r--r--test/Analysis/diagnostics/undef-value-param.m2
-rw-r--r--test/Analysis/dtor.cpp2
-rw-r--r--test/Analysis/edges-new.mm51
-rw-r--r--test/Analysis/free.c17
-rw-r--r--test/Analysis/html-diags.c2
-rw-r--r--test/Analysis/inline-plist.c7
-rw-r--r--test/Analysis/inline-unique-reports.c1
-rw-r--r--test/Analysis/inlining/eager-reclamation-path-notes.c2
-rw-r--r--test/Analysis/inlining/eager-reclamation-path-notes.cpp1
-rw-r--r--test/Analysis/inlining/path-notes.c12
-rw-r--r--test/Analysis/inlining/path-notes.cpp29
-rw-r--r--test/Analysis/inlining/path-notes.m6
-rw-r--r--test/Analysis/malloc-annotations.c2
-rw-r--r--test/Analysis/malloc-plist.c17
-rw-r--r--test/Analysis/malloc.c115
-rw-r--r--test/Analysis/method-call-path-notes.cpp6
-rw-r--r--test/Analysis/model-file.cpp1
-rw-r--r--test/Analysis/null-deref-path-notes.m3
-rw-r--r--test/Analysis/objc-arc.m17
-rw-r--r--test/Analysis/objc-radar17039661.m1183
-rw-r--r--test/Analysis/outofbound.c2
-rw-r--r--test/Analysis/plist-macros.cpp14
-rw-r--r--test/Analysis/plist-output-alternate.m7
-rw-r--r--test/Analysis/plist-output.m23
-rw-r--r--test/Analysis/properties.m342
-rw-r--r--test/Analysis/redefined_system.c2
-rw-r--r--test/Analysis/retain-release-path-notes-gc.m5
-rw-r--r--test/Analysis/retain-release-path-notes.m92
-rw-r--r--test/Analysis/security-syntax-checks.m4
-rw-r--r--test/Analysis/stack-addr-ps.c7
-rw-r--r--test/Analysis/undef-buffers.c2
-rw-r--r--test/Analysis/unix-fns.c14
-rw-r--r--test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual/p2.cpp2
-rw-r--r--test/CXX/basic/basic.types/p10.cpp2
-rw-r--r--test/CXX/class.derived/class.virtual/p2.cpp2
-rw-r--r--test/CXX/class/class.friend/p1.cpp4
-rw-r--r--test/CXX/conv/conv.mem/p4.cpp2
-rw-r--r--test/CXX/dcl.dcl/dcl.attr/dcl.align/p5.cpp6
-rw-r--r--test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp4
-rw-r--r--test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p9.cpp4
-rw-r--r--test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.default/p2.cpp4
-rw-r--r--test/CXX/dcl.decl/dcl.init/dcl.init.list/p7-0x.cpp3
-rw-r--r--test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-0x.cpp2
-rw-r--r--test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp14
-rw-r--r--test/CXX/dcl.decl/dcl.init/p6.cpp6
-rw-r--r--test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p3.cpp3
-rw-r--r--test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p4.cpp20
-rw-r--r--test/CXX/drs/dr0xx.cpp6
-rw-r--r--test/CXX/drs/dr14xx.cpp148
-rw-r--r--test/CXX/drs/dr15xx.cpp83
-rw-r--r--test/CXX/drs/dr16xx.cpp26
-rw-r--r--test/CXX/drs/dr1748.cpp35
-rw-r--r--test/CXX/drs/dr17xx.cpp34
-rw-r--r--test/CXX/drs/dr19xx.cpp71
-rw-r--r--test/CXX/drs/dr2xx.cpp15
-rw-r--r--test/CXX/drs/dr3xx.cpp4
-rw-r--r--test/CXX/drs/dr412.cpp2
-rw-r--r--test/CXX/drs/dr4xx.cpp4
-rw-r--r--test/CXX/drs/dr7xx.cpp20
-rw-r--r--test/CXX/except/except.spec/p14-ir.cpp8
-rw-r--r--test/CXX/expr/expr.prim/expr.prim.general/p8-0x.cpp4
-rw-r--r--test/CXX/expr/expr.prim/expr.prim.lambda/p16.cpp8
-rw-r--r--test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp7
-rw-r--r--test/CXX/expr/expr.prim/expr.prim.lambda/templates.cpp5
-rw-r--r--test/CXX/expr/p10-0x.cpp22
-rw-r--r--test/CXX/special/class.copy/implicit-move.cpp2
-rw-r--r--test/CXX/special/class.copy/p15-inclass.cpp12
-rw-r--r--test/CXX/special/class.dtor/p10-0x.cpp4
-rw-r--r--test/CXX/special/class.dtor/p9.cpp7
-rw-r--r--test/CXX/special/class.inhctor/p2.cpp2
-rw-r--r--test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp14
-rw-r--r--test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp2
-rw-r--r--test/CXX/temp/temp.decls/temp.class/temp.mem.func/p1inst.cpp2
-rw-r--r--test/CXX/temp/temp.decls/temp.fct/temp.func.order/p4.cpp23
-rw-r--r--test/CXX/temp/temp.decls/temp.mem/p5.cpp4
-rw-r--r--test/CXX/temp/temp.param/p15-cxx0x.cpp2
-rw-r--r--test/CXX/temp/temp.res/temp.local/p3.cpp2
-rw-r--r--test/CodeGen/2004-06-17-UnorderedCompares.c4
-rw-r--r--test/CodeGen/2005-12-04-DeclarationLineNumbers.c23
-rw-r--r--test/CodeGen/2007-02-25-C-DotDotDot.c2
-rw-r--r--test/CodeGen/2007-03-27-VarLengthArray.c2
-rw-r--r--test/CodeGen/2008-07-29-override-alias-decl.c2
-rw-r--r--test/CodeGen/2008-08-07-AlignPadding1.c2
-rw-r--r--test/CodeGen/2009-01-05-BlockInlining.c6
-rw-r--r--test/CodeGen/2009-02-13-zerosize-union-field.c8
-rw-r--r--test/CodeGen/2009-10-20-GlobalDebug.c10
-rw-r--r--test/CodeGen/2010-02-15-DbgStaticVar.c4
-rw-r--r--test/CodeGen/2010-02-16-DbgScopes.c8
-rw-r--r--test/CodeGen/2010-03-09-DbgInfo.c3
-rw-r--r--test/CodeGen/2010-03-5-LexicalScope.c4
-rw-r--r--test/CodeGen/2010-07-08-DeclDebugLineNo.c4
-rw-r--r--test/CodeGen/2010-07-14-overconservative-align.c2
-rw-r--r--test/CodeGen/2010-07-14-ref-off-end.c4
-rw-r--r--test/CodeGen/2010-08-10-DbgConstant.c3
-rw-r--r--test/CodeGen/24-bit.c2
-rw-r--r--test/CodeGen/aarch64-inline-asm.c8
-rw-r--r--test/CodeGen/aarch64-varargs.c110
-rw-r--r--test/CodeGen/address-safety-attr.cpp88
-rw-r--r--test/CodeGen/address-space-field1.c20
-rw-r--r--test/CodeGen/address-space.c13
-rw-r--r--test/CodeGen/align-local.c4
-rw-r--r--test/CodeGen/align-systemz.c27
-rw-r--r--test/CodeGen/alignment.c2
-rw-r--r--test/CodeGen/annotations-builtin.c2
-rw-r--r--test/CodeGen/annotations-field.c4
-rw-r--r--test/CodeGen/annotations-var.c6
-rw-r--r--test/CodeGen/arm-aapcs-vfp.c10
-rw-r--r--test/CodeGen/arm-abi-vector.c82
-rw-r--r--test/CodeGen/arm-arguments.c14
-rw-r--r--test/CodeGen/arm-asm-variable.c2
-rw-r--r--test/CodeGen/arm-atomics-m.c2
-rw-r--r--test/CodeGen/arm-atomics.c4
-rw-r--r--test/CodeGen/arm-bitfield-alignment.c15
-rw-r--r--test/CodeGen/arm-clear.c4
-rw-r--r--test/CodeGen/arm-homogenous.c2
-rw-r--r--test/CodeGen/arm-pnaclcall.c33
-rw-r--r--test/CodeGen/arm-target-features.c38
-rw-r--r--test/CodeGen/arm-vector-align.c2
-rw-r--r--test/CodeGen/arm64-abi-vector.c78
-rw-r--r--test/CodeGen/arm64-arguments.c168
-rw-r--r--test/CodeGen/arm64_neon_high_half.c12
-rw-r--r--test/CodeGen/arm64_vMaxMin.c90
-rw-r--r--test/CodeGen/arm64_vset_lane.c8
-rw-r--r--test/CodeGen/arm64_vtst.c8
-rw-r--r--test/CodeGen/asm-errors.c6
-rw-r--r--test/CodeGen/asm-inout.c2
-rw-r--r--test/CodeGen/asm-reg-var-local.c28
-rw-r--r--test/CodeGen/atomic-arm64.c8
-rw-r--r--test/CodeGen/atomic-ops.c54
-rw-r--r--test/CodeGen/atomic_ops.c20
-rw-r--r--test/CodeGen/atomics-inlining.c48
-rw-r--r--test/CodeGen/attributes.c2
-rw-r--r--test/CodeGen/avx-builtins.c30
-rw-r--r--test/CodeGen/avx-shuffle-builtins.c118
-rw-r--r--test/CodeGen/avx2-builtins.c59
-rw-r--r--test/CodeGen/avx512bw-builtins.c402
-rw-r--r--test/CodeGen/avx512dq-builtins.c164
-rw-r--r--test/CodeGen/avx512er-builtins.c346
-rw-r--r--test/CodeGen/avx512f-builtins.c703
-rw-r--r--test/CodeGen/avx512vl-builtins.c1072
-rw-r--r--test/CodeGen/avx512vlbw-builtins.c743
-rw-r--r--test/CodeGen/avx512vldq-builtins.c231
-rw-r--r--test/CodeGen/big-atomic-ops.c10
-rw-r--r--test/CodeGen/block-byref-aggr.c22
-rw-r--r--test/CodeGen/blocks-opencl.cl2
-rw-r--r--test/CodeGen/blocks-seq.c12
-rw-r--r--test/CodeGen/blocks.c2
-rw-r--r--test/CodeGen/blocksignature.c6
-rw-r--r--test/CodeGen/bool_test.c2
-rw-r--r--test/CodeGen/builtin-assume.c23
-rw-r--r--test/CodeGen/builtin-expect.c18
-rw-r--r--test/CodeGen/builtin-nan-legacy.c13
-rw-r--r--test/CodeGen/builtins-ppc-crypto-disabled.c53
-rw-r--r--test/CodeGen/builtins-ppc-crypto.c303
-rw-r--r--test/CodeGen/builtins-ppc-htm.c62
-rw-r--r--test/CodeGen/builtins-ppc-p7-disabled.c33
-rw-r--r--test/CodeGen/builtins-ppc-p7.c52
-rw-r--r--test/CodeGen/builtins-ppc-p8vector.c698
-rw-r--r--test/CodeGen/builtins-ppc-quadword.c159
-rw-r--r--test/CodeGen/builtins-systemz-error.c9
-rw-r--r--test/CodeGen/builtins-systemz-vector-error.c174
-rw-r--r--test/CodeGen/builtins-systemz-vector.c610
-rw-r--r--test/CodeGen/builtins-systemz.c144
-rw-r--r--test/CodeGen/builtins-x86.c13
-rw-r--r--test/CodeGen/builtins.c32
-rw-r--r--test/CodeGen/c-strings.c12
-rw-r--r--test/CodeGen/c11atomics-ios.c108
-rw-r--r--test/CodeGen/c11atomics.c104
-rw-r--r--test/CodeGen/call.c2
-rw-r--r--test/CodeGen/capture-complex-expr-in-block.c8
-rw-r--r--test/CodeGen/captured-statements-nested.c86
-rw-r--r--test/CodeGen/captured-statements.c23
-rw-r--r--test/CodeGen/catch-undef-behavior.c23
-rw-r--r--test/CodeGen/cfstring.c4
-rw-r--r--test/CodeGen/cleanup-destslot-simple.c19
-rw-r--r--test/CodeGen/cleanup-stack.c4
-rw-r--r--test/CodeGen/clear_cache.c2
-rw-r--r--test/CodeGen/complex-convert.c608
-rw-r--r--test/CodeGen/compound-literal.c26
-rw-r--r--test/CodeGen/const-arithmetic.c4
-rw-r--r--test/CodeGen/const-init.c4
-rw-r--r--test/CodeGen/darwin-string-literals.c12
-rw-r--r--test/CodeGen/debug-info-257-args.c25
-rw-r--r--test/CodeGen/debug-info-args.c2
-rw-r--r--test/CodeGen/debug-info-block-decl.c4
-rw-r--r--test/CodeGen/debug-info-block-out-return.c4
-rw-r--r--test/CodeGen/debug-info-block.c4
-rw-r--r--test/CodeGen/debug-info-enum.c5
-rw-r--r--test/CodeGen/debug-info-file-change.c22
-rw-r--r--test/CodeGen/debug-info-gline-tables-only2.c6
-rw-r--r--test/CodeGen/debug-info-limited.c4
-rw-r--r--test/CodeGen/debug-info-line.c26
-rw-r--r--test/CodeGen/debug-info-line3.c2
-rw-r--r--test/CodeGen/debug-info-line4.c2
-rw-r--r--test/CodeGen/debug-info-same-line.c7
-rw-r--r--test/CodeGen/debug-info-scope-file.c8
-rw-r--r--test/CodeGen/debug-info-scope.c20
-rw-r--r--test/CodeGen/debug-info-static.c2
-rw-r--r--test/CodeGen/debug-info-typedef.c4
-rw-r--r--test/CodeGen/debug-info-var-location.c22
-rw-r--r--test/CodeGen/debug-info-vector.c6
-rw-r--r--test/CodeGen/debug-info-version.c2
-rw-r--r--test/CodeGen/debug-info-vla.c5
-rw-r--r--test/CodeGen/debug-info.c2
-rw-r--r--test/CodeGen/dllexport.c8
-rw-r--r--test/CodeGen/dllimport.c12
-rw-r--r--test/CodeGen/enum.c7
-rw-r--r--test/CodeGen/exceptions-seh-finally.c242
-rw-r--r--test/CodeGen/exceptions-seh-leave.c349
-rw-r--r--test/CodeGen/exceptions-seh.c181
-rw-r--r--test/CodeGen/exprs.c17
-rw-r--r--test/CodeGen/ext-vector-indexing.c4
-rw-r--r--test/CodeGen/ext-vector-member-alignment.c8
-rw-r--r--test/CodeGen/extern-inline.c6
-rw-r--r--test/CodeGen/finite-math.c10
-rw-r--r--test/CodeGen/fp16-ops.c477
-rw-r--r--test/CodeGen/function-target-features.c26
-rw-r--r--test/CodeGen/funique-sections.c13
-rw-r--r--test/CodeGen/init.c4
-rw-r--r--test/CodeGen/inline-asm-matching-constraint.c11
-rw-r--r--test/CodeGen/inline.c7
-rw-r--r--test/CodeGen/integer-overflow.c12
-rw-r--r--test/CodeGen/kr-func-promote.c3
-rw-r--r--test/CodeGen/lifetime-debuginfo-1.c13
-rw-r--r--test/CodeGen/lifetime-debuginfo-2.c29
-rw-r--r--test/CodeGen/lineno-dbginfo.c5
-rw-r--r--test/CodeGen/linetable-endscope.c4
-rw-r--r--test/CodeGen/link-bitcode-file.c5
-rw-r--r--test/CodeGen/mangle-blocks.c4
-rw-r--r--test/CodeGen/mangle-windows.c4
-rw-r--r--test/CodeGen/mips-inline-asm-modifiers.c4
-rw-r--r--test/CodeGen/mips-inline-asm.c19
-rw-r--r--test/CodeGen/mips-unsigned-ext-var.c22
-rw-r--r--test/CodeGen/mips-unsigned-extend.c15
-rw-r--r--test/CodeGen/mips-unsupported-nan.c25
-rw-r--r--test/CodeGen/mips-varargs.c68
-rw-r--r--test/CodeGen/mrtd.c2
-rw-r--r--test/CodeGen/ms-align-tentative.c12
-rw-r--r--test/CodeGen/ms-anonymous-struct.c84
-rw-r--r--test/CodeGen/ms-declspecs.c10
-rw-r--r--test/CodeGen/ms-declspecs.cpp15
-rw-r--r--test/CodeGen/ms-inline-asm.c2
-rw-r--r--test/CodeGen/ms-inline-asm.cpp4
-rw-r--r--test/CodeGen/ms-intrinsics.c2
-rw-r--r--test/CodeGen/ms-setjmp.c32
-rw-r--r--test/CodeGen/ms-volatile.c62
-rw-r--r--test/CodeGen/mult-alt-generic.c8
-rw-r--r--test/CodeGen/named_reg_global.c2
-rw-r--r--test/CodeGen/no-opt-volatile-memcpy.c8
-rw-r--r--test/CodeGen/nvptx-cpus.c1
-rw-r--r--test/CodeGen/object-size.c32
-rw-r--r--test/CodeGen/packed-arrays.c30
-rw-r--r--test/CodeGen/packed-nest-unpacked.c14
-rw-r--r--test/CodeGen/packed-structure.c16
-rw-r--r--test/CodeGen/pointer-signext.c4
-rw-r--r--test/CodeGen/ppc-varargs-struct.c28
-rw-r--r--test/CodeGen/ppc64-align-long-double.c2
-rw-r--r--test/CodeGen/ppc64-align-struct.c24
-rw-r--r--test/CodeGen/ppc64-complex-parms.c96
-rw-r--r--test/CodeGen/ppc64-elf-abi.c21
-rw-r--r--test/CodeGen/ppc64-qpx-vector.c29
-rw-r--r--test/CodeGen/ppc64-struct-onefloat.c32
-rw-r--r--test/CodeGen/ppc64-varargs-complex.c48
-rw-r--r--test/CodeGen/ppc64le-aggregates.c62
-rw-r--r--test/CodeGen/ppc64le-varargs-complex.c48
-rw-r--r--test/CodeGen/pr12251.c2
-rw-r--r--test/CodeGen/pr3518.c6
-rw-r--r--test/CodeGen/pr4349.c6
-rw-r--r--test/CodeGen/pr5406.c2
-rw-r--r--test/CodeGen/pragma-comment.c11
-rw-r--r--test/CodeGen/private-extern.c7
-rw-r--r--test/CodeGen/redefine_extname.c2
-rw-r--r--test/CodeGen/sanitize-thread-attr.cpp15
-rw-r--r--test/CodeGen/sha-builtins.c2
-rw-r--r--test/CodeGen/sparcv9-abi.c28
-rw-r--r--test/CodeGen/sparcv9-dwarf.c176
-rw-r--r--test/CodeGen/sse-builtins.c54
-rw-r--r--test/CodeGen/sse.c40
-rw-r--r--test/CodeGen/systemz-abi-vector.c590
-rw-r--r--test/CodeGen/systemz-abi.c591
-rw-r--r--test/CodeGen/systemz-abi.cpp9
-rw-r--r--test/CodeGen/systemz-inline-asm.c4
-rw-r--r--test/CodeGen/target-data.c15
-rw-r--r--test/CodeGen/tbaa.cpp8
-rw-r--r--test/CodeGen/trapv.c12
-rw-r--r--test/CodeGen/unsigned-overflow.c32
-rw-r--r--test/CodeGen/unsigned-promotion.c48
-rw-r--r--test/CodeGen/variadic-gpfp-x86.c6
-rw-r--r--test/CodeGen/variadic-null-win64.c4
-rw-r--r--test/CodeGen/vla-2.c3
-rw-r--r--test/CodeGen/vla-3.c3
-rw-r--r--test/CodeGen/vla.c54
-rw-r--r--test/CodeGen/volatile-1.c60
-rw-r--r--test/CodeGen/volatile-2.c8
-rw-r--r--test/CodeGen/volatile-complex.c48
-rw-r--r--test/CodeGen/volatile.c116
-rw-r--r--test/CodeGen/windows-on-arm-dllimport-dllexport.c2
-rw-r--r--test/CodeGen/windows-on-arm-stack-probe-size.c28
-rw-r--r--test/CodeGen/x86-atomic-long_double.c172
-rw-r--r--test/CodeGen/x86_32-arguments-darwin.c2
-rw-r--r--test/CodeGen/x86_32-arguments-linux.c2
-rw-r--r--test/CodeGen/x86_64-arguments-nacl.c28
-rw-r--r--test/CodeGen/x86_64-arguments-win32.c15
-rw-r--r--test/CodeGen/x86_64-arguments.c26
-rw-r--r--test/CodeGen/xcore-abi.c48
-rw-r--r--test/CodeGenCUDA/address-spaces.cu31
-rw-r--r--test/CodeGenCUDA/cuda-builtin-vars.cu28
-rw-r--r--test/CodeGenCUDA/device-stub.cu41
-rw-r--r--test/CodeGenCUDA/filter-decl.cu6
-rw-r--r--test/CodeGenCUDA/host-device-calls-host.cu32
-rw-r--r--test/CodeGenCUDA/launch-bounds.cu51
-rw-r--r--test/CodeGenCXX/2009-12-23-MissingSext.cpp8
-rw-r--r--test/CodeGenCXX/2010-07-23-DeclLoc.cpp5
-rw-r--r--test/CodeGenCXX/2011-12-19-init-list-ctor.cpp16
-rw-r--r--test/CodeGenCXX/2012-03-16-StoreAlign.cpp2
-rw-r--r--test/CodeGenCXX/Inputs/debug-info-class-limited.cpp8
-rw-r--r--test/CodeGenCXX/PR19955.cpp4
-rw-r--r--test/CodeGenCXX/PR20038.cpp8
-rw-r--r--test/CodeGenCXX/aarch64-aapcs-zerolength-bitfield.cpp249
-rw-r--r--test/CodeGenCXX/aarch64-neon.cpp2
-rw-r--r--test/CodeGenCXX/align-avx-complete-objects.cpp24
-rw-r--r--test/CodeGenCXX/anonymous-union-member-initializer.cpp10
-rw-r--r--test/CodeGenCXX/apple-kext-indirect-call-2.cpp (renamed from test/CodeGenCXX/apple-kext-indirect-call-2.C)14
-rw-r--r--test/CodeGenCXX/apple-kext-indirect-call.C14
-rw-r--r--test/CodeGenCXX/apple-kext-indirect-call.cpp42
-rw-r--r--test/CodeGenCXX/apple-kext-indirect-virtual-dtor-call.cpp43
-rw-r--r--test/CodeGenCXX/apple-kext-linkage.cpp (renamed from test/CodeGenCXX/apple-kext-linkage.C)0
-rw-r--r--test/CodeGenCXX/apple-kext-no-staticinit-section.cpp (renamed from test/CodeGenCXX/apple-kext-no-staticinit-section.C)0
-rw-r--r--test/CodeGenCXX/arm-vaarg.cpp6
-rw-r--r--test/CodeGenCXX/arm.cpp46
-rw-r--r--test/CodeGenCXX/arm64-constructor-return.cpp2
-rw-r--r--test/CodeGenCXX/arm64-empty-struct.cpp4
-rw-r--r--test/CodeGenCXX/arm64.cpp30
-rw-r--r--test/CodeGenCXX/atomicinit.cpp4
-rw-r--r--test/CodeGenCXX/auto-variable-template.cpp14
-rw-r--r--test/CodeGenCXX/bitfield.cpp112
-rw-r--r--test/CodeGenCXX/blocks-cxx11.cpp20
-rw-r--r--test/CodeGenCXX/blocks.cpp10
-rw-r--r--test/CodeGenCXX/call-with-static-chain.cpp2
-rw-r--r--test/CodeGenCXX/captured-statements.cpp28
-rw-r--r--test/CodeGenCXX/catch-undef-behavior.cpp45
-rw-r--r--test/CodeGenCXX/catch-undef-behavior2.cpp2
-rw-r--r--test/CodeGenCXX/cfi-cast.cpp109
-rw-r--r--test/CodeGenCXX/cfi-nvcall.cpp35
-rw-r--r--test/CodeGenCXX/cfi-vcall.cpp90
-rw-r--r--test/CodeGenCXX/compound-literals.cpp20
-rw-r--r--test/CodeGenCXX/condition.cpp8
-rw-r--r--test/CodeGenCXX/conditional-gnu-ext.cpp6
-rw-r--r--test/CodeGenCXX/const-init-cxx11.cpp74
-rw-r--r--test/CodeGenCXX/const-init-cxx1y.cpp6
-rw-r--r--test/CodeGenCXX/const-init.cpp11
-rw-r--r--test/CodeGenCXX/constructor-destructor-return-this.cpp4
-rw-r--r--test/CodeGenCXX/constructor-init.cpp32
-rw-r--r--test/CodeGenCXX/constructor-template.cpp4
-rw-r--r--test/CodeGenCXX/constructors.cpp2
-rw-r--r--test/CodeGenCXX/convert-to-fptr.cpp4
-rw-r--r--test/CodeGenCXX/copy-constructor-elim.cpp14
-rw-r--r--test/CodeGenCXX/copy-constructor-synthesis-2.cpp24
-rw-r--r--test/CodeGenCXX/copy-constructor-synthesis.cpp32
-rw-r--r--test/CodeGenCXX/coverage.cpp6
-rw-r--r--test/CodeGenCXX/crash.cpp11
-rw-r--r--test/CodeGenCXX/ctor-dtor-alias.cpp25
-rw-r--r--test/CodeGenCXX/cxx0x-initializer-array.cpp7
-rw-r--r--test/CodeGenCXX/cxx0x-initializer-references.cpp54
-rw-r--r--test/CodeGenCXX/cxx0x-initializer-stdinitializerlist-pr12086.cpp136
-rw-r--r--test/CodeGenCXX/cxx0x-initializer-stdinitializerlist-startend.cpp10
-rw-r--r--test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp142
-rw-r--r--test/CodeGenCXX/cxx11-exception-spec.cpp16
-rw-r--r--test/CodeGenCXX/cxx11-initializer-aggregate.cpp6
-rw-r--r--test/CodeGenCXX/cxx11-initializer-array-new.cpp70
-rw-r--r--test/CodeGenCXX/cxx11-thread-local-reference.cpp2
-rw-r--r--test/CodeGenCXX/cxx11-thread-local.cpp18
-rw-r--r--test/CodeGenCXX/cxx11-user-defined-literal.cpp14
-rw-r--r--test/CodeGenCXX/cxx11-vtable-key-function.cpp6
-rw-r--r--test/CodeGenCXX/cxx1y-generic-lambdas.cpp13
-rw-r--r--test/CodeGenCXX/cxx1y-init-captures.cpp43
-rw-r--r--test/CodeGenCXX/cxx1y-initializer-aggregate.cpp10
-rw-r--r--test/CodeGenCXX/cxx1y-sized-deallocation.cpp14
-rw-r--r--test/CodeGenCXX/debug-info-access.cpp22
-rw-r--r--test/CodeGenCXX/debug-info-alias.cpp18
-rw-r--r--test/CodeGenCXX/debug-info-anon-union-vars.cpp28
-rw-r--r--test/CodeGenCXX/debug-info-artificial-arg.cpp12
-rw-r--r--test/CodeGenCXX/debug-info-blocks.cpp8
-rw-r--r--test/CodeGenCXX/debug-info-char16.cpp3
-rw-r--r--test/CodeGenCXX/debug-info-class-nolimit.cpp8
-rw-r--r--test/CodeGenCXX/debug-info-class.cpp84
-rw-r--r--test/CodeGenCXX/debug-info-cxx1y.cpp17
-rw-r--r--test/CodeGenCXX/debug-info-decl-nested.cpp27
-rw-r--r--test/CodeGenCXX/debug-info-dup-fwd-decl.cpp6
-rw-r--r--test/CodeGenCXX/debug-info-enum-class.cpp64
-rw-r--r--test/CodeGenCXX/debug-info-enum.cpp28
-rw-r--r--test/CodeGenCXX/debug-info-flex-member.cpp2
-rw-r--r--test/CodeGenCXX/debug-info-fn-template.cpp4
-rw-r--r--test/CodeGenCXX/debug-info-function-context.cpp12
-rw-r--r--test/CodeGenCXX/debug-info-fwd-ref.cpp9
-rw-r--r--test/CodeGenCXX/debug-info-global-ctor-dtor.cpp16
-rw-r--r--test/CodeGenCXX/debug-info-global.cpp8
-rw-r--r--test/CodeGenCXX/debug-info-globalinit.cpp8
-rw-r--r--test/CodeGenCXX/debug-info-indirect-field-decl.cpp13
-rw-r--r--test/CodeGenCXX/debug-info-limited.cpp11
-rw-r--r--test/CodeGenCXX/debug-info-line-if.cpp8
-rw-r--r--test/CodeGenCXX/debug-info-line.cpp194
-rw-r--r--test/CodeGenCXX/debug-info-method.cpp20
-rw-r--r--test/CodeGenCXX/debug-info-namespace.cpp90
-rw-r--r--test/CodeGenCXX/debug-info-nullptr.cpp2
-rw-r--r--test/CodeGenCXX/debug-info-ptr-to-member-function.cpp15
-rw-r--r--test/CodeGenCXX/debug-info-qualifiers.cpp32
-rw-r--r--test/CodeGenCXX/debug-info-rvalue-ref.cpp3
-rw-r--r--test/CodeGenCXX/debug-info-same-line.cpp64
-rw-r--r--test/CodeGenCXX/debug-info-scope.cpp51
-rw-r--r--test/CodeGenCXX/debug-info-static-fns.cpp5
-rw-r--r--test/CodeGenCXX/debug-info-static-member.cpp84
-rw-r--r--test/CodeGenCXX/debug-info-template-explicit-specialization.cpp39
-rw-r--r--test/CodeGenCXX/debug-info-template-fwd.cpp4
-rw-r--r--test/CodeGenCXX/debug-info-template-limit.cpp4
-rw-r--r--test/CodeGenCXX/debug-info-template-member.cpp45
-rw-r--r--test/CodeGenCXX/debug-info-template-partial-specialization.cpp6
-rw-r--r--test/CodeGenCXX/debug-info-template-quals.cpp20
-rw-r--r--test/CodeGenCXX/debug-info-template.cpp116
-rw-r--r--test/CodeGenCXX/debug-info-thunk.cpp5
-rw-r--r--test/CodeGenCXX/debug-info-union-template.cpp6
-rw-r--r--test/CodeGenCXX/debug-info-union.cpp12
-rw-r--r--test/CodeGenCXX/debug-info-uuid.cpp33
-rw-r--r--test/CodeGenCXX/debug-info-varargs.cpp18
-rw-r--r--test/CodeGenCXX/debug-info-vtable-optzn.cpp2
-rw-r--r--test/CodeGenCXX/debug-info-wchar.cpp2
-rw-r--r--test/CodeGenCXX/debug-info-windows-dtor.cpp4
-rw-r--r--test/CodeGenCXX/debug-info-zero-length-arrays.cpp10
-rw-r--r--test/CodeGenCXX/debug-info.cpp68
-rw-r--r--test/CodeGenCXX/debug-lambda-expressions.cpp101
-rw-r--r--test/CodeGenCXX/debug-lambda-this.cpp8
-rw-r--r--test/CodeGenCXX/deferred-global-init.cpp2
-rw-r--r--test/CodeGenCXX/delete-two-arg.cpp8
-rw-r--r--test/CodeGenCXX/delete.cpp24
-rw-r--r--test/CodeGenCXX/derived-to-base-conv.cpp2
-rw-r--r--test/CodeGenCXX/derived-to-virtual-base-class-calls-final.cpp2
-rw-r--r--test/CodeGenCXX/destructor-debug-info.cpp2
-rw-r--r--test/CodeGenCXX/destructors.cpp42
-rw-r--r--test/CodeGenCXX/dllexport-members.cpp38
-rw-r--r--test/CodeGenCXX/dllexport.cpp175
-rw-r--r--test/CodeGenCXX/dllimport-rtti.cpp4
-rw-r--r--test/CodeGenCXX/dllimport.cpp45
-rw-r--r--test/CodeGenCXX/eh.cpp22
-rw-r--r--test/CodeGenCXX/empty-classes.cpp16
-rw-r--r--test/CodeGenCXX/exceptions-seh-filter-captures.cpp80
-rw-r--r--test/CodeGenCXX/exceptions-seh.cpp142
-rw-r--r--test/CodeGenCXX/exceptions.cpp52
-rw-r--r--test/CodeGenCXX/field-access-debug-info.cpp9
-rw-r--r--test/CodeGenCXX/global-array-destruction.cpp2
-rw-r--r--test/CodeGenCXX/global-dtor-no-atexit.cpp2
-rw-r--r--test/CodeGenCXX/global-init.cpp29
-rw-r--r--test/CodeGenCXX/globalinit-loc.cpp7
-rw-r--r--test/CodeGenCXX/homogeneous-aggregates.cpp2
-rw-r--r--test/CodeGenCXX/implicit-record-visibility.cpp12
-rw-r--r--test/CodeGenCXX/inheriting-constructor.cpp6
-rw-r--r--test/CodeGenCXX/inline-dllexport-member.cpp11
-rw-r--r--test/CodeGenCXX/key-function-vtable.cpp18
-rw-r--r--test/CodeGenCXX/lambda-expressions-nested-linkage.cpp17
-rw-r--r--test/CodeGenCXX/lambda-expressions.cpp49
-rw-r--r--test/CodeGenCXX/linetable-cleanup.cpp23
-rw-r--r--test/CodeGenCXX/linetable-eh.cpp12
-rw-r--r--test/CodeGenCXX/linetable-fnbegin.cpp8
-rw-r--r--test/CodeGenCXX/linetable-virtual-variadic.cpp23
-rw-r--r--test/CodeGenCXX/lpad-linetable.cpp2
-rw-r--r--test/CodeGenCXX/lvalue-bitcasts.cpp90
-rw-r--r--test/CodeGenCXX/m64-ptr.cpp2
-rw-r--r--test/CodeGenCXX/mangle-abi-examples.cpp2
-rw-r--r--test/CodeGenCXX/mangle-exprs.cpp48
-rw-r--r--test/CodeGenCXX/mangle-fail.cpp26
-rw-r--r--test/CodeGenCXX/mangle-lambdas.cpp91
-rw-r--r--test/CodeGenCXX/mangle-local-class-vtables.cpp28
-rw-r--r--test/CodeGenCXX/mangle-local-classes-nested.cpp4
-rw-r--r--test/CodeGenCXX/mangle-ms-abi-examples.cpp8
-rw-r--r--test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp9
-rw-r--r--test/CodeGenCXX/mangle-ms-cxx11.cpp12
-rw-r--r--test/CodeGenCXX/mangle-ms-cxx14.cpp10
-rw-r--r--test/CodeGenCXX/mangle-ms-return-qualifiers.cpp4
-rw-r--r--test/CodeGenCXX/mangle-ms.cpp9
-rw-r--r--test/CodeGenCXX/mangle-subst-std.cpp5
-rw-r--r--test/CodeGenCXX/mangle-subst.cpp16
-rw-r--r--test/CodeGenCXX/mangle-template.cpp25
-rw-r--r--test/CodeGenCXX/mangle.cpp108
-rw-r--r--test/CodeGenCXX/member-expressions.cpp2
-rw-r--r--test/CodeGenCXX/member-function-pointers.cpp4
-rw-r--r--test/CodeGenCXX/member-functions.cpp7
-rw-r--r--test/CodeGenCXX/member-init-anon-union.cpp26
-rw-r--r--test/CodeGenCXX/microsoft-abi-arg-order.cpp12
-rw-r--r--test/CodeGenCXX/microsoft-abi-array-cookies.cpp8
-rw-r--r--test/CodeGenCXX/microsoft-abi-byval-sret.cpp12
-rw-r--r--test/CodeGenCXX/microsoft-abi-byval-thunks.cpp20
-rw-r--r--test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp66
-rw-r--r--test/CodeGenCXX/microsoft-abi-eh-catch.cpp154
-rw-r--r--test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp (renamed from test/CodeGenCXX/microsoft-abi-exceptions.cpp)39
-rw-r--r--test/CodeGenCXX/microsoft-abi-eh-terminate.cpp15
-rwxr-xr-xtest/CodeGenCXX/microsoft-abi-member-pointers.cpp126
-rw-r--r--test/CodeGenCXX/microsoft-abi-methods.cpp8
-rw-r--r--test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp48
-rw-r--r--test/CodeGenCXX/microsoft-abi-rtti.cpp476
-rw-r--r--test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp18
-rw-r--r--test/CodeGenCXX/microsoft-abi-static-initializers.cpp40
-rw-r--r--test/CodeGenCXX/microsoft-abi-structors.cpp78
-rw-r--r--test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp93
-rw-r--r--test/CodeGenCXX/microsoft-abi-throw.cpp115
-rw-r--r--test/CodeGenCXX/microsoft-abi-thunks.cpp30
-rw-r--r--test/CodeGenCXX/microsoft-abi-try-throw.cpp34
-rw-r--r--test/CodeGenCXX/microsoft-abi-typeid.cpp10
-rw-r--r--test/CodeGenCXX/microsoft-abi-vbtables.cpp11
-rw-r--r--test/CodeGenCXX/microsoft-abi-vftables.cpp24
-rw-r--r--test/CodeGenCXX/microsoft-abi-virtual-inheritance-vtordisps.cpp38
-rw-r--r--test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp136
-rw-r--r--test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp93
-rw-r--r--test/CodeGenCXX/microsoft-abi-vmemptr-conflicts.cpp20
-rw-r--r--test/CodeGenCXX/microsoft-abi-vmemptr-vbase.cpp12
-rw-r--r--test/CodeGenCXX/microsoft-abi-vtables-ambiguous.cpp44
-rw-r--r--test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-this-adjustment.cpp4
-rw-r--r--test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp73
-rw-r--r--test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp38
-rw-r--r--test/CodeGenCXX/microsoft-interface.cpp10
-rw-r--r--test/CodeGenCXX/microsoft-no-rtti-data.cpp2
-rw-r--r--test/CodeGenCXX/microsoft-uuidof.cpp5
-rw-r--r--test/CodeGenCXX/mips-size_t-ptrdiff_t.cpp8
-rw-r--r--test/CodeGenCXX/ms-inline-asm-return.cpp6
-rw-r--r--test/CodeGenCXX/ms-integer-static-data-members-exported.cpp4
-rw-r--r--test/CodeGenCXX/ms-integer-static-data-members.cpp63
-rw-r--r--test/CodeGenCXX/ms-novtable.cpp21
-rw-r--r--test/CodeGenCXX/ms_struct.cpp33
-rw-r--r--test/CodeGenCXX/ms_wide_predefined_expr.cpp2
-rw-r--r--test/CodeGenCXX/new-array-init.cpp4
-rw-r--r--test/CodeGenCXX/new-overflow.cpp6
-rw-r--r--test/CodeGenCXX/new.cpp65
-rw-r--r--test/CodeGenCXX/no-opt-volatile-memcpy.cpp10
-rw-r--r--test/CodeGenCXX/noexcept.cpp2
-rw-r--r--test/CodeGenCXX/nrvo.cpp15
-rw-r--r--test/CodeGenCXX/override-layout.cpp6
-rw-r--r--test/CodeGenCXX/partial-destruction.cpp44
-rw-r--r--test/CodeGenCXX/pod-member-memcpys.cpp105
-rw-r--r--test/CodeGenCXX/pointers-to-data-members.cpp14
-rw-r--r--test/CodeGenCXX/powerpc-byval.cpp12
-rw-r--r--test/CodeGenCXX/pr12251.cpp32
-rw-r--r--test/CodeGenCXX/pr20897.cpp22
-rw-r--r--test/CodeGenCXX/pragma-init_seg.cpp20
-rw-r--r--test/CodeGenCXX/predefined-expr.cpp140
-rw-r--r--test/CodeGenCXX/reference-cast.cpp6
-rw-r--r--test/CodeGenCXX/references.cpp12
-rw-r--r--test/CodeGenCXX/rtti-linkage.cpp8
-rw-r--r--test/CodeGenCXX/rvalue-references.cpp4
-rw-r--r--test/CodeGenCXX/scoped-enums-debug-info.cpp11
-rw-r--r--test/CodeGenCXX/sections.cpp2
-rw-r--r--test/CodeGenCXX/sizeof-unwind-exception.cpp10
-rw-r--r--test/CodeGenCXX/skip-vtable-pointer-initialization.cpp16
-rw-r--r--test/CodeGenCXX/split-stacks.cpp4
-rw-r--r--test/CodeGenCXX/static-data-member-single-emission.cpp31
-rw-r--r--test/CodeGenCXX/static-data-member.cpp6
-rw-r--r--test/CodeGenCXX/static-init-pnacl.cpp2
-rw-r--r--test/CodeGenCXX/static-init.cpp21
-rw-r--r--test/CodeGenCXX/static-local-in-local-class.cpp20
-rw-r--r--test/CodeGenCXX/switch-case-folding-2.cpp2
-rw-r--r--test/CodeGenCXX/template-anonymous-types.cpp11
-rw-r--r--test/CodeGenCXX/temporaries.cpp44
-rw-r--r--test/CodeGenCXX/throw-expressions.cpp4
-rw-r--r--test/CodeGenCXX/thunks.cpp22
-rw-r--r--test/CodeGenCXX/uncopyable-args.cpp10
-rw-r--r--test/CodeGenCXX/unknown-anytype.cpp20
-rw-r--r--test/CodeGenCXX/value-init.cpp22
-rw-r--r--test/CodeGenCXX/vararg-non-pod-ms-compat.cpp8
-rw-r--r--test/CodeGenCXX/varargs.cpp6
-rw-r--r--test/CodeGenCXX/vector-splat-conversion.cpp19
-rw-r--r--test/CodeGenCXX/virtual-base-cast.cpp44
-rw-r--r--test/CodeGenCXX/virtual-base-destructor-call.cpp10
-rw-r--r--test/CodeGenCXX/visibility.cpp23
-rw-r--r--test/CodeGenCXX/vla-lambda-capturing.cpp126
-rw-r--r--test/CodeGenCXX/vla.cpp20
-rw-r--r--test/CodeGenCXX/volatile-1.cpp68
-rw-r--r--test/CodeGenCXX/volatile.cpp6
-rw-r--r--test/CodeGenCXX/vtable-holder-self-reference.cpp3
-rw-r--r--test/CodeGenCXX/vtable-linkage.cpp44
-rw-r--r--test/CodeGenCXX/vtable-pointer-initialization.cpp17
-rw-r--r--test/CodeGenCXX/vtt-layout.cpp8
-rw-r--r--test/CodeGenCXX/windows-itanium-exceptions.cpp2
-rw-r--r--test/CodeGenCXX/x86_64-arguments-avx.cpp15
-rw-r--r--test/CodeGenObjC/2010-02-01-utf16-with-null.m2
-rw-r--r--test/CodeGenObjC/2010-02-09-DbgSelf.m2
-rw-r--r--test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m2
-rw-r--r--test/CodeGenObjC/arc-blocks.m226
-rw-r--r--test/CodeGenObjC/arc-bridged-cast.m11
-rw-r--r--test/CodeGenObjC/arc-foreach.m42
-rw-r--r--test/CodeGenObjC/arc-ivar-layout.m8
-rw-r--r--test/CodeGenObjC/arc-linetable-autorelease.m4
-rw-r--r--test/CodeGenObjC/arc-linetable.m44
-rw-r--r--test/CodeGenObjC/arc-literals.m50
-rw-r--r--test/CodeGenObjC/arc-loadweakretained-release.m8
-rw-r--r--test/CodeGenObjC/arc-no-arc-exceptions.m2
-rw-r--r--test/CodeGenObjC/arc-precise-lifetime.m84
-rw-r--r--test/CodeGenObjC/arc-property.m40
-rw-r--r--test/CodeGenObjC/arc-related-result-type.m2
-rw-r--r--test/CodeGenObjC/arc-ternary-op.m40
-rw-r--r--test/CodeGenObjC/arc-unopt.m6
-rw-r--r--test/CodeGenObjC/arc-unoptimized-byref-var.m6
-rw-r--r--test/CodeGenObjC/arc-weak-property.m20
-rw-r--r--test/CodeGenObjC/arc.m435
-rw-r--r--test/CodeGenObjC/arm64-int32-ivar.m2
-rw-r--r--test/CodeGenObjC/atomic-aggregate-property.m2
-rw-r--r--test/CodeGenObjC/attr-exception.m8
-rw-r--r--test/CodeGenObjC/autorelease.m4
-rw-r--r--test/CodeGenObjC/bitfield-access.m4
-rw-r--r--test/CodeGenObjC/block-6.m8
-rw-r--r--test/CodeGenObjC/block-byref-debuginfo.m5
-rw-r--r--test/CodeGenObjC/blocks-2.m2
-rw-r--r--test/CodeGenObjC/blocks.m42
-rw-r--r--test/CodeGenObjC/boxing.m34
-rw-r--r--test/CodeGenObjC/catch-lexical-block.m8
-rw-r--r--test/CodeGenObjC/category-super-class-meth.m6
-rw-r--r--test/CodeGenObjC/compound-literal-property-access.m21
-rw-r--r--test/CodeGenObjC/debug-info-block-captured-self.m12
-rw-r--r--test/CodeGenObjC/debug-info-block-helper.m2
-rw-r--r--test/CodeGenObjC/debug-info-block-type.m17
-rw-r--r--test/CodeGenObjC/debug-info-blocks.m14
-rw-r--r--test/CodeGenObjC/debug-info-fwddecl.m7
-rw-r--r--test/CodeGenObjC/debug-info-getter-name.m2
-rw-r--r--test/CodeGenObjC/debug-info-id-with-protocol.m11
-rw-r--r--test/CodeGenObjC/debug-info-impl.m3
-rw-r--r--test/CodeGenObjC/debug-info-instancetype.m13
-rw-r--r--test/CodeGenObjC/debug-info-ivars-extension.m22
-rw-r--r--test/CodeGenObjC/debug-info-ivars-indirect.m8
-rw-r--r--test/CodeGenObjC/debug-info-ivars-private.m15
-rw-r--r--test/CodeGenObjC/debug-info-ivars.m28
-rw-r--r--test/CodeGenObjC/debug-info-lifetime-crash.m8
-rw-r--r--test/CodeGenObjC/debug-info-property-accessors.m3
-rw-r--r--test/CodeGenObjC/debug-info-property3.m4
-rw-r--r--test/CodeGenObjC/debug-info-pubtypes.m4
-rw-r--r--test/CodeGenObjC/debug-info-self.m16
-rw-r--r--test/CodeGenObjC/debug-info-static-var.m4
-rw-r--r--test/CodeGenObjC/debug-info-synthesis.m7
-rw-r--r--test/CodeGenObjC/debug-info-variadic-method.m4
-rw-r--r--test/CodeGenObjC/debug-property-synth.m8
-rw-r--r--test/CodeGenObjC/debuginfo-properties.m17
-rw-r--r--test/CodeGenObjC/encode-test-5.m17
-rw-r--r--test/CodeGenObjC/encode-test-6.m2
-rw-r--r--test/CodeGenObjC/encode-test.m2
-rw-r--r--test/CodeGenObjC/exceptions.m7
-rw-r--r--test/CodeGenObjC/forward-protocol-metadata-symbols.m2
-rw-r--r--test/CodeGenObjC/gc.m2
-rw-r--r--test/CodeGenObjC/gnu-exceptions.m2
-rw-r--r--test/CodeGenObjC/id-isa-codegen.m4
-rw-r--r--test/CodeGenObjC/ivar-base-as-invariant-load.m6
-rw-r--r--test/CodeGenObjC/ivar-invariant.m8
-rw-r--r--test/CodeGenObjC/ivar-layout-array0-struct.m2
-rw-r--r--test/CodeGenObjC/ivar-layout-no-optimize.m2
-rw-r--r--test/CodeGenObjC/local-static-block.m2
-rw-r--r--test/CodeGenObjC/mangle-blocks.m4
-rw-r--r--test/CodeGenObjC/messages-2.m4
-rw-r--r--test/CodeGenObjC/metadata-symbols-64.m2
-rw-r--r--test/CodeGenObjC/no-sanitize.m8
-rw-r--r--test/CodeGenObjC/ns-constant-strings.m4
-rw-r--r--test/CodeGenObjC/ns_consume_null_check.m22
-rw-r--r--test/CodeGenObjC/objc-asm-attribute-test.m2
-rw-r--r--test/CodeGenObjC/objc-container-subscripting-1.m16
-rw-r--r--test/CodeGenObjC/objc-fixed-enum.m40
-rw-r--r--test/CodeGenObjC/objc2-protocol-metadata.m17
-rw-r--r--test/CodeGenObjC/objfw.m2
-rw-r--r--test/CodeGenObjC/optimize-ivar-offset-load.m14
-rw-r--r--test/CodeGenObjC/property-array-type.m6
-rw-r--r--test/CodeGenObjC/property-type-mismatch.m2
-rw-r--r--test/CodeGenObjC/property.m28
-rw-r--r--test/CodeGenObjC/selector-ref-invariance.m2
-rw-r--r--test/CodeGenObjC/stret_lookup.m4
-rw-r--r--test/CodeGenObjC/super-message-fragileabi.m2
-rw-r--r--test/CodeGenObjC/synchronized.m4
-rw-r--r--test/CodeGenObjC/tentative-cfconstantstring.m8
-rw-r--r--test/CodeGenObjC/variadic-sends.m8
-rw-r--r--test/CodeGenObjCXX/arc-blocks.mm18
-rw-r--r--test/CodeGenObjCXX/arc-cxx11-member-init.mm6
-rw-r--r--test/CodeGenObjCXX/arc-exceptions.mm12
-rw-r--r--test/CodeGenObjCXX/arc-globals.mm2
-rw-r--r--test/CodeGenObjCXX/arc-move.mm28
-rw-r--r--test/CodeGenObjCXX/arc-new-delete.mm14
-rw-r--r--test/CodeGenObjCXX/arc-pseudo-destructors.mm8
-rw-r--r--test/CodeGenObjCXX/arc-references.mm10
-rw-r--r--test/CodeGenObjCXX/arc-special-member-functions.mm84
-rw-r--r--test/CodeGenObjCXX/arc.mm51
-rw-r--r--test/CodeGenObjCXX/debug-info-cyclic.mm29
-rw-r--r--test/CodeGenObjCXX/debug-info-line.mm4
-rw-r--r--test/CodeGenObjCXX/destroy.mm4
-rw-r--r--test/CodeGenObjCXX/exceptions-legacy.mm12
-rw-r--r--test/CodeGenObjCXX/gc.mm6
-rw-r--r--test/CodeGenObjCXX/lambda-expressions.mm11
-rw-r--r--test/CodeGenObjCXX/literals.mm18
-rw-r--r--test/CodeGenObjCXX/lvalue-reference-getter.mm4
-rw-r--r--test/CodeGenObjCXX/mangle-blocks.mm2
-rw-r--r--test/CodeGenObjCXX/message-reference.mm4
-rw-r--r--test/CodeGenObjCXX/message.mm2
-rw-r--r--test/CodeGenObjCXX/nested-ehlocation.mm24
-rw-r--r--test/CodeGenObjCXX/property-lvalue-capture.mm8
-rw-r--r--test/CodeGenObjCXX/property-object-conditional-exp.mm4
-rw-r--r--test/CodeGenObjCXX/property-object-reference-1.mm2
-rw-r--r--test/CodeGenObjCXX/property-object-reference-2.mm8
-rw-r--r--test/CodeGenObjCXX/property-object-reference.mm4
-rw-r--r--test/CodeGenObjCXX/property-reference.mm12
-rw-r--r--test/CodeGenOpenCL/address-space-constant-initializers.cl2
-rw-r--r--test/CodeGenOpenCL/cl-strict-aliasing.cl1
-rw-r--r--test/CodeGenOpenCL/const-str-array-decay.cl2
-rw-r--r--test/CodeGenOpenCL/half.cl8
-rw-r--r--test/CodeGenOpenCL/memcpy.cl8
-rw-r--r--test/CodeGenOpenCL/opencl_types.cl2
-rw-r--r--test/CodeGenOpenCL/relaxed-fpmath.cl2
-rw-r--r--test/CodeGenOpenCL/shifts.cl66
-rw-r--r--test/CodeGenOpenCL/spir-calling-conv.cl18
-rw-r--r--test/CoverageMapping/Inputs/code.h2
-rw-r--r--test/CoverageMapping/Inputs/ends_a_scope5
-rw-r--r--test/CoverageMapping/Inputs/md.def5
-rw-r--r--test/CoverageMapping/Inputs/starts_a_scope4
-rw-r--r--test/CoverageMapping/block-storage-starts-region.m12
-rw-r--r--test/CoverageMapping/break.c34
-rw-r--r--test/CoverageMapping/builtinmacro.c2
-rw-r--r--test/CoverageMapping/casts.c6
-rw-r--r--test/CoverageMapping/classtemplate.cpp10
-rw-r--r--test/CoverageMapping/comment-in-macro.c11
-rw-r--r--test/CoverageMapping/continue.c30
-rw-r--r--test/CoverageMapping/header.cpp19
-rw-r--r--test/CoverageMapping/if.c24
-rw-r--r--test/CoverageMapping/includehell.cpp83
-rw-r--r--test/CoverageMapping/ir.c2
-rw-r--r--test/CoverageMapping/label.cpp72
-rw-r--r--test/CoverageMapping/lambda.cpp17
-rw-r--r--test/CoverageMapping/logical.cpp10
-rw-r--r--test/CoverageMapping/loopmacro.c57
-rw-r--r--test/CoverageMapping/loops.cpp45
-rw-r--r--test/CoverageMapping/macro-expansion.c58
-rw-r--r--test/CoverageMapping/macro-expressions.cpp90
-rw-r--r--test/CoverageMapping/macroception.c58
-rw-r--r--test/CoverageMapping/macroparams.c15
-rw-r--r--test/CoverageMapping/macroparams2.c21
-rw-r--r--test/CoverageMapping/macros.c45
-rw-r--r--test/CoverageMapping/macroscopes.cpp105
-rw-r--r--test/CoverageMapping/md.cpp33
-rw-r--r--test/CoverageMapping/moremacros.c40
-rw-r--r--test/CoverageMapping/nestedclass.cpp6
-rw-r--r--test/CoverageMapping/objc.m15
-rw-r--r--test/CoverageMapping/preprocessor.c13
-rw-r--r--test/CoverageMapping/return.c43
-rw-r--r--test/CoverageMapping/switch.c71
-rw-r--r--test/CoverageMapping/switchmacro.c28
-rw-r--r--test/CoverageMapping/system_macro.c24
-rw-r--r--test/CoverageMapping/test.c19
-rw-r--r--test/CoverageMapping/trycatch.cpp25
-rw-r--r--test/CoverageMapping/unreachable-macro.c15
-rw-r--r--test/CoverageMapping/unused_names.c28
-rw-r--r--test/CoverageMapping/while.c12
-rw-r--r--test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.msan_cxx-x86_64.a.syms (renamed from test/Modules/macro-reexport/a2.h)0
-rw-r--r--test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.tsan_cxx-x86_64.a.syms (renamed from test/Modules/macro-reexport/b1.h)0
-rw-r--r--test/Driver/aarch64-cpus.c47
-rw-r--r--test/Driver/arm-cortex-cpus.c101
-rw-r--r--test/Driver/arm-mfpu.c15
-rw-r--r--test/Driver/biarch.c2
-rw-r--r--test/Driver/cl-eh.cpp5
-rw-r--r--test/Driver/cl-inputs.c5
-rw-r--r--test/Driver/cl-options.c84
-rw-r--r--test/Driver/cl-zc.cpp6
-rw-r--r--test/Driver/clang-exception-flags.cpp7
-rw-r--r--test/Driver/clang_f_opts.c19
-rw-r--r--test/Driver/cloudabi.c3
-rw-r--r--test/Driver/cloudabi.cpp3
-rw-r--r--test/Driver/coverage-ld.c9
-rw-r--r--test/Driver/crash-report-modules.m7
-rw-r--r--test/Driver/crash-report.c4
-rw-r--r--test/Driver/cuda-simple.cu23
-rw-r--r--test/Driver/darwin-debug-flags.c10
-rw-r--r--test/Driver/darwin-ld.c6
-rw-r--r--test/Driver/darwin-sanitizer-ld.c10
-rw-r--r--test/Driver/darwin-version.c75
-rw-r--r--test/Driver/debug-comp-dir.S6
-rw-r--r--test/Driver/debug.c6
-rw-r--r--test/Driver/fast-math.c30
-rw-r--r--test/Driver/frame-pointer-elim.c5
-rw-r--r--test/Driver/fsanitize-blacklist.c27
-rw-r--r--test/Driver/fsanitize-coverage.c70
-rw-r--r--test/Driver/fsanitize.c79
-rw-r--r--test/Driver/function-sections.c12
-rw-r--r--test/Driver/fveclib.c17
-rw-r--r--test/Driver/gfortran.f9016
-rw-r--r--test/Driver/gold-lto.c1
-rw-r--r--test/Driver/hexagon-toolchain-elf.c7
-rw-r--r--test/Driver/hexagon-toolchain.c9
-rw-r--r--test/Driver/inline-asm.c (renamed from test/Driver/ms-inline-asm.c)9
-rw-r--r--test/Driver/instrprof-ld.c33
-rw-r--r--test/Driver/linux-as.c53
-rw-r--r--test/Driver/linux-header-search.cpp36
-rw-r--r--test/Driver/linux-ld.c71
-rw-r--r--test/Driver/lit.local.cfg3
-rw-r--r--test/Driver/mg.c6
-rw-r--r--test/Driver/mglobal-merge.c40
-rw-r--r--test/Driver/mips-as.c20
-rw-r--r--test/Driver/mips-features.c4
-rw-r--r--test/Driver/mips-fsf.cpp110
-rw-r--r--test/Driver/mips-integrated-as.s16
-rw-r--r--test/Driver/mno-global-merge.c20
-rw-r--r--test/Driver/modules-cache-path.m5
-rw-r--r--test/Driver/msc-version.c6
-rw-r--r--test/Driver/msvc-link.c12
-rw-r--r--test/Driver/nacl-direct.c111
-rw-r--r--test/Driver/nostdincxx.cpp1
-rw-r--r--test/Driver/objc++-cpp-output.mm4
-rw-r--r--test/Driver/objc-sdk-migration-options.m9
-rw-r--r--test/Driver/output-file-cleanup.c1
-rw-r--r--test/Driver/pch-deps.c11
-rw-r--r--test/Driver/pic.c4
-rw-r--r--test/Driver/ppc-abi.c9
-rw-r--r--test/Driver/ppc-features.cpp12
-rw-r--r--test/Driver/preserve-uselistorder.c9
-rw-r--r--test/Driver/ps4-cpu-defaults.cpp6
-rw-r--r--test/Driver/rewrite-map-in-diagnostics.c2
-rw-r--r--test/Driver/rtti-options.cpp62
-rw-r--r--test/Driver/sanitizer-ld.c80
-rw-r--r--test/Driver/save-temps.c55
-rw-r--r--test/Driver/systemz-features.cpp26
-rw-r--r--test/Driver/target-abi-cc1as.s6
-rw-r--r--test/Driver/warning-options_pedantic.cpp14
-rw-r--r--test/Driver/x86_features.c2
-rw-r--r--test/Driver/xcore-opts.c4
-rw-r--r--test/FixIt/fixit-cxx0x.cpp19
-rw-r--r--test/FixIt/fixit-eof-space.c9
-rw-r--r--test/FixIt/fixit-objc-bridge-related.m10
-rw-r--r--test/FixIt/fixit-recursive-block.c2
-rw-r--r--test/FixIt/fixit.cpp10
-rw-r--r--test/Format/cursor.cpp2
-rw-r--r--test/Format/incomplete.cpp8
-rw-r--r--test/Frontend/darwin-version.c34
-rw-r--r--test/Frontend/dependency-gen-escaping.c30
-rw-r--r--test/Frontend/dependency-gen.c1
-rw-r--r--test/Frontend/dependency-generation-crash.c7
-rw-r--r--test/Frontend/gnu-inline.c15
-rw-r--r--test/Frontend/plugin-delayed-template.cpp17
-rw-r--r--test/Frontend/print-header-includes.c2
-rw-r--r--test/Frontend/rewrite-includes-line-markers.c22
-rw-r--r--test/Frontend/x86_64-nacl-types.cpp6
-rw-r--r--test/Headers/Inputs/include/stdlib.h2
-rw-r--r--test/Headers/altivec-header.c14
-rw-r--r--test/Headers/altivec-intrin.c4
-rw-r--r--test/Headers/arm64-apple-ios-types.cpp83
-rw-r--r--test/Headers/thumbv7-apple-ios-types.cpp83
-rw-r--r--test/Headers/x86_64-apple-macosx-types.cpp83
-rw-r--r--test/Headers/xmmintrin.c12
-rw-r--r--test/Index/annotate-tokens.c17
-rw-r--r--test/Index/code-completion.cpp6
-rw-r--r--test/Index/complete-call.cpp805
-rw-r--r--test/Index/complete-constructor-params.cpp140
-rw-r--r--test/Index/complete-functor-call.cpp191
-rw-r--r--test/Index/complete-macros.c2
-rw-r--r--test/Index/complete-optional-params.cpp75
-rw-r--r--test/Index/complete-pointer-and-reference-to-functions.cpp62
-rw-r--r--test/Index/complete-template-friends-defined.cpp33
-rw-r--r--test/Index/complete-type-factors.m16
-rw-r--r--test/Index/get-cursor.c13
-rw-r--r--test/Index/index-module.m15
-rw-r--r--test/Index/index-pch-with-module.m2
-rw-r--r--test/Index/load-stmts.cpp2
-rw-r--r--test/Index/print-type-size.cpp5
-rw-r--r--test/Index/print-type.cpp7
-rw-r--r--test/Layout/ms-x86-alias-avoidance-padding.cpp4
-rw-r--r--test/Layout/ms-x86-aligned-tail-padding.cpp4
-rw-r--r--test/Layout/ms-x86-basic-layout.cpp4
-rw-r--r--test/Layout/ms-x86-empty-layout.c4
-rw-r--r--test/Layout/ms-x86-empty-nonvirtual-bases.cpp4
-rw-r--r--test/Layout/ms-x86-empty-virtual-base.cpp4
-rw-r--r--test/Layout/ms-x86-lazy-empty-nonvirtual-base.cpp4
-rw-r--r--test/Layout/ms-x86-pack-and-align.cpp4
-rw-r--r--test/Layout/ms-x86-size-alignment-fail.cpp4
-rw-r--r--test/Layout/ms-x86-vfvb-alignment.cpp4
-rw-r--r--test/Layout/ms-x86-vfvb-sharing.cpp4
-rw-r--r--test/Lexer/cxx-features.cpp7
-rw-r--r--test/Lexer/eof-include.c8
-rw-r--r--test/Lexer/eof-number.c9
-rw-r--r--test/Lexer/has_extension_cxx.cpp5
-rw-r--r--test/Lexer/has_feature_cxx0x.cpp128
-rw-r--r--test/Lexer/pragma-operators.cpp2
-rw-r--r--test/Misc/ast-dump-attr.cpp2
-rw-r--r--test/Misc/ast-dump-decl.cpp13
-rw-r--r--test/Misc/ast-dump-stmt.cpp27
-rw-r--r--test/Misc/backend-optimization-failure-nodbg.cpp21
-rw-r--r--test/Misc/backend-optimization-failure.cpp4
-rw-r--r--test/Misc/diag-template-diffing.cpp2
-rw-r--r--test/Misc/warning-flags.c5
-rw-r--r--test/Modules/Inputs/DependsOnModule.framework/module.map6
-rw-r--r--test/Modules/Inputs/Module.framework/Headers/Module.h9
-rw-r--r--test/Modules/Inputs/ModuleMapLocations/Both_F.framework/Headers/a.h1
-rw-r--r--test/Modules/Inputs/PR21687/a.h1
-rw-r--r--test/Modules/Inputs/PR21687/b.h2
-rw-r--r--test/Modules/Inputs/PR21687/c.h4
-rw-r--r--test/Modules/Inputs/PR21687/module.modulemap3
-rw-r--r--test/Modules/Inputs/anon-namespace/a.h1
-rw-r--r--test/Modules/Inputs/anon-namespace/b1.h2
-rw-r--r--test/Modules/Inputs/anon-namespace/b2.h2
-rw-r--r--test/Modules/Inputs/anon-namespace/c.h1
-rw-r--r--test/Modules/Inputs/anon-namespace/module.modulemap3
-rw-r--r--test/Modules/Inputs/cxx-decls-imported.h3
-rw-r--r--test/Modules/Inputs/cxx-decls-merged.h3
-rw-r--r--test/Modules/Inputs/cxx-dtor/a.h1
-rw-r--r--test/Modules/Inputs/cxx-dtor/b.h3
-rw-r--r--test/Modules/Inputs/cxx-dtor/module.modulemap2
-rw-r--r--test/Modules/Inputs/cxx-lookup/module.modulemap2
-rw-r--r--test/Modules/Inputs/cxx-lookup/na.h1
-rw-r--r--test/Modules/Inputs/cxx-lookup/nb.h1
-rw-r--r--test/Modules/Inputs/declare-use/module.map11
-rw-r--r--test/Modules/Inputs/declare-use/sub.h4
-rw-r--r--test/Modules/Inputs/deferred-lookup/a.h1
-rw-r--r--test/Modules/Inputs/deferred-lookup/b.h6
-rw-r--r--test/Modules/Inputs/deferred-lookup/module.modulemap2
-rw-r--r--test/Modules/Inputs/diagnostics-aux.modulemap1
-rw-r--r--test/Modules/Inputs/empty.h0
-rw-r--r--test/Modules/Inputs/empty/empty.h1
-rw-r--r--test/Modules/Inputs/explicit-build/d.h0
-rw-r--r--test/Modules/Inputs/explicit-build/module.modulemap1
-rw-r--r--test/Modules/Inputs/header-in-multiple-maps/a.h1
-rw-r--r--test/Modules/Inputs/header-in-multiple-maps/map13
-rw-r--r--test/Modules/Inputs/header-in-multiple-maps/map23
-rw-r--r--test/Modules/Inputs/header-in-multiple-maps/map33
-rw-r--r--test/Modules/Inputs/initializer_list/direct.h (renamed from test/Modules/Inputs/initializer_list)0
-rw-r--r--test/Modules/Inputs/initializer_list/direct.modulemap1
-rw-r--r--test/Modules/Inputs/initializer_list/indirect.h1
-rw-r--r--test/Modules/Inputs/initializer_list/indirect.modulemap1
-rw-r--r--test/Modules/Inputs/invalidate-identifiers/a.h17
-rw-r--r--test/Modules/Inputs/invalidate-identifiers/b.h2
-rw-r--r--test/Modules/Inputs/invalidate-identifiers/module.modulemap (renamed from test/Modules/redecls/module.map)0
-rw-r--r--test/Modules/Inputs/macro-ambiguity/a/quote/a_quote.h8
-rw-r--r--test/Modules/Inputs/macro-ambiguity/a/system/a_system.h15
-rw-r--r--test/Modules/Inputs/macro-ambiguity/b/quote/b_quote.h8
-rw-r--r--test/Modules/Inputs/macro-ambiguity/b/system/b_system.h15
-rw-r--r--test/Modules/Inputs/macro-ambiguity/c/quote/c_quote.h7
-rw-r--r--test/Modules/Inputs/macro-ambiguity/c/system/c_system.h14
-rw-r--r--test/Modules/Inputs/macro-ambiguity/d/quote/d_quote.h7
-rw-r--r--test/Modules/Inputs/macro-ambiguity/d/system/d_system.h14
-rw-r--r--test/Modules/Inputs/macro-ambiguity/e/quote/e_quote.h7
-rw-r--r--test/Modules/Inputs/macro-ambiguity/e/system/e_system.h7
-rw-r--r--test/Modules/Inputs/macro-ambiguity/module.modulemap25
-rw-r--r--test/Modules/Inputs/macro-masking/a.h2
-rw-r--r--test/Modules/Inputs/macro-masking/b.h1
-rw-r--r--test/Modules/Inputs/macro-masking/module.modulemap4
-rw-r--r--test/Modules/Inputs/macro-reexport/a1.h (renamed from test/Modules/macro-reexport/a1.h)0
-rw-r--r--test/Modules/Inputs/macro-reexport/a2.h0
-rw-r--r--test/Modules/Inputs/macro-reexport/b1.h0
-rw-r--r--test/Modules/Inputs/macro-reexport/b2.h (renamed from test/Modules/macro-reexport/b2.h)0
-rw-r--r--test/Modules/Inputs/macro-reexport/c1.h (renamed from test/Modules/macro-reexport/c1.h)0
-rw-r--r--test/Modules/Inputs/macro-reexport/d1.h (renamed from test/Modules/macro-reexport/d1.h)0
-rw-r--r--test/Modules/Inputs/macro-reexport/d2.h (renamed from test/Modules/macro-reexport/d2.h)0
-rw-r--r--test/Modules/Inputs/macro-reexport/e1.h (renamed from test/Modules/macro-reexport/e1.h)0
-rw-r--r--test/Modules/Inputs/macro-reexport/e2.h (renamed from test/Modules/macro-reexport/e2.h)0
-rw-r--r--test/Modules/Inputs/macro-reexport/f1.h (renamed from test/Modules/macro-reexport/f1.h)0
-rw-r--r--test/Modules/Inputs/macro-reexport/module.modulemap (renamed from test/Modules/macro-reexport/module.modulemap)0
-rw-r--r--test/Modules/Inputs/macros-indirect.h1
-rw-r--r--test/Modules/Inputs/macros.h1
-rw-r--r--test/Modules/Inputs/merge-anon-in-template/a.h4
-rw-r--r--test/Modules/Inputs/merge-anon-in-template/b.h2
-rw-r--r--test/Modules/Inputs/merge-anon-in-template/c.h6
-rw-r--r--test/Modules/Inputs/merge-anon-in-template/module.modulemap3
-rw-r--r--test/Modules/Inputs/merge-decl-context/a.h24
-rw-r--r--test/Modules/Inputs/merge-decl-context/b.h6
-rw-r--r--test/Modules/Inputs/merge-decl-context/c.h7
-rw-r--r--test/Modules/Inputs/merge-decl-context/d.h7
-rw-r--r--test/Modules/Inputs/merge-decl-context/merge-decl-context.modulemap18
-rw-r--r--test/Modules/Inputs/merge-decl-order/a.h2
-rw-r--r--test/Modules/Inputs/merge-decl-order/b.h2
-rw-r--r--test/Modules/Inputs/merge-decl-order/module.modulemap2
-rw-r--r--test/Modules/Inputs/merge-dependent-friends/a.h2
-rw-r--r--test/Modules/Inputs/merge-dependent-friends/b.h2
-rw-r--r--test/Modules/Inputs/merge-dependent-friends/c.h6
-rw-r--r--test/Modules/Inputs/merge-dependent-friends/d.h2
-rw-r--r--test/Modules/Inputs/merge-dependent-friends/module.modulemap4
-rw-r--r--test/Modules/Inputs/merge-friends/decl.h1
-rw-r--r--test/Modules/Inputs/merge-friends/friend.h2
-rw-r--r--test/Modules/Inputs/merge-friends/module.modulemap2
-rw-r--r--test/Modules/Inputs/merge-implicit-special-members/a.h1
-rw-r--r--test/Modules/Inputs/merge-implicit-special-members/b.h1
-rw-r--r--test/Modules/Inputs/merge-implicit-special-members/c.h3
-rw-r--r--test/Modules/Inputs/merge-implicit-special-members/module.modulemap3
-rw-r--r--test/Modules/Inputs/merge-name-for-linkage/a.h1
-rw-r--r--test/Modules/Inputs/merge-name-for-linkage/b.h1
-rw-r--r--test/Modules/Inputs/merge-name-for-linkage/module.modulemap2
-rw-r--r--test/Modules/Inputs/merge-nested-templates/a.h1
-rw-r--r--test/Modules/Inputs/merge-nested-templates/b.h2
-rw-r--r--test/Modules/Inputs/merge-nested-templates/c.h3
-rw-r--r--test/Modules/Inputs/merge-nested-templates/module.modulemap3
-rw-r--r--test/Modules/Inputs/merge-nested-templates/string.ii14
-rw-r--r--test/Modules/Inputs/merge-target-features/foo.h8
-rw-r--r--test/Modules/Inputs/merge-target-features/module.modulemap1
-rw-r--r--test/Modules/Inputs/merge-template-friend/def.h3
-rw-r--r--test/Modules/Inputs/merge-template-friend/friend.h4
-rw-r--r--test/Modules/Inputs/merge-template-friend/module.modulemap3
-rw-r--r--test/Modules/Inputs/merge-template-members/a1.h9
-rw-r--r--test/Modules/Inputs/merge-template-members/a2.h9
-rw-r--r--test/Modules/Inputs/merge-template-members/b1.h6
-rw-r--r--test/Modules/Inputs/merge-template-members/b2.h6
-rw-r--r--test/Modules/Inputs/merge-template-members/c.h14
-rw-r--r--test/Modules/Inputs/merge-template-members/def.h2
-rw-r--r--test/Modules/Inputs/merge-template-members/merge.h2
-rw-r--r--test/Modules/Inputs/merge-template-members/module.modulemap9
-rw-r--r--test/Modules/Inputs/merge-template-members/update.h2
-rw-r--r--test/Modules/Inputs/merge-vtable-codegen/a.h8
-rw-r--r--test/Modules/Inputs/merge-vtable-codegen/b.h17
-rw-r--r--test/Modules/Inputs/merge-vtable-codegen/c.h6
-rw-r--r--test/Modules/Inputs/merge-vtable-codegen/merge-vtable-codegen.modulemap11
-rw-r--r--test/Modules/Inputs/module.map4
-rw-r--r--test/Modules/Inputs/no-implicit-builds/b.h6
-rw-r--r--test/Modules/Inputs/no-implicit-builds/b.modulemap3
-rw-r--r--test/Modules/Inputs/preprocess/file.h3
-rw-r--r--test/Modules/Inputs/preprocess/fwd.h1
-rw-r--r--test/Modules/Inputs/preprocess/module.modulemap2
-rw-r--r--test/Modules/Inputs/redecl-add-after-load-decls.h6
-rw-r--r--test/Modules/Inputs/redecl-found-building-chains/a.h1
-rw-r--r--test/Modules/Inputs/redecl-found-building-chains/b.h2
-rw-r--r--test/Modules/Inputs/redecl-found-building-chains/c.h1
-rw-r--r--test/Modules/Inputs/redecl-found-building-chains/d.h6
-rw-r--r--test/Modules/Inputs/redecl-found-building-chains/module.modulemap4
-rw-r--r--test/Modules/Inputs/redecl-templates/a.h8
-rw-r--r--test/Modules/Inputs/redecl-templates/module.modulemap1
-rw-r--r--test/Modules/Inputs/redecls/a.h (renamed from test/Modules/redecls/a.h)0
-rw-r--r--test/Modules/Inputs/redecls/b.h (renamed from test/Modules/redecls/b.h)0
-rw-r--r--test/Modules/Inputs/redecls/module.map2
-rw-r--r--test/Modules/Inputs/self-import-header/af.framework/Headers/a1.h (renamed from test/Modules/self-import-header/af.framework/Headers/a1.h)0
-rw-r--r--test/Modules/Inputs/self-import-header/af.framework/Headers/a2.h (renamed from test/Modules/self-import-header/af.framework/Headers/a2.h)0
-rw-r--r--test/Modules/Inputs/self-import-header/af.framework/module.map (renamed from test/Modules/self-import-header/af.framework/module.map)0
-rw-r--r--test/Modules/Inputs/self-import-header/depend_builtin/h1.h (renamed from test/Modules/self-import-header/depend_builtin/h1.h)0
-rw-r--r--test/Modules/Inputs/self-import-header/depend_builtin/module.map (renamed from test/Modules/self-import-header/depend_builtin/module.map)0
-rw-r--r--test/Modules/Inputs/stress1/common.h74
-rw-r--r--test/Modules/Inputs/stress1/m00.h6
-rw-r--r--test/Modules/Inputs/stress1/m01.h10
-rw-r--r--test/Modules/Inputs/stress1/m02.h6
-rw-r--r--test/Modules/Inputs/stress1/m03.h6
-rw-r--r--test/Modules/Inputs/stress1/merge00.h30
-rw-r--r--test/Modules/Inputs/stress1/module.modulemap6
-rw-r--r--test/Modules/Inputs/submodule-visibility/a.h1
-rw-r--r--test/Modules/Inputs/submodule-visibility/b.h1
-rw-r--r--test/Modules/Inputs/submodule-visibility/cycle1.h8
-rw-r--r--test/Modules/Inputs/submodule-visibility/cycle2.h8
-rw-r--r--test/Modules/Inputs/submodule-visibility/module.modulemap6
-rw-r--r--test/Modules/Inputs/submodules-merge-defs/defs.h48
-rw-r--r--test/Modules/Inputs/submodules-merge-defs/empty.h0
-rw-r--r--test/Modules/Inputs/submodules-merge-defs/import-and-redefine.h5
-rw-r--r--test/Modules/Inputs/submodules-merge-defs/merged-defs.h1
-rw-r--r--test/Modules/Inputs/submodules-merge-defs/module.modulemap16
-rw-r--r--test/Modules/Inputs/submodules-merge-defs/use-defs.h1
-rw-r--r--test/Modules/Inputs/update-exception-spec/a.h2
-rw-r--r--test/Modules/Inputs/update-exception-spec/b.h3
-rw-r--r--test/Modules/Inputs/update-exception-spec/c.h3
-rw-r--r--test/Modules/Inputs/update-exception-spec/module.modulemap3
-rw-r--r--test/Modules/anon-namespace.cpp6
-rw-r--r--test/Modules/autolink.m4
-rw-r--r--test/Modules/crashes.m16
-rw-r--r--test/Modules/cstd.m2
-rw-r--r--test/Modules/cxx-decls.cpp2
-rw-r--r--test/Modules/cxx-dtor.cpp3
-rw-r--r--test/Modules/cxx-irgen.cpp22
-rw-r--r--test/Modules/cxx-lookup.cpp5
-rw-r--r--test/Modules/cxx-templates.cpp19
-rw-r--r--test/Modules/declare-use-compatible.cpp36
-rw-r--r--test/Modules/declare-use1.cpp3
-rw-r--r--test/Modules/declare-use5.cpp9
-rw-r--r--test/Modules/deferred-lookup.cpp6
-rw-r--r--test/Modules/dependency-gen.modulemap (renamed from test/Modules/dependency-gen.modulemap.cpp)8
-rw-r--r--test/Modules/diagnostics.modulemap14
-rw-r--r--test/Modules/empty.modulemap15
-rw-r--r--test/Modules/explicit-build-relpath.cpp2
-rw-r--r--test/Modules/explicit-build.cpp30
-rw-r--r--test/Modules/exponential-paths.cpp209
-rw-r--r--test/Modules/filename.cpp1
-rw-r--r--test/Modules/header-in-multiple-maps.cpp9
-rw-r--r--test/Modules/ignored_macros.m2
-rw-r--r--test/Modules/implementation-of-module.m2
-rw-r--r--test/Modules/include-relative.c1
-rw-r--r--test/Modules/initializer_list.cpp18
-rw-r--r--test/Modules/invalidate-identifiers.c4
-rw-r--r--test/Modules/linkage-merge.cpp6
-rw-r--r--test/Modules/macro-ambiguity.cpp136
-rw-r--r--test/Modules/macro-masking.cpp16
-rw-r--r--test/Modules/macro-reexport.cpp39
-rw-r--r--test/Modules/macro-reexport/macro-reexport.cpp30
-rw-r--r--test/Modules/macros.c30
-rw-r--r--test/Modules/macros2.c17
-rw-r--r--test/Modules/malformed.cpp4
-rw-r--r--test/Modules/merge-anon-in-template.cpp6
-rw-r--r--test/Modules/merge-decl-context.cpp28
-rw-r--r--test/Modules/merge-decl-order.cpp9
-rw-r--r--test/Modules/merge-dependent-friends.cpp4
-rw-r--r--test/Modules/merge-friends.cpp5
-rw-r--r--test/Modules/merge-implicit-special-members.cpp5
-rw-r--r--test/Modules/merge-name-for-linkage.cpp8
-rw-r--r--test/Modules/merge-nested-templates.cpp4
-rw-r--r--test/Modules/merge-target-features.cpp66
-rw-r--r--test/Modules/merge-template-friend.cpp22
-rw-r--r--test/Modules/merge-template-members.cpp27
-rw-r--r--test/Modules/merge-vtable-codegen.cpp24
-rw-r--r--test/Modules/modular_maps.cpp3
-rw-r--r--test/Modules/modulemap-locations.m2
-rw-r--r--test/Modules/no-implicit-builds.cpp33
-rw-r--r--test/Modules/odr.cpp8
-rw-r--r--test/Modules/pr21687.cpp3
-rw-r--r--test/Modules/preprocess.m12
-rw-r--r--test/Modules/private.cpp1
-rw-r--r--test/Modules/public-private.modulemap11
-rw-r--r--test/Modules/redecl-add-after-load.cpp17
-rw-r--r--test/Modules/redecl-found-building-chains.cpp6
-rw-r--r--test/Modules/redecl-templates.cpp32
-rw-r--r--test/Modules/redecls.m (renamed from test/Modules/redecls/main.m)8
-rw-r--r--test/Modules/relative-dep-gen.cpp14
-rw-r--r--test/Modules/requires.m4
-rw-r--r--test/Modules/self-import-header.m9
-rw-r--r--test/Modules/self-import-header/test.m8
-rw-r--r--test/Modules/stress1.cpp114
-rw-r--r--test/Modules/submodule-visibility-cycles.cpp10
-rw-r--r--test/Modules/submodule-visibility.cpp22
-rw-r--r--test/Modules/submodules-merge-defs.cpp56
-rw-r--r--test/Modules/templates-2.mm12
-rw-r--r--test/Modules/templates.mm8
-rw-r--r--test/Modules/update-exception-spec.cpp6
-rw-r--r--test/Modules/warn-unused-local-typedef.cpp1
-rw-r--r--test/OpenMP/atomic_ast_print.cpp6
-rw-r--r--test/OpenMP/atomic_capture_codegen.cpp1018
-rw-r--r--test/OpenMP/atomic_codegen.cpp114
-rw-r--r--test/OpenMP/atomic_messages.c271
-rw-r--r--test/OpenMP/atomic_messages.cpp517
-rw-r--r--test/OpenMP/atomic_read_codegen.c333
-rw-r--r--test/OpenMP/atomic_update_codegen.cpp941
-rw-r--r--test/OpenMP/atomic_write_codegen.c509
-rw-r--r--test/OpenMP/barrier_ast_print.cpp6
-rw-r--r--test/OpenMP/barrier_codegen.cpp10
-rw-r--r--test/OpenMP/barrier_messages.cpp2
-rw-r--r--test/OpenMP/critical_ast_print.cpp6
-rw-r--r--test/OpenMP/critical_codegen.cpp30
-rw-r--r--test/OpenMP/critical_messages.cpp2
-rw-r--r--test/OpenMP/flush_ast_print.cpp6
-rw-r--r--test/OpenMP/flush_codegen.cpp14
-rw-r--r--test/OpenMP/flush_messages.cpp2
-rw-r--r--test/OpenMP/for_ast_print.cpp6
-rw-r--r--test/OpenMP/for_codegen.cpp359
-rw-r--r--test/OpenMP/for_collapse_messages.cpp2
-rw-r--r--test/OpenMP/for_firstprivate_codegen.cpp280
-rw-r--r--test/OpenMP/for_firstprivate_messages.cpp29
-rw-r--r--test/OpenMP/for_lastprivate_codegen.cpp468
-rw-r--r--test/OpenMP/for_lastprivate_messages.cpp53
-rw-r--r--test/OpenMP/for_loop_messages.cpp24
-rw-r--r--test/OpenMP/for_misc_messages.c2
-rw-r--r--test/OpenMP/for_private_codegen.cpp188
-rw-r--r--test/OpenMP/for_private_messages.cpp20
-rw-r--r--test/OpenMP/for_reduction_codegen.cpp702
-rw-r--r--test/OpenMP/for_reduction_messages.cpp62
-rw-r--r--test/OpenMP/for_schedule_messages.cpp2
-rw-r--r--test/OpenMP/for_simd_aligned_messages.cpp2
-rw-r--r--test/OpenMP/for_simd_ast_print.cpp6
-rw-r--r--test/OpenMP/for_simd_collapse_messages.cpp2
-rw-r--r--test/OpenMP/for_simd_firstprivate_messages.cpp14
-rw-r--r--test/OpenMP/for_simd_lastprivate_messages.cpp44
-rw-r--r--test/OpenMP/for_simd_linear_messages.cpp12
-rw-r--r--test/OpenMP/for_simd_loop_messages.cpp7
-rw-r--r--test/OpenMP/for_simd_misc_messages.c2
-rw-r--r--test/OpenMP/for_simd_private_messages.cpp12
-rw-r--r--test/OpenMP/for_simd_reduction_messages.cpp60
-rw-r--r--test/OpenMP/for_simd_safelen_messages.cpp2
-rw-r--r--test/OpenMP/for_simd_schedule_messages.cpp2
-rw-r--r--test/OpenMP/linking.c38
-rw-r--r--test/OpenMP/master_ast_print.cpp6
-rw-r--r--test/OpenMP/master_codegen.cpp31
-rw-r--r--test/OpenMP/master_messages.cpp2
-rw-r--r--test/OpenMP/nesting_of_regions.cpp128
-rw-r--r--test/OpenMP/openmp_common.c2
-rw-r--r--test/OpenMP/ordered_ast_print.cpp6
-rw-r--r--test/OpenMP/ordered_codegen.cpp217
-rw-r--r--test/OpenMP/ordered_messages.cpp2
-rw-r--r--test/OpenMP/parallel_ast_print.cpp6
-rw-r--r--test/OpenMP/parallel_codegen.cpp99
-rw-r--r--test/OpenMP/parallel_copyin_codegen.cpp296
-rw-r--r--test/OpenMP/parallel_copyin_messages.cpp26
-rw-r--r--test/OpenMP/parallel_default_messages.cpp2
-rw-r--r--test/OpenMP/parallel_firstprivate_codegen.cpp166
-rw-r--r--test/OpenMP/parallel_firstprivate_messages.cpp12
-rw-r--r--test/OpenMP/parallel_for_ast_print.cpp6
-rw-r--r--test/OpenMP/parallel_for_codegen.cpp400
-rw-r--r--test/OpenMP/parallel_for_collapse_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_copyin_messages.cpp28
-rw-r--r--test/OpenMP/parallel_for_default_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_firstprivate_messages.cpp12
-rw-r--r--test/OpenMP/parallel_for_if_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_lastprivate_messages.cpp48
-rw-r--r--test/OpenMP/parallel_for_loop_messages.cpp7
-rw-r--r--test/OpenMP/parallel_for_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_misc_messages.c2
-rw-r--r--test/OpenMP/parallel_for_num_threads_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_private_messages.cpp12
-rw-r--r--test/OpenMP/parallel_for_proc_bind_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_reduction_messages.cpp66
-rw-r--r--test/OpenMP/parallel_for_schedule_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_aligned_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_ast_print.cpp6
-rw-r--r--test/OpenMP/parallel_for_simd_collapse_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_copyin_messages.cpp28
-rw-r--r--test/OpenMP/parallel_for_simd_default_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_firstprivate_messages.cpp12
-rw-r--r--test/OpenMP/parallel_for_simd_if_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_lastprivate_messages.cpp47
-rw-r--r--test/OpenMP/parallel_for_simd_linear_messages.cpp12
-rw-r--r--test/OpenMP/parallel_for_simd_loop_messages.cpp7
-rw-r--r--test/OpenMP/parallel_for_simd_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_misc_messages.c2
-rw-r--r--test/OpenMP/parallel_for_simd_num_threads_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_private_messages.cpp12
-rw-r--r--test/OpenMP/parallel_for_simd_proc_bind_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_reduction_messages.cpp66
-rw-r--r--test/OpenMP/parallel_for_simd_safelen_messages.cpp2
-rw-r--r--test/OpenMP/parallel_for_simd_schedule_messages.cpp2
-rw-r--r--test/OpenMP/parallel_if_codegen.cpp14
-rw-r--r--test/OpenMP/parallel_if_messages.cpp2
-rw-r--r--test/OpenMP/parallel_messages.cpp2
-rw-r--r--test/OpenMP/parallel_num_threads_codegen.cpp22
-rw-r--r--test/OpenMP/parallel_num_threads_messages.cpp6
-rw-r--r--test/OpenMP/parallel_private_codegen.cpp47
-rw-r--r--test/OpenMP/parallel_private_messages.cpp16
-rw-r--r--test/OpenMP/parallel_proc_bind_messages.cpp2
-rw-r--r--test/OpenMP/parallel_reduction_codegen.cpp683
-rw-r--r--test/OpenMP/parallel_reduction_messages.cpp66
-rw-r--r--test/OpenMP/parallel_sections_ast_print.cpp6
-rw-r--r--test/OpenMP/parallel_sections_codegen.cpp98
-rw-r--r--test/OpenMP/parallel_sections_copyin_messages.cpp28
-rw-r--r--test/OpenMP/parallel_sections_default_messages.cpp2
-rw-r--r--test/OpenMP/parallel_sections_firstprivate_messages.cpp12
-rw-r--r--test/OpenMP/parallel_sections_if_messages.cpp2
-rw-r--r--test/OpenMP/parallel_sections_lastprivate_messages.cpp47
-rw-r--r--test/OpenMP/parallel_sections_messages.cpp2
-rw-r--r--test/OpenMP/parallel_sections_misc_messages.c2
-rw-r--r--test/OpenMP/parallel_sections_num_threads_messages.cpp2
-rw-r--r--test/OpenMP/parallel_sections_private_messages.cpp12
-rw-r--r--test/OpenMP/parallel_sections_proc_bind_messages.cpp2
-rw-r--r--test/OpenMP/parallel_sections_reduction_messages.cpp66
-rw-r--r--test/OpenMP/parallel_sections_shared_messages.cpp12
-rw-r--r--test/OpenMP/parallel_shared_messages.cpp12
-rw-r--r--test/OpenMP/predefined_macro.c22
-rw-r--r--test/OpenMP/sections_ast_print.cpp6
-rw-r--r--test/OpenMP/sections_codegen.cpp105
-rw-r--r--test/OpenMP/sections_firstprivate_codegen.cpp277
-rw-r--r--test/OpenMP/sections_firstprivate_messages.cpp12
-rw-r--r--test/OpenMP/sections_lastprivate_codegen.cpp332
-rw-r--r--test/OpenMP/sections_lastprivate_messages.cpp43
-rw-r--r--test/OpenMP/sections_misc_messages.c2
-rw-r--r--test/OpenMP/sections_private_codegen.cpp192
-rw-r--r--test/OpenMP/sections_private_messages.cpp12
-rw-r--r--test/OpenMP/sections_reduction_codegen.cpp470
-rw-r--r--test/OpenMP/sections_reduction_messages.cpp60
-rw-r--r--test/OpenMP/simd_aligned_messages.cpp2
-rw-r--r--test/OpenMP/simd_ast_print.cpp6
-rw-r--r--test/OpenMP/simd_codegen.cpp227
-rw-r--r--test/OpenMP/simd_collapse_messages.cpp2
-rw-r--r--test/OpenMP/simd_lastprivate_messages.cpp35
-rw-r--r--test/OpenMP/simd_linear_messages.cpp14
-rw-r--r--test/OpenMP/simd_loop_messages.cpp7
-rw-r--r--test/OpenMP/simd_metadata.c20
-rw-r--r--test/OpenMP/simd_misc_messages.c2
-rw-r--r--test/OpenMP/simd_private_messages.cpp12
-rw-r--r--test/OpenMP/simd_reduction_messages.cpp60
-rw-r--r--test/OpenMP/simd_safelen_messages.cpp2
-rw-r--r--test/OpenMP/single_ast_print.cpp26
-rw-r--r--test/OpenMP/single_codegen.cpp189
-rw-r--r--test/OpenMP/single_copyprivate_messages.cpp49
-rw-r--r--test/OpenMP/single_firstprivate_codegen.cpp251
-rw-r--r--test/OpenMP/single_firstprivate_messages.cpp12
-rw-r--r--test/OpenMP/single_misc_messages.c2
-rw-r--r--test/OpenMP/single_private_codegen.cpp182
-rw-r--r--test/OpenMP/single_private_messages.cpp12
-rw-r--r--test/OpenMP/target_ast_print.cpp6
-rw-r--r--test/OpenMP/target_if_messages.cpp2
-rw-r--r--test/OpenMP/target_messages.cpp2
-rw-r--r--test/OpenMP/task_ast_print.cpp6
-rw-r--r--test/OpenMP/task_codegen.cpp102
-rw-r--r--test/OpenMP/task_default_messages.cpp2
-rw-r--r--test/OpenMP/task_final_messages.cpp2
-rw-r--r--test/OpenMP/task_firstprivate_codegen.cpp433
-rw-r--r--test/OpenMP/task_firstprivate_messages.cpp17
-rw-r--r--test/OpenMP/task_if_codegen.cpp133
-rw-r--r--test/OpenMP/task_if_messages.cpp2
-rw-r--r--test/OpenMP/task_messages.cpp2
-rw-r--r--test/OpenMP/task_private_codegen.cpp388
-rw-r--r--test/OpenMP/task_private_messages.cpp21
-rw-r--r--test/OpenMP/task_shared_messages.cpp12
-rw-r--r--test/OpenMP/taskwait_ast_print.cpp6
-rw-r--r--test/OpenMP/taskwait_codegen.cpp31
-rw-r--r--test/OpenMP/taskwait_messages.cpp2
-rw-r--r--test/OpenMP/taskyield_ast_print.cpp6
-rw-r--r--test/OpenMP/taskyield_codegen.cpp39
-rw-r--r--test/OpenMP/taskyield_messages.cpp2
-rw-r--r--test/OpenMP/teams_ast_print.cpp6
-rw-r--r--test/OpenMP/teams_default_messages.cpp2
-rw-r--r--test/OpenMP/teams_firstprivate_messages.cpp12
-rw-r--r--test/OpenMP/teams_messages.cpp2
-rw-r--r--test/OpenMP/teams_private_messages.cpp16
-rw-r--r--test/OpenMP/teams_reduction_messages.cpp66
-rw-r--r--test/OpenMP/teams_shared_messages.cpp12
-rw-r--r--test/OpenMP/threadprivate_ast_print.cpp8
-rw-r--r--test/OpenMP/threadprivate_codegen.cpp405
-rw-r--r--test/OpenMP/threadprivate_messages.cpp29
-rw-r--r--test/PCH/Inputs/modules/Foo.h1
-rw-r--r--test/PCH/Inputs/modules/module.modulemap3
-rw-r--r--test/PCH/chain-openmp-threadprivate.cpp4
-rw-r--r--test/PCH/chain-typo-corrections.cpp12
-rw-r--r--test/PCH/check-deserializations.cpp9
-rw-r--r--test/PCH/cxx-templates.cpp2
-rw-r--r--test/PCH/cxx11-lambdas.mm2
-rw-r--r--test/PCH/cxx1y-lambdas.mm116
-rw-r--r--test/PCH/debug-info-limited-struct.c4
-rw-r--r--test/PCH/emit-pth.c7
-rw-r--r--test/PCH/headersearch.cpp14
-rw-r--r--test/PCH/module-hash-difference.m8
-rw-r--r--test/Parser/DelayedTemplateParsing.cpp4
-rw-r--r--test/Parser/MicrosoftExtensions.c9
-rw-r--r--test/Parser/MicrosoftExtensions.cpp29
-rw-r--r--test/Parser/altivec.c12
-rw-r--r--test/Parser/annotation-token-in-lexed-body.cpp5
-rw-r--r--test/Parser/atomic.c2
-rw-r--r--test/Parser/brackets.c8
-rw-r--r--test/Parser/brackets.cpp32
-rw-r--r--test/Parser/crash-report.c4
-rw-r--r--test/Parser/cxx-altivec.cpp24
-rw-r--r--test/Parser/cxx-ambig-init-templ.cpp1
-rw-r--r--test/Parser/cxx-class.cpp39
-rw-r--r--test/Parser/cxx0x-ambig.cpp4
-rw-r--r--test/Parser/cxx0x-attributes.cpp14
-rw-r--r--test/Parser/cxx0x-override-control-keywords.cpp6
-rw-r--r--test/Parser/extra-semi.cpp14
-rw-r--r--test/Parser/ms-inline-asm.c2
-rw-r--r--test/Parser/ms-seh.c24
-rw-r--r--test/Parser/no-gnu-inline-asm.c15
-rw-r--r--test/Parser/objcxx0x-lambda-expressions.mm13
-rw-r--r--test/Parser/opencl-atomics-cl20.cl56
-rw-r--r--test/Parser/recovery.cpp30
-rw-r--r--test/Preprocessor/_Pragma-location.c12
-rw-r--r--test/Preprocessor/aarch64-target-features.c10
-rw-r--r--test/Preprocessor/annotate_in_macro_arg.c8
-rw-r--r--test/Preprocessor/arm-target-features.c36
-rw-r--r--test/Preprocessor/has_attribute.c5
-rw-r--r--test/Preprocessor/has_include.c12
-rw-r--r--test/Preprocessor/init.c821
-rw-r--r--test/Preprocessor/macro_paste_msextensions.c7
-rw-r--r--test/Preprocessor/pr19649-signed-wchar_t.c6
-rw-r--r--test/Preprocessor/pr19649-unsigned-wchar_t.c6
-rw-r--r--test/Preprocessor/pragma_microsoft.c46
-rw-r--r--test/Preprocessor/pragma_ps4.c27
-rw-r--r--test/Preprocessor/predefined-arch-macros.c79
-rw-r--r--test/Preprocessor/stdint.c20
-rw-r--r--test/Preprocessor/x86_target_features.c4
-rw-r--r--test/Profile/Inputs/c-captured.proftext2
-rw-r--r--test/Profile/Inputs/cxx-rangefor.proftext13
-rw-r--r--test/Profile/Inputs/cxx-throws.proftext12
-rw-r--r--test/Profile/c-captured.c8
-rw-r--r--test/Profile/c-general.c37
-rw-r--r--test/Profile/c-generate.c10
-rw-r--r--test/Profile/c-linkage-available_externally.c2
-rw-r--r--test/Profile/c-linkage.c26
-rw-r--r--test/Profile/c-unreachable-after-switch.c2
-rw-r--r--test/Profile/cxx-lambda.cpp10
-rw-r--r--test/Profile/cxx-linkage.cpp24
-rw-r--r--test/Profile/cxx-rangefor.cpp44
-rw-r--r--test/Profile/cxx-throws.cpp32
-rw-r--r--test/Profile/cxx-virtual-destructor-calls.cpp30
-rw-r--r--test/Profile/objc-general.m6
-rw-r--r--test/Profile/profile-does-not-exist.c4
-rw-r--r--test/Rewriter/missing-dllimport.c2
-rw-r--r--test/Rewriter/objc-modern-boxing.mm18
-rw-r--r--test/Rewriter/objc-modern-numeric-literal.mm22
-rw-r--r--test/Rewriter/properties.m4
-rw-r--r--test/Rewriter/rewrite-captured-nested-bvar.c2
-rw-r--r--test/Rewriter/rewrite-modern-array-literal.mm2
-rw-r--r--test/Rewriter/rewrite-modern-captured-nested-bvar.mm2
-rw-r--r--test/Rewriter/rewrite-modern-container-literal.mm2
-rwxr-xr-xtest/Rewriter/rewrite-nested-property-in-blocks.mm8
-rw-r--r--test/Sema/MicrosoftCompatibility-x64.c13
-rw-r--r--test/Sema/MicrosoftCompatibility.c2
-rw-r--r--test/Sema/__try.c116
-rw-r--r--test/Sema/alias-redefinition.c23
-rw-r--r--test/Sema/align-systemz.c17
-rw-r--r--test/Sema/align-x86.c2
-rw-r--r--test/Sema/anonymous-struct-union.c7
-rw-r--r--test/Sema/assign.c5
-rw-r--r--test/Sema/atomic-compare.c5
-rw-r--r--test/Sema/attr-availability-android.c31
-rw-r--r--test/Sema/attr-availability-app-extensions.c18
-rw-r--r--test/Sema/attr-availability.c106
-rw-r--r--test/Sema/attr-capabilities.c4
-rw-r--r--test/Sema/attr-flag-enum.c73
-rw-r--r--test/Sema/attr-format.c7
-rw-r--r--test/Sema/attr-malloc.c10
-rw-r--r--test/Sema/attr-naked.cpp15
-rw-r--r--test/Sema/bitfield.c4
-rw-r--r--test/Sema/block-misc.c4
-rw-r--r--test/Sema/builtin-assume.c14
-rw-r--r--test/Sema/builtins-ppc.c51
-rw-r--r--test/Sema/builtins-x86.c47
-rw-r--r--test/Sema/builtins.cl8
-rw-r--r--test/Sema/callingconv.c2
-rw-r--r--test/Sema/complex-int.c2
-rw-r--r--test/Sema/crash-invalid-builtin.c4
-rw-r--r--test/Sema/dllexport.c8
-rw-r--r--test/Sema/dllimport.c8
-rw-r--r--test/Sema/format-strings-freebsd.c40
-rw-r--r--test/Sema/function.c6
-rw-r--r--test/Sema/i386-linux-android.c6
-rw-r--r--test/Sema/inline-asm-validate-aarch64.c16
-rw-r--r--test/Sema/integer-overflow.c147
-rw-r--r--test/Sema/invalid-assignment-constant-address-space.c8
-rw-r--r--test/Sema/member-reference.c2
-rw-r--r--test/Sema/ms-inline-asm.c2
-rw-r--r--test/Sema/parentheses.c10
-rw-r--r--test/Sema/pointer-addition.c6
-rw-r--r--test/Sema/pr9812.c (renamed from test/SemaCXX/pr9812.c)2
-rw-r--r--test/Sema/pragma-ms_struct.c2
-rw-r--r--test/Sema/pragma-section-invalid.c7
-rw-r--r--test/Sema/statements.c15
-rw-r--r--test/Sema/struct-packed-align.c7
-rw-r--r--test/Sema/typo-correction.c12
-rw-r--r--test/Sema/vla.c3
-rw-r--r--test/Sema/warn-documentation-fixits.cpp7
-rw-r--r--test/Sema/warn-documentation-unknown-command.cpp11
-rw-r--r--test/Sema/warn-documentation.cpp6
-rw-r--r--test/Sema/warn-main.c2
-rw-r--r--test/Sema/warn-shift-negative.c6
-rw-r--r--test/Sema/warn-string-conversion.c25
-rw-r--r--test/Sema/warn-tautological-compare.c9
-rw-r--r--test/Sema/wchar.c2
-rw-r--r--test/Sema/x86-builtin-palignr.c7
-rw-r--r--test/Sema/x86_64-linux-android.c10
-rw-r--r--test/SemaCUDA/asm-constraints-device.cu24
-rw-r--r--test/SemaCUDA/asm-constraints-mixed.cu15
-rw-r--r--test/SemaCUDA/cuda-builtin-vars.cu57
-rw-r--r--test/SemaCUDA/function-target-disabled-check.cu26
-rw-r--r--test/SemaCUDA/function-target-hd.cu71
-rw-r--r--test/SemaCUDA/function-target.cu38
-rw-r--r--test/SemaCUDA/launch_bounds.cu50
-rw-r--r--test/SemaCUDA/qualifiers.cu32
-rw-r--r--test/SemaCXX/MicrosoftCompatibility.cpp14
-rw-r--r--test/SemaCXX/MicrosoftExtensions.cpp12
-rw-r--r--test/SemaCXX/MicrosoftSuper.cpp9
-rw-r--r--test/SemaCXX/PR21679.cpp13
-rw-r--r--test/SemaCXX/PR23334.cpp10
-rw-r--r--test/SemaCXX/PR9461.cpp4
-rw-r--r--test/SemaCXX/__try.cpp2
-rw-r--r--test/SemaCXX/accessible-base.cpp23
-rw-r--r--test/SemaCXX/addr-of-overloaded-function.cpp8
-rw-r--r--test/SemaCXX/alignof.cpp20
-rw-r--r--test/SemaCXX/anonymous-union.cpp11
-rw-r--r--test/SemaCXX/ast-print.cpp8
-rw-r--r--test/SemaCXX/atomic-type.cpp11
-rw-r--r--test/SemaCXX/attr-flag-enum-reject.cpp4
-rw-r--r--test/SemaCXX/attr-no-sanitize.cpp29
-rw-r--r--test/SemaCXX/attr-selectany.cpp16
-rw-r--r--test/SemaCXX/builtins-arm.cpp2
-rw-r--r--test/SemaCXX/captured-statements.cpp4
-rw-r--r--test/SemaCXX/class-layout.cpp4
-rw-r--r--test/SemaCXX/class.cpp6
-rw-r--r--test/SemaCXX/constant-expression-cxx11.cpp12
-rw-r--r--test/SemaCXX/constexpr-value-init.cpp6
-rw-r--r--test/SemaCXX/constructor-initializer.cpp7
-rw-r--r--test/SemaCXX/crashes.cpp13
-rw-r--r--test/SemaCXX/cxx0x-constexpr-const.cpp4
-rw-r--r--test/SemaCXX/cxx0x-cursory-default-delete.cpp24
-rw-r--r--test/SemaCXX/cxx0x-defaulted-functions.cpp2
-rw-r--r--test/SemaCXX/cxx0x-initializer-constructor.cpp6
-rw-r--r--test/SemaCXX/cxx0x-initializer-references.cpp11
-rw-r--r--test/SemaCXX/cxx0x-initializer-scalars.cpp10
-rw-r--r--test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp15
-rw-r--r--test/SemaCXX/cxx0x-return-init-list.cpp2
-rw-r--r--test/SemaCXX/cxx11-ast-print.cpp5
-rw-r--r--test/SemaCXX/cxx11-call-to-deleted-constructor.cpp40
-rw-r--r--test/SemaCXX/cxx11-crashes.cpp17
-rw-r--r--test/SemaCXX/cxx11-gnu-attrs.cpp3
-rw-r--r--test/SemaCXX/cxx1y-constexpr-not-const.cpp2
-rw-r--r--test/SemaCXX/cxx1y-deduced-return-type.cpp4
-rw-r--r--test/SemaCXX/cxx1y-generic-lambdas.cpp6
-rw-r--r--test/SemaCXX/cxx1y-init-captures.cpp25
-rw-r--r--test/SemaCXX/cxx1y-sized-deallocation.cpp2
-rw-r--r--test/SemaCXX/cxx1y-variable-templates_in_class.cpp4
-rw-r--r--test/SemaCXX/cxx98-compat.cpp4
-rw-r--r--test/SemaCXX/decl-microsoft-call-conv.cpp22
-rw-r--r--test/SemaCXX/declspec-thread.cpp17
-rw-r--r--test/SemaCXX/default-assignment-operator.cpp2
-rw-r--r--test/SemaCXX/delete-mismatch.h15
-rw-r--r--test/SemaCXX/delete.cpp131
-rw-r--r--test/SemaCXX/deleted-function.cpp28
-rw-r--r--test/SemaCXX/derived-to-base-ambig.cpp4
-rw-r--r--test/SemaCXX/destructor.cpp17
-rw-r--r--test/SemaCXX/devirtualize-vtable-marking.cpp15
-rw-r--r--test/SemaCXX/dllexport-pr22591.cpp25
-rw-r--r--test/SemaCXX/dllexport.cpp23
-rw-r--r--test/SemaCXX/dllimport.cpp8
-rw-r--r--test/SemaCXX/empty-class-layout.cpp2
-rw-r--r--test/SemaCXX/enum-bitfield.cpp8
-rw-r--r--test/SemaCXX/err_reference_bind_drops_quals.cpp43
-rw-r--r--test/SemaCXX/err_typecheck_assign_const.cpp124
-rw-r--r--test/SemaCXX/err_typecheck_assign_const_filecheck.cpp252
-rw-r--r--test/SemaCXX/exceptions-seh.cpp115
-rw-r--r--test/SemaCXX/exceptions.cpp108
-rw-r--r--test/SemaCXX/explicit.cpp14
-rw-r--r--test/SemaCXX/for-range-examples.cpp4
-rw-r--r--test/SemaCXX/format-strings-0x-nopedantic.cpp10
-rw-r--r--test/SemaCXX/format-strings-0x.cpp3
-rw-r--r--test/SemaCXX/format-strings.cpp15
-rw-r--r--test/SemaCXX/friend.cpp14
-rw-r--r--test/SemaCXX/function-type-qual.cpp4
-rw-r--r--test/SemaCXX/functional-cast.cpp5
-rw-r--r--test/SemaCXX/generalized-deprecated.cpp14
-rw-r--r--test/SemaCXX/increment-decrement.cpp4
-rw-r--r--test/SemaCXX/integer-overflow.cpp166
-rw-r--r--test/SemaCXX/linkage.cpp4
-rw-r--r--test/SemaCXX/member-expr.cpp8
-rw-r--r--test/SemaCXX/member-pointer-ms.cpp14
-rw-r--r--test/SemaCXX/member-pointer.cpp4
-rw-r--r--test/SemaCXX/microsoft-dtor-lookup.cpp3
-rw-r--r--test/SemaCXX/microsoft-new-delete.cpp2
-rw-r--r--test/SemaCXX/ms-novtable.cpp7
-rw-r--r--test/SemaCXX/ms_integer_suffix.cpp5
-rw-r--r--test/SemaCXX/ms_mutable_reference_member.cpp13
-rw-r--r--test/SemaCXX/nested-name-spec.cpp37
-rw-r--r--test/SemaCXX/new-array-size-conv.cpp3
-rw-r--r--test/SemaCXX/new-delete.cpp8
-rw-r--r--test/SemaCXX/overload-decl.cpp6
-rw-r--r--test/SemaCXX/pseudo-destructors.cpp8
-rw-r--r--test/SemaCXX/references.cpp4
-rw-r--r--test/SemaCXX/reinterpret-cast.cpp10
-rw-r--r--test/SemaCXX/scope-check.cpp191
-rw-r--r--test/SemaCXX/static-cast.cpp10
-rw-r--r--test/SemaCXX/type-traits.cpp3
-rw-r--r--test/SemaCXX/typo-correction-cxx11.cpp34
-rw-r--r--test/SemaCXX/typo-correction-delayed.cpp26
-rw-r--r--test/SemaCXX/typo-correction.cpp6
-rw-r--r--test/SemaCXX/uninitialized.cpp54
-rw-r--r--test/SemaCXX/unreachable-catch-clauses.cpp7
-rw-r--r--test/SemaCXX/virtual-override.cpp2
-rw-r--r--test/SemaCXX/vla.cpp3
-rw-r--r--test/SemaCXX/warn-bad-memaccess.cpp6
-rw-r--r--test/SemaCXX/warn-consumed-analysis.cpp12
-rw-r--r--test/SemaCXX/warn-empty-body.cpp7
-rw-r--r--test/SemaCXX/warn-memset-bad-sizeof.cpp2
-rw-r--r--test/SemaCXX/warn-missing-prototypes.cpp4
-rw-r--r--test/SemaCXX/warn-pessmizing-move.cpp203
-rw-r--r--test/SemaCXX/warn-range-loop-analysis.cpp299
-rw-r--r--test/SemaCXX/warn-redundant-move.cpp92
-rw-r--r--test/SemaCXX/warn-reinterpret-base-class.cpp2
-rw-r--r--test/SemaCXX/warn-thread-safety-analysis.cpp307
-rw-r--r--test/SemaCXX/warn-unused-local-typedef-serialize.cpp1
-rw-r--r--test/SemaCXX/warn-unused-result.cpp23
-rw-r--r--test/SemaCXX/warn-weak-vtables.cpp26
-rw-r--r--test/SemaObjC/arc-bridged-cast.m27
-rw-r--r--test/SemaObjC/arc-decls.m35
-rw-r--r--test/SemaObjC/arc-dict-bridged-cast.m13
-rw-r--r--test/SemaObjC/arc-unbridged-cast.m7
-rw-r--r--test/SemaObjC/arc.m4
-rw-r--r--test/SemaObjC/attr-availability.m119
-rw-r--r--test/SemaObjC/attr-deprecated.m11
-rw-r--r--test/SemaObjC/attr-designated-init.m8
-rw-r--r--test/SemaObjC/attr-malloc.m10
-rw-r--r--test/SemaObjC/circular-container.m146
-rw-r--r--test/SemaObjC/class-unavail-warning.m31
-rw-r--r--test/SemaObjC/debugger-support.m4
-rw-r--r--test/SemaObjC/format-ostrace-warning.m54
-rw-r--r--test/SemaObjC/iboutlet.m1
-rw-r--r--test/SemaObjC/multiple-method-names.m19
-rw-r--r--test/SemaObjC/multiple-property-deprecated-decl.m19
-rw-r--r--test/SemaObjC/nonnull.m2
-rw-r--r--test/SemaObjC/objc-array-literal.m12
-rw-r--r--test/SemaObjC/objc-dictionary-literal.m14
-rw-r--r--test/SemaObjC/objc-independent-class-attribute.m36
-rw-r--r--test/SemaObjC/objc-literal-nsnumber.m18
-rw-r--r--test/SemaObjC/objcbridge-attribute-arc.m21
-rw-r--r--test/SemaObjC/objcbridge-attribute.m35
-rw-r--r--test/SemaObjC/objcbridgemutable-attribute.m3
-rw-r--r--test/SemaObjC/property-9.m15
-rw-r--r--test/SemaObjC/property-deprecated-warning.m66
-rw-r--r--test/SemaObjC/selector-3.m21
-rw-r--r--test/SemaObjC/super-property-notation.m6
-rw-r--r--test/SemaObjC/undef-arg-super-method-call.m23
-rw-r--r--test/SemaObjC/unused.m30
-rw-r--r--test/SemaObjC/warn-strict-selector-match.m37
-rw-r--r--test/SemaObjC/weak-receiver-warn.m100
-rw-r--r--test/SemaObjCXX/arc-bridged-cast.mm18
-rw-r--r--test/SemaObjCXX/objcbridge-attribute-arc.mm4
-rw-r--r--test/SemaObjCXX/objcbridge-attribute.mm5
-rw-r--r--test/SemaObjCXX/objcbridge-static-cast.mm3
-rw-r--r--test/SemaObjCXX/propert-dot-error.mm4
-rw-r--r--test/SemaOpenCL/cond.cl132
-rw-r--r--test/SemaOpenCL/extension-fp64-cl1.1.cl19
-rw-r--r--test/SemaOpenCL/optional-core-fp64-cl1.2.cl20
-rw-r--r--test/SemaOpenCL/optional-core-fp64-cl2.0.cl20
-rw-r--r--test/SemaOpenCL/shifts.cl76
-rw-r--r--test/SemaTemplate/anonymous-union.cpp4
-rw-r--r--test/SemaTemplate/class-template-decl.cpp6
-rw-r--r--test/SemaTemplate/deduction.cpp5
-rw-r--r--test/SemaTemplate/dependent-names.cpp5
-rw-r--r--test/SemaTemplate/dependent-type-identity.cpp4
-rw-r--r--test/SemaTemplate/destructor-template.cpp10
-rw-r--r--test/SemaTemplate/explicit-specialization-member.cpp2
-rw-r--r--test/SemaTemplate/ext_ms_template_spec.cpp33
-rw-r--r--test/SemaTemplate/friend.cpp16
-rw-r--r--test/SemaTemplate/instantiate-local-class.cpp200
-rw-r--r--test/SemaTemplate/instantiate-non-dependent-types.cpp2
-rw-r--r--test/SemaTemplate/instantiate-static-var.cpp12
-rw-r--r--test/SemaTemplate/ms-lookup-template-base-classes.cpp69
-rw-r--r--test/SemaTemplate/virtual-member-functions.cpp4
-rw-r--r--test/VFS/Inputs/UsesFoo.framework/Headers/UsesFoo.h1
-rw-r--r--test/VFS/Inputs/UsesFoo.framework/Modules/module.modulemap4
-rw-r--r--test/VFS/external-names.c4
-rw-r--r--test/VFS/umbrella-mismatch.m2
-rw-r--r--test/lit.cfg10
-rw-r--r--test/lit.site.cfg.in1
-rw-r--r--tools/CMakeLists.txt1
-rw-r--r--tools/c-index-test/c-index-test.c59
-rw-r--r--tools/clang-format-vs/CMakeLists.txt4
-rw-r--r--tools/clang-format-vs/ClangFormat/ClangFormat.csproj6
-rw-r--r--tools/clang-format-vs/ClangFormat/Resources.Designer.cs3
-rw-r--r--tools/clang-format/CMakeLists.txt10
-rw-r--r--tools/clang-format/ClangFormat.cpp28
-rwxr-xr-xtools/clang-format/clang-format-diff.py2
-rw-r--r--tools/clang-format/clang-format.el42
-rw-r--r--tools/clang-format/clang-format.py5
-rw-r--r--tools/clang-format/fuzzer/CMakeLists.txt11
-rw-r--r--tools/clang-format/fuzzer/ClangFormatFuzzer.cpp25
-rw-r--r--tools/clang-fuzzer/CMakeLists.txt20
-rw-r--r--tools/clang-fuzzer/ClangFuzzer.cpp43
-rw-r--r--tools/driver/CMakeLists.txt2
-rw-r--r--tools/driver/cc1as_main.cpp51
-rw-r--r--tools/libclang/CIndex.cpp125
-rw-r--r--tools/libclang/CIndexCodeCompletion.cpp9
-rw-r--r--tools/libclang/CIndexDiagnostic.cpp6
-rw-r--r--tools/libclang/CIndexDiagnostic.h6
-rw-r--r--tools/libclang/CIndexer.h39
-rw-r--r--tools/libclang/CMakeLists.txt5
-rw-r--r--tools/libclang/CXCursor.cpp32
-rw-r--r--tools/libclang/CXCursor.h21
-rw-r--r--tools/libclang/CXLoadedDiagnostic.cpp3
-rw-r--r--tools/libclang/CXLoadedDiagnostic.h4
-rw-r--r--tools/libclang/CXString.h2
-rw-r--r--tools/libclang/CXType.cpp81
-rw-r--r--tools/libclang/Indexing.cpp11
-rw-r--r--tools/libclang/IndexingContext.h4
-rw-r--r--tools/libclang/libclang.exports3
-rwxr-xr-xtools/scan-build/ccc-analyzer8
-rw-r--r--unittests/AST/DeclPrinterTest.cpp2
-rw-r--r--unittests/AST/ExternalASTSourceTest.cpp10
-rw-r--r--unittests/AST/MatchVerifier.h12
-rw-r--r--unittests/AST/NamedDeclPrinterTest.cpp2
-rw-r--r--unittests/AST/SourceLocationTest.cpp50
-rw-r--r--unittests/AST/StmtPrinterTest.cpp2
-rw-r--r--unittests/ASTMatchers/ASTMatchersTest.cpp127
-rw-r--r--unittests/ASTMatchers/ASTMatchersTest.h30
-rw-r--r--unittests/ASTMatchers/Dynamic/CMakeLists.txt1
-rw-r--r--unittests/ASTMatchers/Dynamic/ParserTest.cpp7
-rw-r--r--unittests/Basic/FileManagerTest.cpp1
-rw-r--r--unittests/Basic/SourceManagerTest.cpp13
-rw-r--r--unittests/Basic/VirtualFileSystemTest.cpp4
-rw-r--r--unittests/CMakeLists.txt2
-rw-r--r--unittests/CodeGen/BufferSourceTest.cpp1
-rw-r--r--unittests/Driver/MultilibTest.cpp10
-rw-r--r--unittests/Format/FormatTest.cpp1644
-rw-r--r--unittests/Format/FormatTestJS.cpp294
-rw-r--r--unittests/Format/FormatTestJava.cpp15
-rw-r--r--unittests/Format/FormatTestProto.cpp13
-rw-r--r--unittests/Frontend/FrontendActionTest.cpp9
-rw-r--r--unittests/Lex/LexerTest.cpp3
-rw-r--r--unittests/Lex/PPCallbacksTest.cpp24
-rw-r--r--unittests/Lex/PPConditionalDirectiveRecordTest.cpp3
-rw-r--r--unittests/Makefile4
-rw-r--r--unittests/Rewrite/CMakeLists.txt10
-rw-r--r--unittests/Rewrite/Makefile16
-rw-r--r--unittests/Rewrite/RewriteBufferTest.cpp51
-rw-r--r--unittests/Sema/ExternalSemaSourceTest.cpp31
-rw-r--r--unittests/StaticAnalyzer/AnalyzerOptionsTest.cpp74
-rw-r--r--unittests/StaticAnalyzer/CMakeLists.txt13
-rw-r--r--unittests/StaticAnalyzer/Makefile15
-rw-r--r--unittests/Tooling/CommentHandlerTest.cpp12
-rw-r--r--unittests/Tooling/CompilationDatabaseTest.cpp4
-rw-r--r--unittests/Tooling/RefactoringTest.cpp8
-rw-r--r--unittests/Tooling/TestVisitor.h8
-rw-r--r--unittests/Tooling/ToolingTest.cpp26
-rw-r--r--unittests/libclang/LibclangTest.cpp4
-rw-r--r--utils/TableGen/ClangAttrEmitter.cpp129
-rw-r--r--utils/TableGen/ClangDiagnosticsEmitter.cpp2
-rw-r--r--utils/TableGen/NeonEmitter.cpp42
-rw-r--r--utils/check_cfc/check_cfc.cfg3
-rwxr-xr-xutils/check_cfc/check_cfc.py388
-rwxr-xr-xutils/check_cfc/obj_diff.py79
-rw-r--r--utils/check_cfc/setup.py21
-rwxr-xr-xutils/check_cfc/test_check_cfc.py158
-rw-r--r--www/analyzer/checker_dev_manual.html2
-rw-r--r--www/analyzer/potential_checkers.html2
-rw-r--r--www/cxx_dr_status.html190
-rw-r--r--www/cxx_status.html40
-rw-r--r--www/get_started.html31
-rw-r--r--www/menu.css2
-rw-r--r--www/menu.html.incl1
2272 files changed, 97497 insertions, 30871 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 75b80757038d..4a8d3339df77 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -402,6 +402,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
FILES_MATCHING
PATTERN "CMakeFiles" EXCLUDE
PATTERN "*.inc"
+ PATTERN "*.h"
)
endif()
@@ -440,6 +441,11 @@ if(CLANG_ENABLE_STATIC_ANALYZER)
add_definitions(-DCLANG_ENABLE_STATIC_ANALYZER)
endif()
+set(OPENMP_DEFAULT_LIB "" CACHE STRING "OpenMP library used by default for -fopenmp.")
+if(OPENMP_DEFAULT_LIB)
+ add_definitions(-DOPENMP_DEFAULT_LIB=${OPENMP_DEFAULT_LIB})
+endif()
+
# Clang version information
set(CLANG_EXECUTABLE_VERSION
"${CLANG_VERSION_MAJOR}.${CLANG_VERSION_MINOR}" CACHE STRING
diff --git a/CODE_OWNERS.TXT b/CODE_OWNERS.TXT
index b58014fee1aa..905303fe11c2 100644
--- a/CODE_OWNERS.TXT
+++ b/CODE_OWNERS.TXT
@@ -12,6 +12,10 @@ N: Aaron Ballman
E: aaron@aaronballman.com
D: Clang attributes
+N: Alexey Bataev
+E: a.bataev@hotmail.com
+D: OpenMP support
+
N: Chandler Carruth
E: chandlerc@gmail.com
E: chandlerc@google.com
@@ -23,7 +27,11 @@ D: Debug Information, autotools/configure/make build, inline assembly
N: Doug Gregor
E: dgregor@apple.com
-D: All parts of Clang not covered by someone else
+D: Emeritus owner
+
+N: Reid Kleckner
+E: rnk@google.com
+D: Microsoft C++ ABI compatibility and general Windows support
N: Anton Korobeynikov
E: anton@korobeynikov.info
@@ -43,4 +51,4 @@ D: Compiler driver
N: Richard Smith
E: richard@metafoo.co.uk
-D: Clang Semantic Analysis (tools/clang/lib/Sema/* tools/clang/include/clang/Sema/*)
+D: All parts of Clang not covered by someone else
diff --git a/LICENSE.TXT b/LICENSE.TXT
index 3b1153db44e8..fc4afae584b0 100644
--- a/LICENSE.TXT
+++ b/LICENSE.TXT
@@ -4,7 +4,7 @@ LLVM Release License
University of Illinois/NCSA
Open Source License
-Copyright (c) 2007-2014 University of Illinois at Urbana-Champaign.
+Copyright (c) 2007-2015 University of Illinois at Urbana-Champaign.
All rights reserved.
Developed by:
diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py
index 5792effea59b..f5caca8572cb 100644
--- a/bindings/python/clang/cindex.py
+++ b/bindings/python/clang/cindex.py
@@ -1476,6 +1476,18 @@ class Cursor(Structure):
"""
return TokenGroup.get_tokens(self._tu, self.extent)
+ def get_field_offsetof(self):
+ """Returns the offsetof the FIELD_DECL pointed by this Cursor."""
+ return conf.lib.clang_Cursor_getOffsetOfField(self)
+
+ def is_anonymous(self):
+ """
+ Check if the record is anonymous.
+ """
+ if self.kind == CursorKind.FIELD_DECL:
+ return self.type.get_declaration().is_anonymous()
+ return conf.lib.clang_Cursor_isAnonymous(self)
+
def is_bitfield(self):
"""
Check if the field is a bitfield.
@@ -1884,6 +1896,21 @@ class Type(Structure):
return RefQualifierKind.from_id(
conf.lib.clang_Type_getCXXRefQualifier(self))
+ def get_fields(self):
+ """Return an iterator for accessing the fields of this type."""
+
+ def visitor(field, children):
+ assert field != conf.lib.clang_getNullCursor()
+
+ # Create reference to TU so it isn't GC'd before Cursor.
+ field._tu = self._tu
+ fields.append(field)
+ return 1 # continue
+ fields = []
+ conf.lib.clang_Type_visitFields(self,
+ callbacks['fields_visit'](visitor), fields)
+ return iter(fields)
+
@property
def spelling(self):
"""Retrieve the spelling of this Type."""
@@ -2780,6 +2807,7 @@ class Token(Structure):
callbacks['translation_unit_includes'] = CFUNCTYPE(None, c_object_p,
POINTER(SourceLocation), c_uint, py_object)
callbacks['cursor_visit'] = CFUNCTYPE(c_int, Cursor, Cursor, py_object)
+callbacks['fields_visit'] = CFUNCTYPE(c_int, Cursor, py_object)
# Functions strictly alphabetical order.
functionList = [
@@ -3367,6 +3395,10 @@ functionList = [
[Cursor, c_uint],
c_ulonglong),
+ ("clang_Cursor_isAnonymous",
+ [Cursor],
+ bool),
+
("clang_Cursor_isBitField",
[Cursor],
bool),
@@ -3381,6 +3413,10 @@ functionList = [
_CXString,
_CXString.from_result),
+ ("clang_Cursor_getOffsetOfField",
+ [Cursor],
+ c_longlong),
+
("clang_Type_getAlignOf",
[Type],
c_longlong),
@@ -3401,6 +3437,10 @@ functionList = [
("clang_Type_getCXXRefQualifier",
[Type],
c_uint),
+
+ ("clang_Type_visitFields",
+ [Type, callbacks['fields_visit'], py_object],
+ c_uint),
]
class LibclangError(Exception):
diff --git a/bindings/python/tests/cindex/test_type.py b/bindings/python/tests/cindex/test_type.py
index a02c06fe5a13..f3dadf999bd8 100644
--- a/bindings/python/tests/cindex/test_type.py
+++ b/bindings/python/tests/cindex/test_type.py
@@ -363,6 +363,7 @@ def test_offset():
"""Ensure Cursor.get_record_field_offset works in anonymous records"""
source="""
struct Test {
+ struct {int a;} typeanon;
struct {
int bariton;
union {
@@ -371,15 +372,23 @@ struct Test {
};
int bar;
};"""
- tries=[(['-target','i386-linux-gnu'],(4,16,0,32,64)),
- (['-target','nvptx64-unknown-unknown'],(8,24,0,32,64)),
- (['-target','i386-pc-win32'],(8,16,0,32,64)),
- (['-target','msp430-none-none'],(2,14,0,32,64))]
+ tries=[(['-target','i386-linux-gnu'],(4,16,0,32,64,96)),
+ (['-target','nvptx64-unknown-unknown'],(8,24,0,32,64,96)),
+ (['-target','i386-pc-win32'],(8,16,0,32,64,96)),
+ (['-target','msp430-none-none'],(2,14,0,32,64,96))]
for flags, values in tries:
- align,total,bariton,foo,bar = values
+ align,total,f1,bariton,foo,bar = values
tu = get_tu(source)
teststruct = get_cursor(tu, 'Test')
- fields = list(teststruct.get_children())
+ children = list(teststruct.get_children())
+ fields = list(teststruct.type.get_fields())
+ assert children[0].kind == CursorKind.STRUCT_DECL
+ assert children[0].spelling != "typeanon"
+ assert children[1].spelling == "typeanon"
+ assert fields[0].kind == CursorKind.FIELD_DECL
+ assert fields[1].kind == CursorKind.FIELD_DECL
+ assert fields[1].is_anonymous()
+ assert teststruct.type.get_offset("typeanon") == f1
assert teststruct.type.get_offset("bariton") == bariton
assert teststruct.type.get_offset("foo") == foo
assert teststruct.type.get_offset("bar") == bar
diff --git a/docs/AddressSanitizer.rst b/docs/AddressSanitizer.rst
index cbdd7c65e847..617543334d05 100644
--- a/docs/AddressSanitizer.rst
+++ b/docs/AddressSanitizer.rst
@@ -23,8 +23,7 @@ Typical slowdown introduced by AddressSanitizer is **2x**.
How to build
============
-Follow the `clang build instructions <../get_started.html>`_. CMake build is
-supported.
+Build LLVM/Clang with `CMake <http://llvm.org/docs/CMake.html>`_.
Usage
=====
diff --git a/docs/AutomaticReferenceCounting.rst b/docs/AutomaticReferenceCounting.rst
index 1457b6082d15..2faed2379164 100644
--- a/docs/AutomaticReferenceCounting.rst
+++ b/docs/AutomaticReferenceCounting.rst
@@ -594,7 +594,9 @@ retainable pointer type <arc.misc.c-retainable>` and it is:
* a message send, and the declared method either has the
``cf_returns_not_retained`` attribute or it has neither the
``cf_returns_retained`` attribute nor a :ref:`selector family
- <arc.method-families>` that implies a retained result.
+ <arc.method-families>` that implies a retained result, or
+* :when-revised:`[beginning LLVM 3.6]` :revision:`a load from a` ``const``
+ :revision:`non-system global variable.`
An expression is :arc-term:`known retained` if it is an rvalue of :ref:`C
retainable pointer type <arc.misc.c-retainable>` and it is:
@@ -631,6 +633,12 @@ retain-agnostic, the conversion is treated as a ``__bridge`` cast.
to an ObjC-typed local, and then calling ``CFRelease`` when done --- are a
bit too likely to be accidentally accepted, leading to mysterious behavior.
+ For loads from ``const`` global variables of :ref:`C retainable pointer type
+ <arc.misc.c-retainable>`, it is reasonable to assume that global system
+ constants were initialitzed with true constants (e.g. string literals), but
+ user constants might have been initialized with something dynamically
+ allocated, using a global initializer.
+
.. _arc.objects.restrictions.conversion-exception-contextual:
Conversion from retainable object pointer type in certain contexts
diff --git a/docs/ClangFormatStyleOptions.rst b/docs/ClangFormatStyleOptions.rst
index ce6fae19c09b..c06a8c76ecd5 100644
--- a/docs/ClangFormatStyleOptions.rst
+++ b/docs/ClangFormatStyleOptions.rst
@@ -155,10 +155,23 @@ the configuration (without a prefix: ``Auto``).
This applies to round brackets (parentheses), angle brackets and square
brackets. This will result in formattings like
- \code
- someLongFunction(argument1,
- argument2);
- \endcode
+
+ .. code-block:: c++
+
+ someLongFunction(argument1,
+ argument2);
+
+**AlignConsecutiveAssignments** (``bool``)
+ If ``true``, aligns consecutive assignments.
+
+ This will align the assignment operators of consecutive lines. This
+ will result in formattings like
+
+ .. code-block:: c++
+
+ int aaaa = 12;
+ int b = 23;
+ int ccc = 23;
**AlignEscapedNewlinesLeft** (``bool``)
If ``true``, aligns escaped newlines as far left as possible.
@@ -330,10 +343,11 @@ the configuration (without a prefix: ``Auto``).
instead of as function calls.
These are expected to be macros of the form:
- \code
- FOREACH(<variable-declaration>, ...)
- <loop-body>
- \endcode
+
+ .. code-block:: c++
+
+ FOREACH(<variable-declaration>, ...)
+ <loop-body>
For example: BOOST_FOREACH.
diff --git a/docs/ControlFlowIntegrity.rst b/docs/ControlFlowIntegrity.rst
new file mode 100644
index 000000000000..915385b7b197
--- /dev/null
+++ b/docs/ControlFlowIntegrity.rst
@@ -0,0 +1,145 @@
+======================
+Control Flow Integrity
+======================
+
+.. toctree::
+ :hidden:
+
+ ControlFlowIntegrityDesign
+
+.. contents::
+ :local:
+
+Introduction
+============
+
+Clang includes an implementation of a number of control flow integrity (CFI)
+schemes, which are designed to abort the program upon detecting certain forms
+of undefined behavior that can potentially allow attackers to subvert the
+program's control flow. These schemes have been optimized for performance,
+allowing developers to enable them in release builds.
+
+To enable Clang's available CFI schemes, use the flag ``-fsanitize=cfi``.
+As currently implemented, CFI relies on link-time optimization (LTO); the CFI
+schemes imply ``-flto``, and the linker used must support LTO, for example
+via the `gold plugin`_. To allow the checks to be implemented efficiently,
+the program must be structured such that certain object files are compiled
+with CFI enabled, and are statically linked into the program. This may
+preclude the use of shared libraries in some cases.
+
+Clang currently implements forward-edge CFI for member function calls and
+bad cast checking. More schemes are under development.
+
+.. _gold plugin: http://llvm.org/docs/GoldPlugin.html
+
+Forward-Edge CFI for Virtual Calls
+----------------------------------
+
+This scheme checks that virtual calls take place using a vptr of the correct
+dynamic type; that is, the dynamic type of the called object must be a
+derived class of the static type of the object used to make the call.
+This CFI scheme can be enabled on its own using ``-fsanitize=cfi-vcall``.
+
+For this scheme to work, all translation units containing the definition
+of a virtual member function (whether inline or not) must be compiled
+with ``-fsanitize=cfi-vcall`` enabled and be statically linked into the
+program. Classes in the C++ standard library (under namespace ``std``) are
+exempted from checking, and therefore programs may be linked against a
+pre-built standard library, but this may change in the future.
+
+Performance
+~~~~~~~~~~~
+
+A performance overhead of less than 1% has been measured by running the
+Dromaeo benchmark suite against an instrumented version of the Chromium
+web browser. Another good performance benchmark for this mechanism is the
+virtual-call-heavy SPEC 2006 xalancbmk.
+
+Note that this scheme has not yet been optimized for binary size; an increase
+of up to 15% has been observed for Chromium.
+
+Bad Cast Checking
+-----------------
+
+This scheme checks that pointer casts are made to an object of the correct
+dynamic type; that is, the dynamic type of the object must be a derived class
+of the pointee type of the cast. The checks are currently only introduced
+where the class being casted to is a polymorphic class.
+
+Bad casts are not in themselves control flow integrity violations, but they
+can also create security vulnerabilities, and the implementation uses many
+of the same mechanisms.
+
+There are two types of bad cast that may be forbidden: bad casts
+from a base class to a derived class (which can be checked with
+``-fsanitize=cfi-derived-cast``), and bad casts from a pointer of
+type ``void*`` or another unrelated type (which can be checked with
+``-fsanitize=cfi-unrelated-cast``).
+
+The difference between these two types of casts is that the first is defined
+by the C++ standard to produce an undefined value, while the second is not
+in itself undefined behavior (it is well defined to cast the pointer back
+to its original type).
+
+If a program as a matter of policy forbids the second type of cast, that
+restriction can normally be enforced. However it may in some cases be necessary
+for a function to perform a forbidden cast to conform with an external API
+(e.g. the ``allocate`` member function of a standard library allocator). Such
+functions may be blacklisted using a :doc:`SanitizerSpecialCaseList`.
+
+For this scheme to work, all translation units containing the definition
+of a virtual member function (whether inline or not) must be compiled with
+``-fsanitize=cfi-derived-cast`` or ``-fsanitize=cfi-unrelated-cast`` enabled
+and be statically linked into the program. Classes in the C++ standard library
+(under namespace ``std``) are exempted from checking, and therefore programs
+may be linked against a pre-built standard library, but this may change in
+the future.
+
+Non-Virtual Member Function Call Checking
+-----------------------------------------
+
+This scheme checks that non-virtual calls take place using an object of
+the correct dynamic type; that is, the dynamic type of the called object
+must be a derived class of the static type of the object used to make the
+call. The checks are currently only introduced where the object is of a
+polymorphic class type. This CFI scheme can be enabled on its own using
+``-fsanitize=cfi-nvcall``.
+
+For this scheme to work, all translation units containing the definition
+of a virtual member function (whether inline or not) must be compiled
+with ``-fsanitize=cfi-nvcall`` enabled and be statically linked into the
+program. Classes in the C++ standard library (under namespace ``std``) are
+exempted from checking, and therefore programs may be linked against a
+pre-built standard library, but this may change in the future.
+
+.. _cfi-strictness:
+
+Strictness
+~~~~~~~~~~
+
+If a class has a single non-virtual base and does not introduce or override
+virtual member functions or fields other than an implicitly defined virtual
+destructor, it will have the same layout and virtual function semantics as
+its base. By default, casts to such classes are checked as if they were made
+to the least derived such class.
+
+Casting an instance of a base class to such a derived class is technically
+undefined behavior, but it is a relatively common hack for introducing
+member functions on class instances with specific properties that works under
+most compilers and should not have security implications, so we allow it by
+default. It can be disabled with ``-fsanitize=cfi-cast-strict``.
+
+Design
+------
+
+Please refer to the :doc:`design document<ControlFlowIntegrityDesign>`.
+
+Publications
+------------
+
+`Control-Flow Integrity: Principles, Implementations, and Applications <http://research.microsoft.com/pubs/64250/ccs05.pdf>`_.
+Martin Abadi, Mihai Budiu, Úlfar Erlingsson, Jay Ligatti.
+
+`Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM <http://www.pcc.me.uk/~peter/acad/usenix14.pdf>`_.
+Caroline Tice, Tom Roeder, Peter Collingbourne, Stephen Checkoway,
+Úlfar Erlingsson, Luis Lozano, Geoff Pike.
diff --git a/docs/ControlFlowIntegrityDesign.rst b/docs/ControlFlowIntegrityDesign.rst
new file mode 100644
index 000000000000..89aa038d003e
--- /dev/null
+++ b/docs/ControlFlowIntegrityDesign.rst
@@ -0,0 +1,275 @@
+===========================================
+Control Flow Integrity Design Documentation
+===========================================
+
+This page documents the design of the :doc:`ControlFlowIntegrity` schemes
+supported by Clang.
+
+Forward-Edge CFI for Virtual Calls
+==================================
+
+This scheme works by allocating, for each static type used to make a virtual
+call, a region of read-only storage in the object file holding a bit vector
+that maps onto to the region of storage used for those virtual tables. Each
+set bit in the bit vector corresponds to the `address point`_ for a virtual
+table compatible with the static type for which the bit vector is being built.
+
+For example, consider the following three C++ classes:
+
+.. code-block:: c++
+
+ struct A {
+ virtual void f1();
+ virtual void f2();
+ virtual void f3();
+ };
+
+ struct B : A {
+ virtual void f1();
+ virtual void f2();
+ virtual void f3();
+ };
+
+ struct C : A {
+ virtual void f1();
+ virtual void f2();
+ virtual void f3();
+ };
+
+The scheme will cause the virtual tables for A, B and C to be laid out
+consecutively:
+
+.. csv-table:: Virtual Table Layout for A, B, C
+ :header: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
+
+ A::offset-to-top, &A::rtti, &A::f1, &A::f2, &A::f3, B::offset-to-top, &B::rtti, &B::f1, &B::f2, &B::f3, C::offset-to-top, &C::rtti, &C::f1, &C::f2, &C::f3
+
+The bit vector for static types A, B and C will look like this:
+
+.. csv-table:: Bit Vectors for A, B, C
+ :header: Class, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
+
+ A, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0
+ B, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0
+ C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0
+
+Bit vectors are represented in the object file as byte arrays. By loading
+from indexed offsets into the byte array and applying a mask, a program can
+test bits from the bit set with a relatively short instruction sequence. Bit
+vectors may overlap so long as they use different bits. For the full details,
+see the `ByteArrayBuilder`_ class.
+
+In this case, assuming A is laid out at offset 0 in bit 0, B at offset 0 in
+bit 1 and C at offset 0 in bit 2, the byte array would look like this:
+
+.. code-block:: c++
+
+ char bits[] = { 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 5, 0, 0 };
+
+To emit a virtual call, the compiler will assemble code that checks that
+the object's virtual table pointer is in-bounds and aligned and that the
+relevant bit is set in the bit vector.
+
+For example on x86 a typical virtual call may look like this:
+
+.. code-block:: none
+
+ ca7fbb: 48 8b 0f mov (%rdi),%rcx
+ ca7fbe: 48 8d 15 c3 42 fb 07 lea 0x7fb42c3(%rip),%rdx
+ ca7fc5: 48 89 c8 mov %rcx,%rax
+ ca7fc8: 48 29 d0 sub %rdx,%rax
+ ca7fcb: 48 c1 c0 3d rol $0x3d,%rax
+ ca7fcf: 48 3d 7f 01 00 00 cmp $0x17f,%rax
+ ca7fd5: 0f 87 36 05 00 00 ja ca8511
+ ca7fdb: 48 8d 15 c0 0b f7 06 lea 0x6f70bc0(%rip),%rdx
+ ca7fe2: f6 04 10 10 testb $0x10,(%rax,%rdx,1)
+ ca7fe6: 0f 84 25 05 00 00 je ca8511
+ ca7fec: ff 91 98 00 00 00 callq *0x98(%rcx)
+ [...]
+ ca8511: 0f 0b ud2
+
+The compiler relies on co-operation from the linker in order to assemble
+the bit vectors for the whole program. It currently does this using LLVM's
+`bit sets`_ mechanism together with link-time optimization.
+
+.. _address point: https://mentorembedded.github.io/cxx-abi/abi.html#vtable-general
+.. _bit sets: http://llvm.org/docs/BitSets.html
+.. _ByteArrayBuilder: http://llvm.org/docs/doxygen/html/structllvm_1_1ByteArrayBuilder.html
+
+Optimizations
+-------------
+
+The scheme as described above is the fully general variant of the scheme.
+Most of the time we are able to apply one or more of the following
+optimizations to improve binary size or performance.
+
+In fact, if you try the above example with the current version of the
+compiler, you will probably find that it will not use the described virtual
+table layout or machine instructions. Some of the optimizations we are about
+to introduce cause the compiler to use a different layout or a different
+sequence of machine instructions.
+
+Stripping Leading/Trailing Zeros in Bit Vectors
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If a bit vector contains leading or trailing zeros, we can strip them from
+the vector. The compiler will emit code to check if the pointer is in range
+of the region covered by ones, and perform the bit vector check using a
+truncated version of the bit vector. For example, the bit vectors for our
+example class hierarchy will be emitted like this:
+
+.. csv-table:: Bit Vectors for A, B, C
+ :header: Class, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
+
+ A, , , 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, ,
+ B, , , , , , , , 1, , , , , , ,
+ C, , , , , , , , , , , , , 1, ,
+
+Short Inline Bit Vectors
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+If the vector is sufficiently short, we can represent it as an inline constant
+on x86. This saves us a few instructions when reading the correct element
+of the bit vector.
+
+If the bit vector fits in 32 bits, the code looks like this:
+
+.. code-block:: none
+
+ dc2: 48 8b 03 mov (%rbx),%rax
+ dc5: 48 8d 15 14 1e 00 00 lea 0x1e14(%rip),%rdx
+ dcc: 48 89 c1 mov %rax,%rcx
+ dcf: 48 29 d1 sub %rdx,%rcx
+ dd2: 48 c1 c1 3d rol $0x3d,%rcx
+ dd6: 48 83 f9 03 cmp $0x3,%rcx
+ dda: 77 2f ja e0b <main+0x9b>
+ ddc: ba 09 00 00 00 mov $0x9,%edx
+ de1: 0f a3 ca bt %ecx,%edx
+ de4: 73 25 jae e0b <main+0x9b>
+ de6: 48 89 df mov %rbx,%rdi
+ de9: ff 10 callq *(%rax)
+ [...]
+ e0b: 0f 0b ud2
+
+Or if the bit vector fits in 64 bits:
+
+.. code-block:: none
+
+ 11a6: 48 8b 03 mov (%rbx),%rax
+ 11a9: 48 8d 15 d0 28 00 00 lea 0x28d0(%rip),%rdx
+ 11b0: 48 89 c1 mov %rax,%rcx
+ 11b3: 48 29 d1 sub %rdx,%rcx
+ 11b6: 48 c1 c1 3d rol $0x3d,%rcx
+ 11ba: 48 83 f9 2a cmp $0x2a,%rcx
+ 11be: 77 35 ja 11f5 <main+0xb5>
+ 11c0: 48 ba 09 00 00 00 00 movabs $0x40000000009,%rdx
+ 11c7: 04 00 00
+ 11ca: 48 0f a3 ca bt %rcx,%rdx
+ 11ce: 73 25 jae 11f5 <main+0xb5>
+ 11d0: 48 89 df mov %rbx,%rdi
+ 11d3: ff 10 callq *(%rax)
+ [...]
+ 11f5: 0f 0b ud2
+
+If the bit vector consists of a single bit, there is only one possible
+virtual table, and the check can consist of a single equality comparison:
+
+.. code-block:: none
+
+ 9a2: 48 8b 03 mov (%rbx),%rax
+ 9a5: 48 8d 0d a4 13 00 00 lea 0x13a4(%rip),%rcx
+ 9ac: 48 39 c8 cmp %rcx,%rax
+ 9af: 75 25 jne 9d6 <main+0x86>
+ 9b1: 48 89 df mov %rbx,%rdi
+ 9b4: ff 10 callq *(%rax)
+ [...]
+ 9d6: 0f 0b ud2
+
+Virtual Table Layout
+~~~~~~~~~~~~~~~~~~~~
+
+The compiler lays out classes of disjoint hierarchies in separate regions
+of the object file. At worst, bit vectors in disjoint hierarchies only
+need to cover their disjoint hierarchy. But the closer that classes in
+sub-hierarchies are laid out to each other, the smaller the bit vectors for
+those sub-hierarchies need to be (see "Stripping Leading/Trailing Zeros in Bit
+Vectors" above). The `GlobalLayoutBuilder`_ class is responsible for laying
+out the globals efficiently to minimize the sizes of the underlying bitsets.
+
+.. _GlobalLayoutBuilder: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/IPO/LowerBitSets.h?view=markup
+
+Alignment
+~~~~~~~~~
+
+If all gaps between address points in a particular bit vector are multiples
+of powers of 2, the compiler can compress the bit vector by strengthening
+the alignment requirements of the virtual table pointer. For example, given
+this class hierarchy:
+
+.. code-block:: c++
+
+ struct A {
+ virtual void f1();
+ virtual void f2();
+ };
+
+ struct B : A {
+ virtual void f1();
+ virtual void f2();
+ virtual void f3();
+ virtual void f4();
+ virtual void f5();
+ virtual void f6();
+ };
+
+ struct C : A {
+ virtual void f1();
+ virtual void f2();
+ };
+
+The virtual tables will be laid out like this:
+
+.. csv-table:: Virtual Table Layout for A, B, C
+ :header: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
+
+ A::offset-to-top, &A::rtti, &A::f1, &A::f2, B::offset-to-top, &B::rtti, &B::f1, &B::f2, &B::f3, &B::f4, &B::f5, &B::f6, C::offset-to-top, &C::rtti, &C::f1, &C::f2
+
+Notice that each address point for A is separated by 4 words. This lets us
+emit a compressed bit vector for A that looks like this:
+
+.. csv-table::
+ :header: 2, 6, 10, 14
+
+ 1, 1, 0, 1
+
+At call sites, the compiler will strengthen the alignment requirements by
+using a different rotate count. For example, on a 64-bit machine where the
+address points are 4-word aligned (as in A from our example), the ``rol``
+instruction may look like this:
+
+.. code-block:: none
+
+ dd2: 48 c1 c1 3b rol $0x3b,%rcx
+
+Padding to Powers of 2
+~~~~~~~~~~~~~~~~~~~~~~
+
+Of course, this alignment scheme works best if the address points are
+in fact aligned correctly. To make this more likely to happen, we insert
+padding between virtual tables that in many cases aligns address points to
+a power of 2. Specifically, our padding aligns virtual tables to the next
+highest power of 2 bytes; because address points for specific base classes
+normally appear at fixed offsets within the virtual table, this normally
+has the effect of aligning the address points as well.
+
+This scheme introduces tradeoffs between decreased space overhead for
+instructions and bit vectors and increased overhead in the form of padding. We
+therefore limit the amount of padding so that we align to no more than 128
+bytes. This number was found experimentally to provide a good tradeoff.
+
+Eliminating Bit Vector Checks for All-Ones Bit Vectors
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If the bit vector is all ones, the bit vector check is redundant; we simply
+need to check that the address is in range and well aligned. This is more
+likely to occur if the virtual tables are padded.
diff --git a/docs/InternalsManual.rst b/docs/InternalsManual.rst
index 502cae44b336..7f2a8fafccc0 100644
--- a/docs/InternalsManual.rst
+++ b/docs/InternalsManual.rst
@@ -1323,11 +1323,13 @@ range of iterators over declarations of "``f``".
``DeclContext`` manages multiply-defined declaration contexts internally. The
function ``DeclContext::getPrimaryContext`` retrieves the "primary" context for
a given ``DeclContext`` instance, which is the ``DeclContext`` responsible for
-maintaining the lookup table used for the semantics-centric view. Given the
-primary context, one can follow the chain of ``DeclContext`` nodes that define
-additional declarations via ``DeclContext::getNextContext``. Note that these
-functions are used internally within the lookup and insertion methods of the
-``DeclContext``, so the vast majority of clients can ignore them.
+maintaining the lookup table used for the semantics-centric view. Given a
+DeclContext, one can obtain the set of declaration contexts that are semanticaly
+connected to this declaration context, in source order, including this context
+(which will be the only result, for non-namespace contexts) via
+``DeclContext::collectAllContexts``. Note that these functions are used
+internally within the lookup and insertion methods of the ``DeclContext``, so
+the vast majority of clients can ignore them.
.. _CFG:
@@ -1619,192 +1621,304 @@ How to change Clang
How to add an attribute
-----------------------
+Attributes are a form of metadata that can be attached to a program construct,
+allowing the programmer to pass semantic information along to the compiler for
+various uses. For example, attributes may be used to alter the code generation
+for a program construct, or to provide extra semantic information for static
+analysis. This document explains how to add a custom attribute to Clang.
+Documentation on existing attributes can be found `here
+<//clang.llvm.org/docs/AttributeReference.html>`_.
Attribute Basics
^^^^^^^^^^^^^^^^
-
-Attributes in clang come in two forms: parsed form, and semantic form. Both
-forms are represented via a tablegen definition of the attribute, specified in
-Attr.td.
+Attributes in Clang are handled in three stages: parsing into a parsed attribute
+representation, conversion from a parsed attribute into a semantic attribute,
+and then the semantic handling of the attribute.
+
+Parsing of the attribute is determined by the various syntactic forms attributes
+can take, such as GNU, C++11, and Microsoft style attributes, as well as other
+information provided by the table definition of the attribute. Ultimately, the
+parsed representation of an attribute object is an ``AttributeList`` object.
+These parsed attributes chain together as a list of parsed attributes attached
+to a declarator or declaration specifier. The parsing of attributes is handled
+automatically by Clang, except for attributes spelled as keywords. When
+implementing a keyword attribute, the parsing of the keyword and creation of the
+``AttributeList`` object must be done manually.
+
+Eventually, ``Sema::ProcessDeclAttributeList()`` is called with a ``Decl`` and
+an ``AttributeList``, at which point the parsed attribute can be transformed
+into a semantic attribute. The process by which a parsed attribute is converted
+into a semantic attribute depends on the attribute definition and semantic
+requirements of the attribute. The end result, however, is that the semantic
+attribute object is attached to the ``Decl`` object, and can be obtained by a
+call to ``Decl::getAttr<T>()``.
+
+The structure of the semantic attribute is also governed by the attribute
+definition given in Attr.td. This definition is used to automatically generate
+functionality used for the implementation of the attribute, such as a class
+derived from ``clang::Attr``, information for the parser to use, automated
+semantic checking for some attributes, etc.
``include/clang/Basic/Attr.td``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The first step to adding a new attribute to Clang is to add its definition to
+`include/clang/Basic/Attr.td
+<http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?view=markup>`_.
+This tablegen definition must derive from the ``Attr`` (tablegen, not
+semantic) type, or one of its derivatives. Most attributes will derive from the
+``InheritableAttr`` type, which specifies that the attribute can be inherited by
+later redeclarations of the ``Decl`` it is associated with.
+``InheritableParamAttr`` is similar to ``InheritableAttr``, except that the
+attribute is written on a parameter instead of a declaration. If the attribute
+is intended to apply to a type instead of a declaration, such an attribute
+should derive from ``TypeAttr``, and will generally not be given an AST
+representation. (Note that this document does not cover the creation of type
+attributes.) An attribute that inherits from ``IgnoredAttr`` is parsed, but will
+generate an ignored attribute diagnostic when used, which may be useful when an
+attribute is supported by another vendor but not supported by clang.
+
+The definition will specify several key pieces of information, such as the
+semantic name of the attribute, the spellings the attribute supports, the
+arguments the attribute expects, and more. Most members of the ``Attr`` tablegen
+type do not require definitions in the derived definition as the default
+suffice. However, every attribute must specify at least a spelling list, a
+subject list, and a documentation list.
+
+Spellings
+~~~~~~~~~
+All attributes are required to specify a spelling list that denotes the ways in
+which the attribute can be spelled. For instance, a single semantic attribute
+may have a keyword spelling, as well as a C++11 spelling and a GNU spelling. An
+empty spelling list is also permissible and may be useful for attributes which
+are created implicitly. The following spellings are accepted:
+
+ ============ ================================================================
+ Spelling Description
+ ============ ================================================================
+ ``GNU`` Spelled with a GNU-style ``__attribute__((attr))`` syntax and
+ placement.
+ ``CXX11`` Spelled with a C++-style ``[[attr]]`` syntax. If the attribute
+ is meant to be used by Clang, it should set the namespace to
+ ``"clang"``.
+ ``Declspec`` Spelled with a Microsoft-style ``__declspec(attr)`` syntax.
+ ``Keyword`` The attribute is spelled as a keyword, and required custom
+ parsing.
+ ``GCC`` Specifies two spellings: the first is a GNU-style spelling, and
+ the second is a C++-style spelling with the ``gnu`` namespace.
+ Attributes should only specify this spelling for attributes
+ supported by GCC.
+ ``Pragma`` The attribute is spelled as a ``#pragma``, and requires custom
+ processing within the preprocessor. If the attribute is meant to
+ be used by Clang, it should set the namespace to ``"clang"``.
+ Note that this spelling is not used for declaration attributes.
+ ============ ================================================================
+
+Subjects
+~~~~~~~~
+Attributes appertain to one or more ``Decl`` subjects. If the attribute attempts
+to attach to a subject that is not in the subject list, a diagnostic is issued
+automatically. Whether the diagnostic is a warning or an error depends on how
+the attribute's ``SubjectList`` is defined, but the default behavior is to warn.
+The diagnostics displayed to the user are automatically determined based on the
+subjects in the list, but a custom diagnostic parameter can also be specified in
+the ``SubjectList``. The diagnostics generated for subject list violations are
+either ``diag::warn_attribute_wrong_decl_type`` or
+``diag::err_attribute_wrong_decl_type``, and the parameter enumeration is found
+in `include/clang/Sema/AttributeList.h
+<http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/AttributeList.h?view=markup>`_
+If a previously unused Decl node is added to the ``SubjectList``, the logic used
+to automatically determine the diagnostic parameter in `utils/TableGen/ClangAttrEmitter.cpp
+<http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp?view=markup>`_
+may need to be updated.
+
+By default, all subjects in the SubjectList must either be a Decl node defined
+in ``DeclNodes.td``, or a statement node defined in ``StmtNodes.td``. However,
+more complex subjects can be created by creating a ``SubsetSubject`` object.
+Each such object has a base subject which it appertains to (which must be a
+Decl or Stmt node, and not a SubsetSubject node), and some custom code which is
+called when determining whether an attribute appertains to the subject. For
+instance, a ``NonBitField`` SubsetSubject appertains to a ``FieldDecl``, and
+tests whether the given FieldDecl is a bit field. When a SubsetSubject is
+specified in a SubjectList, a custom diagnostic parameter must also be provided.
-First, add your attribute to the `include/clang/Basic/Attr.td
-<http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?view=markup>`_
-file.
-
-Each attribute gets a ``def`` inheriting from ``Attr`` or one of its
-subclasses. ``InheritableAttr`` means that the attribute also applies to
-subsequent declarations of the same name. ``InheritableParamAttr`` is similar
-to ``InheritableAttr``, except that the attribute is written on a parameter
-instead of a declaration, type or statement. Attributes inheriting from
-``TypeAttr`` are pure type attributes which generally are not given a
-representation in the AST. Attributes inheriting from ``TargetSpecificAttr``
-are attributes specific to one or more target architectures. An attribute that
-inherits from ``IgnoredAttr`` is parsed, but will generate an ignored attribute
-diagnostic when used. The attribute type may be useful when an attribute is
-supported by another vendor, but not supported by clang.
-
-``Spellings`` lists the strings that can appear in ``__attribute__((here))`` or
-``[[here]]``. All such strings will be synonymous. Possible ``Spellings``
-are: ``GNU`` (for use with GNU-style __attribute__ spellings), ``Declspec``
-(for use with Microsoft Visual Studio-style __declspec spellings), ``CXX11`
-(for use with C++11-style [[foo]] and [[foo::bar]] spellings), and ``Keyword``
-(for use with attributes that are implemented as keywords, like C++11's
-``override`` or ``final``). If you want to allow the ``[[]]`` C++11 syntax, you
-have to define a list of ``Namespaces``, which will let users write
-``[[namespace::spelling]]``. Using the empty string for a namespace will allow
-users to write just the spelling with no "``::``". Attributes which g++-4.8
-or later accepts should also have a ``CXX11<"gnu", "spelling">`` spelling.
-
-``Subjects`` restricts what kinds of AST node to which this attribute can
-appertain (roughly, attach). The subjects are specified via a ``SubjectList``,
-which specify the list of subjects. Additionally, subject-related diagnostics
-can be specified to be warnings or errors, with the default being a warning.
-The diagnostics displayed to the user are automatically determined based on
-the subjects in the list, but a custom diagnostic parameter can also be
-specified in the ``SubjectList``. The diagnostics generated for subject list
-violations are either ``diag::warn_attribute_wrong_decl_type`` or
-``diag::err_attribute_wrong_decl_type``, and the parameter enumeration is
-found in `include/clang/Sema/AttributeList.h
-<http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/AttributeList.h?view=markup>`_
-If you add new Decl nodes to the ``SubjectList``, you may need to update the
-logic used to automatically determine the diagnostic parameter in `utils/TableGen/ClangAttrEmitter.cpp
-<http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp?view=markup>`_.
-
-Diagnostic checking for attribute subject lists is automated except when
+Diagnostic checking for attribute subject lists is automated except when
``HasCustomParsing`` is set to ``1``.
-By default, all subjects in the SubjectList must either be a Decl node defined
-in ``DeclNodes.td``, or a statement node defined in ``StmtNodes.td``. However,
-more complex subjects can be created by creating a ``SubsetSubject`` object.
-Each such object has a base subject which it appertains to (which must be a
-Decl or Stmt node, and not a SubsetSubject node), and some custom code which is
-called when determining whether an attribute appertains to the subject. For
-instance, a ``NonBitField`` SubsetSubject appertains to a ``FieldDecl``, and
-tests whether the given FieldDecl is a bit field. When a SubsetSubject is
-specified in a SubjectList, a custom diagnostic parameter must also be provided.
-
-``Args`` names the arguments the attribute takes, in order. If ``Args`` is
+Documentation
+~~~~~~~~~~~~~
+All attributes must have some form of documentation associated with them.
+Documentation is table generated on the public web server by a server-side
+process that runs daily. Generally, the documentation for an attribute is a
+stand-alone definition in `include/clang/Basic/AttrDocs.td
+<http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/AttdDocs.td?view=markup>`_
+that is named after the attribute being documented.
+
+If the attribute is not for public consumption, or is an implicitly-created
+attribute that has no visible spelling, the documentation list can specify the
+``Undocumented`` object. Otherwise, the attribute should have its documentation
+added to AttrDocs.td.
+
+Documentation derives from the ``Documentation`` tablegen type. All derived
+types must specify a documentation category and the actual documentation itself.
+Additionally, it can specify a custom heading for the attribute, though a
+default heading will be chosen when possible.
+
+There are four predefined documentation categories: ``DocCatFunction`` for
+attributes that appertain to function-like subjects, ``DocCatVariable`` for
+attributes that appertain to variable-like subjects, ``DocCatType`` for type
+attributes, and ``DocCatStmt`` for statement attributes. A custom documentation
+category should be used for groups of attributes with similar functionality.
+Custom categories are good for providing overview information for the attributes
+grouped under it. For instance, the consumed annotation attributes define a
+custom category, ``DocCatConsumed``, that explains what consumed annotations are
+at a high level.
+
+Documentation content (whether it is for an attribute or a category) is written
+using reStructuredText (RST) syntax.
+
+After writing the documentation for the attribute, it should be locally tested
+to ensure that there are no issues generating the documentation on the server.
+Local testing requires a fresh build of clang-tblgen. To generate the attribute
+documentation, execute the following command::
+
+ clang-tblgen -gen-attr-docs -I /path/to/clang/include /path/to/clang/include/clang/Basic/Attr.td -o /path/to/clang/docs/AttributeReference.rst
+
+When testing locally, *do not* commit changes to ``AttributeReference.rst``.
+This file is generated by the server automatically, and any changes made to this
+file will be overwritten.
+
+Arguments
+~~~~~~~~~
+Attributes may optionally specify a list of arguments that can be passed to the
+attribute. Attribute arguments specify both the parsed form and the semantic
+form of the attribute. For example, if ``Args`` is
``[StringArgument<"Arg1">, IntArgument<"Arg2">]`` then
-``__attribute__((myattribute("Hello", 3)))`` will be a valid use. Attribute
-arguments specify both the parsed form and the semantic form of the attribute.
-The previous example shows an attribute which requires two attributes while
-parsing, and the Attr subclass' constructor for the attribute will require a
-string and integer argument.
-
-Diagnostic checking for argument counts is automated except when
-``HasCustomParsing`` is set to ``1``, or when the attribute uses an optional or
-variadic argument. Diagnostic checking for argument semantics is not automated.
-
-If the parsed form of the attribute is more complex, or differs from the
-semantic form, the ``HasCustomParsing`` bit can be set to ``1`` for the class,
-and the parsing code in `Parser::ParseGNUAttributeArgs
-<http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?view=markup>`_
-can be updated for the special case. Note that this only applies to arguments
-with a GNU spelling -- attributes with a __declspec spelling currently ignore
+``__attribute__((myattribute("Hello", 3)))`` will be a valid use; it requires
+two arguments while parsing, and the Attr subclass' constructor for the
+semantic attribute will require a string and integer argument.
+
+All arguments have a name and a flag that specifies whether the argument is
+optional. The associated C++ type of the argument is determined by the argument
+definition type. If the existing argument types are insufficient, new types can
+be created, but it requires modifying `utils/TableGen/ClangAttrEmitter.cpp
+<http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp?view=markup>`_
+to properly support the type.
+
+Other Properties
+~~~~~~~~~~~~~~~~
+The ``Attr`` definition has other members which control the behavior of the
+attribute. Many of them are special-purpose and beyond the scope of this
+document, however a few deserve mention.
+
+If the parsed form of the attribute is more complex, or differs from the
+semantic form, the ``HasCustomParsing`` bit can be set to ``1`` for the class,
+and the parsing code in `Parser::ParseGNUAttributeArgs()
+<http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?view=markup>`_
+can be updated for the special case. Note that this only applies to arguments
+with a GNU spelling -- attributes with a __declspec spelling currently ignore
this flag and are handled by ``Parser::ParseMicrosoftDeclSpec``.
-Custom accessors can be generated for an attribute based on the spelling list
-for that attribute. For instance, if an attribute has two different spellings:
-'Foo' and 'Bar', accessors can be created:
-``[Accessor<"isFoo", [GNU<"Foo">]>, Accessor<"isBar", [GNU<"Bar">]>]``
-These accessors will be generated on the semantic form of the attribute,
-accepting no arguments and returning a Boolean.
+Note that setting this member to 1 will opt out of common attribute semantic
+handling, requiring extra implementation efforts to ensure the attribute
+appertains to the appropriate subject, etc.
-Attributes which do not require an AST node should set the ``ASTNode`` field to
-``0`` to avoid polluting the AST. Note that anything inheriting from
-``TypeAttr`` or ``IgnoredAttr`` automatically do not generate an AST node. All
-other attributes generate an AST node by default. The AST node is the semantic
+If the attribute should not be propagated from from a template declaration to an
+instantiation of the template, set the ``Clone`` member to 0. By default, all
+attributes will be cloned to template instantiations.
+
+Attributes that do not require an AST node should set the ``ASTNode`` field to
+``0`` to avoid polluting the AST. Note that anything inheriting from
+``TypeAttr`` or ``IgnoredAttr`` automatically do not generate an AST node. All
+other attributes generate an AST node by default. The AST node is the semantic
representation of the attribute.
-Attributes which do not require custom semantic handling should set the
-``SemaHandler`` field to ``0``. Note that anything inheriting from
-``IgnoredAttr`` automatically do not get a semantic handler. All other
-attributes are assumed to use a semantic handler by default. Attributes
-without a semantic handler are not given a parsed attribute Kind enumeration.
-
-The ``LangOpts`` field can be used to specify a list of language options
-required by the attribute. For instance, all of the CUDA-specific attributes
-specify ``[CUDA]`` for the ``LangOpts`` field, and when the CUDA language
-option is not enabled, an "attribute ignored" warning diagnostic is emitted.
-Since language options are not table generated nodes, new language options must
-be created manually and should specify the spelling used by ``LangOptions`` class.
-
-Target-specific attribute sometimes share a spelling with other attributes in
-different targets. For instance, the ARM and MSP430 targets both have an
-attribute spelled ``GNU<"interrupt">``, but with different parsing and semantic
-requirements. To support this feature, an attribute inheriting from
-``TargetSpecificAttribute`` make specify a ``ParseKind`` field. This field
-should be the same value between all arguments sharing a spelling, and
-corresponds to the parsed attribute's Kind enumeration. This allows attributes
-to share a parsed attribute kind, but have distinct semantic attribute classes.
-For instance, ``AttributeList::AT_Interrupt`` is the shared parsed attribute
-kind, but ARMInterruptAttr and MSP430InterruptAttr are the semantic attributes
-generated.
-
-By default, when declarations are merging attributes, an attribute will not be
-duplicated. However, if an attribute can be duplicated during this merging
-stage, set ``DuplicatesAllowedWhileMerging`` to ``1``, and the attribute will
+The ``LangOpts`` field specifies a list of language optio