[cfe-commits] r160355 - in /cfe/trunk: include/clang/Tooling/RefactoringCallbacks.h lib/Tooling/RefactoringCallbacks.cpp unittests/Tooling/RefactoringCallbacksTest.cpp

Alexander Potapenko glider at google.com
Tue Jul 17 01:49:38 PDT 2012


Oh, sorry, I've actually posted it to the wrong thread.
r160355 is building now, I'll post an update when it's done.

On Tue, Jul 17, 2012 at 12:47 PM, Daniel Jasper <djasper at google.com> wrote:
> And this is not fixed with r160355?
>
>
> On Tue, Jul 17, 2012 at 10:45 AM, Alexander Potapenko <glider at google.com>
> wrote:
>>
>> Hi Daniel,
>>
>> this change broke ASan build on Linux x86_64:
>>
>> llvm[4]: Linking Release+Asserts unit test Tooling (without symbols)
>> Undefined symbols for architecture x86_64:
>>   "clang::ast_matchers::MatchFinder::MatchCallback::~MatchCallback()",
>> referenced from:
>>
>> clang::ast_matchers::RefactoringCallbacksTest_ReplacesStmtsWithString_Test::TestBody()
>> in RefactoringCallbacksTest.o
>>
>> clang::ast_matchers::RefactoringCallbacksTest_ReplacesStmtsInCalledMacros_Test::TestBody()
>> in RefactoringCallbacksTest.o
>>
>> clang::ast_matchers::RefactoringCallbacksTest_IgnoresStmtsInUncalledMacros_Test::TestBody()
>> in RefactoringCallbacksTest.o
>>
>> clang::ast_matchers::RefactoringCallbacksTest_ReplacesInteger_Test::TestBody()
>> in RefactoringCallbacksTest.o
>>
>> clang::ast_matchers::RefactoringCallbacksTest_ReplacesStmtWithStmt_Test::TestBody()
>> in RefactoringCallbacksTest.o
>>
>> clang::ast_matchers::RefactoringCallbacksTest_ReplacesIfStmt_Test::TestBody()
>> in RefactoringCallbacksTest.o
>>
>> clang::ast_matchers::RefactoringCallbacksTest_RemovesEntireIfOnEmptyElse_Test::TestBody()
>> in RefactoringCallbacksTest.o
>>       ...
>>   "clang::ast_matchers::MatchFinder::MatchFinder()", referenced from:
>>       void
>> clang::ast_matchers::expectRewritten<clang::ast_matchers::internal::Matcher<clang::Stmt>
>> >(std::string const&, std::string const&,
>> clang::ast_matchers::internal::Matcher<clang::Stmt> const&,
>> clang::ast_matchers::RefactoringCallback&) in
>> RefactoringCallbacksTest.o
>>
>> "clang::ast_matchers::MatchFinder::addMatcher(clang::ast_matchers::internal::Matcher<clang::Stmt>
>> const&, clang::ast_matchers::MatchFinder::MatchCallback*)", referenced
>> from:
>>       void
>> clang::ast_matchers::expectRewritten<clang::ast_matchers::internal::Matcher<clang::Stmt>
>> >(std::string const&, std::string const&,
>> clang::ast_matchers::internal::Matcher<clang::Stmt> const&,
>> clang::ast_matchers::RefactoringCallback&) in
>> RefactoringCallbacksTest.o
>>   "clang::ast_matchers::MatchFinder::~MatchFinder()", referenced from:
>>       void
>> clang::ast_matchers::expectRewritten<clang::ast_matchers::internal::Matcher<clang::Stmt>
>> >(std::string const&, std::string const&,
>> clang::ast_matchers::internal::Matcher<clang::Stmt> const&,
>> clang::ast_matchers::RefactoringCallback&) in
>> RefactoringCallbacksTest.o
>>   "clang::ast_matchers::MatchFinder::newASTConsumer()", referenced from:
>>       clang::tooling::FrontendActionFactory*
>>
>> clang::tooling::newFrontendActionFactory<clang::ast_matchers::MatchFinder>(clang::ast_matchers::MatchFinder*)::clang::tooling::newFrontendActionFactory<clang::ast_matchers::MatchFinder>::FrontendActionFactoryAdapter::ConsumerFactoryAdaptor::CreateASTConsumer(clang::CompilerInstance&,
>> llvm::StringRef) in RefactoringCallbacksTest.o
>>
>> "clang::ast_matchers::internal::BoundNodesTreeBuilder::setBinding(std::string
>> const&, clang::Stmt const*)", referenced from:
>>
>> clang::ast_matchers::internal::IdMatcher<clang::Stmt>::matches(clang::Stmt
>> const&, clang::ast_matchers::internal::ASTMatchFinder*,
>> clang::ast_matchers::internal::BoundNodesTreeBuilder*) const in
>> RefactoringCallbacksTest.o
>> ld: symbol(s) not found for architecture x86_64
>>
>> On Tue, Jul 17, 2012 at 12:37 PM, Daniel Jasper <djasper at google.com>
>> wrote:
>> > Author: djasper
>> > Date: Tue Jul 17 03:37:03 2012
>> > New Revision: 160355
>> >
>> > URL: http://llvm.org/viewvc/llvm-project?rev=160355&view=rev
>> > Log:
>> > Finishing the move of RefactoringCallbacks and fixing the corresponding
>> > buildbot failures.
>> >
>> > Modified:
>> >     cfe/trunk/include/clang/Tooling/RefactoringCallbacks.h
>> >     cfe/trunk/lib/Tooling/RefactoringCallbacks.cpp
>> >     cfe/trunk/unittests/Tooling/RefactoringCallbacksTest.cpp
>> >
>> > Modified: cfe/trunk/include/clang/Tooling/RefactoringCallbacks.h
>> > URL:
>> > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Tooling/RefactoringCallbacks.h?rev=160355&r1=160354&r2=160355&view=diff
>> >
>> > ==============================================================================
>> > --- cfe/trunk/include/clang/Tooling/RefactoringCallbacks.h (original)
>> > +++ cfe/trunk/include/clang/Tooling/RefactoringCallbacks.h Tue Jul 17
>> > 03:37:03 2012
>> > @@ -33,18 +33,18 @@
>> >  #include "clang/Tooling/Refactoring.h"
>> >
>> >  namespace clang {
>> > -namespace ast_matchers {
>> > +namespace tooling {
>> >
>> >  /// \brief Base class for RefactoringCallbacks.
>> >  ///
>> >  /// Collects \c tooling::Replacements while running.
>> > -class RefactoringCallback : public MatchFinder::MatchCallback {
>> > +class RefactoringCallback : public
>> > ast_matchers::MatchFinder::MatchCallback {
>> >  public:
>> >    RefactoringCallback();
>> > -  tooling::Replacements &getReplacements();
>> > +  Replacements &getReplacements();
>> >
>> >  protected:
>> > -  tooling::Replacements Replace;
>> > +  Replacements Replace;
>> >  };
>> >
>> >  /// \brief Replace the text of the statement bound to \c FromId with
>> > the text in
>> > @@ -52,7 +52,7 @@
>> >  class ReplaceStmtWithText : public RefactoringCallback {
>> >  public:
>> >    ReplaceStmtWithText(StringRef FromId, StringRef ToText);
>> > -  virtual void run(const MatchFinder::MatchResult &Result);
>> > +  virtual void run(const ast_matchers::MatchFinder::MatchResult
>> > &Result);
>> >
>> >  private:
>> >    std::string FromId;
>> > @@ -64,7 +64,7 @@
>> >  class ReplaceStmtWithStmt : public RefactoringCallback {
>> >  public:
>> >    ReplaceStmtWithStmt(StringRef FromId, StringRef ToId);
>> > -  virtual void run(const MatchFinder::MatchResult &Result);
>> > +  virtual void run(const ast_matchers::MatchFinder::MatchResult
>> > &Result);
>> >
>> >  private:
>> >    std::string FromId;
>> > @@ -77,14 +77,14 @@
>> >  class ReplaceIfStmtWithItsBody : public RefactoringCallback {
>> >  public:
>> >    ReplaceIfStmtWithItsBody(StringRef Id, bool PickTrueBranch);
>> > -  virtual void run(const MatchFinder::MatchResult &Result);
>> > +  virtual void run(const ast_matchers::MatchFinder::MatchResult
>> > &Result);
>> >
>> >  private:
>> >    std::string Id;
>> >    const bool PickTrueBranch;
>> >  };
>> >
>> > -} // end namespace ast_matchers
>> > +} // end namespace tooling
>> >  } // end namespace clang
>> >
>> >  #endif // LLVM_CLANG_TOOLING_REFACTORING_CALLBACKS_H
>> >
>> > Modified: cfe/trunk/lib/Tooling/RefactoringCallbacks.cpp
>> > URL:
>> > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/RefactoringCallbacks.cpp?rev=160355&r1=160354&r2=160355&view=diff
>> >
>> > ==============================================================================
>> > --- cfe/trunk/lib/Tooling/RefactoringCallbacks.cpp (original)
>> > +++ cfe/trunk/lib/Tooling/RefactoringCallbacks.cpp Tue Jul 17 03:37:03
>> > 2012
>> > @@ -13,22 +13,22 @@
>> >  #include "clang/Tooling/RefactoringCallbacks.h"
>> >
>> >  namespace clang {
>> > -namespace ast_matchers {
>> > +namespace tooling {
>> >
>> >  RefactoringCallback::RefactoringCallback() {}
>> >  tooling::Replacements &RefactoringCallback::getReplacements() {
>> >    return Replace;
>> >  }
>> >
>> > -static tooling::Replacement replaceStmtWithText(SourceManager &Sources,
>> > -                                                const Stmt &From,
>> > -                                                StringRef Text) {
>> > +static Replacement replaceStmtWithText(SourceManager &Sources,
>> > +                                       const Stmt &From,
>> > +                                       StringRef Text) {
>> >    return tooling::Replacement(Sources, CharSourceRange::getTokenRange(
>> >        From.getSourceRange()), Text);
>> >  }
>> > -static tooling::Replacement replaceStmtWithStmt(SourceManager &Sources,
>> > -                                                const Stmt &From,
>> > -                                                const Stmt &To) {
>> > +static Replacement replaceStmtWithStmt(SourceManager &Sources,
>> > +                                       const Stmt &From,
>> > +                                       const Stmt &To) {
>> >    return replaceStmtWithText(Sources, From, Lexer::getSourceText(
>> >        CharSourceRange::getTokenRange(To.getSourceRange()),
>> >        Sources, LangOptions()));
>> > @@ -37,7 +37,8 @@
>> >  ReplaceStmtWithText::ReplaceStmtWithText(StringRef FromId, StringRef
>> > ToText)
>> >      : FromId(FromId), ToText(ToText) {}
>> >
>> > -void ReplaceStmtWithText::run(const MatchFinder::MatchResult &Result) {
>> > +void ReplaceStmtWithText::run(
>> > +    const ast_matchers::MatchFinder::MatchResult &Result) {
>> >    if (const Stmt *FromMatch = Result.Nodes.getStmtAs<Stmt>(FromId)) {
>> >      Replace.insert(tooling::Replacement(
>> >          *Result.SourceManager,
>> > @@ -49,7 +50,8 @@
>> >  ReplaceStmtWithStmt::ReplaceStmtWithStmt(StringRef FromId, StringRef
>> > ToId)
>> >      : FromId(FromId), ToId(ToId) {}
>> >
>> > -void ReplaceStmtWithStmt::run(const MatchFinder::MatchResult &Result) {
>> > +void ReplaceStmtWithStmt::run(
>> > +    const ast_matchers::MatchFinder::MatchResult &Result) {
>> >    const Stmt *FromMatch = Result.Nodes.getStmtAs<Stmt>(FromId);
>> >    const Stmt *ToMatch = Result.Nodes.getStmtAs<Stmt>(ToId);
>> >    if (FromMatch && ToMatch)
>> > @@ -61,7 +63,8 @@
>> >                                                     bool PickTrueBranch)
>> >      : Id(Id), PickTrueBranch(PickTrueBranch) {}
>> >
>> > -void ReplaceIfStmtWithItsBody::run(const MatchFinder::MatchResult
>> > &Result) {
>> > +void ReplaceIfStmtWithItsBody::run(
>> > +    const ast_matchers::MatchFinder::MatchResult &Result) {
>> >    if (const IfStmt *Node = Result.Nodes.getStmtAs<IfStmt>(Id)) {
>> >      const Stmt *Body = PickTrueBranch ? Node->getThen() :
>> > Node->getElse();
>> >      if (Body) {
>> > @@ -74,5 +77,5 @@
>> >    }
>> >  }
>> >
>> > -} // end namespace ast_matchers
>> > +} // end namespace tooling
>> >  } // end namespace clang
>> >
>> > Modified: cfe/trunk/unittests/Tooling/RefactoringCallbacksTest.cpp
>> > URL:
>> > http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Tooling/RefactoringCallbacksTest.cpp?rev=160355&r1=160354&r2=160355&view=diff
>> >
>> > ==============================================================================
>> > --- cfe/trunk/unittests/Tooling/RefactoringCallbacksTest.cpp (original)
>> > +++ cfe/trunk/unittests/Tooling/RefactoringCallbacksTest.cpp Tue Jul 17
>> > 03:37:03 2012
>> > @@ -14,7 +14,9 @@
>> >  #include "RewriterTestContext.h"
>> >
>> >  namespace clang {
>> > -namespace ast_matchers {
>> > +namespace tooling {
>> > +
>> > +using namespace ast_matchers;
>> >
>> >  template <typename T>
>> >  void expectRewritten(const std::string &Code,
>> >
>> >
>> > _______________________________________________
>> > cfe-commits mailing list
>> > cfe-commits at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>>
>>
>> --
>> Alexander Potapenko
>> Software Engineer
>> Google Moscow
>
>



-- 
Alexander Potapenko
Software Engineer
Google Moscow




More information about the cfe-commits mailing list