From 29382d668f42f548224ad463e1561badbb20fb85 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sat, 5 Sep 1998 04:42:19 -0600 Subject: [PATCH] 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 --- libiberty/alloca.c | 42 ++++++++++++++++++++++++++++++++++-------- libiberty/vfprintf.c | 22 +++++++++++++++------- 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 #endif -/* If compiling with GCC, this file's not needed. */ +#ifdef HAVE_STRING_H +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#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 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 +/* 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 +#else #include -#include +#endif +#include #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); } -- 2.30.2