This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, testsuite]: Test compat _Complex varargs passing


On 09/08/2016 02:53 AM, Uros Bizjak wrote:
On Mon, Sep 5, 2016 at 1:45 PM, Joseph Myers <joseph@codesourcery.com> wrote:
On Sun, 4 Sep 2016, Uros Bizjak wrote:

It looks that different handling of _Complex char, _Complex short and
_Complex float is there on purpose. Is (was?) there a limitation in a
c language standard that prevents passing of these arguments as
varargs?

Well, ISO C doesn't define complex integers at all.  But it's deliberate
(see DR#206) that _Complex float doesn't promote to _Complex double in
variable arguments.  And there is nothing in ISO C to stop _Complex float
being passed in variable arguments.

For all these types including the complex integer ones: given that the
front end doesn't promote them, they should be usable in variable
arguments.

Attached patch adds various _Complex variable arguments tests to
scalar-by-value-4 and scalar-return-4 tests. These tests previously
erroneously claimed that these argument types are unsupported as
variable arguments.

2016-09-08  Uros Bizjak  <ubizjak@gmail.com>

    * gcc.dg/compat/scalar-by-value-4_x.c: Also test passing of
    variable arguments.
    * gcc.dg/compat/scalar-by-value-4_y.c (testva##NAME): New.
    * gcc.dg/compat/scalar-by-value-4_main.c: Update description comment.
    * gcc.dg/compat/scalar-return-4_x.c: Also test returning of
    variable argument.
    * gcc.dg/compat/scalar-return-4_y.c (testva##NAME): New.
    * gcc.dg/compat/scalar-return-4_main.c: Update description comment.

Tested on x86_64-linux-gnu {,-m32}.

OK for mainline?
OK.
jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]