optimization/8315: Bad reordering in -O3
Gyro@reasoning.com
Gyro@reasoning.com
Tue Oct 22 21:31:00 GMT 2002
>Number: 8315
>Category: optimization
>Synopsis: Bad reordering in -O3
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: wrong-code
>Submitter-Id: net
>Arrival-Date: Tue Oct 22 19:46:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Gyro@reasoning.com
>Release: 3.2
>Organization:
>Environment:
RedHat Linux 7.3 on i686 (Pentium IV)
>Description:
Found this trying to build XEmacs 21.1.14. At -O3, ordering is not maintained on the two function pointer assignments near the top of `init_ralloc' (just under the assignment to `r_alloc_initialized'). The same value gets stored in both locations.
>How-To-Repeat:
>Fix:
Back off to -O2.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="ralloc.i"
Content-Disposition: inline; filename="ralloc.i"
# 1 "ralloc.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "ralloc.c"
# 31 "ralloc.c"
# 1 "config.h" 1
# 533 "config.h"
# 1 "s/linux.h" 1
# 69 "s/linux.h"
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 1 3
# 37 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
# 1 "/usr/include/features.h" 1 3
# 291 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 292 "/usr/include/features.h" 2 3
# 320 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 321 "/usr/include/features.h" 2 3
# 38 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 2 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 201 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 3
typedef unsigned int size_t;
# 44 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/bits/types.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef __u_long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef __u_int __id_t;
typedef struct
{
int __val[2];
} __fsid_t;
typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef int __clockid_t;
typedef int __timer_t;
typedef int __key_t;
typedef unsigned short int __ipc_pid_t;
typedef long int __blksize_t;
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
typedef __u_quad_t __ino64_t;
typedef __loff_t __off64_t;
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
typedef int __intptr_t;
typedef unsigned int __socklen_t;
# 1 "/usr/include/bits/pthreadtypes.h" 1 3
# 23 "/usr/include/bits/pthreadtypes.h" 3
# 1 "/usr/include/bits/sched.h" 1 3
# 68 "/usr/include/bits/sched.h" 3
struct __sched_param
{
int __sched_priority;
};
# 24 "/usr/include/bits/pthreadtypes.h" 2 3
struct _pthread_fastlock
{
long int __status;
int __spinlock;
};
typedef struct _pthread_descr_struct *_pthread_descr;
typedef struct __pthread_attr_s
{
int __detachstate;
int __schedpolicy;
struct __sched_param __schedparam;
int __inheritsched;
int __scope;
size_t __guardsize;
int __stackaddr_set;
void *__stackaddr;
size_t __stacksize;
} pthread_attr_t;
typedef struct
{
struct _pthread_fastlock __c_lock;
_pthread_descr __c_waiting;
} pthread_cond_t;
typedef struct
{
int __dummy;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef struct
{
int __m_reserved;
int __m_count;
_pthread_descr __m_owner;
int __m_kind;
struct _pthread_fastlock __m_lock;
} pthread_mutex_t;
typedef struct
{
int __mutexkind;
} pthread_mutexattr_t;
typedef int pthread_once_t;
typedef struct _pthread_rwlock_t
{
struct _pthread_fastlock __rw_lock;
int __rw_readers;
_pthread_descr __rw_writer;
_pthread_descr __rw_read_waiting;
_pthread_descr __rw_write_waiting;
int __rw_kind;
int __rw_pshared;
} pthread_rwlock_t;
typedef struct
{
int __lockkind;
int __pshared;
} pthread_rwlockattr_t;
typedef volatile int pthread_spinlock_t;
typedef struct {
struct _pthread_fastlock __ba_lock;
int __ba_required;
int __ba_present;
_pthread_descr __ba_waiting;
} pthread_barrier_t;
typedef struct {
int __pshared;
} pthread_barrierattr_t;
typedef unsigned long int pthread_t;
# 144 "/usr/include/bits/types.h" 2 3
# 46 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 2 3
# 54 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
typedef struct _IO_FILE FILE;
# 64 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
typedef struct _IO_FILE __FILE;
# 74 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 32 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 14 "/usr/include/_G_config.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 294 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 3
typedef long int wchar_t;
# 321 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 24 "/usr/include/_G_config.h" 3
# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3
# 1 "/usr/include/bits/wchar.h" 1 3
# 51 "/usr/include/wchar.h" 2 3
# 67 "/usr/include/wchar.h" 3
typedef struct
{
int __count;
union
{
wint_t __wch;
char __wchb[4];
} __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3
typedef struct
{
__off_t __pos;
__mbstate_t __state;
} _G_fpos_t;
typedef struct
{
__off64_t __pos;
__mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3
# 1 "/usr/include/gconv.h" 1 3
# 28 "/usr/include/gconv.h" 3
# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3
# 29 "/usr/include/gconv.h" 2 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 32 "/usr/include/gconv.h" 2 3
enum
{
__GCONV_OK = 0,
__GCONV_NOCONV,
__GCONV_NODB,
__GCONV_NOMEM,
__GCONV_EMPTY_INPUT,
__GCONV_FULL_OUTPUT,
__GCONV_ILLEGAL_INPUT,
__GCONV_INCOMPLETE_INPUT,
__GCONV_ILLEGAL_DESCRIPTOR,
__GCONV_INTERNAL_ERROR
};
enum
{
__GCONV_IS_LAST = 0x0001,
__GCONV_IGNORE_ERRORS = 0x0002
};
struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;
typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
__const unsigned char **, __const unsigned char *,
unsigned char **, size_t *, int, int);
typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);
typedef int (*__gconv_trans_fct) (struct __gconv_step *,
struct __gconv_step_data *, void *,
__const unsigned char *,
__const unsigned char **,
__const unsigned char *, unsigned char **,
size_t *);
typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
__const unsigned char *,
unsigned char *, unsigned char *);
typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
size_t *);
typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);
struct __gconv_trans_data
{
__gconv_trans_fct __trans_fct;
__gconv_trans_context_fct __trans_context_fct;
__gconv_trans_end_fct __trans_end_fct;
void *__data;
struct __gconv_trans_data *__next;
};
struct __gconv_step
{
struct __gconv_loaded_object *__shlib_handle;
__const char *__modname;
int __counter;
char *__from_name;
char *__to_name;
__gconv_fct __fct;
__gconv_init_fct __init_fct;
__gconv_end_fct __end_fct;
int __min_needed_from;
int __max_needed_from;
int __min_needed_to;
int __max_needed_to;
int __stateful;
void *__data;
};
struct __gconv_step_data
{
unsigned char *__outbuf;
unsigned char *__outbufend;
int __flags;
int __invocation_counter;
int __internal_use;
__mbstate_t *__statep;
__mbstate_t __state;
struct __gconv_trans_data *__trans;
};
typedef struct __gconv_info
{
size_t __nsteps;
struct __gconv_step *__steps;
__extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3
typedef union
{
struct __gconv_info __cd;
struct
{
struct __gconv_info __cd;
struct __gconv_step_data __data;
} __combined;
} _G_iconv_t;
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 33 "/usr/include/libio.h" 2 3
# 53 "/usr/include/libio.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdarg.h" 1 3
# 43 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 54 "/usr/include/libio.h" 2 3
# 160 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 170 "/usr/include/libio.h" 3
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
# 193 "/usr/include/libio.h" 3
};
enum __codecvt_result
{
__codecvt_ok,
__codecvt_partial,
__codecvt_error,
__codecvt_noconv
};
# 261 "/usr/include/libio.h" 3
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _blksize;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
# 305 "/usr/include/libio.h" 3
__off64_t _offset;
void *__pad1;
void *__pad2;
int _mode;
char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];
};
typedef struct _IO_FILE _IO_FILE;
struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 344 "/usr/include/libio.h" 3
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
size_t __n);
typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
typedef int __io_close_fn (void *__cookie);
typedef __io_read_fn cookie_read_function_t;
typedef __io_write_fn cookie_write_function_t;
typedef __io_seek_fn cookie_seek_function_t;
typedef __io_close_fn cookie_close_function_t;
typedef struct
{
__io_read_fn *read;
__io_write_fn *write;
__io_seek_fn *seek;
__io_close_fn *close;
} _IO_cookie_io_functions_t;
typedef _IO_cookie_io_functions_t cookie_io_functions_t;
struct _IO_cookie_file;
extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
void *__cookie, _IO_cookie_io_functions_t __fns);
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern wint_t __wunderflow (_IO_FILE *) ;
extern wint_t __wuflow (_IO_FILE *) ;
extern wint_t __woverflow (_IO_FILE *, wint_t) ;
# 426 "/usr/include/libio.h" 3
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;
extern int _IO_peekc_locked (_IO_FILE *__fp) ;
extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 456 "/usr/include/libio.h" 3
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
__gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
__gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;
extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;
extern void _IO_free_backup_area (_IO_FILE *) ;
# 75 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 2 3
typedef __gnuc_va_list __not_va_list__;
# 89 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
typedef _G_fpos_t fpos_t;
typedef _G_fpos64_t fpos64_t;
# 138 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 139 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 2 3
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
# 153 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
extern int remove (__const char *__filename) ;
extern int rename (__const char *__old, __const char *__new) ;
extern FILE *tmpfile (void) ;
# 169 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
extern FILE *tmpfile64 (void) ;
extern char *tmpnam (char *__s) ;
extern char *tmpnam_r (char *__s) ;
# 189 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx)
__attribute__ ((__malloc__));
extern int fclose (FILE *__stream) ;
extern int fflush (FILE *__stream) ;
extern int fflush_unlocked (FILE *__stream) ;
extern int fcloseall (void) ;
extern FILE *fopen (__const char *__restrict __filename,
__const char *__restrict __modes) ;
extern FILE *freopen (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream) ;
# 233 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
extern FILE *fopen64 (__const char *__restrict __filename,
__const char *__restrict __modes) ;
extern FILE *freopen64 (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream) ;
extern FILE *fdopen (int __fd, __const char *__modes) ;
extern FILE *fopencookie (void *__restrict __magic_cookie,
__const char *__restrict __modes,
_IO_cookie_io_functions_t __io_funcs) ;
extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) ;
extern FILE *open_memstream (char **__restrict __bufloc,
size_t *__restrict __sizeloc) ;
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
int __modes, size_t __n) ;
extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
size_t __size) ;
extern void setlinebuf (FILE *__stream) ;
extern int fprintf (FILE *__restrict __stream,
__const char *__restrict __format, ...) ;
extern int printf (__const char *__restrict __format, ...) ;
extern int sprintf (char *__restrict __s,
__const char *__restrict __format, ...) ;
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
;
extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int snprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 2, 0)));
extern int __asprintf (char **__restrict __ptr,
__const char *__restrict __fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
extern int asprintf (char **__restrict __ptr,
__const char *__restrict __fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
extern int vdprintf (int __fd, __const char *__restrict __fmt,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 2, 0)));
extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
extern int fscanf (FILE *__restrict __stream,
__const char *__restrict __format, ...) ;
extern int scanf (__const char *__restrict __format, ...) ;
extern int sscanf (__const char *__restrict __s,
__const char *__restrict __format, ...) ;
extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 2, 0)));
extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 1, 0)));
extern int vsscanf (__const char *__restrict __s,
__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 2, 0)));
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;
extern int getchar (void) ;
extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;
extern int fgetc_unlocked (FILE *__stream) ;
extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;
extern int putchar (int __c) ;
extern int fputc_unlocked (int __c, FILE *__stream) ;
extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;
extern int getw (FILE *__stream) ;
extern int putw (int __w, FILE *__stream) ;
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
;
extern char *fgets_unlocked (char *__restrict __s, int __n,
FILE *__restrict __stream) ;
extern char *gets (char *__s) ;
# 437 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
extern __ssize_t __getdelim (char **__restrict __lineptr,
size_t *__restrict __n, int __delimiter,
FILE *__restrict __stream) ;
extern __ssize_t getdelim (char **__restrict __lineptr,
size_t *__restrict __n, int __delimiter,
FILE *__restrict __stream) ;
extern __ssize_t getline (char **__restrict __lineptr,
size_t *__restrict __n,
FILE *__restrict __stream) ;
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
;
extern int fputs_unlocked (__const char *__restrict __s,
FILE *__restrict __stream) ;
extern int puts (__const char *__s) ;
extern int ungetc (int __c, FILE *__stream) ;
extern size_t fread (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __s) ;
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern int fseek (FILE *__stream, long int __off, int __whence) ;
extern long int ftell (FILE *__stream) ;
extern void rewind (FILE *__stream) ;
# 500 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
extern int fseeko (FILE *__stream, __off_t __off, int __whence) ;
extern __off_t ftello (FILE *__stream) ;
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
;
extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 534 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) ;
extern __off64_t ftello64 (FILE *__stream) ;
extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos)
;
extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos) ;
extern void clearerr (FILE *__stream) ;
extern int feof (FILE *__stream) ;
extern int ferror (FILE *__stream) ;
extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;
extern void perror (__const char *__s) ;
extern int sys_nerr;
extern __const char *__const sys_errlist[];
extern int _sys_nerr;
extern __const char *__const _sys_errlist[];
extern int fileno (FILE *__stream) ;
extern int fileno_unlocked (FILE *__stream) ;
extern FILE *popen (__const char *__command, __const char *__modes) ;
extern int pclose (FILE *__stream) ;
extern char *ctermid (char *__s) ;
extern char *cuserid (char *__s) ;
struct obstack;
extern int obstack_printf (struct obstack *__restrict __obstack,
__const char *__restrict __format, ...) ;
extern int obstack_vprintf (struct obstack *__restrict __obstack,
__const char *__restrict __format,
__gnuc_va_list __args) ;
extern void flockfile (FILE *__stream) ;
extern int ftrylockfile (FILE *__stream) ;
extern void funlockfile (FILE *__stream) ;
# 641 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 33 "/usr/include/bits/stdio.h" 3
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
extern __inline int
getchar (void)
{
return _IO_getc (stdin);
}
extern __inline int
getc_unlocked (FILE *__fp)
{
return ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}
extern __inline int
getchar_unlocked (void)
{
return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}
extern __inline int
putchar (int __c)
{
return _IO_putc (__c, stdout);
}
extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putchar_unlocked (int __c)
{
return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
extern __inline __ssize_t
getline (char **__lineptr, size_t *__n, FILE *__stream)
{
return __getdelim (__lineptr, __n, '\n', __stream);
}
extern __inline int
feof_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x10) != 0);
}
extern __inline int
ferror_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x20) != 0);
}
# 642 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdio.h" 2 3
# 70 "s/linux.h" 2
# 534 "config.h" 2
# 544 "config.h"
# 1 "m/intel386.h" 1
# 545 "config.h" 2
# 32 "ralloc.c" 2
# 1 "/usr/include/unistd.h" 1 3
# 28 "/usr/include/unistd.h" 3
# 175 "/usr/include/unistd.h" 3
# 1 "/usr/include/bits/posix_opt.h" 1 3
# 176 "/usr/include/unistd.h" 2 3
# 1 "/usr/include/bits/environments.h" 1 3
# 23 "/usr/include/bits/environments.h" 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 24 "/usr/include/bits/environments.h" 2 3
# 180 "/usr/include/unistd.h" 2 3
# 193 "/usr/include/unistd.h" 3
typedef __ssize_t ssize_t;
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 200 "/usr/include/unistd.h" 2 3
typedef __gid_t gid_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
typedef __off64_t off64_t;
typedef __useconds_t useconds_t;
typedef __pid_t pid_t;
typedef __intptr_t intptr_t;
typedef __socklen_t socklen_t;
# 260 "/usr/include/unistd.h" 3
extern int access (__const char *__name, int __type) ;
extern int euidaccess (__const char *__name, int __type) ;
# 290 "/usr/include/unistd.h" 3
extern __off_t lseek (int __fd, __off_t __offset, int __whence) ;
# 302 "/usr/include/unistd.h" 3
extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) ;
extern int close (int __fd) ;
extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset)
;
extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
__off_t __offset) ;
# 340 "/usr/include/unistd.h" 3
extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
__off64_t __offset) ;
extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
__off64_t __offset) ;
extern int pipe (int __pipedes[2]) ;
# 362 "/usr/include/unistd.h" 3
extern unsigned int alarm (unsigned int __seconds) ;
# 371 "/usr/include/unistd.h" 3
extern unsigned int sleep (unsigned int __seconds) ;
extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
;
extern int usleep (__useconds_t __useconds) ;
extern int pause (void) ;
extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
;
extern int fchown (int __fd, __uid_t __owner, __gid_t __group) ;
extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
;
extern int chdir (__const char *__path) ;
extern int fchdir (int __fd) ;
# 423 "/usr/include/unistd.h" 3
extern char *getcwd (char *__buf, size_t __size) ;
extern char *get_current_dir_name (void) ;
extern char *getwd (char *__buf) ;
extern int dup (int __fd) ;
extern int dup2 (int __fd, int __fd2) ;
extern char **__environ;
extern char **environ;
extern int execve (__const char *__path, char *__const __argv[],
char *__const __envp[]) ;
extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
;
extern int execv (__const char *__path, char *__const __argv[]) ;
extern int execle (__const char *__path, __const char *__arg, ...) ;
extern int execl (__const char *__path, __const char *__arg, ...) ;
extern int execvp (__const char *__file, char *__const __argv[]) ;
extern int execlp (__const char *__file, __const char *__arg, ...) ;
extern int nice (int __inc) ;
extern void _exit (int __status) __attribute__ ((__noreturn__));
# 1 "/usr/include/bits/confname.h" 1 3
# 25 "/usr/include/bits/confname.h" 3
enum
{
_PC_LINK_MAX,
_PC_MAX_CANON,
_PC_MAX_INPUT,
_PC_NAME_MAX,
_PC_PATH_MAX,
_PC_PIPE_BUF,
_PC_CHOWN_RESTRICTED,
_PC_NO_TRUNC,
_PC_VDISABLE,
_PC_SYNC_IO,
_PC_ASYNC_IO,
_PC_PRIO_IO,
_PC_SOCK_MAXBUF,
_PC_FILESIZEBITS,
_PC_REC_INCR_XFER_SIZE,
_PC_REC_MAX_XFER_SIZE,
_PC_REC_MIN_XFER_SIZE,
_PC_REC_XFER_ALIGN,
_PC_ALLOC_SIZE_MIN,
_PC_SYMLINK_MAX
};
enum
{
_SC_ARG_MAX,
_SC_CHILD_MAX,
_SC_CLK_TCK,
_SC_NGROUPS_MAX,
_SC_OPEN_MAX,
_SC_STREAM_MAX,
_SC_TZNAME_MAX,
_SC_JOB_CONTROL,
_SC_SAVED_IDS,
_SC_REALTIME_SIGNALS,
_SC_PRIORITY_SCHEDULING,
_SC_TIMERS,
_SC_ASYNCHRONOUS_IO,
_SC_PRIORITIZED_IO,
_SC_SYNCHRONIZED_IO,
_SC_FSYNC,
_SC_MAPPED_FILES,
_SC_MEMLOCK,
_SC_MEMLOCK_RANGE,
_SC_MEMORY_PROTECTION,
_SC_MESSAGE_PASSING,
_SC_SEMAPHORES,
_SC_SHARED_MEMORY_OBJECTS,
_SC_AIO_LISTIO_MAX,
_SC_AIO_MAX,
_SC_AIO_PRIO_DELTA_MAX,
_SC_DELAYTIMER_MAX,
_SC_MQ_OPEN_MAX,
_SC_MQ_PRIO_MAX,
_SC_VERSION,
_SC_PAGESIZE,
_SC_RTSIG_MAX,
_SC_SEM_NSEMS_MAX,
_SC_SEM_VALUE_MAX,
_SC_SIGQUEUE_MAX,
_SC_TIMER_MAX,
_SC_BC_BASE_MAX,
_SC_BC_DIM_MAX,
_SC_BC_SCALE_MAX,
_SC_BC_STRING_MAX,
_SC_COLL_WEIGHTS_MAX,
_SC_EQUIV_CLASS_MAX,
_SC_EXPR_NEST_MAX,
_SC_LINE_MAX,
_SC_RE_DUP_MAX,
_SC_CHARCLASS_NAME_MAX,
_SC_2_VERSION,
_SC_2_C_BIND,
_SC_2_C_DEV,
_SC_2_FORT_DEV,
_SC_2_FORT_RUN,
_SC_2_SW_DEV,
_SC_2_LOCALEDEF,
_SC_PII,
_SC_PII_XTI,
_SC_PII_SOCKET,
_SC_PII_INTERNET,
_SC_PII_OSI,
_SC_POLL,
_SC_SELECT,
_SC_UIO_MAXIOV,
_SC_IOV_MAX = _SC_UIO_MAXIOV,
_SC_PII_INTERNET_STREAM,
_SC_PII_INTERNET_DGRAM,
_SC_PII_OSI_COTS,
_SC_PII_OSI_CLTS,
_SC_PII_OSI_M,
_SC_T_IOV_MAX,
_SC_THREADS,
_SC_THREAD_SAFE_FUNCTIONS,
_SC_GETGR_R_SIZE_MAX,
_SC_GETPW_R_SIZE_MAX,
_SC_LOGIN_NAME_MAX,
_SC_TTY_NAME_MAX,
_SC_THREAD_DESTRUCTOR_ITERATIONS,
_SC_THREAD_KEYS_MAX,
_SC_THREAD_STACK_MIN,
_SC_THREAD_THREADS_MAX,
_SC_THREAD_ATTR_STACKADDR,
_SC_THREAD_ATTR_STACKSIZE,
_SC_THREAD_PRIORITY_SCHEDULING,
_SC_THREAD_PRIO_INHERIT,
_SC_THREAD_PRIO_PROTECT,
_SC_THREAD_PROCESS_SHARED,
_SC_NPROCESSORS_CONF,
_SC_NPROCESSORS_ONLN,
_SC_PHYS_PAGES,
_SC_AVPHYS_PAGES,
_SC_ATEXIT_MAX,
_SC_PASS_MAX,
_SC_XOPEN_VERSION,
_SC_XOPEN_XCU_VERSION,
_SC_XOPEN_UNIX,
_SC_XOPEN_CRYPT,
_SC_XOPEN_ENH_I18N,
_SC_XOPEN_SHM,
_SC_2_CHAR_TERM,
_SC_2_C_VERSION,
_SC_2_UPE,
_SC_XOPEN_XPG2,
_SC_XOPEN_XPG3,
_SC_XOPEN_XPG4,
_SC_CHAR_BIT,
_SC_CHAR_MAX,
_SC_CHAR_MIN,
_SC_INT_MAX,
_SC_INT_MIN,
_SC_LONG_BIT,
_SC_WORD_BIT,
_SC_MB_LEN_MAX,
_SC_NZERO,
_SC_SSIZE_MAX,
_SC_SCHAR_MAX,
_SC_SCHAR_MIN,
_SC_SHRT_MAX,
_SC_SHRT_MIN,
_SC_UCHAR_MAX,
_SC_UINT_MAX,
_SC_ULONG_MAX,
_SC_USHRT_MAX,
_SC_NL_ARGMAX,
_SC_NL_LANGMAX,
_SC_NL_MSGMAX,
_SC_NL_NMAX,
_SC_NL_SETMAX,
_SC_NL_TEXTMAX,
_SC_XBS5_ILP32_OFF32,
_SC_XBS5_ILP32_OFFBIG,
_SC_XBS5_LP64_OFF64,
_SC_XBS5_LPBIG_OFFBIG,
_SC_XOPEN_LEGACY,
_SC_XOPEN_REALTIME,
_SC_XOPEN_REALTIME_THREADS,
_SC_ADVISORY_INFO,
_SC_BARRIERS,
_SC_BASE,
_SC_C_LANG_SUPPORT,
_SC_C_LANG_SUPPORT_R,
_SC_CLOCK_SELECTION,
_SC_CPUTIME,
_SC_THREAD_CPUTIME,
_SC_DEVICE_IO,
_SC_DEVICE_SPECIFIC,
_SC_DEVICE_SPECIFIC_R,
_SC_FD_MGMT,
_SC_FIFO,
_SC_PIPE,
_SC_FILE_ATTRIBUTES,
_SC_FILE_LOCKING,
_SC_FILE_SYSTEM,
_SC_MONOTONIC_CLOCK,
_SC_MULTI_PROCESS,
_SC_SINGLE_PROCESS,
_SC_NETWORKING,
_SC_READER_WRITER_LOCKS,
_SC_SPIN_LOCKS,
_SC_REGEXP,
_SC_REGEX_VERSION,
_SC_SHELL,
_SC_SIGNALS,
_SC_SPAWN,
_SC_SPORADIC_SERVER,
_SC_THREAD_SPORADIC_SERVER,
_SC_SYSTEM_DATABASE,
_SC_SYSTEM_DATABASE_R,
_SC_TIMEOUTS,
_SC_TYPED_MEMORY_OBJECTS,
_SC_USER_GROUPS,
_SC_USER_GROUPS_R,
_SC_2_PBS,
_SC_2_PBS_ACCOUNTING,
_SC_2_PBS_LOCATE,
_SC_2_PBS_MESSAGE,
_SC_2_PBS_TRACK,
_SC_SYMLOOP_MAX,
_SC_STREAMS,
_SC_2_PBS_CHECKPOINT,
_SC_V6_ILP32_OFF32,
_SC_V6_ILP32_OFFBIG,
_SC_V6_LP64_OFF64,
_SC_V6_LPBIG_OFFBIG,
_SC_HOST_NAME_MAX,
_SC_TRACE,
_SC_TRACE_EVENT_FILTER,
_SC_TRACE_INHERIT,
_SC_TRACE_LOG
};
enum
{
_CS_PATH,
_CS_LFS_CFLAGS = 1000,
_CS_LFS_LDFLAGS,
_CS_LFS_LIBS,
_CS_LFS_LINTFLAGS,
_CS_LFS64_CFLAGS,
_CS_LFS64_LDFLAGS,
_CS_LFS64_LIBS,
_CS_LFS64_LINTFLAGS,
_CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
_CS_XBS5_ILP32_OFF32_LDFLAGS,
_CS_XBS5_ILP32_OFF32_LIBS,
_CS_XBS5_ILP32_OFF32_LINTFLAGS,
_CS_XBS5_ILP32_OFFBIG_CFLAGS,
_CS_XBS5_ILP32_OFFBIG_LDFLAGS,
_CS_XBS5_ILP32_OFFBIG_LIBS,
_CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
_CS_XBS5_LP64_OFF64_CFLAGS,
_CS_XBS5_LP64_OFF64_LDFLAGS,
_CS_XBS5_LP64_OFF64_LIBS,
_CS_XBS5_LP64_OFF64_LINTFLAGS,
_CS_XBS5_LPBIG_OFFBIG_CFLAGS,
_CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
_CS_XBS5_LPBIG_OFFBIG_LIBS,
_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
_CS_POSIX_V6_ILP32_OFF32_CFLAGS,
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
_CS_POSIX_V6_ILP32_OFF32_LIBS,
_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_LIBS,
_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
_CS_POSIX_V6_LP64_OFF64_CFLAGS,
_CS_POSIX_V6_LP64_OFF64_LDFLAGS,
_CS_POSIX_V6_LP64_OFF64_LIBS,
_CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
_CS_V6_WIDTH_RESTRICTED_ENVS
};
# 501 "/usr/include/unistd.h" 2 3
extern long int pathconf (__const char *__path, int __name) ;
extern long int fpathconf (int __fd, int __name) ;
extern long int sysconf (int __name) __attribute__ ((__const__));
extern size_t confstr (int __name, char *__buf, size_t __len) ;
extern __pid_t getpid (void) ;
extern __pid_t getppid (void) ;
extern __pid_t getpgrp (void) ;
# 536 "/usr/include/unistd.h" 3
extern __pid_t __getpgid (__pid_t __pid) ;
extern __pid_t getpgid (__pid_t __pid) ;
extern int setpgid (__pid_t __pid, __pid_t __pgid) ;
# 562 "/usr/include/unistd.h" 3
extern int setpgrp (void) ;
# 580 "/usr/include/unistd.h" 3
extern __pid_t setsid (void) ;
extern __pid_t getsid (__pid_t __pid) ;
extern __uid_t getuid (void) ;
extern __uid_t geteuid (void) ;
extern __gid_t getgid (void) ;
extern __gid_t getegid (void) ;
extern int getgroups (int __size, __gid_t __list[]) ;
extern int group_member (__gid_t __gid) ;
extern int setuid (__uid_t __uid) ;
extern int setreuid (__uid_t __ruid, __uid_t __euid) ;
extern int seteuid (__uid_t __uid) ;
extern int setgid (__gid_t __gid) ;
extern int setregid (__gid_t __rgid, __gid_t __egid) ;
extern int setegid (__gid_t __gid) ;
extern __pid_t fork (void) ;
extern __pid_t vfork (void) ;
extern char *ttyname (int __fd) ;
extern int ttyname_r (int __fd, char *__buf, size_t __buflen) ;
extern int isatty (int __fd) ;
extern int ttyslot (void) ;
extern int link (__const char *__from, __const char *__to) ;
extern int symlink (__const char *__from, __const char *__to) ;
extern int readlink (__const char *__restrict __path, char *__restrict __buf,
size_t __len) ;
extern int unlink (__const char *__name) ;
extern int rmdir (__const char *__path) ;
extern __pid_t tcgetpgrp (int __fd) ;
extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) ;
extern char *getlogin (void) ;
extern int getlogin_r (char *__name, size_t __name_len) ;
extern int setlogin (__const char *__name) ;
# 726 "/usr/include/unistd.h" 3
# 1 "/usr/include/getopt.h" 1 3
# 47 "/usr/include/getopt.h" 3
extern char *optarg;
# 61 "/usr/include/getopt.h" 3
extern int optind;
extern int opterr;
extern int optopt;
# 145 "/usr/include/getopt.h" 3
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
# 727 "/usr/include/unistd.h" 2 3
extern int gethostname (char *__name, size_t __len) ;
extern int sethostname (__const char *__name, size_t __len) ;
extern int sethostid (long int __id) ;
extern int getdomainname (char *__name, size_t __len) ;
extern int setdomainname (__const char *__name, size_t __len) ;
extern int vhangup (void) ;
extern int revoke (__const char *__file) ;
extern int profil (unsigned short int *__sample_buffer, size_t __size,
size_t __offset, unsigned int __scale) ;
extern int acct (__const char *__name) ;
extern char *getusershell (void) ;
extern void endusershell (void) ;
extern void setusershell (void) ;
extern int daemon (int __nochdir, int __noclose) ;
extern int chroot (__const char *__path) ;
extern char *getpass (__const char *__prompt) ;
extern int fsync (int __fd) ;
extern long int gethostid (void) ;
extern void sync (void) ;
extern int getpagesize (void) __attribute__ ((__const__));
extern int truncate (__const char *__file, __off_t __length) ;
# 836 "/usr/include/unistd.h" 3
extern int truncate64 (__const char *__file, __off64_t __length) ;
extern int ftruncate (int __fd, __off_t __length) ;
# 851 "/usr/include/unistd.h" 3
extern int ftruncate64 (int __fd, __off64_t __length) ;
extern int getdtablesize (void) ;
# 866 "/usr/include/unistd.h" 3
extern int brk (void *__addr) ;
extern void *sbrk (intptr_t __delta) ;
# 887 "/usr/include/unistd.h" 3
extern long int syscall (long int __sysno, ...) ;
# 907 "/usr/include/unistd.h" 3
extern int lockf (int __fd, int __cmd, __off_t __len) ;
# 917 "/usr/include/unistd.h" 3
extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
# 938 "/usr/include/unistd.h" 3
extern int fdatasync (int __fildes) ;
extern char *crypt (__const char *__key, __const char *__salt) ;
extern void encrypt (char *__block, int __edflag) ;
extern void swab (__const void *__restrict __from, void *__restrict __to,
ssize_t __n) ;
extern char *ctermid (char *__s) ;
# 983 "/usr/include/unistd.h" 3
extern int pthread_atfork (void (*__prepare) (void),
void (*__parent) (void),
void (*__child) (void)) ;
# 36 "ralloc.c" 2
# 1 "lisp.h" 1
# 37 "lisp.h"
# 1 "/usr/include/stdlib.h" 1 3
# 33 "/usr/include/stdlib.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
# 1 "/usr/include/bits/waitflags.h" 1 3
# 43 "/usr/include/stdlib.h" 2 3
# 1 "/usr/include/bits/waitstatus.h" 1 3
# 63 "/usr/include/bits/waitstatus.h" 3
# 1 "/usr/include/endian.h" 1 3
# 37 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 38 "/usr/include/endian.h" 2 3
# 64 "/usr/include/bits/waitstatus.h" 2 3
union wait
{
int w_status;
struct
{
unsigned int __w_termsig:7;
unsigned int __w_coredump:1;
unsigned int __w_retcode:8;
unsigned int:16;
} __wait_terminated;
struct
{
unsigned int __w_stopval:8;
unsigned int __w_stopsig:8;
unsigned int:16;
} __wait_stopped;
};
# 44 "/usr/include/stdlib.h" 2 3
# 68 "/usr/include/stdlib.h" 3
typedef union
{
union wait *__uptr;
int *__iptr;
} __WAIT_STATUS __attribute__ ((__transparent_union__));
# 94 "/usr/include/stdlib.h" 3
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
__extension__ typedef struct
{
long long int quot;
long long int rem;
} lldiv_t;
# 133 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) ;
extern double atof (__const char *__nptr) __attribute__ ((__pure__));
extern int atoi (__const char *__nptr) __attribute__ ((__pure__));
extern long int atol (__const char *__nptr) __attribute__ ((__pure__));
__extension__ extern long long int atoll (__const char *__nptr)
__attribute__ ((__pure__));
extern double strtod (__const char *__restrict __nptr,
char **__restrict __endptr) ;
extern float strtof (__const char *__restrict __nptr,
char **__restrict __endptr) ;
extern long double strtold (__const char *__restrict __nptr,
char **__restrict __endptr) ;
extern long int strtol (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
extern unsigned long int strtoul (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
__extension__
extern long long int strtoq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
__extension__
extern long long int strtoll (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
# 211 "/usr/include/stdlib.h" 3
# 1 "/usr/include/xlocale.h" 1 3
# 28 "/usr/include/xlocale.h" 3
typedef struct __locale_struct
{
struct locale_data *__locales[13];
const unsigned short int *__ctype_b;
const int *__ctype_tolower;
const int *__ctype_toupper;
} *__locale_t;
# 212 "/usr/include/stdlib.h" 2 3
extern long int __strtol_l (__const char *__restrict __nptr,
char **__restrict __endptr, int __base,
__locale_t __loc) ;
extern unsigned long int __strtoul_l (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, __locale_t __loc) ;
__extension__
extern long long int __strtoll_l (__const char *__restrict __nptr,
char **__restrict __endptr, int __base,
__locale_t __loc) ;
__extension__
extern unsigned long long int __strtoull_l (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, __locale_t __loc)
;
extern double __strtod_l (__const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc)
;
extern float __strtof_l (__const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc) ;
extern long double __strtold_l (__const char *__restrict __nptr,
char **__restrict __endptr,
__locale_t __loc) ;
extern double __strtod_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
;
extern float __strtof_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
;
extern long double __strtold_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __group) ;
extern long int __strtol_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
__extension__
extern unsigned long long int __strtoull_internal (__const char *
__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
;
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
extern __inline float
strtof (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtof_internal (__nptr, __endptr, 0);
}
extern __inline long double
strtold (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtold_internal (__nptr, __endptr, 0);
}
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
atof (__const char *__nptr)
{
return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
return strtol (__nptr, (char **) ((void *)0), 10);
}
__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 384 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) ;
extern long int a64l (__const char *__s) __attribute__ ((__pure__));
# 1 "/usr/include/sys/types.h" 1 3
# 28 "/usr/include/sys/types.h" 3
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
typedef __ino64_t ino64_t;
typedef __dev_t dev_t;
# 71 "/usr/include/sys/types.h" 3
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
# 104 "/usr/include/sys/types.h" 3
typedef __id_t id_t;
# 115 "/usr/include/sys/types.h" 3
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 132 "/usr/include/sys/types.h" 3
# 1 "/usr/include/time.h" 1 3
# 59 "/usr/include/time.h" 3
typedef __clock_t clock_t;
# 70 "/usr/include/time.h" 3
typedef __time_t time_t;
# 82 "/usr/include/time.h" 3
typedef __clockid_t clockid_t;
# 94 "/usr/include/time.h" 3
typedef __timer_t timer_t;
# 133 "/usr/include/sys/types.h" 2 3
typedef __suseconds_t suseconds_t;
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 147 "/usr/include/sys/types.h" 2 3
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 190 "/usr/include/sys/types.h" 3
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 215 "/usr/include/sys/types.h" 3
# 1 "/usr/include/sys/select.h" 1 3
# 31 "/usr/include/sys/select.h" 3
# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3
typedef __sigset_t sigset_t;
# 1 "/usr/include/time.h" 1 3
# 106 "/usr/include/time.h" 3
struct timespec
{
__time_t tv_sec;
long int tv_nsec;
};
# 45 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/time.h" 1 3
# 67 "/usr/include/bits/time.h" 3
struct timeval
{
__time_t tv_sec;
__suseconds_t tv_usec;
};
# 47 "/usr/include/sys/select.h" 2 3
# 55 "/usr/include/sys/select.h" 3
typedef long int __fd_mask;
typedef struct
{
__fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
} fd_set;
typedef __fd_mask fd_mask;
# 95 "/usr/include/sys/select.h" 3
extern int select (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout) ;
extern int pselect (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
const struct timespec *__restrict __timeout,
const __sigset_t *__restrict __sigmask) ;
# 216 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/sysmacros.h" 1 3
# 219 "/usr/include/sys/types.h" 2 3
typedef __blksize_t blksize_t;
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 257 "/usr/include/sys/types.h" 3
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;
# 391 "/usr/include/stdlib.h" 2 3
extern long int random (void) ;
extern void srandom (unsigned int __seed) ;
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) ;
extern char *setstate (char *__statebuf) ;
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf,
int32_t *__restrict __result) ;
extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf) ;
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf) ;
extern int rand (void) ;
extern void srand (unsigned int __seed) ;
extern int rand_r (unsigned int *__seed) ;
extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;
extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;
extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;
extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;
struct drand48_data
{
unsigned short int __x[3];
unsigned short int __old_x[3];
unsigned short int __c;
unsigned short int __init;
unsigned long long int __a;
};
extern int drand48_r (struct drand48_data *__restrict __buffer,
double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) ;
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
;
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) ;
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer) ;
# 527 "/usr/include/stdlib.h" 3
extern void *malloc (size_t __size) __attribute__ ((__malloc__));
extern void *calloc (size_t __nmemb, size_t __size)
__attribute__ ((__malloc__));
extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__));
extern void free (void *__ptr) ;
extern void cfree (void *__ptr) ;
# 1 "/usr/include/alloca.h" 1 3
# 25 "/usr/include/alloca.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3
extern void *alloca (size_t __size) ;
# 547 "/usr/include/stdlib.h" 2 3
extern void *valloc (size_t __size) __attribute__ ((__malloc__));
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
__attribute__ ((__malloc__));
extern void abort (void) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) ;
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
;
extern void exit (int __status) __attribute__ ((__noreturn__));
extern void _Exit (int __status) __attribute__ ((__noreturn__));
extern char *getenv (__const char *__name) ;
extern char *__secure_getenv (__const char *__name) ;
extern int putenv (char *__string) ;
extern int setenv (__const char *__name, __const char *__value, int __replace)
;
extern int unsetenv (__const char *__name) ;
extern int clearenv (void) ;
# 623 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;
extern int mkstemp (char *__template) ;
# 640 "/usr/include/stdlib.h" 3
extern int mkstemp64 (char *__template) ;
# 650 "/usr/include/stdlib.h" 3
extern char *mkdtemp (char *__template) ;
extern int system (__const char *__command) ;
extern char *canonicalize_file_name (__const char *__name) ;
# 672 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name,
char *__restrict __resolved) ;
typedef int (*__compar_fn_t) (__const void *, __const void *);
typedef __compar_fn_t comparison_fn_t;
extern void *bsearch (__const void *__key, __const void *__base,
size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar);
extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
__extension__ extern long long int llabs (long long int __x)
__attribute__ ((__const__));
extern div_t div (int __numer, int __denom)
__attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__const__));
__extension__ extern lldiv_t lldiv (long long int __numer,
long long int __denom)
__attribute__ ((__const__));
# 728 "/usr/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) ;
extern char *gcvt (double __value, int __ndigit, char *__buf) ;
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) ;
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len) ;
extern int mblen (__const char *__s, size_t __n) ;
extern int mbtowc (wchar_t *__restrict __pwc,
__const char *__restrict __s, size_t __n) ;
extern int wctomb (char *__s, wchar_t __wchar) ;
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
__const char *__restrict __s, size_t __n) ;
extern size_t wcstombs (char *__restrict __s,
__const wchar_t *__restrict __pwcs, size_t __n)
;
extern int rpmatch (__const char *__response) ;
# 808 "/usr/include/stdlib.h" 3
extern int getsubopt (char **__restrict __optionp,
char *__const *__restrict __tokens,
char **__restrict __valuep) ;
extern void setkey (__const char *__key) ;
extern int posix_openpt (int __oflag) ;
extern int grantpt (int __fd) ;
extern int unlockpt (int __fd) ;
extern char *ptsname (int __fd) ;
extern int ptsname_r (int __fd, char *__buf, size_t __buflen) ;
extern int getpt (void) ;
extern int getloadavg (double __loadavg[], int __nelem) ;
# 38 "lisp.h" 2
# 1 "/usr/include/string.h" 1 3
# 28 "/usr/include/string.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3
extern void *memcpy (void *__restrict __dest,
__const void *__restrict __src, size_t __n) ;
extern void *memmove (void *__dest, __const void *__src, size_t __n)
;
extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
int __c, size_t __n)
;
extern void *memset (void *__s, int __c, size_t __n) ;
extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
__attribute__ ((__pure__));
extern void *memchr (__const void *__s, int __c, size_t __n)
__attribute__ ((__pure__));
extern void *rawmemchr (__const void *__s, int __c) __attribute__ ((__pure__));
extern void *memrchr (__const void *__s, int __c, size_t __n)
__attribute__ ((__pure__));
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
;
extern char *strncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
;
extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
size_t __n) ;
extern int strcmp (__const char *__s1, __const char *__s2)
__attribute__ ((__pure__));
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
__attribute__ ((__pure__));
extern int strcoll (__const char *__s1, __const char *__s2)
__attribute__ ((__pure__));
extern size_t strxfrm (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
# 111 "/usr/include/string.h" 3
extern int __strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
__attribute__ ((__pure__));
extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n,
__locale_t __l) ;
extern char *strdup (__const char *__s) __attribute__ ((__malloc__));
extern char *strndup (__const char *__string, size_t __n)
__attribute__ ((__malloc__));
# 155 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__));
extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__));
extern char *strchrnul (__const char *__s, int __c) __attribute__ ((__pure__));
extern size_t strcspn (__const char *__s, __const char *__reject)
__attribute__ ((__pure__));
extern size_t strspn (__const char *__s, __const char *__accept)
__attribute__ ((__pure__));
extern char *strpbrk (__const char *__s, __const char *__accept)
__attribute__ ((__pure__));
extern char *strstr (__const char *__haystack, __const char *__needle)
__attribute__ ((__pure__));
extern char *strcasestr (__const char *__haystack, __const char *__needle)
__attribute__ ((__pure__));
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
;
extern char *__strtok_r (char *__restrict __s,
__const char *__restrict __delim,
char **__restrict __save_ptr) ;
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
char **__restrict __save_ptr) ;
extern void *memmem (__const void *__haystack, size_t __haystacklen,
__const void *__needle, size_t __needlelen)
__attribute__ ((__pure__));
extern void *__mempcpy (void *__restrict __dest,
__const void *__restrict __src, size_t __n) ;
extern void *mempcpy (void *__restrict __dest,
__const void *__restrict __src, size_t __n) ;
extern size_t strlen (__const char *__s) __attribute__ ((__pure__));
extern size_t strnlen (__const char *__string, size_t __maxlen)
__attribute__ ((__pure__));
extern char *strerror (int __errnum) ;
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern void __bzero (void *__s, size_t __n) ;
extern void bcopy (__const void *__src, void *__dest, size_t __n) ;
extern void bzero (void *__s, size_t __n) ;
extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
__attribute__ ((__pure__));
extern char *index (__const char *__s, int __c) __attribute__ ((__pure__));
extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__));
extern int ffs (int __i) __attribute__ ((__const__));
extern int ffsl (long int __l) __attribute__ ((__const__));
__extension__ extern int ffsll (long long int __ll)
__attribute__ ((__const__));
extern int strcasecmp (__const char *__s1, __const char *__s2)
__attribute__ ((__pure__));
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
__attribute__ ((__pure__));
extern int __strcasecmp_l (__const char *__s1, __const char *__s2,
__locale_t __loc) __attribute__ ((__pure__));
extern int __strncasecmp_l (__const char *__s1, __const char *__s2,
size_t __n, __locale_t __loc)
__attribute__ ((__pure__));
extern char *strsep (char **__restrict __stringp,
__const char *__restrict __delim) ;
extern int strverscmp (__const char *__s1, __const char *__s2)
__attribute__ ((__pure__));
extern char *strsignal (int __sig) ;
extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
;
extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
;
extern char *__stpncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
extern char *stpncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
extern char *strfry (char *__string) ;
extern void *memfrob (void *__s, size_t __n) ;
extern char *basename (__const char *__filename) ;
# 357 "/usr/include/string.h" 3
# 1 "/usr/include/bits/string.h" 1 3
# 358 "/usr/include/string.h" 2 3
# 1 "/usr/include/bits/string2.h" 1 3
# 387 "/usr/include/bits/string2.h" 3
extern void *__rawmemchr (const void *__s, int __c);
# 917 "/usr/include/bits/string2.h" 3
extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, int __reject)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject)
++__result;
return __result;
}
extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
int __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, int __reject1, int __reject2)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2)
++__result;
return __result;
}
extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
int __reject2, int __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, int __reject1, int __reject2,
int __reject3)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2 && __s[__result] != __reject3)
++__result;
return __result;
}
# 974 "/usr/include/bits/string2.h" 3
extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, int __accept)
{
register size_t __result = 0;
while (__s[__result] == __accept)
++__result;
return __result;
}
extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
int __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, int __accept1, int __accept2)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2)
++__result;
return __result;
}
extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
int __accept2, int __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2
|| __s[__result] == __accept3)
++__result;
return __result;
}
# 1031 "/usr/include/bits/string2.h" 3
extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
int __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
int __accept2, int __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
int __accept3)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
&& *__s != __accept3)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1083 "/usr/include/bits/string2.h" 3
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
char *__result;
if (__s == ((void *)0))
__s = *__nextp;
while (*__s == __sep)
++__s;
__result = ((void *)0);
if (*__s != '\0')
{
__result = __s++;
while (*__s != '\0')
if (*__s++ == __sep)
{
__s[-1] = '\0';
break;
}
*__nextp = __s;
}
return __result;
}
# 1115 "/usr/include/bits/string2.h" 3
extern char *__strsep_g (char **__stringp, __const char *__delim);
# 1133 "/usr/include/bits/string2.h" 3
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
register char *__retval = *__s;
if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
*(*__s)++ = '\0';
return __retval;
}
extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
register char *__retval = *__s;
if (__retval != ((void *)0))
{
register char *__cp = __retval;
while (1)
{
if (*__cp == '\0')
{
__cp = ((void *)0);
break;
}
if (*__cp == __reject1 || *__cp == __reject2)
{
*__cp++ = '\0';
break;
}
++__cp;
}
*__s = __cp;
}
return __retval;
}
extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
register char *__retval = *__s;
if (__retval != ((void *)0))
{
register char *__cp = __retval;
while (1)
{
if (*__cp == '\0')
{
__cp = ((void *)0);
break;
}
if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
{
*__cp++ = '\0';
break;
}
++__cp;
}
*__s = __cp;
}
return __retval;
}
# 1214 "/usr/include/bits/string2.h" 3
extern char *__strdup (__const char *__string) __attribute__ ((__malloc__));
# 1233 "/usr/include/bits/string2.h" 3
extern char *__strndup (__const char *__string, size_t __n)
__attribute__ ((__malloc__));
# 361 "/usr/include/string.h" 2 3
# 39 "lisp.h" 2
# 1 "/usr/include/ctype.h" 1 3
# 29 "/usr/include/ctype.h" 3
# 47 "/usr/include/ctype.h" 3
enum
{
_ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
_ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
_ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
_ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
_ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
_ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
_ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
_ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
_ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
_IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
_ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
_ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
};
# 75 "/usr/include/ctype.h" 3
extern __const unsigned short int *__ctype_b;
extern __const __int32_t *__ctype_tolower;
extern __const __int32_t *__ctype_toupper;
# 91 "/usr/include/ctype.h" 3
extern int isalnum (int) ;
extern int isalpha (int) ;
extern int iscntrl (int) ;
extern int isdigit (int) ;
extern int islower (int) ;
extern int isgraph (int) ;
extern int isprint (int) ;
extern int ispunct (int) ;
extern int isspace (int) ;
extern int isupper (int) ;
extern int isxdigit (int) ;
extern int isblank (int) ;
extern int tolower (int __c) ;
extern int toupper (int __c) ;
extern int isascii (int __c) ;
extern int toascii (int __c) ;
extern int _toupper (int) ;
extern int _tolower (int) ;
# 167 "/usr/include/ctype.h" 3
extern __inline int
tolower (int __c)
{
return __c >= -128 && __c < 256 ? __ctype_tolower[__c] : __c;
}
extern __inline int
toupper (int __c)
{
return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
}
# 223 "/usr/include/ctype.h" 3
extern int __isalnum_l (int, __locale_t) ;
extern int __isalpha_l (int, __locale_t) ;
extern int __iscntrl_l (int, __locale_t) ;
extern int __isdigit_l (int, __locale_t) ;
extern int __islower_l (int, __locale_t) ;
extern int __isgraph_l (int, __locale_t) ;
extern int __isprint_l (int, __locale_t) ;
extern int __ispunct_l (int, __locale_t) ;
extern int __isspace_l (int, __locale_t) ;
extern int __isupper_l (int, __locale_t) ;
extern int __isxdigit_l (int, __locale_t) ;
extern int __isblank_l (int, __locale_t) ;
extern int __tolower_l (int __c, __locale_t __l) ;
extern int __toupper_l (int __c, __locale_t __l) ;
# 276 "/usr/include/ctype.h" 3
# 41 "lisp.h" 2
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdarg.h" 1 3
# 110 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 42 "lisp.h" 2
# 56 "lisp.h"
typedef struct dynarr
{
void *base; int elsize; int cur; int largest; int max;
} Dynarr;
void *Dynarr_newf (int elsize);
void Dynarr_resize (void *dy, int size);
void Dynarr_insert_many (void *d, const void *el, int len, int start);
void Dynarr_delete_many (void *d, int start, int len);
void Dynarr_free (void *d);
# 94 "lisp.h"
extern int Dynarr_min_size;
# 1 "symsinit.h" 1
# 28 "symsinit.h"
void init_data_very_early (void);
void init_floatfns_very_early (void);
void init_free_hook (void);
void init_intl_very_early (void);
void init_process_times_very_early (void);
void init_ralloc (void);
void init_signals_very_early (void);
void init_alloc_once_early (void);
void init_symbols_once_early (void);
void init_errors_once_early (void);
void init_opaque_once_early (void);
void syms_of_abbrev (void);
void syms_of_alloc (void);
void syms_of_balloon_x (void);
void syms_of_buffer (void);
void syms_of_bytecode (void);
void syms_of_callint (void);
void syms_of_callproc (void);
void syms_of_casefiddle (void);
void syms_of_casetab (void);
void syms_of_chartab (void);
void syms_of_cmdloop (void);
void syms_of_cmds (void);
void syms_of_console_tty (void);
void syms_of_console_mswindows (void);
void syms_of_console (void);
void syms_of_data (void);
void syms_of_database (void);
void syms_of_debug (void);
void syms_of_device_tty (void);
void syms_of_device_mswindows (void);
void syms_of_device_x (void);
void syms_of_device (void);
void syms_of_dialog_x (void);
void syms_of_dialog (void);
void syms_of_dired (void);
void syms_of_dired_mswindows (void);
void syms_of_dll (void);
void syms_of_doc (void);
void syms_of_dragdrop (void);
void syms_of_editfns (void);
void syms_of_elhash (void);
void syms_of_emacs (void);
void syms_of_eval (void);
void syms_of_event_stream (void);
void syms_of_event_mswindows (void);
void syms_of_event_Xt (void);
void syms_of_events (void);
void syms_of_extents (void);
void syms_of_faces (void);
void syms_of_fileio (void);
void syms_of_filelock (void);
void syms_of_floatfns (void);
void syms_of_fns (void);
void syms_of_font_lock (void);
void syms_of_frame (void);
void syms_of_frame_mswindows (void);
void syms_of_frame_x (void);
void syms_of_free_hook (void);
void syms_of_general (void);
void syms_of_glyphs_x (void);
void syms_of_glyphs_eimage (void);
void syms_of_glyphs_mswindows (void);
void syms_of_glyphs (void);
void syms_of_gui_x (void);
void syms_of_gui (void);
void syms_of_indent (void);
void syms_of_input_method_xlib (void);
void syms_of_intl (void);
void syms_of_keymap (void);
void syms_of_lread (void);
void syms_of_macros (void);
void syms_of_marker (void);
void syms_of_md5 (void);
void syms_of_menubar_x (void);
void syms_of_menubar (void);
void syms_of_menubar_mswindows (void);
void syms_of_minibuf (void);
void syms_of_mule (void);
void syms_of_mule_canna (void);
void syms_of_mule_ccl (void);
void syms_of_mule_charset (void);
void syms_of_file_coding (void);
void syms_of_mule_wnn (void);
void syms_of_ntproc (void);
void syms_of_objects_tty (void);
void syms_of_objects_x (void);
void syms_of_objects_mswindows (void);
void syms_of_objects (void);
void syms_of_print (void);
void syms_of_process (void);
void syms_of_process_nt (void);
void syms_of_profile (void);
void syms_of_ralloc (void);
void syms_of_rangetab (void);
void syms_of_redisplay (void);
void syms_of_scrollbar (void);
void syms_of_scrollbar_mswindows(void);
void syms_of_search (void);
void syms_of_select_mswindows (void);
void syms_of_signal (void);
void syms_of_sound (void);
void syms_of_specifier (void);
void syms_of_sunpro (void);
void syms_of_symbols (void);
void syms_of_syntax (void);
void syms_of_toolbar (void);
void syms_of_tooltalk (void);
void syms_of_undo (void);
void syms_of_widget (void);
void syms_of_window (void);
void syms_of_xselect (void);
void syms_of_eldap (void);
void console_type_create (void);
void console_type_create_stream (void);
void console_type_create_tty (void);
void console_type_create_device_tty (void);
void console_type_create_frame_tty (void);
void console_type_create_objects_tty (void);
void console_type_create_redisplay_tty (void);
void console_type_create_x (void);
void console_type_create_device_x (void);
void console_type_create_frame_x (void);
void console_type_create_glyphs_x (void);
void console_type_create_menubar_x (void);
void console_type_create_objects_x (void);
void console_type_create_redisplay_x (void);
void console_type_create_scrollbar_x (void);
void console_type_create_toolbar_x (void);
void console_type_create_dialog_x (void);
void console_type_create_mswindows (void);
void console_type_create_device_mswindows (void);
void console_type_create_frame_mswindows (void);
void console_type_create_menubar_mswindows (void);
void console_type_create_objects_mswindows (void);
void console_type_create_redisplay_mswindows (void);
void console_type_create_scrollbar_mswindows (void);
void console_type_create_toolbar_mswindows (void);
void console_type_create_glyphs_mswindows (void);
void console_type_create_dialog_mswindows (void);
void specifier_type_create (void);
void specifier_type_create_image (void);
void specifier_type_create_objects (void);
void specifier_type_create_toolbar (void);
void structure_type_create (void);
void structure_type_create_chartab (void);
void structure_type_create_faces (void);
void structure_type_create_rangetab (void);
void structure_type_create_hashtable (void);
void image_instantiator_format_create (void);
void image_instantiator_format_create_glyphs_eimage (void);
void image_instantiator_format_create_glyphs_x (void);
void image_instantiator_format_create_glyphs_mswindows (void);
void lstream_type_create (void);
void lstream_type_create_file_coding (void);
void lstream_type_create_print (void);
void lstream_type_create_mswindows_selectable (void);
void process_type_create_nt (void);
void process_type_create_unix (void);
void init_provide_once (void);
void vars_of_abbrev (void);
void vars_of_alloc (void);
void vars_of_balloon_x (void);
void vars_of_buffer (void);
void vars_of_bytecode (void);
void vars_of_callint (void);
void vars_of_callproc (void);
void vars_of_chartab (void);
void vars_of_cmdloop (void);
void vars_of_cmds (void);
void vars_of_console (void);
void vars_of_console_stream (void);
void vars_of_console_mswindows (void);
void vars_of_console_tty (void);
void vars_of_data (void);
void vars_of_database (void);
void vars_of_debug (void);
void vars_of_device (void);
void vars_of_device_mswindows (void);
void vars_of_device_x (void);
void vars_of_dialog (void);
void vars_of_dialog_x (void);
void vars_of_dialog_mswindows (void);
void vars_of_dired (void);
void vars_of_dired_mswindows (void);
void vars_of_doc (void);
void vars_of_dragdrop (void);
void vars_of_editfns (void);
void vars_of_elhash (void);
void vars_of_emacs (void);
void vars_of_eval (void);
void vars_of_event_stream (void);
void vars_of_event_tty (void);
void vars_of_event_mswindows (void);
void vars_of_event_Xt (void);
void vars_of_events (void);
void vars_of_extents (void);
void vars_of_faces (void);
void vars_of_fileio (void);
void vars_of_filelock (void);
void vars_of_floatfns (void);
void vars_of_font_lock (void);
void vars_of_frame_tty (void);
void vars_of_frame_mswindows (void);
void vars_of_frame_x (void);
void vars_of_frame (void);
void vars_of_glyphs_x (void);
void vars_of_glyphs_eimage (void);
void vars_of_glyphs_mswindows (void);
void vars_of_glyphs (void);
void vars_of_gui_x (void);
void vars_of_gui (void);
void vars_of_input_method_motif (void);
void vars_of_input_method_xlib (void);
void vars_of_indent (void);
void vars_of_insdel (void);
void vars_of_intl (void);
void vars_of_keymap (void);
void vars_of_lread (void);
void vars_of_lstream (void);
void vars_of_macros (void);
void vars_of_md5 (void);
void vars_of_menubar_x (void);
void vars_of_menubar (void);
void vars_of_menubar_mswindows (void);
void vars_of_minibuf (void);
void vars_of_mule (void);
void vars_of_mule_canna (void);
void vars_of_mule_ccl(void);
void vars_of_mule_charset (void);
void vars_of_file_coding (void);
void vars_of_mule_wnn (void);
void vars_of_ntproc (void);
void vars_of_objects (void);
void vars_of_objects_tty (void);
void vars_of_objects_mswindows (void);
void vars_of_objects_x (void);
void vars_of_print (void);
void vars_of_process (void);
void vars_of_process_nt (void);
void vars_of_process_unix (void);
void vars_of_profile (void);
void vars_of_ralloc (void);
void vars_of_redisplay (void);
void vars_of_scrollbar_x (void);
void vars_of_scrollbar (void);
void vars_of_scrollbar_mswindows (void);
void vars_of_search (void);
void vars_of_select_mswindows (void);
void vars_of_sound (void);
void vars_of_specifier (void);
void vars_of_sunpro (void);
void vars_of_symbols (void);
void vars_of_syntax (void);
void vars_of_toolbar (void);
void vars_of_tooltalk (void);
void vars_of_undo (void);
void vars_of_window (void);
void vars_of_xselect (void);
void vars_of_eldap (void);
void specifier_vars_of_glyphs (void);
void specifier_vars_of_menubar (void);
void specifier_vars_of_redisplay (void);
void specifier_vars_of_scrollbar (void);
void specifier_vars_of_toolbar (void);
void specifier_vars_of_window (void);
void complex_vars_of_regex (void);
void complex_vars_of_search (void);
void complex_vars_of_event_stream (void);
void complex_vars_of_extents (void);
void complex_vars_of_faces (void);
void complex_vars_of_mule_charset (void);
void complex_vars_of_file_coding (void);
void complex_vars_of_glyphs (void);
void complex_vars_of_glyphs_x (void);
void complex_vars_of_glyphs_mswindows (void);
void complex_vars_of_alloc (void);
void complex_vars_of_menubar (void);
void complex_vars_of_scrollbar (void);
void complex_vars_of_frame (void);
void complex_vars_of_casetab (void);
void complex_vars_of_syntax (void);
void complex_vars_of_chartab (void);
void complex_vars_of_buffer (void);
void complex_vars_of_console (void);
void complex_vars_of_emacs (void);
void complex_vars_of_minibuf (void);
void complex_vars_of_callproc (void);
void complex_vars_of_filelock (void);
void complex_vars_of_keymap (void);
void reinit_alloc (void);
void reinit_eval (void);
void init_buffer (void);
void init_callproc (void);
void init_console_stream (void);
void init_device_tty (void);
void init_dosfns (void);
void init_editfns (void);
void init_environment (void);
void init_event_Xt_late (void);
void init_event_stream (void);
void init_event_tty_late (void);
void init_event_mswindows_late (void);
void init_event_unixoid (void);
void init_hpplay (void);
void init_lread (void);
void init_macros (void);
void init_ntproc (void);
void init_xemacs_process (void);
void init_redisplay (void);
void init_sunpro (void);
# 102 "lisp.h" 2
# 115 "lisp.h"
void malloc_warning (const char *);
void *xmalloc (size_t size);
void *xmalloc_and_zero (size_t size);
void *xrealloc (void *, size_t size);
char *xstrdup (const char *);
# 165 "lisp.h"
void xfree (void *);
# 243 "lisp.h"
extern void volatile assert_failed (const char *, int, const char *) __attribute__ ((noreturn));
# 274 "lisp.h"
typedef unsigned char Bufbyte;
typedef unsigned char Extbyte;
typedef int Emchar;
# 295 "lisp.h"
typedef int Bufpos;
typedef int Bytind;
typedef int Memind;
typedef int Bytecount;
typedef int Charcount;
typedef int Extcount;
typedef struct lstream Lstream;
typedef unsigned int face_index;
typedef struct
{
struct face_cachel *base; int elsize; int cur; int largest; int max;
} face_cachel_dynarr;
typedef unsigned int glyph_index;
typedef unsigned int USID;
typedef struct
{
struct glyph_cachel *base; int elsize; int cur; int largest; int max;
} glyph_cachel_dynarr;
struct buffer;
struct console;
struct device;
struct extent_fragment;
struct extent;
typedef struct extent *EXTENT;
struct frame;
struct window;
struct Lisp_Event;
struct Lisp_Face;
struct Lisp_Process;
struct stat;
struct Lisp_Color_Instance;
struct Lisp_Font_Instance;
struct Lisp_Image_Instance;
struct display_line;
struct redisplay_info;
struct window_mirror;
struct scrollbar_instance;
struct font_metric_info;
struct face_cachel;
struct console_type_entry;
typedef struct
{
Bufbyte *base; int elsize; int cur; int largest; int max;
} Bufbyte_dynarr;
typedef struct
{
Extbyte *base; int elsize; int cur; int largest; int max;
} Extbyte_dynarr;
typedef struct
{
Emchar *base; int elsize; int cur; int largest; int max;
} Emchar_dynarr;
typedef struct
{
char *base; int elsize; int cur; int largest; int max;
} char_dynarr;
typedef unsigned char unsigned_char;
typedef struct
{
unsigned char *base; int elsize; int cur; int largest; int max;
} unsigned_char_dynarr;
typedef unsigned long unsigned_long;
typedef struct
{
unsigned long *base; int elsize; int cur; int largest; int max;
} unsigned_long_dynarr;
typedef struct
{
int *base; int elsize; int cur; int largest; int max;
} int_dynarr;
typedef struct
{
Bufpos *base; int elsize; int cur; int largest; int max;
} Bufpos_dynarr;
typedef struct
{
Bytind *base; int elsize; int cur; int largest; int max;
} Bytind_dynarr;
typedef struct
{
Charcount *base; int elsize; int cur; int largest; int max;
} Charcount_dynarr;
typedef struct
{
Bytecount *base; int elsize; int cur; int largest; int max;
} Bytecount_dynarr;
typedef struct
{
struct console_type_entry *base; int elsize; int cur; int largest; int max;
} console_type_entry_dynarr;
enum external_data_format
{
# 423 "lisp.h"
FORMAT_BINARY,
FORMAT_FILENAME,
FORMAT_TERMINAL,
FORMAT_KEYBOARD,
FORMAT_OS,
FORMAT_CTEXT
};
enum run_hooks_condition
{
RUN_HOOKS_TO_COMPLETION,
RUN_HOOKS_UNTIL_SUCCESS,
RUN_HOOKS_UNTIL_FAILURE
};
enum toolbar_pos
{
TOP_TOOLBAR,
BOTTOM_TOOLBAR,
LEFT_TOOLBAR,
RIGHT_TOOLBAR
};
typedef enum error_behavior
{
ERROR_ME,
ERROR_ME_NOT,
ERROR_ME_WARN
} Error_behavior;
# 501 "lisp.h"
enum munge_me_out_the_door
{
MUNGE_ME_FUNCTION_KEY,
MUNGE_ME_KEY_TRANSLATION
};
# 565 "lisp.h"
enum Lisp_Type
{
Lisp_Type_Record,
Lisp_Type_Int_Even,
Lisp_Type_Char,
Lisp_Type_Int_Odd
};
# 621 "lisp.h"
# 1 "lisp-disunion.h" 1
# 108 "lisp-disunion.h"
typedef int Lisp_Object;
# 622 "lisp.h" 2
# 646 "lisp.h"
typedef struct
{
Lisp_Object *base; int elsize; int cur; int largest; int max;
} Lisp_Object_dynarr;
# 675 "lisp.h"
# 1 "lrecord.h" 1
# 60 "lrecord.h"
struct lrecord_header
{
# 98 "lrecord.h"
const struct lrecord_implementation *implementation;
};
struct lrecord_implementation;
int lrecord_type_index (const struct lrecord_implementation *implementation);
# 117 "lrecord.h"
struct lcrecord_header
{
struct lrecord_header lheader;
# 129 "lrecord.h"
struct lcrecord_header *next;
unsigned int uid :31;
unsigned int free :1;
};
struct free_lcrecord_header
{
struct lcrecord_header lcheader;
Lisp_Object chain;
};
void this_marks_a_marked_record (void *, int);
Lisp_Object this_one_is_unmarkable (Lisp_Object obj,
void (*markobj) (Lisp_Object));
struct lrecord_implementation
{
const char *name;
# 171 "lrecord.h"
Lisp_Object (*marker) (Lisp_Object, void (*mark_object) (Lisp_Object));
void (*printer) (Lisp_Object, Lisp_Object printcharfun, int escapeflag);
# 183 "lrecord.h"
void (*finalizer) (void *header, int for_disksave);
int (*equal) (Lisp_Object obj1, Lisp_Object obj2, int depth);
unsigned long (*hash) (Lisp_Object, int);
Lisp_Object (*getprop) (Lisp_Object obj, Lisp_Object prop);
int (*putprop) (Lisp_Object obj, Lisp_Object prop, Lisp_Object val);
int (*remprop) (Lisp_Object obj, Lisp_Object prop);
Lisp_Object (*plist) (Lisp_Object obj);
size_t static_size;
size_t (*size_in_bytes_method) (const void *header);
int *lrecord_type_index;
int basic_p;
};
# 223 "lrecord.h"
extern int gc_in_progress;
# 418 "lrecord.h"
void *alloc_lcrecord (size_t size, const struct lrecord_implementation *);
int gc_record_type_p (Lisp_Object frob,
const struct lrecord_implementation *type);
# 676 "lisp.h" 2
# 691 "lisp.h"
struct Lisp_Cons
{
struct lrecord_header lheader;
Lisp_Object car, cdr;
};
# 713 "lisp.h"
extern Lisp_Object Qconsp; extern const struct lrecord_implementation lrecord_cons[];
# 778 "lisp.h"
extern Lisp_Object Qnil;
extern inline int TRUE_LIST_P (Lisp_Object object);
extern inline int
TRUE_LIST_P (Lisp_Object object)
{
while (((((enum Lisp_Type) (((unsigned int)((object))) & ~(((1UL << ((4 * 8) - 2)) - 1UL) << 2))) == Lisp_Type_Record) && ((struct lrecord_header *) ((void *) ((object))))->implementation == (lrecord_cons)))
object = (((struct Lisp_Cons *) ((void *) ((object))))->cdr);
return ((object) == (Qnil));
}
# 817 "lisp.h"
struct Lisp_String
{
struct lrecord_header lheader;
Bytecount _size;
Bufbyte *_data;
Lisp_Object plist;
};
extern Lisp_Object Qstringp; extern const struct lrecord_implementation lrecord_string[];
# 873 "lisp.h"
void resize_string (struct Lisp_String *s, Bytecount pos, Bytecount delta);
# 899 "lisp.h"
struct Lisp_Vector
{
struct lcrecord_header header;
long size;
Lisp_Object contents[1];
};
extern Lisp_Object Qvectorp; extern const struct lrecord_implementation lrecord_vector[];
# 958 "lisp.h"
struct Lisp_Bit_Vector
{
struct lrecord_header lheader;
Lisp_Object next;
long size;
unsigned long bits[1];
};
extern Lisp_Object Qbit_vectorp; extern const struct lrecord_implementation lrecord_bit_vector[];
# 990 "lisp.h"
extern inline int bit_vector_bit (struct Lisp_Bit_Vector *v, int i);
extern inline int
bit_vector_bit (struct Lisp_Bit_Vector *v, int i)
{
unsigned int ui = (unsigned int) i;
return (((v)->bits[ui >> 5] >> (ui & (32 - 1)))
& 1);
}
extern inline void set_bit_vector_bit (struct Lisp_Bit_Vector *v, int i, int value);
extern inline void
set_bit_vector_bit (struct Lisp_Bit_Vector *v, int i, int value)
{
unsigned int ui = (unsigned int) i;
if (value)
(v)->bits[ui >> 5] |= (1UL << (ui & (32 - 1)));
else
(v)->bits[ui >> 5] &= ~(1UL << (ui & (32 - 1)));
}
# 1020 "lisp.h"
struct Lisp_Symbol
{
struct lrecord_header lheader;
struct Lisp_Symbol *next;
struct Lisp_String *name;
Lisp_Object value;
Lisp_Object function;
Lisp_Object plist;
# 1048 "lisp.h"
int obarray_flags;
};
extern Lisp_Object Qsymbolp; extern const struct lrecord_implementation lrecord_symbol[];
# 1087 "lisp.h"
typedef Lisp_Object (*lisp_fn_t) (void);
struct Lisp_Subr
{
struct lrecord_header lheader;
short min_args, max_args;
const char *prompt;
const char *doc;
const char *name;
lisp_fn_t subr_fn;
};
extern Lisp_Object Qsubrp; extern const struct lrecord_implementation lrecord_subr[];
# 1112 "lisp.h"
struct Lisp_Marker
{
struct lrecord_header lheader;
struct Lisp_Marker *next, *prev;
struct buffer *buffer;
Memind memind;
char insertion_type;
};
extern Lisp_Object Qmarkerp; extern const struct lrecord_implementation lrecord_marker[];
# 1169 "lisp.h"
struct Lisp_Float
{
struct lrecord_header lheader;
union { double d; struct Lisp_Float *unused__next__; } data;
};
extern Lisp_Object Qfloatp; extern const struct lrecord_implementation lrecord_float[];
# 1335 "lisp.h"
typedef struct structure_keyword_entry structure_keyword_entry;
struct structure_keyword_entry
{
Lisp_Object keyword;
int (*validate) (Lisp_Object keyword, Lisp_Object value,
Error_behavior errb);
};
typedef struct
{
structure_keyword_entry *base; int elsize; int cur; int largest; int max;
} structure_keyword_entry_dynarr;
typedef struct structure_type structure_type;
struct structure_type
{
Lisp_Object type;
structure_keyword_entry_dynarr *keywords;
int (*validate) (Lisp_Object data, Error_behavior errb);
Lisp_Object (*instantiate) (Lisp_Object data);
};
typedef struct
{
structure_type *base; int elsize; int cur; int largest; int max;
} structure_type_dynarr;
struct structure_type *define_structure_type (Lisp_Object type,
int (*validate)
(Lisp_Object data,
Error_behavior errb),
Lisp_Object (*instantiate)
(Lisp_Object data));
void define_structure_type_keyword (struct structure_type *st,
Lisp_Object keyword,
int (*validate) (Lisp_Object keyword,
Lisp_Object value,
Error_behavior errb));
enum weak_list_type
{
WEAK_LIST_SIMPLE,
WEAK_LIST_ASSOC,
WEAK_LIST_KEY_ASSOC,
WEAK_LIST_VALUE_ASSOC
};
struct weak_list
{
struct lcrecord_header header;
Lisp_Object list;
enum weak_list_type type;
Lisp_Object next_weak;
};
extern Lisp_Object Qweak_listp; extern const struct lrecord_implementation lrecord_weak_list[];
# 1408 "lisp.h"
Lisp_Object make_weak_list (enum weak_list_type type);
int finish_marking_weak_lists (int (*obj_marked_p) (Lisp_Object),
void (*markobj) (Lisp_Object));
void prune_weak_lists (int (*obj_marked_p) (Lisp_Object));
struct lcrecord_list
{
struct lcrecord_header header;
Lisp_Object free;
size_t size;
const struct lrecord_implementation *implementation;
};
extern Lisp_Object Qlcrecord_listp; extern const struct lrecord_implementation lrecord_lcrecord_list[];
# 1433 "lisp.h"
Lisp_Object make_lcrecord_list (size_t size,
const struct lrecord_implementation
*implementation);
Lisp_Object allocate_managed_lcrecord (Lisp_Object lcrecord_list);
void free_managed_lcrecord (Lisp_Object lcrecord_list, Lisp_Object lcrecord);
# 1525 "lisp.h"
# 1 "symeval.h" 1
# 29 "symeval.h"
enum symbol_value_type
{
SYMVAL_FIXNUM_FORWARD,
SYMVAL_CONST_FIXNUM_FORWARD,
SYMVAL_BOOLEAN_FORWARD,
SYMVAL_CONST_BOOLEAN_FORWARD,
SYMVAL_OBJECT_FORWARD,
SYMVAL_CONST_OBJECT_FORWARD,
SYMVAL_CONST_SPECIFIER_FORWARD,
SYMVAL_DEFAULT_BUFFER_FORWARD,
SYMVAL_CURRENT_BUFFER_FORWARD,
SYMVAL_CONST_CURRENT_BUFFER_FORWARD,
SYMVAL_DEFAULT_CONSOLE_FORWARD,
SYMVAL_SELECTED_CONSOLE_FORWARD,
SYMVAL_CONST_SELECTED_CONSOLE_FORWARD,
SYMVAL_UNBOUND_MARKER,
SYMVAL_BUFFER_LOCAL,
SYMVAL_SOME_BUFFER_LOCAL,
SYMVAL_LISP_MAGIC,
SYMVAL_VARALIAS
};
struct symbol_value_magic
{
struct lcrecord_header lcheader;
enum symbol_value_type type;
};
void print_symbol_value_magic (Lisp_Object, Lisp_Object, int);
# 99 "symeval.h"
struct symbol_value_forward
{
struct symbol_value_magic magic;
# 139 "symeval.h"
int (*magicfun) (Lisp_Object sym, Lisp_Object *val, Lisp_Object in_object,
int flags);
};
extern Lisp_Object Qsymbol_value_forwardp; extern const struct lrecord_implementation lrecord_symbol_value_forward[];
struct symbol_value_buffer_local
{
struct symbol_value_magic magic;
# 224 "symeval.h"
Lisp_Object default_value;
Lisp_Object current_value;
Lisp_Object current_buffer;
Lisp_Object current_alist_element;
};
extern Lisp_Object Qsymbol_value_buffer_localp; extern const struct lrecord_implementation lrecord_symbol_value_buffer_local[];
enum lisp_magic_handler
{
MAGIC_HANDLER_GET_VALUE,
MAGIC_HANDLER_SET_VALUE,
MAGIC_HANDLER_BOUND_PREDICATE,
MAGIC_HANDLER_MAKE_UNBOUND,
MAGIC_HANDLER_LOCAL_PREDICATE,
MAGIC_HANDLER_MAKE_LOCAL,
MAGIC_HANDLER_MAX
};
struct symbol_value_lisp_magic
{
struct symbol_value_magic magic;
Lisp_Object handler[MAGIC_HANDLER_MAX];
Lisp_Object harg[MAGIC_HANDLER_MAX];
Lisp_Object shadowed;
};
extern Lisp_Object Qsymbol_value_lisp_magicp; extern const struct lrecord_implementation lrecord_symbol_value_lisp_magic[];
struct symbol_value_varalias
{
struct symbol_value_magic magic;
Lisp_Object aliasee;
Lisp_Object shadowed;
};
extern Lisp_Object Qsymbol_value_varaliasp; extern const struct lrecord_implementation lrecord_symbol_value_varalias[];
# 277 "symeval.h"
void defsubr (struct Lisp_Subr *);
void defsymbol (Lisp_Object *location, const char *name);
void defkeyword (Lisp_Object *location, const char *name);
void deferror (Lisp_Object *symbol, const char *name,
const char *message, Lisp_Object inherits_from);
void defvar_mumble (const char *names, const void *magic, size_t sizeof_magic);
# 1526 "lisp.h" 2
int specpdl_depth (void);
# 1539 "lisp.h"
extern volatile int something_happened;
int check_what_happened (void);
extern volatile int quit_check_signal_happened;
extern volatile int quit_check_signal_tick_count;
int check_quit (void);
void signal_quit (void);
# 1593 "lisp.h"
unsigned long string_hash (const void *xv);
unsigned long memory_hash (const void *xv, size_t size);
unsigned long internal_hash (Lisp_Object obj, int depth);
unsigned long internal_array_hash (Lisp_Object *arr, int size, int depth);
# 1633 "lisp.h"
extern int consing_since_gc;
extern int gc_cons_threshold;
# 1652 "lisp.h"
extern struct gcpro *gcprolist;
struct gcpro
{
struct gcpro *next;
Lisp_Object *var;
int nvars;
};
# 1876 "lisp.h"
void staticpro (Lisp_Object *);
extern int initialized;
# 1931 "lisp.h"
# 1 "/usr/include/inttypes.h" 1 3
# 28 "/usr/include/inttypes.h" 3
# 1 "/usr/include/stdint.h" 1 3
# 28 "/usr/include/stdint.h" 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 29 "/usr/include/stdint.h" 2 3
# 49 "/usr/include/stdint.h" 3
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
__extension__
typedef unsigned long long int uint64_t;
typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;
__extension__
typedef long long int int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
__extension__
typedef unsigned long long int uint_least64_t;
typedef signed char int_fast8_t;
typedef int int_fast16_t;
typedef int int_fast32_t;
__extension__
typedef long long int int_fast64_t;
typedef unsigned char uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
__extension__
typedef unsigned long long int uint_fast64_t;
# 129 "/usr/include/stdint.h" 3
typedef unsigned int uintptr_t;
# 138 "/usr/include/stdint.h" 3
__extension__
typedef long long int intmax_t;
__extension__
typedef unsigned long long int uintmax_t;
# 29 "/usr/include/inttypes.h" 2 3
typedef long int __gwchar_t;
# 274 "/usr/include/inttypes.h" 3
# 288 "/usr/include/inttypes.h" 3
typedef struct
{
long long int quot;
long long int rem;
} imaxdiv_t;
extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__const__));
extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
__attribute__ ((__const__));
extern intmax_t strtoimax (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
extern uintmax_t strtoumax (__const char *__restrict __nptr,
char ** __restrict __endptr, int __base) ;
extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
__gwchar_t **__restrict __endptr, int __base)
;
extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
__gwchar_t ** __restrict __endptr, int __base)
;
# 396 "/usr/include/inttypes.h" 3
extern __inline intmax_t
strtoimax (__const char *__restrict nptr, char **__restrict endptr,
int base)
{
return __strtoll_internal (nptr, endptr, base, 0);
}
# 414 "/usr/include/inttypes.h" 3
extern __inline uintmax_t
strtoumax (__const char *__restrict nptr, char **__restrict endptr,
int base)
{
return __strtoull_internal (nptr, endptr, base, 0);
}
__extension__
extern long long int __wcstoll_internal (__const __gwchar_t *
__restrict __nptr,
__gwchar_t **__restrict __endptr,
int __base, int __group) ;
extern __inline intmax_t
wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
int base)
{
return __wcstoll_internal (nptr, endptr, base, 0);
}
__extension__
extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
__restrict __nptr,
__gwchar_t **
__restrict __endptr,
int __base,
int __group) ;
extern __inline uintmax_t
wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
int base)
{
return __wcstoull_internal (nptr, endptr, base, 0);
}
# 1932 "lisp.h" 2
# 1948 "lisp.h"
void release_breathing_space (void);
Lisp_Object noseeum_cons (Lisp_Object, Lisp_Object);
Lisp_Object make_vector (int, Lisp_Object);
Lisp_Object vector1 (Lisp_Object);
Lisp_Object vector2 (Lisp_Object, Lisp_Object);
Lisp_Object vector3 (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object make_bit_vector (int, Lisp_Object);
Lisp_Object make_bit_vector_from_byte_vector (unsigned char *, int);
Lisp_Object noseeum_make_marker (void);
void garbage_collect_1 (void);
Lisp_Object acons (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object cons3 (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object list1 (Lisp_Object);
Lisp_Object list2 (Lisp_Object, Lisp_Object);
Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object list4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object list5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object);
Lisp_Object list6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object);
extern void volatile memory_full (void) __attribute__ ((noreturn));
void disksave_object_finalization (void);
extern int purify_flag;
extern int gc_currently_forbidden;
Lisp_Object restore_gc_inhibit (Lisp_Object);
extern int gc_generation_number[1];
int purified (Lisp_Object);
Lisp_Object build_string (const char *);
Lisp_Object build_ext_string (const char *, enum external_data_format);
Lisp_Object build_translated_string (const char *);
Lisp_Object make_string (const Bufbyte *, Bytecount);
Lisp_Object make_ext_string (const Extbyte *, int,
enum external_data_format);
Lisp_Object make_uninit_string (Bytecount);
Lisp_Object make_float (double);
size_t purespace_usage (void);
void report_pure_usage (int, int);
Lisp_Object make_pure_string (const Bufbyte *, Bytecount, Lisp_Object, int);
Lisp_Object make_pure_pname (const Bufbyte *, Bytecount, int);
Lisp_Object pure_cons (Lisp_Object, Lisp_Object);
Lisp_Object pure_list (int, Lisp_Object *);
Lisp_Object make_pure_vector (size_t, Lisp_Object);
void free_cons (struct Lisp_Cons *);
void free_list (Lisp_Object);
void free_alist (Lisp_Object);
void mark_conses_in_list (Lisp_Object);
void free_marker (struct Lisp_Marker *);
int object_dead_p (Lisp_Object);
Lisp_Object make_buffer (struct buffer *);
Lisp_Object get_truename_buffer (Lisp_Object);
void switch_to_buffer (Lisp_Object, Lisp_Object);
extern int find_file_compare_truenames;
extern int find_file_use_truenames;
char *egetenv (const char *);
void stuff_buffered_input (Lisp_Object);
extern void volatile pure_write_error (Lisp_Object) __attribute__ ((noreturn));
extern void volatile args_out_of_range (Lisp_Object, Lisp_Object) __attribute__ ((noreturn));
extern void volatile args_out_of_range_3 (Lisp_Object, Lisp_Object, Lisp_Object) __attribute__ ((noreturn));
Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object);
extern void volatile dead_wrong_type_argument (Lisp_Object, Lisp_Object) __attribute__ ((noreturn));
void check_int_range (int, int, int);
enum arith_comparison {
arith_equal,
arith_notequal,
arith_less,
arith_grtr,
arith_less_or_equal,
arith_grtr_or_equal };
Lisp_Object arithcompare (Lisp_Object, Lisp_Object, enum arith_comparison);
Lisp_Object word_to_lisp (unsigned int);
unsigned int lisp_to_word (Lisp_Object);
Lisp_Object make_directory_hash_table (const char *);
Lisp_Object wasteful_word_to_lisp (unsigned int);
Lisp_Object unparesseuxify_doc_string (int, int, char *, Lisp_Object);
Lisp_Object read_doc_string (Lisp_Object);
Bytecount emacs_doprnt_c (Lisp_Object, const Bufbyte *, Lisp_Object,
Bytecount, ...);
Bytecount emacs_doprnt_va (Lisp_Object, const Bufbyte *, Lisp_Object,
Bytecount, va_list);
Bytecount emacs_doprnt_lisp (Lisp_Object, const Bufbyte *, Lisp_Object,
Bytecount, int, const Lisp_Object *);
Bytecount emacs_doprnt_lisp_2 (Lisp_Object, const Bufbyte *, Lisp_Object,
Bytecount, int, ...);
Lisp_Object emacs_doprnt_string_c (const Bufbyte *, Lisp_Object,
Bytecount, ...);
Lisp_Object emacs_doprnt_string_va (const Bufbyte *, Lisp_Object,
Bytecount, va_list);
Lisp_Object emacs_doprnt_string_lisp (const Bufbyte *, Lisp_Object,
Bytecount, int, const Lisp_Object *);
Lisp_Object emacs_doprnt_string_lisp_2 (const Bufbyte *, Lisp_Object,
Bytecount, int, ...);
void uncache_home_directory (void);
char *get_home_directory (void);
char *user_login_name (int *);
Bufpos bufpos_clip_to_bounds (Bufpos, Bufpos, Bufpos);
Bytind bytind_clip_to_bounds (Bytind, Bytind, Bytind);
void buffer_insert1 (struct buffer *, Lisp_Object);
Lisp_Object make_string_from_buffer (struct buffer *, int, int);
Lisp_Object save_excursion_save (void);
Lisp_Object save_restriction_save (void);
Lisp_Object save_excursion_restore (Lisp_Object);
Lisp_Object save_restriction_restore (Lisp_Object);
Lisp_Object save_current_buffer_restore (Lisp_Object);
extern void volatile fatal (const char *, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
int stderr_out (const char *, ...) __attribute__ ((format (printf, 1, 2)));
int stdout_out (const char *, ...) __attribute__ ((format (printf, 1, 2)));
void fatal_error_signal (int);
Lisp_Object make_arg_list (int, char **);
void make_argc_argv (Lisp_Object, int *, char ***);
void free_argc_argv (char **);
Lisp_Object decode_env_path (const char *, const char *);
Lisp_Object decode_path (const char *);
extern int noninteractive;
extern int preparing_for_armageddon;
extern int emacs_priority;
extern int running_asynch_code;
extern int suppress_early_error_handler_backtrace;
extern void volatile signal_error (Lisp_Object, Lisp_Object) __attribute__ ((noreturn));
void maybe_signal_error (Lisp_Object, Lisp_Object, Lisp_Object, Error_behavior);
Lisp_Object maybe_signal_continuable_error (Lisp_Object, Lisp_Object,
Lisp_Object, Error_behavior);
extern void volatile error (const char *, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
void maybe_error (Lisp_Object, Error_behavior, const char *,
...) __attribute__ ((format (printf, 3, 4)));
Lisp_Object continuable_error (const char *, ...) __attribute__ ((format (printf, 1, 2)));
Lisp_Object maybe_continuable_error (Lisp_Object, Error_behavior,
const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern void volatile signal_simple_error (const char *, Lisp_Object) __attribute__ ((noreturn));
void maybe_signal_simple_error (const char *, Lisp_Object,
Lisp_Object, Error_behavior);
Lisp_Object signal_simple_continuable_error (const char *, Lisp_Object);
Lisp_Object maybe_signal_simple_continuable_error (const char *, Lisp_Object,
Lisp_Object, Error_behavior);
extern void volatile error_with_frob (Lisp_Object, const char *, ...) __attribute__ ((noreturn, format (printf, 2, 3)));
void maybe_error_with_frob (Lisp_Object, Lisp_Object, Error_behavior,
const char *, ...) __attribute__ ((format (printf, 4, 5)));
Lisp_Object continuable_error_with_frob (Lisp_Object, const char *,
...) __attribute__ ((format (printf, 2, 3)));
Lisp_Object maybe_continuable_error_with_frob
(Lisp_Object, Lisp_Object, Error_behavior, const char *, ...) __attribute__ ((format (printf, 4, 5)));
extern void volatile signal_simple_error_2 (const char *, Lisp_Object, Lisp_Object) __attribute__ ((noreturn));
void maybe_signal_simple_error_2 (const char *, Lisp_Object, Lisp_Object,
Lisp_Object, Error_behavior);
Lisp_Object signal_simple_continuable_error_2 (const char *,
Lisp_Object, Lisp_Object);
Lisp_Object maybe_signal_simple_continuable_error_2 (const char *, Lisp_Object,
Lisp_Object, Lisp_Object,
Error_behavior);
Lisp_Object funcall_recording_as (Lisp_Object, int, Lisp_Object *);
Lisp_Object run_hook_with_args_in_buffer (struct buffer *, int, Lisp_Object *,
enum run_hooks_condition);
Lisp_Object run_hook_with_args (int, Lisp_Object *, enum run_hooks_condition);
void va_run_hook_with_args (Lisp_Object, int, ...);
void va_run_hook_with_args_in_buffer (struct buffer *, Lisp_Object, int, ...);
Lisp_Object run_hook (Lisp_Object);
Lisp_Object apply1 (Lisp_Object, Lisp_Object);
Lisp_Object call0 (Lisp_Object);
Lisp_Object call1 (Lisp_Object, Lisp_Object);
Lisp_Object call2 (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object call3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object call4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object);
Lisp_Object call5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object);
Lisp_Object call6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object call7 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object call8 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object);
Lisp_Object call0_in_buffer (struct buffer *, Lisp_Object);
Lisp_Object call1_in_buffer (struct buffer *, Lisp_Object, Lisp_Object);
Lisp_Object call2_in_buffer (struct buffer *, Lisp_Object, Lisp_Object,
Lisp_Object);
Lisp_Object call3_in_buffer (struct buffer *, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object);
Lisp_Object call4_in_buffer (struct buffer *, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object call5_in_buffer (struct buffer *, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object);
Lisp_Object call6_in_buffer (struct buffer *, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object);
Lisp_Object eval_in_buffer (struct buffer *, Lisp_Object);
Lisp_Object call0_with_handler (Lisp_Object, Lisp_Object);
Lisp_Object call1_with_handler (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object eval_in_buffer_trapping_errors (const char *, struct buffer *,
Lisp_Object);
Lisp_Object run_hook_trapping_errors (const char *, Lisp_Object);
Lisp_Object safe_run_hook_trapping_errors (const char *, Lisp_Object, int);
Lisp_Object call0_trapping_errors (const char *, Lisp_Object);
Lisp_Object call1_trapping_errors (const char *, Lisp_Object, Lisp_Object);
Lisp_Object call2_trapping_errors (const char *,
Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object call_with_suspended_errors (lisp_fn_t, volatile Lisp_Object, Lisp_Object,
Error_behavior, int, ...);
Lisp_Object internal_catch (Lisp_Object, Lisp_Object (*) (Lisp_Object),
Lisp_Object, int * volatile);
Lisp_Object condition_case_1 (Lisp_Object,
Lisp_Object (*) (Lisp_Object),
Lisp_Object,
Lisp_Object (*) (Lisp_Object, Lisp_Object),
Lisp_Object);
Lisp_Object condition_case_3 (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object unbind_to (int, Lisp_Object);
void specbind (Lisp_Object, Lisp_Object);
void record_unwind_protect (Lisp_Object (*) (Lisp_Object), Lisp_Object);
void do_autoload (Lisp_Object, Lisp_Object);
Lisp_Object un_autoload (Lisp_Object);
void warn_when_safe_lispobj (Lisp_Object, Lisp_Object, Lisp_Object);
void warn_when_safe (Lisp_Object, Lisp_Object, const char *,
...) __attribute__ ((format (printf, 3, 4)));
void wait_delaying_user_input (int (*) (void *), void *);
int detect_input_pending (void);
void reset_this_command_keys (Lisp_Object, int);
Lisp_Object enqueue_misc_user_event (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object enqueue_misc_user_event_pos (Lisp_Object, Lisp_Object,
Lisp_Object, int, int, int, int);
void signal_special_Xt_user_event (Lisp_Object, Lisp_Object, Lisp_Object);
void clear_event_resource (void);
Lisp_Object allocate_event (void);
int event_to_character (struct Lisp_Event *, int, int, int);
void record_auto_save (void);
void force_auto_save_soon (void);
extern void volatile report_file_error (const char *, Lisp_Object) __attribute__ ((noreturn));
void maybe_report_file_error (const char *, Lisp_Object,
Lisp_Object, Error_behavior);
extern void volatile signal_file_error (const char *, Lisp_Object) __attribute__ ((noreturn));
void maybe_signal_file_error (const char *, Lisp_Object,
Lisp_Object, Error_behavior);
extern void volatile signal_double_file_error (const char *, const char *, Lisp_Object) __attribute__ ((noreturn));
void maybe_signal_double_file_error (const char *, const char *,
Lisp_Object, Lisp_Object, Error_behavior);
extern void volatile signal_double_file_error_2 (const char *, const char *, Lisp_Object, Lisp_Object) __attribute__ ((noreturn));
void maybe_signal_double_file_error_2 (const char *, const char *,
Lisp_Object, Lisp_Object, Lisp_Object,
Error_behavior);
Lisp_Object lisp_strerror (int);
Lisp_Object expand_and_dir_to_file (Lisp_Object, Lisp_Object);
int read_allowing_quit (int, void *, size_t);
int write_allowing_quit (int, const void *, size_t);
int internal_delete_file (Lisp_Object);
void lock_file (Lisp_Object);
void unlock_file (Lisp_Object);
void unlock_all_files (void);
void unlock_buffer (struct buffer *);
void filemodestring (struct stat *, char *);
double extract_float (Lisp_Object);
Lisp_Object list_sort (Lisp_Object, Lisp_Object,
int (*) (Lisp_Object, Lisp_Object, Lisp_Object));
Lisp_Object merge (Lisp_Object, Lisp_Object, Lisp_Object);
void bump_string_modiff (Lisp_Object);
Lisp_Object memq_no_quit (Lisp_Object, Lisp_Object);
Lisp_Object assoc_no_quit (Lisp_Object, Lisp_Object);
Lisp_Object assq_no_quit (Lisp_Object, Lisp_Object);
Lisp_Object rassq_no_quit (Lisp_Object, Lisp_Object);
Lisp_Object delq_no_quit (Lisp_Object, Lisp_Object);
Lisp_Object delq_no_quit_and_free_cons (Lisp_Object, Lisp_Object);
Lisp_Object remassoc_no_quit (Lisp_Object, Lisp_Object);
Lisp_Object remassq_no_quit (Lisp_Object, Lisp_Object);
Lisp_Object remrassq_no_quit (Lisp_Object, Lisp_Object);
void pure_put (Lisp_Object, Lisp_Object, Lisp_Object);
int plists_differ (Lisp_Object, Lisp_Object, int, int, int);
Lisp_Object internal_plist_get (Lisp_Object, Lisp_Object);
void internal_plist_put (Lisp_Object *, Lisp_Object, Lisp_Object);
int internal_remprop (Lisp_Object *, Lisp_Object);
Lisp_Object external_plist_get (Lisp_Object *, Lisp_Object,
int, Error_behavior);
void external_plist_put (Lisp_Object *, Lisp_Object,
Lisp_Object, int, Error_behavior);
int external_remprop (Lisp_Object *, Lisp_Object, int, Error_behavior);
int internal_equal (Lisp_Object, Lisp_Object, int);
Lisp_Object concat2 (Lisp_Object, Lisp_Object);
Lisp_Object concat3 (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object vconcat2 (Lisp_Object, Lisp_Object);
Lisp_Object vconcat3 (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object nconc2 (Lisp_Object, Lisp_Object);
void check_losing_bytecode (const char *, Lisp_Object);
int getloadavg (double[], int);
Error_behavior decode_error_behavior_flag (Lisp_Object);
Lisp_Object encode_error_behavior_flag (Error_behavior);
int bi_spaces_at_point (struct buffer *, Bytind);
int column_at_point (struct buffer *, Bufpos, int);
int current_column (struct buffer *);
void invalidate_current_column (void);
Bufpos vmotion (struct window *, Bufpos, int, int *);
Bufpos vmotion_pixels (Lisp_Object, Bufpos, int, int, int *);
void where_is_to_char (Lisp_Object, char *);
void ebolify_bytecode_constants (Lisp_Object);
void close_load_descs (void);
int locate_file (Lisp_Object, Lisp_Object, const char *, Lisp_Object *, int);
int isfloat_string (const char *);
# 2329 "lisp.h"
Bytind bi_marker_position (Lisp_Object);
Bufpos marker_position (Lisp_Object);
void set_bi_marker_position (Lisp_Object, Bytind);
void set_marker_position (Lisp_Object, Bufpos);
void unchain_marker (Lisp_Object);
Lisp_Object noseeum_copy_marker (Lisp_Object, Lisp_Object);
Lisp_Object set_marker_restricted (Lisp_Object, Lisp_Object, Lisp_Object);
extern int popup_menu_up_p;
extern int menubar_show_keybindings;
extern int popup_menu_titles;
extern int minibuf_level;
Charcount scmp_1 (const Bufbyte *, const Bufbyte *, Charcount, int);
extern int completion_ignore_case;
int regexp_ignore_completion_p (const Bufbyte *, Lisp_Object,
Bytecount, Bytecount);
Lisp_Object clear_echo_area (struct frame *, Lisp_Object, int);
Lisp_Object clear_echo_area_from_print (struct frame *, Lisp_Object, int);
void echo_area_append (struct frame *, const Bufbyte *, Lisp_Object,
Bytecount, Bytecount, Lisp_Object);
void echo_area_message (struct frame *, const Bufbyte *, Lisp_Object,
Bytecount, Bytecount, Lisp_Object);
Lisp_Object echo_area_status (struct frame *);
int echo_area_active (struct frame *);
Lisp_Object echo_area_contents (struct frame *);
void message_internal (const Bufbyte *, Lisp_Object, Bytecount, Bytecount);
void message_append_internal (const Bufbyte *, Lisp_Object,
Bytecount, Bytecount);
void message (const char *, ...) __attribute__ ((format (printf, 1, 2)));
void message_append (const char *, ...) __attribute__ ((format (printf, 1, 2)));
void message_no_translate (const char *, ...) __attribute__ ((format (printf, 1, 2)));
void clear_message (void);
void write_string_to_stdio_stream (FILE *, struct console *,
const Bufbyte *, Bytecount, Bytecount,
enum external_data_format);
void debug_print (Lisp_Object);
void debug_short_backtrace (int);
void temp_output_buffer_setup (const char *);
void temp_output_buffer_show (Lisp_Object, Lisp_Object);
void write_c_string (const char *, Lisp_Object);
void write_string_1 (const Bufbyte *, Bytecount, Lisp_Object);
void print_cons (Lisp_Object, Lisp_Object, int);
void print_vector (Lisp_Object, Lisp_Object, int);
void print_string (Lisp_Object, Lisp_Object, int);
void long_to_string (char *, long);
void print_internal (Lisp_Object, Lisp_Object, int);
void print_symbol (Lisp_Object, Lisp_Object, int);
void print_float (Lisp_Object, Lisp_Object, int);
void print_compiled_function (Lisp_Object, Lisp_Object, int);
extern int print_escape_newlines;
extern int print_readably;
Lisp_Object internal_with_output_to_temp_buffer (const char *,
Lisp_Object (*) (Lisp_Object),
Lisp_Object, Lisp_Object);
void float_to_string (char *, double);
void internal_object_printer (Lisp_Object, Lisp_Object, int);
void mark_profiling_info (void (*) (Lisp_Object));
void profile_increase_call_count (Lisp_Object);
extern int profiling_active;
extern int profiling_redisplay_flag;
void put_range_table (Lisp_Object, int, int, Lisp_Object);
int unified_range_table_bytes_needed (Lisp_Object);
int unified_range_table_bytes_used (void *);
void unified_range_table_copy_data (Lisp_Object, void *);
Lisp_Object unified_range_table_lookup (void *, int, Lisp_Object);
int unified_range_table_nentries (void *);
void unified_range_table_get_range (void *, int, int *, int *,
Lisp_Object *);
struct re_pattern_buffer;
struct re_registers;
Bufpos scan_buffer (struct buffer *, Emchar, Bufpos, Bufpos, int, int *, int);
Bufpos find_next_newline (struct buffer *, Bufpos, int);
Bufpos find_next_newline_no_quit (struct buffer *, Bufpos, int);
Bytind bi_find_next_newline_no_quit (struct buffer *, Bytind, int);
Bufpos find_before_next_newline (struct buffer *, Bufpos, Bufpos, int);
struct re_pattern_buffer *compile_pattern (Lisp_Object, struct re_registers *,
char *, int, Error_behavior);
Bytecount fast_string_match (Lisp_Object, const Bufbyte *,
Lisp_Object, Bytecount,
Bytecount, int, Error_behavior, int);
Bytecount fast_lisp_string_match (Lisp_Object, Lisp_Object);
void restore_match_data (void);
void init_interrupts_late (void);
extern int dont_check_for_quit;
void begin_dont_check_for_quit (void);
void emacs_sleep (int);
void init_device_sound (struct device *);
Lisp_Object specifier_instance (Lisp_Object, Lisp_Object, Lisp_Object,
Error_behavior, int, int, Lisp_Object);
Lisp_Object specifier_instance_no_quit (Lisp_Object, Lisp_Object, Lisp_Object,
Error_behavior, int, Lisp_Object);
int hash_string (const Bufbyte *, Bytecount);
Lisp_Object intern (const char *);
Lisp_Object oblookup (Lisp_Object, const Bufbyte *, Bytecount);
void map_obarray (Lisp_Object, int (*) (Lisp_Object, void *), void *);
Lisp_Object indirect_function (Lisp_Object, int);
Lisp_Object symbol_value_in_buffer (Lisp_Object, Lisp_Object);
void kill_buffer_local_variables (struct buffer *);
int symbol_value_buffer_local_info (Lisp_Object, struct buffer *);
Lisp_Object find_symbol_value (Lisp_Object);
Lisp_Object find_symbol_value_quickly (Lisp_Object, int);
Lisp_Object top_level_value (Lisp_Object);
int scan_words (struct buffer *, int, int);
Lisp_Object truncate_undo_list (Lisp_Object, int, int);
void record_extent (Lisp_Object, int);
void record_insert (struct buffer *, Bufpos, Charcount);
void record_delete (struct buffer *, Bufpos, Charcount);
void record_change (struct buffer *, Bufpos, Charcount);
int unexec (char *, char *, uintptr_t, uintptr_t, uintptr_t);
void memory_warnings (void *, void (*) (const char *));
Lisp_Object save_window_excursion_unwind (Lisp_Object);
Lisp_Object display_buffer (Lisp_Object, Lisp_Object, Lisp_Object);
Lisp_Object Faccept_process_output (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fadd1 (Lisp_Object);
Lisp_Object Fadd_spec_to_specifier (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fadd_timeout (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fappend (int, Lisp_Object*);
Lisp_Object Fapply (int, Lisp_Object*);
Lisp_Object Faref (Lisp_Object,Lisp_Object);
Lisp_Object Faset (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fassoc (Lisp_Object,Lisp_Object);
Lisp_Object Fassq (Lisp_Object,Lisp_Object);
Lisp_Object Fbacktrace (Lisp_Object,Lisp_Object);
Lisp_Object Fbeginning_of_line (Lisp_Object,Lisp_Object);
Lisp_Object Fbobp (Lisp_Object);
Lisp_Object Fbolp (Lisp_Object);
Lisp_Object Fboundp (Lisp_Object);
Lisp_Object Fbuffer_substring (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fbuilt_in_variable_type (Lisp_Object);
Lisp_Object Fbyte_code (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fcall_interactively (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fcanonicalize_lax_plist (Lisp_Object,Lisp_Object);
Lisp_Object Fcanonicalize_plist (Lisp_Object,Lisp_Object);
Lisp_Object Fcar (Lisp_Object);
Lisp_Object Fcar_safe (Lisp_Object);
Lisp_Object Fcdr (Lisp_Object);
Lisp_Object Fchar_after (Lisp_Object,Lisp_Object);
Lisp_Object Fchar_to_string (Lisp_Object);
Lisp_Object Fcheck_valid_plist (Lisp_Object);
Lisp_Object Fclear_range_table (Lisp_Object);
Lisp_Object Fclrhash (Lisp_Object);
Lisp_Object Fcoding_category_list (void);
Lisp_Object Fcoding_category_system (Lisp_Object);
Lisp_Object Fcoding_priority_list (void);
Lisp_Object Fcoding_system_charset (Lisp_Object,Lisp_Object);
Lisp_Object Fcoding_system_doc_string (Lisp_Object);
Lisp_Object Fcoding_system_list (void);
Lisp_Object Fcoding_system_name (Lisp_Object);
Lisp_Object Fcoding_system_p (Lisp_Object);
Lisp_Object Fcoding_system_property (Lisp_Object,Lisp_Object);
Lisp_Object Fcoding_system_type (Lisp_Object);
Lisp_Object Fcommand_execute (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fcommandp (Lisp_Object);
Lisp_Object Fcompiled_function_domain (Lisp_Object);
Lisp_Object Fconcat (int, Lisp_Object*);
Lisp_Object Fcons (Lisp_Object,Lisp_Object);
Lisp_Object Fcopy_alist (Lisp_Object);
Lisp_Object Fcopy_coding_system (Lisp_Object,Lisp_Object);
Lisp_Object Fcopy_event (Lisp_Object,Lisp_Object);
Lisp_Object Fcopy_marker (Lisp_Object,Lisp_Object);
Lisp_Object Fcopy_sequence (Lisp_Object);
Lisp_Object Fcopy_tree (Lisp_Object,Lisp_Object);
Lisp_Object Fcurrent_window_configuration (Lisp_Object);
Lisp_Object Fdecode_big5_char (Lisp_Object);
Lisp_Object Fdecode_coding_region (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fdecode_shift_jis_char (Lisp_Object);
Lisp_Object Fdefault_boundp (Lisp_Object);
Lisp_Object Fdefault_value (Lisp_Object);
Lisp_Object Fdefine_key (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fdelete_region (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fdelq (Lisp_Object,Lisp_Object);
Lisp_Object Fdestructive_alist_to_plist (Lisp_Object);
Lisp_Object Fdetect_coding_region (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fdgettext (Lisp_Object,Lisp_Object);
Lisp_Object Fding (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fdirectory_file_name (Lisp_Object);
Lisp_Object Fdisable_timeout (Lisp_Object);
Lisp_Object Fdiscard_input (void);
Lisp_Object Fdispatch_event (Lisp_Object);
Lisp_Object Fdisplay_error (Lisp_Object,Lisp_Object);
Lisp_Object Fdo_auto_save (Lisp_Object,Lisp_Object);
Lisp_Object Fdowncase (Lisp_Object,Lisp_Object);
Lisp_Object Felt (Lisp_Object,Lisp_Object);
Lisp_Object Fencode_big5_char (Lisp_Object);
Lisp_Object Fencode_coding_region (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fencode_shift_jis_char (Lisp_Object);
Lisp_Object Fend_of_line (Lisp_Object,Lisp_Object);
Lisp_Object Fenqueue_eval_event (Lisp_Object,Lisp_Object);
Lisp_Object Feobp (Lisp_Object);
Lisp_Object Feolp (Lisp_Object);
Lisp_Object Fequal (Lisp_Object,Lisp_Object);
Lisp_Object Ferror_message_string (Lisp_Object);
Lisp_Object Feval (Lisp_Object);
Lisp_Object Fevent_to_character (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fexecute_kbd_macro (Lisp_Object,Lisp_Object);
Lisp_Object Fexpand_abbrev (void);
Lisp_Object Fexpand_file_name (Lisp_Object,Lisp_Object);
Lisp_Object Fextent_at (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fextent_property (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Ffboundp (Lisp_Object);
Lisp_Object Ffile_accessible_directory_p (Lisp_Object);
Lisp_Object Ffile_directory_p (Lisp_Object);
Lisp_Object Ffile_executable_p (Lisp_Object);
Lisp_Object Ffile_exists_p (Lisp_Object);
Lisp_Object Ffile_name_absolute_p (Lisp_Object);
Lisp_Object Ffile_name_as_directory (Lisp_Object);
Lisp_Object Ffile_name_directory (Lisp_Object);
Lisp_Object Ffile_name_nondirectory (Lisp_Object);
Lisp_Object Ffile_readable_p (Lisp_Object);
Lisp_Object Ffile_symlink_p (Lisp_Object);
Lisp_Object Ffile_truename (Lisp_Object,Lisp_Object);
Lisp_Object Ffind_coding_system (Lisp_Object);
Lisp_Object Ffind_file_name_handler (Lisp_Object,Lisp_Object);
Lisp_Object Ffollowing_char (Lisp_Object);
Lisp_Object Fformat (int, Lisp_Object*);
Lisp_Object Fforward_char (Lisp_Object,Lisp_Object);
Lisp_Object Fforward_line (Lisp_Object,Lisp_Object);
Lisp_Object Ffset (Lisp_Object,Lisp_Object);
Lisp_Object Ffuncall (int, Lisp_Object*);
Lisp_Object Fgeq (int, Lisp_Object*);
Lisp_Object Fget (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fget_buffer_process (Lisp_Object);
Lisp_Object Fget_coding_system (Lisp_Object);
Lisp_Object Fget_process (Lisp_Object);
Lisp_Object Fget_range_table (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fgethash (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fgettext (Lisp_Object);
Lisp_Object Fgoto_char (Lisp_Object,Lisp_Object);
Lisp_Object Fgtr (int, Lisp_Object*);
Lisp_Object Fhashtablep (Lisp_Object);
Lisp_Object Findent_to (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Findirect_function (Lisp_Object);
Lisp_Object Finsert (int, Lisp_Object*);
Lisp_Object Finsert_buffer_substring (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Finsert_char (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Finsert_file_contents_internal (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object, Lisp_Object,Lisp_Object);
Lisp_Object Finteractive_p (void);
Lisp_Object Fintern (Lisp_Object,Lisp_Object);
Lisp_Object Fintern_soft (Lisp_Object,Lisp_Object);
Lisp_Object Fkey_description (Lisp_Object);
Lisp_Object Fkill_emacs (Lisp_Object);
Lisp_Object Fkill_local_variable (Lisp_Object);
Lisp_Object Flax_plist_get (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Flax_plist_remprop (Lisp_Object,Lisp_Object);
Lisp_Object Flength (Lisp_Object);
Lisp_Object Fleq (int, Lisp_Object*);
Lisp_Object Flist (int, Lisp_Object*);
Lisp_Object Flistp (Lisp_Object);
Lisp_Object Flss (int, Lisp_Object*);
Lisp_Object Fmake_byte_code (int, Lisp_Object*);
Lisp_Object Fmake_coding_system (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fmake_glyph_internal (Lisp_Object);
Lisp_Object Fmake_hashtable (Lisp_Object,Lisp_Object);
Lisp_Object Fmake_list (Lisp_Object,Lisp_Object);
Lisp_Object Fmake_marker (void);
Lisp_Object Fmake_range_table (void);
Lisp_Object Fmake_sparse_keymap (Lisp_Object);
Lisp_Object Fmake_string (Lisp_Object,Lisp_Object);
Lisp_Object Fmake_symbol (Lisp_Object);
Lisp_Object Fmake_vector (Lisp_Object,Lisp_Object);
Lisp_Object Fmapcar (Lisp_Object,Lisp_Object);
Lisp_Object Fmarker_buffer (Lisp_Object);
Lisp_Object Fmarker_position (Lisp_Object);
Lisp_Object Fmatch_beginning (Lisp_Object);
Lisp_Object Fmatch_end (Lisp_Object);
Lisp_Object Fmax (int, Lisp_Object*);
Lisp_Object Fmember (Lisp_Object,Lisp_Object);
Lisp_Object Fmemq (Lisp_Object,Lisp_Object);
Lisp_Object Fmin (int, Lisp_Object*);
Lisp_Object Fminus (int, Lisp_Object*);
Lisp_Object Fnarrow_to_region (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fnconc (int, Lisp_Object*);
Lisp_Object Fnext_event (Lisp_Object,Lisp_Object);
Lisp_Object Fnreverse (Lisp_Object);
Lisp_Object Fnthcdr (Lisp_Object,Lisp_Object);
Lisp_Object Fnumber_to_string (Lisp_Object);
Lisp_Object Fold_assq (Lisp_Object,Lisp_Object);
Lisp_Object Fold_equal (Lisp_Object,Lisp_Object);
Lisp_Object Fold_member (Lisp_Object,Lisp_Object);
Lisp_Object Fold_memq (Lisp_Object,Lisp_Object);
Lisp_Object Fplist_get (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fplist_put (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fplus (int, Lisp_Object*);
Lisp_Object Fpoint (Lisp_Object);
Lisp_Object Fpoint_marker (Lisp_Object,Lisp_Object);
Lisp_Object Fpoint_max (Lisp_Object);
Lisp_Object Fpoint_min (Lisp_Object);
Lisp_Object Fpreceding_char (Lisp_Object);
Lisp_Object Fprefix_numeric_value (Lisp_Object);
Lisp_Object Fprin1 (Lisp_Object,Lisp_Object);
Lisp_Object Fprin1_to_string (Lisp_Object,Lisp_Object);
Lisp_Object Fprinc (Lisp_Object,Lisp_Object);
Lisp_Object Fprint (Lisp_Object,Lisp_Object);
Lisp_Object Fprocess_status (Lisp_Object);
Lisp_Object Fprogn (Lisp_Object);
Lisp_Object Fprovide (Lisp_Object);
Lisp_Object Fpurecopy (Lisp_Object);
Lisp_Object Fput (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fput_range_table (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fput_text_property (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fputhash (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fquo (int, Lisp_Object*);
Lisp_Object Frassq (Lisp_Object,Lisp_Object);
Lisp_Object Fread (Lisp_Object);
Lisp_Object Fread_key_sequence (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Freally_free (Lisp_Object);
Lisp_Object Frem (Lisp_Object,Lisp_Object);
Lisp_Object Fremassq (Lisp_Object,Lisp_Object);
Lisp_Object Fselected_frame (Lisp_Object);
Lisp_Object Fset (Lisp_Object,Lisp_Object);
Lisp_Object Fset_coding_category_system (Lisp_Object,Lisp_Object);
Lisp_Object Fset_coding_priority_list (Lisp_Object);
Lisp_Object Fset_default (Lisp_Object,Lisp_Object);
Lisp_Object Fset_marker (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fset_standard_case_table (Lisp_Object);
Lisp_Object Fsetcar (Lisp_Object,Lisp_Object);
Lisp_Object Fsetcdr (Lisp_Object,Lisp_Object);
Lisp_Object Fsignal (Lisp_Object,Lisp_Object);
Lisp_Object Fsit_for (Lisp_Object,Lisp_Object);
Lisp_Object Fskip_chars_backward (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fskip_chars_forward (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fsleep_for (Lisp_Object);
Lisp_Object Fsort (Lisp_Object,Lisp_Object);
Lisp_Object Fspecifier_spec_list (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fstring_equal (Lisp_Object,Lisp_Object);
Lisp_Object Fstring_lessp (Lisp_Object,Lisp_Object);
Lisp_Object Fstring_match (Lisp_Object,Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fsub1 (Lisp_Object);
Lisp_Object Fsubr_max_args (Lisp_Object);
Lisp_Object Fsubr_min_args (Lisp_Object);
Lisp_Object Fsubsidiary_coding_system (Lisp_Object,Lisp_Object);
Lisp_Object Fsubstitute_command_keys (Lisp_Object);
Lisp_Object Fsubstitute_in_file_name (Lisp_Object);
Lisp_Object Fsubstring (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fsymbol_function (Lisp_Object);
Lisp_Object Fsymbol_name (Lisp_Object);
Lisp_Object Fsymbol_plist (Lisp_Object);
Lisp_Object Fsymbol_value (Lisp_Object);
Lisp_Object Fthrow (Lisp_Object,Lisp_Object);
Lisp_Object Ftimes (int, Lisp_Object*);
Lisp_Object Ftruncate (Lisp_Object);
Lisp_Object Fundo_boundary (void);
Lisp_Object Funhandled_file_name_directory (Lisp_Object);
Lisp_Object Funlock_buffer (void);
Lisp_Object Fupcase (Lisp_Object,Lisp_Object);
Lisp_Object Fupcase_initials (Lisp_Object,Lisp_Object);
Lisp_Object Fupcase_initials_region (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fupcase_region (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fuser_home_directory (void);
Lisp_Object Fuser_login_name (Lisp_Object);
Lisp_Object Fvector (int, Lisp_Object*);
Lisp_Object Fverify_visited_file_modtime (Lisp_Object);
Lisp_Object Fvertical_motion (Lisp_Object,Lisp_Object,Lisp_Object);
Lisp_Object Fwiden (Lisp_Object);
extern Lisp_Object Q_style, Qactually_requested, Qactivate_menubar_hook;
extern Lisp_Object Qafter, Qall, Qand;
extern Lisp_Object Qarith_error, Qarrayp, Qassoc, Qat, Qautodetect, Qautoload;
extern Lisp_Object Qbackground, Qbackground_pixmap, Qbad_variable, Qbefore;
extern Lisp_Object Qbeginning_of_buffer, Qbig5, Qbinary, Qbitmap, Qbitp, Qblinking;
extern Lisp_Object Qboolean, Qbottom, Qbuffer, Qbuffer_file_coding_system;
extern Lisp_Object Qbuffer_glyph_p, Qbuffer_live_p, Qbuffer_read_only, Qbutton;
extern Lisp_Object Qbyte_code, Qcall_interactively, Qcategory;
extern Lisp_Object Qcategory_designator_p, Qcategory_table_value_p, Qccl, Qcdr;
extern Lisp_Object Qchannel, Qchar, Qchar_or_string_p, Qcharacter, Qcharacterp;
extern Lisp_Object Qchars, Qcharset_g0, Qcharset_g1, Qcharset_g2, Qcharset_g3;
extern Lisp_Object Qcircular_property_list, Qcoding_system_error;
extern Lisp_Object Qcoding_system_p, Qcolor, Qcolor_pixmap_image_instance_p;
extern Lisp_Object Qcolumns, Qcommand, Qcommandp, Qcompletion_ignore_case;
extern Lisp_Object Qconsole, Qconsole_live_p, Qconst_specifier, Qcr, Qcritical;
extern Lisp_Object Qcrlf, Qctext, Qcurrent_menubar, Qcursor;
extern Lisp_Object Qcyclic_variable_indirection, Qdata, Qdead, Qdecode;
extern Lisp_Object Qdefault, Qdefun, Qdelete, Qdelq, Qdevice, Qdevice_live_p;
extern Lisp_Object Qdim, Qdimension, Qdisabled, Qdisplay, Qdisplay_table;
extern Lisp_Object Qdoc_string, Qdomain_error, Qdynarr_overhead;
extern Lisp_Object Qempty, Qencode, Qend_of_buffer, Qend_of_file, Qend_open;
extern Lisp_Object Qeol_cr, Qeol_crlf, Qeol_lf, Qeol_type, Qeq, Qeql, Qequal;
extern Lisp_Object Qerror, Qerror_conditions, Qerror_message, Qescape_quoted;
extern Lisp_Object Qeval, Qevent_live_p, Qexit, Qextent_live_p, Qextents;
extern Lisp_Object Qexternal_debugging_output, Qface, Qfeaturep, Qfile_error;
extern Lisp_Object Qfont, Qforce_g0_on_output, Qforce_g1_on_output;
extern Lisp_Object Qforce_g2_on_output, Qforce_g3_on_output, Qforeground;
extern Lisp_Object Qformat, Qframe, Qframe_live_p, Qfunction, Qgap_overhead;
extern Lisp_Object Qgeneric, Qgeometry, Qglobal, Qheight, Qhighlight, Qicon;
extern Lisp_Object Qicon_glyph_p, Qid, Qidentity, Qimage, Qinfo, Qinherit;
extern Lisp_Object Qinhibit_quit, Qinhibit_read_only;
extern Lisp_Object Qinput_charset_conversion, Qinteger;
extern Lisp_Object Qinteger_char_or_marker_p, Qinteger_or_char_p;
extern Lisp_Object Qinteger_or_marker_p, Qintegerp, Qinteractive, Qinternal;
extern Lisp_Object Qinvalid_function, Qinvalid_read_syntax, Qio_error;
extern Lisp_Object Qiso2022, Qkey, Qkey_assoc, Qkeymap, Qlambda, Qleft, Qlf;
extern Lisp_Object Qlist, Qlistp, Qload, Qlock_shift, Qmacro, Qmagic;
extern Lisp_Object Qmalformed_property_list, Qmalloc_overhead, Qmark, Qmarkers;
extern Lisp_Object Qmax, Qmemory, Qmessage, Qminus, Qmnemonic, Qmodifiers;
extern Lisp_Object Qmono_pixmap_image_instance_p, Qmotion;
extern Lisp_Object Qmouse_leave_buffer_hook, Qmswindows, Qname, Qnas, Qnatnump;
extern Lisp_Object Qnil, Qno_ascii_cntl, Qno_ascii_eol, Qno_catch;
extern Lisp_Object Qno_conversion, Qno_iso6429, Qnone, Qnot, Qnothing;
extern Lisp_Object Qnothing_image_instance_p, Qnotice;
extern Lisp_Object Qnumber_char_or_marker_p, Qnumber_or_marker_p, Qnumberp;
extern Lisp_Object Qobject, Qold_assoc, Qold_delete, Qold_delq, Qold_rassoc;
extern Lisp_Object Qold_rassq, Qonly, Qor, Qother, Qoutput_charset_conversion;
extern Lisp_Object Qoverflow_error, Qpath, Qpoint, Qpointer, Qpointer_glyph_p;
extern Lisp_Object Qpointer_image_instance_p, Qpost_read_conversion;
extern Lisp_Object Qpre_write_conversion, Qprint, Qprint_length;
extern Lisp_Object Qprint_string_length, Qprocess, Qprogn, Qprovide, Qquit;
extern Lisp_Object Qquote, Qrange_error, Qrassoc, Qrassq, Qread_char;
extern Lisp_Object Qread_from_minibuffer, Qreally_early_error_handler;
extern Lisp_Object Qregion_beginning, Qregion_end, Qrequire, Qresource;
extern Lisp_Object Qreturn, Qreverse, Qright, Qrun_hooks, Qsans_modifiers;
extern Lisp_Object Qsave_buffers_kill_emacs, Qsearch, Qself_insert_command;
extern Lisp_Object Qsequencep, Qsetting_constant, Qseven, Qshift_jis, Qshort;
extern Lisp_Object Qsignal, Qsimple, Qsingularity_error, Qsize, Qspace;
extern Lisp_Object Qspecifier, Qstandard_input, Qstandard_output, Qstart_open;
extern Lisp_Object Qstream, Qstring, Qstring_lessp;
extern Lisp_Object Qsubwindow_image_instance_p, Qsymbol, Qsyntax, Qt, Qtest;
extern Lisp_Object Qtext, Qtext_image_instance_p, Qtimeout, Qtimestamp;
extern Lisp_Object Qtoolbar, Qtop, Qtop_level, Qtrue_list_p, Qtty, Qtype;
extern Lisp_Object Qunbound, Qundecided, Qundefined, Qunderflow_error;
extern Lisp_Object Qunderline, Qunimplemented, Quser_files_and_directories;
extern Lisp_Object Qvalue_assoc, Qvalues;
extern Lisp_Object Qvariable_documentation, Qvariable_domain, Qvector;
extern Lisp_Object Qvoid_function, Qvoid_variable, Qwarning, Qwidth, Qwindow;
extern Lisp_Object Qwindow_live_p, Qwindow_system, Qwrong_number_of_arguments;
extern Lisp_Object Qwrong_type_argument, Qx, Qy, Qyes_or_no_p;
extern Lisp_Object Vactivate_menubar_hook, Vascii_canon_table;
extern Lisp_Object Vascii_downcase_table, Vascii_eqv_table;
extern Lisp_Object Vascii_upcase_table, Vautoload_queue, Vbinary_process_input;
extern Lisp_Object Vbinary_process_output, Vblank_menubar;
extern Lisp_Object Vcharset_ascii, Vcharset_composite, Vcharset_control_1;
extern Lisp_Object Vcoding_system_for_read, Vcoding_system_for_write;
extern Lisp_Object Vcoding_system_hashtable, Vcommand_history;
extern Lisp_Object Vcommand_line_args, Vconfigure_info_directory;
extern Lisp_Object Vconsole_list, Vcontrolling_terminal;
extern Lisp_Object Vcurrent_compiled_function_annotation, Vcurrent_load_list;
extern Lisp_Object Vcurrent_mouse_event, Vcurrent_prefix_arg, Vdata_directory;
extern Lisp_Object Vdirectory_sep_char, Vdisabled_command_hook;
extern Lisp_Object Vdoc_directory, Vinternal_doc_file_name;
extern Lisp_Object Vecho_area_buffer, Vemacs_major_version;
extern Lisp_Object Vemacs_minor_version, Vexec_directory, Vexec_path;
extern Lisp_Object Vexecuting_macro, Vfeatures, Vfile_domain;
extern Lisp_Object Vfile_name_coding_system, Vinhibit_quit;
extern Lisp_Object Vinvocation_directory, Vinvocation_name;
extern Lisp_Object Vkeyboard_coding_system, Vlast_command, Vlast_command_char;
extern Lisp_Object Vlast_command_event, Vlast_input_event;
extern Lisp_Object Vload_file_name_internal;
extern Lisp_Object Vload_file_name_internal_the_purecopy, Vload_history;
extern Lisp_Object Vload_path, Vmark_even_if_inactive, Vmenubar_configuration;
extern Lisp_Object Vminibuf_preprompt, Vminibuf_prompt, Vminibuffer_zero;
extern Lisp_Object Vmirror_ascii_canon_table, Vmirror_ascii_downcase_table;
extern Lisp_Object Vmirror_ascii_eqv_table, Vmirror_ascii_upcase_table;
extern Lisp_Object Vmswindows_downcase_file_names;
extern Lisp_Object Vmswindows_get_true_file_attributes, Vobarray;
extern Lisp_Object Vprint_length, Vprint_level, Vprocess_environment;
extern Lisp_Object Vpure_uninterned_symbol_table, Vquit_flag;
extern Lisp_Object Vrecent_keys_ring, Vshell_file_name, Vsite_directory;
extern Lisp_Object Vstandard_input, Vstandard_output, Vstdio_str;
extern Lisp_Object Vsynchronous_sounds, Vsystem_name, Vterminal_coding_system;
extern Lisp_Object Vthis_command_keys, Vunread_command_event;
extern Lisp_Object Vwin32_generate_fake_inodes, Vwin32_pipe_read_delay;
extern Lisp_Object Vx_initial_argv_list;
# 41 "ralloc.c" 2
# 54 "ralloc.c"
typedef unsigned char *POINTER;
typedef unsigned long SIZE;
# 1 "/usr/include/malloc.h" 1 3
# 44 "/usr/include/malloc.h" 3
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 1 3
# 147 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2/include/stddef.h" 3
typedef int ptrdiff_t;
# 45 "/usr/include/malloc.h" 2 3
# 113 "/usr/include/malloc.h" 3
extern void * malloc (size_t __size) __attribute__ ((__malloc__));
extern void * calloc (size_t __nmemb, size_t __size)
__attribute__ ((__malloc__));
extern void * realloc (void * __ptr, size_t __size)
__attribute__ ((__malloc__));
extern void free (void * __ptr) ;
extern void cfree (void * __ptr) ;
extern void * memalign (size_t __alignment, size_t __size) ;
extern void * valloc (size_t __size) __attribute__ ((__malloc__));
extern void * pvalloc (size_t __size)
__attribute__ ((__malloc__));
extern void * (*__morecore) (ptrdiff_t __size);
extern void * __default_morecore (ptrdiff_t __size)
__attribute__ ((__malloc__));
struct mallinfo {
int arena;
int ordblks;
int smblks;
int hblks;
int hblkhd;
int usmblks;
int fsmblks;
int uordblks;
int fordblks;
int keepcost;
};
extern struct mallinfo mallinfo (void) ;
# 189 "/usr/include/malloc.h" 3
extern int mallopt (int __param, int __val) ;
extern int malloc_trim (size_t __pad) ;
extern size_t malloc_usable_size (void * __ptr) ;
extern void malloc_stats (void) ;
extern void * malloc_get_state (void) ;
extern int malloc_set_state (void * __ptr) ;
extern void (*__malloc_initialize_hook) (void);
extern void (*__free_hook) (void * __ptr, __const void *);
extern void * (*__malloc_hook) (size_t __size, __const void *);
extern void * (*__realloc_hook) (void * __ptr, size_t __size, __const void *);
extern void * (*__memalign_hook) (size_t __alignment, size_t __size, __const void *);
extern void (*__after_morecore_hook) (void);
extern void __malloc_check_init (void) ;
# 61 "ralloc.c" 2
# 1 "getpagesize.h" 1
# 64 "ralloc.c" 2
void refill_memory_reserve (void);
# 81 "ralloc.c"
void init_ralloc (void);
# 95 "ralloc.c"
static int r_alloc_initialized = 0;
static POINTER (*real_morecore) (long size);
static POINTER virtual_break_value;
static POINTER break_value;
static int page_size;
static int extra_bytes;
# 143 "ralloc.c"
typedef struct heap
{
struct heap *next;
struct heap *prev;
POINTER start;
POINTER end;
POINTER bloc_start;
POINTER free;
struct bp *first_bloc;
struct bp *last_bloc;
} *heap_ptr;
static struct heap heap_base;
static heap_ptr first_heap, last_heap;
# 182 "ralloc.c"
typedef struct bp
{
struct bp *next;
struct bp *prev;
POINTER *variable;
POINTER data;
SIZE size;
POINTER new_data;
struct heap *heap;
} *bloc_ptr;
static bloc_ptr first_bloc, last_bloc;
static int use_relocatable_buffers;
static int r_alloc_freeze_level;
# 215 "ralloc.c"
static heap_ptr
find_heap (POINTER address)
{
heap_ptr heap;
for (heap = last_heap; heap; heap = heap->prev)
{
if (heap->start <= address && address <= heap->end)
return heap;
}
return ((heap_ptr) 0);
}
# 247 "ralloc.c"
static POINTER
obtain (POINTER address, SIZE size)
{
heap_ptr heap;
SIZE already_available;
for (heap = last_heap; heap; heap = heap->prev)
{
if (heap->start <= address && address <= heap->end)
break;
}
if (! heap)
(assert_failed ("ralloc.c", 261, "abort()"));
while (heap && address + size > heap->end)
{
heap = heap->next;
if (heap == ((heap_ptr) 0))
break;
address = heap->bloc_start;
}
if (heap == ((heap_ptr) 0))
{
POINTER new = (*real_morecore)(0);
SIZE get;
already_available = (char *)last_heap->end - (char *)address;
if (new != last_heap->end)
{
heap_ptr new_heap = (heap_ptr) (((unsigned long int)(new) + sizeof(double) - 1) & ~(sizeof(double) - 1));
POINTER bloc_start = (POINTER) (((unsigned long int)((POINTER)(new_heap + 1)) + sizeof(double) - 1) & ~(sizeof(double) - 1));
if ((*real_morecore) (bloc_start - new) != new)
return 0;
new_heap->start = new;
new_heap->end = bloc_start;
new_heap->bloc_start = bloc_start;
new_heap->free = bloc_start;
new_heap->next = ((heap_ptr) 0);
new_heap->prev = last_heap;
new_heap->first_bloc = ((bloc_ptr) 0);
new_heap->last_bloc = ((bloc_ptr) 0);
last_heap->next = new_heap;
last_heap = new_heap;
address = bloc_start;
already_available = 0;
}
get = size + extra_bytes - already_available;
get = (char *) (((unsigned long int) ((char *)last_heap->end + get) + page_size - 1) & ~(page_size - 1))
- (char *) last_heap->end;
if ((*real_morecore) (get) != last_heap->end)
return 0;
last_heap->end += get;
}
return address;
}
# 341 "ralloc.c"
static void
relinquish ()
{
heap_ptr h;
int excess = 0;
for (h = last_heap; h && break_value < h->end; h = h->prev)
{
excess += (char *) h->end - (char *) ((break_value < h->bloc_start)
? h->bloc_start : break_value);
}
if (excess > extra_bytes * 2 && (*real_morecore) (0) == last_heap->end)
{
excess -= extra_bytes;
if ((char *)last_heap->end - (char *)last_heap->bloc_start <= excess)
{
if (last_heap->first_bloc != ((bloc_ptr) 0)
|| last_heap->last_bloc != ((bloc_ptr) 0))
(assert_failed ("ralloc.c", 367, "abort()"));
excess = (char *)last_heap->end - (char *)last_heap->start;
last_heap = last_heap->prev;
last_heap->next = ((heap_ptr) 0);
}
else
{
excess = (char *) last_heap->end
- (char *) (((unsigned long int) ((char *)last_heap->end - excess) + page_size - 1) & ~(page_size - 1));
last_heap->end -= excess;
}
if ((*real_morecore) (- excess) == 0)
(assert_failed ("ralloc.c", 382, "abort()"));
}
}
long r_alloc_size_in_use (void);
long
r_alloc_size_in_use ()
{
return break_value - virtual_break_value;
}
static bloc_ptr
find_bloc (POINTER *ptr)
{
bloc_ptr p = first_bloc;
while (p != ((bloc_ptr) 0))
{
if (p->variable == ptr && p->data == *ptr)
return p;
p = p->next;
}
return p;
}
static bloc_ptr
get_bloc (SIZE size)
{
bloc_ptr new_bloc;
heap_ptr heap;
if (! (new_bloc = (bloc_ptr) malloc ((sizeof (struct bp))))
|| ! (new_bloc->data = obtain (break_value, size)))
{
if (new_bloc)
free (new_bloc);
return 0;
}
break_value = new_bloc->data + size;
new_bloc->size = size;
new_bloc->next = ((bloc_ptr) 0);
new_bloc->variable = (POINTER *) ((POINTER) 0);
new_bloc->new_data = 0;
heap = find_heap (new_bloc->data);
heap->free = break_value;
new_bloc->heap = heap;
heap->last_bloc = new_bloc;
if (heap->first_bloc == ((bloc_ptr) 0))
heap->first_bloc = new_bloc;
if (first_bloc)
{
new_bloc->prev = last_bloc;
last_bloc->next = new_bloc;
last_bloc = new_bloc;
}
else
{
first_bloc = last_bloc = new_bloc;
new_bloc->prev = ((bloc_ptr) 0);
}
return new_bloc;
}
# 478 "ralloc.c"
static int
relocate_blocs (bloc_ptr bloc, heap_ptr heap, POINTER address)
{
bloc_ptr b = bloc;
if (r_alloc_freeze_level)
(assert_failed ("ralloc.c", 485, "abort()"));
while (b)
{
while (heap && address + b->size > heap->end)
{
heap = heap->next;
if (heap == ((heap_ptr) 0))
break;
address = heap->bloc_start;
}
if (heap == ((heap_ptr) 0))
{
bloc_ptr tb = b;
SIZE s = 0;
while (tb != ((bloc_ptr) 0))
{
if (tb->variable)
s += tb->size;
tb = tb->next;
}
address = obtain (address, s);
if (address == 0)
return 0;
heap = last_heap;
}
b->new_data = address;
if (b->variable)
address += b->size;
b = b->next;
}
return 1;
}
# 568 "ralloc.c"
static void
update_heap_bloc_correspondence (bloc_ptr bloc, heap_ptr heap)
{
bloc_ptr b;
if (bloc != ((bloc_ptr) 0) && bloc->prev != ((bloc_ptr) 0) && bloc->prev->heap == heap)
{
heap->last_bloc = bloc->prev;
heap->free = bloc->prev->data + bloc->prev->size;
}
else
{
heap->first_bloc = ((bloc_ptr) 0);
heap->last_bloc = ((bloc_ptr) 0);
heap->free = heap->bloc_start;
}
for (b = bloc; b != ((bloc_ptr) 0); b = b->next)
{
while (heap)
{
if (heap->bloc_start <= b->data && b->data <= heap->end)
break;
heap = heap->next;
heap->first_bloc = ((bloc_ptr) 0);
heap->last_bloc = ((bloc_ptr) 0);
heap->free = heap->bloc_start;
}
heap->free = b->data + b->size;
heap->last_bloc = b;
if (heap->first_bloc == ((bloc_ptr) 0))
heap->first_bloc = b;
b->heap = heap;
}
heap = heap->next;
while (heap)
{
heap->first_bloc = ((bloc_ptr) 0);
heap->last_bloc = ((bloc_ptr) 0);
heap->free = heap->bloc_start;
heap = heap->next;
}
}
static int
resize_bloc (bloc_ptr bloc, SIZE size)
{
bloc_ptr b;
heap_ptr heap;
POINTER address;
SIZE old_size;
if (r_alloc_freeze_level)
(assert_failed ("ralloc.c", 640, "abort()"));
if (bloc == ((bloc_ptr) 0) || size == bloc->size)
return 1;
for (heap = first_heap; heap != ((heap_ptr) 0); heap = heap->next)
{
if (heap->bloc_start <= bloc->data && bloc->data <= heap->end)
break;
}
if (heap == ((heap_ptr) 0))
(assert_failed ("ralloc.c", 652, "abort()"));
old_size = bloc->size;
bloc->size = size;
address = (bloc->prev ? bloc->prev->data + bloc->prev->size
: first_heap->bloc_start);
while (heap)
{
if (heap->bloc_start <= address && address <= heap->end)
break;
heap = heap->prev;
}
if (! relocate_blocs (bloc, heap, address))
{
bloc->size = old_size;
return 0;
}
if (size > old_size)
{
for (b = last_bloc; b != bloc; b = b->prev)
{
if (!b->variable)
{
b->size = 0;
b->data = b->new_data;
}
else
{
memmove (b->new_data, b->data, b->size);
*b->variable = b->data = b->new_data;
}
}
if (!bloc->variable)
{
bloc->size = 0;
bloc->data = bloc->new_data;
}
else
{
memmove (bloc->new_data, bloc->data, old_size);
(__extension__ (__builtin_constant_p (size - old_size) && (size - old_size) <= 16 ? ((size - old_size) == 1 ? ({ void *__s = (bloc->new_data + old_size); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (bloc->new_data + old_size); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (size - old_size)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (bloc->new_data + old_size); __builtin_memset (__s, '\0', size - old_size); __s; }) : memset (bloc->new_data + old_size, 0, size - old_size))));
*bloc->variable = bloc->data = bloc->new_data;
}
}
else
{
for (b = bloc; b != ((bloc_ptr) 0); b = b->next)
{
if (!b->variable)
{
b->size = 0;
b->data = b->new_data;
}
else
{
memmove (b->new_data, b->data, b->size);
*b->variable = b->data = b->new_data;
}
}
}
update_heap_bloc_correspondence (bloc, heap);
break_value = (last_bloc ? last_bloc->data + last_bloc->size
: first_heap->bloc_start);
return 1;
}
static void
free_bloc (bloc_ptr bloc)
{
heap_ptr heap = bloc->heap;
if (r_alloc_freeze_level)
{
bloc->variable = (POINTER *) ((POINTER) 0);
return;
}
resize_bloc (bloc, 0);
if (bloc == first_bloc && bloc == last_bloc)
{
first_bloc = last_bloc = ((bloc_ptr) 0);
}
else if (bloc == last_bloc)
{
last_bloc = bloc->prev;
last_bloc->next = ((bloc_ptr) 0);
}
else if (bloc == first_bloc)
{
first_bloc = bloc->next;
first_bloc->prev = ((bloc_ptr) 0);
}
else
{
bloc->next->prev = bloc->prev;
bloc->prev->next = bloc->next;
}
if (heap->first_bloc == bloc)
{
if (bloc->next != 0 && bloc->next->heap == heap)
heap->first_bloc = bloc->next;
else
heap->first_bloc = heap->last_bloc = ((bloc_ptr) 0);
}
if (heap->last_bloc == bloc)
{
if (bloc->prev != 0 && bloc->prev->heap == heap)
heap->last_bloc = bloc->prev;
else
heap->first_bloc = heap->last_bloc = ((bloc_ptr) 0);
}
relinquish ();
free (bloc);
}
# 793 "ralloc.c"
POINTER r_alloc_sbrk (long size);
POINTER
r_alloc_sbrk (long size)
{
bloc_ptr b;
POINTER address;
if (! r_alloc_initialized)
init_ralloc ();
if (! use_relocatable_buffers)
return (*real_morecore) (size);
if (size == 0)
return virtual_break_value;
if (size > 0)
{
POINTER new_bloc_start;
heap_ptr h = first_heap;
SIZE get = (((unsigned long int) (size) + page_size - 1) & ~(page_size - 1));
address = (POINTER) (((unsigned long int) (virtual_break_value) + page_size - 1) & ~(page_size - 1));
while ((char *) h->end < (char *) (((unsigned long int)((char *)address + get) + sizeof(double) - 1) & ~(sizeof(double) - 1)))
{
h = h->next;
if (h == ((heap_ptr) 0))
break;
address = (POINTER) (((unsigned long int) (h->start) + page_size - 1) & ~(page_size - 1));
}
if (h == ((heap_ptr) 0))
{
get += extra_bytes + page_size;
if (! obtain (address, get))
return 0;
if (first_heap == last_heap)
address = (POINTER) (((unsigned long int) (virtual_break_value) + page_size - 1) & ~(page_size - 1));
else
address = (POINTER) (((unsigned long int) (last_heap->start) + page_size - 1) & ~(page_size - 1));
h = last_heap;
}
new_bloc_start = (POINTER) (((unsigned long int)((char *)address + get) + sizeof(double) - 1) & ~(sizeof(double) - 1));
if (first_heap->bloc_start < new_bloc_start)
{
if (r_alloc_freeze_level)
return ((POINTER) 0);
if (! relocate_blocs (first_bloc, h, new_bloc_start))
return 0;
for (b = last_bloc; b != ((bloc_ptr) 0); b = b->prev)
{
memmove (b->new_data, b->data, b->size);
*b->variable = b->data = b->new_data;
}
h->bloc_start = new_bloc_start;
update_heap_bloc_correspondence (first_bloc, h);
}
if (h != first_heap)
{
first_heap->prev = ((heap_ptr) 0);
first_heap->next = h->next;
first_heap->start = h->start;
first_heap->end = h->end;
first_heap->free = h->free;
first_heap->first_bloc = h->first_bloc;
first_heap->last_bloc = h->last_bloc;
first_heap->bloc_start = h->bloc_start;
if (first_heap->next)
first_heap->next->prev = first_heap;
else
last_heap = first_heap;
}
(__extension__ (__builtin_constant_p (size) && (size) <= 16 ? ((size) == 1 ? ({ void *__s = (address); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (address); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (size)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (address); __builtin_memset (__s, '\0', size); __s; }) : memset (address, 0, size))));
}
else
{
SIZE excess = (char *)first_heap->bloc_start
- ((char *)virtual_break_value + size);
address = virtual_break_value;
if (r_alloc_freeze_level == 0 && excess > 2 * extra_bytes)
{
excess -= extra_bytes;
first_heap->bloc_start
= (POINTER) (((unsigned long int)((char *)first_heap->bloc_start - excess) + sizeof(double) - 1) & ~(sizeof(double) - 1));
relocate_blocs (first_bloc, first_heap, first_heap->bloc_start);
for (b = first_bloc; b != ((bloc_ptr) 0); b = b->next)
{
memmove (b->new_data, b->data, b->size);
*b->variable = b->data = b->new_data;
}
}
if ((char *)virtual_break_value + size < (char *)first_heap->start)
{
first_heap->start = (POINTER) ((char *)virtual_break_value + size);
}
}
virtual_break_value = (POINTER) ((char *)address + size);
break_value = (last_bloc
? last_bloc->data + last_bloc->size
: first_heap->bloc_start);
if (size < 0)
relinquish ();
return address;
}
# 944 "ralloc.c"
POINTER r_alloc (POINTER *ptr, SIZE size);
POINTER
r_alloc (POINTER *ptr, SIZE size)
{
bloc_ptr new_bloc;
if (! r_alloc_initialized)
init_ralloc ();
new_bloc = get_bloc (size);
if (new_bloc)
{
new_bloc->variable = ptr;
*ptr = new_bloc->data;
}
else
*ptr = 0;
return *ptr;
}
void r_alloc_free (POINTER *ptr);
void
r_alloc_free (POINTER *ptr)
{
bloc_ptr dead_bloc;
if (! r_alloc_initialized)
init_ralloc ();
dead_bloc = find_bloc (ptr);
if (dead_bloc == ((bloc_ptr) 0))
(assert_failed ("ralloc.c", 979, "abort()"));
free_bloc (dead_bloc);
*ptr = 0;
refill_memory_reserve ();
}
# 1003 "ralloc.c"
POINTER r_re_alloc (POINTER *ptr, SIZE size);
POINTER
r_re_alloc (POINTER *ptr, SIZE size)
{
bloc_ptr bloc;
if (! r_alloc_initialized)
init_ralloc ();
if (!*ptr)
return r_alloc (ptr, size);
if (!size)
{
r_alloc_free (ptr);
return r_alloc (ptr, 0);
}
bloc = find_bloc (ptr);
if (bloc == ((bloc_ptr) 0))
(assert_failed ("ralloc.c", 1022, "abort()"));
if (size < bloc->size)
{
if ((bloc->size - (((unsigned long int)(size) + sizeof(double) - 1) & ~(sizeof(double) - 1)) >= page_size)
&& r_alloc_freeze_level == 0)
{
resize_bloc (bloc, (((unsigned long int)(size) + sizeof(double) - 1) & ~(sizeof(double) - 1)));
}
}
else if (size > bloc->size)
{
if (r_alloc_freeze_level)
{
bloc_ptr new_bloc;
new_bloc = get_bloc ((((unsigned long int)(size) + sizeof(double) - 1) & ~(sizeof(double) - 1)));
if (new_bloc)
{
new_bloc->variable = ptr;
*ptr = new_bloc->data;
bloc->variable = (POINTER *) ((POINTER) 0);
}
else
return ((POINTER) 0);
}
else
{
if (! resize_bloc (bloc, (((unsigned long int)(size) + sizeof(double) - 1) & ~(sizeof(double) - 1))))
return ((POINTER) 0);
}
}
return *ptr;
}
void r_alloc_freeze (long size);
void
r_alloc_freeze (long size)
{
if (! r_alloc_initialized)
init_ralloc ();
if (r_alloc_freeze_level > 0)
size = 0;
while (size > 0 && r_alloc_sbrk (size) == 0)
size /= 2;
++r_alloc_freeze_level;
if (size > 0)
r_alloc_sbrk (-size);
}
void r_alloc_thaw (void);
void
r_alloc_thaw ()
{
if (! r_alloc_initialized)
init_ralloc ();
if (--r_alloc_freeze_level < 0)
(assert_failed ("ralloc.c", 1092, "abort()"));
if (!r_alloc_freeze_level)
{
bloc_ptr *b = &first_bloc;
while (*b)
if (!(*b)->variable)
free_bloc (*b);
else
b = &(*b)->next;
}
}
# 1120 "ralloc.c"
void
init_ralloc (void)
{
if (r_alloc_initialized)
return;
r_alloc_initialized = 1;
(*((void **) (&real_morecore)) = ((void *) (__morecore)));
(*((void **) (&__morecore)) = ((void *) (r_alloc_sbrk)));
first_heap = last_heap = &heap_base;
first_heap->next = first_heap->prev = ((heap_ptr) 0);
first_heap->start = first_heap->bloc_start
= virtual_break_value = break_value = (*real_morecore) (0);
if (break_value == ((POINTER) 0))
(assert_failed ("ralloc.c", 1135, "abort()"));
page_size = (getpagesize ());
extra_bytes = (((unsigned long int) (50000) + page_size - 1) & ~(page_size - 1));
mallopt (-2, 64 * 4096);
# 1150 "ralloc.c"
first_heap->end = (POINTER) (((unsigned long int) (first_heap->start) + page_size - 1) & ~(page_size - 1));
(*real_morecore) (first_heap->end - first_heap->start);
(__extension__ (__builtin_constant_p (first_heap->end - first_heap->start) && (first_heap->end - first_heap->start) <= 16 ? ((first_heap->end - first_heap->start) == 1 ? ({ void *__s = (first_heap->start); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (first_heap->start); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (first_heap->end - first_heap->start)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (first_heap->start); __builtin_memset (__s, '\0', first_heap->end - first_heap->start); __s; }) : memset (first_heap->start, 0, first_heap->end - first_heap->start))));
virtual_break_value = break_value = first_heap->bloc_start = first_heap->end;
use_relocatable_buffers = 1;
}
void r_alloc_reinit (void);
void
r_alloc_reinit ()
{
if ( ((void*) __morecore) != (void *) (r_alloc_sbrk))
{
(*((void **) (&real_morecore)) = ((void *) (__morecore)));
(*((void **) (&__morecore)) = ((void *) (r_alloc_sbrk)));
}
}
More information about the Gcc-bugs
mailing list