aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2008-09-27 22:12:08 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2008-09-27 22:12:08 +0000
commitf2a945b1b80c53db81428bd09da4212dfb16487a (patch)
tree13b04ba4beaa291fcf4b8a6d46138dbb120dc8b6
parentf98c983a5bdaad8065598b4b59cafe7ed0d94935 (diff)
downloadgcc-f2a945b1b80c53db81428bd09da4212dfb16487a.zip
gcc-f2a945b1b80c53db81428bd09da4212dfb16487a.tar.gz
gcc-f2a945b1b80c53db81428bd09da4212dfb16487a.tar.bz2
sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR if needed.
* config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR if needed. From-SVN: r140724
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9b32387..8782ad2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
+ if needed.
+
2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
Revert:
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index fdd9893..533d28c 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -7385,7 +7385,9 @@ sh_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
= std_gimplify_va_arg_expr (next_fp_tmp, subtype, pre_p, NULL);
real = get_initialized_tmp_var (real, pre_p, NULL);
- result = build2 (COMPLEX_EXPR, type, real, imag);
+ result = build2 (COMPLEX_EXPR, eff_type, real, imag);
+ if (type != eff_type)
+ result = build1 (VIEW_CONVERT_EXPR, type, result);
result = get_initialized_tmp_var (result, pre_p, NULL);
}
#endif /* FUNCTION_ARG_SCmode_WART */