aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/go')
-rw-r--r--gcc/go/ChangeLog6
-rw-r--r--gcc/go/go-lang.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog
index f62fdd7..f65a1d4 100644
--- a/gcc/go/ChangeLog
+++ b/gcc/go/ChangeLog
@@ -1,3 +1,9 @@
+2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * go-lang.c (go_langhook_type_for_mode): Use is_float_mode.
+
2017-08-07 Martin Liska <mliska@suse.cz>
* go-gcc.cc (Gcc_backend::function): Look up for no_split_stack
diff --git a/gcc/go/go-lang.c b/gcc/go/go-lang.c
index 09e4fea..614d890 100644
--- a/gcc/go/go-lang.c
+++ b/gcc/go/go-lang.c
@@ -382,12 +382,13 @@ go_langhook_type_for_mode (machine_mode mode, int unsignedp)
return NULL_TREE;
}
+ scalar_float_mode fmode;
enum mode_class mc = GET_MODE_CLASS (mode);
if (mc == MODE_INT)
return go_langhook_type_for_size (GET_MODE_BITSIZE (mode), unsignedp);
- else if (mc == MODE_FLOAT)
+ else if (is_float_mode (mode, &fmode))
{
- switch (GET_MODE_BITSIZE (mode))
+ switch (GET_MODE_BITSIZE (fmode))
{
case 32:
return float_type_node;
@@ -396,7 +397,7 @@ go_langhook_type_for_mode (machine_mode mode, int unsignedp)
default:
// We have to check for long double in order to support
// i386 excess precision.
- if (mode == TYPE_MODE(long_double_type_node))
+ if (fmode == TYPE_MODE(long_double_type_node))
return long_double_type_node;
}
}