[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-07 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang-tools-extra/docs/clang-tidy/checks/bugprone-no-escape.rst:13 + + .. code-block:: objc +void foo(__attribute__((noescape)) int *p) { ellis wrote: > It looks like I triggered a build failure for the

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-07 Thread Ellis Hoag via Phabricator via cfe-commits
ellis marked an inline comment as done. ellis added inline comments. Comment at: clang-tools-extra/docs/clang-tidy/checks/bugprone-no-escape.rst:13 + + .. code-block:: objc +void foo(__attribute__((noescape)) int *p) { It looks like I triggered a build

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-07 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman closed this revision. aaron.ballman added a comment. In D82904#2136686 , @ellis wrote: > Hey @aaron.ballman, thanks for accepting my diff! Would you mind landing my > diff since I don't have commit access yet? Gladly -- I've committed on

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-07 Thread Ellis Hoag via Phabricator via cfe-commits
ellis added a comment. Hey @aaron.ballman, thanks for accepting my diff! Would you mind landing my diff since I don't have commit access yet? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82904/new/ https://reviews.llvm.org/D82904

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-07 Thread Ellis Hoag via Phabricator via cfe-commits
ellis updated this revision to Diff 276118. ellis added a comment. Update commit message Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82904/new/ https://reviews.llvm.org/D82904 Files:

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-07 Thread Ellis Hoag via Phabricator via cfe-commits
ellis updated this revision to Diff 276095. ellis added a comment. Add RUN line to test in C Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82904/new/ https://reviews.llvm.org/D82904 Files:

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-07 Thread Nathan James via Phabricator via cfe-commits
njames93 added inline comments. Comment at: clang-tools-extra/test/clang-tidy/checkers/bugprone-no-escape.m:1 +// RUN: %check_clang_tidy %s bugprone-no-escape %t + aaron.ballman wrote: > Can you add an additional RUN line so we get coverage of the blocks-enabled

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-07 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land. LGTM with a testing request. Comment at: clang-tools-extra/clang-tidy/bugprone/NoEscapeCheck.cpp:34 + const BlockDecl *EscapingBlockDecl =

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-06 Thread Ellis Hoag via Phabricator via cfe-commits
ellis added inline comments. Comment at: clang-tools-extra/clang-tidy/bugprone/NoEscapeCheck.cpp:34 + const BlockDecl *EscapingBlockDecl = MatchedEscapingBlock->getBlockDecl(); + for (const BlockDecl::Capture : EscapingBlockDecl->captures()) { +const VarDecl *Var =

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-06 Thread Ellis Hoag via Phabricator via cfe-commits
ellis updated this revision to Diff 275826. ellis marked 9 inline comments as done. ellis added a comment. Use `LangOpts.Blocks` instead of `LangOpts.ObjC` and add FIXME about grabbing the use location of a `CapturedVar`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-06 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp:82 "bugprone-bool-pointer-implicit-conversion"); -CheckFactories.registerCheck( -"bugprone-branch-clone"); +

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-06 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp:82 "bugprone-bool-pointer-implicit-conversion"); -CheckFactories.registerCheck( -"bugprone-branch-clone"); +

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-06 Thread Ellis Hoag via Phabricator via cfe-commits
ellis marked an inline comment as done. ellis added inline comments. Comment at: clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp:82 "bugprone-bool-pointer-implicit-conversion"); -CheckFactories.registerCheck( -"bugprone-branch-clone"); +

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-06 Thread Nathan James via Phabricator via cfe-commits
njames93 added inline comments. Comment at: clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp:121 "bugprone-narrowing-conversions"); +CheckFactories.registerCheck("bugprone-no-escape"); CheckFactories.registerCheck( aaron.ballman

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-01 Thread Ellis Hoag via Phabricator via cfe-commits
ellis updated this revision to Diff 274855. ellis added a comment. Add `isLanguageVersionSupported` for Objective-C Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82904/new/ https://reviews.llvm.org/D82904 Files:

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-07-01 Thread Nathan James via Phabricator via cfe-commits
njames93 added inline comments. Comment at: clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp:125 +CheckFactories.registerCheck( +"bugprone-no-escape"); CheckFactories.registerCheck( ellis wrote: > Not sure if we want to lint this

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-06-30 Thread Ellis Hoag via Phabricator via cfe-commits
ellis marked an inline comment as done. ellis added inline comments. Comment at: clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp:125 +CheckFactories.registerCheck( +"bugprone-no-escape"); CheckFactories.registerCheck( Not sure if we

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-06-30 Thread Ellis Hoag via Phabricator via cfe-commits
ellis updated this revision to Diff 274622. ellis added a comment. Add double backtick to doc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82904/new/ https://reviews.llvm.org/D82904 Files:

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-06-30 Thread Eugene Zelenko via Phabricator via cfe-commits
Eugene.Zelenko added inline comments. Comment at: clang-tools-extra/docs/ReleaseNotes.rst:100 + + Finds pointers with the `noescape` attribute that are captured by an + asynchronously-executed block. Please use double back-ticks for language constructs.

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-06-30 Thread Ellis Hoag via Phabricator via cfe-commits
ellis updated this revision to Diff 274618. ellis added a comment. Applied changes suggested in comments Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82904/new/ https://reviews.llvm.org/D82904 Files:

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-06-30 Thread Nathan James via Phabricator via cfe-commits
njames93 added subscribers: Eugene.Zelenko, njames93. njames93 added a comment. Please override `isLanguageVersionSupported` to restrict this check to just running on ObjectiveC translation units. Comment at: clang-tools-extra/clang-tidy/bugprone/NoEscapeCheck.cpp:33 +

[PATCH] D82904: [clang-tidy] Warn pointer captured in async block

2020-06-30 Thread Ellis Hoag via Phabricator via cfe-commits
ellis created this revision. Herald added subscribers: cfe-commits, xazax.hun, mgorny. Herald added a project: clang. ellis added a reviewer: clang-tools-extra. The block arguments in `dispatch_async()` and `dispatch_after()` are guaranteed to escape. If those blocks capture any pointers with the