diff options
Diffstat (limited to 'gcc-4.4.3/gcc/cp')
| -rw-r--r-- | gcc-4.4.3/gcc/cp/call.c | 3 | ||||
| -rw-r--r-- | gcc-4.4.3/gcc/cp/mangle.c | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc-4.4.3/gcc/cp/call.c b/gcc-4.4.3/gcc/cp/call.c index 4eb1974c0..9a1953e8c 100644 --- a/gcc-4.4.3/gcc/cp/call.c +++ b/gcc-4.4.3/gcc/cp/call.c @@ -4948,7 +4948,8 @@ convert_arg_to_ellipsis (tree arg) promoted type before the call. */ if (TREE_CODE (TREE_TYPE (arg)) == REAL_TYPE && (TYPE_PRECISION (TREE_TYPE (arg)) - < TYPE_PRECISION (double_type_node))) + < TYPE_PRECISION (double_type_node)) + && !DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (arg)))) arg = convert_to_real (double_type_node, arg); else if (INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (arg))) arg = perform_integral_promotions (arg); diff --git a/gcc-4.4.3/gcc/cp/mangle.c b/gcc-4.4.3/gcc/cp/mangle.c index 0d07082d2..c7c223913 100644 --- a/gcc-4.4.3/gcc/cp/mangle.c +++ b/gcc-4.4.3/gcc/cp/mangle.c @@ -1851,6 +1851,12 @@ write_builtin_type (tree type) write_char ('d'); else if (type == long_double_type_node) write_char ('e'); + else if (type == dfloat32_type_node) + write_string ("Df"); + else if (type == dfloat64_type_node) + write_string ("Dd"); + else if (type == dfloat128_type_node) + write_string ("De"); else gcc_unreachable (); break; |
