[PATCH] D13746: [clang-tidy] add check cppcoreguidelines-pro-bounds-constant-array-index
Alexander Kornienko via cfe-commits
cfe-commits at lists.llvm.org
Wed Nov 11 06:27:50 PST 2015
alexfh added a comment.
Sorry for the delay. A few more comments.
================
Comment at: clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp:86
@@ +85,3 @@
+ if (!IndexExpr->isIntegerConstantExpr(Index, *Result.Context, nullptr,
+ true)) {
+ SourceRange BaseRange;
----------------
nit: What is `true` here? Please add an argument comment.
================
Comment at: clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp:102
@@ +101,3 @@
+ << FixItHint::CreateReplacement(
+ {BaseRange.getEnd().getLocWithOffset(1),
+ IndexRange.getBegin().getLocWithOffset(-1)},
----------------
I'm not sure initializer lists are supported by all toolchains this code needs to compile on. Please explicitly specify `SourceRange` here.
================
Comment at: clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp:124
@@ +123,3 @@
+ // Get uint64_t values, because different bitwidths would lead to an assertion
+ // in APInt::uge
+ if (Index.getZExtValue() >= ArraySize.getZExtValue()) {
----------------
nit: please add trailing period.
================
Comment at: docs/clang-tidy/checks/cppcoreguidelines-pro-bounds-constant-array-index.rst:12
@@ +11,2 @@
+This rule is part of the "Bounds safety" profile of the C++ Core Guidelines, see
+https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#-bounds2-only-index-into-arrays-using-constant-expressions
----------------
nit: please add trailing period.
================
Comment at: test/clang-tidy/cppcoreguidelines-pro-bounds-constant-array-index.cpp:51
@@ +50,3 @@
+
+ a[-1] = 3;
+ // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: array index -1 is before the beginning of the array
----------------
So what's the difference between this warning and -Warray-bounds?
http://reviews.llvm.org/D13746
More information about the cfe-commits
mailing list