<p dir="ltr"><br>
On 24 Jul 2014 01:46, "Benjamin Kramer" <<a href="mailto:benny.kra@googlemail.com">benny.kra@googlemail.com</a>> wrote:<br>
><br>
> Author: d0k<br>
> Date: Thu Jul 24 03:34:42 2014<br>
> New Revision: 213845<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=213845&view=rev">http://llvm.org/viewvc/llvm-project?rev=213845&view=rev</a><br>
> Log:<br>
> [clang-tidy] Fix a heap use-after-free bug detected by asan.<br>
><br>
> Modified:<br>
>     clang-tools-extra/trunk/clang-tidy/misc/UnusedRAII.cpp<br>
><br>
> Modified: clang-tools-extra/trunk/clang-tidy/misc/UnusedRAII.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/UnusedRAII.cpp?rev=213845&r1=213844&r2=213845&view=diff">http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/UnusedRAII.cpp?rev=213845&r1=213844&r2=213845&view=diff</a><br>

> ==============================================================================<br>
> --- clang-tools-extra/trunk/clang-tidy/misc/UnusedRAII.cpp (original)<br>
> +++ clang-tools-extra/trunk/clang-tidy/misc/UnusedRAII.cpp Thu Jul 24 03:34:42 2014<br>
> @@ -17,7 +17,7 @@ namespace clang {<br>
>  namespace ast_matchers {<br>
>  AST_MATCHER(CXXRecordDecl, hasUserDeclaredDestructor) {<br>
>    // TODO: If the dtor is there but empty we don't want to warn either.<br>
> -  return Node.hasUserDeclaredDestructor();<br>
> +  return Node.hasDefinition() && Node.hasUserDeclaredDestructor();</p>
<p dir="ltr">Did you mean to include this change?<br></p>
<p dir="ltr">>  }<br>
>  } // namespace ast_matchers<br>
><br>
> @@ -73,9 +73,9 @@ void UnusedRAIICheck::check(const MatchF<br>
>    // Otherwise just suggest adding a name. To find the place to insert the name<br>
>    // find the first TypeLoc in the children of E, which always points to the<br>
>    // written type.<br>
> -  const auto *TL =<br>
> -      selectFirst<TypeLoc>("t", match(expr(hasDescendant(typeLoc().bind("t"))),<br>
> -                                      *E, *Result.Context));<br>
> +  auto Matches =<br>
> +      match(expr(hasDescendant(typeLoc().bind("t"))), *E, *Result.Context);<br>
> +  const auto *TL = selectFirst<TypeLoc>("t", Matches);<br>
>    D << FixItHint::CreateInsertion(<br>
>        Lexer::getLocForEndOfToken(TL->getLocEnd(), 0, *Result.SourceManager,<br>
>                                   Result.Context->getLangOpts()),<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</p>