From 01af97d3b23bded2b2b21af19bbc6e4cce49e5b3 Mon Sep 17 00:00:00 2001
From: Dimitry Andric
Date: Mon, 2 May 2011 19:39:53 +0000
Subject: [PATCH] Vendor import of clang trunk r130700:
http://llvm.org/svn/llvm-project/cfe/trunk@130700
---
CMakeLists.txt | 33 +-
Makefile | 3 +
docs/DriverInternals.html | 6 +-
docs/InternalsManual.html | 54 +-
docs/LanguageExtensions.html | 118 +-
docs/UsersManual.html | 104 +-
docs/tools/clang.pod | 17 +-
examples/CMakeLists.txt | 2 +-
examples/Tooling/CMakeLists.txt | 6 +
examples/Tooling/ClangCheck.cpp | 108 +
examples/Tooling/Makefile | 24 +
examples/clang-interpreter/Makefile | 2 +-
examples/clang-interpreter/main.cpp | 3 +-
include/clang-c/Index.h | 78 +-
include/clang/AST/ASTConsumer.h | 2 +-
include/clang/AST/ASTContext.h | 76 +-
include/clang/AST/ASTDiagnostic.h | 3 +-
include/clang/AST/ASTMutationListener.h | 13 +
include/clang/AST/Attr.h | 15 +
include/clang/AST/CXXInheritance.h | 2 +-
include/clang/AST/CanonicalType.h | 3 +-
include/clang/AST/CharUnits.h | 16 +-
include/clang/AST/Decl.h | 553 +++-
include/clang/AST/DeclBase.h | 87 +-
include/clang/AST/DeclCXX.h | 351 +-
include/clang/AST/DeclFriend.h | 11 +
include/clang/AST/DeclObjC.h | 46 +-
include/clang/AST/DeclTemplate.h | 112 +-
include/clang/AST/EvaluatedExprVisitor.h | 3 +-
include/clang/AST/Expr.h | 512 ++-
include/clang/AST/ExprCXX.h | 280 +-
include/clang/AST/ExprObjC.h | 40 +-
include/clang/AST/ExternalASTSource.h | 67 +-
include/clang/AST/NestedNameSpecifier.h | 140 +
include/clang/AST/PrettyPrinter.h | 26 +-
include/clang/AST/RecursiveASTVisitor.h | 118 +-
include/clang/AST/Stmt.h | 168 +-
include/clang/AST/StmtCXX.h | 82 +
include/clang/AST/StmtIterator.h | 1 +
include/clang/AST/TemplateBase.h | 27 +-
include/clang/AST/Type.h | 321 +-
include/clang/AST/TypeLoc.h | 155 +-
.../Analyses/CFGReachabilityAnalysis.h | 4 +-
.../Analysis/Analyses/UninitializedValues.h | 82 +-
.../Analysis/Analyses/UninitializedValuesV2.h | 40 -
include/clang/Analysis/AnalysisContext.h | 60 +-
include/clang/Analysis/AnalysisDiagnostic.h | 3 +-
include/clang/Analysis/CFG.h | 120 +-
.../DomainSpecific/CocoaConventions.h | 2 +-
.../Analysis/FlowSensitive/DataflowSolver.h | 8 +-
include/clang/Analysis/ProgramPoint.h | 13 +-
.../clang/Analysis/Visitors/CFGStmtVisitor.h | 5 +
include/clang/Basic/AddressSpaces.h | 44 +
include/clang/Basic/Attr.td | 55 +-
include/clang/Basic/AttrKinds.h | 1 +
include/clang/Basic/Builtins.def | 9 +-
include/clang/Basic/BuiltinsPTX.def | 62 +
include/clang/Basic/BuiltinsX86.def | 41 +-
include/clang/Basic/CMakeLists.txt | 4 +
include/clang/Basic/ConvertUTF.h | 5 +
include/clang/Basic/DeclNodes.td | 4 +-
include/clang/Basic/Diagnostic.h | 5 +-
include/clang/Basic/Diagnostic.td | 14 +
include/clang/Basic/DiagnosticCommonKinds.td | 2 +
include/clang/Basic/DiagnosticDriverKinds.td | 10 +-
.../clang/Basic/DiagnosticFrontendKinds.td | 8 +
include/clang/Basic/DiagnosticGroups.td | 31 +-
include/clang/Basic/DiagnosticIDs.h | 26 +-
include/clang/Basic/DiagnosticLexKinds.td | 10 +-
include/clang/Basic/DiagnosticParseKinds.td | 73 +-
include/clang/Basic/DiagnosticSemaKinds.td | 284 +-
.../clang/Basic/ExceptionSpecificationType.h | 39 +
include/clang/Basic/ExpressionTraits.h | 25 +
include/clang/Basic/FileManager.h | 17 +-
include/clang/Basic/IdentifierTable.h | 77 +-
include/clang/Basic/LangOptions.h | 24 +-
include/clang/Basic/Makefile | 6 +-
include/clang/Basic/OpenCL.h | 28 +
include/clang/Basic/PartialDiagnostic.h | 2 +-
include/clang/Basic/SourceLocation.h | 9 +
include/clang/Basic/SourceManager.h | 152 +-
include/clang/Basic/Specifiers.h | 1 +
include/clang/Basic/StmtNodes.td | 9 +-
include/clang/Basic/TargetBuiltins.h | 11 +
include/clang/Basic/TargetInfo.h | 25 +-
include/clang/Basic/TokenKinds.def | 99 +-
include/clang/Basic/TypeTraits.h | 45 +-
include/clang/Basic/Version.h | 5 +
include/clang/Basic/VersionTuple.h | 126 +
include/clang/Basic/arm_neon.td | 7 +-
include/clang/Driver/Arg.h | 1 -
include/clang/Driver/CC1AsOptions.td | 6 +-
include/clang/Driver/CC1Options.td | 62 +-
include/clang/Driver/Driver.h | 32 +-
include/clang/Driver/DriverDiagnostic.h | 3 +-
include/clang/Driver/OptParser.td | 2 +-
include/clang/Driver/Options.td | 51 +-
include/clang/Driver/ToolChain.h | 9 +-
include/clang/Frontend/ASTConsumers.h | 8 -
include/clang/Frontend/ASTUnit.h | 42 +-
include/clang/Frontend/Analyses.def | 11 -
include/clang/Frontend/AnalyzerOptions.h | 7 -
.../clang/Frontend/ChainedDiagnosticClient.h | 3 +
include/clang/Frontend/CodeGenOptions.h | 17 +-
include/clang/Frontend/CompilerInstance.h | 79 +-
include/clang/Frontend/CompilerInvocation.h | 3 +-
include/clang/Frontend/DeclContextXML.def | 113 -
include/clang/Frontend/DeclXML.def | 372 ---
include/clang/Frontend/DiagnosticOptions.h | 8 +-
include/clang/Frontend/DocumentXML.def | 75 -
include/clang/Frontend/DocumentXML.h | 185 --
include/clang/Frontend/FrontendActions.h | 6 -
include/clang/Frontend/FrontendDiagnostic.h | 3 +-
include/clang/Frontend/FrontendOptions.h | 1 -
include/clang/Frontend/LangStandard.h | 16 +-
include/clang/Frontend/LangStandards.def | 14 +-
include/clang/Frontend/LogDiagnosticPrinter.h | 77 +
include/clang/Frontend/MultiplexConsumer.h | 5 +
include/clang/Frontend/PreprocessorOptions.h | 8 +
include/clang/Frontend/StmtXML.def | 520 ---
.../clang/Frontend/TextDiagnosticPrinter.h | 7 +-
include/clang/Frontend/TypeXML.def | 304 --
include/clang/Frontend/Utils.h | 17 +-
include/clang/Lex/DirectoryLookup.h | 22 +-
include/clang/Lex/HeaderMap.h | 5 +
include/clang/Lex/HeaderSearch.h | 51 +-
include/clang/Lex/LexDiagnostic.h | 3 +-
include/clang/Lex/Lexer.h | 15 +-
include/clang/Lex/LiteralSupport.h | 1 -
include/clang/Lex/MacroInfo.h | 1 -
include/clang/Lex/MultipleIncludeOpt.h | 2 +-
include/clang/Lex/PPCallbacks.h | 28 +-
include/clang/Lex/PTHLexer.h | 1 -
include/clang/Lex/Pragma.h | 1 -
include/clang/Lex/PreprocessingRecord.h | 4 +-
include/clang/Lex/Preprocessor.h | 76 +-
include/clang/Lex/PreprocessorLexer.h | 5 +-
include/clang/Makefile | 16 +-
include/clang/Parse/ParseDiagnostic.h | 3 +-
include/clang/Parse/Parser.h | 205 +-
include/clang/Rewrite/FrontendActions.h | 2 -
include/clang/Rewrite/Rewriter.h | 71 +-
include/clang/Sema/AttributeList.h | 373 ++-
include/clang/Sema/DeclSpec.h | 342 +-
include/clang/Sema/DelayedDiagnostic.h | 18 +-
include/clang/Sema/IdentifierResolver.h | 18 +-
include/clang/Sema/Initialization.h | 13 +-
include/clang/Sema/Lookup.h | 1 +
include/clang/Sema/Overload.h | 3 +-
include/clang/Sema/Ownership.h | 13 +-
include/clang/Sema/ParsedTemplate.h | 13 +-
include/clang/Sema/Scope.h | 76 +-
include/clang/Sema/Sema.h | 673 +++-
include/clang/Sema/SemaDiagnostic.h | 3 +-
include/clang/Sema/Template.h | 2 +
include/clang/Sema/TemplateDeduction.h | 2 +-
include/clang/Serialization/ASTBitCodes.h | 20 +-
include/clang/Serialization/ASTReader.h | 25 +-
include/clang/Serialization/ASTWriter.h | 9 +
.../Serialization/ChainedIncludesSource.h | 76 +
.../StaticAnalyzer/Checkers/CheckerBase.td | 15 +-
.../StaticAnalyzer/Checkers/LocalCheckers.h | 2 -
.../Core/BugReporter/BugReporter.h | 14 +-
.../Core/{CheckerV2.h => Checker.h} | 126 +-
.../StaticAnalyzer/Core/CheckerManager.h | 206 +-
.../StaticAnalyzer/Core/CheckerProvider.h | 1 -
.../Core/PathDiagnosticClients.h | 2 +-
.../Core/PathSensitive/BasicValueFactory.h | 12 +-
.../Core/PathSensitive/Checker.h | 166 -
.../Core/PathSensitive/CheckerVisitor.def | 48 -
.../Core/PathSensitive/CheckerVisitor.h | 103 -
.../Core/PathSensitive/CoreEngine.h | 36 +-
.../Core/PathSensitive/Environment.h | 5 +-
.../Core/PathSensitive/ExprEngine.h | 109 +-
.../Core/PathSensitive/GRState.h | 16 +-
.../Core/PathSensitive/MemRegion.h | 4 +-
.../Core/PathSensitive/ObjCMessage.h | 26 +-
.../Core/PathSensitive/SValBuilder.h | 155 +-
.../StaticAnalyzer/Core/PathSensitive/Store.h | 27 +-
.../Core/PathSensitive/StoreRef.h | 50 +
include/clang/Tooling/Tooling.h | 81 +
lib/AST/ASTContext.cpp | 296 +-
lib/AST/ASTDiagnostic.cpp | 7 +-
lib/AST/ASTImporter.cpp | 237 +-
lib/AST/CMakeLists.txt | 1 +
lib/AST/CXXInheritance.cpp | 2 +-
lib/AST/Decl.cpp | 419 ++-
lib/AST/DeclBase.cpp | 181 +-
lib/AST/DeclCXX.cpp | 404 ++-
lib/AST/DeclObjC.cpp | 69 +-
lib/AST/DeclPrinter.cpp | 59 +-
lib/AST/DeclTemplate.cpp | 256 +-
lib/AST/DumpXML.cpp | 19 +-
lib/AST/Expr.cpp | 368 ++-
lib/AST/ExprCXX.cpp | 156 +-
lib/AST/ExprClassification.cpp | 38 +-
lib/AST/ExprConstant.cpp | 376 ++-
lib/AST/ExternalASTSource.cpp | 59 +
lib/AST/InheritViz.cpp | 39 +-
lib/AST/ItaniumCXXABI.cpp | 2 +-
lib/AST/ItaniumMangle.cpp | 576 +++-
lib/AST/MicrosoftCXXABI.cpp | 2 +-
lib/AST/MicrosoftMangle.cpp | 15 +-
lib/AST/NestedNameSpecifier.cpp | 246 ++
lib/AST/RecordLayoutBuilder.cpp | 141 +-
lib/AST/Stmt.cpp | 98 +-
lib/AST/StmtDumper.cpp | 30 +-
lib/AST/StmtIterator.cpp | 2 +-
lib/AST/StmtPrinter.cpp | 148 +-
lib/AST/StmtProfile.cpp | 58 +-
lib/AST/TemplateBase.cpp | 12 +-
lib/AST/TemplateName.cpp | 4 +
lib/AST/Type.cpp | 295 +-
lib/AST/TypeLoc.cpp | 87 +-
lib/AST/TypePrinter.cpp | 76 +-
lib/Analysis/AnalysisContext.cpp | 118 +-
lib/Analysis/CFG.cpp | 650 ++--
lib/Analysis/CFGReachabilityAnalysis.cpp | 6 +-
lib/Analysis/CFGStmtMap.cpp | 6 +-
lib/Analysis/CMakeLists.txt | 1 -
lib/Analysis/CocoaConventions.cpp | 92 +-
lib/Analysis/PrintfFormatString.cpp | 43 +-
lib/Analysis/ReachableCode.cpp | 10 +-
lib/Analysis/UninitializedValues.cpp | 918 ++++--
lib/Analysis/UninitializedValuesV2.cpp | 610 ----
lib/Basic/CMakeLists.txt | 4 +-
lib/Basic/Diagnostic.cpp | 23 +-
lib/Basic/DiagnosticIDs.cpp | 144 +-
lib/Basic/FileManager.cpp | 73 +-
lib/Basic/IdentifierTable.cpp | 85 +-
lib/Basic/SourceManager.cpp | 220 +-
lib/Basic/TargetInfo.cpp | 12 +-
lib/Basic/Targets.cpp | 227 +-
lib/Basic/Version.cpp | 19 +-
lib/Basic/VersionTuple.cpp | 36 +
lib/CMakeLists.txt | 1 +
lib/CodeGen/BackendUtil.cpp | 29 +-
lib/CodeGen/CGBlocks.cpp | 584 +++-
lib/CodeGen/CGBlocks.h | 4 +
lib/CodeGen/CGBuiltin.cpp | 230 +-
lib/CodeGen/CGCXX.cpp | 101 +-
lib/CodeGen/CGCXXABI.cpp | 4 +-
lib/CodeGen/CGCall.cpp | 164 +-
lib/CodeGen/CGCall.h | 26 +-
lib/CodeGen/CGClass.cpp | 156 +-
lib/CodeGen/CGCleanup.cpp | 23 +
lib/CodeGen/CGDebugInfo.cpp | 399 ++-
lib/CodeGen/CGDebugInfo.h | 32 +-
lib/CodeGen/CGDecl.cpp | 345 +-
lib/CodeGen/CGDeclCXX.cpp | 48 +-
lib/CodeGen/CGException.cpp | 106 +-
lib/CodeGen/CGException.h | 1 +
lib/CodeGen/CGExpr.cpp | 99 +-
lib/CodeGen/CGExprAgg.cpp | 134 +-
lib/CodeGen/CGExprCXX.cpp | 648 ++--
lib/CodeGen/CGExprComplex.cpp | 9 +-
lib/CodeGen/CGExprConstant.cpp | 397 ++-
lib/CodeGen/CGExprScalar.cpp | 247 +-
lib/CodeGen/CGObjC.cpp | 335 +-
lib/CodeGen/CGObjCGNU.cpp | 1422 +++++----
lib/CodeGen/CGObjCMac.cpp | 364 +--
lib/CodeGen/CGObjCRuntime.cpp | 310 ++
lib/CodeGen/CGObjCRuntime.h | 24 +-
lib/CodeGen/CGRTTI.cpp | 17 +-
lib/CodeGen/CGRecordLayout.h | 5 +-
lib/CodeGen/CGRecordLayoutBuilder.cpp | 188 +-
lib/CodeGen/CGStmt.cpp | 360 ++-
lib/CodeGen/CGVTT.cpp | 45 +-
lib/CodeGen/CGVTables.cpp | 539 ++--
lib/CodeGen/CGVTables.h | 26 +-
lib/CodeGen/CMakeLists.txt | 2 +
lib/CodeGen/CodeGenAction.cpp | 2 +-
lib/CodeGen/CodeGenFunction.cpp | 138 +-
lib/CodeGen/CodeGenFunction.h | 97 +-
lib/CodeGen/CodeGenModule.cpp | 179 +-
lib/CodeGen/CodeGenModule.h | 69 +-
lib/CodeGen/CodeGenTBAA.cpp | 5 +-
lib/CodeGen/CodeGenTypes.cpp | 82 +-
lib/CodeGen/CodeGenTypes.h | 14 +
lib/CodeGen/ItaniumCXXABI.cpp | 55 +-
lib/CodeGen/MicrosoftCXXABI.cpp | 2 +-
lib/CodeGen/TargetInfo.cpp | 178 +-
lib/Driver/Compilation.cpp | 6 +
lib/Driver/Driver.cpp | 117 +-
lib/Driver/HostInfo.cpp | 7 +-
lib/Driver/OptTable.cpp | 4 +-
lib/Driver/ToolChain.cpp | 16 +-
lib/Driver/ToolChains.cpp | 475 ++-
lib/Driver/ToolChains.h | 82 +-
lib/Driver/Tools.cpp | 504 ++-
lib/Driver/Tools.h | 3 +-
lib/Frontend/ASTConsumers.cpp | 39 +-
lib/Frontend/ASTUnit.cpp | 463 +--
lib/Frontend/CMakeLists.txt | 6 +-
lib/Frontend/CacheTokens.cpp | 6 +-
lib/Frontend/CompilerInstance.cpp | 107 +-
lib/Frontend/CompilerInvocation.cpp | 117 +-
.../CreateInvocationFromCommandLine.cpp | 90 +
lib/Frontend/DeclXML.cpp | 183 --
lib/Frontend/DependencyFile.cpp | 2 +-
lib/Frontend/DocumentXML.cpp | 381 ---
lib/Frontend/FrontendAction.cpp | 31 +-
lib/Frontend/FrontendActions.cpp | 7 -
lib/Frontend/HeaderIncludeGen.cpp | 32 +-
lib/Frontend/InitHeaderSearch.cpp | 124 +-
lib/Frontend/InitPreprocessor.cpp | 37 +-
lib/Frontend/LogDiagnosticPrinter.cpp | 146 +
lib/Frontend/MultiplexConsumer.cpp | 19 +
lib/Frontend/PrintPreprocessedOutput.cpp | 2 +-
lib/Frontend/StmtXML.cpp | 439 ---
lib/Frontend/TextDiagnosticPrinter.cpp | 34 +-
lib/Frontend/TypeXML.cpp | 119 -
.../ExecuteCompilerInvocation.cpp | 1 -
lib/Headers/CMakeLists.txt | 30 +-
lib/Headers/avxintrin.h | 42 +-
lib/Headers/emmintrin.h | 10 +-
lib/Headers/mm3dnow.h | 161 +
lib/Headers/mm_malloc.h | 2 +
lib/Headers/stddef.h | 5 +-
lib/Headers/stdint.h | 37 +-
lib/Headers/xmmintrin.h | 2 +-
lib/Index/DeclReferenceMap.cpp | 2 +-
lib/Index/Entity.cpp | 2 +-
lib/Lex/HeaderMap.cpp | 4 +-
lib/Lex/HeaderSearch.cpp | 123 +-
lib/Lex/Lexer.cpp | 104 +-
lib/Lex/LiteralSupport.cpp | 2 +-
lib/Lex/MacroArgs.cpp | 2 +-
lib/Lex/PPDirectives.cpp | 128 +-
lib/Lex/PPExpressions.cpp | 18 +-
lib/Lex/PPLexerChange.cpp | 20 +-
lib/Lex/PPMacroExpansion.cpp | 39 +-
lib/Lex/PTHLexer.cpp | 4 +-
lib/Lex/Pragma.cpp | 26 +-
lib/Lex/PreprocessingRecord.cpp | 15 +-
lib/Lex/Preprocessor.cpp | 52 +-
lib/Lex/PreprocessorLexer.cpp | 2 +-
lib/Lex/TokenLexer.cpp | 8 +-
lib/Makefile | 3 +-
lib/Parse/ParseAST.cpp | 23 +-
lib/Parse/ParseCXXInlineMethods.cpp | 52 +-
lib/Parse/ParseDecl.cpp | 832 ++++-
lib/Parse/ParseDeclCXX.cpp | 440 ++-
lib/Parse/ParseExpr.cpp | 302 +-
lib/Parse/ParseExprCXX.cpp | 326 +-
lib/Parse/ParseInit.cpp | 2 +-
lib/Parse/ParseObjc.cpp | 95 +-
lib/Parse/ParsePragma.cpp | 44 +-
lib/Parse/ParsePragma.h | 10 +
lib/Parse/ParseStmt.cpp | 436 ++-
lib/Parse/ParseTemplate.cpp | 151 +-
lib/Parse/ParseTentative.cpp | 21 +-
lib/Parse/Parser.cpp | 144 +-
lib/Parse/RAIIObjectsForParser.h | 26 +-
lib/Rewrite/RewriteObjC.cpp | 160 +-
lib/Rewrite/Rewriter.cpp | 177 +-
lib/Sema/AnalysisBasedWarnings.cpp | 277 +-
lib/Sema/AttributeList.cpp | 98 +-
lib/Sema/CMakeLists.txt | 2 +
lib/Sema/CodeCompleteConsumer.cpp | 19 +-
lib/Sema/DeclSpec.cpp | 331 +-
lib/Sema/DelayedDiagnostic.cpp | 51 +
lib/Sema/IdentifierResolver.cpp | 46 +-
lib/Sema/JumpDiagnostics.cpp | 5 +
lib/Sema/Scope.cpp | 57 +
lib/Sema/Sema.cpp | 142 +-
lib/Sema/SemaAccess.cpp | 16 +-
lib/Sema/SemaAttr.cpp | 12 +-
lib/Sema/SemaCXXCast.cpp | 366 ++-
lib/Sema/SemaCXXScopeSpec.cpp | 85 +-
lib/Sema/SemaChecking.cpp | 314 +-
lib/Sema/SemaCodeComplete.cpp | 166 +-
lib/Sema/SemaDecl.cpp | 1218 +++++--
lib/Sema/SemaDeclAttr.cpp | 361 ++-
lib/Sema/SemaDeclCXX.cpp | 712 +++--
lib/Sema/SemaDeclObjC.cpp | 105 +-
lib/Sema/SemaExceptionSpec.cpp | 304 +-
lib/Sema/SemaExpr.cpp | 2844 +++++++++++------
lib/Sema/SemaExprCXX.cpp | 1068 +++++--
lib/Sema/SemaExprObjC.cpp | 221 +-
lib/Sema/SemaInit.cpp | 240 +-
lib/Sema/SemaLookup.cpp | 53 +-
lib/Sema/SemaObjCProperty.cpp | 46 +-
lib/Sema/SemaOverload.cpp | 807 +++--
lib/Sema/SemaStmt.cpp | 494 ++-
lib/Sema/SemaTemplate.cpp | 722 +++--
lib/Sema/SemaTemplateDeduction.cpp | 125 +-
lib/Sema/SemaTemplateInstantiate.cpp | 117 +-
lib/Sema/SemaTemplateInstantiateDecl.cpp | 236 +-
lib/Sema/SemaTemplateVariadic.cpp | 5 +-
lib/Sema/SemaType.cpp | 396 ++-
lib/Sema/TargetAttributesSema.cpp | 2 +-
lib/Sema/TreeTransform.h | 1493 +++++----
lib/Sema/TypeLocBuilder.h | 3 +-
lib/Serialization/ASTCommon.cpp | 2 +
lib/Serialization/ASTCommon.h | 4 +-
lib/Serialization/ASTReader.cpp | 273 +-
lib/Serialization/ASTReaderDecl.cpp | 219 +-
lib/Serialization/ASTReaderStmt.cpp | 195 +-
lib/Serialization/ASTWriter.cpp | 215 +-
lib/Serialization/ASTWriterDecl.cpp | 57 +-
lib/Serialization/ASTWriterStmt.cpp | 119 +-
lib/Serialization/CMakeLists.txt | 3 +-
lib/Serialization/ChainedIncludesSource.cpp | 235 ++
.../Checkers/AdjustedReturnValueChecker.cpp | 29 +-
.../Checkers/AnalyzerStatsChecker.cpp | 44 +-
.../Checkers/ArrayBoundChecker.cpp | 4 +-
.../Checkers/ArrayBoundCheckerV2.cpp | 90 +-
.../Checkers/AttrNonNullChecker.cpp | 34 +-
.../Checkers/BasicObjCFoundationChecks.cpp | 206 +-
.../Checkers/BasicObjCFoundationChecks.h | 35 -
.../Checkers/BuiltinFunctionChecker.cpp | 22 +-
lib/StaticAnalyzer/Checkers/CMakeLists.txt | 3 +-
.../Checkers/CStringChecker.cpp | 309 +-
.../Checkers/CallAndMessageChecker.cpp | 121 +-
.../Checkers/CastSizeChecker.cpp | 4 +-
.../Checkers/CastToStructChecker.cpp | 4 +-
.../Checkers/CheckObjCDealloc.cpp | 4 +-
.../Checkers/CheckObjCInstMethSignature.cpp | 4 +-
.../Checkers/CheckSecuritySyntaxOnly.cpp | 220 +-
.../Checkers/CheckSizeofPointer.cpp | 10 +-
lib/StaticAnalyzer/Checkers/Checkers.td | 416 ++-
lib/StaticAnalyzer/Checkers/ChrootChecker.cpp | 4 +-
.../Checkers/ClangSACheckerProvider.cpp | 118 +-
lib/StaticAnalyzer/Checkers/ClangSACheckers.h | 2 +-
.../Checkers/DeadStoresChecker.cpp | 5 +-
lib/StaticAnalyzer/Checkers/DebugCheckers.cpp | 8 +-
.../Checkers/DereferenceChecker.cpp | 69 +-
.../Checkers/DivZeroChecker.cpp | 33 +-
.../Checkers/ExperimentalChecks.cpp | 26 -
.../Checkers/ExperimentalChecks.h | 31 -
.../Checkers/FixedAddressChecker.cpp | 4 +-
.../Checkers/IdempotentOperationChecker.cpp | 40 +-
lib/StaticAnalyzer/Checkers/InternalChecks.h | 48 -
.../Checkers/IteratorsChecker.cpp | 582 ++++
.../Checkers/LLVMConventionsChecker.cpp | 7 +-
.../Checkers/MacOSXAPIChecker.cpp | 4 +-
lib/StaticAnalyzer/Checkers/MallocChecker.cpp | 187 +-
.../Checkers/NSAutoreleasePoolChecker.cpp | 4 +-
.../Checkers/NSErrorChecker.cpp | 410 ++-
.../Checkers/NoReturnFunctionChecker.cpp | 23 +-
.../Checkers/OSAtomicChecker.cpp | 30 +-
.../Checkers/ObjCAtSyncChecker.cpp | 4 +-
.../Checkers/ObjCSelfInitChecker.cpp | 15 +-
.../Checkers/ObjCUnusedIVarsChecker.cpp | 4 +-
.../Checkers/PointerArithChecker.cpp | 4 +-
.../Checkers/PointerSubChecker.cpp | 4 +-
.../Checkers/PthreadLockChecker.cpp | 4 +-
.../Checkers/ReturnPointerRangeChecker.cpp | 4 +-
.../Checkers/ReturnUndefChecker.cpp | 35 +-
.../Checkers/StackAddrEscapeChecker.cpp | 4 +-
lib/StaticAnalyzer/Checkers/StreamChecker.cpp | 4 +-
.../Checkers/UndefBranchChecker.cpp | 38 +-
.../Checkers/UndefCapturedBlockVarChecker.cpp | 28 +-
.../Checkers/UndefResultChecker.cpp | 28 +-
.../UndefinedArraySubscriptChecker.cpp | 33 +-
.../Checkers/UndefinedAssignmentChecker.cpp | 39 +-
.../Checkers/UnixAPIChecker.cpp | 4 +-
.../Checkers/UnreachableCodeChecker.cpp | 14 +-
.../Checkers/VLASizeChecker.cpp | 37 +-
lib/StaticAnalyzer/Core/AggExprVisitor.cpp | 2 +-
lib/StaticAnalyzer/Core/BasicStore.cpp | 15 +-
lib/StaticAnalyzer/Core/BasicValueFactory.cpp | 8 +-
lib/StaticAnalyzer/Core/BugReporter.cpp | 14 +-
lib/StaticAnalyzer/Core/CFRefCount.cpp | 63 +-
lib/StaticAnalyzer/Core/CMakeLists.txt | 9 +-
lib/StaticAnalyzer/Core/CXXExprEngine.cpp | 300 +-
.../Core/{Checker.cpp => CheckerContext.cpp} | 10 +-
lib/StaticAnalyzer/Core/CheckerManager.cpp | 97 +
lib/StaticAnalyzer/Core/CoreEngine.cpp | 23 +-
lib/StaticAnalyzer/Core/Environment.cpp | 19 +-
lib/StaticAnalyzer/Core/ExplodedGraph.cpp | 2 +-
.../{Checkers => Core}/ExprEngine.cpp | 1103 ++-----
lib/StaticAnalyzer/Core/FlatStore.cpp | 13 +
lib/StaticAnalyzer/Core/ObjCMessage.cpp | 56 +-
lib/StaticAnalyzer/Core/RegionStore.cpp | 77 +-
lib/StaticAnalyzer/Core/SValBuilder.cpp | 139 +-
.../Core/SimpleConstraintManager.cpp | 1 -
lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp | 30 +-
lib/StaticAnalyzer/Core/Store.cpp | 4 +-
.../Frontend/AnalysisConsumer.cpp | 91 +-
.../Frontend/CheckerRegistration.cpp | 5 +-
lib/Tooling/CMakeLists.txt | 6 +
.../JsonCompileCommandLineDatabase.cpp | 214 ++
lib/Tooling/JsonCompileCommandLineDatabase.h | 107 +
lib/Tooling/Makefile | 15 +
lib/Tooling/Tooling.cpp | 322 ++
runtime/CMakeLists.txt | 1 -
runtime/Makefile | 116 +-
runtime/compiler-rt/Makefile | 114 +
runtime/libcxx/Makefile | 63 -
test/ASTMerge/var.c | 2 +-
test/Analysis/CFDateGC.m | 10 +-
test/Analysis/CFNumber.c | 8 +-
.../CFRetainRelease_NSAssertionHandler.m | 8 +-
test/Analysis/CGColorSpace.c | 8 +-
test/Analysis/CheckNSError.m | 8 +-
test/Analysis/MissingDealloc.m | 2 +-
test/Analysis/NSPanel.m | 8 +-
test/Analysis/NSString.m | 23 +-
test/Analysis/NSWindow.m | 8 +-
test/Analysis/NoReturn.m | 8 +-
test/Analysis/OSAtomic_mac.cpp | 19 +
test/Analysis/ObjCProperties.m | 8 +-
test/Analysis/ObjCRetSigs.m | 2 +-
test/Analysis/PR2599.m | 8 +-
test/Analysis/PR2978.m | 2 +-
test/Analysis/PR3991.m | 8 +-
test/Analysis/PR7218.c | 2 +-
test/Analysis/PR9741.cpp | 8 +
.../additive-folding-range-constraints.c | 2 +-
test/Analysis/additive-folding.c | 4 +-
test/Analysis/analyzer-stats.c | 2 +-
test/Analysis/array-struct-region.c | 4 +-
test/Analysis/array-struct.c | 8 +-
test/Analysis/auto-obj-dtors-cfg-output.cpp | 150 +-
test/Analysis/base-init.cpp | 3 +-
test/Analysis/blocks.m | 2 +-
test/Analysis/bstring.c | 111 +-
test/Analysis/casts.c | 4 +-
test/Analysis/casts.m | 4 +-
test/Analysis/cfref_PR2519.c | 8 +-
test/Analysis/cfref_rdar6080742.c | 8 +-
test/Analysis/chroot.c | 2 +-
test/Analysis/complex.c | 8 +-
test/Analysis/concrete-address.c | 4 +-
test/Analysis/conditional-op-missing-lhs.c | 26 -
test/Analysis/constant-folding.c | 2 +-
test/Analysis/cxx-crashes.cpp | 13 +-
test/Analysis/dead-stores.c | 10 +-
test/Analysis/dead-stores.cpp | 10 +-
test/Analysis/dead-stores.m | 4 +-
test/Analysis/delegates.m | 4 +-
test/Analysis/derived-to-base.cpp | 2 +-
test/Analysis/dtor.cpp | 2 +-
test/Analysis/elementtype.c | 2 +-
test/Analysis/exercise-ps.c | 4 +-
test/Analysis/fields.c | 4 +-
test/Analysis/flat-store.c | 2 +-
test/Analysis/free.c | 2 +-
test/Analysis/func.c | 4 +-
.../idempotent-operations-limited-loops.c | 6 +-
test/Analysis/idempotent-operations.c | 9 +-
test/Analysis/idempotent-operations.cpp | 21 +-
test/Analysis/idempotent-operations.m | 14 +-
test/Analysis/initializer.cpp | 2 +-
test/Analysis/inline.c | 3 +-
test/Analysis/inline2.c | 2 +-
test/Analysis/inline3.c | 2 +-
test/Analysis/inline4.c | 2 +-
test/Analysis/iterators.cpp | 105 +
test/Analysis/lvalue.cpp | 2 +-
test/Analysis/malloc.c | 28 +-
.../{SemaObjC => Analysis}/method-arg-decay.m | 2 +-
test/Analysis/method-call.cpp | 2 +-
test/Analysis/misc-ps-64.m | 8 +-
test/Analysis/misc-ps-basic-store.m | 2 +-
test/Analysis/misc-ps-eager-assume.m | 4 +-
test/Analysis/misc-ps-flat-store.c | 2 +-
test/Analysis/misc-ps-ranges.m | 4 +-
test/Analysis/misc-ps-region-store-i386.m | 2 +-
test/Analysis/misc-ps-region-store-x86_64.m | 2 +-
test/Analysis/misc-ps-region-store.cpp | 159 +-
test/Analysis/misc-ps-region-store.m | 66 +-
test/Analysis/misc-ps-region-store.mm | 4 +-
test/Analysis/misc-ps.m | 48 +-
test/Analysis/new.cpp | 2 +-
...undefined-larger-than-voidptr-ret-region.m | 2 +-
...ceiver-undefined-larger-than-voidptr-ret.m | 12 +-
test/Analysis/no-exit-cfg.c | 4 +-
test/Analysis/no-outofbounds.c | 8 +-
test/Analysis/null-deref-ps-region.c | 2 +-
test/Analysis/null-deref-ps.c | 8 +-
test/Analysis/nullptr.cpp | 41 +
test/Analysis/operator-calls.cpp | 2 +-
test/Analysis/out-of-bounds.c | 11 +-
test/Analysis/outofbound.c | 2 +-
test/Analysis/override-werror.c | 4 +-
test/Analysis/plist-output-alternate.m | 2 +-
test/Analysis/plist-output.m | 2 +-
test/Analysis/pr4209.m | 4 +-
test/Analysis/pr_2542_rdar_6793404.m | 4 +-
test/Analysis/pr_4164.c | 4 +-
test/Analysis/properties.m | 2 +-
test/Analysis/ptr-arith.c | 4 +-
test/Analysis/rdar-6442306-1.m | 4 +-
test/Analysis/rdar-6540084.m | 2 +-
test/Analysis/rdar-6541136-region.c | 2 +-
test/Analysis/rdar-6541136.c | 2 +-
test/Analysis/rdar-6562655.m | 4 +-
test/Analysis/rdar-6582778-basic-store.c | 2 +-
...600344-nil-receiver-undefined-struct-ret.m | 4 +-
test/Analysis/rdar-7168531.m | 4 +-
test/Analysis/refcnt_naming.m | 4 +-
test/Analysis/reference.cpp | 2 +-
test/Analysis/region-1.m | 4 +-
test/Analysis/retain-release-basic-store.m | 2 +-
test/Analysis/retain-release-gc-only.m | 4 +-
test/Analysis/retain-release-region-store.m | 2 +-
test/Analysis/retain-release.m | 26 +-
.../Analysis/security-syntax-checks-no-emit.c | 2 +-
test/Analysis/security-syntax-checks.m | 63 +-
test/Analysis/self-init.m | 2 +-
test/Analysis/stack-addr-ps.c | 4 +-
test/Analysis/stackaddrleak.c | 2 +-
test/Analysis/stream.c | 2 +-
test/Analysis/string.c | 448 ++-
test/Analysis/undef-buffers.c | 2 +-
test/Analysis/uninit-msg-expr.m | 4 +-
test/Analysis/uninit-ps-rdar6145427.m | 4 +-
test/Analysis/uninit-vals-ps-region.m | 2 +-
test/Analysis/uninit-vals-ps.c | 4 +-
test/Analysis/uninit-vals.c | 53 -
test/Analysis/uninit-vals.m | 4 +-
test/Analysis/unions-region.m | 2 +-
test/Analysis/unix-fns.c | 4 +-
test/Analysis/unreachable-code-path.c | 2 +-
test/Analysis/unused-ivars.m | 2 +-
test/Analysis/variadic-method-types.m | 93 +
.../basic.lookup/basic.lookup.argdep/p2.cpp | 2 +-
.../basic.scope/basic.scope.local/p4-0x.cpp | 68 +
.../basic.scope/basic.scope.pdecl/p3.cpp | 26 +
.../basic/basic.stc/basic.stc.dynamic/p2.cpp | 2 +-
test/CXX/class.access/p4.cpp | 2 +-
test/CXX/class.derived/p8-0x.cpp | 22 -
test/CXX/class/class.mem/p2.cpp | 31 +
test/CXX/class/class.mem/p8-0x-pedantic.cpp | 14 -
test/CXX/class/class.mem/p8-0x.cpp | 2 -
.../class.mfct/class.mfct.non-static/p3.cpp | 17 +-
test/CXX/class/class.union/p1.cpp | 34 +-
test/CXX/class/p1-0x.cpp | 4 -
.../basic.namespace/namespace.def/p8.cpp | 21 +
test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p4.cpp | 2 +-
.../dcl.spec/dcl.type/dcl.spec.auto/p2.cpp | 2 +-
.../dcl.spec/dcl.type/dcl.spec.auto/p5.cpp | 7 +-
test/CXX/dcl.dcl/dcl.spec/dcl.type/p3-0x.cpp | 44 +
.../dcl.dcl/dcl.spec/dcl.typedef/p2-0x.cpp | 161 +
.../dcl.decl/dcl.init/dcl.init.string/p2.cpp | 2 +
test/CXX/dcl.decl/dcl.meaning/dcl.fct/p13.cpp | 2 +-
test/CXX/except/except.handle/p16.cpp | 2 +-
test/CXX/except/except.spec/p1.cpp | 60 +
test/CXX/except/except.spec/p11.cpp | 12 +
test/CXX/except/except.spec/p14.cpp | 2 +-
test/CXX/except/except.spec/p15.cpp | 24 +
.../except/except.spec/p2-dynamic-types.cpp | 34 +
test/CXX/except/except.spec/p2-places.cpp | 63 +
test/CXX/except/except.spec/p3.cpp | 106 +
test/CXX/except/except.spec/p5-pointers.cpp | 85 +
test/CXX/except/except.spec/p5-virtual.cpp | 96 +
test/CXX/except/except.spec/p9-dynamic.cpp | 11 +
test/CXX/except/except.spec/p9-noexcept.cpp | 18 +
test/CXX/except/except.spec/template.cpp | 12 +
.../expr.unary/expr.unary.noexcept/cg.cpp | 6 +-
.../expr.unary/expr.unary.noexcept/sema.cpp | 6 +-
test/CXX/expr/expr.unary/expr.unary.op/p6.cpp | 6 +-
test/CXX/lex/lex.pptoken/p3-0x.cpp | 11 +
.../p2-resolve-single-template-id.cpp | 100 +-
test/CXX/special/class.copy/p33-0x.cpp | 2 +-
.../stmt.stmt/stmt.iter/stmt.ranged/p1.cpp | 210 ++
.../multi-level-substitution.cpp | 18 +
test/CXX/temp/temp.decls/temp.variadic/p4.cpp | 2 +-
test/CXX/temp/temp.decls/temp.variadic/p5.cpp | 6 +-
.../temp.arg.explicit/p3-nodeduct.cpp | 6 +-
.../temp/temp.spec/temp.expl.spec/p2-0x.cpp | 63 +
test/CXX/temp/temp.spec/temp.expl.spec/p2.cpp | 12 +
.../temp/temp.spec/temp.explicit/p1-emit.cpp | 8 +-
.../temp/temp.spec/temp.explicit/p3-0x.cpp | 65 +
test/CodeCompletion/PR9728.cpp | 9 +
test/CodeCompletion/ordinary-name.cpp | 58 +-
test/CodeGen/2008-07-17-no-emit-on-error.c | 4 +-
test/CodeGen/altivec.c | 31 +-
test/CodeGen/arm-clear.c | 21 +
test/CodeGen/arm-pcs.c | 12 +
test/CodeGen/arm-vector-align.c | 19 +
test/CodeGen/atomic.c | 5 +
test/CodeGen/attr-availability.c | 31 +
test/CodeGen/block-byref-aggr.c | 17 +
test/CodeGen/builtin-attributes.c | 5 +
test/CodeGen/builtin-expect.c | 12 +-
test/CodeGen/builtin-memfns.c | 35 +-
test/CodeGen/builtinmemcpy.c | 3 -
test/CodeGen/builtins-ppc-altivec.c | 325 +-
test/CodeGen/builtins-ptx.c | 99 +
test/CodeGen/builtins-x86.c | 31 +-
test/CodeGen/builtins.c | 2 +-
test/CodeGen/char-literal.c | 2 +-
test/CodeGen/conditional.c | 21 +-
test/CodeGen/const-init.c | 4 +
test/CodeGen/darwin-string-literals.c | 4 +-
test/CodeGen/debug-info-line2.c | 17 +
test/CodeGen/decl.c | 2 +-
test/CodeGen/ext-vector.c | 134 +-
test/CodeGen/integer-overflow.c | 14 +
test/CodeGen/mangle.c | 9 +
test/CodeGen/mmx-inline-asm.c | 22 +
test/CodeGen/mrtd.c | 15 +
test/CodeGen/ms_struct-bitfield-init.c | 68 +
test/CodeGen/ms_struct-bitfield.c | 131 +
test/CodeGen/mult-alt-x86.c | 56 +-
test/CodeGen/packed-arrays.c | 157 +
test/CodeGen/ptx-cc.c | 9 +
test/CodeGen/regparm-flag.c | 5 +
test/CodeGen/switch-dce.c | 247 ++
test/CodeGen/union.c | 2 +
test/CodeGen/x86_64-arguments-darwin.c | 17 +
test/CodeGen/x86_64-arguments.c | 22 +-
test/CodeGenCXX/PR5863-unreachable-block.cpp | 2 +-
test/CodeGenCXX/anonymous-namespaces.cpp | 2 +-
.../anonymous-union-member-initializer.cpp | 19 +-
test/CodeGenCXX/apple-kext-guard-variable.cpp | 9 +
test/CodeGenCXX/arm.cpp | 3 +-
test/CodeGenCXX/blocks.cpp | 49 +
test/CodeGenCXX/class-layout.cpp | 28 +
test/CodeGenCXX/cxx0x-delegating-ctors.cpp | 48 +
test/CodeGenCXX/debug-info-byval.cpp | 2 +-
test/CodeGenCXX/debug-info-cxx0x.cpp | 8 +
test/CodeGenCXX/debug-info-fn-template.cpp | 15 +
test/CodeGenCXX/debug-info-method-spec.cpp | 10 +
test/CodeGenCXX/debug-info-namespace.cpp | 2 +-
test/CodeGenCXX/debug-info-template.cpp | 24 +
test/CodeGenCXX/debug-info-this.cpp | 15 +
...ived-to-virtual-base-class-calls-final.cpp | 2 +-
test/CodeGenCXX/destructors.cpp | 2 +-
.../devirtualize-virtual-function-calls.cpp | 10 +-
test/CodeGenCXX/dynamic-cast-always-null.cpp | 19 +
test/CodeGenCXX/dynamic-cast.cpp | 2 +-
test/CodeGenCXX/dyncast.cpp | 367 ---
test/CodeGenCXX/eh.cpp | 2 +-
test/CodeGenCXX/exceptions-no-rtti.cpp | 2 +-
test/CodeGenCXX/exceptions.cpp | 87 +-
test/CodeGenCXX/explicit-instantiation.cpp | 2 +-
test/CodeGenCXX/for-range-temporaries.cpp | 131 +
test/CodeGenCXX/for-range.cpp | 128 +
test/CodeGenCXX/global-init.cpp | 21 +-
test/CodeGenCXX/goto.cpp | 2 +-
test/CodeGenCXX/mangle-exprs.cpp | 60 +
test/CodeGenCXX/mangle-subst-std.cpp | 4 +-
test/CodeGenCXX/mangle.cpp | 67 +-
test/CodeGenCXX/member-function-pointers.cpp | 23 +
test/CodeGenCXX/nrvo.cpp | 2 +-
test/CodeGenCXX/pointers-to-data-members.cpp | 10 +-
test/CodeGenCXX/pragma-pack.cpp | 4 +-
test/CodeGenCXX/references.cpp | 11 +
.../specialized-static-data-mem-init.cpp | 4 +-
test/CodeGenCXX/static-data-member.cpp | 4 +-
test/CodeGenCXX/static-init-3.cpp | 4 +-
test/CodeGenCXX/static-init.cpp | 4 +-
...emplate-inner-struct-visibility-hidden.cpp | 2 +-
.../threadsafe-statics-exceptions.cpp | 2 +-
test/CodeGenCXX/threadsafe-statics.cpp | 10 +-
test/CodeGenCXX/throw-expression-dtor.cpp | 2 +-
test/CodeGenCXX/throw-expressions.cpp | 2 +-
test/CodeGenCXX/try-catch.cpp | 2 +-
test/CodeGenCXX/typeid.cpp | 22 +
test/CodeGenCXX/unknown-anytype.cpp | 99 +
test/CodeGenCXX/value-init.cpp | 58 +-
test/CodeGenCXX/visibility.cpp | 11 +
test/CodeGenCXX/vtable-debug-info.cpp | 5 +-
test/CodeGenCXX/vtable-layout.cpp | 22 +
test/CodeGenCXX/vtable-linkage.cpp | 2 +-
test/CodeGenCXX/x86_64-arguments.cpp | 6 +-
test/CodeGenObjC/atomic-aggregate-property.m | 2 +-
test/CodeGenObjC/attr-availability.m | 24 +
test/CodeGenObjC/bitfield-access.m | 9 +-
test/CodeGenObjC/blocks.m | 13 +
test/CodeGenObjC/constant-strings.m | 16 +-
test/CodeGenObjC/debug-info-foreach.m | 7 +
test/CodeGenObjC/debug-info-getter-name.m | 9 +-
test/CodeGenObjC/debug-info-property.m | 12 +
test/CodeGenObjC/fpret.m | 2 +-
test/CodeGenObjC/instance-method-metadata.m | 34 +
test/CodeGenObjC/messages.m | 20 +-
test/CodeGenObjC/metadata-symbols-64.m | 6 +-
test/CodeGenObjC/metadata_symbols.m | 4 +-
test/CodeGenObjC/misc-atomic-property.m | 80 +
test/CodeGenObjC/missing-atend-metadata.m | 24 -
test/CodeGenObjC/no-vararg-messaging.m | 18 +
test/CodeGenObjC/property-agrr-getter.m | 8 +-
test/CodeGenObjC/simplify-exceptions.mm | 18 +
test/CodeGenObjCXX/exceptions.mm | 2 +-
test/CodeGenObjCXX/ivar-objects.mm | 18 +
test/CodeGenObjCXX/message-reference.mm | 20 +
test/CodeGenObjCXX/property-reference.mm | 34 +
test/CodeGenObjCXX/references.mm | 2 +-
.../2011-04-15-vec-init-from-vec.cl | 12 +
test/CodeGenOpenCL/address-spaces.cl | 27 +
test/Coverage/ast-printing.c | 1 -
test/Coverage/ast-printing.cpp | 1 -
test/Coverage/html-diagnostics.c | 2 +-
test/Driver/apple-kext-i386.cpp | 9 +
test/Driver/apple-kext-mkernel.c | 24 +-
test/Driver/ast.c | 2 +-
test/Driver/cc-log-diagnostics.c | 29 +
test/Driver/cc-print-options.c | 2 +-
test/Driver/clang-exception-flags.cpp | 23 +
test/Driver/clang-translation.c | 2 +
test/Driver/clang_f_opts.c | 17 +
test/Driver/clang_wrapv_opts.c | 11 +
test/Driver/darwin-cc.c | 7 +-
test/Driver/darwin-dsymutil.c | 7 +
test/Driver/darwin-ld.c | 4 +-
test/Driver/darwin-version.c | 8 +
test/Driver/darwin-xarch.c | 4 +-
test/Driver/exceptions.m | 19 +
test/Driver/hello.c | 6 +-
test/Driver/sysroot-flags.c | 14 +-
test/FixIt/fixit-cxx0x.cpp | 3 +
test/FixIt/fixit-unrecoverable.c | 2 -
test/FixIt/fixit.c | 6 +
test/FixIt/fixit.cpp | 19 +
test/FixIt/no-macro-fixit.c | 16 +
test/FixIt/typo.c | 14 +-
test/FixIt/typo.cpp | 12 +-
test/FixIt/typo.m | 18 +-
test/Frontend/dependency-gen.c | 3 +-
test/Frontend/dependency-generation-crash.c | 4 +
test/Frontend/diagnostic-name.c | 5 +
test/Index/TestClassDecl.m | 2 +-
test/Index/annotate-context-sensitive.cpp | 42 +
test/Index/annotate-nested-name-specifier.cpp | 328 +-
test/Index/annotate-tokens.c | 50 +-
test/Index/annotate-tokens.cpp | 89 +-
test/Index/annotate-tokens.m | 31 +-
test/Index/blocks.c | 8 +-
test/Index/c-index-api-loadTU-test.m | 14 +-
test/Index/c-index-getCursor-test.m | 6 +-
test/Index/cindex-on-invalid.m | 17 +-
test/Index/complete-objc-message.m | 12 +
test/Index/complete-properties.m | 27 +-
test/Index/index-templates.cpp | 58 +-
test/Index/initializer-memory.cpp | 16 +
test/Index/invalid-rdar-8236270.cpp | 2 +-
test/Index/load-classes.cpp | 4 +-
test/Index/load-exprs.c | 20 +-
test/Index/load-namespaces.cpp | 16 +-
test/Index/load-stmts.cpp | 16 +-
test/Index/local-symbols.m | 2 +-
test/Index/nested-binaryoperators.cpp | 4 +-
test/Index/overrides.cpp | 4 +-
test/Index/pragma-diag-reparse.c | 13 +
test/Index/preamble-reparse-chained.c | 4 +-
test/Index/preamble.c | 4 +-
test/Index/rdar-8288645-invalid-code.mm | 2 +-
test/Index/recursive-cxx-member-calls.cpp | 523 +--
test/Index/recursive-member-access.c | 12 +-
test/Index/remap-load.c | 2 +-
test/Index/usrs-cxx0x.cpp | 2 +-
test/Index/usrs.cpp | 50 +-
test/Index/usrs.m | 44 +-
test/Lexer/has_feature_cxx0x.cpp | 38 +
test/Lexer/pragma-message.c | 2 +-
test/Makefile | 42 +-
test/Misc/Inputs/include.h | 1 +
test/Misc/caret-diags-macros.c | 23 +-
test/Misc/include-stack-for-note-flag.cpp | 18 +
test/Misc/warn-in-system-header.c | 4 +
test/Misc/warn-in-system-header.h | 4 +
test/PCH/Inputs/working-directory-1.h | 5 +
test/PCH/chain-cxx.cpp | 35 +-
test/PCH/chain-empty-initial-namespace.cpp | 24 +
test/PCH/chain-implicit-definition.cpp | 39 +
test/PCH/chain-late-anonymous-namespace.cpp | 61 +
test/PCH/chain-pending-instantiations.cpp | 33 +
test/PCH/cxx-chain-function-template.cpp | 32 +
test/PCH/cxx-for-range.cpp | 19 +
test/PCH/cxx-for-range.h | 35 +
test/PCH/cxx-reference.cpp | 6 +
test/PCH/cxx-reference.h | 13 +
test/PCH/cxx-templates.cpp | 29 +-
test/PCH/cxx-templates.h | 12 +
test/PCH/cxx_exprs.cpp | 6 +-
test/PCH/exprs.c | 5 +-
test/PCH/exprs.h | 6 +-
test/PCH/headersearch.cpp | 6 +-
test/PCH/modified-header-crash.c | 10 +
test/PCH/modified-header-crash.h | 1 +
test/PCH/objcxx-ivar-class.h | 1 +
test/PCH/pragma-diag-section.cpp | 5 +-
test/PCH/pragma-diag.c | 3 +-
test/PCH/rdar8852495.c | 3 +-
test/PCH/reloc.c | 2 +-
test/PCH/source-manager-stack.c | 4 +-
test/PCH/working-directory.cpp | 12 +
test/PCH/working-directory.h | 1 +
test/Parser/DelayedTemplateParsing.cpp | 42 +
test/Parser/MicrosoftExtensions.c | 2 +-
test/Parser/MicrosoftExtensions.cpp | 53 +
test/Parser/altivec.c | 8 +-
test/Parser/attr-availability.c | 20 +
test/Parser/c1x-generic-selection.c | 10 +
test/Parser/cxx-casting.cpp | 34 +-
test/Parser/cxx-decl.cpp | 4 +-
test/Parser/cxx-exception-spec.cpp | 17 -
test/Parser/cxx-member-crash.cpp | 15 +
test/Parser/cxx-stmt.cpp | 2 +-
test/Parser/cxx-throw.cpp | 2 +-
test/Parser/cxx0x-attributes.cpp | 2 +-
.../cxx0x-override-control-keywords.cpp | 3 -
test/Parser/expressions.c | 6 +
test/Parser/objc-missing-impl.m | 2 +-
test/Parser/objcxx-at.mm | 15 +
test/Parser/opencl-image-access.cl | 16 +
test/Parser/recovery.m | 5 +
test/Parser/selector-1.m | 26 +-
test/Parser/switch-recovery.cpp | 124 +
test/Preprocessor/init.c | 14 +-
test/Preprocessor/pragma-pushpop-macro.c | 2 +-
.../pragma_diagnostic_sections.cpp | 8 +-
test/Preprocessor/pragma_unknown.c | 2 +-
test/Preprocessor/stdint.c | 12 +
test/Preprocessor/traditional-cpp.c | 12 +
test/Rewriter/rewrite-block-literal-1.mm | 32 +
test/Rewriter/rewrite-block-pointer.mm | 17 +
test/Sema/__try.c | 171 +
test/Sema/align-x86-64.c | 14 +
test/Sema/align-x86.c | 26 +-
test/Sema/altivec-init.c | 12 +
test/Sema/annotate.c | 2 +-
test/Sema/anonymous-struct-union.c | 2 +-
test/Sema/arm-layout.c | 2 +-
test/Sema/attr-args.c | 40 +
test/Sema/attr-availability-ios.c | 21 +
test/Sema/attr-availability-macosx.c | 17 +
test/Sema/attr-availability.c | 6 +
test/Sema/attr-cleanup.c | 4 +-
test/Sema/attr-naked.c | 2 +-
test/Sema/attr-nodebug.c | 2 +-
test/Sema/attr-noinline.c | 2 +-
test/Sema/attr-noreturn.c | 4 +-
test/Sema/attr-regparm.c | 2 +-
test/Sema/attr-unused.c | 2 +-
test/Sema/block-args.c | 5 +
test/Sema/builtins-decl.c | 8 +
test/Sema/builtins.c | 2 +-
test/Sema/c89.c | 2 +
test/Sema/callingconv.c | 4 +-
test/Sema/const-eval.c | 2 +-
test/Sema/constructor-attribute.c | 4 +-
test/Sema/conversion.c | 4 +
test/Sema/expr-address-of.c | 11 +
test/Sema/exprs.c | 16 +-
test/Sema/format-strings-fixit.c | 26 +
test/Sema/function-redecl.c | 2 +-
test/Sema/generic-selection.c | 26 +
test/Sema/incomplete-call.c | 6 +-
test/Sema/knr-def-call.c | 6 +-
test/Sema/memset-invalid.c | 6 +
test/Sema/missing-field-initializers.c | 2 +-
test/Sema/neon-vector-types.c | 2 +-
test/Sema/overloaded-func-transparent-union.c | 28 +
test/Sema/parentheses.c | 3 +-
test/Sema/pragma-ms_struct.c | 34 +
test/Sema/sentinel-attribute.c | 2 +-
test/Sema/shift.c | 10 +
test/Sema/static-assert.c | 11 +
test/Sema/struct-decl.c | 11 +
test/Sema/uninit-variables-vectors.c | 17 +
test/Sema/uninit-variables.c | 123 +-
test/Sema/vector-ops.c | 3 +
test/Sema/warn-gnu-designators.c | 2 +-
test/Sema/warn-unused-function.c | 6 +-
test/Sema/warn-unused-value.c | 9 +
test/Sema/warn-write-strings.c | 2 +-
test/SemaCXX/MicrosoftExtensions.cpp | 86 +-
test/SemaCXX/PR9459.cpp | 7 +
test/SemaCXX/PR9460.cpp | 19 +
test/SemaCXX/PR9461.cpp | 32 +
test/SemaCXX/PR9572.cpp | 15 +
test/SemaCXX/__try.cpp | 58 +
test/SemaCXX/addr-of-overloaded-function.cpp | 7 +-
test/SemaCXX/address-space-conversion.cpp | 197 ++
test/SemaCXX/address-space-newdelete.cpp | 24 +
test/SemaCXX/address-space-references.cpp | 19 +
test/SemaCXX/alignof-sizeof-reference.cpp | 6 +-
test/SemaCXX/altivec.cpp | 30 +
test/SemaCXX/array-bounds.cpp | 53 +
test/SemaCXX/attr-nonnull.cpp | 6 +-
test/SemaCXX/attr-unavailable.cpp | 2 +-
test/SemaCXX/auto-subst-failure.cpp | 15 +
test/SemaCXX/conditional-expr.cpp | 2 +-
test/SemaCXX/conversion-function.cpp | 25 +
test/SemaCXX/cxx0x-constexpr-const.cpp | 10 +
test/SemaCXX/cxx0x-delegating-ctors.cpp | 36 +
test/SemaCXX/cxx0x-return-init-list.cpp | 18 +
test/SemaCXX/decltype-98.cpp | 3 +
.../SemaCXX/decltype-overloaded-functions.cpp | 13 +-
test/SemaCXX/destructor.cpp | 13 +
test/SemaCXX/enum-scoped.cpp | 6 +
test/SemaCXX/exception-spec-no-exceptions.cpp | 7 +-
test/SemaCXX/exception-spec.cpp | 193 --
test/SemaCXX/exceptions.cpp | 2 +-
test/SemaCXX/expression-traits.cpp | 620 ++++
test/SemaCXX/flexible-array-test.cpp | 16 +-
test/SemaCXX/for-range-examples.cpp | 150 +
test/SemaCXX/for-range-no-std.cpp | 37 +
test/SemaCXX/friend.cpp | 4 +-
test/SemaCXX/generic-selection.cpp | 46 +
test/SemaCXX/goto.cpp | 105 +
test/SemaCXX/goto2.cpp | 47 +
test/SemaCXX/init-priority-attr.cpp | 2 +-
test/SemaCXX/libstdcxx_is_pod_hack.cpp | 16 +
test/SemaCXX/literal-type.cpp | 63 +-
test/SemaCXX/member-expr.cpp | 5 +
test/SemaCXX/member-pointers-2.cpp | 15 +
test/SemaCXX/neon-vector-types.cpp | 27 +
test/SemaCXX/nested-name-spec-locations.cpp | 94 +-
test/SemaCXX/nullptr.cpp | 2 +-
test/SemaCXX/operator-arrow-temporary.cpp | 19 +
test/SemaCXX/overloaded-name.cpp | 12 +-
test/SemaCXX/overloaded-operator.cpp | 15 +
test/SemaCXX/pascal-strings.cpp | 6 +
test/SemaCXX/pseudo-destructors.cpp | 7 +-
test/SemaCXX/ptrtomember.cpp | 5 +-
test/SemaCXX/reinterpret-cast.cpp | 16 +-
test/SemaCXX/return-noreturn.cpp | 73 +-
test/SemaCXX/return.cpp | 14 +-
test/SemaCXX/rval-references.cpp | 2 +-
test/SemaCXX/scope-check.cpp | 20 +
test/SemaCXX/short-enums.cpp | 17 +
test/SemaCXX/short-wchar-sign.cpp | 6 +
test/SemaCXX/sourceranges.cpp | 6 +-
test/SemaCXX/static-cast.cpp | 6 +-
test/SemaCXX/storage-class.cpp | 3 +
test/SemaCXX/type-traits.cpp | 1588 +++++++--
test/SemaCXX/uninit-variables-conditional.cpp | 23 +
test/SemaCXX/uninit-variables.cpp | 66 +-
test/SemaCXX/uninitialized.cpp | 53 +-
test/SemaCXX/unknown-anytype.cpp | 36 +
test/SemaCXX/unreachable-catch-clauses.cpp | 2 +-
test/SemaCXX/unreachable-code.cpp | 2 +-
test/SemaCXX/unused-functions.cpp | 4 +-
test/SemaCXX/vtable-instantiation.cc | 26 +
test/SemaCXX/warn-assignment-condition.cpp | 13 +
test/SemaCXX/warn-bool-conversion.cpp | 24 +
test/SemaCXX/warn-deprecated-header.cpp | 6 +
test/SemaCXX/warn-exit-time-destructors.cpp | 27 +
test/SemaCXX/warn-global-constructors.cpp | 4 +-
test/SemaCXX/warn-literal-conversion.cpp | 15 +-
test/SemaCXX/warn-missing-prototypes.cpp | 6 +
test/SemaCXX/warn-non-pod-memset.cpp | 63 +
test/SemaCXX/warn-overloaded-virtual.cpp | 12 +
test/SemaCXX/warn-shadow.cpp | 11 +
test/SemaCXX/warn-unreachable.cpp | 2 +-
test/SemaCXX/warn-unused-filescoped.cpp | 9 +
.../warn-using-namespace-in-header.cpp | 54 +
test/SemaCXX/warn-using-namespace-in-header.h | 50 +
test/SemaCXX/warn_false_to_pointer.cpp | 10 -
test/SemaCXX/writable-strings-deprecated.cpp | 2 +
test/SemaObjC/assign-rvalue-message.m | 24 +
test/SemaObjC/attr-objc-gc.m | 26 +-
test/SemaObjC/auto-objective-c.m | 33 -
test/SemaObjC/block-type-safety.m | 17 +
test/SemaObjC/call-super-2.m | 14 +-
test/SemaObjC/class-message-protocol-lookup.m | 34 +
test/SemaObjC/class-unavail-warning.m | 24 +
test/SemaObjC/comptypes-4.m | 2 +-
test/SemaObjC/conditional-expr-8.m | 25 +
test/SemaObjC/exprs.m | 4 +-
test/SemaObjC/foreach.m | 30 +
test/SemaObjC/format-arg-attribute.m | 8 +-
test/SemaObjC/iboutletcollection-attr.m | 4 +-
test/SemaObjC/idiomatic-parentheses.m | 4 +-
test/SemaObjC/ignore-weakimport-method.m | 1 -
test/SemaObjC/ivar-lookup.m | 12 +
test/SemaObjC/method-bad-param.m | 2 +-
test/SemaObjC/method-not-defined.m | 6 +-
test/SemaObjC/method-prototype-scope.m | 4 +-
test/SemaObjC/method-sentinel-attr.m | 2 +-
test/SemaObjC/missing-atend-metadata.m | 22 +
test/SemaObjC/nonnull.m | 27 +
.../SemaObjC/objc-qualified-property-lookup.m | 21 +
test/SemaObjC/property-13.m | 2 +-
test/SemaObjC/property-lookup-in-id.m | 33 +
test/SemaObjC/protocol-attribute.m | 2 +-
test/SemaObjC/self-declared-in-block.m | 51 +
test/SemaObjC/self-in-function.m | 26 +
test/SemaObjC/sizeof-interface.m | 2 +-
test/SemaObjC/special-dep-unavail-warning.m | 8 +-
test/SemaObjC/uninit-variables.m | 4 +-
.../unqualified-to-qualified-class-warn.m | 72 +
test/SemaObjC/warn-write-strings.m | 2 +-
test/SemaObjC/weak-attr-ivar.m | 10 +
test/SemaObjCXX/argument-dependent-lookup.mm | 19 +
test/SemaObjCXX/exceptions-fragile.mm | 2 +-
test/SemaObjCXX/goto.mm | 16 +
test/SemaObjCXX/objc-pointer-conv.mm | 2 +-
test/SemaObjCXX/overload-gc.mm | 24 +
test/SemaObjCXX/overload.mm | 26 +-
test/SemaObjCXX/parameters.mm | 5 +
test/SemaObjCXX/propert-dot-error.mm | 11 +
test/SemaObjCXX/property-reference.mm | 44 +
test/SemaObjCXX/references.mm | 6 +-
test/SemaOpenCL/extension-fp64.cl | 8 +-
test/SemaOpenCL/vec_step.cl | 32 +
test/SemaTemplate/address-spaces.cpp | 86 +
test/SemaTemplate/deduction-crash.cpp | 2 +-
.../dependent-template-recover.cpp | 42 +
test/SemaTemplate/destructor-template.cpp | 7 +
test/SemaTemplate/explicit-instantiation.cpp | 9 +-
test/SemaTemplate/instantiate-cast.cpp | 2 +-
test/SemaTemplate/instantiate-expr-4.cpp | 2 +-
test/SemaTemplate/instantiate-function-1.cpp | 2 +-
.../SemaTemplate/instantiate-member-class.cpp | 23 +
.../instantiate-member-template.cpp | 44 +
test/SemaTemplate/instantiate-try-catch.cpp | 2 +-
test/SemaTemplate/issue150.cpp | 107 +
.../nested-name-spec-template.cpp | 41 +
.../resolve-single-template-id.cpp | 80 +
test/SemaTemplate/temp_arg_template.cpp | 9 +-
test/SemaTemplate/typename-specifier-4.cpp | 8 +
test/lit.cfg | 9 +-
tools/c-index-test/Makefile | 3 +
tools/c-index-test/c-index-test.c | 39 +-
tools/driver/CMakeLists.txt | 1 +
tools/driver/Makefile | 2 +-
tools/driver/cc1_main.cpp | 2 +-
tools/driver/cc1as_main.cpp | 9 +-
tools/driver/driver.cpp | 105 +-
tools/libclang/CIndex.cpp | 899 ++++--
tools/libclang/CIndexCodeCompletion.cpp | 21 +-
tools/libclang/CIndexInclusionStack.cpp | 10 +-
tools/libclang/CIndexUSRs.cpp | 10 +-
tools/libclang/CIndexer.cpp | 5 +
tools/libclang/CMakeLists.txt | 62 +-
tools/libclang/CXCursor.cpp | 9 +-
tools/libclang/libclang.darwin.exports | 6 +-
tools/libclang/libclang.exports | 4 +
tools/scan-build/ccc-analyzer | 72 +-
tools/scan-build/scan-build | 30 +-
unittests/CMakeLists.txt | 10 +
.../JsonCompileCommandLineDatabaseTest.cpp | 232 ++
unittests/Tooling/ToolingTest.cpp | 175 +
utils/CmpDriver | 2 +-
.../Extra/Runtime/darwin-clang_rt.c | 2 +-
www/OpenProjects.html | 7 +
www/analyzer/latest_checker.html.incl | 2 +-
www/analyzer/release_notes.html | 50 +
www/analyzer/scan-build.html | 2 +-
www/cxx_status.html | 56 +-
www/get_started.html | 15 +-
www/hacking.html | 88 +-
www/libstdc++4.4-clang0x.patch | 369 +++
1142 files changed, 52414 insertions(+), 22512 deletions(-)
create mode 100644 examples/Tooling/CMakeLists.txt
create mode 100644 examples/Tooling/ClangCheck.cpp
create mode 100644 examples/Tooling/Makefile
delete mode 100644 include/clang/Analysis/Analyses/UninitializedValuesV2.h
create mode 100644 include/clang/Basic/AddressSpaces.h
create mode 100644 include/clang/Basic/BuiltinsPTX.def
create mode 100644 include/clang/Basic/ExceptionSpecificationType.h
create mode 100644 include/clang/Basic/ExpressionTraits.h
create mode 100644 include/clang/Basic/OpenCL.h
create mode 100644 include/clang/Basic/VersionTuple.h
delete mode 100644 include/clang/Frontend/DeclContextXML.def
delete mode 100644 include/clang/Frontend/DeclXML.def
delete mode 100644 include/clang/Frontend/DocumentXML.def
delete mode 100644 include/clang/Frontend/DocumentXML.h
create mode 100644 include/clang/Frontend/LogDiagnosticPrinter.h
delete mode 100644 include/clang/Frontend/StmtXML.def
delete mode 100644 include/clang/Frontend/TypeXML.def
create mode 100644 include/clang/Serialization/ChainedIncludesSource.h
rename include/clang/StaticAnalyzer/Core/{CheckerV2.h => Checker.h} (69%)
delete mode 100644 include/clang/StaticAnalyzer/Core/PathSensitive/Checker.h
delete mode 100644 include/clang/StaticAnalyzer/Core/PathSensitive/CheckerVisitor.def
delete mode 100644 include/clang/StaticAnalyzer/Core/PathSensitive/CheckerVisitor.h
create mode 100644 include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h
create mode 100644 include/clang/Tooling/Tooling.h
create mode 100644 lib/AST/ExternalASTSource.cpp
delete mode 100644 lib/Analysis/UninitializedValuesV2.cpp
create mode 100644 lib/Basic/VersionTuple.cpp
create mode 100644 lib/CodeGen/CGObjCRuntime.cpp
create mode 100644 lib/Frontend/CreateInvocationFromCommandLine.cpp
delete mode 100644 lib/Frontend/DeclXML.cpp
delete mode 100644 lib/Frontend/DocumentXML.cpp
create mode 100644 lib/Frontend/LogDiagnosticPrinter.cpp
delete mode 100644 lib/Frontend/StmtXML.cpp
delete mode 100644 lib/Frontend/TypeXML.cpp
create mode 100644 lib/Headers/mm3dnow.h
create mode 100644 lib/Sema/DelayedDiagnostic.cpp
create mode 100644 lib/Sema/Scope.cpp
create mode 100644 lib/Serialization/ChainedIncludesSource.cpp
delete mode 100644 lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.h
delete mode 100644 lib/StaticAnalyzer/Checkers/ExperimentalChecks.cpp
delete mode 100644 lib/StaticAnalyzer/Checkers/ExperimentalChecks.h
delete mode 100644 lib/StaticAnalyzer/Checkers/InternalChecks.h
create mode 100644 lib/StaticAnalyzer/Checkers/IteratorsChecker.cpp
rename lib/StaticAnalyzer/Core/{Checker.cpp => CheckerContext.cpp} (78%)
rename lib/StaticAnalyzer/{Checkers => Core}/ExprEngine.cpp (79%)
create mode 100644 lib/Tooling/CMakeLists.txt
create mode 100644 lib/Tooling/JsonCompileCommandLineDatabase.cpp
create mode 100644 lib/Tooling/JsonCompileCommandLineDatabase.h
create mode 100644 lib/Tooling/Makefile
create mode 100644 lib/Tooling/Tooling.cpp
create mode 100644 runtime/compiler-rt/Makefile
delete mode 100644 runtime/libcxx/Makefile
create mode 100644 test/Analysis/OSAtomic_mac.cpp
create mode 100644 test/Analysis/PR9741.cpp
delete mode 100644 test/Analysis/conditional-op-missing-lhs.c
create mode 100644 test/Analysis/iterators.cpp
rename test/{SemaObjC => Analysis}/method-arg-decay.m (98%)
create mode 100644 test/Analysis/nullptr.cpp
delete mode 100644 test/Analysis/uninit-vals.c
create mode 100644 test/Analysis/variadic-method-types.m
create mode 100644 test/CXX/basic/basic.scope/basic.scope.local/p4-0x.cpp
create mode 100644 test/CXX/basic/basic.scope/basic.scope.pdecl/p3.cpp
delete mode 100644 test/CXX/class.derived/p8-0x.cpp
create mode 100644 test/CXX/class/class.mem/p2.cpp
delete mode 100644 test/CXX/class/class.mem/p8-0x-pedantic.cpp
create mode 100644 test/CXX/dcl.dcl/dcl.spec/dcl.type/p3-0x.cpp
create mode 100644 test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p2-0x.cpp
create mode 100644 test/CXX/dcl.decl/dcl.init/dcl.init.string/p2.cpp
create mode 100644 test/CXX/except/except.spec/p1.cpp
create mode 100644 test/CXX/except/except.spec/p11.cpp
create mode 100644 test/CXX/except/except.spec/p15.cpp
create mode 100644 test/CXX/except/except.spec/p2-dynamic-types.cpp
create mode 100644 test/CXX/except/except.spec/p2-places.cpp
create mode 100644 test/CXX/except/except.spec/p3.cpp
create mode 100644 test/CXX/except/except.spec/p5-pointers.cpp
create mode 100644 test/CXX/except/except.spec/p5-virtual.cpp
create mode 100644 test/CXX/except/except.spec/p9-dynamic.cpp
create mode 100644 test/CXX/except/except.spec/p9-noexcept.cpp
create mode 100644 test/CXX/except/except.spec/template.cpp
create mode 100644 test/CXX/lex/lex.pptoken/p3-0x.cpp
create mode 100644 test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp
create mode 100644 test/CXX/temp/temp.spec/temp.explicit/p3-0x.cpp
create mode 100644 test/CodeCompletion/PR9728.cpp
create mode 100644 test/CodeGen/arm-clear.c
create mode 100644 test/CodeGen/arm-pcs.c
create mode 100644 test/CodeGen/arm-vector-align.c
create mode 100644 test/CodeGen/attr-availability.c
create mode 100644 test/CodeGen/block-byref-aggr.c
delete mode 100644 test/CodeGen/builtinmemcpy.c
create mode 100644 test/CodeGen/builtins-ptx.c
create mode 100644 test/CodeGen/debug-info-line2.c
create mode 100644 test/CodeGen/mmx-inline-asm.c
create mode 100644 test/CodeGen/mrtd.c
create mode 100644 test/CodeGen/ms_struct-bitfield-init.c
create mode 100644 test/CodeGen/ms_struct-bitfield.c
create mode 100644 test/CodeGen/packed-arrays.c
create mode 100644 test/CodeGen/ptx-cc.c
create mode 100644 test/CodeGen/switch-dce.c
create mode 100644 test/CodeGen/x86_64-arguments-darwin.c
create mode 100644 test/CodeGenCXX/apple-kext-guard-variable.cpp
create mode 100644 test/CodeGenCXX/cxx0x-delegating-ctors.cpp
create mode 100644 test/CodeGenCXX/debug-info-cxx0x.cpp
create mode 100644 test/CodeGenCXX/debug-info-fn-template.cpp
create mode 100644 test/CodeGenCXX/debug-info-method-spec.cpp
create mode 100644 test/CodeGenCXX/debug-info-this.cpp
create mode 100644 test/CodeGenCXX/dynamic-cast-always-null.cpp
delete mode 100644 test/CodeGenCXX/dyncast.cpp
create mode 100644 test/CodeGenCXX/for-range-temporaries.cpp
create mode 100644 test/CodeGenCXX/for-range.cpp
create mode 100644 test/CodeGenCXX/typeid.cpp
create mode 100644 test/CodeGenCXX/unknown-anytype.cpp
create mode 100644 test/CodeGenObjC/attr-availability.m
create mode 100644 test/CodeGenObjC/debug-info-property.m
create mode 100644 test/CodeGenObjC/instance-method-metadata.m
create mode 100644 test/CodeGenObjC/misc-atomic-property.m
delete mode 100644 test/CodeGenObjC/missing-atend-metadata.m
create mode 100644 test/CodeGenObjC/no-vararg-messaging.m
create mode 100644 test/CodeGenObjC/simplify-exceptions.mm
create mode 100644 test/CodeGenObjCXX/message-reference.mm
create mode 100644 test/CodeGenObjCXX/property-reference.mm
create mode 100644 test/CodeGenOpenCL/2011-04-15-vec-init-from-vec.cl
create mode 100644 test/CodeGenOpenCL/address-spaces.cl
create mode 100644 test/Driver/apple-kext-i386.cpp
create mode 100644 test/Driver/cc-log-diagnostics.c
create mode 100644 test/Driver/clang-exception-flags.cpp
create mode 100644 test/Driver/clang_wrapv_opts.c
create mode 100644 test/Driver/exceptions.m
create mode 100644 test/FixIt/no-macro-fixit.c
create mode 100644 test/Frontend/dependency-generation-crash.c
create mode 100644 test/Frontend/diagnostic-name.c
create mode 100644 test/Index/annotate-context-sensitive.cpp
create mode 100644 test/Index/initializer-memory.cpp
create mode 100644 test/Index/pragma-diag-reparse.c
create mode 100644 test/Misc/Inputs/include.h
create mode 100644 test/Misc/include-stack-for-note-flag.cpp
create mode 100644 test/Misc/warn-in-system-header.c
create mode 100644 test/Misc/warn-in-system-header.h
create mode 100644 test/PCH/Inputs/working-directory-1.h
create mode 100644 test/PCH/chain-empty-initial-namespace.cpp
create mode 100644 test/PCH/chain-implicit-definition.cpp
create mode 100644 test/PCH/chain-late-anonymous-namespace.cpp
create mode 100644 test/PCH/chain-pending-instantiations.cpp
create mode 100644 test/PCH/cxx-chain-function-template.cpp
create mode 100644 test/PCH/cxx-for-range.cpp
create mode 100644 test/PCH/cxx-for-range.h
create mode 100644 test/PCH/cxx-reference.cpp
create mode 100644 test/PCH/cxx-reference.h
create mode 100644 test/PCH/modified-header-crash.c
create mode 100644 test/PCH/modified-header-crash.h
create mode 100644 test/PCH/working-directory.cpp
create mode 100644 test/PCH/working-directory.h
create mode 100644 test/Parser/DelayedTemplateParsing.cpp
create mode 100644 test/Parser/attr-availability.c
create mode 100644 test/Parser/c1x-generic-selection.c
delete mode 100644 test/Parser/cxx-exception-spec.cpp
create mode 100644 test/Parser/cxx-member-crash.cpp
create mode 100644 test/Parser/objcxx-at.mm
create mode 100644 test/Parser/opencl-image-access.cl
create mode 100644 test/Parser/recovery.m
create mode 100644 test/Preprocessor/traditional-cpp.c
create mode 100644 test/Rewriter/rewrite-block-literal-1.mm
create mode 100644 test/Sema/__try.c
create mode 100644 test/Sema/attr-args.c
create mode 100644 test/Sema/attr-availability-ios.c
create mode 100644 test/Sema/attr-availability-macosx.c
create mode 100644 test/Sema/attr-availability.c
create mode 100644 test/Sema/builtins-decl.c
create mode 100644 test/Sema/generic-selection.c
create mode 100644 test/Sema/memset-invalid.c
create mode 100644 test/Sema/overloaded-func-transparent-union.c
create mode 100644 test/Sema/pragma-ms_struct.c
create mode 100644 test/Sema/static-assert.c
create mode 100644 test/Sema/uninit-variables-vectors.c
create mode 100644 test/SemaCXX/PR9459.cpp
create mode 100644 test/SemaCXX/PR9460.cpp
create mode 100644 test/SemaCXX/PR9461.cpp
create mode 100644 test/SemaCXX/PR9572.cpp
create mode 100644 test/SemaCXX/__try.cpp
create mode 100644 test/SemaCXX/address-space-conversion.cpp
create mode 100644 test/SemaCXX/address-space-newdelete.cpp
create mode 100644 test/SemaCXX/address-space-references.cpp
create mode 100644 test/SemaCXX/auto-subst-failure.cpp
create mode 100644 test/SemaCXX/cxx0x-constexpr-const.cpp
create mode 100644 test/SemaCXX/cxx0x-delegating-ctors.cpp
create mode 100644 test/SemaCXX/cxx0x-return-init-list.cpp
create mode 100644 test/SemaCXX/decltype-98.cpp
delete mode 100644 test/SemaCXX/exception-spec.cpp
create mode 100644 test/SemaCXX/expression-traits.cpp
create mode 100644 test/SemaCXX/for-range-examples.cpp
create mode 100644 test/SemaCXX/for-range-no-std.cpp
create mode 100644 test/SemaCXX/generic-selection.cpp
create mode 100644 test/SemaCXX/goto.cpp
create mode 100644 test/SemaCXX/goto2.cpp
create mode 100644 test/SemaCXX/neon-vector-types.cpp
create mode 100644 test/SemaCXX/operator-arrow-temporary.cpp
create mode 100644 test/SemaCXX/pascal-strings.cpp
create mode 100644 test/SemaCXX/short-enums.cpp
create mode 100644 test/SemaCXX/short-wchar-sign.cpp
create mode 100644 test/SemaCXX/uninit-variables-conditional.cpp
create mode 100644 test/SemaCXX/unknown-anytype.cpp
create mode 100644 test/SemaCXX/warn-bool-conversion.cpp
create mode 100644 test/SemaCXX/warn-deprecated-header.cpp
create mode 100644 test/SemaCXX/warn-exit-time-destructors.cpp
create mode 100644 test/SemaCXX/warn-non-pod-memset.cpp
create mode 100644 test/SemaCXX/warn-using-namespace-in-header.cpp
create mode 100644 test/SemaCXX/warn-using-namespace-in-header.h
delete mode 100644 test/SemaCXX/warn_false_to_pointer.cpp
create mode 100644 test/SemaObjC/assign-rvalue-message.m
delete mode 100644 test/SemaObjC/auto-objective-c.m
create mode 100644 test/SemaObjC/class-message-protocol-lookup.m
create mode 100644 test/SemaObjC/class-unavail-warning.m
create mode 100644 test/SemaObjC/conditional-expr-8.m
create mode 100644 test/SemaObjC/missing-atend-metadata.m
create mode 100644 test/SemaObjC/objc-qualified-property-lookup.m
create mode 100644 test/SemaObjC/property-lookup-in-id.m
create mode 100644 test/SemaObjC/self-declared-in-block.m
create mode 100644 test/SemaObjC/self-in-function.m
create mode 100644 test/SemaObjC/unqualified-to-qualified-class-warn.m
create mode 100644 test/SemaObjCXX/argument-dependent-lookup.mm
create mode 100644 test/SemaObjCXX/goto.mm
create mode 100644 test/SemaObjCXX/overload-gc.mm
create mode 100644 test/SemaObjCXX/property-reference.mm
create mode 100644 test/SemaOpenCL/vec_step.cl
create mode 100644 test/SemaTemplate/address-spaces.cpp
create mode 100644 test/SemaTemplate/issue150.cpp
create mode 100644 test/SemaTemplate/resolve-single-template-id.cpp
create mode 100644 unittests/Tooling/JsonCompileCommandLineDatabaseTest.cpp
create mode 100644 unittests/Tooling/ToolingTest.cpp
create mode 100644 www/libstdc++4.4-clang0x.patch
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b1ab11de72d..7b54deaaf54 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,7 +30,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
include(AddLLVM)
include(TableGen)
- include("${CLANG_PATH_TO_LLVM_BUILD}/share/llvm/cmake/LLVM.cmake")
+ include("${CLANG_PATH_TO_LLVM_BUILD}/share/llvm/cmake/LLVMConfig.cmake")
include(HandleLLVMOptions)
set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}")
@@ -40,9 +40,6 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
set(CMAKE_INCLUDE_CURRENT_DIR ON)
include_directories("${PATH_TO_LLVM_BUILD}/include" "${LLVM_MAIN_INCLUDE_DIR}")
- if( NOT PATH_TO_LLVM_BUILD STREQUAL LLVM_MAIN_SRC_DIR )
- include_directories("${LLVM_MAIN_INCLUDE_DIR}")
- endif()
link_directories("${PATH_TO_LLVM_BUILD}/lib")
set(LLVM_TABLEGEN_EXE "${PATH_TO_LLVM_BUILD}/bin/tblgen")
@@ -174,23 +171,12 @@ macro(add_clang_library name)
if( LLVM_COMMON_DEPENDS )
add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
endif( LLVM_COMMON_DEPENDS )
- if( LLVM_USED_LIBS )
- foreach(lib ${LLVM_USED_LIBS})
- target_link_libraries( ${name} ${lib} )
- endforeach(lib)
- endif( LLVM_USED_LIBS )
- if( LLVM_LINK_COMPONENTS )
- llvm_config(${name} ${LLVM_LINK_COMPONENTS})
- endif( LLVM_LINK_COMPONENTS )
- if (LLVM_COMMON_LIBS)
- target_link_libraries(${name} ${LLVM_COMMON_LIBS})
- endif()
- if( NOT MINGW )
- get_system_libs(llvm_system_libs)
- if( llvm_system_libs )
- target_link_libraries(${name} ${llvm_system_libs})
- endif()
- endif()
+
+ target_link_libraries( ${name} ${LLVM_USED_LIBS} )
+ llvm_config( ${name} ${LLVM_LINK_COMPONENTS} )
+ target_link_libraries( ${name} ${LLVM_COMMON_LIBS} )
+ link_system_libs( ${name} )
+
add_dependencies(${name} ClangDiagnosticCommon)
if(MSVC)
get_target_property(cflag ${name} COMPILE_FLAGS)
@@ -211,9 +197,9 @@ macro(add_clang_executable name)
set_target_properties(${name} PROPERTIES FOLDER "Clang executables")
endmacro(add_clang_executable)
-include_directories(
- ${CMAKE_CURRENT_SOURCE_DIR}/include
+include_directories(BEFORE
${CMAKE_CURRENT_BINARY_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
)
install(DIRECTORY include/
@@ -221,7 +207,6 @@ install(DIRECTORY include/
FILES_MATCHING
PATTERN "*.def"
PATTERN "*.h"
- PATTERN "*.td"
PATTERN ".svn" EXCLUDE
)
diff --git a/Makefile b/Makefile
index 1216dadd297..b6c630aa10a 100644
--- a/Makefile
+++ b/Makefile
@@ -46,6 +46,9 @@ CPP.Flags += -I$(PROJ_SRC_DIR)/$(CLANG_LEVEL)/include -I$(PROJ_OBJ_DIR)/$(CLANG_
ifdef CLANG_VENDOR
CPP.Flags += -DCLANG_VENDOR='"$(CLANG_VENDOR) "'
endif
+ifdef CLANG_REPOSITORY_STRING
+CPP.Flags += -DCLANG_REPOSITORY_STRING='"$(CLANG_REPOSITORY_STRING)"'
+endif
# Disable -fstrict-aliasing. Darwin disables it by default (and LLVM doesn't
# work with it enabled with GCC), Clang/llvm-gcc don't support it yet, and newer
diff --git a/docs/DriverInternals.html b/docs/DriverInternals.html
index a7d2da37711..4f5f0ae112f 100644
--- a/docs/DriverInternals.html
+++ b/docs/DriverInternals.html
@@ -88,7 +88,7 @@
Flexible
- The driver was designed to be flexible and easily accomodate
+
The driver was designed to be flexible and easily accommodate
new uses as we grow the clang and LLVM infrastructure. As one
example, the driver can easily support the introduction of
tools which have an integrated assembler; something we hope to
@@ -218,7 +218,7 @@
The clang driver can dump the results of this
stage using the -ccc-print-options flag (which
- must preceed any actual command line arguments). For
+ must precede any actual command line arguments). For
example:
$ clang -ccc-print-options -Xarch_i386 -fomit-frame-pointer -Wa,-fast -Ifoo -I foo t.c
@@ -490,7 +490,7 @@
Specs
- The clang driver has no direct correspondant for
+
The clang driver has no direct correspondent for
"specs". The majority of the functionality that is
embedded in specs is in the Tool specific argument
translation routines. The parts of specs which control the
diff --git a/docs/InternalsManual.html b/docs/InternalsManual.html
index 813015ecf65..961198938f2 100644
--- a/docs/InternalsManual.html
+++ b/docs/InternalsManual.html
@@ -412,7 +412,7 @@ it is rendered.
-Code Modification Hints
+Fix-It Hints
In some cases, the front end emits diagnostics when it is clear
@@ -422,14 +422,14 @@ deprecated syntax that is easily rewritten into a more modern form.
Clang tries very hard to emit the diagnostic and recover gracefully
in these and other cases.
-However, for these cases where the fix is obvious, the diagnostic
-can be annotated with a code
-modification "hint" that describes how to change the code referenced
-by the diagnostic to fix the problem. For example, it might add the
-missing semicolon at the end of the statement or rewrite the use of a
-deprecated construct into something more palatable. Here is one such
-example C++ front end, where we warn about the right-shift operator
-changing meaning from C++98 to C++0x:
+However, for these cases where the fix is obvious, the diagnostic
+can be annotated with a hint (referred to as a "fix-it hint") that
+describes how to change the code referenced by the diagnostic to fix
+the problem. For example, it might add the missing semicolon at the
+end of the statement or rewrite the use of a deprecated construct
+into something more palatable. Here is one such example from the C++
+front end, where we warn about the right-shift operator changing
+meaning from C++98 to C++0x:
test.cpp:3:7: warning: use of right-shift operator ('>>') in template argument will require parentheses in C++0x
@@ -438,33 +438,31 @@ A<100 >> 2> *a;
( )
-Here, the code modification hint is suggesting that parentheses be
-added, and showing exactly where those parentheses would be inserted
-into the source code. The code modification hints themselves describe
-what changes to make to the source code in an abstract manner, which
-the text diagnostic printer renders as a line of "insertions" below
-the caret line. Other diagnostic
-clients might choose to render the code differently (e.g., as
-markup inline) or even give the user the ability to automatically fix
-the problem.
+Here, the fix-it hint is suggesting that parentheses be added,
+and showing exactly where those parentheses would be inserted into the
+source code. The fix-it hints themselves describe what changes to make
+to the source code in an abstract manner, which the text diagnostic
+printer renders as a line of "insertions" below the caret line. Other diagnostic clients might choose
+to render the code differently (e.g., as markup inline) or even give
+the user the ability to automatically fix the problem.
-All code modification hints are described by the
-CodeModificationHint class, instances of which should be
-attached to the diagnostic using the << operator in the same way
-that highlighted source ranges and arguments are passed to the
-diagnostic. Code modification hints can be created with one of three
-constructors:
+All fix-it hints are described by the FixItHint class,
+instances of which should be attached to the diagnostic using the
+<< operator in the same way that highlighted source ranges and
+arguments are passed to the diagnostic. Fix-it hints can be created
+with one of three constructors:
- CodeModificationHint::CreateInsertion(Loc, Code)
+ FixItHint::CreateInsertion(Loc, Code)
- Specifies that the given
Code (a string) should be inserted
before the source location Loc.
- CodeModificationHint::CreateRemoval(Range)
+ FixItHint::CreateRemoval(Range)
- Specifies that the code in the given source
Range
should be removed.
- CodeModificationHint::CreateReplacement(Range, Code)
+ FixItHint::CreateReplacement(Range, Code)
- Specifies that the code in the given source
Range
should be removed, and replaced with the given Code string.
@@ -821,7 +819,7 @@ code is vectorized on X86 and PowerPC hosts).
within the filename.
When parsing a preprocessor directive (after "#") the
ParsingPreprocessorDirective mode is entered. This changes the parser to
- return EOM at a newline.
+ return EOD at a newline.
The Lexer uses a LangOptions object to know whether trigraphs are enabled,
whether C++ or ObjC keywords are recognized, etc.
diff --git a/docs/LanguageExtensions.html b/docs/LanguageExtensions.html
index b0de13a91e9..f86835a9d1d 100644
--- a/docs/LanguageExtensions.html
+++ b/docs/LanguageExtensions.html
@@ -38,6 +38,8 @@ td {
C++0x deleted functions
C++0x lambdas
C++0x nullptr
+ C++0x override control
+ C++0x range-based for loop
C++0x rvalue references
C++0x reference-qualified functions
C++0x static_assert()
@@ -46,14 +48,17 @@ td {
C++0x inline namespaces
C++0x strongly-typed enumerations
C++0x trailing return type
+ C++0x noexcept specification
Checks for Type Traits
Blocks
Function Overloading in C
+Generic Selections
Builtin Functions
Target-Specific Extensions
@@ -61,11 +66,7 @@ td {
X86/X86-64 Language Extensions
-Static Analysis-Specific Extensions
-
-
+Static Analysis-Specific Extensions
@@ -83,7 +84,7 @@ more information on these extensions.
Language extensions can be very useful, but only if you know you can depend
-on them. In order to allow fine-grain features checks, we support two builtin
+on them. In order to allow fine-grain features checks, we support three builtin
function-like macros. This allows you to directly test for a feature in your
code without having to resort to something like autoconf or fragile "compiler
version checks".
@@ -402,9 +403,19 @@ lambdas is enabled. clang does not currently implement this feature.
nullptr is enabled. clang does not yet fully implement this
feature.
+C++0x override control
+
+Use __has_feature(cxx_override_control) to determine if support for
+the override control keywords is enabled.
+
C++0x reference-qualified functions
Use __has_feature(cxx_reference_qualified_functions) to determine if support for reference-qualified functions (e.g., member functions with & or && applied to *this) is enabled.
+C++0x range-based for loop
+
+Use __has_feature(cxx_range_for) to determine if support for
+the range-based for loop is enabled.
+
C++0x rvalue references
Use __has_feature(cxx_rvalue_references) to determine if support for
@@ -436,6 +447,11 @@ inline namespaces is enabled.
Use __has_feature(cxx_trailing_return) to determine if support for
the alternate function declaration syntax with trailing return type is enabled.
+C++0x noexcept
+
+Use __has_feature(cxx_noexcept) to determine if support for
+noexcept exception specifications is enabled.
+
C++0x strongly typed enumerations
Use __has_feature(cxx_strong_enums) to determine if support for
@@ -594,6 +610,20 @@ caveats to this use of name mangling:
Query for this feature with __has_feature(attribute_overloadable).
+
+Generic Selections
+
+
+The C1X generic selection expression is available in all languages
+supported by Clang. The syntax is the same as that given in the C1X draft
+standard.
+
+In C, type compatibility is decided according to the rules given in the
+appropriate standard, but in C++, which lacks the type compatibility rules
+used in C, types are considered compatible only if they are equivalent.
+
+Query for this feature with __has_feature(generic_selections).
+
Builtin Functions
@@ -703,6 +733,36 @@ no arguments and produces a void result.
Query for this feature with __has_builtin(__builtin_unreachable).
+
+__sync_swap
+
+
+__sync_swap is used to atomically swap integers or pointers in
+memory.
+
+
+Syntax:
+
+
+type __sync_swap(type *ptr, type value, ...)
+
+
+Example of Use:
+
+
+int old_value = __sync_swap(&value, new_value);
+
+
+Description:
+
+The __sync_swap() builtin extends the existing __sync_*() family of atomic
+intrinsics to allow code to atomically swap the current value with the new
+value. More importantly, it helps developers write more efficient and correct
+code by avoiding expensive loops around __sync_bool_compare_and_swap() or
+relying on the platform specific implementation details of
+__sync_lock_test_and_set(). The __sync_swap() builtin is a full barrier.
+
+
Target-Specific Extensions
@@ -754,11 +814,7 @@ are used by the path-sensitive static analyzer
engine that is part of Clang's Analysis library.
-
-Analyzer Attributes
-
-
-analyzer_noreturn
+The analyzer_noreturn attribute
Clang's static analysis engine understands the standard noreturn
attribute. This attribute, which is typically affixed to a function prototype,
@@ -786,16 +842,47 @@ placed at the end of function prototypes:
void foo() __attribute__((analyzer_noreturn));
-Query for this feature with __has_feature(attribute_analyzer_noreturn).
+Query for this feature with
+__has_attribute(analyzer_noreturn).
-Objective-C retaining behavior attributes
+The objc_method_family attribute
+
+Many methods in Objective-C have conventional meanings determined
+by their selectors. For the purposes of static analysis, it is
+sometimes useful to be able to mark a method as having a particular
+conventional meaning despite not having the right selector, or as not
+having the conventional meaning that its selector would suggest.
+For these use cases, we provide an attribute to specifically describe
+the method family
that a method belongs to.
+
+Usage: __attribute__((objc_method_family(X))),
+where X is one of none, alloc, copy,
+init, mutableCopy, or new. This attribute
+can only be placed at the end of a method declaration:
+
+
+ - (NSString*) initMyStringValue __attribute__((objc_method_family(none)));
+
+
+Users who do not wish to change the conventional meaning of a
+method, and who merely want to document its non-standard retain and
+release semantics, should use the
+retaining behavior attributes
+described below.
+
+Query for this feature with
+__has_attribute(objc_method_family).
+
+Objective-C retaining behavior attributes
In Objective-C, functions and methods are generally assumed to take
and return objects with +0 retain counts, with some exceptions for
special methods like +alloc and init. However,
there are exceptions, and so Clang provides attributes to allow these
exceptions to be documented, which helps the analyzer find leaks (and
-ignore non-leaks).
+ignore non-leaks). Some exceptions may be better described using
+the objc_method_family
+attribute instead.
Usage: The ns_returns_retained, ns_returns_not_retained,
ns_returns_autoreleased, cf_returns_retained,
@@ -834,6 +921,9 @@ balance in some way.
- (void) baz: (id) __attribute__((ns_consumed)) x;
+Query for these features with __has_attribute(ns_consumed),
+__has_attribute(ns_returns_retained), etc.
+