Skip to content

Commit

Permalink
[include-cleaner] Ignore the ParmVarDecl itself in WalkAST.cpp
Browse files Browse the repository at this point in the history
This fixes a false positive where a ParamVarDecl happend to be the
same name of some C standard symbol and has a global namespace.

```
using A = int(int time); // we suggest <ctime> for the `int time`.
```

Differential Revision: https://reviews.llvm.org/D153330
  • Loading branch information
hokein committed Jun 20, 2023
1 parent 6bea833 commit 149f309
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
4 changes: 4 additions & 0 deletions clang-tools-extra/include-cleaner/lib/WalkAST.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,10 @@ class ASTWalker : public RecursiveASTVisitor<ASTWalker> {
return true;
}
bool VisitVarDecl(VarDecl *VD) {
// Ignore the parameter decl itself (its children were handled elsewhere),
// as they don't contribute to the main-file #include.
if (llvm::isa<ParmVarDecl>(VD))
return true;
// Mark declaration from definition as it needs type-checking.
if (VD->isThisDeclarationADefinition())
report(VD->getLocation(), VD);
Expand Down
4 changes: 2 additions & 2 deletions clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ TEST_F(WalkUsedTest, Basic) {
#include "header.h"
#include "private.h"
void $bar^bar($private^Private $p^p) {
// No reference reported for the Parameter "p".
void $bar^bar($private^Private p) {
$foo^foo();
std::$vector^vector $vconstructor^$v^v;
$builtin^__builtin_popcount(1);
Expand Down Expand Up @@ -120,7 +121,6 @@ TEST_F(WalkUsedTest, Basic) {
offsetToProviders(AST, SM),
UnorderedElementsAre(
Pair(Code.point("bar"), UnorderedElementsAre(MainFile)),
Pair(Code.point("p"), UnorderedElementsAre(MainFile)),
Pair(Code.point("private"),
UnorderedElementsAre(PublicFile, PrivateFile)),
Pair(Code.point("foo"), UnorderedElementsAre(HeaderFile)),
Expand Down

0 comments on commit 149f309

Please sign in to comment.