diff -Nrup a/gnulib/import/m4/alloca.m4 b/gnulib/import/m4/alloca.m4 --- a/gnulib/import/m4/alloca.m4 2019-11-18 18:49:20.000000000 -0700 +++ b/gnulib/import/m4/alloca.m4 2020-01-11 01:07:36.200483085 -0700 @@ -89,7 +89,7 @@ AC_CACHE_CHECK([stack direction for C al [ac_cv_c_stack_direction], [AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_INCLUDES_DEFAULT -int +__attribute__ (noinline,noclone)) int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; diff -Nrup a/libiberty/aclocal.m4 b/libiberty/aclocal.m4 --- a/libiberty/aclocal.m4 2019-01-19 09:01:34.000000000 -0700 +++ b/libiberty/aclocal.m4 2020-01-09 22:00:27.183312982 -0700 @@ -147,7 +147,7 @@ if test $ac_cv_os_cray = yes; then fi AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction, -[AC_TRY_RUN([find_stack_direction () +[AC_TRY_RUN([__attribute__ ((noclone,noinline)) find_stack_direction () { static char *addr = 0; auto char dummy; diff --git a/config/intdiv0.m4 b/config/intdiv0.m4 index 55dddcf1..ba906efc 100644 --- a/config/intdiv0.m4 +++ b/config/intdiv0.m4 @@ -31,10 +31,10 @@ sigfpe_handler (sig) int sig; exit (sig != SIGFPE); } -int x = 1; -int y = 0; -int z; -int nan; +volatile int x = 1; +volatile int y = 0; +volatile int z; +volatile int nan; int main () { diff --git a/libiberty/configure.ac b/libiberty/configure.ac index f1ce7601..fc20d228 100644 --- a/libiberty/configure.ac +++ b/libiberty/configure.ac @@ -661,7 +661,7 @@ if test -z "${setobjs}"; then for v in $vars; do AC_MSG_CHECKING([for $v]) AC_CACHE_VAL(libiberty_cv_var_$v, - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int *p;]],[[extern int $v []; p = $v;]])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[__attribute__ ((used)) int *p;]],[[extern int $v []; p = $v;]])], [eval "libiberty_cv_var_$v=yes"], [eval "libiberty_cv_var_$v=no"])]) if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then