dblaikie added a comment.

Haven't reviewed the code in detail, but the idea seems sound. Is there any 
prior art in other compilers you can draw data/experiences from? & having some 
data from some reasonably sized codebases on false positive (how often the 
correct thing is to suppress the warning, versus fixing the warning) would 
probably be useful. I would guess it doesn't meet the on-by-default bar we 
would prefer for Clang, but might still be OK.



================
Comment at: clang/docs/ReleaseNotes.rst:64-74
+  - ``-Wimplicit-widening-of-pointer-offset``:
+
+    .. code-block:: c++
+
+      char* ptr_add(char *base, int a, int b) {
+        return base + a * b; // expected-warning {{result of multiplication in 
type 'int' is used as a pointer offset after an implicit widening conversion to 
type 'ssize_t'}}
+      }
----------------
Does this only trigger when the `sizeof(char*) > sizeof(int)`? (judging by the 
test coverage I think that's the case)

(ultimately, might be worth committing the two diagnostics separately - usual 
sort of reasons, separation of concerns, etc)


================
Comment at: 
clang/test/Sema/implicit-widening-of-pointer-offset-in-array-subscript-expression.c:24
+void t1(char *base, int a, int b) {
+  // FIXME: test `[a * b]base` pattern?
+}
----------------
Question is unclear - is there uncertainty about whether this should be tested? 
Or is this a false negative case? In which case I'd probably include the test 
showing no diagnostic and mention it could be fixed/improved?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93822

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

Reply via email to