From ab9198a4a8bfe2f03879c8fc4ae46b5f8eb64d60 Mon Sep 17 00:00:00 2001 From: max Date: Thu, 30 Jun 2011 15:13:04 +0000 Subject: Fix TCL_STACK_GROWS_UP for gcc 4.6 --- ChangeLog | 6 ++++++ unix/configure | 6 ++++-- unix/configure.in | 6 ++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 53b15cf..70860fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-06-30 Reinhard Max + + * unix/configure.in: Add a volatile declaration to the test for + TCL_STACK_GROWS_UP to prevent gcc 4.6 from producing invalid + results due to aggressive optimisation. + 2011-06-23 Don Porter *** 8.5.10 TAGGED FOR RELEASE *** diff --git a/unix/configure b/unix/configure index ed71de0..aa792a7 100755 --- a/unix/configure +++ b/unix/configure @@ -18705,10 +18705,12 @@ cat >>conftest.$ac_ext <<_ACEOF int StackGrowsUp(int *parent) { int here; + volatile int result; if (parent) - return (&here < parent); + result = (&here < parent); else - return StackGrowsUp(&here); + result = StackGrowsUp(&here); + return result; } int main (int argc, char *argv[]) { return StackGrowsUp(0); diff --git a/unix/configure.in b/unix/configure.in index e30c937..3394369 100644 --- a/unix/configure.in +++ b/unix/configure.in @@ -705,10 +705,12 @@ AC_CACHE_CHECK([if the C stack grows upwards in memory], tcl_cv_stack_grows_up, AC_TRY_RUN([ int StackGrowsUp(int *parent) { int here; + volatile int result; if (parent) - return (&here < parent); + result = (&here < parent); else - return StackGrowsUp(&here); + result = StackGrowsUp(&here); + return result; } int main (int argc, char *argv[]) { return StackGrowsUp(0); -- cgit v0.12