[PATCH] D13311: [clang-tidy] Add check cppcoreguidelines-pro-bounds-pointer-arithmetic
Matthias Gehre via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 2 15:30:55 PDT 2015
mgehre added a comment.
Thank you for the review comments!
================
Comment at: clang-tidy/cppcoreguidelines/ProBoundsPointerArithmeticCheck.cpp:38
@@ +37,3 @@
+ Finder->addMatcher(
+ arraySubscriptExpr(hasBase(implicitCastExpr(hasSourceExpression(
+ hasType(pointerType()))))).bind("expr"),
----------------
sbenza wrote:
> What is that implicitCastExpr() matching?
> Did you mean to use ignoringImpCasts() instead?
The AST for
```
int* p = 0;
int i;
i = p[1];
```
is
```
-BinaryOperator 0x22dd770 <line:52:3, col:10> 'int' lvalue '='
|-DeclRefExpr 0x22dd6a8 <col:3> 'int' lvalue Var 0x227fca0 'i' 'int'
`-ImplicitCastExpr 0x22dd758 <col:7, col:10> 'int' <LValueToRValue>
`-ArraySubscriptExpr 0x22dd730 <col:7, col:10> 'int' lvalue
|-ImplicitCastExpr 0x22dd718 <col:7> 'int *' <LValueToRValue>
| `-DeclRefExpr 0x22dd6d0 <col:7> 'int *' lvalue Var 0x227fdf0 'p' 'int *'
`-IntegerLiteral 0x22dd6f8 <col:9> 'int' 1
```
I guess you are right about ignoringImpCasts(), though.
http://reviews.llvm.org/D13311
More information about the cfe-commits
mailing list