Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 May 2015 20:44:46 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r283633 - in projects/clang-trunk/contrib/llvm/tools/clang: . include/clang include/clang-c include/clang/AST include/clang/ASTMatchers include/clang/ASTMatchers/Dynamic include/clang/A...
Message-ID:  <201505272044.t4RKikif022888@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Wed May 27 20:44:45 2015
New Revision: 283633
URL: https://svnweb.freebsd.org/changeset/base/283633

Log:
  Merge clang trunk r238337 from ^/vendor/clang/dist, resolve conflicts,
  and preserve our customizations, where necessary.

Added:
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsSystemZ.def
     - copied unchanged from r283631, vendor/clang/dist/include/clang/Basic/BuiltinsSystemZ.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteBuffer.h
     - copied unchanged from r283631, vendor/clang/dist/include/clang/Rewrite/Core/RewriteBuffer.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h
     - copied unchanged from r283631, vendor/clang/dist/lib/Headers/avx512dqintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avx512vldqintrin.h
     - copied unchanged from r283631, vendor/clang/dist/lib/Headers/avx512vldqintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/cuda/
     - copied from r283631, vendor/clang/dist/lib/Headers/cuda/
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/cuda_builtin_vars.h
     - copied unchanged from r283631, vendor/clang/dist/lib/Headers/cuda_builtin_vars.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/htmintrin.h
     - copied unchanged from r283631, vendor/clang/dist/lib/Headers/htmintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/htmxlintrin.h
     - copied unchanged from r283631, vendor/clang/dist/lib/Headers/htmxlintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/s390intrin.h
     - copied unchanged from r283631, vendor/clang/dist/lib/Headers/s390intrin.h
Modified:
  projects/clang-trunk/contrib/llvm/tools/clang/LICENSE.TXT
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang-c/Index.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Attr.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentParser.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Decl.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Expr.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Mangle.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Stmt.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Type.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/ABI.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Attr.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommentKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Linkage.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Module.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/SanitizerBlacklist.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Basic/VersionTuple.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/Driver.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/Job.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/Options.td
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Driver/Types.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Format/Format.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/DependencyOutputOptions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOutputOptions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Index/USRGeneration.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/ExternalPreprocessorSource.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/PPConditionalDirectiveRecord.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/PTHManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/Token.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Parse/Parser.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Rewrite/Core/DeltaTree.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteRope.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Rewrite/Core/Rewriter.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Rewrite/Core/TokenRewriter.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FixItRewriter.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FrontendActions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/Overload.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/Scope.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/Template.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Serialization/Module.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h
  projects/clang-trunk/contrib/llvm/tools/clang/include/clang/module.modulemap
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/AttrImpl.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/CXXABI.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/Decl.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/DeclGroup.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/Expr.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/InheritViz.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/Stmt.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/Type.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/LangOptions.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/Module.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/Sanitizers.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/Version.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/VersionTuple.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/EHScopeStack.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/CrossWindowsToolChain.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/Job.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/MSVCToolChain.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/ToolChains.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/Tools.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Driver/Types.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Edit/EditedSource.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/Format.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/FormatToken.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/FrontendOptions.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/Intrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/__stddef_max_align_t.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/altivec.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/arm_acle.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avx512erintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/avxintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/emmintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/immintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/module.modulemap
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/stdatomic.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/unwind.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/PPConditionalDirectiveRecord.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/ScratchBuffer.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/Parser.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Parse/RAIIObjectsForParser.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/Scope.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/Sema.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaCUDA.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaFixItUtils.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/Module.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Checkers.td
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Tooling/FileMatchTrie.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
  projects/clang-trunk/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp
Directory Properties:
  projects/clang-trunk/contrib/llvm/tools/clang/   (props changed)

Modified: projects/clang-trunk/contrib/llvm/tools/clang/LICENSE.TXT
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/LICENSE.TXT	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/LICENSE.TXT	Wed May 27 20:44:45 2015	(r283633)
@@ -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:

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang-c/Index.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang-c/Index.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang-c/Index.h	Wed May 27 20:44:45 2015	(r283633)
@@ -32,7 +32,7 @@
  * compatible, thus CINDEX_VERSION_MAJOR is expected to remain stable.
  */
 #define CINDEX_VERSION_MAJOR 0
-#define CINDEX_VERSION_MINOR 29
+#define CINDEX_VERSION_MINOR 30
 
 #define CINDEX_VERSION_ENCODE(major, minor) ( \
       ((major) * 10000)                       \
@@ -2276,7 +2276,12 @@ enum CXCursorKind {
    */
   CXCursor_ModuleImportDecl              = 600,
   CXCursor_FirstExtraDecl                = CXCursor_ModuleImportDecl,
-  CXCursor_LastExtraDecl                 = CXCursor_ModuleImportDecl
+  CXCursor_LastExtraDecl                 = CXCursor_ModuleImportDecl,
+
+  /**
+   * \brief A code completion overload candidate.
+   */
+  CXCursor_OverloadCandidate             = 700
 };
 
 /**
@@ -2849,7 +2854,7 @@ enum CXCallingConv {
   CXCallingConv_X86Pascal = 5,
   CXCallingConv_AAPCS = 6,
   CXCallingConv_AAPCS_VFP = 7,
-  CXCallingConv_PnaclCall = 8,
+  /* Value 8 was PnaclCall, but it was never used, so it could safely be re-used. */
   CXCallingConv_IntelOclBicc = 9,
   CXCallingConv_X86_64Win64 = 10,
   CXCallingConv_X86_64SysV = 11,
@@ -3276,6 +3281,28 @@ CINDEX_LINKAGE long long clang_Type_getS
  */
 CINDEX_LINKAGE long long clang_Type_getOffsetOf(CXType T, const char *S);
 
+/**
+ * \brief Return the offset of the field represented by the Cursor.
+ *
+ * If the cursor is not a field declaration, -1 is returned.
+ * If the cursor semantic parent is not a record field declaration,
+ *   CXTypeLayoutError_Invalid is returned.
+ * If the field's type declaration is an incomplete type,
+ *   CXTypeLayoutError_Incomplete is returned.
+ * If the field's type declaration is a dependent type,
+ *   CXTypeLayoutError_Dependent is returned.
+ * If the field's name S is not found,
+ *   CXTypeLayoutError_InvalidFieldName is returned.
+ */
+CINDEX_LINKAGE long long clang_Cursor_getOffsetOfField(CXCursor C);
+
+/**
+ * \brief Determine whether the given cursor represents an anonymous record
+ * declaration.
+ */
+CINDEX_LINKAGE unsigned clang_Cursor_isAnonymous(CXCursor C);
+
+
 enum CXRefQualifierKind {
   /** \brief No ref-qualifier was provided. */
   CXRefQualifier_None = 0,
@@ -5664,15 +5691,50 @@ CINDEX_LINKAGE
 CXSourceLocation clang_indexLoc_getCXSourceLocation(CXIdxLoc loc);
 
 /**
- * @}
+ * \brief Visitor invoked for each field found by a traversal.
+ *
+ * This visitor function will be invoked for each field found by
+ * \c clang_Type_visitFields. Its first argument is the cursor being
+ * visited, its second argument is the client data provided to
+ * \c clang_Type_visitFields.
+ *
+ * The visitor should return one of the \c CXVisitorResult values
+ * to direct \c clang_Type_visitFields.
  */
+typedef enum CXVisitorResult (*CXFieldVisitor)(CXCursor C,
+                                               CXClientData client_data);
+
+/**
+ * \brief Visit the fields of a particular type.
+ *
+ * This function visits all the direct fields of the given cursor,
+ * invoking the given \p visitor function with the cursors of each
+ * visited field. The traversal may be ended prematurely, if
+ * the visitor returns \c CXFieldVisit_Break.
+ *
+ * \param T the record type whose field may be visited.
+ *
+ * \param visitor the visitor function that will be invoked for each
+ * field of \p T.
+ *
+ * \param client_data pointer data supplied by the client, which will
+ * be passed to the visitor each time it is invoked.
+ *
+ * \returns a non-zero value if the traversal was terminated
+ * prematurely by the visitor returning \c CXFieldVisit_Break.
+ */
+CINDEX_LINKAGE unsigned clang_Type_visitFields(CXType T,
+                                               CXFieldVisitor visitor,
+                                               CXClientData client_data);
+
 
 /**
  * @}
  */
 
-/* Include the comment API for compatibility. This will eventually go away. */
-#include "clang-c/Documentation.h"
+/**
+ * @}
+ */
 
 #ifdef __cplusplus
 }

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h	Wed May 27 20:44:45 2015	(r283633)
@@ -129,11 +129,7 @@ public:
   /// required.
   ///
   /// \param RD The class whose vtable was used.
-  ///
-  /// \param DefinitionRequired Whether a definition of this vtable is
-  /// required in this translation unit; otherwise, it is only needed if
-  /// it was actually used.
-  virtual void HandleVTable(CXXRecordDecl *RD, bool DefinitionRequired) {}
+  virtual void HandleVTable(CXXRecordDecl *RD) {}
 
   /// \brief If the consumer is interested in entities getting modified after
   /// their initial creation, it should return a pointer to

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h	Wed May 27 20:44:45 2015	(r283633)
@@ -284,6 +284,11 @@ class ASTContext : public RefCountedBase
   /// merged into.
   llvm::DenseMap<Decl*, Decl*> MergedDecls;
 
+  /// \brief A mapping from a defining declaration to a list of modules (other
+  /// than the owning module of the declaration) that contain merged
+  /// definitions of that entity.
+  llvm::DenseMap<NamedDecl*, llvm::TinyPtrVector<Module*>> MergedDefModules;
+
 public:
   /// \brief A type synonym for the TemplateOrInstantiation mapping.
   typedef llvm::PointerUnion<VarTemplateDecl *, MemberSpecializationInfo *>
@@ -383,6 +388,7 @@ private:
   ImportDecl *LastLocalImport;
   
   TranslationUnitDecl *TUDecl;
+  mutable ExternCContextDecl *ExternCContext;
 
   /// \brief The associated SourceManager object.a
   SourceManager &SourceMgr;
@@ -780,8 +786,26 @@ public:
     MergedDecls[D] = Primary;
   }
 
+  /// \brief Note that the definition \p ND has been merged into module \p M,
+  /// and should be visible whenever \p M is visible.
+  void mergeDefinitionIntoModule(NamedDecl *ND, Module *M,
+                                 bool NotifyListeners = true);
+  /// \brief Clean up the merged definition list. Call this if you might have
+  /// added duplicates into the list.
+  void deduplicateMergedDefinitonsFor(NamedDecl *ND);
+
+  /// \brief Get the additional modules in which the definition \p Def has
+  /// been merged.
+  ArrayRef<Module*> getModulesWithMergedDefinition(NamedDecl *Def) {
+    auto MergedIt = MergedDefModules.find(Def);
+    if (MergedIt == MergedDefModules.end())
+      return None;
+    return MergedIt->second;
+  }
+
   TranslationUnitDecl *getTranslationUnitDecl() const { return TUDecl; }
 
+  ExternCContextDecl *getExternCContextDecl() const;
 
   // Builtin Types.
   CanQualType VoidTy;
@@ -1689,6 +1713,10 @@ public:
   /// beneficial for performance to overalign a data type.
   unsigned getPreferredTypeAlign(const Type *T) const;
 
+  /// \brief Return the default alignment for __attribute__((aligned)) on
+  /// this target, to be used if no alignment value is specified.
+  unsigned getTargetDefaultAlignForAttributeAligned(void) const;
+
   /// \brief Return the alignment in bits that should be given to a
   /// global variable with type \p T.
   unsigned getAlignOfGlobalVar(QualType T) const;
@@ -1936,6 +1964,8 @@ public:
   /// cv-qualifiers.
   QualType getSignatureParameterType(QualType T) const;
   
+  QualType getExceptionObjectType(QualType T) const;
+  
   /// \brief Return the properly qualified result of decaying the specified
   /// array type to a pointer.
   ///
@@ -2191,6 +2221,18 @@ public:
   /// it is not used.
   bool DeclMustBeEmitted(const Decl *D);
 
+  const CXXConstructorDecl *
+  getCopyConstructorForExceptionObject(CXXRecordDecl *RD);
+
+  void addCopyConstructorForExceptionObject(CXXRecordDecl *RD,
+                                            CXXConstructorDecl *CD);
+
+  void addDefaultArgExprForConstructor(const CXXConstructorDecl *CD,
+                                       unsigned ParmIdx, Expr *DAE);
+
+  Expr *getDefaultArgExprForConstructor(const CXXConstructorDecl *CD,
+                                        unsigned ParmIdx);
+
   void setManglingNumber(const NamedDecl *ND, unsigned Number);
   unsigned getManglingNumber(const NamedDecl *ND) const;
 
@@ -2263,8 +2305,8 @@ public:
   static unsigned NumImplicitDestructorsDeclared;
   
 private:
-  ASTContext(const ASTContext &) LLVM_DELETED_FUNCTION;
-  void operator=(const ASTContext &) LLVM_DELETED_FUNCTION;
+  ASTContext(const ASTContext &) = delete;
+  void operator=(const ASTContext &) = delete;
 
 public:
   /// \brief Initialize built-in types.

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h	Wed May 27 20:44:45 2015	(r283633)
@@ -121,6 +121,11 @@ namespace clang {
     /// if an error occurred.
     Decl *Import(Decl *FromD);
 
+    /// \brief Return the copy of the given declaration in the "to" context if
+    /// it has already been imported from the "from" context.  Otherwise return
+    /// NULL.
+    Decl *GetAlreadyImportedOrNull(Decl *FromD);
+
     /// \brief Import the given declaration context from the "from"
     /// AST context into the "to" AST context.
     ///

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h	Wed May 27 20:44:45 2015	(r283633)
@@ -13,16 +13,17 @@
 #ifndef LLVM_CLANG_AST_ASTMUTATIONLISTENER_H
 #define LLVM_CLANG_AST_ASTMUTATIONLISTENER_H
 
-#include "clang/Basic/SourceLocation.h"
-
 namespace clang {
-  class CXXRecordDecl;
   class ClassTemplateDecl;
   class ClassTemplateSpecializationDecl;
+  class CXXDestructorDecl;
+  class CXXRecordDecl;
   class Decl;
   class DeclContext;
   class FunctionDecl;
   class FunctionTemplateDecl;
+  class Module;
+  class NamedDecl;
   class ObjCCategoryDecl;
   class ObjCContainerDecl;
   class ObjCInterfaceDecl;
@@ -72,6 +73,10 @@ public:
   /// \brief A function's return type has been deduced.
   virtual void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType);
 
+  /// \brief A virtual destructor's operator delete has been resolved.
+  virtual void ResolvedOperatorDelete(const CXXDestructorDecl *DD,
+                                      const FunctionDecl *Delete) {}
+
   /// \brief An implicit member got a definition.
   virtual void CompletedImplicitDefinition(const FunctionDecl *D) {}
 
@@ -108,6 +113,13 @@ public:
   /// \param D the declaration marked OpenMP threadprivate.
   virtual void DeclarationMarkedOpenMPThreadPrivate(const Decl *D) {}
 
+  /// \brief A definition has been made visible by being redefined locally.
+  ///
+  /// \param D The definition that was previously not visible.
+  /// \param M The containing module in which the definition was made visible,
+  ///        if any.
+  virtual void RedefinedHiddenDefinition(const NamedDecl *D, Module *M) {}
+
   // NOTE: If new methods are added they should also be added to
   // MultiplexASTMutationListener.
 };

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h	Wed May 27 20:44:45 2015	(r283633)
@@ -76,7 +76,7 @@ public:
   }
 
   void append(ASTContext &C, iterator I, iterator E) {
-    Decls.append(C, I.ir, E.ir);
+    Decls.append(C, I.I, E.I);
   }
 
   DeclAccessPair &operator[](unsigned I) { return Decls[I]; }

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Attr.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Attr.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Attr.h	Wed May 27 20:44:45 2015	(r283633)
@@ -20,6 +20,7 @@
 #include "clang/AST/Type.h"
 #include "clang/Basic/AttrKinds.h"
 #include "clang/Basic/LLVM.h"
+#include "clang/Basic/Sanitizers.h"
 #include "clang/Basic/SourceLocation.h"
 #include "clang/Basic/VersionTuple.h"
 #include "llvm/ADT/SmallVector.h"
@@ -52,8 +53,8 @@ protected:
   bool Inherited : 1;
   bool IsPackExpansion : 1;
   bool Implicit : 1;
-
-  virtual ~Attr();
+  bool IsLateParsed : 1;
+  bool DuplicatesAllowed : 1;
 
   void* operator new(size_t bytes) throw() {
     llvm_unreachable("Attrs cannot be allocated with regular 'new'.");
@@ -65,7 +66,7 @@ protected:
 public:
   // Forward so that the regular new and delete do not hide global ones.
   void* operator new(size_t Bytes, ASTContext &C,
-                     size_t Alignment = 16) throw() {
+                     size_t Alignment = 8) throw() {
     return ::operator new(Bytes, C, Alignment);
   }
   void operator delete(void *Ptr, ASTContext &C,
@@ -74,9 +75,11 @@ public:
   }
 
 protected:
-  Attr(attr::Kind AK, SourceRange R, unsigned SpellingListIndex = 0)
+  Attr(attr::Kind AK, SourceRange R, unsigned SpellingListIndex,
+       bool IsLateParsed, bool DuplicatesAllowed)
     : Range(R), AttrKind(AK), SpellingListIndex(SpellingListIndex),
-      Inherited(false), IsPackExpansion(false), Implicit(false) {}
+      Inherited(false), IsPackExpansion(false), Implicit(false),
+      IsLateParsed(IsLateParsed), DuplicatesAllowed(DuplicatesAllowed) {}
 
 public:
 
@@ -85,7 +88,7 @@ public:
   }
   
   unsigned getSpellingListIndex() const { return SpellingListIndex; }
-  virtual const char *getSpelling() const = 0;
+  const char *getSpelling() const;
 
   SourceLocation getLocation() const { return Range.getBegin(); }
   SourceRange getRange() const { return Range; }
@@ -102,25 +105,24 @@ public:
   bool isPackExpansion() const { return IsPackExpansion; }
 
   // Clone this attribute.
-  virtual Attr *clone(ASTContext &C) const = 0;
+  Attr *clone(ASTContext &C) const;
 
-  virtual bool isLateParsed() const { return false; }
+  bool isLateParsed() const { return IsLateParsed; }
 
   // Pretty print this attribute.
-  virtual void printPretty(raw_ostream &OS,
-                           const PrintingPolicy &Policy) const = 0;
+  void printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const;
 
   /// \brief By default, attributes cannot be duplicated when being merged;
   /// however, an attribute can override this. Returns true if the attribute
   /// can be duplicated when merging.
-  virtual bool duplicatesAllowed() const { return false; }
+  bool duplicatesAllowed() const { return DuplicatesAllowed; }
 };
 
 class InheritableAttr : public Attr {
-  virtual void anchor();
 protected:
-  InheritableAttr(attr::Kind AK, SourceRange R, unsigned SpellingListIndex = 0)
-    : Attr(AK, R, SpellingListIndex) {}
+  InheritableAttr(attr::Kind AK, SourceRange R, unsigned SpellingListIndex,
+                  bool IsLateParsed, bool DuplicatesAllowed)
+      : Attr(AK, R, SpellingListIndex, IsLateParsed, DuplicatesAllowed) {}
 
 public:
   void setInherited(bool I) { Inherited = I; }
@@ -132,11 +134,11 @@ public:
 };
 
 class InheritableParamAttr : public InheritableAttr {
-  void anchor() override;
 protected:
-  InheritableParamAttr(attr::Kind AK, SourceRange R,
-                       unsigned SpellingListIndex = 0)
-    : InheritableAttr(AK, R, SpellingListIndex) {}
+  InheritableParamAttr(attr::Kind AK, SourceRange R, unsigned SpellingListIndex,
+                       bool IsLateParsed, bool DuplicatesAllowed)
+      : InheritableAttr(AK, R, SpellingListIndex, IsLateParsed,
+                        DuplicatesAllowed) {}
 
 public:
   // Implement isa/cast/dyncast/etc.

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h	Wed May 27 20:44:45 2015	(r283633)
@@ -24,7 +24,7 @@ namespace clang {
 
 // Defined in ASTContext.h
 void *operator new(size_t Bytes, const clang::ASTContext &C,
-                   size_t Alignment = 16);
+                   size_t Alignment = 8);
 // FIXME: Being forced to not have a default argument here due to redeclaration
 //        rules on default arguments sucks
 void *operator new[](size_t Bytes, const clang::ASTContext &C,

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h	Wed May 27 20:44:45 2015	(r283633)
@@ -333,12 +333,12 @@ public:
 ///   struct D : B, C { };
 /// \endcode
 ///
-/// This data structure contaings a mapping from every virtual
+/// This data structure contains a mapping from every virtual
 /// function *that does not override an existing virtual function* and
 /// in every subobject where that virtual function occurs to the set
 /// of virtual functions that override it. Thus, the same virtual
 /// function \c A::f can actually occur in multiple subobjects of type
-/// \c A due to multiple inheritance, and may be overriden by
+/// \c A due to multiple inheritance, and may be overridden by
 /// different virtual functions in each, as in the following example:
 ///
 /// \code
@@ -354,7 +354,7 @@ public:
 /// \c A::f but in *different* subobjects of type A. This is
 /// represented by numbering the subobjects in which the overridden
 /// and the overriding virtual member functions are located. Subobject
-/// 0 represents the virtua base class subobject of that type, while
+/// 0 represents the virtual base class subobject of that type, while
 /// subobject numbers greater than 0 refer to non-virtual base class
 /// subobjects of that type.
 class CXXFinalOverriderMap

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h	Wed May 27 20:44:45 2015	(r283633)
@@ -16,8 +16,8 @@
 #define LLVM_CLANG_AST_CANONICALTYPE_H
 
 #include "clang/AST/Type.h"
+#include "llvm/ADT/iterator.h"
 #include "llvm/Support/Casting.h"
-#include <iterator>
 
 namespace clang {
 
@@ -80,7 +80,7 @@ public:
   operator QualType() const { return Stored; }
 
   /// \brief Implicit conversion to bool.
-  LLVM_EXPLICIT operator bool() const { return !isNull(); }
+  explicit operator bool() const { return !isNull(); }
   
   bool isNull() const {
     return Stored.isNull();
@@ -381,93 +381,20 @@ namespace clang {
 
 /// \brief Iterator adaptor that turns an iterator over canonical QualTypes
 /// into an iterator over CanQualTypes.
-template<typename InputIterator>
-class CanTypeIterator {
-  InputIterator Iter;
+template <typename InputIterator>
+struct CanTypeIterator
+    : llvm::iterator_adaptor_base<
+          CanTypeIterator<InputIterator>, InputIterator,
+          typename std::iterator_traits<InputIterator>::iterator_category,
+          CanQualType,
+          typename std::iterator_traits<InputIterator>::difference_type,
+          CanProxy<Type>, CanQualType> {
+  CanTypeIterator() {}
+  explicit CanTypeIterator(InputIterator Iter)
+      : CanTypeIterator::iterator_adaptor_base(std::move(Iter)) {}
 
-public:
-  typedef CanQualType    value_type;
-  typedef value_type     reference;
-  typedef CanProxy<Type> pointer;
-  typedef typename std::iterator_traits<InputIterator>::difference_type
-    difference_type;
-  typedef typename std::iterator_traits<InputIterator>::iterator_category
-    iterator_category;
-
-  CanTypeIterator() : Iter() { }
-  explicit CanTypeIterator(InputIterator Iter) : Iter(Iter) { }
-
-  // Input iterator
-  reference operator*() const {
-    return CanQualType::CreateUnsafe(*Iter);
-  }
-
-  pointer operator->() const;
-
-  CanTypeIterator &operator++() {
-    ++Iter;
-    return *this;
-  }
-
-  CanTypeIterator operator++(int) {
-    CanTypeIterator Tmp(*this);
-    ++Iter;
-    return Tmp;
-  }
-
-  friend bool operator==(const CanTypeIterator& X, const CanTypeIterator &Y) {
-    return X.Iter == Y.Iter;
-  }
-  friend bool operator!=(const CanTypeIterator& X, const CanTypeIterator &Y) {
-    return X.Iter != Y.Iter;
-  }
-
-  // Bidirectional iterator
-  CanTypeIterator &operator--() {
-    --Iter;
-    return *this;
-  }
-
-  CanTypeIterator operator--(int) {
-    CanTypeIterator Tmp(*this);
-    --Iter;
-    return Tmp;
-  }
-
-  // Random access iterator
-  reference operator[](difference_type n) const {
-    return CanQualType::CreateUnsafe(Iter[n]);
-  }
-
-  CanTypeIterator &operator+=(difference_type n) {
-    Iter += n;
-    return *this;
-  }
-
-  CanTypeIterator &operator-=(difference_type n) {
-    Iter -= n;
-    return *this;
-  }
-
-  friend CanTypeIterator operator+(CanTypeIterator X, difference_type n) {
-    X += n;
-    return X;
-  }
-
-  friend CanTypeIterator operator+(difference_type n, CanTypeIterator X) {
-    X += n;
-    return X;
-  }
-
-  friend CanTypeIterator operator-(CanTypeIterator X, difference_type n) {
-    X -= n;
-    return X;
-  }
-
-  friend difference_type operator-(const CanTypeIterator &X,
-                                   const CanTypeIterator &Y) {
-    return X - Y;
-  }
+  CanQualType operator*() const { return CanQualType::CreateUnsafe(*this->I); }
+  CanProxy<Type> operator->() const;
 };
 
 template<>
@@ -727,9 +654,8 @@ CanProxy<T> CanQual<T>::operator->() con
   return CanProxy<T>(*this);
 }
 
-template<typename InputIterator>
-typename CanTypeIterator<InputIterator>::pointer
-CanTypeIterator<InputIterator>::operator->() const {
+template <typename InputIterator>
+CanProxy<Type> CanTypeIterator<InputIterator>::operator->() const {
   return CanProxy<Type>(*this);
 }
 

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h	Wed May 27 20:44:45 2015	(r283633)
@@ -166,8 +166,8 @@ public:
   static const CommandInfo *getBuiltinCommandInfo(unsigned CommandID);
 
 private:
-  CommandTraits(const CommandTraits &) LLVM_DELETED_FUNCTION;
-  void operator=(const CommandTraits &) LLVM_DELETED_FUNCTION;
+  CommandTraits(const CommandTraits &) = delete;
+  void operator=(const CommandTraits &) = delete;
 
   const CommandInfo *getRegisteredCommandInfo(StringRef Name) const;
   const CommandInfo *getRegisteredCommandInfo(unsigned CommandID) const;

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h	Wed May 27 20:44:45 2015	(r283633)
@@ -221,8 +221,8 @@ public:
 /// \brief Comment lexer.
 class Lexer {
 private:
-  Lexer(const Lexer &) LLVM_DELETED_FUNCTION;
-  void operator=(const Lexer &) LLVM_DELETED_FUNCTION;
+  Lexer(const Lexer &) = delete;
+  void operator=(const Lexer &) = delete;
 
   /// Allocator for strings that are semantic values of tokens and have to be
   /// computed (for example, resolved decimal character references).

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentParser.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentParser.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentParser.h	Wed May 27 20:44:45 2015	(r283633)
@@ -28,8 +28,8 @@ class CommandTraits;
 
 /// Doxygen comment parser.
 class Parser {
-  Parser(const Parser &) LLVM_DELETED_FUNCTION;
-  void operator=(const Parser &) LLVM_DELETED_FUNCTION;
+  Parser(const Parser &) = delete;
+  void operator=(const Parser &) = delete;
 
   friend class TextTokenRetokenizer;
 

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h	Wed May 27 20:44:45 2015	(r283633)
@@ -31,8 +31,8 @@ namespace comments {
 class CommandTraits;
 
 class Sema {
-  Sema(const Sema &) LLVM_DELETED_FUNCTION;
-  void operator=(const Sema &) LLVM_DELETED_FUNCTION;
+  Sema(const Sema &) = delete;
+  void operator=(const Sema &) = delete;
 
   /// Allocator for AST nodes.
   llvm::BumpPtrAllocator &Allocator;

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/DataRecursiveASTVisitor.h	Wed May 27 20:44:45 2015	(r283633)
@@ -791,7 +791,7 @@ template <typename Derived>
 bool
 RecursiveASTVisitor<Derived>::TraverseLambdaCapture(LambdaExpr *LE,
                                                     const LambdaCapture *C) {
-  if (C->isInitCapture())
+  if (LE->isInitCapture(C))
     TRY_TO(TraverseDecl(C->getCapturedVar()));
   return true;
 }
@@ -1284,6 +1284,8 @@ DEF_TRAVERSE_DECL(
      // D->getAnonymousNamespace().
     })
 
+DEF_TRAVERSE_DECL(ExternCContextDecl, {})
+
 DEF_TRAVERSE_DECL(NamespaceAliasDecl, {
   // We shouldn't traverse an aliased namespace, since it will be
   // defined (and, therefore, traversed) somewhere else.
@@ -2433,6 +2435,7 @@ template <typename Derived>
 bool
 RecursiveASTVisitor<Derived>::VisitOMPScheduleClause(OMPScheduleClause *C) {
   TRY_TO(TraverseStmt(C->getChunkSize()));
+  TRY_TO(TraverseStmt(C->getHelperChunkSize()));
   return true;
 }
 
@@ -2517,6 +2520,18 @@ template <typename Derived>
 bool RecursiveASTVisitor<Derived>::VisitOMPLastprivateClause(
     OMPLastprivateClause *C) {
   TRY_TO(VisitOMPClauseList(C));
+  for (auto *E : C->private_copies()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->source_exprs()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->destination_exprs()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->assignment_ops()) {
+    TRY_TO(TraverseStmt(E));
+  }
   return true;
 }
 
@@ -2529,7 +2544,17 @@ bool RecursiveASTVisitor<Derived>::Visit
 template <typename Derived>
 bool RecursiveASTVisitor<Derived>::VisitOMPLinearClause(OMPLinearClause *C) {
   TRY_TO(TraverseStmt(C->getStep()));
+  TRY_TO(TraverseStmt(C->getCalcStep()));
   TRY_TO(VisitOMPClauseList(C));
+  for (auto *E : C->inits()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->updates()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->finals()) {
+    TRY_TO(TraverseStmt(E));
+  }
   return true;
 }
 
@@ -2543,6 +2568,15 @@ bool RecursiveASTVisitor<Derived>::Visit
 template <typename Derived>
 bool RecursiveASTVisitor<Derived>::VisitOMPCopyinClause(OMPCopyinClause *C) {
   TRY_TO(VisitOMPClauseList(C));
+  for (auto *E : C->source_exprs()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->destination_exprs()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->assignment_ops()) {
+    TRY_TO(TraverseStmt(E));
+  }
   return true;
 }
 
@@ -2550,6 +2584,15 @@ template <typename Derived>
 bool RecursiveASTVisitor<Derived>::VisitOMPCopyprivateClause(
     OMPCopyprivateClause *C) {
   TRY_TO(VisitOMPClauseList(C));
+  for (auto *E : C->source_exprs()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->destination_exprs()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->assignment_ops()) {
+    TRY_TO(TraverseStmt(E));
+  }
   return true;
 }
 
@@ -2559,6 +2602,15 @@ RecursiveASTVisitor<Derived>::VisitOMPRe
   TRY_TO(TraverseNestedNameSpecifierLoc(C->getQualifierLoc()));
   TRY_TO(TraverseDeclarationNameInfo(C->getNameInfo()));
   TRY_TO(VisitOMPClauseList(C));
+  for (auto *E : C->lhs_exprs()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->rhs_exprs()) {
+    TRY_TO(TraverseStmt(E));
+  }
+  for (auto *E : C->reduction_ops()) {
+    TRY_TO(TraverseStmt(E));
+  }
   return true;
 }
 

Modified: projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Decl.h
==============================================================================
--- projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Decl.h	Wed May 27 20:37:34 2015	(r283632)
+++ projects/clang-trunk/contrib/llvm/tools/clang/include/clang/AST/Decl.h	Wed May 27 20:44:45 2015	(r283633)
@@ -39,6 +39,7 @@ class LabelStmt;
 class MemberSpecializationInfo;
 class Module;
 class NestedNameSpecifier;
+class ParmVarDecl;
 class Stmt;
 class StringLiteral;
 class TemplateArgumentList;
@@ -82,10 +83,7 @@ class TranslationUnitDecl : public Decl,
   /// translation unit, if one has been created.
   NamespaceDecl *AnonymousNamespace;
 
-  explicit TranslationUnitDecl(ASTContext &ctx)
-    : Decl(TranslationUnit, nullptr, SourceLocation()),
-      DeclContext(TranslationUnit),
-      Ctx(ctx), AnonymousNamespace(nullptr) {}
+  explicit TranslationUnitDecl(ASTContext &ctx);
 public:
   ASTContext &getASTContext() const { return Ctx; }
 
@@ -104,6 +102,43 @@ public:
   }
 };
 
+/// \brief Declaration context for names declared as extern "C" in C++. This
+/// is neither the semantic nor lexical context for such declarations, but is
+/// used to check for conflicts with other extern "C" declarations. Example:
+///
+/// \code
+///   namespace N { extern "C" void f(); } // #1
+///   void N::f() {}                       // #2
+///   namespace M { extern "C" void f(); } // #3
+/// \endcode
+///
+/// The semantic context of #1 is namespace N and its lexical context is the
+/// LinkageSpecDecl; the semantic context of #2 is namespace N and its lexical
+/// context is the TU. However, both declarations are also visible in the
+/// extern "C" context.
+///
+/// The declaration at #3 finds it is a redeclaration of \c N::f through
+/// lookup in the extern "C" context.
+class ExternCContextDecl : public Decl, public DeclContext {
+  virtual void anchor();
+
+  explicit ExternCContextDecl(TranslationUnitDecl *TU)
+    : Decl(ExternCContext, TU, SourceLocation()),
+      DeclContext(ExternCContext) {}
+public:
+  static ExternCContextDecl *Create(const ASTContext &C,
+                                    TranslationUnitDecl *TU);
+  // Implement isa/cast/dyncast/etc.
+  static bool classof(const Decl *D) { return classofKind(D->getKind()); }
+  static bool classofKind(Kind K) { return K == ExternCContext; }
+  static DeclContext *castToDeclContext(const ExternCContextDecl *D) {
+    return static_cast<DeclContext *>(const_cast<ExternCContextDecl*>(D));
+  }
+  static ExternCContextDecl *castFromDeclContext(const DeclContext *DC) {
+    return static_cast<ExternCContextDecl *>(const_cast<DeclContext*>(DC));
+  }
+};
+
 /// NamedDecl - This represents a decl with a name.  Many decls have names such
 /// as ObjCMethodDecl, but not \@class, etc.
 class NamedDecl : public Decl {
@@ -179,14 +214,17 @@ public:
                                     const PrintingPolicy &Policy,
                                     bool Qualified) const;
 
-  /// declarationReplaces - Determine whether this declaration, if
+  /// \brief Determine whether this declaration, if
   /// known to be well-formed within its context, will replace the
   /// declaration OldD if introduced into scope. A declaration will
   /// replace another declaration if, for example, it is a
   /// redeclaration of the same variable or function, but not if it is
   /// a declaration of a different kind (function vs. class) or an
   /// overloaded function.
-  bool declarationReplaces(NamedDecl *OldD) const;
+  ///
+  /// \param IsKnownNewer \c true if this declaration is known to be newer
+  /// than \p OldD (for instance, if this declaration is newly-created).
+  bool declarationReplaces(NamedDecl *OldD, bool IsKnownNewer = true) const;
 
   /// \brief Determine whether this declaration has linkage.
   bool hasLinkage() const;
@@ -535,8 +573,8 @@ struct QualifierInfo {
 
 private:
   // Copy constructor and copy assignment are disabled.
-  QualifierInfo(const QualifierInfo&) LLVM_DELETED_FUNCTION;
-  QualifierInfo& operator=(const QualifierInfo&) LLVM_DELETED_FUNCTION;
+  QualifierInfo(const QualifierInfo&) = delete;
+  QualifierInfo& operator=(const QualifierInfo&) = delete;
 };
 
 /// \brief Represents a ValueDecl that came out of a declarator.
@@ -710,37 +748,8 @@ private:
     unsigned SClass : 3;
     unsigned TSCSpec : 2;
     unsigned InitStyle : 2;
-
-    /// \brief Whether this variable is the exception variable in a C++ catch
-    /// or an Objective-C @catch statement.
-    unsigned ExceptionVar : 1;
-
-    /// \brief Whether this local variable could be allocated in the return
-    /// slot of its function, enabling the named return value optimization
-    /// (NRVO).
-    unsigned NRVOVariable : 1;
-
-    /// \brief Whether this variable is the for-range-declaration in a C++0x
-    /// for-range statement.
-    unsigned CXXForRangeDecl : 1;
-
-    /// \brief Whether this variable is an ARC pseudo-__strong
-    /// variable;  see isARCPseudoStrong() for details.
-    unsigned ARCPseudoStrong : 1;
-
-    /// \brief Whether this variable is (C++0x) constexpr.
-    unsigned IsConstexpr : 1;
-
-    /// \brief Whether this variable is the implicit variable for a lambda
-    /// init-capture.
-    unsigned IsInitCapture : 1;
-
-    /// \brief Whether this local extern variable's previous declaration was
-    /// declared in the same block scope. This controls whether we should merge
-    /// the type of this declaration with its previous declaration.
-    unsigned PreviousDeclInSameBlockScope : 1;
   };
-  enum { NumVarDeclBits = 14 };
+  enum { NumVarDeclBits = 7 };
 
   friend class ASTDeclReader;
   friend class StmtIteratorBase;
@@ -776,10 +785,47 @@ protected:
     unsigned ParameterIndex : NumParameterIndexBits;
   };
 
+  class NonParmVarDeclBitfields {
+    friend class VarDecl;
+    friend class ASTDeclReader;
+
+    unsigned : NumVarDeclBits;
+
+    /// \brief Whether this variable is the exception variable in a C++ catch
+    /// or an Objective-C @catch statement.
+    unsigned ExceptionVar : 1;
+
+    /// \brief Whether this local variable could be allocated in the return
+    /// slot of its function, enabling the named return value optimization
+    /// (NRVO).
+    unsigned NRVOVariable : 1;
+
+    /// \brief Whether this variable is the for-range-declaration in a C++0x
+    /// for-range statement.
+    unsigned CXXForRangeDecl : 1;
+
+    /// \brief Whether this variable is an ARC pseudo-__strong
+    /// variable;  see isARCPseudoStrong() for details.
+    unsigned ARCPseudoStrong : 1;
+
+    /// \brief Whether this variable is (C++0x) constexpr.
+    unsigned IsConstexpr : 1;
+
+    /// \brief Whether this variable is the implicit variable for a lambda
+    /// init-capture.
+    unsigned IsInitCapture : 1;
+
+    /// \brief Whether this local extern variable's previous declaration was
+    /// declared in the same block scope. This controls whether we should merge
+    /// the type of this declaration with its previous declaration.
+    unsigned PreviousDeclInSameBlockScope : 1;
+  };
+
   union {
     unsigned AllBits;
     VarDeclBitfields VarDeclBits;
     ParmVarDeclBitfields ParmVarDeclBits;
+    NonParmVarDeclBitfields NonParmVarDeclBits;
   };
 
   VarDecl(Kind DK, ASTContext &C, DeclContext *DC, SourceLocation StartLoc,
@@ -840,7 +886,7 @@ public:
       return !isFileVarDecl() && getTSCSpec() == TSCS_unspecified;
 
     // Global Named Register (GNU extension)
-    if (getStorageClass() == SC_Register && !isLocalVarDecl())
+    if (getStorageClass() == SC_Register && !isLocalVarDeclOrParm())
       return false;
 
     // Return true for:  Auto, Register.
@@ -1132,9 +1178,12 @@ public:
   /// \brief Determine whether this variable is the exception variable in a
   /// C++ catch statememt or an Objective-C \@catch statement.
   bool isExceptionVariable() const {
-    return VarDeclBits.ExceptionVar;
+    return isa<ParmVarDecl>(this) ? false : NonParmVarDeclBits.ExceptionVar;
+  }
+  void setExceptionVariable(bool EV) {
+    assert(!isa<ParmVarDecl>(this));
+    NonParmVarDeclBits.ExceptionVar = EV;
   }
-  void setExceptionVariable(bool EV) { VarDeclBits.ExceptionVar = EV; }
 
   /// \brief Determine whether this local variable can be used with the named
   /// return value optimization (NRVO).
@@ -1146,36 +1195,64 @@ public:
   /// return slot when returning from the function. Within the function body,
   /// each return that returns the NRVO object will have this variable as its
   /// NRVO candidate.
-  bool isNRVOVariable() const { return VarDeclBits.NRVOVariable; }
-  void setNRVOVariable(bool NRVO) { VarDeclBits.NRVOVariable = NRVO; }
+  bool isNRVOVariable() const {
+    return isa<ParmVarDecl>(this) ? false : NonParmVarDeclBits.NRVOVariable;
+  }
+  void setNRVOVariable(bool NRVO) {
+    assert(!isa<ParmVarDecl>(this));
+    NonParmVarDeclBits.NRVOVariable = NRVO;
+  }
 
   /// \brief Determine whether this variable is the for-range-declaration in
   /// a C++0x for-range statement.
-  bool isCXXForRangeDecl() const { return VarDeclBits.CXXForRangeDecl; }
-  void setCXXForRangeDecl(bool FRD) { VarDeclBits.CXXForRangeDecl = FRD; }
+  bool isCXXForRangeDecl() const {
+    return isa<ParmVarDecl>(this) ? false : NonParmVarDeclBits.CXXForRangeDecl;
+  }
+  void setCXXForRangeDecl(bool FRD) {
+    assert(!isa<ParmVarDecl>(this));
+    NonParmVarDeclBits.CXXForRangeDecl = FRD;
+  }
 
   /// \brief Determine whether this variable is an ARC pseudo-__strong
   /// variable.  A pseudo-__strong variable has a __strong-qualified
   /// type but does not actually retain the object written into it.
   /// Generally such variables are also 'const' for safety.
-  bool isARCPseudoStrong() const { return VarDeclBits.ARCPseudoStrong; }
-  void setARCPseudoStrong(bool ps) { VarDeclBits.ARCPseudoStrong = ps; }
+  bool isARCPseudoStrong() const {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505272044.t4RKikif022888>