aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2014-11-13 10:17:51 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2014-11-13 10:17:51 +0000
commit6a4f06787f9c0a9806a3f67a73dd12c33a8e8071 (patch)
treee233c5cc245878914cc351b054d0a383873e68eb /gcc/tree.h
parent882de2147813cd2b848e1b6295dff6cb82d29852 (diff)
downloadgcc-6a4f06787f9c0a9806a3f67a73dd12c33a8e8071.zip
gcc-6a4f06787f9c0a9806a3f67a73dd12c33a8e8071.tar.gz
gcc-6a4f06787f9c0a9806a3f67a73dd12c33a8e8071.tar.bz2
tree.h (TYPE_OVERFLOW_SANITIZED): Define.
* tree.h (TYPE_OVERFLOW_SANITIZED): Define. * fold-const.c (fold_binary_loc): Use it. * match.pd: Likewise. From-SVN: r217470
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index 0577d51..108b52d 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -789,6 +789,12 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
#define TYPE_OVERFLOW_TRAPS(TYPE) \
(!TYPE_UNSIGNED (TYPE) && flag_trapv)
+/* True if an overflow is to be preserved for sanitization. */
+#define TYPE_OVERFLOW_SANITIZED(TYPE) \
+ (INTEGRAL_TYPE_P (TYPE) \
+ && !TYPE_OVERFLOW_WRAPS (TYPE) \
+ && (flag_sanitize & SANITIZE_SI_OVERFLOW))
+
/* True if pointer types have undefined overflow. */
#define POINTER_TYPE_OVERFLOW_UNDEFINED (flag_strict_overflow)