Fix Wstringop-overflow-47.c warning in RISC-V target.

Message ID 20240716001548.2639725-1-jiawei@iscas.ac.cn
State Committed
Commit b4d91abddc2359a5457b1c77f038b86567da52b6
Delegated to: Jeff Law
Headers
Series Fix Wstringop-overflow-47.c warning in RISC-V target. |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_gcc_check--master-arm success Test passed
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 success Test passed
rivoscibot/toolchain-ci-rivos-lint success Lint passed
rivoscibot/toolchain-ci-rivos-apply-patch success Patch applied
rivoscibot/toolchain-ci-rivos-build--newlib-rv64gcv-lp64d-multilib success Build passed
rivoscibot/toolchain-ci-rivos-build--linux-rv64gc_zba_zbb_zbc_zbs-lp64d-multilib success Build passed
rivoscibot/toolchain-ci-rivos-build--linux-rv64gcv-lp64d-multilib success Build passed
rivoscibot/toolchain-ci-rivos-build--newlib-rv64gc-lp64d-non-multilib success Build passed
rivoscibot/toolchain-ci-rivos-build--linux-rv64gc-lp64d-non-multilib success Build passed
rivoscibot/toolchain-ci-rivos-test success Testing passed

Commit Message

Jiawei July 16, 2024, 12:15 a.m. UTC
  Update warning test info for RISC-V target, compared on godbolt:

https://godbolt.org/z/Mexd3dfcc

gcc/testsuite/ChangeLog:

	* gcc.dg/Wstringop-overflow-47.c: Remove xfail target.

---
 gcc/testsuite/gcc.dg/Wstringop-overflow-47.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Jeff Law July 16, 2024, 12:28 a.m. UTC | #1
On 7/15/24 6:15 PM, Jiawei wrote:
> Update warning test info for RISC-V target, compared on godbolt:
> 
> https://godbolt.org/z/Mexd3dfcc
> 
> gcc/testsuite/ChangeLog:
> 
> 	* gcc.dg/Wstringop-overflow-47.c: Remove xfail target.
IIRC these fails are dependent upon whether or not the statements turn 
into vector stores or not.

So to remove the xfail don't you have to know if vector is enabled/disabled?
Jeff
  
Jiawei July 16, 2024, 4:08 a.m. UTC | #2
在 2024/07/16 8:28, Jeff Law 写道:
> IIRC these fails are dependent upon whether or not the statements turn 
> into vector stores or not.
>
> So to remove the xfail don't you have to know if vector is 
> enabled/disabled? 

I am not sure, I tried to enable with RVV, but it still pass the test:

https://godbolt.org/z/bvWfffTe5

Any suggestions?
  
Jeff Law Aug. 5, 2024, 3:16 p.m. UTC | #3
On 7/15/24 10:08 PM, Jiawei wrote:
> 
> 在 2024/07/16 8:28, Jeff Law 写道:
>> IIRC these fails are dependent upon whether or not the statements turn 
>> into vector stores or not.
>>
>> So to remove the xfail don't you have to know if vector is enabled/ 
>> disabled? 
> 
> I am not sure, I tried to enable with RVV, but it still pass the test:
> 
> https://godbolt.org/z/bvWfffTe5
Probably because it didn't vectorize ;-)  I don't remember all these 
tests, but I do remember some of them are highly sensitive to the 
changes in code generation from vectorization.

OK for the trunk.  Though I wouldn't be surprised if we have to come 
back to this at some point and adjust again.

jeff
  
Jiawei Aug. 7, 2024, 4:47 a.m. UTC | #4
在 2024/8/5 23:16, Jeff Law 写道:
>
>
> On 7/15/24 10:08 PM, Jiawei wrote:
>>
>> 在 2024/07/16 8:28, Jeff Law 写道:
>>> IIRC these fails are dependent upon whether or not the statements 
>>> turn into vector stores or not.
>>>
>>> So to remove the xfail don't you have to know if vector is enabled/ 
>>> disabled? 
>>
>> I am not sure, I tried to enable with RVV, but it still pass the test:
>>
>> https://godbolt.org/z/bvWfffTe5
> Probably because it didn't vectorize ;-)  I don't remember all these 
> tests, but I do remember some of them are highly sensitive to the 
> changes in code generation from vectorization.
>
> OK for the trunk.  Though I wouldn't be surprised if we have to come 
> back to this at some point and adjust again.
>
> jeff

Committed on trunk, I will keep an eye on this if it went wrong :)

BR,

jiawei
  

Patch

diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-47.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
index 883921b097f..9fb78e55046 100644
--- a/gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
+++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
@@ -65,15 +65,15 @@  void warn_i16_64 (int16_t i)
    like x86_64 it's a series of BIT_FIELD_REFs.  The overflow by
    the former is detected but the latter is not yet.  */
 
- extern char warn_a64[64];   // { dg-message "at offset (1|128) into destination object 'warn_a64' of size (63|64)" "pr97027 note" { xfail { ! { aarch64-*-* riscv*-*-* } } } }
+ extern char warn_a64[64];   // { dg-message "at offset (1|128) into destination object 'warn_a64' of size (63|64)" "pr97027 note" { xfail { ! { aarch64-*-* } } } }
 
   void *p = warn_a64 + 1;
   I16_64 *q = (I16_64*)p;
-  *q = (I16_64){ i };         // { dg-warning "writing (1 byte|64 bytes) into a region of size (0|63)" "pr97027" { xfail { ! { aarch64-*-* riscv*-*-* } } } }
+  *q = (I16_64){ i };         // { dg-warning "writing (1 byte|64 bytes) into a region of size (0|63)" "pr97027" { xfail { ! { aarch64-*-* } } } }
 
   char a64[64];
   p = a64 + 1;
   q = (I16_64*)p;
-  *q = (I16_64){ i };         // { dg-warning "writing (1 byte|64 bytes) into a region of size (0|63)" "pr97027" { xfail { ! { aarch64-*-* riscv*-*-* } } } }
+  *q = (I16_64){ i };         // { dg-warning "writing (1 byte|64 bytes) into a region of size (0|63)" "pr97027" { xfail { ! { aarch64-*-* } } } }
   sink (p);
 }