[PATCH] D51808: [CUDA] Ignore uncallable functions when we check for usual deallocators.

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 14 16:19:21 PDT 2018


rsmith added inline comments.


================
Comment at: clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp:551
     if (Decl->isMain() || !Decl->isUserProvided() ||
-        Decl->isUsualDeallocationFunction() ||
-        Decl->isCopyAssignmentOperator() || Decl->isMoveAssignmentOperator() ||
-        Decl->size_overridden_methods() > 0)
+        Decl->isOverloadedOperator() || Decl->size_overridden_methods() > 0)
       return SK_Invalid;
----------------
I believe the `isOverloadedOperator` check here is redundant. The caller already checked that the name is an identifier.

If you want to keep some check of this kind, I'd suggest checking `D->getIdentifier()` at the start of this function and removing the check here. (Note that `CXXMethodDecl` is not the only `Decl` subclass that can have a non-identifier name.)


================
Comment at: clang/lib/AST/DeclCXX.cpp:2068-2076
+  bool Result = true;
+  for (const auto *D : R) {
+    if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
+      Matches.push_back(FD);
       if (FD->getNumParams() == 1)
-        return false;
+        Result = false;
+    }
----------------
I think it would make more sense to put only the 1-parameter functions into `Matches`, and rename it to `PreventedBy` or something: then it's the list of single-parameter usual deallocation functions that prevent this one being a usual deallocation function.


https://reviews.llvm.org/D51808





More information about the cfe-commits mailing list