aaron.ballman added a comment.

There are a couple of questions from the previous iteration of the review that 
aren't answered yet:

- the diagnostic wording doesn't actually say what's wrong with the code or how 
to fix it; how should users silence the diagnostic if they've found a case 
where it's a false positive for some reason?
- do you expect this check to catch other hidden provenance gotchas like 
grabbing values through printf/scanf, fread, etc)? (Not for this patch 
iteration, just wondering if you expect to extend the check in the future.)



================
Comment at: clang-tools-extra/clang-tidy/performance/NoIntToPtrCheck.cpp:21
+  Finder->addMatcher(castExpr(hasCastKind(CK_IntegralToPointer),
+                              unless(hasSourceExpression(integerLiteral())))
+                         .bind("x"),
----------------
Do we also want to exclude the case where the destination is a `volatile` 
pointer on the assumption that something out of the ordinary is going on. e.g.,
```
intptr_t addr;
if (something) {
  addr = SOME_CONSTANT;
} else {
  addr = SOME_OTHER_CONSTANT;
}
volatile int *register_bank = (volatile int *)addr;
```


================
Comment at: 
clang-tools-extra/clang-tidy/performance/PerformanceTidyModule.cpp:53
         "performance-no-automatic-move");
+    CheckFactories.registerCheck<NoIntToPtrCheck>("performance-no-inttoptr");
     CheckFactories.registerCheck<NoexceptMoveConstructorCheck>(
----------------
Does anyone else have opinions on `inttoptr` vs `int-to-ptr`? I feel like the 
latter is easier to read than the former, but I'm wondering if I'm just strange.


================
Comment at: clang-tools-extra/docs/clang-tidy/checks/list.rst:15
 
-   `abseil-duration-addition <abseil-duration-addition.html>`_, "Yes"
-   `abseil-duration-comparison <abseil-duration-comparison.html>`_, "Yes"
-   `abseil-duration-conversion-cast <abseil-duration-conversion-cast.html>`_, 
"Yes"
-   `abseil-duration-division <abseil-duration-division.html>`_, "Yes"
-   `abseil-duration-factory-float <abseil-duration-factory-float.html>`_, "Yes"
-   `abseil-duration-factory-scale <abseil-duration-factory-scale.html>`_, "Yes"
-   `abseil-duration-subtraction <abseil-duration-subtraction.html>`_, "Yes"
-   `abseil-duration-unnecessary-conversion 
<abseil-duration-unnecessary-conversion.html>`_, "Yes"
-   `abseil-faster-strsplit-delimiter 
<abseil-faster-strsplit-delimiter.html>`_, "Yes"
+   `abseil-duration-addition <abseil-duration-addition.html>`_,
+   `abseil-duration-comparison <abseil-duration-comparison.html>`_,
----------------
It looks like there's a whole bunch of unrelated changes happening here?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91055

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to