gcc.dg/overflow-warn-9.c: exclude from LLP64
Checks
Commit Message
This test is for LP64 only, exclude LLP64 too.
Patch OK?
Comments
Jonathan Yong via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> This test is for LP64 only, exclude LLP64 too.
> Patch OK?
OK, thanks.
Richard
> From fbc83ae10df1a0e10c302fb0fee13092eb65818e Mon Sep 17 00:00:00 2001
> From: Jonathan Yong <10walls@gmail.com>
> Date: Mon, 27 Feb 2023 09:49:31 +0000
> Subject: [PATCH] gcc.dg/overflow-warn-9.c: exclude from LLP64
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/overflow-warn-9.c: Exclude from LLP64.
>
> Signed-off-by: Jonathan Yong <10walls@gmail.com>
> ---
> gcc/testsuite/gcc.dg/overflow-warn-9.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.dg/overflow-warn-9.c b/gcc/testsuite/gcc.dg/overflow-warn-9.c
> index 57c0f17bc91..012892dd343 100644
> --- a/gcc/testsuite/gcc.dg/overflow-warn-9.c
> +++ b/gcc/testsuite/gcc.dg/overflow-warn-9.c
> @@ -59,7 +59,7 @@ const struct Types t1 = {
> .ui = UINT_MAX + 1L, /* { dg-warning "signed conversion from .long int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
> .ui = UINT_MAX + 1LU, /* { dg-warning "conversion from .long unsigned int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
>
> - .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "not-ilp32" { target { ! ilp32 } } } */
> - /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "ilp32" { target ilp32 } .-1 } */
> + .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "lp64" { target lp64 } } */
> + /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "not-lp64" { target { ! lp64 } } .-1 } */
> .ul = ULONG_MAX + 1LU /* there should be some warning here */
> };
On Mon, 27 Feb 2023, Jonathan Yong via Gcc-patches wrote:
> This test is for LP64 only, exclude LLP64 too.
> Patch OK?
I may be confused, but you're not making use of the "llp64"
effective target, there instead excluding/including lp64 /
ilp32 in sets that not obviously mean "exclude LLP64".
To wit, how is "! ilp32" -> "lp64" and "ilp32" -> "! lp64"
expressing "! llp64"?
brgds, H-P
On 2/28/23 03:06, Hans-Peter Nilsson wrote:
>
> On Mon, 27 Feb 2023, Jonathan Yong via Gcc-patches wrote:
>
>> This test is for LP64 only, exclude LLP64 too.
>> Patch OK?
>
> I may be confused, but you're not making use of the "llp64"
> effective target, there instead excluding/including lp64 /
> ilp32 in sets that not obviously mean "exclude LLP64".
>
> To wit, how is "! ilp32" -> "lp64" and "ilp32" -> "! lp64"
> expressing "! llp64"?
>
> brgds, H-P
Attached new version, hopefully it is clearer.
On Tue, 28 Feb 2023, Jonathan Yong wrote:
> On 2/28/23 03:06, Hans-Peter Nilsson wrote:
> >
> > On Mon, 27 Feb 2023, Jonathan Yong via Gcc-patches wrote:
> >
> > > This test is for LP64 only, exclude LLP64 too.
> > > Patch OK?
> >
> > I may be confused, but you're not making use of the "llp64"
> > effective target, there instead excluding/including lp64 /
> > ilp32 in sets that not obviously mean "exclude LLP64".
> >
> > To wit, how is "! ilp32" -> "lp64" and "ilp32" -> "! lp64"
> > expressing "! llp64"?
> >
> > brgds, H-P
>
> Attached new version, hopefully it is clearer.
>
Yes, thank you! (Not an approver; not an approval.)
brgds, H-P
Jonathan Yong via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> On 2/28/23 03:06, Hans-Peter Nilsson wrote:
>>
>> On Mon, 27 Feb 2023, Jonathan Yong via Gcc-patches wrote:
>>
>>> This test is for LP64 only, exclude LLP64 too.
>>> Patch OK?
>>
>> I may be confused, but you're not making use of the "llp64"
>> effective target, there instead excluding/including lp64 /
>> ilp32 in sets that not obviously mean "exclude LLP64".
>>
>> To wit, how is "! ilp32" -> "lp64" and "ilp32" -> "! lp64"
>> expressing "! llp64"?
>>
>> brgds, H-P
>
> Attached new version, hopefully it is clearer.
>
> From 91102d00dc701a65dfac5820a2bc57e1e4bed5b2 Mon Sep 17 00:00:00 2001
> From: Jonathan Yong <10walls@gmail.com>
> Date: Mon, 27 Feb 2023 09:49:31 +0000
> Subject: [PATCH 5/7] gcc.dg/overflow-warn-9.c: Fix LLP64
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/overflow-warn-9.c: Add LLP64 case.
>
> Signed-off-by: Jonathan Yong <10walls@gmail.com>
> ---
> gcc/testsuite/gcc.dg/overflow-warn-9.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/testsuite/gcc.dg/overflow-warn-9.c b/gcc/testsuite/gcc.dg/overflow-warn-9.c
> index 57c0f17bc91..ae588bd8491 100644
> --- a/gcc/testsuite/gcc.dg/overflow-warn-9.c
> +++ b/gcc/testsuite/gcc.dg/overflow-warn-9.c
> @@ -59,7 +59,8 @@ const struct Types t1 = {
> .ui = UINT_MAX + 1L, /* { dg-warning "signed conversion from .long int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
> .ui = UINT_MAX + 1LU, /* { dg-warning "conversion from .long unsigned int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
>
> - .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "not-ilp32" { target { ! ilp32 } } } */
> + .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "lp64" { target lp64 } } */
> /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "ilp32" { target ilp32 } .-1 } */
> + /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "llp64" { target llp64 } .-2 } */
> .ul = ULONG_MAX + 1LU /* there should be some warning here */
> };
OK, although in general I think would be good to use
{ target { ilp32 || llp64 } } for this kind of thing.
No need to change this patch though, just saying for the future.
Thanks,
Richard
On 3/2/23 10:44, Richard Sandiford wrote:
>> diff --git a/gcc/testsuite/gcc.dg/overflow-warn-9.c b/gcc/testsuite/gcc.dg/overflow-warn-9.c
>> index 57c0f17bc91..ae588bd8491 100644
>> --- a/gcc/testsuite/gcc.dg/overflow-warn-9.c
>> +++ b/gcc/testsuite/gcc.dg/overflow-warn-9.c
>> @@ -59,7 +59,8 @@ const struct Types t1 = {
>> .ui = UINT_MAX + 1L, /* { dg-warning "signed conversion from .long int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
>> .ui = UINT_MAX + 1LU, /* { dg-warning "conversion from .long unsigned int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
>>
>> - .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "not-ilp32" { target { ! ilp32 } } } */
>> + .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "lp64" { target lp64 } } */
>> /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "ilp32" { target ilp32 } .-1 } */
>> + /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "llp64" { target llp64 } .-2 } */
>> .ul = ULONG_MAX + 1LU /* there should be some warning here */
>> };
>
> OK, although in general I think would be good to use
> { target { ilp32 || llp64 } } for this kind of thing.
>
> No need to change this patch though, just saying for the future.
>
Thanks for reviewing, how does the "ilp32" or "llp64" before the curly
target brackets work?
Pushed existing patch to master branch.
Jonathan Yong <10walls@gmail.com> writes:
> On 3/2/23 10:44, Richard Sandiford wrote:
>>> diff --git a/gcc/testsuite/gcc.dg/overflow-warn-9.c b/gcc/testsuite/gcc.dg/overflow-warn-9.c
>>> index 57c0f17bc91..ae588bd8491 100644
>>> --- a/gcc/testsuite/gcc.dg/overflow-warn-9.c
>>> +++ b/gcc/testsuite/gcc.dg/overflow-warn-9.c
>>> @@ -59,7 +59,8 @@ const struct Types t1 = {
>>> .ui = UINT_MAX + 1L, /* { dg-warning "signed conversion from .long int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
>>> .ui = UINT_MAX + 1LU, /* { dg-warning "conversion from .long unsigned int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
>>>
>>> - .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "not-ilp32" { target { ! ilp32 } } } */
>>> + .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "lp64" { target lp64 } } */
>>> /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "ilp32" { target ilp32 } .-1 } */
>>> + /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "llp64" { target llp64 } .-2 } */
>>> .ul = ULONG_MAX + 1LU /* there should be some warning here */
>>> };
>>
>> OK, although in general I think would be good to use
>> { target { ilp32 || llp64 } } for this kind of thing.
>>
>> No need to change this patch though, just saying for the future.
>>
>
> Thanks for reviewing, how does the "ilp32" or "llp64" before the curly
> target brackets work?
That's just a free-form string, to make the test name unique.
Richard
From fbc83ae10df1a0e10c302fb0fee13092eb65818e Mon Sep 17 00:00:00 2001
From: Jonathan Yong <10walls@gmail.com>
Date: Mon, 27 Feb 2023 09:49:31 +0000
Subject: [PATCH] gcc.dg/overflow-warn-9.c: exclude from LLP64
gcc/testsuite/ChangeLog:
* gcc.dg/overflow-warn-9.c: Exclude from LLP64.
Signed-off-by: Jonathan Yong <10walls@gmail.com>
---
gcc/testsuite/gcc.dg/overflow-warn-9.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
@@ -59,7 +59,7 @@ const struct Types t1 = {
.ui = UINT_MAX + 1L, /* { dg-warning "signed conversion from .long int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
.ui = UINT_MAX + 1LU, /* { dg-warning "conversion from .long unsigned int. to .unsigned int. changes value from .4294967296. to .0." "lp64" { target lp64 } } */
- .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "not-ilp32" { target { ! ilp32 } } } */
- /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "ilp32" { target ilp32 } .-1 } */
+ .sl = LONG_MAX + 1LU, /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .9223372036854775808. to .-9223372036854775808." "lp64" { target lp64 } } */
+ /* { dg-warning "signed conversion from .long unsigned int. to .long int. changes value from .2147483648. to .-2147483648." "not-lp64" { target { ! lp64 } } .-1 } */
.ul = ULONG_MAX + 1LU /* there should be some warning here */
};
--
2.39.2