summaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1998-09-05 04:42:19 -0600
committerJeff Law <law@gcc.gnu.org>1998-09-05 04:42:19 -0600
commit29382d668f42f548224ad463e1561badbb20fb85 (patch)
treefd464352e92bad0008f2067204436f5b84db7b5d /libiberty
parent39802f419ab60409c9cd1f5e9fe21d36169e4c59 (diff)
downloadgcc-29382d668f42f548224ad463e1561badbb20fb85.tar.gz
pexecute.c: Updates from gcc.
* pexecute.c: Updates from gcc. Copy in gcc has been removed. This is the canonical copy. Define ISSPACE if !IN_GCC. * alloca.c, vfprintf.c: Similarly. From-SVN: r22249
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/alloca.c42
-rw-r--r--libiberty/vfprintf.c22
2 files changed, 49 insertions, 15 deletions
diff --git a/libiberty/alloca.c b/libiberty/alloca.c
index 911d42fcb8c..0f8a21511db 100644
--- a/libiberty/alloca.c
+++ b/libiberty/alloca.c
@@ -22,10 +22,26 @@
your main control loop, etc. to force garbage collection. */
#ifdef HAVE_CONFIG_H
-#include "config.h"
+#include <config.h>
#endif
-/* If compiling with GCC, this file's not needed. */
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef emacs
+#include "blockinput.h"
+#endif
+
+/* If compiling with GCC 2, this file's not needed. Except of course if
+ the C alloca is explicitly requested. */
+#if defined (USE_C_ALLOCA) || !defined (__GNUC__) || __GNUC__ < 2
+
+/* If someone has defined alloca as a macro,
+ there must be some other way alloca is supposed to work. */
#ifndef alloca
#ifdef emacs
@@ -53,11 +69,9 @@ long i00afunc ();
#endif
#if __STDC__
-#include <stddef.h>
typedef void *pointer;
#else
typedef char *pointer;
-typedef unsigned size_t;
#endif
#ifndef NULL
@@ -76,8 +90,8 @@ typedef unsigned size_t;
#ifndef emacs
#define malloc xmalloc
-extern pointer xmalloc ();
#endif
+extern pointer malloc ();
/* Define STACK_DIRECTION if you know the direction of stack
growth for your system; otherwise it will be automatically
@@ -156,7 +170,7 @@ static header *last_alloca_header = NULL; /* -> last alloca header. */
pointer
alloca (size)
- size_t size;
+ unsigned size;
{
auto char probe; /* Probes stack depth: */
register char *depth = ADDRESS_FUNCTION (probe);
@@ -167,11 +181,15 @@ alloca (size)
#endif
/* Reclaim garbage, defined as all alloca'd storage that
- was allocated from deeper in the stack than currently. */
+ was allocated from deeper in the stack than currently. */
{
register header *hp; /* Traverses linked list. */
+#ifdef emacs
+ BLOCK_INPUT;
+#endif
+
for (hp = last_alloca_header; hp != NULL;)
if ((STACK_DIR > 0 && hp->h.deep > depth)
|| (STACK_DIR < 0 && hp->h.deep < depth))
@@ -186,6 +204,10 @@ alloca (size)
break; /* Rest are not deeper. */
last_alloca_header = hp; /* -> last valid storage. */
+
+#ifdef emacs
+ UNBLOCK_INPUT;
+#endif
}
if (size == 0)
@@ -197,6 +219,9 @@ alloca (size)
register pointer new = malloc (sizeof (header) + size);
/* Address of header. */
+ if (new == 0)
+ abort();
+
((header *) new)->h.next = last_alloca_header;
((header *) new)->h.deep = depth;
@@ -326,7 +351,7 @@ struct stk_trailer
#ifdef CRAY2
/* Determine a "stack measure" for an arbitrary ADDRESS.
- I doubt that "lint" will like this much. */
+ I doubt that "lint" will like this much. */
static long
i00afunc (long *address)
@@ -477,3 +502,4 @@ i00afunc (long address)
#endif /* CRAY */
#endif /* no alloca */
+#endif /* not GCC version 2 */
diff --git a/libiberty/vfprintf.c b/libiberty/vfprintf.c
index ce3fdf9c474..db7b2ff4c19 100644
--- a/libiberty/vfprintf.c
+++ b/libiberty/vfprintf.c
@@ -1,13 +1,21 @@
-#include <stdio.h>
+/* Provide a version vfprintf in terms of _doprnt.
+ By Kaveh Ghazi (ghazi@caip.rutgers.edu) 3/29/98
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ */
+
+#ifdef __STDC__
+#include <stdarg.h>
+#else
#include <varargs.h>
-#include <ansidecl.h>
+#endif
+#include <stdio.h>
#undef vfprintf
int
-vfprintf (file, format, ap)
- FILE *file;
- const char *format;
- va_list ap;
+vfprintf (stream, format, ap)
+ FILE * stream;
+ const char * format;
+ va_list ap;
{
- return _doprnt (format, ap, file);
+ return _doprnt (format, ap, stream);
}