diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2011-03-10 21:32:38 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2011-03-10 21:32:38 (GMT) |
commit | 431a5aa6e55618adddc4fcc98744cf8aea6b36e7 (patch) | |
tree | aab3e98644bbfdde7cee9e7d0644843efc3b481b /unix | |
parent | facf8dcf55076e56b16a813876e8544cf56f6604 (diff) | |
download | tcl-431a5aa6e55618adddc4fcc98744cf8aea6b36e7.zip tcl-431a5aa6e55618adddc4fcc98744cf8aea6b36e7.tar.gz tcl-431a5aa6e55618adddc4fcc98744cf8aea6b36e7.tar.bz2 |
[Bug 3205320]: stack space detection defeated by inlining
Diffstat (limited to 'unix')
-rwxr-xr-x | unix/configure | 8 | ||||
-rw-r--r-- | unix/configure.in | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/unix/configure b/unix/configure index 8fbaebc..96e50d9 100755 --- a/unix/configure +++ b/unix/configure @@ -18734,11 +18734,13 @@ cat >>conftest.$ac_ext <<_ACEOF int StackGrowsUp(int *parent) { int here; - return (&here < parent); + if (parent) + return (&here < parent); + else + return StackGrowsUp(&here); } int main (int argc, char *argv[]) { - int foo; - return StackGrowsUp(&foo); + return StackGrowsUp(0); } _ACEOF diff --git a/unix/configure.in b/unix/configure.in index 87731a1..473758d 100644 --- a/unix/configure.in +++ b/unix/configure.in @@ -705,11 +705,13 @@ 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; - return (&here < parent); + if (parent) + return (&here < parent); + else + return StackGrowsUp(&here); } int main (int argc, char *argv[]) { - int foo; - return StackGrowsUp(&foo); + return StackGrowsUp(0); } ], tcl_cv_stack_grows_up=yes, tcl_cv_stack_grows_up=no, tcl_cv_stack_grows_up=unknown)]) |