[PATCH] D60139: [clang-tidy] Add misc-placement-new-target-size check

Eugene Zelenko via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 2 11:18:48 PDT 2019


Eugene.Zelenko added inline comments.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:10
+#include <iostream>
+
+#include "PlacementNewTargetSizeCheck.h"
----------------
Unnecessary empty line. Please run Clang-format after fixing.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:23
+namespace {
+CharUnits getSizeOfType(clang::ASTContext *const Context, const QualType& type) {
+  CharUnits TypeSize;
----------------
Please use static instead of anonymous namespaces. See LLVM Coding Guidelines.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:26
+  if (type->isRecordType()) {
+    const auto *CXXRecordDecl = type->getAsRecordDecl();
+    assert(CXXRecordDecl && "type->getAsRecordDecl() failed");
----------------
Please don't use auto where type could not be easily deduced.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:28
+    assert(CXXRecordDecl && "type->getAsRecordDecl() failed");
+    const auto &CXXDeclLayout =
+        CXXRecordDecl->getASTContext().getASTRecordLayout(CXXRecordDecl);
----------------
Please don't use auto where type could not be easily deduced.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:47
+    const MatchFinder::MatchResult &Result) {
+  const CXXNewExpr *Alloc = Result.Nodes.getNodeAs<CXXNewExpr>("Alloc");
+  assert(Alloc && "Matched node bound by 'Alloc' shoud be a 'CXXNewExpr'");
----------------
auto could be used here, because of cast.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:50
+
+  auto numPlacementArgs = Alloc->getNumPlacementArgs();
+  if (0 == numPlacementArgs) {
----------------
Please don't use auto where type could not be easily deduced.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:55
+
+  auto type = Alloc->getAllocatedType();
+  CharUnits TypeSize = getSizeOfType(Result.Context, type);
----------------
Please don't use auto where type could not be easily deduced.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:62
+  // get ptr type of implicit cast
+  const ImplicitCastExpr *Cast = Result.Nodes.getNodeAs<ImplicitCastExpr>("Cast");
+  auto CastType = Cast->getSubExpr()->getType();
----------------
auto could be used here, because of cast.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:63
+  const ImplicitCastExpr *Cast = Result.Nodes.getNodeAs<ImplicitCastExpr>("Cast");
+  auto CastType = Cast->getSubExpr()->getType();
+  if (CastType->isPointerType()) {
----------------
Please don't use auto where type could not be easily deduced.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:65
+  if (CastType->isPointerType()) {
+   CharUnits CastSize = getSizeOfType(Result.Context, CastType->getPointeeType());
+    if ((TypeSize - CastSize).isPositive()) {
----------------
Please run Clang-format.


================
Comment at: clang-tidy/misc/PlacementNewTargetSizeCheck.cpp:73
+  }
+
+}
----------------
Unnecessary empty line.


================
Comment at: docs/ReleaseNotes.rst:135
+  <clang-tidy/checks/misc-placement-new-target-size>` check.
+
 - New :doc:`openmp-exception-escape
----------------
Please add one sentence description. Should be same as in documentation.


================
Comment at: docs/clang-tidy/checks/misc-placement-new-target-size.rst:5
+==============================
+
+
----------------
Unnecessary empty line.


Repository:
  rCTE Clang Tools Extra

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60139/new/

https://reviews.llvm.org/D60139





More information about the cfe-commits mailing list