From 541eccada375ed8309ab805e0a4df146ac07fc2d Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Thu, 25 Oct 2018 10:19:49 +0000 Subject: [PATCH] [testsuite] Fix sibcall-9 & sibcall-10 with -fPIC gcc.dg/sibcall-9.c and gcc.dg/sibcall-10.c give execution failure on ARM when compiled with -fPIC due to the PIC access to volatile variable v creating an extra spill which causes the frame size of the two recursive functions to be different. Making the variable static solve the issue because the variable can be access in a PC-relative way and avoid the spill, while still testing sibling call as originally intended. 2018-10-25 Thomas Preud'homme gcc/testsuite/ * gcc.dg/sibcall-9.c: Make v static. * gcc.dg/sibcall-10.c: Likewise. From-SVN: r265482 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/sibcall-10.c | 2 +- gcc/testsuite/gcc.dg/sibcall-9.c | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6a50e92905b..23b21906534 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-10-25 Thomas Preud'homme + + * gcc.dg/sibcall-9.c: Make v static. + * gcc.dg/sibcall-10.c: Likewise. + 2018-10-25 Richard Biener PR tree-optimization/87665 diff --git a/gcc/testsuite/gcc.dg/sibcall-10.c b/gcc/testsuite/gcc.dg/sibcall-10.c index 54cc604aecf..4acca50e3e4 100644 --- a/gcc/testsuite/gcc.dg/sibcall-10.c +++ b/gcc/testsuite/gcc.dg/sibcall-10.c @@ -31,7 +31,7 @@ extern void exit (int); static ATTR void recurser_void1 (void); static ATTR void recurser_void2 (void); extern void track (void); -volatile int v; +static volatile int v; int n = 0; int main () diff --git a/gcc/testsuite/gcc.dg/sibcall-9.c b/gcc/testsuite/gcc.dg/sibcall-9.c index fc3bd9dcf16..32b2e1d5d61 100644 --- a/gcc/testsuite/gcc.dg/sibcall-9.c +++ b/gcc/testsuite/gcc.dg/sibcall-9.c @@ -31,7 +31,7 @@ extern void exit (int); static ATTR void recurser_void1 (int); static ATTR void recurser_void2 (int); extern void track (int); -volatile int v; +static volatile int v; int main () { -- 2.30.2