jankratochvil marked 8 inline comments as done.
jankratochvil added a comment.

In D71707#1796671 <https://reviews.llvm.org/D71707#1796671>, @aaron.ballman 
wrote:

> I agree that restricting casts to `intptr_t` is too restrictive.


Permitted `intptr_t`. But then implemented also checking a cast of `intptr_t` 
to wider integral types.

> Have you considered language extensions like `__ptr32`, `__ptr64`, `__sptr`, 
> and `__uptr` 
> (https://docs.microsoft.com/en-us/cpp/cpp/ptr32-ptr64?view=vs-2019) which we 
> also support?

I think only `__uptr` support would matter to prevent some false positives. I 
am not sure it is used anywhere. Should I really implement it?



================
Comment at: 
clang-tools-extra/clang-tidy/bugprone/PointerCastWideningCheck.cpp:21-22
+void PointerCastWideningCheck::registerMatchers(MatchFinder *Finder) {
+  if (!getLangOpts().CPlusPlus && !getLangOpts().C99)
+    return;
+
----------------
aaron.ballman wrote:
> Why limiting this to C++ and >= C99? You can get pointer widening casts 
> through extensions in C89, for instance.
Removed the check completely.


================
Comment at: 
clang-tools-extra/clang-tidy/bugprone/PointerCastWideningCheck.cpp:36
+  for (QualType DestTypeCheck = DestType;;) {
+    if (DestTypeCheck.getAsString() == "uintptr_t")
+      return;
----------------
aaron.ballman wrote:
> How well does this work with something like `std::uinptr_t` from `<cstdint>`?
It works fine because its
```
using::uintptr_t;
```
is recogized as a `typedef` in the loop above from namespace-less `uintptr_t'. 
Sure thanks for notifying me to check that.


================
Comment at: 
clang-tools-extra/test/clang-tidy/checkers/bugprone-pointer-cast-widening.cpp:17
+  t2 t = (t2)p;
+}
----------------
aaron.ballman wrote:
> I'd also like to see tests for implicit casts as well as pointer width and 
> sign extension language extensions.
Done implicit cases.  But I do not understand what you mean by the rest - could 
you provide an example? Thanks.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71707



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

Reply via email to