UndefinedBehaviorSanitizer Clang 6 - ostash/sanitizer-docs GitHub Wiki
UndefinedBehaviorSanitizer checks
It is actually set of smaller sanitizers, which can be used independently or in groups (undefined, nullability, shift, integer, bounds).
Recover and Trap columns shows whether sanitizer can be used with -fsanitize-recover
and -fsanitize-trap
.
Sanitizer | undefined | nullability | shift | integer | bounds | Recover | Trap |
---|---|---|---|---|---|---|---|
alignment | X | - | - | - | - | Default | Yes |
array-bounds | X | - | - | - | X | Default | Yes |
bool | X | - | - | - | - | Default | Yes |
builtin | X | - | - | - | - | Default | Yes |
enum | X | - | - | - | - | Default | Yes |
float-cast-overflow | X | - | - | - | - | Default | Yes |
float-divide-by-zero | X | - | - | - | - | Default | Yes |
function | X | - | - | - | - | Default | Yes |
integer-divide-by-zero | X | - | - | X | - | Default | Yes |
nonnull-attribute | X | - | - | - | - | Default | Yes |
null | X | - | - | - | - | Default | Yes |
nullability-arg | - | X | - | - | - | Default | Yes |
nullability-assign | - | X | - | - | - | Default | Yes |
nullability-return | - | X | - | - | - | Default | Yes |
object-size | X | - | - | - | - | Default | Yes |
pointer-overflow | X | - | - | - | - | Default | Yes |
return | X | - | - | - | - | NO | Yes |
returns-nonnull-attribute | X | - | - | - | - | Default | Yes |
shift-base | X | - | X | X | - | Default | Yes |
shift-exponent | X | - | X | X | - | Default | Yes |
signed-integer-overflow | X | - | - | X | - | Default | Yes |
unreachable | X | - | - | - | - | NO | Yes |
vla-bound | X | - | - | - | - | Default | Yes |
vptr | X | - | - | - | - | Default | NO |
unsigned-integer-overflow | - | - | - | X | - | Default | Yes |
local-bounds | - | - | - | X | Yes | Yes |
LLVM options
local-bounds
Type | Name | Default value | Description |
---|---|---|---|
bool | bounds-checking-single-trap | false (?) | Use one trap block per function |