diff options
author | Geert Bosch <bosch@adacore.com> | 2008-11-07 09:56:33 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2008-11-07 09:56:33 +0000 |
commit | 58e94443400c84cb32f07b7ffe0f383d75d5a688 (patch) | |
tree | d75657f0fa708155979e72e35fcd2f88557bcc96 /gcc/ada | |
parent | a7c43bbc03165cf0f566fcdd5d5a99bd0b6eae7c (diff) | |
download | gcc-58e94443400c84cb32f07b7ffe0f383d75d5a688.zip gcc-58e94443400c84cb32f07b7ffe0f383d75d5a688.tar.gz gcc-58e94443400c84cb32f07b7ffe0f383d75d5a688.tar.bz2 |
trans.c (build_binary_op_trapv): Convert arguments and result for call to __gnat_mulv64.
* gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
and result for call to __gnat_mulv64.
From-SVN: r141668
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index fe36602..3cb89a6 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2008-11-07 Geert Bosch <bosch@adacore.com> + + * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments + and result for call to __gnat_mulv64. + 2008-11-07 Eric Botcazou <ebotcazou@adacore.com> * gcc-interface/trans.c: Fix formatting nits. diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index d1d449e..005d517 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -6032,7 +6032,13 @@ build_binary_op_trapv (enum tree_code code, tree gnu_type, tree left, int needed_precision = precision * 2; if (code == MULT_EXPR && precision == 64) - return build_call_2_expr (mulv64_decl, lhs, rhs); + { + tree int_64 = gnat_type_for_size (64, 0); + + return convert (gnu_type, build_call_2_expr (mulv64_decl, + convert (int_64, lhs), + convert (int_64, rhs))); + } else if (needed_precision <= BITS_PER_WORD || (code == MULT_EXPR |