[gdb/testsuite] Fix gdb.arch/altivec-regs.exp with gcc 4.8.5

On powerpc64le-linux, using gcc 4.8.5, I run into:
...
(gdb) PASS: gdb.arch/altivec-regs.exp: next (1)
next^M
11        c = vec_add (a, b);^M
(gdb) PASS: gdb.arch/altivec-regs.exp: next (2)
print/x a^M
$67 = {0xfefefefe, 0xfefefefe, 0xfefefefe, 0xfefefefe}^M
(gdb) FAIL: gdb.arch/altivec-regs.exp: print vector parameter a
...

Looking at the disassembly and the debug info, it's clear why there's
a FAIL.

The debug info says that the variable can be found at some stack location, but
the instructions don't seem to be writing there.

We can work around this by marking variable a volatile.  Likewise for b.

Note that marking the variables as volatile doesn't change the location
information.

Tested on power64le-linux.
This commit is contained in:
Tom de Vries
2022-11-28 13:57:17 +01:00
parent 2650ea9730
commit 85819864f7

View File

@ -2,7 +2,7 @@
#include <stdio.h>
vector unsigned int
vector_fun (vector unsigned int a, vector unsigned int b)
vector_fun (volatile vector unsigned int a, volatile vector unsigned int b)
{
vector unsigned int c;
a = ((vector unsigned int) vec_splat_u8(2));