summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-14 14:47:34 +0000
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-14 14:47:34 +0000
commita12aa4cc9c246f2649e4fed2bc1d8966f2752162 (patch)
tree2fc1ab45d0c4ac31ac1612b0378da95cc6082deb /gcc/expmed.c
parent0dd8cf9cc8350069e94a624959d1ad4487c46a8c (diff)
downloadgcc-a12aa4cc9c246f2649e4fed2bc1d8966f2752162.tar.gz
Fix x86 bootstrap problem; from_array was being use to convert
real/int and was using a wide int larger that max_int. We create a type large enough for real.c to use. Add assertion checking to ensure it doesn't happen again. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@206601 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index ce063eb6cff..720d8c14088 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -4963,6 +4963,7 @@ make_tree (tree type, rtx x)
return t;
case CONST_DOUBLE:
+ gcc_assert (HOST_BITS_PER_WIDE_INT * 2 <= MAX_BITSIZE_MODE_ANY_INT);
if (TARGET_SUPPORTS_WIDE_INT == 0 && GET_MODE (x) == VOIDmode)
t = wide_int_to_tree (type,
wide_int::from_array (&CONST_DOUBLE_LOW (x), 2,