From 776d00225d39f80820153d811f9711f23b6696fa Mon Sep 17 00:00:00 2001 From: Janis Johnson Date: Fri, 2 Oct 2009 16:38:57 +0000 Subject: [PATCH] call.c (convert_arg_to_ellipsis): Avoid promoting decimal32 to double. * call.c (convert_arg_to_ellipsis): Avoid promoting decimal32 to double. * c-c++-common/dfp/func-vararg-alternate-d32.c: Remove XFAIL. * c-c++-common/dfp/func-vararg-dfp.c: Ditto. * c-c++-common/dfp/func-vararg-mixed.c: Ditto. * c-c++-common/dfp/func-vararg-mixed-2.c: Ditto. From-SVN: r152408 --- gcc/ChangeLog | 5 +++++ gcc/cp/call.c | 3 ++- gcc/testsuite/ChangeLog | 7 +++++++ gcc/testsuite/c-c++-common/dfp/func-vararg-alternate-d32.c | 1 - gcc/testsuite/c-c++-common/dfp/func-vararg-dfp.c | 2 -- gcc/testsuite/c-c++-common/dfp/func-vararg-mixed-2.c | 1 - gcc/testsuite/c-c++-common/dfp/func-vararg-mixed.c | 2 -- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 00a6055e1ad..c689536f38b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-10-02 Janis Johnson + + * call.c (convert_arg_to_ellipsis): Avoid promoting decimal32 + to double. + 2009-10-02 Jakub Jelinek PR debug/41404 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 8c1bb0edd47..3fc22f2b911 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -5104,7 +5104,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/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 888064b3174..b9386092b19 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2009-10-02 Janis Johnson + + * c-c++-common/dfp/func-vararg-alternate-d32.c: Remove XFAIL. + * c-c++-common/dfp/func-vararg-dfp.c: Ditto. + * c-c++-common/dfp/func-vararg-mixed.c: Ditto. + * c-c++-common/dfp/func-vararg-mixed-2.c: Ditto. + 2009-10-02 Tobias Burnus PR fortran/41479 diff --git a/gcc/testsuite/c-c++-common/dfp/func-vararg-alternate-d32.c b/gcc/testsuite/c-c++-common/dfp/func-vararg-alternate-d32.c index 225c13112a9..651b7e8c50f 100644 --- a/gcc/testsuite/c-c++-common/dfp/func-vararg-alternate-d32.c +++ b/gcc/testsuite/c-c++-common/dfp/func-vararg-alternate-d32.c @@ -1,4 +1,3 @@ -/* { dg-xfail-run-if "32-bit vararg broken" { c++ } { "*" } { "" } } */ /* Simple test of vararg passing for problematic types with and without double values passed between them. */ diff --git a/gcc/testsuite/c-c++-common/dfp/func-vararg-dfp.c b/gcc/testsuite/c-c++-common/dfp/func-vararg-dfp.c index 53285df9d64..5add1f7fd38 100644 --- a/gcc/testsuite/c-c++-common/dfp/func-vararg-dfp.c +++ b/gcc/testsuite/c-c++-common/dfp/func-vararg-dfp.c @@ -1,5 +1,3 @@ -/* { dg-xfail-run-if "32-bit vararg broken" { c++ } { "*" } { "" } } */ - /* C99 6.5.2.2 Function calls. Test passing varargs of the decimal float types. */ diff --git a/gcc/testsuite/c-c++-common/dfp/func-vararg-mixed-2.c b/gcc/testsuite/c-c++-common/dfp/func-vararg-mixed-2.c index 9c6be638d2f..893cdae27ff 100644 --- a/gcc/testsuite/c-c++-common/dfp/func-vararg-mixed-2.c +++ b/gcc/testsuite/c-c++-common/dfp/func-vararg-mixed-2.c @@ -1,5 +1,4 @@ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ -/* { dg-xfail-run-if "32-bit vararg broken" { c++ } { "*" } { "" } } */ /* { dg-options "-mpreferred-stack-boundary=2" } */ /* C99 6.5.2.2 Function calls. diff --git a/gcc/testsuite/c-c++-common/dfp/func-vararg-mixed.c b/gcc/testsuite/c-c++-common/dfp/func-vararg-mixed.c index 032a105052b..1669eaf959a 100644 --- a/gcc/testsuite/c-c++-common/dfp/func-vararg-mixed.c +++ b/gcc/testsuite/c-c++-common/dfp/func-vararg-mixed.c @@ -1,5 +1,3 @@ -/* { dg-xfail-run-if "32-bit vararg broken" { c++ } { "*" } { "" } } */ - /* C99 6.5.2.2 Function calls. Test passing varargs of the combination of decimal float types and other types. */ -- 2.30.2