On Tue, Aug 14, 2012 at 7:50 AM, Benjamin Kramer <[email protected]>wrote:
> Author: d0k > Date: Tue Aug 14 09:50:32 2012 > New Revision: 161872 > > URL: http://llvm.org/viewvc/llvm-project?rev=161872&view=rev > Log: > Do NOT use inline functions with LLVM_ATTRIBUTE_USED. > > The function will be emitted into every single TU including the header! > > Modified: > cfe/trunk/include/clang/AST/DeclBase.h > cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h > cfe/trunk/lib/AST/DeclPrinter.cpp > cfe/trunk/lib/AST/DumpXML.cpp > cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp > > Modified: cfe/trunk/include/clang/AST/DeclBase.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclBase.h?rev=161872&r1=161871&r2=161872&view=diff > > ============================================================================== > --- cfe/trunk/include/clang/AST/DeclBase.h (original) > +++ cfe/trunk/include/clang/AST/DeclBase.h Tue Aug 14 09:50:32 2012 > @@ -858,10 +858,10 @@ > raw_ostream &Out, const PrintingPolicy &Policy, > unsigned Indentation = 0); > // Debuggers don't usually respect default arguments. > - LLVM_ATTRIBUTE_USED void dump() const { dump(llvm::errs()); } > + LLVM_ATTRIBUTE_USED void dump() const; > void dump(raw_ostream &Out) const; > // Debuggers don't usually respect default arguments. > - LLVM_ATTRIBUTE_USED void dumpXML() const { dumpXML(llvm::errs()); } > + LLVM_ATTRIBUTE_USED void dumpXML() const; > void dumpXML(raw_ostream &OS) const; > > private: > > Modified: > cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h?rev=161872&r1=161871&r2=161872&view=diff > > ============================================================================== > --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h > (original) > +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h > Tue Aug 14 09:50:32 2012 > @@ -328,7 +328,7 @@ > > // For debugging purposes only > void dump(raw_ostream &Out) const; > - LLVM_ATTRIBUTE_USED void dump() const { dump(llvm::errs()); } > + LLVM_ATTRIBUTE_USED void dump() const; > > static bool classof(const CallEvent *) { return true; } > }; > > Modified: cfe/trunk/lib/AST/DeclPrinter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclPrinter.cpp?rev=161872&r1=161871&r2=161872&view=diff > > ============================================================================== > --- cfe/trunk/lib/AST/DeclPrinter.cpp (original) > +++ cfe/trunk/lib/AST/DeclPrinter.cpp Tue Aug 14 09:50:32 2012 > @@ -175,6 +175,10 @@ > Printer.VisitDeclContext(const_cast<DeclContext *>(this), > /*Indent=*/false); > } > > +void Decl::dump() const { > + dump(llvm::errs()); > +} > + > void Decl::dump(raw_ostream &Out) const { > PrintingPolicy Policy = getASTContext().getPrintingPolicy(); > Policy.Dump = true; > > Modified: cfe/trunk/lib/AST/DumpXML.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DumpXML.cpp?rev=161872&r1=161871&r2=161872&view=diff > > ============================================================================== > --- cfe/trunk/lib/AST/DumpXML.cpp (original) > +++ cfe/trunk/lib/AST/DumpXML.cpp Tue Aug 14 09:50:32 2012 > @@ -1022,12 +1022,17 @@ > }; > } > > +void Decl::dumpXML() const { > + dump(llvm::errs()); > You definitely want to call dumpXML(llvm::errs()) here. > +} > + > void Decl::dumpXML(raw_ostream &out) const { > XMLDumper(out, getASTContext()).dispatch(const_cast<Decl*>(this)); > } > > #else /* ifndef NDEBUG */ > > +void Decl::dumpXML() const {} > void Decl::dumpXML(raw_ostream &out) const {} > > #endif > > Modified: cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp?rev=161872&r1=161871&r2=161872&view=diff > > ============================================================================== > --- cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp (original) > +++ cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp Tue Aug 14 09:50:32 > 2012 > @@ -207,6 +207,10 @@ > return ArgE->getSourceRange(); > } > > +void CallEvent::dump() const { > + dump(llvm::errs()); > +} > + > void CallEvent::dump(raw_ostream &Out) const { > ASTContext &Ctx = getState()->getStateManager().getContext(); > if (const Expr *E = getOriginExpr()) { > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > -- Best regards, Alexander Kornienko
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
