diff options
author | max <max@tclers.tk> | 2011-06-30 15:13:04 (GMT) |
---|---|---|
committer | max <max@tclers.tk> | 2011-06-30 15:13:04 (GMT) |
commit | ab9198a4a8bfe2f03879c8fc4ae46b5f8eb64d60 (patch) | |
tree | c9a877a08f11e653a98690d0483a19d9f67a00c7 | |
parent | fe78bd7e38e4e05cd4e129f73a8bfeef232fac76 (diff) | |
download | tcl-ab9198a4a8bfe2f03879c8fc4ae46b5f8eb64d60.zip tcl-ab9198a4a8bfe2f03879c8fc4ae46b5f8eb64d60.tar.gz tcl-ab9198a4a8bfe2f03879c8fc4ae46b5f8eb64d60.tar.bz2 |
Fix TCL_STACK_GROWS_UP for gcc 4.6
-rw-r--r-- | ChangeLog | 6 | ||||
-rwxr-xr-x | unix/configure | 6 | ||||
-rw-r--r-- | unix/configure.in | 6 |
3 files changed, 14 insertions, 4 deletions
@@ -1,3 +1,9 @@ +2011-06-30 Reinhard Max <max@suse.de> + + * 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 <dgp@users.sourceforge.net> *** 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); |