This is the mail archive of the gcc@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 Sep 8, 2016, at 1:53 AM, Uros Bizjak <ubizjak@gmail.com> 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.

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