+++ /dev/null
-libguile/vm-i-system.c: workaround ice ssa corruption while compiling with option -g -O
-
-While compiling with option -g -O, there was a ssa corruption:
-..
-Unable to coalesce ssa_names 48 and 3476 which are marked as MUST COALESCE.
-sp_48(ab) and sp_3476(ab)
-guile-2.0.11/libguile/vm-engine.c: In function 'vm_debug_engine':
-guile-2.0.11/libguile/vm.c:673:19: internal compiler error: SSA corruption
- #define VM_NAME vm_debug_engine
- ^
-guile-2.0.11/libguile/vm-engine.c:39:1: note: in expansion of macro 'VM_NAME'
- VM_NAME (SCM vm, SCM program, SCM *argv, int nargs)
- ^
-Please submit a full bug report,
-with preprocessed source if appropriate.
-See <http://gcc.gnu.org/bugs.html> for instructions.
-...
-
-Tweak libguile/vm-i-system.c to add boundary value check to workaround it.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Fixes Buildroot autobuilder failures on AArch64.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- libguile/vm-i-system.c | 20 ++++++++++++++++----
- 1 file changed, 16 insertions(+), 4 deletions(-)
-
-diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
---- a/libguile/vm-i-system.c
-+++ b/libguile/vm-i-system.c
-@@ -625,10 +625,22 @@ VM_DEFINE_INSTRUCTION (47, bind_optionals_shuffle, "bind-optionals/shuffle", 6,
- /* now shuffle up, from walk to ntotal */
- {
- scm_t_ptrdiff nshuf = sp - walk + 1, i;
-- sp = (fp - 1) + ntotal + nshuf;
-- CHECK_OVERFLOW ();
-- for (i = 0; i < nshuf; i++)
-- sp[-i] = walk[nshuf-i-1];
-+ /* check the value of nshuf to workaround ice ssa corruption */
-+ /* while compiling with -O -g */
-+ if (nshuf > 0)
-+ {
-+ sp = (fp - 1) + ntotal + nshuf;
-+ CHECK_OVERFLOW ();
-+ for (i = 0; i < nshuf; i++)
-+ sp[-i] = walk[nshuf-i-1];
-+ }
-+ else
-+ {
-+ sp = (fp - 1) + ntotal + nshuf;
-+ CHECK_OVERFLOW ();
-+ for (i = 0; i < nshuf; i++)
-+ sp[-i] = walk[nshuf-i-1];
-+ }
- }
- /* and fill optionals & keyword args with SCM_UNDEFINED */
- while (walk <= (fp - 1) + ntotal)
---
-1.9.1
-