[PATCH] D44295: [clang-tidy] Detects and fixes calls to grand-...parent virtual methods instead of calls to parent's virtual methods

Alexander Kornienko via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 14 09:30:34 PDT 2018

alexfh requested changes to this revision.
alexfh added inline comments.
This revision now requires changes to proceed.

Comment at: clang-tidy/bugprone/ParentVirtualCallCheck.cpp:24-25
+                       const CXXRecordDecl *ThisClass) {
+  assert(Parent);
+  assert(ThisClass);
+  if (Parent->getCanonicalDecl() == ThisClass->getCanonicalDecl())
aaron.ballman wrote:
> You can drop these asserts.
... and make arguments const references ;)

Comment at: clang-tidy/bugprone/ParentVirtualCallCheck.cpp:44
+static std::list<const CXXRecordDecl *>
+GetParentsByGrandParent(const CXXRecordDecl *GrandParent,
std::list is almost never a good choice due to large overhead, poor locality of the data, etc. Use std::vector instead.

Comment at: clang-tidy/bugprone/ParentVirtualCallCheck.cpp:53
+            GrandParent,
+            Base.getType()->getAsCXXRecordDecl()->getCanonicalDecl()))
+      result.push_back(
Pull this to a variable to avoid repetition.

  rCTE Clang Tools Extra


More information about the cfe-commits mailing list