1 /* imalloc.h -- internal malloc definitions shared by source files. */
3 /* Copyright (C) 2001 Free Software Foundation, Inc.
5 This file is part of GNU Bash, the Bourne Again SHell.
7 Bash is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
12 Bash is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 You should have received a copy of the GNU General Public License along
18 with Bash; see the file COPYING. If not, write to the Free Software
19 Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
21 /* Must be included *after* config.h */
29 #define MALLOC_REGISTER
32 /* Generic pointer type. */
34 # if defined (__STDC__)
45 #if !defined (__STRING)
46 # if defined (HAVE_STRINGIZE)
47 # define __STRING(x) #x
49 # define __STRING(x) "x"
50 # endif /* !HAVE_STRINGIZE */
51 #endif /* !__STRING */
54 # define FASTCOPY(s, d, n) __builtin_memcpy (d, s, n)
56 # if !defined (HAVE_BCOPY)
57 # if !defined (HAVE_MEMMOVE)
58 # define FASTCOPY(s, d, n) memcpy (d, s, n)
60 # define FASTCOPY(s, d, n) memmove (d, s, n)
61 # endif /* !HAVE_MEMMOVE */
62 # else /* HAVE_BCOPY */
63 # define FASTCOPY(s, d, n) bcopy (s, d, n)
64 # endif /* HAVE_BCOPY */
65 #endif /* !__GNUC__ */