lebedev.ri added inline comments.
================ Comment at: docs/UndefinedBehaviorSanitizer.rst:136-137 + overflow happens (signed or unsigned). + Both of these two issues are handled by ``-fsanitize=implicit-conversion`` + group of checks. - ``-fsanitize=unreachable``: If control flow reaches an unreachable ---------------- rsmith wrote: > lebedev.ri wrote: > > rsmith wrote: > > > I don't think that's true (not until you add a sanitizer for signed <-> > > > unsigned conversions that change the value). `4U / -2` produces the > > > unexpected result `0U` rather than the mathematically-correct result > > > `-2`, and `-fsanitize=implicit-conversion` doesn't catch it. Maybe just > > > strike this sentence for now? > > > > > > In fact... I think this is too much text to be adding to this bulleted > > > list, which is just supposed to summarize the available checks. Maybe > > > replace the description with > > > > > > Signed integer overflow, where the result of a signed integer > > > computation cannot be represented in its type. This includes all the > > > checks covered by ``-ftrapv``, as well as checks for signed division > > > overflow (``INT_MIN/-1``), but not checks for lossy implicit conversions > > > performed before the computation (see ``-fsanitize=implicit-conversion``). > > I will assume you meant "lossy implicit conversions performed *after* the > > computation". > I really meant "performed before", for cases like `4u / -2`, where `-2` is > implicitly converted to `UINT_MAX - 2` before the computation. Conversions > that are performed after a computation aren't part of the computation at all, > so I think it's much clearer that they're not in scope for this sanitizer. Ok, with that additional explanation, i do see the error of my ways, and will re-adjust the docs accordingly. Sorry. Repository: rC Clang https://reviews.llvm.org/D48958 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits