projects
/
debian
/
tar
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Import upstream version 1.26
[debian/tar]
/
gnu
/
alloca.c
diff --git
a/gnu/alloca.c
b/gnu/alloca.c
index 8d98020ea5ac08b15137998eed14acfbb89c7e37..a16fa392568417d5ffbce230f971ec7f760bd051 100644
(file)
--- a/
gnu/alloca.c
+++ b/
gnu/alloca.c
@@
-96,21
+96,20
@@
static int stack_dir; /* 1 or -1 once known. */
# define STACK_DIR stack_dir
static void
# define STACK_DIR stack_dir
static void
-find_stack_direction (
void
)
+find_stack_direction (
char **ptr
)
{
{
- static char *addr = NULL; /* Address of first `dummy', once known. */
auto char dummy; /* To get stack address. */
auto char dummy; /* To get stack address. */
- if (
add
r == NULL)
+ if (
*pt
r == NULL)
{ /* Initial entry. */
{ /* Initial entry. */
-
add
r = ADDRESS_FUNCTION (dummy);
+
*pt
r = ADDRESS_FUNCTION (dummy);
- find_stack_direction (); /* Recurse once. */
+ find_stack_direction (
ptr
); /* Recurse once. */
}
else
{
/* Second entry. */
}
else
{
/* Second entry. */
- if (ADDRESS_FUNCTION (dummy) >
add
r)
+ if (ADDRESS_FUNCTION (dummy) >
*pt
r)
stack_dir = 1; /* Stack grew upward. */
else
stack_dir = -1; /* Stack grew downward. */
stack_dir = 1; /* Stack grew upward. */
else
stack_dir = -1; /* Stack grew downward. */
@@
-157,7
+156,10
@@
alloca (size_t size)
# if STACK_DIRECTION == 0
if (STACK_DIR == 0) /* Unknown growth direction. */
# if STACK_DIRECTION == 0
if (STACK_DIR == 0) /* Unknown growth direction. */
- find_stack_direction ();
+ {
+ char *addr = NULL; /* Address of first `dummy', once known. */
+ find_stack_direction (&addr);
+ }
# endif
/* Reclaim garbage, defined as all alloca'd storage that
# endif
/* Reclaim garbage, defined as all alloca'd storage that