================ @@ -42,6 +42,11 @@ Potentially Breaking Changes C/C++ Language Potentially Breaking Changes ------------------------------------------- +- Some old-style offsetof idioms like ``((int)(&(((struct S *)0)->field)))`` are treated ---------------- efriedma-quic wrote:
I was thinking something more like: New LLVM optimizations have been implemented that optimize pointer arithmetic on null pointers more aggressively. As part of this, clang has implemented a special case for old-style offsetof idioms like ``((int)(&(((struct S *)0)->field)))``, to ensure they are not caught by these optimizations. It is also possible to use ``-fwrapv-pointer`` or ``-fno-delete-null-pointer-checks`` to make pointer arithmetic on null pointers well-defined. (#GH130734, #GH130742) ------ (Also -fwrapv-pointer doesn't actually work at the moment for the address computation associated with member access.) https://github.com/llvm/llvm-project/pull/130734 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits