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