dkrupp wrote: > > Even protobuf contains this type of code: > > https://codechecker-demo.eastus.cloudapp.azure.com/Default/report-detail?run=protobuf_v3.13.0_pointersub1&is-unique=on&diff-type=New&checker-name=alpha.core.PointerSub&report-id=5545776&report-hash=1bcd310fbaeccbcc13645b9b277239a2&report-filepath=%2adescriptor.pb.cc > > I still think that this (1) is undeniably undefined behavior (2) isn't > common, so won't cause "spam" problems and (3( can be replaced by > standard-compliant code (`offsetof`) so there is no need to introduce a > special case for it.
I agree with @NagyDonat that we don't need special handling of this case in the code, however I think the checker [documentation ](https://clang.llvm.org/docs/analyzer/checkers.html#alpha-core-pointersub-c) should be extended with the description of this special case as it may be a surprising warning from the checker with an example. Specifically that it warns for cases where two pointers are subtracted which point to members of the same struct and suggest the usage of the standard compliant solution: offsetof. So please describe which pointer subtractions the checker accepts and which don't (with examples) and a reference to the standard where it describes the undefined behaviour. https://github.com/llvm/llvm-project/pull/96501 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits