aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gfortran.dg/pr69055.f9010
-rw-r--r--gcc/ubsan.c1
4 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 32d3ecf..8f67593 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2016-01-01 Jakub Jelinek <jakub@redhat.com>
+ PR sanitizer/69055
+ * ubsan.c (ubsan_instrument_float_cast): Call
+ initialize_sanitizer_builtins.
+
PR target/69015
* ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 178c13e..3de98fb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2016-01-01 Jakub Jelinek <jakub@redhat.com>
+ PR sanitizer/69055
+ * gfortran.dg/pr69055.f90: New test.
+
PR target/69015
* gcc.dg/pr69015.c: New test.
diff --git a/gcc/testsuite/gfortran.dg/pr69055.f90 b/gcc/testsuite/gfortran.dg/pr69055.f90
new file mode 100644
index 0000000..48b3442
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr69055.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+! { dg-options "-fsanitize=float-cast-overflow" }
+
+subroutine pr69055
+ implicit none
+ integer :: n
+ real(8) :: b
+ b = huge(1.0D0)
+ n = b
+end subroutine pr69055
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index 6fc6233..522967a 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -1588,6 +1588,7 @@ ubsan_instrument_float_cast (location_t loc, tree type, tree expr, tree arg)
{
location_t *loc_ptr = NULL;
unsigned num_locations = 0;
+ initialize_sanitizer_builtins ();
/* Figure out if we can propagate location to ubsan_data and use new
style handlers in libubsan. */
if (ubsan_use_new_style_p (loc))