diff mbox

Request to merge Undefined Behavior Sanitizer in

Message ID 20130731122544.GR17022@redhat.com
State New
Headers show

Commit Message

Marek Polacek July 31, 2013, 12:25 p.m. UTC
On Thu, Jul 25, 2013 at 10:43:30PM +0000, Joseph S. Myers wrote:
> On Thu, 25 Jul 2013, Marek Polacek wrote:
> 
> > +@item -fsanitize=undefined
> > +Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector
> > +Various computations will be instrumented to detect
> > +undefined behavior, e.g.@: division by zero or various overflows.
> 
> The same issues applies as for bounds-checking options - please give 
> sufficient information in the documentation for a user to be able to judge 
> the trade-offs between this and -ftrapv (for example).

Ok, I've commited a patch which hopefully makes the documentation better:


> It should also be clear how this interacts with -fwrapv.  I'd say that 
> -fwrapv makes the semantics of overflow in signed-integer arithmetic no 
> longer undefined (of course division by zero is still undefined) and so 
> should mean such overflows aren't warned for.  Now, you don't currently 
> have any checks this would affect (given that INT_MIN / -1 and INT_MIN % 
> -1 don't currently work reliably with -fwrapv anyway), but the intention 
> should be clear for when overflow checks are added.

Yes, I agree.  When the signed overflows checks are in, we shouldn't sanitize
signed overflows when -fwrapv is in effect.

	Marek
diff mbox

Patch

--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -5150,8 +5150,11 @@  See @uref{http://code.google.com/p/data-race-test/wiki/ThreadSanitizer} for 
 
 @item -fsanitize=undefined
 Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector
-Various computations will be instrumented to detect
-undefined behavior, e.g.@: division by zero or various overflows.
+Various computations will be instrumented to detect undefined behavior
+at runtime, e.g.@: division by zero or various overflows.
+While @option{-ftrapv} causes traps for signed overflows to be emitted,
+@option{-fsanitize=undefined} gives a diagnostic message.
+This currently works only for the C family of languages.
 
 @item -fdump-final-insns@r{[}=@var{file}@r{]}
 @opindex fdump-final-insns