<div dir="ltr">Already commited. It should work right now.</div><div class="gmail_extra"><br><div class="gmail_quote">2016-05-31 18:00 GMT+02:00 Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think is just the usual "<a href="http://llvm.org" rel="noreferrer" target="_blank">llvm.org</a> is crazy slow". I am trying to commit.<br>
<br>
Cheers,<br>
Rafael<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On 31 May 2016 at 08:54, Piotr Padlewski <<a href="mailto:piotr.padlewski@gmail.com">piotr.padlewski@gmail.com</a>> wrote:<br>
> dunno why but I can't fetch from upstream<br>
><br>
> Can you push this change?<br>
><br>
> ------------------------- include/clang/CMakeLists.txt<br>
> -------------------------<br>
> index 96905c9..feb81f0 100644<br>
> @@ -5,4 +5,3 @@ add_subdirectory(Parse)<br>
>  add_subdirectory(Sema)<br>
>  add_subdirectory(Serialization)<br>
>  add_subdirectory(StaticAnalyzer/Checkers)<br>
> -add_subdirectory(ASTMatchers)<br>
><br>
> 2016-05-31 17:48 GMT+02:00 Piotr Padlewski <<a href="mailto:piotr.padlewski@gmail.com">piotr.padlewski@gmail.com</a>>:<br>
>><br>
>> Yep, sending fix<br>
>><br>
>> 2016-05-31 17:45 GMT+02:00 Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>>:<br>
>>><br>
>>> This broke the build:<br>
>>><br>
>>> <a href="http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/36968/steps/cmake-configure/logs/stdio" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/36968/steps/cmake-configure/logs/stdio</a><br>
>>><br>
>>> On 31 May 2016 at 08:25, Piotr Padlewski via cfe-commits<br>
>>> <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br>
>>> > Author: prazek<br>
>>> > Date: Tue May 31 10:25:05 2016<br>
>>> > New Revision: 271288<br>
>>> ><br>
>>> > URL: <a href="http://llvm.org/viewvc/llvm-project?rev=271288&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=271288&view=rev</a><br>
>>> > Log:<br>
>>> > [ASTMatchers] Breaking change of `has` matcher<br>
>>> ><br>
>>> > has matcher can now match to implicit and paren casts<br>
>>> ><br>
>>> > <a href="http://reviews.llvm.org/D20801" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20801</a><br>
>>> ><br>
>>> > Modified:<br>
>>> >     cfe/trunk/docs/ReleaseNotes.rst<br>
>>> >     cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h<br>
>>> >     cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h<br>
>>> >     cfe/trunk/include/clang/CMakeLists.txt<br>
>>> >     cfe/trunk/unittests/AST/ASTImporterTest.cpp<br>
>>> >     cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp<br>
>>> ><br>
>>> > Modified: cfe/trunk/docs/ReleaseNotes.rst<br>
>>> > URL:<br>
>>> > <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/ReleaseNotes.rst?rev=271288&r1=271287&r2=271288&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/ReleaseNotes.rst?rev=271288&r1=271287&r2=271288&view=diff</a><br>
>>> ><br>
>>> > ==============================================================================<br>
>>> > --- cfe/trunk/docs/ReleaseNotes.rst (original)<br>
>>> > +++ cfe/trunk/docs/ReleaseNotes.rst Tue May 31 10:25:05 2016<br>
>>> > @@ -185,11 +185,13 @@ this section should help get you past th<br>
>>> >  AST Matchers<br>
>>> >  ------------<br>
>>> ><br>
>>> > -- hasAnyArgument: Matcher no longer ignores parentheses and implicit<br>
>>> > casts on<br>
>>> > -  the argument before applying the inner matcher. The fix was done to<br>
>>> > allow for<br>
>>> > -  greater control by the user. In all existing checkers that use this<br>
>>> > matcher<br>
>>> > -  all instances of code ``hasAnyArgument(<inner matcher>)`` must be<br>
>>> > changed to<br>
>>> > -  ``hasAnyArgument(ignoringParenImpCasts(<inner matcher>))``.<br>
>>> > +- has and hasAnyArgument: Matchers no longer ignores parentheses and<br>
>>> > implicit<br>
>>> > +  casts on the argument before applying the inner matcher. The fix was<br>
>>> > done to<br>
>>> > +  allow for greater control by the user. In all existing checkers that<br>
>>> > use this<br>
>>> > +  matcher all instances of code ``hasAnyArgument(<inner matcher>)`` or<br>
>>> > +  ``has(<inner matcher>)`` must be changed to<br>
>>> > +  ``hasAnyArgument(ignoringParenImpCasts(<inner matcher>))`` or<br>
>>> > +  ``has(ignoringParenImpCasts(<inner matcher>))``.<br>
>>> ><br>
>>> >  ...<br>
>>> ><br>
>>> ><br>
>>> > Modified: cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h<br>
>>> > URL:<br>
>>> > <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h?rev=271288&r1=271287&r2=271288&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h?rev=271288&r1=271287&r2=271288&view=diff</a><br>
>>> ><br>
>>> > ==============================================================================<br>
>>> > --- cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h (original)<br>
>>> > +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h Tue May 31<br>
>>> > 10:25:05 2016<br>
>>> > @@ -2169,6 +2169,10 @@ AST_MATCHER_P(CXXRecordDecl, hasMethod,<br>
>>> >  /// ChildT must be an AST base type.<br>
>>> >  ///<br>
>>> >  /// Usable as: Any Matcher<br>
>>> > +/// Note that has is direct matcher, so it also matches things like<br>
>>> > implicit<br>
>>> > +/// casts and paren casts. If you are matching with expr then you<br>
>>> > should<br>
>>> > +/// probably consider using ignoringParenImpCasts like:<br>
>>> > +/// has(ignoringParenImpCasts(expr())).<br>
>>> >  const internal::ArgumentAdaptingMatcherFunc<internal::HasMatcher><br>
>>> >  LLVM_ATTRIBUTE_UNUSED has = {};<br>
>>> ><br>
>>> ><br>
>>> > Modified: cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h<br>
>>> > URL:<br>
>>> > <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h?rev=271288&r1=271287&r2=271288&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h?rev=271288&r1=271287&r2=271288&view=diff</a><br>
>>> ><br>
>>> > ==============================================================================<br>
>>> > --- cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h<br>
>>> > (original)<br>
>>> > +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h Tue May<br>
>>> > 31 10:25:05 2016<br>
>>> > @@ -1165,8 +1165,6 @@ public:<br>
>>> >  /// ChildT must be an AST base type.<br>
>>> >  template <typename T, typename ChildT><br>
>>> >  class HasMatcher : public WrapperMatcherInterface<T> {<br>
>>> > -  static_assert(IsBaseType<ChildT>::value,<br>
>>> > -                "has only accepts base type matcher");<br>
>>> ><br>
>>> >  public:<br>
>>> >    explicit HasMatcher(const Matcher<ChildT> &ChildMatcher)<br>
>>> > @@ -1174,10 +1172,9 @@ public:<br>
>>> ><br>
>>> >    bool matches(const T &Node, ASTMatchFinder *Finder,<br>
>>> >                 BoundNodesTreeBuilder *Builder) const override {<br>
>>> > -    return Finder->matchesChildOf(<br>
>>> > -        Node, this->InnerMatcher, Builder,<br>
>>> > -        ASTMatchFinder::TK_IgnoreImplicitCastsAndParentheses,<br>
>>> > -        ASTMatchFinder::BK_First);<br>
>>> > +    return Finder->matchesChildOf(Node, this->InnerMatcher, Builder,<br>
>>> > +                                  ASTMatchFinder::TK_AsIs,<br>
>>> > +                                  ASTMatchFinder::BK_First);<br>
>>> >    }<br>
>>> >  };<br>
>>> ><br>
>>> ><br>
>>> > Modified: cfe/trunk/include/clang/CMakeLists.txt<br>
>>> > URL:<br>
>>> > <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/CMakeLists.txt?rev=271288&r1=271287&r2=271288&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/CMakeLists.txt?rev=271288&r1=271287&r2=271288&view=diff</a><br>
>>> ><br>
>>> > ==============================================================================<br>
>>> > --- cfe/trunk/include/clang/CMakeLists.txt (original)<br>
>>> > +++ cfe/trunk/include/clang/CMakeLists.txt Tue May 31 10:25:05 2016<br>
>>> > @@ -5,3 +5,4 @@ add_subdirectory(Parse)<br>
>>> >  add_subdirectory(Sema)<br>
>>> >  add_subdirectory(Serialization)<br>
>>> >  add_subdirectory(StaticAnalyzer/Checkers)<br>
>>> > +add_subdirectory(ASTMatchers)<br>
>>> ><br>
>>> > Modified: cfe/trunk/unittests/AST/ASTImporterTest.cpp<br>
>>> > URL:<br>
>>> > <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/ASTImporterTest.cpp?rev=271288&r1=271287&r2=271288&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/ASTImporterTest.cpp?rev=271288&r1=271287&r2=271288&view=diff</a><br>
>>> ><br>
>>> > ==============================================================================<br>
>>> > --- cfe/trunk/unittests/AST/ASTImporterTest.cpp (original)<br>
>>> > +++ cfe/trunk/unittests/AST/ASTImporterTest.cpp Tue May 31 10:25:05<br>
>>> > 2016<br>
>>> > @@ -225,20 +225,14 @@ TEST(ImportExpr, ImportCXXThisExpr) {<br>
>>> ><br>
>>> >  TEST(ImportExpr, ImportAtomicExpr) {<br>
>>> >    MatchVerifier<Decl> Verifier;<br>
>>> > -  EXPECT_TRUE(<br>
>>> > -        testImport(<br>
>>> > -          "void declToImport() { int *ptr; __atomic_load_n(ptr, 1);<br>
>>> > }",<br>
>>> > -          Lang_CXX, "", Lang_CXX, Verifier,<br>
>>> > -          functionDecl(<br>
>>> > -            hasBody(<br>
>>> > -              compoundStmt(<br>
>>> > -                has(<br>
>>> > -                  atomicExpr(<br>
>>> > -                    has(declRefExpr(<br>
>>> > -                          hasDeclaration(varDecl(hasName("ptr"))),<br>
>>> > -                          hasType(asString("int *")))),<br>
>>> > -                    has(integerLiteral(equals(1),<br>
>>> > hasType(asString("int"))))<br>
>>> > -                    )))))));<br>
>>> > +  EXPECT_TRUE(testImport(<br>
>>> > +      "void declToImport() { int *ptr; __atomic_load_n(ptr, 1); }",<br>
>>> > Lang_CXX,<br>
>>> > +      "", Lang_CXX, Verifier,<br>
>>> > +      functionDecl(hasBody(compoundStmt(has(atomicExpr(<br>
>>> > +          has(ignoringParenImpCasts(<br>
>>> > +              declRefExpr(hasDeclaration(varDecl(hasName("ptr"))),<br>
>>> > +                          hasType(asString("int *"))))),<br>
>>> > +          has(integerLiteral(equals(1),<br>
>>> > hasType(asString("int")))))))))));<br>
>>> >  }<br>
>>> ><br>
>>> >  TEST(ImportExpr, ImportLabelDeclAndAddrLabelExpr) {<br>
>>> ><br>
>>> > Modified: cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp<br>
>>> > URL:<br>
>>> > <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp?rev=271288&r1=271287&r2=271288&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp?rev=271288&r1=271287&r2=271288&view=diff</a><br>
>>> ><br>
>>> > ==============================================================================<br>
>>> > --- cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp<br>
>>> > (original)<br>
>>> > +++ cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp Tue<br>
>>> > May 31 10:25:05 2016<br>
>>> > @@ -122,8 +122,8 @@ TEST(Has, MatchesChildTypes) {<br>
>>> ><br>
>>> >  TEST(StatementMatcher, Has) {<br>
>>> >    StatementMatcher HasVariableI =<br>
>>> > -    expr(hasType(pointsTo(recordDecl(hasName("X")))),<br>
>>> > -         has(declRefExpr(to(varDecl(hasName("i"))))));<br>
>>> > +      expr(hasType(pointsTo(recordDecl(hasName("X")))),<br>
>>> > +<br>
>>> > has(ignoringParenImpCasts(declRefExpr(to(varDecl(hasName("i")))))));<br>
>>> ><br>
>>> >    EXPECT_TRUE(matches(<br>
>>> >      "class X; X *x(int); void c() { int i; x(i); }", HasVariableI));<br>
>>> ><br>
>>> ><br>
>>> > _______________________________________________<br>
>>> > cfe-commits mailing list<br>
>>> > <a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
>>> > <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
>><br>
>><br>
><br>
</div></div></blockquote></div><br></div>