================
@@ -193,7 +193,14 @@ Available checks are:
      signed division overflow (``INT_MIN/-1``), but not checks for
      lossy implicit conversions performed before the computation
      (see ``-fsanitize=implicit-conversion``). Both of these two issues are
-     handled by ``-fsanitize=implicit-conversion`` group of checks.
+     handled by ``-fsanitize=implicit-conversion`` group of checks. Note that
+     ``-fwrapv`` implicitly disables instrumentation for much of the arithmetic
+     covered by ``-fsanitize=signed-integer-overflow``.
+  -  ``-fsanitize=signed-integer-wrap``: Signed Integer wraparound, where the
+     result of a signed integer computation wraps around. Behaves identically
+     to ``-fsanitize=signed-integer-overflow`` when ``-fwrapv`` is enabled.
+     Without ``-fwrapv`` or ``-fno-strict-overflow``, this sanitizer will only
+     instrument division operations.
----------------
JustinStitt wrote:

I was going off the spec, but I think I may have misinterpreted it:

`
An implementation that defines signed integer types as also being modulo need 
not detect integer overflow, in which case, only integer divide-by-zero need be 
detected.
`

>From [H.2.2 Integer 
>Types](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf)

I initially read this as meaning we need to instrument division no matter what 
(just in case it's divide by zero or similar case). I can add a check for the 
signed overflow behavior for the division steps.

https://github.com/llvm/llvm-project/pull/80089
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to