[cfe-commits] r149781 - in /cfe/trunk: include/clang/AST/ include/clang/Sema/ include/clang/Serialization/ lib/AST/ lib/CodeGen/ lib/Sema/ lib/Serialization/ lib/StaticAnalyzer/Checkers/ lib/StaticAnalyzer/Core/ tools/libclang/

Chad Rosier mcrosier at apple.com
Tue Feb 7 14:00:01 PST 2012


Hi Ben,
This change is causing a 8.85% compile-time regression for a number of the ObjC/ObjC++ benchmarks in SingleSource/UnitTests/.  This was across the board for all architectures and all optimization levels.  

Here's the results for our -O0 -g -arch i386 configuration:

Performance Regressions - Compile Time	Δ	Previous	Current	σ
SingleSource/UnitTests/ObjC++/property-reference-object	8.85%	0.5877	0.6397	0.0131
SingleSource/UnitTests/ObjC++/Hello	8.57%	0.5843	0.6344	0.0128
SingleSource/UnitTests/ObjC++/property-reference	7.54%	0.7052	0.7584	0.0143
SingleSource/UnitTests/ObjC/exceptions-2	6.55%	0.3375	0.3596	0.0049
SingleSource/UnitTests/ObjC/trivial-interface	6.42%	0.3367	0.3583	0.0046
SingleSource/UnitTests/ObjC/for-in	6.41%	0.3416	0.3635	0.0046
SingleSource/UnitTests/ObjC/exceptions-3	6.38%	0.3383	0.3599	0.0043
SingleSource/UnitTests/ObjC/exceptions-4	6.37%	0.3391	0.3607	0.0044
SingleSource/UnitTests/ObjC/synchronized	6.34%	0.3393	0.3608	0.0045
SingleSource/UnitTests/ObjC/property	6.32%	0.3561	0.3786	0.0049
SingleSource/UnitTests/ObjC/parameter-passing	6.08%	0.3670	0.3893	0.0047
SingleSource/UnitTests/ObjC/instance-method-metadata	6.07%	0.3424	0.3632	0.0048
SingleSource/UnitTests/ObjC/exceptions	5.77%	0.3521	0.3724	0.0047
SingleSource/UnitTests/ObjC/block-byref-aggr	4.29%	0.3635	0.3791	0.0044

Please take a look as soon as possible.

 Regards,
  Chad


On Feb 4, 2012, at 4:31 AM, Benjamin Kramer wrote:

> Author: d0k
> Date: Sat Feb  4 06:31:12 2012
> New Revision: 149781
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=149781&view=rev
> Log:
> Move various diagnostic operator<< overloads out of line and remove includes of Diagnostic.h.
> 
> Fix all the files that depended on transitive includes of Diagnostic.h.
> With this patch in place changing a diagnostic no longer requires a full rebuild of the StaticAnalyzer.
> 
> Modified:
>    cfe/trunk/include/clang/AST/ASTContext.h
>    cfe/trunk/include/clang/AST/Decl.h
>    cfe/trunk/include/clang/AST/DeclarationName.h
>    cfe/trunk/include/clang/AST/Mangle.h
>    cfe/trunk/include/clang/AST/NestedNameSpecifier.h
>    cfe/trunk/include/clang/AST/Type.h
>    cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h
>    cfe/trunk/include/clang/Sema/DelayedDiagnostic.h
>    cfe/trunk/include/clang/Sema/Sema.h
>    cfe/trunk/include/clang/Sema/SemaFixItUtils.h
>    cfe/trunk/include/clang/Serialization/ASTWriter.h
>    cfe/trunk/lib/AST/ASTContext.cpp
>    cfe/trunk/lib/AST/Decl.cpp
>    cfe/trunk/lib/AST/DeclCXX.cpp
>    cfe/trunk/lib/AST/DeclarationName.cpp
>    cfe/trunk/lib/AST/ExprConstant.cpp
>    cfe/trunk/lib/AST/ItaniumMangle.cpp
>    cfe/trunk/lib/AST/NestedNameSpecifier.cpp
>    cfe/trunk/lib/AST/Type.cpp
>    cfe/trunk/lib/CodeGen/CGCXXABI.cpp
>    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
>    cfe/trunk/lib/CodeGen/CodeGenTBAA.cpp
>    cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp
>    cfe/trunk/lib/Serialization/ASTWriter.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
>    cfe/trunk/lib/StaticAnalyzer/Core/AnalysisManager.cpp
>    cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
>    cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp
>    cfe/trunk/tools/libclang/IndexingContext.h
> 
> Modified: cfe/trunk/include/clang/AST/ASTContext.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ASTContext.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/ASTContext.h (original)
> +++ cfe/trunk/include/clang/AST/ASTContext.h Sat Feb  4 06:31:12 2012
> @@ -18,7 +18,6 @@
> #include "clang/Basic/IdentifierTable.h"
> #include "clang/Basic/LangOptions.h"
> #include "clang/Basic/OperatorKinds.h"
> -#include "clang/Basic/PartialDiagnostic.h"
> #include "clang/Basic/VersionTuple.h"
> #include "clang/AST/Decl.h"
> #include "clang/AST/NestedNameSpecifier.h"
> 
> Modified: cfe/trunk/include/clang/AST/Decl.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Decl.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/Decl.h (original)
> +++ cfe/trunk/include/clang/AST/Decl.h Sat Feb  4 06:31:12 2012
> @@ -41,7 +41,11 @@
> class UnresolvedSetImpl;
> class LabelStmt;
> class Module;
> -  
> +
> +// Forward declare PartialDiagnosticAt.
> +// FIXME: This shouldn't be here.
> +typedef std::pair<SourceLocation, PartialDiagnostic> PartialDiagnosticAt;
> +
> /// \brief A container of type source information.
> ///
> /// A client can read the relevant info using TypeLoc wrappers, e.g:
> @@ -3175,18 +3179,11 @@
> 
> /// Insertion operator for diagnostics.  This allows sending NamedDecl's
> /// into a diagnostic with <<.
> -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
> -                                           const NamedDecl* ND) {
> -  DB.AddTaggedVal(reinterpret_cast<intptr_t>(ND),
> -                  DiagnosticsEngine::ak_nameddecl);
> -  return DB;
> -}
> -inline const PartialDiagnostic &operator<<(const PartialDiagnostic &PD,
> -                                           const NamedDecl* ND) {
> -  PD.AddTaggedVal(reinterpret_cast<intptr_t>(ND),
> -                  DiagnosticsEngine::ak_nameddecl);
> -  return PD;
> -}
> +const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
> +                                    const NamedDecl* ND);
> +
> +const PartialDiagnostic &operator<<(const PartialDiagnostic &PD,
> +                                    const NamedDecl* ND);
> 
> template<typename decl_type>
> void Redeclarable<decl_type>::setPreviousDeclaration(decl_type *PrevDecl) {
> 
> Modified: cfe/trunk/include/clang/AST/DeclarationName.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclarationName.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/DeclarationName.h (original)
> +++ cfe/trunk/include/clang/AST/DeclarationName.h Sat Feb  4 06:31:12 2012
> @@ -16,7 +16,6 @@
> #include "clang/Basic/IdentifierTable.h"
> #include "clang/AST/Type.h"
> #include "clang/AST/CanonicalType.h"
> -#include "clang/Basic/PartialDiagnostic.h"
> 
> namespace llvm {
>   template <typename T> struct DenseMapInfo;
> @@ -517,24 +516,16 @@
> 
> /// Insertion operator for diagnostics.  This allows sending DeclarationName's
> /// into a diagnostic with <<.
> -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
> -                                           DeclarationName N) {
> -  DB.AddTaggedVal(N.getAsOpaqueInteger(),
> -                  DiagnosticsEngine::ak_declarationname);
> -  return DB;
> -}
> +const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
> +                                    DeclarationName N);
> 
> /// Insertion operator for partial diagnostics.  This allows binding
> /// DeclarationName's into a partial diagnostic with <<.
> -inline const PartialDiagnostic &operator<<(const PartialDiagnostic &PD,
> -                                           DeclarationName N) {
> -  PD.AddTaggedVal(N.getAsOpaqueInteger(),
> -                  DiagnosticsEngine::ak_declarationname);
> -  return PD;
> -}
> +const PartialDiagnostic &operator<<(const PartialDiagnostic &PD,
> +                                    DeclarationName N);
> 
> inline raw_ostream &operator<<(raw_ostream &OS,
> -                                     DeclarationNameInfo DNInfo) {
> +                               DeclarationNameInfo DNInfo) {
>   DNInfo.printName(OS);
>   return OS;
> }
> 
> Modified: cfe/trunk/include/clang/AST/Mangle.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Mangle.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/Mangle.h (original)
> +++ cfe/trunk/include/clang/AST/Mangle.h Sat Feb  4 06:31:12 2012
> @@ -27,6 +27,8 @@
>   class CXXConstructorDecl;
>   class CXXDestructorDecl;
>   class CXXMethodDecl;
> +  class DeclContext;
> +  class DiagnosticsEngine;
>   class FunctionDecl;
>   class NamedDecl;
>   class ObjCMethodDecl;
> 
> Modified: cfe/trunk/include/clang/AST/NestedNameSpecifier.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/NestedNameSpecifier.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/NestedNameSpecifier.h (original)
> +++ cfe/trunk/include/clang/AST/NestedNameSpecifier.h Sat Feb  4 06:31:12 2012
> @@ -14,13 +14,14 @@
> #ifndef LLVM_CLANG_AST_NESTEDNAMESPECIFIER_H
> #define LLVM_CLANG_AST_NESTEDNAMESPECIFIER_H
> 
> -#include "clang/Basic/Diagnostic.h"
> +#include "clang/Basic/SourceLocation.h"
> #include "llvm/ADT/FoldingSet.h"
> #include "llvm/ADT/PointerIntPair.h"
> 
> namespace clang {
> 
> class ASTContext;
> +class DiagnosticBuilder;
> class NamespaceAliasDecl;
> class NamespaceDecl;
> class IdentifierInfo;
> @@ -464,12 +465,8 @@
> 
> /// Insertion operator for diagnostics.  This allows sending
> /// NestedNameSpecifiers into a diagnostic with <<.
> -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
> -                                           NestedNameSpecifier *NNS) {
> -  DB.AddTaggedVal(reinterpret_cast<intptr_t>(NNS),
> -                  DiagnosticsEngine::ak_nestednamespec);
> -  return DB;
> -}
> +const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
> +                                    NestedNameSpecifier *NNS);
> 
> }
> 
> 
> Modified: cfe/trunk/include/clang/AST/Type.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Type.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/Type.h (original)
> +++ cfe/trunk/include/clang/AST/Type.h Sat Feb  4 06:31:12 2012
> @@ -14,11 +14,9 @@
> #ifndef LLVM_CLANG_AST_TYPE_H
> #define LLVM_CLANG_AST_TYPE_H
> 
> -#include "clang/Basic/Diagnostic.h"
> #include "clang/Basic/ExceptionSpecificationType.h"
> #include "clang/Basic/IdentifierTable.h"
> #include "clang/Basic/Linkage.h"
> -#include "clang/Basic/PartialDiagnostic.h"
> #include "clang/Basic/Visibility.h"
> #include "clang/AST/NestedNameSpecifier.h"
> #include "clang/AST/TemplateName.h"
> @@ -94,6 +92,7 @@
>   class ExtQuals;
>   class ExtQualsTypeCommonBase;
>   struct PrintingPolicy;
> +  class PartialDiagnostic;
> 
>   template <typename> class CanQual;
>   typedef CanQual<Type> CanQualType;
> @@ -4799,21 +4798,11 @@
> 
> /// Insertion operator for diagnostics.  This allows sending QualType's into a
> /// diagnostic with <<.
> -inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
> -                                           QualType T) {
> -  DB.AddTaggedVal(reinterpret_cast<intptr_t>(T.getAsOpaquePtr()),
> -                  DiagnosticsEngine::ak_qualtype);
> -  return DB;
> -}
> +const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, QualType T);
> 
> /// Insertion operator for partial diagnostics.  This allows sending QualType's
> /// into a diagnostic with <<.
> -inline const PartialDiagnostic &operator<<(const PartialDiagnostic &PD,
> -                                           QualType T) {
> -  PD.AddTaggedVal(reinterpret_cast<intptr_t>(T.getAsOpaquePtr()),
> -                  DiagnosticsEngine::ak_qualtype);
> -  return PD;
> -}
> +const PartialDiagnostic &operator<<(const PartialDiagnostic &PD, QualType T);
> 
> // Helper class template that is used by Type::getAs to ensure that one does
> // not try to look through a qualified type to get to an array type.
> 
> Modified: cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h (original)
> +++ cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h Sat Feb  4 06:31:12 2012
> @@ -24,6 +24,7 @@
> namespace clang {
> 
> class Decl;
> +class Preprocessor;
> 
> /// \brief Default priority values for code-completion results based
> /// on their kind.
> 
> Modified: cfe/trunk/include/clang/Sema/DelayedDiagnostic.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/DelayedDiagnostic.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Sema/DelayedDiagnostic.h (original)
> +++ cfe/trunk/include/clang/Sema/DelayedDiagnostic.h Sat Feb  4 06:31:12 2012
> @@ -22,6 +22,7 @@
> #define LLVM_CLANG_SEMA_DELAYED_DIAGNOSTIC_H
> 
> #include "clang/AST/DeclCXX.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> 
> namespace clang {
> namespace sema {
> 
> Modified: cfe/trunk/include/clang/Sema/Sema.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Sema/Sema.h (original)
> +++ cfe/trunk/include/clang/Sema/Sema.h Sat Feb  4 06:31:12 2012
> @@ -30,6 +30,7 @@
> #include "clang/AST/ExternalASTSource.h"
> #include "clang/AST/TypeLoc.h"
> #include "clang/Lex/ModuleLoader.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> #include "clang/Basic/Specifiers.h"
> #include "clang/Basic/TemplateKinds.h"
> #include "clang/Basic/TypeTraits.h"
> 
> Modified: cfe/trunk/include/clang/Sema/SemaFixItUtils.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/SemaFixItUtils.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Sema/SemaFixItUtils.h (original)
> +++ cfe/trunk/include/clang/Sema/SemaFixItUtils.h Sat Feb  4 06:31:12 2012
> @@ -14,6 +14,7 @@
> #define LLVM_CLANG_SEMA_FIXITUTILS_H
> 
> #include "clang/AST/Expr.h"
> +#include "clang/Basic/Diagnostic.h"
> 
> namespace clang {
> 
> 
> Modified: cfe/trunk/include/clang/Serialization/ASTWriter.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTWriter.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Serialization/ASTWriter.h (original)
> +++ cfe/trunk/include/clang/Serialization/ASTWriter.h Sat Feb  4 06:31:12 2012
> @@ -43,6 +43,7 @@
> class NestedNameSpecifier;
> class CXXBaseSpecifier;
> class CXXCtorInitializer;
> +class DiagnosticsEngine;
> class FPOptions;
> class HeaderSearch;
> class IdentifierResolver;
> 
> Modified: cfe/trunk/lib/AST/ASTContext.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/ASTContext.cpp (original)
> +++ cfe/trunk/lib/AST/ASTContext.cpp Sat Feb  4 06:31:12 2012
> @@ -24,6 +24,7 @@
> #include "clang/AST/RecordLayout.h"
> #include "clang/AST/Mangle.h"
> #include "clang/Basic/Builtins.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> #include "clang/Basic/SourceManager.h"
> #include "clang/Basic/TargetInfo.h"
> #include "llvm/ADT/SmallString.h"
> 
> Modified: cfe/trunk/lib/AST/Decl.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/Decl.cpp (original)
> +++ cfe/trunk/lib/AST/Decl.cpp Sat Feb  4 06:31:12 2012
> @@ -25,6 +25,7 @@
> #include "clang/Basic/Builtins.h"
> #include "clang/Basic/IdentifierTable.h"
> #include "clang/Basic/Module.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> #include "clang/Basic/Specifiers.h"
> #include "clang/Basic/TargetInfo.h"
> #include "llvm/Support/ErrorHandling.h"
> @@ -2959,3 +2960,17 @@
> 
>   return SourceRange(getLocation(), getIdentifierLocs().back());
> }
> +
> +const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB,
> +                                           const NamedDecl* ND) {
> +  DB.AddTaggedVal(reinterpret_cast<intptr_t>(ND),
> +                  DiagnosticsEngine::ak_nameddecl);
> +  return DB;
> +}
> +
> +const PartialDiagnostic &clang::operator<<(const PartialDiagnostic &PD,
> +                                           const NamedDecl* ND) {
> +  PD.AddTaggedVal(reinterpret_cast<intptr_t>(ND),
> +                  DiagnosticsEngine::ak_nameddecl);
> +  return PD;
> +}
> 
> Modified: cfe/trunk/lib/AST/DeclCXX.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclCXX.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/DeclCXX.cpp (original)
> +++ cfe/trunk/lib/AST/DeclCXX.cpp Sat Feb  4 06:31:12 2012
> @@ -20,6 +20,7 @@
> #include "clang/AST/ExprCXX.h"
> #include "clang/AST/TypeLoc.h"
> #include "clang/Basic/IdentifierTable.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> #include "llvm/ADT/STLExtras.h"
> #include "llvm/ADT/SmallPtrSet.h"
> using namespace clang;
> 
> Modified: cfe/trunk/lib/AST/DeclarationName.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclarationName.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/DeclarationName.cpp (original)
> +++ cfe/trunk/lib/AST/DeclarationName.cpp Sat Feb  4 06:31:12 2012
> @@ -18,6 +18,7 @@
> #include "clang/AST/TypeLoc.h"
> #include "clang/AST/TypeOrdering.h"
> #include "clang/Basic/IdentifierTable.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> #include "llvm/ADT/DenseMap.h"
> #include "llvm/ADT/FoldingSet.h"
> #include "llvm/Support/ErrorHandling.h"
> @@ -620,3 +621,17 @@
>   }
>   llvm_unreachable("Unexpected declaration name kind");
> }
> +
> +const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB,
> +                                           DeclarationName N) {
> +  DB.AddTaggedVal(N.getAsOpaqueInteger(),
> +                  DiagnosticsEngine::ak_declarationname);
> +  return DB;
> +}
> +
> +const PartialDiagnostic &clang::operator<<(const PartialDiagnostic &PD,
> +                                           DeclarationName N) {
> +  PD.AddTaggedVal(N.getAsOpaqueInteger(),
> +                  DiagnosticsEngine::ak_declarationname);
> +  return PD;
> +}
> 
> Modified: cfe/trunk/lib/AST/ExprConstant.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ExprConstant.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/ExprConstant.cpp (original)
> +++ cfe/trunk/lib/AST/ExprConstant.cpp Sat Feb  4 06:31:12 2012
> @@ -42,6 +42,7 @@
> #include "clang/AST/ASTDiagnostic.h"
> #include "clang/AST/Expr.h"
> #include "clang/Basic/Builtins.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> #include "clang/Basic/TargetInfo.h"
> #include "llvm/ADT/SmallString.h"
> #include <cstring>
> 
> Modified: cfe/trunk/lib/AST/ItaniumMangle.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ItaniumMangle.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/ItaniumMangle.cpp (original)
> +++ cfe/trunk/lib/AST/ItaniumMangle.cpp Sat Feb  4 06:31:12 2012
> @@ -24,6 +24,7 @@
> #include "clang/AST/ExprObjC.h"
> #include "clang/AST/TypeLoc.h"
> #include "clang/Basic/ABI.h"
> +#include "clang/Basic/Diagnostic.h"
> #include "clang/Basic/SourceManager.h"
> #include "clang/Basic/TargetInfo.h"
> #include "llvm/ADT/StringExtras.h"
> 
> Modified: cfe/trunk/lib/AST/NestedNameSpecifier.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/NestedNameSpecifier.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/NestedNameSpecifier.cpp (original)
> +++ cfe/trunk/lib/AST/NestedNameSpecifier.cpp Sat Feb  4 06:31:12 2012
> @@ -18,6 +18,7 @@
> #include "clang/AST/PrettyPrinter.h"
> #include "clang/AST/Type.h"
> #include "clang/AST/TypeLoc.h"
> +#include "clang/Basic/Diagnostic.h"
> #include "llvm/Support/raw_ostream.h"
> #include <cassert>
> 
> @@ -639,3 +640,9 @@
>   return NestedNameSpecifierLoc(Representation, Mem);
> }
> 
> +const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB,
> +                                           NestedNameSpecifier *NNS) {
> +  DB.AddTaggedVal(reinterpret_cast<intptr_t>(NNS),
> +                  DiagnosticsEngine::ak_nestednamespec);
> +  return DB;
> +}
> 
> Modified: cfe/trunk/lib/AST/Type.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Type.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/Type.cpp (original)
> +++ cfe/trunk/lib/AST/Type.cpp Sat Feb  4 06:31:12 2012
> @@ -20,6 +20,7 @@
> #include "clang/AST/Expr.h"
> #include "clang/AST/PrettyPrinter.h"
> #include "clang/AST/TypeVisitor.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> #include "clang/Basic/Specifiers.h"
> #include "llvm/ADT/APSInt.h"
> #include "llvm/ADT/StringExtras.h"
> @@ -2309,3 +2310,17 @@
> 
>   return true;
> }
> +
> +const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB,
> +                                           QualType T) {
> +  DB.AddTaggedVal(reinterpret_cast<intptr_t>(T.getAsOpaquePtr()),
> +                  DiagnosticsEngine::ak_qualtype);
> +  return DB;
> +}
> +
> +const PartialDiagnostic &clang::operator<<(const PartialDiagnostic &PD,
> +                                           QualType T) {
> +  PD.AddTaggedVal(reinterpret_cast<intptr_t>(T.getAsOpaquePtr()),
> +                  DiagnosticsEngine::ak_qualtype);
> +  return PD;
> +}
> 
> Modified: cfe/trunk/lib/CodeGen/CGCXXABI.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCXXABI.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGCXXABI.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGCXXABI.cpp Sat Feb  4 06:31:12 2012
> @@ -13,6 +13,7 @@
> //===----------------------------------------------------------------------===//
> 
> #include "CGCXXABI.h"
> +#include "clang/Basic/Diagnostic.h"
> 
> using namespace clang;
> using namespace CodeGen;
> 
> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Sat Feb  4 06:31:12 2012
> @@ -21,8 +21,9 @@
> #include "clang/AST/DeclTemplate.h"
> #include "clang/AST/Expr.h"
> #include "clang/AST/RecordLayout.h"
> -#include "clang/Basic/SourceManager.h"
> +#include "clang/Basic/Diagnostic.h"
> #include "clang/Basic/FileManager.h"
> +#include "clang/Basic/SourceManager.h"
> #include "clang/Basic/Version.h"
> #include "clang/Frontend/CodeGenOptions.h"
> #include "llvm/Constants.h"
> 
> Modified: cfe/trunk/lib/CodeGen/CodeGenTBAA.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenTBAA.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CodeGenTBAA.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenTBAA.cpp Sat Feb  4 06:31:12 2012
> @@ -22,6 +22,7 @@
> #include "llvm/Metadata.h"
> #include "llvm/Constants.h"
> #include "llvm/Type.h"
> +#include "llvm/ADT/STLExtras.h"
> using namespace clang;
> using namespace CodeGen;
> 
> 
> Modified: cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp (original)
> +++ cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp Sat Feb  4 06:31:12 2012
> @@ -16,6 +16,7 @@
> #include "clang/Sema/AnalysisBasedWarnings.h"
> #include "clang/Sema/SemaInternal.h"
> #include "clang/Sema/ScopeInfo.h"
> +#include "clang/Basic/PartialDiagnostic.h"
> #include "clang/Basic/SourceManager.h"
> #include "clang/Basic/SourceLocation.h"
> #include "clang/Lex/Preprocessor.h"
> 
> Modified: cfe/trunk/lib/Serialization/ASTWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTWriter.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTWriter.cpp Sat Feb  4 06:31:12 2012
> @@ -29,6 +29,7 @@
> #include "clang/Lex/PreprocessingRecord.h"
> #include "clang/Lex/Preprocessor.h"
> #include "clang/Lex/HeaderSearch.h"
> +#include "clang/Basic/Diagnostic.h"
> #include "clang/Basic/FileManager.h"
> #include "clang/Basic/FileSystemStatCache.h"
> #include "clang/Basic/OnDiskHashTable.h"
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp Sat Feb  4 06:31:12 2012
> @@ -19,6 +19,7 @@
> #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
> #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
> #include "clang/AST/CharUnits.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -17,6 +17,7 @@
> #include "clang/StaticAnalyzer/Core/CheckerManager.h"
> #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
> #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/CStringChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -18,6 +18,7 @@
> #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
> #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
> #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
> +#include "llvm/ADT/STLExtras.h"
> #include "llvm/ADT/StringSwitch.h"
> 
> using namespace clang;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -17,6 +17,7 @@
> #include "clang/StaticAnalyzer/Core/CheckerManager.h"
> #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
> #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -21,6 +21,7 @@
> #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
> #include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
> #include "llvm/ADT/ImmutableMap.h"
> +#include "llvm/ADT/STLExtras.h"
> using namespace clang;
> using namespace ento;
> 
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -20,6 +20,7 @@
> #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
> #include "clang/StaticAnalyzer/Checkers/DereferenceChecker.h"
> #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -19,6 +19,7 @@
> #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
> #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
> #include "llvm/ADT/ImmutableList.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/StreamChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/StreamChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/StreamChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -20,6 +20,7 @@
> #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
> #include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
> #include "llvm/ADT/ImmutableMap.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -19,6 +19,7 @@
> #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
> #include "clang/Basic/TargetInfo.h"
> #include "llvm/ADT/Optional.h"
> +#include "llvm/ADT/STLExtras.h"
> #include "llvm/ADT/StringSwitch.h"
> #include <fcntl.h>
> 
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp Sat Feb  4 06:31:12 2012
> @@ -20,6 +20,7 @@
> #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
> #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
> #include "clang/AST/CharUnits.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/AnalysisManager.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/AnalysisManager.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/AnalysisManager.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/AnalysisManager.cpp Sat Feb  4 06:31:12 2012
> @@ -10,6 +10,7 @@
> #include "clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h"
> #include "clang/Index/Entity.h"
> #include "clang/Index/Indexer.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp Sat Feb  4 06:31:12 2012
> @@ -21,6 +21,7 @@
> #include "clang/AST/Expr.h"
> #include "clang/AST/ParentMap.h"
> #include "clang/AST/StmtObjC.h"
> +#include "clang/Basic/Diagnostic.h"
> #include "clang/Basic/SourceManager.h"
> #include "clang/Analysis/ProgramPoint.h"
> #include "clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h"
> 
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp (original)
> +++ cfe/trunk/lib/StaticAnalyzer/Core/CheckerRegistry.cpp Sat Feb  4 06:31:12 2012
> @@ -10,6 +10,7 @@
> #include "clang/StaticAnalyzer/Core/CheckerRegistry.h"
> #include "clang/StaticAnalyzer/Core/CheckerOptInfo.h"
> #include "llvm/ADT/SetVector.h"
> +#include "llvm/ADT/STLExtras.h"
> 
> using namespace clang;
> using namespace ento;
> 
> Modified: cfe/trunk/tools/libclang/IndexingContext.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/IndexingContext.h?rev=149781&r1=149780&r2=149781&view=diff
> ==============================================================================
> --- cfe/trunk/tools/libclang/IndexingContext.h (original)
> +++ cfe/trunk/tools/libclang/IndexingContext.h Sat Feb  4 06:31:12 2012
> @@ -13,12 +13,14 @@
> #include "clang/AST/DeclObjC.h"
> #include "clang/AST/DeclGroup.h"
> #include "llvm/ADT/DenseSet.h"
> +#include "llvm/ADT/IntrusiveRefCntPtr.h"
> 
> namespace clang {
>   class FileEntry;
>   class ObjCPropertyDecl;
>   class ClassTemplateDecl;
>   class FunctionTemplateDecl;
> +  class Preprocessor;
>   class TypeAliasTemplateDecl;
> 
> namespace cxindex {
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits





More information about the cfe-commits mailing list