summaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2022-05-24 22:41:45 +0200
committerTom de Vries <tdevries@suse.de>2022-05-24 22:41:45 +0200
commita0ae328a266d2b01ff640be9277e01592b08971a (patch)
tree8bc08e302eb5b5559d3e1cba52f5e054fc16ac9f /gdb/testsuite
parent387e00f3b3e6ea3719f144d7090c1a242174be4d (diff)
[gdb/testsuite] Fix gdb.opt/clobbered-registers-O2.exp with gcc-12
When running test-case gdb.opt/clobbered-registers-O2.exp with gcc-12, I run into: ... (gdb) PASS: gdb.opt/clobbered-registers-O2.exp: backtracing print operand0^M $1 = (unsigned int *) 0x7fffffffd070^M (gdb) print *operand0^M $2 = 4195541^M (gdb) FAIL: gdb.opt/clobbered-registers-O2.exp: print operand0 ... The problem is that starting gcc-12, the assignments to x and y in main are optimized away: ... int main(void) { unsigned x, y; x = 13; y = 14; return (int)gen_movsd (&x, &y); ... Fix this by making x and y volatile. Note that the test-case intends to check the handling of debug info for optimized code in function gen_movsd, so inhibiting optimization in main doesn't interfere with that. Tested on x86_64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29161
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/gdb.opt/clobbered-registers-O2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.opt/clobbered-registers-O2.c b/gdb/testsuite/gdb.opt/clobbered-registers-O2.c
index 7776024eb9..83cf2267d1 100644
--- a/gdb/testsuite/gdb.opt/clobbered-registers-O2.c
+++ b/gdb/testsuite/gdb.opt/clobbered-registers-O2.c
@@ -33,7 +33,7 @@ gen_movsd (unsigned * operand0, unsigned * operand1)
int main(void)
{
- unsigned x, y;
+ volatile unsigned x, y;
x = 13;
y = 14;