From: Chris Lattner Date: Sat, 22 Nov 2008 08:28:49 +0000 (+0000) Subject: move the Diag method for Sema to be inline. This shrinks the release-asserts X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3cfa928f9c9bdc5a12f4c4902cd932babc9c7bc1;p=clang move the Diag method for Sema to be inline. This shrinks the release-asserts clang executable (when built with gcc 4.2 on the mac) from 14519740 to 14495028 bytes. This shrinks individual object files as well: SemaChecking from 23580->22248, SemaDeclObjc from 61368->57376, SemaExpr from 115628->110516, as well as several others. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59867 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp index 7c498440c6..2edf08ec42 100644 --- a/lib/Sema/Sema.cpp +++ b/lib/Sema/Sema.cpp @@ -79,7 +79,8 @@ void Sema::ActOnTranslationUnitScope(SourceLocation Loc, Scope *S) { } Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer) - : PP(pp), Context(ctxt), Consumer(consumer), CurContext(0),PreDeclaratorDC(0), + : PP(pp), Context(ctxt), Consumer(consumer), Diags(PP.getDiagnostics()), + SourceMgr(PP.getSourceManager()), CurContext(0), PreDeclaratorDC(0), CurBlock(0), PackContext(0), IdResolver(pp.getLangOptions()) { // Get IdentifierInfo objects for known functions for which we @@ -157,11 +158,6 @@ void Sema::ActOnEndOfTranslationUnit() { // Helper functions. //===----------------------------------------------------------------------===// -DiagnosticBuilder Sema::Diag(SourceLocation Loc, unsigned DiagID) { - return PP.getDiagnostics().Report(FullSourceLoc(Loc, PP.getSourceManager()), - DiagID); -} - const LangOptions &Sema::getLangOptions() const { return PP.getLangOptions(); } diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index 6d9e582066..410c25486b 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -19,6 +19,7 @@ #include "CXXFieldCollector.h" #include "SemaOverload.h" #include "clang/Parse/Action.h" +#include "clang/Basic/Diagnostic.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/DenseSet.h" #include "llvm/ADT/SmallPtrSet.h" @@ -104,6 +105,8 @@ public: Preprocessor &PP; ASTContext &Context; ASTConsumer &Consumer; + Diagnostic &Diags; + SourceManager &SourceMgr; /// CurContext - This is the current declaration context of parsing. DeclContext *CurContext; @@ -224,9 +227,13 @@ public: Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer); const LangOptions &getLangOptions() const; - + Diagnostic &getDiagnostics() const { return Diags; } + SourceManager &getSourceManager() const { return SourceMgr; } + /// The primitive diagnostic helpers. - DiagnosticBuilder Diag(SourceLocation Loc, unsigned DiagID); + DiagnosticBuilder Diag(SourceLocation Loc, unsigned DiagID) { + return Diags.Report(FullSourceLoc(Loc, SourceMgr), DiagID); + } virtual void DeleteExpr(ExprTy *E); virtual void DeleteStmt(StmtTy *S);