[PATCH] D52949: [Diagnostics] Implement -Wsizeof-pointer-div

Henry Wong via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 23 09:19:23 PDT 2018


MTC added a comment.

In https://reviews.llvm.org/D52949#1268640, @xbolva00 wrote:

> Second thought, I don't think we should recommend std::size here (maybe it should be okay for clang static analyzers)
>
> uint32_t data[] = {10, 20, 30, 40};
>  len = sizeof(data)/sizeof(*data); // "warn" on valid code to recommend std::size? I dont agree with such behaviour.


IMHO, a clang-tidy checker is more  suitable than clang static analyzer to indicate to the developers that we should prefer `std::size` to `sizeof(data)/sizeof(*data)`.

What I want to know most is whether we should emit a warning for the code below. I haven't been able to test the patch yet, but intuitively, this patch will emit a warning.

  int foo(int *p) {
      int d = sizeof(p) / sizeof(char); // Should we emit a warning here?
      return d;
  }

GCC keep silent about this case, and I agree with it, see https://gcc.godbolt.org/z/ZToFqq. What do you think about this case?


https://reviews.llvm.org/D52949





More information about the cfe-commits mailing list