From c8cc2651ff7b7e6f0f90410060d11232e4470a65 Mon Sep 17 00:00:00 2001
From: mpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 23 May 2014 14:44:42 +0000
Subject: 	* builtins.def: Change SANITIZE_FLOAT_DIVIDE to
 SANITIZE_NONDEFAULT. 	* gcc.c (sanitize_spec_function): Likewise. 	*
 convert.c (convert_to_integer): Include "ubsan.h".  Add 	floating-point
 to integer instrumentation. 	* doc/invoke.texi: Document
 -fsanitize=float-cast-overflow. 	* flag-types.h (enum sanitize_code):
 Add SANITIZE_FLOAT_CAST and 	SANITIZE_NONDEFAULT. 	* opts.c
 (common_handle_option): Handle -fsanitize=float-cast-overflow. 	*
 sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW, 
 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add. 	* ubsan.c:
 Include "realmpfr.h" and "dfp.h". 	(get_ubsan_type_info_for_type): Handle
 REAL_TYPEs. 	(ubsan_type_descriptor): Set tkind to 0xffff for types other
 than 	float/double/long double. 	(ubsan_instrument_float_cast): New
 function. 	* ubsan.h (ubsan_instrument_float_cast): Declare. testsuite/ 
 * c-c++-common/ubsan/float-cast-overflow-1.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-10.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-2.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-3.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-4.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-5.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-6.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-7.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-7.h: New file. 	*
 c-c++-common/ubsan/float-cast-overflow-8.c: New test. 	*
 c-c++-common/ubsan/float-cast-overflow-9.c: New test. 	*
 c-c++-common/ubsan/float-cast.h: New file. 	*
 g++.dg/ubsan/float-cast-overflow-bf.C: New test. 	*
 gcc.dg/ubsan/float-cast-overflow-bf.c: New test. libsanitizer/ 	*
 ubsan/ubsan_value.cc (getFloatValue): Handle 96-bit 	floating-point types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210862 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/sanitizer.def | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'gcc/sanitizer.def')

diff --git a/gcc/sanitizer.def b/gcc/sanitizer.def
index 6184b5ad58b..a2f7ff058ce 100644
--- a/gcc/sanitizer.def
+++ b/gcc/sanitizer.def
@@ -371,3 +371,11 @@ DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT,
 		      "__ubsan_handle_load_invalid_value_abort",
 		      BT_FN_VOID_PTR_PTR,
 		      ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST)
+DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
+		      "__ubsan_handle_float_cast_overflow",
+		      BT_FN_VOID_PTR_PTR,
+		      ATTR_COLD_NOTHROW_LEAF_LIST)
+DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT,
+		      "__ubsan_handle_float_cast_overflow_abort",
+		      BT_FN_VOID_PTR_PTR,
+		      ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST)
-- 
cgit v1.2.1

