<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>