diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2001-03-10 04:20:03 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2001-03-10 04:20:03 +0000 |
commit | f4ce9d906750bad87642454a1cbf8a1b2c2261b0 (patch) | |
tree | 9c3fac38ed4b4a8e389d091650ec0193e59385b9 /gcc | |
parent | 0eac29848b3a5bee12b6f8ae6c64c82a9c0f61b1 (diff) | |
download | gcc-f4ce9d906750bad87642454a1cbf8a1b2c2261b0.zip gcc-f4ce9d906750bad87642454a1cbf8a1b2c2261b0.tar.gz gcc-f4ce9d906750bad87642454a1cbf8a1b2c2261b0.tar.bz2 |
server.c (load_data, run_shell): Use xmalloc, xrealloc & xcalloc in lieu of malloc, realloc & calloc.
* fixinc/server.c (load_data, run_shell): Use xmalloc, xrealloc &
xcalloc in lieu of malloc, realloc & calloc.
* gencheck.c (xmalloc): Use really_call_malloc, not malloc.
* gengenrtl.c (xmalloc): Likewise.
* gensupport.c (xcalloc, xrealloc, xmalloc): Use the
really_call_* memory allocation routines.
* stmt.c (check_for_full_enumeration_handling): Use
really_call_calloc, not calloc.
* system.h (really_call_malloc, really_call_calloc,
really_call_realloc): Define.
(malloc, realloc, calloc, strdup, bzero, bcmp, rindex): Poison.
f:
* fini.c (main): Use really_call_malloc, not malloc.
From-SVN: r40360
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/f/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/f/fini.c | 2 | ||||
-rw-r--r-- | gcc/fixinc/server.c | 32 | ||||
-rw-r--r-- | gcc/gencheck.c | 2 | ||||
-rw-r--r-- | gcc/gengenrtl.c | 2 | ||||
-rw-r--r-- | gcc/gensupport.c | 8 | ||||
-rw-r--r-- | gcc/stmt.c | 3 | ||||
-rw-r--r-- | gcc/system.h | 25 |
9 files changed, 63 insertions, 34 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3dc3ebd..e8a825d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,22 @@ +2001-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fixinc/server.c (load_data, run_shell): Use xmalloc, xrealloc & + xcalloc in lieu of malloc, realloc & calloc. + + * gencheck.c (xmalloc): Use really_call_malloc, not malloc. + + * gengenrtl.c (xmalloc): Likewise. + + * gensupport.c (xcalloc, xrealloc, xmalloc): Use the + really_call_* memory allocation routines. + + * stmt.c (check_for_full_enumeration_handling): Use + really_call_calloc, not calloc. + + * system.h (really_call_malloc, really_call_calloc, + really_call_realloc): Define. + (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): Poison. + Fri Mar 9 18:39:19 2001 Jeffrey A Law (law@cygnus.com) * pa.md (builtin_longjmp): Rework slightly to work for PA64 too. diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index c620ab6..edb7bb0 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,7 @@ +Fri Mar 9 22:52:55 2001 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fini.c (main): Use really_call_malloc, not malloc. + Thu Mar 8 13:27:47 2001 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * com.c: Don't rely on the POSIX macro to define autoconf stuff. diff --git a/gcc/f/fini.c b/gcc/f/fini.c index 0fabf37..362c0b6 100644 --- a/gcc/f/fini.c +++ b/gcc/f/fini.c @@ -367,7 +367,7 @@ main (int argc, char **argv) /* Make new name object to store name and its keyword. */ - newname = (name) malloc (sizeof (*newname)); + newname = (name) really_call_malloc (sizeof (*newname)); newname->namelen = strlen (buf); newname->kwlen = strlen (kwname); total_length = newname->kwlen + fixlengths; diff --git a/gcc/fixinc/server.c b/gcc/fixinc/server.c index 76785e1..de4d203 100644 --- a/gcc/fixinc/server.c +++ b/gcc/fixinc/server.c @@ -93,10 +93,7 @@ load_data (fp) t_bool got_done = BOOL_FALSE; text_size = sizeof (z_line) * 2; - pz_scan = pz_text = malloc (text_size); - - if (pz_text == (char *) NULL) - return (char *) NULL; + pz_scan = pz_text = xmalloc (text_size); for (;;) { @@ -120,18 +117,9 @@ load_data (fp) if (text_size - used_ct < sizeof (z_line)) { size_t off = (size_t) (pz_scan - pz_text); - void *p; text_size += 4096; - p = realloc ((void *) pz_text, text_size); - if (p == (void *) NULL) - { - fprintf (stderr, "Failed to get 0x%08lX bytes\n", - (long) text_size); - free ((void *) pz_text); - return (char *) NULL; - } - pz_text = (char *) p; + pz_text = xrealloc ((void *) pz_text, text_size); pz_scan = pz_text + off; } } @@ -146,7 +134,7 @@ load_data (fp) while ((pz_scan > pz_text) && ISSPACE (pz_scan[-1])) pz_scan--; *pz_scan = NUL; - return realloc ((void *) pz_text, strlen (pz_text) + 1); + return xrealloc ((void *) pz_text, strlen (pz_text) + 1); } @@ -284,11 +272,8 @@ run_shell (pz_cmd) /* IF it is still not running, THEN return the nil string. */ if (server_id <= 0) { - char *pz = (char *) malloc (1); fprintf (stderr, zNoServer, pz_cmd); - if (pz != (char *) NULL) - *pz = '\0'; - return pz; + return xcalloc (1, 1); } /* Make sure the process will pay attention to us, send the @@ -302,11 +287,8 @@ run_shell (pz_cmd) THEN return an empty string. */ if (server_id == NULLPROCESS) { - char *pz = (char *) malloc (1); fprintf (stderr, zNoServer, pz_cmd); - if (pz != (char *) NULL) - *pz = '\0'; - return pz; + return xcalloc (1, 1); } /* Now try to read back all the data. If we fail due to either a @@ -326,9 +308,7 @@ run_shell (pz_cmd) fprintf (stderr, "CLOSING SHELL SERVER - command failure:\n\t%s\n", pz_cmd); - pz = (char *) malloc (1); - if (pz != (char *) NULL) - *pz = '\0'; + pz = xcalloc (1, 1); } #ifdef DEBUG fprintf( stderr, "run_shell command success: %s\n", pz ); diff --git a/gcc/gencheck.c b/gcc/gencheck.c index 12cc038..df6238b 100644 --- a/gcc/gencheck.c +++ b/gcc/gencheck.c @@ -75,7 +75,7 @@ PTR xmalloc (nbytes) size_t nbytes; { - register PTR tmp = (PTR) malloc (nbytes); + register PTR tmp = (PTR) really_call_malloc (nbytes); if (!tmp) { diff --git a/gcc/gengenrtl.c b/gcc/gengenrtl.c index 707173f..b04d081 100644 --- a/gcc/gengenrtl.c +++ b/gcc/gengenrtl.c @@ -389,7 +389,7 @@ PTR xmalloc (nbytes) size_t nbytes; { - register PTR tmp = (PTR) malloc (nbytes); + register PTR tmp = (PTR) really_call_malloc (nbytes); if (!tmp) { diff --git a/gcc/gensupport.c b/gcc/gensupport.c index 4d7c258..6bad18e 100644 --- a/gcc/gensupport.c +++ b/gcc/gensupport.c @@ -871,7 +871,7 @@ xcalloc (nelem, elsize) if (nelem == 0 || elsize == 0) nelem = elsize = 1; - newmem = calloc (nelem, elsize); + newmem = really_call_calloc (nelem, elsize); if (!newmem) fatal ("virtual memory exhausted"); return (newmem); @@ -884,9 +884,9 @@ xrealloc (old, size) { register PTR ptr; if (old) - ptr = (PTR) realloc (old, size); + ptr = (PTR) really_call_realloc (old, size); else - ptr = (PTR) malloc (size); + ptr = (PTR) really_call_malloc (size); if (!ptr) fatal ("virtual memory exhausted"); return ptr; @@ -896,7 +896,7 @@ PTR xmalloc (size) size_t size; { - register PTR val = (PTR) malloc (size); + register PTR val = (PTR) really_call_malloc (size); if (val == 0) fatal ("virtual memory exhausted"); @@ -5193,7 +5193,8 @@ check_for_full_enumeration_handling (type) /* We deliberately use calloc here, not cmalloc, so that we can suppress this optimization if we don't have enough memory rather than aborting, as xmalloc would do. */ - && (cases_seen = (unsigned char *) calloc (bytes_needed, 1)) != NULL) + && (cases_seen = + (unsigned char *) really_call_calloc (bytes_needed, 1)) != NULL) { HOST_WIDE_INT i; tree v = TYPE_VALUES (type); diff --git a/gcc/system.h b/gcc/system.h index 8721f7e..0ea6c3f 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -577,4 +577,29 @@ typedef char _Bool; #define TRUE true #define FALSE false +/* As the last action in this file, we poison the identifiers that + shouldn't be used. Note, luckily gcc-3.0's token-based integrated + preprocessor won't trip on poisoned identifiers that arrive from + the expansion of macros. E.g. #define strrchr rindex, won't error + if rindex is poisoned after this directive is issued and later on + strrchr is called. + + Note: We define bypass macros for the few cases where we really + want to use the libc memory allocation routines. Otherwise we + insist you use the "x" versions from libiberty. */ + +#define really_call_malloc malloc +#define really_call_calloc calloc +#define really_call_realloc realloc + +#if (GCC_VERSION >= 3000) + + #pragma GCC poison malloc realloc calloc strdup + +/* Note: not all uses of `bcopy' and `index' (esp. variable names) + have been eliminated. */ + #pragma GCC poison bzero bcmp rindex + +#endif /* GCC >= 3.0 */ + #endif /* __GCC_SYSTEM_H__ */ |