aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@dtucker.net>2023-11-21 16:19:29 +1100
committerDarren Tucker <dtucker@dtucker.net>2023-11-21 16:24:17 +1100
commit99a2df5e1994cdcb44ba2187b5f34d0e9190be91 (patch)
treefa8dae7b3da1fdd34438f19b23b7e4b62b00de1e
parentff220d4010717f7bfbbc02a2400666fb9d24f250 (diff)
downloadopenssh-99a2df5e1994cdcb44ba2187b5f34d0e9190be91.tar.gz
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@.
-rw-r--r--m4/openssh.m48
1 files changed, 7 insertions, 1 deletions
diff --git a/m4/openssh.m4 b/m4/openssh.m4
index 8c33c701b..e6d392a02 100644
--- a/m4/openssh.m4
+++ b/m4/openssh.m4
@@ -15,7 +15,7 @@ AC_DEFUN([OSSH_CHECK_CFLAG_COMPILE], [{
#include <stdlib.h>
#include <stdio.h>
/* 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 <stdlib.h>
#include <stdio.h>
+/* 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 <stdlib.h>
#include <stdio.h>
+/* 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);
}