From 99a2df5e1994cdcb44ba2187b5f34d0e9190be91 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 21 Nov 2023 16:19:29 +1100 Subject: Expand -fzero-call-used-regs test to cover gcc 11. It turns out that gcc also has some problems with -fzero-call-used-regs, at least v11 on mips. Previously the test in OSSH_CHECK_CFLAG_COMPILE was sufficient to catch it with "=all", but not sufficient for "=used". Expand the testcase and include it in the other tests for good measure. See bz#3629. ok djm@. --- m4/openssh.m4 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/m4/openssh.m4 b/m4/openssh.m4 index 8c33c701..e6d392a0 100644 --- a/m4/openssh.m4 +++ b/m4/openssh.m4 @@ -15,7 +15,7 @@ AC_DEFUN([OSSH_CHECK_CFLAG_COMPILE], [{ #include #include /* Trivial function to help test for -fzero-call-used-regs */ -void f(int n) {} +int f(int n) {return rand() % n;} int main(int argc, char **argv) { (void)argv; /* Some math to catch -ftrapv problems in the toolchain */ @@ -65,6 +65,8 @@ AC_DEFUN([OSSH_CHECK_CFLAG_LINK], [{ AC_LINK_IFELSE([AC_LANG_SOURCE([[ #include #include +/* Trivial function to help test for -fzero-call-used-regs */ +int f(int n) {return rand() % n;} int main(int argc, char **argv) { (void)argv; /* Some math to catch -ftrapv problems in the toolchain */ @@ -73,6 +75,7 @@ int main(int argc, char **argv) { double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; long long int p = n * o; + f(0); printf("%d %d %d %f %f %lld %lld %lld\n", i, j, k, l, m, n, o, p); exit(0); } @@ -104,6 +107,8 @@ AC_DEFUN([OSSH_CHECK_LDFLAG_LINK], [{ AC_LINK_IFELSE([AC_LANG_SOURCE([[ #include #include +/* Trivial function to help test for -fzero-call-used-regs */ +int f(int n) {return rand() % n;} int main(int argc, char **argv) { (void)argv; /* Some math to catch -ftrapv problems in the toolchain */ @@ -112,6 +117,7 @@ int main(int argc, char **argv) { double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; long long p = n * o; + f(0); printf("%d %d %d %f %f %lld %lld %lld\n", i, j, k, l, m, n, o, p); exit(0); } -- cgit v1.2.3