[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2026-01-29 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:a21e0ef542b21699265311f3dbe5181ab54bd08c

commit a21e0ef542b21699265311f3dbe5181ab54bd08c
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2026-01-16 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:9d9740a1f4ccaf2aa151f546b1521870a8c8fa02

commit 9d9740a1f4ccaf2aa151f546b1521870a8c8fa02
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-11-07 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:7e9043ac67493c821b11089972b0fb5510636a98

commit 7e9043ac67493c821b11089972b0fb5510636a98
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-11-01 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:a8aec95dc5ed750fc2b7662b556b62f7944ee376

commit a8aec95dc5ed750fc2b7662b556b62f7944ee376
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-10-18 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:4c331a65be2a68dfbfd10fd1986e6b6bdc248b1a

commit 4c331a65be2a68dfbfd10fd1986e6b6bdc248b1a
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-09-13 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:1403a258b68326ede2531c0bb930a14498a373ec

commit 1403a258b68326ede2531c0bb930a14498a373ec
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-09-06 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:e0fab58970775ba1d2dee4cb284637c9cd840f45

commit e0fab58970775ba1d2dee4cb284637c9cd840f45
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-08-25 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:05d676fdf4e2f5a7adf7d2f412829c050e8575c1

commit 05d676fdf4e2f5a7adf7d2f412829c050e8575c1
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-07-23 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:b65055e9c2ce7830a2d45f4e962df9ce45d29d17

commit b65055e9c2ce7830a2d45f4e962df9ce45d29d17
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-07-05 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:de9601ae0ac432c9fb0339bc6e1239c83ff66620

commit de9601ae0ac432c9fb0339bc6e1239c83ff66620
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);


[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] [RISC-V] Fix ICE due to bogus use of gen_rtvec

2025-05-18 Thread Jeff Law via Gcc-cvs
https://gcc.gnu.org/g:5159c19cb2a8375fe73e7ab90b118fa55a5e0bbd

commit 5159c19cb2a8375fe73e7ab90b118fa55a5e0bbd
Author: Jeff Law 
Date:   Sat May 17 09:37:01 2025 -0600

[RISC-V] Fix ICE due to bogus use of gen_rtvec

Found this while setting up the risc-v coordination branch off of gcc-15.  
Not
sure why I didn't use rtvec_alloc directly here since we're going to 
initialize
the whole vector ourselves.  Using gen_rtvec was just wrong as it's walking
down a non-existent varargs list.  Under the "right" circumstances it can 
walk
off a page and fault.

This was seen with a test already in the testsuite (I forget which test), 
so no
new regression test.

Tested in my tester and verified the failure on the coordination branch is
resolved a well.  Waiting on pre-commit CI to render a verdict.

gcc/
* config/riscv/riscv-vect-permconst.cc 
(vector_permconst:process_bb):
Use rtvec_alloc, not gen_rtvec since we don't want/need to 
initialize
the vector.

(cherry picked from commit 7ed37d5ea48f6a51c81f73f35a64ca00c0325fd7)

Diff:
---
 gcc/config/riscv/riscv-vect-permconst.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/riscv/riscv-vect-permconst.cc 
b/gcc/config/riscv/riscv-vect-permconst.cc
index 8e13cf8d5587..087f26aea8ae 100644
--- a/gcc/config/riscv/riscv-vect-permconst.cc
+++ b/gcc/config/riscv/riscv-vect-permconst.cc
@@ -227,7 +227,7 @@ vector_permconst::process_bb (basic_block bb)
 normalize it to zero.
 
 XXX This violates structure sharing conventions.  */
-  rtvec_def *nvec = gen_rtvec (CONST_VECTOR_NUNITS (cvec).to_constant ());
+  rtvec_def *nvec = rtvec_alloc (CONST_VECTOR_NUNITS (cvec).to_constant 
());
 
   for (i = 0; i < CONST_VECTOR_NUNITS (cvec).to_constant (); i++)
nvec->elem[i] = GEN_INT (INTVAL (CONST_VECTOR_ELT (cvec, i)) - bias);