diff options
author | Will Dietz <wdietz2@illinois.edu> | 2012-11-27 15:01:55 +0000 |
---|---|---|
committer | Will Dietz <wdietz2@illinois.edu> | 2012-11-27 15:01:55 +0000 |
commit | b85403658a77e9c19c391c8f02bc7767544a25d9 (patch) | |
tree | d62d664df13c62a47365c673a7d30982d6f44ca1 /include/clang/Basic/Sanitizers.def | |
parent | 5e7b43ed3071a98d68b6da4f22720b9076d6f18a (diff) |
Add -fsanitize=integer for reporting suspicious integer behaviors.
Introduces new sanitizer "unsigned-integer-overflow".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168701 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/Sanitizers.def')
-rw-r--r-- | include/clang/Basic/Sanitizers.def | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/include/clang/Basic/Sanitizers.def b/include/clang/Basic/Sanitizers.def index 135832de91..1085392911 100644 --- a/include/clang/Basic/Sanitizers.def +++ b/include/clang/Basic/Sanitizers.def @@ -45,26 +45,34 @@ SANITIZER("address", Address) SANITIZER("thread", Thread) // UndefinedBehaviorSanitizer -SANITIZER("signed-integer-overflow", SignedIntegerOverflow) -SANITIZER("divide-by-zero", DivideByZero) +SANITIZER("alignment", Alignment) +SANITIZER("bounds", Bounds) +SANITIZER("float-cast-overflow", FloatCastOverflow) +SANITIZER("float-divide-by-zero", FloatDivideByZero) +SANITIZER("integer-divide-by-zero", IntegerDivideByZero) +SANITIZER("null", Null) +SANITIZER("object-size", ObjectSize) +SANITIZER("return", Return) SANITIZER("shift", Shift) +SANITIZER("signed-integer-overflow", SignedIntegerOverflow) SANITIZER("unreachable", Unreachable) -SANITIZER("return", Return) SANITIZER("vla-bound", VLABound) -SANITIZER("alignment", Alignment) -SANITIZER("null", Null) SANITIZER("vptr", Vptr) -SANITIZER("object-size", ObjectSize) -SANITIZER("float-cast-overflow", FloatCastOverflow) -SANITIZER("bounds", Bounds) + +// IntegerSanitizer +SANITIZER("unsigned-integer-overflow", UnsignedIntegerOverflow) // -fsanitize=undefined (and its alias -fcatch-undefined-behavior). This should // include all the sanitizers which have low overhead, no ABI or address space // layout implications, and only catch undefined behavior. SANITIZER_GROUP("undefined", Undefined, - SignedIntegerOverflow | DivideByZero | Shift | Unreachable | - Return | VLABound | Alignment | Null | Vptr | ObjectSize | - FloatCastOverflow | Bounds) + Alignment | Bounds | FloatCastOverflow | FloatDivideByZero | + IntegerDivideByZero | Null | ObjectSize | Return | Shift | + SignedIntegerOverflow | Unreachable | VLABound | Vptr) + +SANITIZER_GROUP("integer", Integer, + SignedIntegerOverflow | UnsignedIntegerOverflow | Shift | + IntegerDivideByZero) #undef SANITIZER #undef SANITIZER_GROUP |