* Re: tree-ssa branch: Call for preliminary testing
2003-05-07 18:02 ` law
@ 2003-05-09 1:31 ` Qiong Cai
2003-05-09 2:02 ` Andrew Pinski
0 siblings, 1 reply; 50+ messages in thread
From: Qiong Cai @ 2003-05-09 1:31 UTC (permalink / raw)
To: law; +Cc: Diego Novillo, gcc
[-- Attachment #1: Type: text/plain, Size: 526 bytes --]
universal.i is attached.
Qiong
On Wed, May 07, 2003 at 12:02:09PM -0600, law@redhat.com wrote:
> In message <20030507175428.GA5081@cse.unsw.edu.au>, Qiong Cai writes:
> >Compiling Error:
> >1) perlbmk
> >universal.c: In function `XS_UNIVERSAL_isa':
> >universal.c:123: internal compiler error: in simplify_stmt_expr, at c-simplif
> >y.c:991
> If you could add "-save-temps" to the compilation line, recompile and send
> the resulting universal.i file to Diego and myself it would be greatly
> appreciated.
>
> Jeff
>
[-- Attachment #2: universal.i --]
[-- Type: text/plain, Size: 184447 bytes --]
# 1 "universal.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "universal.c"
# 1 "EXTERN.h" 1
# 2 "universal.c" 2
# 1 "perl.h" 1
# 137 "perl.h"
# 1 "config.h" 1
# 1 "spec_config.h" 1
# 2 "config.h" 2
# 138 "perl.h" 2
# 1 "embed.h" 1
# 140 "perl.h" 2
# 307 "perl.h"
# 1 "/usr/include/sys/types.h" 1 3 4
# 26 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 283 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 284 "/usr/include/features.h" 2 3 4
# 312 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4
# 313 "/usr/include/features.h" 2 3 4
# 27 "/usr/include/sys/types.h" 2 3 4
# 1 "/usr/include/bits/types.h" 1 3 4
# 29 "/usr/include/bits/types.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 213 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 3 4
typedef unsigned int size_t;
# 30 "/usr/include/bits/types.h" 2 3 4
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 4
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 4
# 23 "/usr/include/bits/pthreadtypes.h" 3 4
# 1 "/usr/include/bits/sched.h" 1 3 4
# 68 "/usr/include/bits/sched.h" 3 4
struct __sched_param
{
int __sched_priority;
};
# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4
typedef int __atomic_lock_t;
struct _pthread_fastlock
{
long int __status;
__atomic_lock_t __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;
# 142 "/usr/include/bits/pthreadtypes.h" 3 4
typedef unsigned long int pthread_t;
# 144 "/usr/include/bits/types.h" 2 3 4
# 31 "/usr/include/sys/types.h" 2 3 4
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;
# 61 "/usr/include/sys/types.h" 3 4
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
# 99 "/usr/include/sys/types.h" 3 4
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 132 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 70 "/usr/include/time.h" 3 4
typedef __time_t time_t;
# 82 "/usr/include/time.h" 3 4
typedef __clockid_t clockid_t;
# 94 "/usr/include/time.h" 3 4
typedef __timer_t timer_t;
# 133 "/usr/include/sys/types.h" 2 3 4
# 146 "/usr/include/sys/types.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 147 "/usr/include/sys/types.h" 2 3 4
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 190 "/usr/include/sys/types.h" 3 4
typedef int int8_t ;
typedef int int16_t ;
typedef int int32_t ;
typedef int int64_t ;
typedef unsigned int u_int8_t ;
typedef unsigned int u_int16_t ;
typedef unsigned int u_int32_t ;
typedef unsigned int u_int64_t ;
typedef int register_t ;
# 212 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 37 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/endian.h" 1 3 4
# 38 "/usr/include/endian.h" 2 3 4
# 213 "/usr/include/sys/types.h" 2 3 4
# 1 "/usr/include/sys/select.h" 1 3 4
# 31 "/usr/include/sys/select.h" 3 4
# 1 "/usr/include/bits/select.h" 1 3 4
# 32 "/usr/include/sys/select.h" 2 3 4
# 1 "/usr/include/bits/sigset.h" 1 3 4
# 23 "/usr/include/bits/sigset.h" 3 4
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 4
typedef __sigset_t sigset_t;
# 1 "/usr/include/time.h" 1 3 4
# 106 "/usr/include/time.h" 3 4
struct timespec
{
__time_t tv_sec;
long int tv_nsec;
};
# 45 "/usr/include/sys/select.h" 2 3 4
# 1 "/usr/include/bits/time.h" 1 3 4
# 67 "/usr/include/bits/time.h" 3 4
struct timeval
{
__time_t tv_sec;
__suseconds_t tv_usec;
};
# 47 "/usr/include/sys/select.h" 2 3 4
typedef __suseconds_t suseconds_t;
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 4
extern int select (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout) ;
# 118 "/usr/include/sys/select.h" 3 4
# 216 "/usr/include/sys/types.h" 2 3 4
# 1 "/usr/include/sys/sysmacros.h" 1 3 4
# 219 "/usr/include/sys/types.h" 2 3 4
# 230 "/usr/include/sys/types.h" 3 4
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 262 "/usr/include/sys/types.h" 3 4
# 308 "perl.h" 2
# 318 "perl.h"
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdarg.h" 1 3 4
# 43 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 105 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 319 "perl.h" 2
# 1 "iperlsys.h" 1
# 74 "iperlsys.h"
extern void PerlIO_init (void);
# 203 "iperlsys.h"
# 1 "perlsdio.h" 1
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 1 3 4
# 39 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 44 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4
# 54 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
typedef struct _IO_FILE FILE;
# 64 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
typedef struct _IO_FILE __FILE;
# 74 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
# 1 "/usr/include/libio.h" 1 3 4
# 32 "/usr/include/libio.h" 3 4
# 1 "/usr/include/_G_config.h" 1 3 4
# 14 "/usr/include/_G_config.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 325 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 3 4
typedef long int wchar_t;
# 354 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 3 4
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3 4
# 24 "/usr/include/_G_config.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4
# 1 "/usr/include/bits/wchar.h" 1 3 4
# 51 "/usr/include/wchar.h" 2 3 4
# 67 "/usr/include/wchar.h" 3 4
typedef struct
{
int __count;
union
{
wint_t __wch;
char __wchb[4];
} __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3 4
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 4
# 1 "/usr/include/gconv.h" 1 3 4
# 28 "/usr/include/gconv.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4
# 29 "/usr/include/gconv.h" 2 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 32 "/usr/include/gconv.h" 2 3 4
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 4
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 ;
typedef int _G_int32_t ;
typedef unsigned int _G_uint16_t ;
typedef unsigned int _G_uint32_t ;
# 33 "/usr/include/libio.h" 2 3 4
# 160 "/usr/include/libio.h" 3 4
struct _IO_jump_t; struct _IO_FILE;
# 170 "/usr/include/libio.h" 3 4
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
# 193 "/usr/include/libio.h" 3 4
};
enum __codecvt_result
{
__codecvt_ok,
__codecvt_partial,
__codecvt_error,
__codecvt_noconv
};
# 261 "/usr/include/libio.h" 3 4
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 4
__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 4
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);
# 396 "/usr/include/libio.h" 3 4
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 4
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 4
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 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4
# 89 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
typedef _G_fpos_t fpos_t;
# 138 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio_lim.h" 1 3 4
# 139 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
extern int remove (__const char *__filename) ;
extern int rename (__const char *__old, __const char *__new) ;
extern FILE *tmpfile (void) ;
# 170 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern char *tmpnam (char *__s) ;
extern char *tmpnam_r (char *__s) ;
# 187 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern char *tempnam (__const char *__dir, __const char *__pfx)
;
extern int fclose (FILE *__stream) ;
extern int fflush (FILE *__stream) ;
extern int fflush_unlocked (FILE *__stream) ;
# 210 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
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) ;
# 240 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 263 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
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, ...)
;
extern int vsnprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, __gnuc_va_list __arg)
;
# 334 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
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, ...) ;
# 360 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
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)
;
# 426 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern char *gets (char *__s) ;
# 450 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
;
# 460 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
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) ;
# 504 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
;
extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 540 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
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) ;
# 1 "/usr/include/bits/sys_errlist.h" 1 3 4
# 27 "/usr/include/bits/sys_errlist.h" 3 4
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 562 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4
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) ;
# 613 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
extern void flockfile (FILE *__stream) ;
extern int ftrylockfile (FILE *__stream) ;
extern void funlockfile (FILE *__stream) ;
# 634 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio.h" 1 3 4
# 33 "/usr/include/bits/stdio.h" 3 4
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)));
}
# 111 "/usr/include/bits/stdio.h" 3 4
extern __inline int
feof_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x10) != 0);
}
extern __inline int
ferror_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x20) != 0);
}
# 635 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stdio.h" 2 3 4
# 6 "perlsdio.h" 2
# 204 "iperlsys.h" 2
# 318 "iperlsys.h"
extern int PerlIO_sprintf (char *, int, const char *,...)
;
# 326 "perl.h" 2
# 336 "perl.h"
# 1 "/usr/include/ctype.h" 1 3 4
# 29 "/usr/include/ctype.h" 3 4
# 47 "/usr/include/ctype.h" 3 4
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 4
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 4
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 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 4
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;
}
# 276 "/usr/include/ctype.h" 3 4
# 337 "perl.h" 2
# 1 "/usr/include/locale.h" 1 3 4
# 29 "/usr/include/locale.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 30 "/usr/include/locale.h" 2 3 4
# 1 "/usr/include/bits/locale.h" 1 3 4
# 27 "/usr/include/bits/locale.h" 3 4
enum
{
__LC_CTYPE = 0,
__LC_NUMERIC = 1,
__LC_TIME = 2,
__LC_COLLATE = 3,
__LC_MONETARY = 4,
__LC_MESSAGES = 5,
__LC_ALL = 6,
__LC_PAPER = 7,
__LC_NAME = 8,
__LC_ADDRESS = 9,
__LC_TELEPHONE = 10,
__LC_MEASUREMENT = 11,
__LC_IDENTIFICATION = 12
};
# 31 "/usr/include/locale.h" 2 3 4
# 52 "/usr/include/locale.h" 3 4
struct lconv
{
char *decimal_point;
char *thousands_sep;
char *grouping;
char *int_curr_symbol;
char *currency_symbol;
char *mon_decimal_point;
char *mon_thousands_sep;
char *mon_grouping;
char *positive_sign;
char *negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
# 112 "/usr/include/locale.h" 3 4
char __int_p_cs_precedes;
char __int_p_sep_by_space;
char __int_n_cs_precedes;
char __int_n_sep_by_space;
char __int_p_sign_posn;
char __int_n_sign_posn;
};
extern char *setlocale (int __category, __const char *__locale) ;
extern struct lconv *localeconv (void) ;
# 161 "/usr/include/locale.h" 3 4
# 345 "perl.h" 2
# 361 "perl.h"
# 1 "/usr/include/setjmp.h" 1 3 4
# 28 "/usr/include/setjmp.h" 3 4
# 1 "/usr/include/bits/setjmp.h" 1 3 4
# 36 "/usr/include/bits/setjmp.h" 3 4
typedef int __jmp_buf[6];
# 31 "/usr/include/setjmp.h" 2 3 4
# 1 "/usr/include/bits/sigset.h" 1 3 4
# 32 "/usr/include/setjmp.h" 2 3 4
typedef struct __jmp_buf_tag
{
__jmp_buf __jmpbuf;
int __mask_was_saved;
__sigset_t __saved_mask;
} jmp_buf[1];
extern int setjmp (jmp_buf __env) ;
extern int _setjmp (jmp_buf __env) ;
extern int __sigsetjmp (jmp_buf __env, int __savemask) ;
# 73 "/usr/include/setjmp.h" 3 4
extern void longjmp (jmp_buf __env, int __val)
;
extern void _longjmp (jmp_buf __env, int __val)
;
typedef jmp_buf sigjmp_buf;
# 98 "/usr/include/setjmp.h" 3 4
extern void siglongjmp (sigjmp_buf __env, int __val)
;
# 362 "perl.h" 2
# 373 "perl.h"
# 1 "/usr/include/stdlib.h" 1 3 4
# 33 "/usr/include/stdlib.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 34 "/usr/include/stdlib.h" 2 3 4
# 94 "/usr/include/stdlib.h" 3 4
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
# 133 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) ;
extern double atof (__const char *__nptr) ;
extern int atoi (__const char *__nptr) ;
extern long int atol (__const char *__nptr) ;
__extension__ extern long long int atoll (__const char *__nptr)
;
extern double strtod (__const char *__restrict __nptr,
char **__restrict __endptr) ;
# 163 "/usr/include/stdlib.h" 3 4
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)
;
# 250 "/usr/include/stdlib.h" 3 4
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);
}
# 325 "/usr/include/stdlib.h" 3 4
__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 4
extern char *l64a (long int __n) ;
extern long int a64l (__const char *__s) ;
# 397 "/usr/include/stdlib.h" 3 4
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 4
extern void *malloc (size_t __size) ;
extern void *calloc (size_t __nmemb, size_t __size)
;
extern void *realloc (void *__ptr, size_t __size) ;
extern void free (void *__ptr) ;
extern void cfree (void *__ptr) ;
# 1 "/usr/include/alloca.h" 1 3 4
# 25 "/usr/include/alloca.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 26 "/usr/include/alloca.h" 2 3 4
extern void *alloca (size_t __size) ;
# 547 "/usr/include/stdlib.h" 2 3 4
extern void *valloc (size_t __size) ;
# 561 "/usr/include/stdlib.h" 3 4
extern void abort (void) ;
extern int atexit (void (*__func) (void)) ;
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
;
extern void exit (int __status) ;
# 587 "/usr/include/stdlib.h" 3 4
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 4
extern char *mktemp (char *__template) ;
extern int mkstemp (char *__template) ;
# 650 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) ;
extern int system (__const char *__command) ;
# 672 "/usr/include/stdlib.h" 3 4
extern char *realpath (__const char *__restrict __name,
char *__restrict __resolved) ;
typedef int (*__compar_fn_t) (__const void *, __const void *);
# 689 "/usr/include/stdlib.h" 3 4
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) ;
extern long int labs (long int __x) ;
# 710 "/usr/include/stdlib.h" 3 4
extern div_t div (int __numer, int __denom)
;
extern ldiv_t ldiv (long int __numer, long int __denom)
;
# 728 "/usr/include/stdlib.h" 3 4
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) ;
# 858 "/usr/include/stdlib.h" 3 4
extern int getloadavg (double __loadavg[], int __nelem) ;
# 374 "perl.h" 2
# 426 "perl.h"
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 151 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 427 "perl.h" 2
# 1 "/usr/include/string.h" 1 3 4
# 28 "/usr/include/string.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 34 "/usr/include/string.h" 2 3 4
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)
;
extern void *memchr (__const void *__s, int __c, size_t __n)
;
# 77 "/usr/include/string.h" 3 4
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)
;
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
;
extern int strcoll (__const char *__s1, __const char *__s2)
;
extern size_t strxfrm (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
# 120 "/usr/include/string.h" 3 4
extern char *strdup (__const char *__s) ;
# 155 "/usr/include/string.h" 3 4
extern char *strchr (__const char *__s, int __c) ;
extern char *strrchr (__const char *__s, int __c) ;
# 167 "/usr/include/string.h" 3 4
extern size_t strcspn (__const char *__s, __const char *__reject)
;
extern size_t strspn (__const char *__s, __const char *__accept)
;
extern char *strpbrk (__const char *__s, __const char *__accept)
;
extern char *strstr (__const char *__haystack, __const char *__needle)
;
# 187 "/usr/include/string.h" 3 4
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) ;
# 218 "/usr/include/string.h" 3 4
extern size_t strlen (__const char *__s) ;
# 229 "/usr/include/string.h" 3 4
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)
;
extern char *index (__const char *__s, int __c) ;
extern char *rindex (__const char *__s, int __c) ;
extern int ffs (int __i) ;
# 272 "/usr/include/string.h" 3 4
extern int strcasecmp (__const char *__s1, __const char *__s2)
;
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
;
# 294 "/usr/include/string.h" 3 4
extern char *strsep (char **__restrict __stringp,
__const char *__restrict __delim) ;
# 357 "/usr/include/string.h" 3 4
# 1 "/usr/include/bits/string.h" 1 3 4
# 358 "/usr/include/string.h" 2 3 4
# 1 "/usr/include/bits/string2.h" 1 3 4
# 387 "/usr/include/bits/string2.h" 3 4
extern void *__rawmemchr (const void *__s, int __c);
# 917 "/usr/include/bits/string2.h" 3 4
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 4
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 4
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 4
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 4
extern char *__strsep_g (char **__stringp, __const char *__delim);
# 1133 "/usr/include/bits/string2.h" 3 4
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 4
extern char *__strdup (__const char *__string) ;
# 1233 "/usr/include/bits/string2.h" 3 4
extern char *__strndup (__const char *__string, size_t __n)
;
# 361 "/usr/include/string.h" 2 3 4
# 434 "perl.h" 2
# 537 "perl.h"
# 1 "/usr/include/sys/stat.h" 1 3 4
# 96 "/usr/include/sys/stat.h" 3 4
# 1 "/usr/include/bits/stat.h" 1 3 4
# 36 "/usr/include/bits/stat.h" 3 4
struct stat
{
__dev_t st_dev;
unsigned short int __pad1;
__ino_t st_ino;
__mode_t st_mode;
__nlink_t st_nlink;
__uid_t st_uid;
__gid_t st_gid;
__dev_t st_rdev;
unsigned short int __pad2;
__off_t st_size;
__blksize_t st_blksize;
__blkcnt_t st_blocks;
__time_t st_atime;
unsigned long int __unused1;
__time_t st_mtime;
unsigned long int __unused2;
__time_t st_ctime;
unsigned long int __unused3;
unsigned long int __unused4;
unsigned long int __unused5;
};
# 99 "/usr/include/sys/stat.h" 2 3 4
# 200 "/usr/include/sys/stat.h" 3 4
extern int stat (__const char *__restrict __file,
struct stat *__restrict __buf) ;
extern int fstat (int __fd, struct stat *__buf) ;
# 228 "/usr/include/sys/stat.h" 3 4
extern int lstat (__const char *__restrict __file,
struct stat *__restrict __buf) ;
# 249 "/usr/include/sys/stat.h" 3 4
extern int chmod (__const char *__file, __mode_t __mode) ;
extern int fchmod (int __fd, __mode_t __mode) ;
extern __mode_t umask (__mode_t __mask) ;
# 268 "/usr/include/sys/stat.h" 3 4
extern int mkdir (__const char *__path, __mode_t __mode) ;
extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
;
extern int mkfifo (__const char *__path, __mode_t __mode) ;
# 306 "/usr/include/sys/stat.h" 3 4
extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) ;
extern int __xstat (int __ver, __const char *__filename,
struct stat *__stat_buf) ;
extern int __lxstat (int __ver, __const char *__filename,
struct stat *__stat_buf) ;
# 337 "/usr/include/sys/stat.h" 3 4
extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
__dev_t *__dev) ;
extern __inline__ int stat (__const char *__path,
struct stat *__statbuf)
{
return __xstat (3, __path, __statbuf);
}
extern __inline__ int lstat (__const char *__path,
struct stat *__statbuf)
{
return __lxstat (3, __path, __statbuf);
}
extern __inline__ int fstat (int __fd, struct stat *__statbuf)
{
return __fxstat (3, __fd, __statbuf);
}
extern __inline__ int mknod (__const char *__path, __mode_t __mode,
__dev_t __dev)
{
return __xmknod (1, __path, __mode, &__dev);
}
# 395 "/usr/include/sys/stat.h" 3 4
# 538 "perl.h" 2
# 566 "perl.h"
# 1 "/usr/include/sys/time.h" 1 3 4
# 26 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 27 "/usr/include/sys/time.h" 2 3 4
# 1 "/usr/include/bits/time.h" 1 3 4
# 29 "/usr/include/sys/time.h" 2 3 4
# 38 "/usr/include/sys/time.h" 3 4
# 56 "/usr/include/sys/time.h" 3 4
struct timezone
{
int tz_minuteswest;
int tz_dsttime;
};
typedef struct timezone *__restrict __timezone_ptr_t;
# 72 "/usr/include/sys/time.h" 3 4
extern int gettimeofday (struct timeval *__restrict __tv,
__timezone_ptr_t __tz) ;
extern int settimeofday (__const struct timeval *__tv,
__const struct timezone *__tz) ;
extern int adjtime (__const struct timeval *__delta,
struct timeval *__olddelta) ;
enum __itimer_which
{
ITIMER_REAL = 0,
ITIMER_VIRTUAL = 1,
ITIMER_PROF = 2
};
struct itimerval
{
struct timeval it_interval;
struct timeval it_value;
};
typedef int __itimer_which_t;
extern int getitimer (__itimer_which_t __which,
struct itimerval *__value) ;
extern int setitimer (__itimer_which_t __which,
__const struct itimerval *__restrict __new,
struct itimerval *__restrict __old) ;
extern int utimes (__const char *__file, __const struct timeval __tvp[2])
;
# 171 "/usr/include/sys/time.h" 3 4
# 567 "perl.h" 2
# 1 "/usr/include/sys/times.h" 1 3 4
# 29 "/usr/include/sys/times.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 59 "/usr/include/time.h" 3 4
typedef __clock_t clock_t;
# 30 "/usr/include/sys/times.h" 2 3 4
struct tms
{
clock_t tms_utime;
clock_t tms_stime;
clock_t tms_cutime;
clock_t tms_cstime;
};
extern clock_t times (struct tms *__buffer) ;
# 574 "perl.h" 2
# 1 "/usr/include/errno.h" 1 3 4
# 32 "/usr/include/errno.h" 3 4
# 1 "/usr/include/bits/errno.h" 1 3 4
# 25 "/usr/include/bits/errno.h" 3 4
# 1 "/usr/include/linux/errno.h" 1 3 4
# 1 "/usr/include/asm/errno.h" 1 3 4
# 5 "/usr/include/linux/errno.h" 2 3 4
# 26 "/usr/include/bits/errno.h" 2 3 4
# 36 "/usr/include/bits/errno.h" 3 4
extern int errno;
extern int *__errno_location (void) ;
# 37 "/usr/include/errno.h" 2 3 4
# 59 "/usr/include/errno.h" 3 4
# 581 "perl.h" 2
# 618 "perl.h"
char *strerror (int);
# 637 "perl.h"
# 1 "/usr/include/sys/ioctl.h" 1 3 4
# 24 "/usr/include/sys/ioctl.h" 3 4
# 1 "/usr/include/bits/ioctls.h" 1 3 4
# 24 "/usr/include/bits/ioctls.h" 3 4
# 1 "/usr/include/asm/ioctls.h" 1 3 4
# 1 "/usr/include/asm/ioctl.h" 1 3 4
# 5 "/usr/include/asm/ioctls.h" 2 3 4
# 25 "/usr/include/bits/ioctls.h" 2 3 4
# 28 "/usr/include/sys/ioctl.h" 2 3 4
# 1 "/usr/include/bits/ioctl-types.h" 1 3 4
# 28 "/usr/include/bits/ioctl-types.h" 3 4
struct winsize
{
unsigned short int ws_row;
unsigned short int ws_col;
unsigned short int ws_xpixel;
unsigned short int ws_ypixel;
};
struct termio
{
unsigned short int c_iflag;
unsigned short int c_oflag;
unsigned short int c_cflag;
unsigned short int c_lflag;
unsigned char c_line;
unsigned char c_cc[8];
};
# 31 "/usr/include/sys/ioctl.h" 2 3 4
# 1 "/usr/include/sys/ttydefaults.h" 1 3 4
# 38 "/usr/include/sys/ioctl.h" 2 3 4
extern int ioctl (int __fd, unsigned long int __request, ...) ;
# 638 "perl.h" 2
# 660 "perl.h"
# 1 "/usr/include/dirent.h" 1 3 4
# 28 "/usr/include/dirent.h" 3 4
# 62 "/usr/include/dirent.h" 3 4
# 1 "/usr/include/bits/dirent.h" 1 3 4
# 23 "/usr/include/bits/dirent.h" 3 4
struct dirent
{
__ino_t d_ino;
__off_t d_off;
unsigned short int d_reclen;
unsigned char d_type;
char d_name[256];
};
# 63 "/usr/include/dirent.h" 2 3 4
# 98 "/usr/include/dirent.h" 3 4
enum
{
DT_UNKNOWN = 0,
DT_FIFO = 1,
DT_CHR = 2,
DT_DIR = 4,
DT_BLK = 6,
DT_REG = 8,
DT_LNK = 10,
DT_SOCK = 12,
DT_WHT = 14
};
# 128 "/usr/include/dirent.h" 3 4
typedef struct __dirstream DIR;
extern DIR *opendir (__const char *__name) ;
extern int closedir (DIR *__dirp) ;
# 146 "/usr/include/dirent.h" 3 4
extern struct dirent *readdir (DIR *__dirp) ;
# 163 "/usr/include/dirent.h" 3 4
extern int readdir_r (DIR *__restrict __dirp,
struct dirent *__restrict __entry,
struct dirent **__restrict __result) ;
# 186 "/usr/include/dirent.h" 3 4
extern void rewinddir (DIR *__dirp) ;
extern void seekdir (DIR *__dirp, long int __pos) ;
extern long int telldir (DIR *__dirp) ;
extern int dirfd (DIR *__dirp) ;
# 1 "/usr/include/bits/posix1_lim.h" 1 3 4
# 126 "/usr/include/bits/posix1_lim.h" 3 4
# 1 "/usr/include/bits/local_lim.h" 1 3 4
# 36 "/usr/include/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 37 "/usr/include/bits/local_lim.h" 2 3 4
# 127 "/usr/include/bits/posix1_lim.h" 2 3 4
# 210 "/usr/include/dirent.h" 2 3 4
# 220 "/usr/include/dirent.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/stddef.h" 1 3 4
# 221 "/usr/include/dirent.h" 2 3 4
extern int scandir (__const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (__const struct dirent *),
int (*__cmp) (__const void *, __const void *)) ;
# 255 "/usr/include/dirent.h" 3 4
extern int alphasort (__const void *__e1, __const void *__e2)
;
# 300 "/usr/include/dirent.h" 3 4
extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
size_t __nbytes,
__off_t *__restrict __basep) ;
# 323 "/usr/include/dirent.h" 3 4
# 661 "perl.h" 2
# 840 "perl.h"
typedef long IV;
typedef unsigned long UV;
# 860 "perl.h"
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 1 3 4
# 11 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/syslimits.h" 1 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 1 3 4
# 122 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 148 "/usr/include/limits.h" 3 4
# 1 "/usr/include/bits/posix2_lim.h" 1 3 4
# 149 "/usr/include/limits.h" 2 3 4
# 123 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 2 3 4
# 8 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/syslimits.h" 2 3 4
# 12 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/limits.h" 2 3 4
# 861 "perl.h" 2
# 1041 "perl.h"
typedef size_t STRLEN;
typedef struct op OP;
typedef struct cop COP;
typedef struct unop UNOP;
typedef struct binop BINOP;
typedef struct listop LISTOP;
typedef struct logop LOGOP;
typedef struct condop CONDOP;
typedef struct pmop PMOP;
typedef struct svop SVOP;
typedef struct gvop GVOP;
typedef struct pvop PVOP;
typedef struct loop LOOP;
typedef struct Outrec Outrec;
typedef struct interpreter PerlInterpreter;
typedef struct ff FF;
typedef struct sv SV;
typedef struct av AV;
typedef struct hv HV;
typedef struct cv CV;
typedef struct regexp REGEXP;
typedef struct gp GP;
typedef struct gv GV;
typedef struct io IO;
typedef struct context PERL_CONTEXT;
typedef struct block BLOCK;
typedef struct magic MAGIC;
typedef struct xrv XRV;
typedef struct xpv XPV;
typedef struct xpviv XPVIV;
typedef struct xpvuv XPVUV;
typedef struct xpvnv XPVNV;
typedef struct xpvmg XPVMG;
typedef struct xpvlv XPVLV;
typedef struct xpvav XPVAV;
typedef struct xpvhv XPVHV;
typedef struct xpvgv XPVGV;
typedef struct xpvcv XPVCV;
typedef struct xpvbm XPVBM;
typedef struct xpvfm XPVFM;
typedef struct xpvio XPVIO;
typedef struct mgvtbl MGVTBL;
typedef union any ANY;
# 1 "handy.h" 1
# 108 "handy.h"
typedef char I8;
typedef unsigned char U8;
typedef short I16;
typedef unsigned short U16;
# 130 "handy.h"
typedef long I32;
typedef unsigned long U32;
# 259 "handy.h"
typedef U16 line_t;
# 1091 "perl.h" 2
typedef I32 (*filter_t) (int, SV *, int);
# 1121 "perl.h"
# 1 "unixish.h" 1
# 93 "unixish.h"
# 1 "/usr/include/signal.h" 1 3 4
# 31 "/usr/include/signal.h" 3 4
# 1 "/usr/include/bits/sigset.h" 1 3 4
# 103 "/usr/include/bits/sigset.h" 3 4
extern int __sigismember (__const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);
# 117 "/usr/include/bits/sigset.h" 3 4
extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; }
extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); }
extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); }
# 34 "/usr/include/signal.h" 2 3 4
typedef __sig_atomic_t sig_atomic_t;
# 56 "/usr/include/signal.h" 3 4
# 1 "/usr/include/bits/signum.h" 1 3 4
# 57 "/usr/include/signal.h" 2 3 4
# 71 "/usr/include/signal.h" 3 4
typedef void (*__sighandler_t) (int);
extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
;
# 87 "/usr/include/signal.h" 3 4
extern __sighandler_t signal (int __sig, __sighandler_t __handler) ;
# 110 "/usr/include/signal.h" 3 4
extern int kill (__pid_t __pid, int __sig) ;
extern int killpg (__pid_t __pgrp, int __sig) ;
extern int raise (int __sig) ;
extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) ;
extern int gsignal (int __sig) ;
extern void psignal (int __sig, __const char *__s) ;
# 140 "/usr/include/signal.h" 3 4
extern int __sigpause (int __sig_or_mask, int __is_sig) ;
extern int sigpause (int __mask) ;
# 168 "/usr/include/signal.h" 3 4
extern int sigblock (int __mask) ;
extern int sigsetmask (int __mask) ;
extern int siggetmask (void) ;
# 188 "/usr/include/signal.h" 3 4
typedef __sighandler_t sig_t;
# 1 "/usr/include/time.h" 1 3 4
# 197 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/bits/siginfo.h" 1 3 4
# 25 "/usr/include/bits/siginfo.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 26 "/usr/include/bits/siginfo.h" 2 3 4
typedef union sigval
{
int sival_int;
void *sival_ptr;
} sigval_t;
# 51 "/usr/include/bits/siginfo.h" 3 4
typedef struct siginfo
{
int si_signo;
int si_errno;
int si_code;
union
{
int _pad[((128 / sizeof (int)) - 3)];
struct
{
__pid_t si_pid;
__uid_t si_uid;
} _kill;
struct
{
unsigned int _timer1;
unsigned int _timer2;
} _timer;
struct
{
__pid_t si_pid;
__uid_t si_uid;
sigval_t si_sigval;
} _rt;
struct
{
__pid_t si_pid;
__uid_t si_uid;
int si_status;
__clock_t si_utime;
__clock_t si_stime;
} _sigchld;
struct
{
void *si_addr;
} _sigfault;
struct
{
long int si_band;
int si_fd;
} _sigpoll;
} _sifields;
} siginfo_t;
# 128 "/usr/include/bits/siginfo.h" 3 4
enum
{
SI_ASYNCNL = -6,
SI_SIGIO,
SI_ASYNCIO,
SI_MESGQ,
SI_TIMER,
SI_QUEUE,
SI_USER,
SI_KERNEL = 0x80
};
enum
{
ILL_ILLOPC = 1,
ILL_ILLOPN,
ILL_ILLADR,
ILL_ILLTRP,
ILL_PRVOPC,
ILL_PRVREG,
ILL_COPROC,
ILL_BADSTK
};
enum
{
FPE_INTDIV = 1,
FPE_INTOVF,
FPE_FLTDIV,
FPE_FLTOVF,
FPE_FLTUND,
FPE_FLTRES,
FPE_FLTINV,
FPE_FLTSUB
};
enum
{
SEGV_MAPERR = 1,
SEGV_ACCERR
};
enum
{
BUS_ADRALN = 1,
BUS_ADRERR,
BUS_OBJERR
};
enum
{
TRAP_BRKPT = 1,
TRAP_TRACE
};
enum
{
CLD_EXITED = 1,
CLD_KILLED,
CLD_DUMPED,
CLD_TRAPPED,
CLD_STOPPED,
CLD_CONTINUED
};
enum
{
POLL_IN = 1,
POLL_OUT,
POLL_MSG,
POLL_ERR,
POLL_PRI,
POLL_HUP
};
# 271 "/usr/include/bits/siginfo.h" 3 4
struct __pthread_attr_s;
typedef struct sigevent
{
sigval_t sigev_value;
int sigev_signo;
int sigev_notify;
union
{
int _pad[((64 / sizeof (int)) - 3)];
struct
{
void (*_function) (sigval_t);
struct __pthread_attr_s *_attribute;
} _sigev_thread;
} _sigev_un;
} sigevent_t;
enum
{
SIGEV_SIGNAL = 0,
SIGEV_NONE,
SIGEV_THREAD
};
# 200 "/usr/include/signal.h" 2 3 4
extern int sigemptyset (sigset_t *__set) ;
extern int sigfillset (sigset_t *__set) ;
extern int sigaddset (sigset_t *__set, int __signo) ;
extern int sigdelset (sigset_t *__set, int __signo) ;
extern int sigismember (__const sigset_t *__set, int __signo) ;
# 232 "/usr/include/signal.h" 3 4
# 1 "/usr/include/bits/sigaction.h" 1 3 4
# 25 "/usr/include/bits/sigaction.h" 3 4
struct sigaction
{
union
{
__sighandler_t sa_handler;
void (*sa_sigaction) (int, siginfo_t *, void *);
}
__sigaction_handler;
__sigset_t sa_mask;
int sa_flags;
void (*sa_restorer) (void);
};
# 233 "/usr/include/signal.h" 2 3 4
extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
sigset_t *__restrict __oset) ;
extern int sigsuspend (__const sigset_t *__set) ;
extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
struct sigaction *__restrict __oact) ;
extern int sigpending (sigset_t *__set) ;
extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
;
extern int sigwaitinfo (__const sigset_t *__restrict __set,
siginfo_t *__restrict __info) ;
extern int sigtimedwait (__const sigset_t *__restrict __set,
siginfo_t *__restrict __info,
__const struct timespec *__restrict __timeout)
;
extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
;
# 278 "/usr/include/signal.h" 3 4
extern __const char *__const _sys_siglist[64];
extern __const char *__const sys_siglist[64];
struct sigvec
{
__sighandler_t sv_handler;
int sv_mask;
int sv_flags;
};
# 302 "/usr/include/signal.h" 3 4
extern int sigvec (int __sig, __const struct sigvec *__vec,
struct sigvec *__ovec) ;
# 1 "/usr/include/bits/sigcontext.h" 1 3 4
# 28 "/usr/include/bits/sigcontext.h" 3 4
# 1 "/usr/include/asm/sigcontext.h" 1 3 4
# 18 "/usr/include/asm/sigcontext.h" 3 4
struct _fpreg {
unsigned short significand[4];
unsigned short exponent;
};
struct _fpxreg {
unsigned short significand[4];
unsigned short exponent;
unsigned short padding[3];
};
struct _xmmreg {
unsigned long element[4];
};
struct _fpstate {
unsigned long cw;
unsigned long sw;
unsigned long tag;
unsigned long ipoff;
unsigned long cssel;
unsigned long dataoff;
unsigned long datasel;
struct _fpreg _st[8];
unsigned short status;
unsigned short magic;
unsigned long _fxsr_env[6];
unsigned long mxcsr;
unsigned long reserved;
struct _fpxreg _fxsr_st[8];
struct _xmmreg _xmm[8];
unsigned long padding[56];
};
struct sigcontext {
unsigned short gs, __gsh;
unsigned short fs, __fsh;
unsigned short es, __esh;
unsigned short Perl_ds, __dsh;
unsigned long edi;
unsigned long esi;
unsigned long ebp;
unsigned long esp;
unsigned long ebx;
unsigned long edx;
unsigned long ecx;
unsigned long eax;
unsigned long trapno;
unsigned long err;
unsigned long eip;
unsigned short cs, __csh;
unsigned long eflags;
unsigned long esp_at_signal;
unsigned short ss, __ssh;
struct _fpstate * fpstate;
unsigned long oldmask;
unsigned long cr2;
};
# 29 "/usr/include/bits/sigcontext.h" 2 3 4
# 308 "/usr/include/signal.h" 2 3 4
extern int sigreturn (struct sigcontext *__scp) ;
# 320 "/usr/include/signal.h" 3 4
extern int siginterrupt (int __sig, int __interrupt) ;
# 1 "/usr/include/bits/sigstack.h" 1 3 4
# 26 "/usr/include/bits/sigstack.h" 3 4
struct sigstack
{
void *ss_sp;
int ss_onstack;
};
enum
{
SS_ONSTACK = 1,
SS_DISABLE
};
# 50 "/usr/include/bits/sigstack.h" 3 4
typedef struct sigaltstack
{
void *ss_sp;
int ss_flags;
size_t ss_size;
} stack_t;
# 323 "/usr/include/signal.h" 2 3 4
extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) ;
extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
struct sigaltstack *__restrict __oss) ;
# 358 "/usr/include/signal.h" 3 4
# 1 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/bits/sigthread.h" 1 3 4
# 40 "/tmp_amd/qin/import/1/qiongc/gcc-ssa/lib/gcc-lib/i686-pc-linux-gnu/3.5-tree-ssa/include/bits/sigthread.h" 3 4
extern int pthread_sigmask (int __how,
__const __sigset_t *__restrict __newmask,
__sigset_t *__restrict __oldmask);
extern int pthread_kill (pthread_t __thr, int __signo) ;
# 359 "/usr/include/signal.h" 2 3 4
extern int __libc_current_sigrtmin (void) ;
extern int __libc_current_sigrtmax (void) ;
# 94 "unixish.h" 2
# 1122 "perl.h" 2
# 1248 "perl.h"
union any {
void* any_ptr;
I32 any_i32;
IV any_iv;
long any_long;
void (*any_dptr) (void*);
};
# 1268 "perl.h"
# 1 "regexp.h" 1
# 12 "regexp.h"
struct regnode {
U8 flags;
U8 type;
U16 next_off;
};
typedef struct regnode regnode;
struct reg_data {
U32 count;
U8 *what;
void* data[1];
};
struct reg_substr_datum {
I32 min_offset;
I32 max_offset;
SV *substr;
};
struct reg_substr_data {
struct reg_substr_datum data[3];
};
typedef struct regexp {
I32 refcnt;
char **startp;
char **endp;
regnode *regstclass;
I32 minlen;
I32 prelen;
U32 nparens;
U32 lastparen;
char *precomp;
char *subbase;
char *subbeg;
char *subend;
U16 naughty;
U16 reganch;
# 62 "regexp.h"
struct reg_substr_data *substrs;
struct reg_data *data;
regnode program[1];
} regexp;
# 1269 "perl.h" 2
# 1 "sv.h" 1
# 14 "sv.h"
typedef enum {
SVt_NULL,
SVt_IV,
SVt_NV,
SVt_RV,
SVt_PV,
SVt_PVIV,
SVt_PVNV,
SVt_PVMG,
SVt_PVBM,
SVt_PVLV,
SVt_PVAV,
SVt_PVHV,
SVt_PVCV,
SVt_PVGV,
SVt_PVFM,
SVt_PVIO
} svtype;
struct sv {
void* sv_any;
U32 sv_refcnt;
U32 sv_flags;
};
struct gv {
XPVGV* sv_any;
U32 sv_refcnt;
U32 sv_flags;
};
struct cv {
XPVCV* sv_any;
U32 sv_refcnt;
U32 sv_flags;
};
struct av {
XPVAV* sv_any;
U32 sv_refcnt;
U32 sv_flags;
};
struct hv {
XPVHV* sv_any;
U32 sv_refcnt;
U32 sv_flags;
};
struct io {
XPVIO* sv_any;
U32 sv_refcnt;
U32 sv_flags;
};
# 168 "sv.h"
struct xrv {
SV * xrv_rv;
};
struct xpv {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
};
struct xpviv {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xiv_iv;
};
struct xpvuv {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
UV xuv_uv;
};
struct xpvnv {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xiv_iv;
double xnv_nv;
};
struct xpvmg {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xiv_iv;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
};
struct xpvlv {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xiv_iv;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
STRLEN xlv_targoff;
STRLEN xlv_targlen;
SV* xlv_targ;
char xlv_type;
};
struct xpvgv {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xiv_iv;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
GP* xgv_gp;
char* xgv_name;
STRLEN xgv_namelen;
HV* xgv_stash;
U8 xgv_flags;
};
struct xpvbm {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xiv_iv;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
I32 xbm_useful;
U16 xbm_previous;
U8 xbm_rare;
};
typedef U16 cv_flags_t;
struct xpvfm {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xiv_iv;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
HV * xcv_stash;
OP * xcv_start;
OP * xcv_root;
void (*xcv_xsub)(CV* );
ANY xcv_xsubany;
GV * xcv_gv;
GV * xcv_filegv;
long xcv_depth;
AV * xcv_padlist;
CV * xcv_outside;
cv_flags_t xcv_flags;
I32 xfm_lines;
};
struct xpvio {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xiv_iv;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
FILE * xio_ifp;
FILE * xio_ofp;
DIR * xio_dirp;
long xio_lines;
long xio_page;
long xio_page_len;
long xio_lines_left;
char * xio_top_name;
GV * xio_top_gv;
char * xio_fmt_name;
GV * xio_fmt_gv;
char * xio_bottom_name;
GV * xio_bottom_gv;
short xio_subprocess;
char xio_type;
char xio_flags;
};
# 1270 "perl.h" 2
# 1 "util.h" 1
# 1271 "perl.h" 2
# 1 "form.h" 1
# 1272 "perl.h" 2
# 1 "gv.h" 1
# 10 "gv.h"
struct gp {
SV * gp_sv;
U32 gp_refcnt;
struct io * gp_io;
CV * gp_form;
AV * gp_av;
HV * gp_hv;
GV * gp_egv;
CV * gp_cv;
U32 gp_cvgen;
I32 gp_lastexpr;
line_t gp_line;
GV * gp_filegv;
};
# 1273 "perl.h" 2
# 1 "cv.h" 1
# 12 "cv.h"
struct xpvcv {
char * xpv_pv;
STRLEN xpv_cur;
STRLEN xpv_len;
IV xof_off;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
HV * xcv_stash;
OP * xcv_start;
OP * xcv_root;
void (*xcv_xsub) (CV* );
ANY xcv_xsubany;
GV * xcv_gv;
GV * xcv_filegv;
long xcv_depth;
AV * xcv_padlist;
CV * xcv_outside;
cv_flags_t xcv_flags;
};
# 1274 "perl.h" 2
# 1 "opcode.h" 1
typedef enum {
OP_NULL,
OP_STUB,
OP_SCALAR,
OP_PUSHMARK,
OP_WANTARRAY,
OP_CONST,
OP_GVSV,
OP_GV,
OP_GELEM,
OP_PADSV,
OP_PADAV,
OP_PADHV,
OP_PADANY,
OP_PUSHRE,
OP_RV2GV,
OP_RV2SV,
OP_AV2ARYLEN,
OP_RV2CV,
OP_ANONCODE,
OP_PROTOTYPE,
OP_REFGEN,
OP_SREFGEN,
OP_REF,
OP_BLESS,
OP_BACKTICK,
OP_GLOB,
OP_READLINE,
OP_RCATLINE,
OP_REGCMAYBE,
OP_REGCRESET,
OP_REGCOMP,
OP_MATCH,
OP_QR,
OP_SUBST,
OP_SUBSTCONT,
OP_TRANS,
OP_SASSIGN,
OP_AASSIGN,
OP_CHOP,
OP_SCHOP,
OP_CHOMP,
OP_SCHOMP,
OP_DEFINED,
OP_UNDEF,
OP_STUDY,
OP_POS,
OP_PREINC,
OP_I_PREINC,
OP_PREDEC,
OP_I_PREDEC,
OP_POSTINC,
OP_I_POSTINC,
OP_POSTDEC,
OP_I_POSTDEC,
OP_POW,
OP_MULTIPLY,
OP_I_MULTIPLY,
OP_DIVIDE,
OP_I_DIVIDE,
OP_MODULO,
OP_I_MODULO,
OP_REPEAT,
OP_ADD,
OP_I_ADD,
OP_SUBTRACT,
OP_I_SUBTRACT,
OP_CONCAT,
OP_STRINGIFY,
OP_LEFT_SHIFT,
OP_RIGHT_SHIFT,
OP_LT,
OP_I_LT,
OP_GT,
OP_I_GT,
OP_LE,
OP_I_LE,
OP_GE,
OP_I_GE,
OP_EQ,
OP_I_EQ,
OP_NE,
OP_I_NE,
OP_NCMP,
OP_I_NCMP,
OP_SLT,
OP_SGT,
OP_SLE,
OP_SGE,
OP_SEQ,
OP_SNE,
OP_SCMP,
OP_BIT_AND,
OP_BIT_XOR,
OP_BIT_OR,
OP_NEGATE,
OP_I_NEGATE,
OP_NOT,
OP_COMPLEMENT,
OP_ATAN2,
OP_SIN,
OP_COS,
OP_RAND,
OP_SRAND,
OP_EXP,
OP_LOG,
OP_SQRT,
OP_INT,
OP_HEX,
OP_OCT,
OP_ABS,
OP_LENGTH,
OP_SUBSTR,
OP_VEC,
OP_INDEX,
OP_RINDEX,
OP_SPRINTF,
OP_FORMLINE,
OP_ORD,
OP_CHR,
OP_CRYPT,
OP_UCFIRST,
OP_LCFIRST,
OP_UC,
OP_LC,
OP_QUOTEMETA,
OP_RV2AV,
OP_AELEMFAST,
OP_AELEM,
OP_ASLICE,
OP_EACH,
OP_VALUES,
OP_KEYS,
OP_DELETE,
OP_EXISTS,
OP_RV2HV,
OP_HELEM,
OP_HSLICE,
OP_UNPACK,
OP_PACK,
OP_SPLIT,
OP_JOIN,
OP_LIST,
OP_LSLICE,
OP_ANONLIST,
OP_ANONHASH,
OP_SPLICE,
OP_PUSH,
OP_POP,
OP_SHIFT,
OP_UNSHIFT,
OP_SORT,
OP_REVERSE,
OP_GREPSTART,
OP_GREPWHILE,
OP_MAPSTART,
OP_MAPWHILE,
OP_RANGE,
OP_FLIP,
OP_FLOP,
OP_AND,
OP_OR,
OP_XOR,
OP_COND_EXPR,
OP_ANDASSIGN,
OP_ORASSIGN,
OP_METHOD,
OP_ENTERSUB,
OP_LEAVESUB,
OP_CALLER,
OP_WARN,
OP_DIE,
OP_RESET,
OP_LINESEQ,
OP_NEXTSTATE,
OP_DBSTATE,
OP_UNSTACK,
OP_ENTER,
OP_LEAVE,
OP_SCOPE,
OP_ENTERITER,
OP_ITER,
OP_ENTERLOOP,
OP_LEAVELOOP,
OP_RETURN,
OP_LAST,
OP_NEXT,
OP_REDO,
OP_DUMP,
OP_GOTO,
OP_EXIT,
OP_OPEN,
OP_CLOSE,
OP_PIPE_OP,
OP_FILENO,
OP_UMASK,
OP_BINMODE,
OP_TIE,
OP_UNTIE,
OP_TIED,
OP_DBMOPEN,
OP_DBMCLOSE,
OP_SSELECT,
OP_SELECT,
OP_GETC,
OP_READ,
OP_ENTERWRITE,
OP_LEAVEWRITE,
OP_PRTF,
OP_PRINT,
OP_SYSOPEN,
OP_SYSSEEK,
OP_SYSREAD,
OP_SYSWRITE,
OP_SEND,
OP_RECV,
OP_EOF,
OP_TELL,
OP_SEEK,
OP_TRUNCATE,
OP_FCNTL,
OP_IOCTL,
OP_FLOCK,
OP_SOCKET,
OP_SOCKPAIR,
OP_BIND,
OP_CONNECT,
OP_LISTEN,
OP_ACCEPT,
OP_SHUTDOWN,
OP_GSOCKOPT,
OP_SSOCKOPT,
OP_GETSOCKNAME,
OP_GETPEERNAME,
OP_LSTAT,
OP_STAT,
OP_FTRREAD,
OP_FTRWRITE,
OP_FTREXEC,
OP_FTEREAD,
OP_FTEWRITE,
OP_FTEEXEC,
OP_FTIS,
OP_FTEOWNED,
OP_FTROWNED,
OP_FTZERO,
OP_FTSIZE,
OP_FTMTIME,
OP_FTATIME,
OP_FTCTIME,
OP_FTSOCK,
OP_FTCHR,
OP_FTBLK,
OP_FTFILE,
OP_FTDIR,
OP_FTPIPE,
OP_FTLINK,
OP_FTSUID,
OP_FTSGID,
OP_FTSVTX,
OP_FTTTY,
OP_FTTEXT,
OP_FTBINARY,
OP_CHDIR,
OP_CHOWN,
OP_CHROOT,
OP_UNLINK,
OP_CHMOD,
OP_UTIME,
OP_RENAME,
OP_LINK,
OP_SYMLINK,
OP_READLINK,
OP_MKDIR,
OP_RMDIR,
OP_OPEN_DIR,
OP_READDIR,
OP_TELLDIR,
OP_SEEKDIR,
OP_REWINDDIR,
OP_CLOSEDIR,
OP_FORK,
OP_WAIT,
OP_WAITPID,
OP_SYSTEM,
OP_EXEC,
OP_KILL,
OP_GETPPID,
OP_GETPGRP,
OP_SETPGRP,
OP_GETPRIORITY,
OP_SETPRIORITY,
OP_TIME,
OP_TMS,
OP_LOCALTIME,
OP_GMTIME,
OP_ALARM,
OP_SLEEP,
OP_SHMGET,
OP_SHMCTL,
OP_SHMREAD,
OP_SHMWRITE,
OP_MSGGET,
OP_MSGCTL,
OP_MSGSND,
OP_MSGRCV,
OP_SEMGET,
OP_SEMCTL,
OP_SEMOP,
OP_REQUIRE,
OP_DOFILE,
OP_ENTEREVAL,
OP_LEAVEEVAL,
OP_ENTERTRY,
OP_LEAVETRY,
OP_GHBYNAME,
OP_GHBYADDR,
OP_GHOSTENT,
OP_GNBYNAME,
OP_GNBYADDR,
OP_GNETENT,
OP_GPBYNAME,
OP_GPBYNUMBER,
OP_GPROTOENT,
OP_GSBYNAME,
OP_GSBYPORT,
OP_GSERVENT,
OP_SHOSTENT,
OP_SNETENT,
OP_SPROTOENT,
OP_SSERVENT,
OP_EHOSTENT,
OP_ENETENT,
OP_EPROTOENT,
OP_ESERVENT,
OP_GPWNAM,
OP_GPWUID,
OP_GPWENT,
OP_SPWENT,
OP_EPWENT,
OP_GGRNAM,
OP_GGRGID,
OP_GGRENT,
OP_SGRENT,
OP_EGRENT,
OP_GETLOGIN,
OP_SYSCALL,
OP_LOCK,
OP_THREADSV,
OP_max
} opcode;
extern char *Perl_op_name[];
# 716 "opcode.h"
extern char *Perl_op_desc[];
# 1071 "opcode.h"
OP * Perl_ck_anoncode (OP* o);
OP * Perl_ck_bitop (OP* o);
OP * Perl_ck_concat (OP* o);
OP * Perl_ck_delete (OP* o);
OP * Perl_ck_eof (OP* o);
OP * Perl_ck_eval (OP* o);
OP * Perl_ck_exec (OP* o);
OP * Perl_ck_exists (OP* o);
OP * Perl_ck_ftst (OP* o);
OP * Perl_ck_fun (OP* o);
OP * Perl_ck_fun_locale (OP* o);
OP * Perl_ck_glob (OP* o);
OP * Perl_ck_grep (OP* o);
OP * Perl_ck_index (OP* o);
OP * Perl_ck_lengthconst (OP* o);
OP * Perl_ck_lfun (OP* o);
OP * Perl_ck_listiob (OP* o);
OP * Perl_ck_match (OP* o);
OP * Perl_ck_null (OP* o);
OP * Perl_ck_repeat (OP* o);
OP * Perl_ck_require (OP* o);
OP * Perl_ck_rfun (OP* o);
OP * Perl_ck_rvconst (OP* o);
OP * Perl_ck_scmp (OP* o);
OP * Perl_ck_select (OP* o);
OP * Perl_ck_shift (OP* o);
OP * Perl_ck_sort (OP* o);
OP * Perl_ck_spair (OP* o);
OP * Perl_ck_split (OP* o);
OP * Perl_ck_subr (OP* o);
OP * Perl_ck_svconst (OP* o);
OP * Perl_ck_trunc (OP* o);
OP * Perl_pp_null (void);
OP * Perl_pp_stub (void);
OP * Perl_pp_scalar (void);
OP * Perl_pp_pushmark (void);
OP * Perl_pp_wantarray (void);
OP * Perl_pp_const (void);
OP * Perl_pp_gvsv (void);
OP * Perl_pp_gv (void);
OP * Perl_pp_gelem (void);
OP * Perl_pp_padsv (void);
OP * Perl_pp_padav (void);
OP * Perl_pp_padhv (void);
OP * Perl_pp_padany (void);
OP * Perl_pp_pushre (void);
OP * Perl_pp_rv2gv (void);
OP * Perl_pp_rv2sv (void);
OP * Perl_pp_av2arylen (void);
OP * Perl_pp_rv2cv (void);
OP * Perl_pp_anoncode (void);
OP * Perl_pp_prototype (void);
OP * Perl_pp_refgen (void);
OP * Perl_pp_srefgen (void);
OP * Perl_pp_ref (void);
OP * Perl_pp_bless (void);
OP * Perl_pp_backtick (void);
OP * Perl_pp_glob (void);
OP * Perl_pp_readline (void);
OP * Perl_pp_rcatline (void);
OP * Perl_pp_regcmaybe (void);
OP * Perl_pp_regcreset (void);
OP * Perl_pp_regcomp (void);
OP * Perl_pp_match (void);
OP * Perl_pp_qr (void);
OP * Perl_pp_subst (void);
OP * Perl_pp_substcont (void);
OP * Perl_pp_trans (void);
OP * Perl_pp_sassign (void);
OP * Perl_pp_aassign (void);
OP * Perl_pp_chop (void);
OP * Perl_pp_schop (void);
OP * Perl_pp_chomp (void);
OP * Perl_pp_schomp (void);
OP * Perl_pp_defined (void);
OP * Perl_pp_undef (void);
OP * Perl_pp_study (void);
OP * Perl_pp_pos (void);
OP * Perl_pp_preinc (void);
OP * Perl_pp_preinc (void);
OP * Perl_pp_predec (void);
OP * Perl_pp_predec (void);
OP * Perl_pp_postinc (void);
OP * Perl_pp_postinc (void);
OP * Perl_pp_postdec (void);
OP * Perl_pp_postdec (void);
OP * Perl_pp_pow (void);
OP * Perl_pp_multiply (void);
OP * Perl_pp_i_multiply (void);
OP * Perl_pp_divide (void);
OP * Perl_pp_i_divide (void);
OP * Perl_pp_modulo (void);
OP * Perl_pp_i_modulo (void);
OP * Perl_pp_repeat (void);
OP * Perl_pp_add (void);
OP * Perl_pp_i_add (void);
OP * Perl_pp_subtract (void);
OP * Perl_pp_i_subtract (void);
OP * Perl_pp_concat (void);
OP * Perl_pp_stringify (void);
OP * Perl_pp_left_shift (void);
OP * Perl_pp_right_shift (void);
OP * Perl_pp_lt (void);
OP * Perl_pp_i_lt (void);
OP * Perl_pp_gt (void);
OP * Perl_pp_i_gt (void);
OP * Perl_pp_le (void);
OP * Perl_pp_i_le (void);
OP * Perl_pp_ge (void);
OP * Perl_pp_i_ge (void);
OP * Perl_pp_eq (void);
OP * Perl_pp_i_eq (void);
OP * Perl_pp_ne (void);
OP * Perl_pp_i_ne (void);
OP * Perl_pp_ncmp (void);
OP * Perl_pp_i_ncmp (void);
OP * Perl_pp_slt (void);
OP * Perl_pp_sgt (void);
OP * Perl_pp_sle (void);
OP * Perl_pp_sge (void);
OP * Perl_pp_seq (void);
OP * Perl_pp_sne (void);
OP * Perl_pp_scmp (void);
OP * Perl_pp_bit_and (void);
OP * Perl_pp_bit_xor (void);
OP * Perl_pp_bit_or (void);
OP * Perl_pp_negate (void);
OP * Perl_pp_i_negate (void);
OP * Perl_pp_not (void);
OP * Perl_pp_complement (void);
OP * Perl_pp_atan2 (void);
OP * Perl_pp_sin (void);
OP * Perl_pp_cos (void);
OP * Perl_pp_rand (void);
OP * Perl_pp_srand (void);
OP * Perl_pp_exp (void);
OP * Perl_pp_log (void);
OP * Perl_pp_sqrt (void);
OP * Perl_pp_int (void);
OP * Perl_pp_hex (void);
OP * Perl_pp_oct (void);
OP * Perl_pp_abs (void);
OP * Perl_pp_length (void);
OP * Perl_pp_substr (void);
OP * Perl_pp_vec (void);
OP * Perl_pp_index (void);
OP * Perl_pp_rindex (void);
OP * Perl_pp_sprintf (void);
OP * Perl_pp_formline (void);
OP * Perl_pp_ord (void);
OP * Perl_pp_chr (void);
OP * Perl_pp_crypt (void);
OP * Perl_pp_ucfirst (void);
OP * Perl_pp_lcfirst (void);
OP * Perl_pp_uc (void);
OP * Perl_pp_lc (void);
OP * Perl_pp_quotemeta (void);
OP * Perl_pp_rv2av (void);
OP * Perl_pp_aelemfast (void);
OP * Perl_pp_aelem (void);
OP * Perl_pp_aslice (void);
OP * Perl_pp_each (void);
OP * Perl_pp_values (void);
OP * Perl_pp_keys (void);
OP * Perl_pp_delete (void);
OP * Perl_pp_exists (void);
OP * Perl_pp_rv2hv (void);
OP * Perl_pp_helem (void);
OP * Perl_pp_hslice (void);
OP * Perl_pp_unpack (void);
OP * Perl_pp_pack (void);
OP * Perl_pp_split (void);
OP * Perl_pp_join (void);
OP * Perl_pp_list (void);
OP * Perl_pp_lslice (void);
OP * Perl_pp_anonlist (void);
OP * Perl_pp_anonhash (void);
OP * Perl_pp_splice (void);
OP * Perl_pp_push (void);
OP * Perl_pp_pop (void);
OP * Perl_pp_shift (void);
OP * Perl_pp_unshift (void);
OP * Perl_pp_sort (void);
OP * Perl_pp_reverse (void);
OP * Perl_pp_grepstart (void);
OP * Perl_pp_grepwhile (void);
OP * Perl_pp_mapstart (void);
OP * Perl_pp_mapwhile (void);
OP * Perl_pp_range (void);
OP * Perl_pp_flip (void);
OP * Perl_pp_flop (void);
OP * Perl_pp_and (void);
OP * Perl_pp_or (void);
OP * Perl_pp_xor (void);
OP * Perl_pp_cond_expr (void);
OP * Perl_pp_andassign (void);
OP * Perl_pp_orassign (void);
OP * Perl_pp_method (void);
OP * Perl_pp_entersub (void);
OP * Perl_pp_leavesub (void);
OP * Perl_pp_caller (void);
OP * Perl_pp_warn (void);
OP * Perl_pp_die (void);
OP * Perl_pp_reset (void);
OP * Perl_pp_lineseq (void);
OP * Perl_pp_nextstate (void);
OP * Perl_pp_dbstate (void);
OP * Perl_pp_unstack (void);
OP * Perl_pp_enter (void);
OP * Perl_pp_leave (void);
OP * Perl_pp_scope (void);
OP * Perl_pp_enteriter (void);
OP * Perl_pp_iter (void);
OP * Perl_pp_enterloop (void);
OP * Perl_pp_leaveloop (void);
OP * Perl_pp_return (void);
OP * Perl_pp_last (void);
OP * Perl_pp_next (void);
OP * Perl_pp_redo (void);
OP * Perl_pp_dump (void);
OP * Perl_pp_goto (void);
OP * Perl_pp_exit (void);
OP * Perl_pp_open (void);
OP * Perl_pp_close (void);
OP * Perl_pp_pipe_op (void);
OP * Perl_pp_fileno (void);
OP * Perl_pp_umask (void);
OP * Perl_pp_binmode (void);
OP * Perl_pp_tie (void);
OP * Perl_pp_untie (void);
OP * Perl_pp_tied (void);
OP * Perl_pp_dbmopen (void);
OP * Perl_pp_dbmclose (void);
OP * Perl_pp_sselect (void);
OP * Perl_pp_select (void);
OP * Perl_pp_getc (void);
OP * Perl_pp_read (void);
OP * Perl_pp_enterwrite (void);
OP * Perl_pp_leavewrite (void);
OP * Perl_pp_prtf (void);
OP * Perl_pp_print (void);
OP * Perl_pp_sysopen (void);
OP * Perl_pp_sysseek (void);
OP * Perl_pp_sysread (void);
OP * Perl_pp_syswrite (void);
OP * Perl_pp_send (void);
OP * Perl_pp_recv (void);
OP * Perl_pp_eof (void);
OP * Perl_pp_tell (void);
OP * Perl_pp_seek (void);
OP * Perl_pp_truncate (void);
OP * Perl_pp_fcntl (void);
OP * Perl_pp_ioctl (void);
OP * Perl_pp_flock (void);
OP * Perl_pp_socket (void);
OP * Perl_pp_sockpair (void);
OP * Perl_pp_bind (void);
OP * Perl_pp_connect (void);
OP * Perl_pp_listen (void);
OP * Perl_pp_accept (void);
OP * Perl_pp_shutdown (void);
OP * Perl_pp_gsockopt (void);
OP * Perl_pp_ssockopt (void);
OP * Perl_pp_getsockname (void);
OP * Perl_pp_getpeername (void);
OP * Perl_pp_lstat (void);
OP * Perl_pp_stat (void);
OP * Perl_pp_ftrread (void);
OP * Perl_pp_ftrwrite (void);
OP * Perl_pp_ftrexec (void);
OP * Perl_pp_fteread (void);
OP * Perl_pp_ftewrite (void);
OP * Perl_pp_fteexec (void);
OP * Perl_pp_ftis (void);
OP * Perl_pp_fteowned (void);
OP * Perl_pp_ftrowned (void);
OP * Perl_pp_ftzero (void);
OP * Perl_pp_ftsize (void);
OP * Perl_pp_ftmtime (void);
OP * Perl_pp_ftatime (void);
OP * Perl_pp_ftctime (void);
OP * Perl_pp_ftsock (void);
OP * Perl_pp_ftchr (void);
OP * Perl_pp_ftblk (void);
OP * Perl_pp_ftfile (void);
OP * Perl_pp_ftdir (void);
OP * Perl_pp_ftpipe (void);
OP * Perl_pp_ftlink (void);
OP * Perl_pp_ftsuid (void);
OP * Perl_pp_ftsgid (void);
OP * Perl_pp_ftsvtx (void);
OP * Perl_pp_fttty (void);
OP * Perl_pp_fttext (void);
OP * Perl_pp_ftbinary (void);
OP * Perl_pp_chdir (void);
OP * Perl_pp_chown (void);
OP * Perl_pp_chroot (void);
OP * Perl_pp_unlink (void);
OP * Perl_pp_chmod (void);
OP * Perl_pp_utime (void);
OP * Perl_pp_rename (void);
OP * Perl_pp_link (void);
OP * Perl_pp_symlink (void);
OP * Perl_pp_readlink (void);
OP * Perl_pp_mkdir (void);
OP * Perl_pp_rmdir (void);
OP * Perl_pp_open_dir (void);
OP * Perl_pp_readdir (void);
OP * Perl_pp_telldir (void);
OP * Perl_pp_seekdir (void);
OP * Perl_pp_rewinddir (void);
OP * Perl_pp_closedir (void);
OP * Perl_pp_fork (void);
OP * Perl_pp_wait (void);
OP * Perl_pp_waitpid (void);
OP * Perl_pp_system (void);
OP * Perl_pp_exec (void);
OP * Perl_pp_kill (void);
OP * Perl_pp_getppid (void);
OP * Perl_pp_getpgrp (void);
OP * Perl_pp_setpgrp (void);
OP * Perl_pp_getpriority (void);
OP * Perl_pp_setpriority (void);
OP * Perl_pp_time (void);
OP * Perl_pp_tms (void);
OP * Perl_pp_localtime (void);
OP * Perl_pp_gmtime (void);
OP * Perl_pp_alarm (void);
OP * Perl_pp_sleep (void);
OP * Perl_pp_shmget (void);
OP * Perl_pp_shmctl (void);
OP * Perl_pp_shmread (void);
OP * Perl_pp_shmwrite (void);
OP * Perl_pp_msgget (void);
OP * Perl_pp_msgctl (void);
OP * Perl_pp_msgsnd (void);
OP * Perl_pp_msgrcv (void);
OP * Perl_pp_semget (void);
OP * Perl_pp_semctl (void);
OP * Perl_pp_semop (void);
OP * Perl_pp_require (void);
OP * Perl_pp_dofile (void);
OP * Perl_pp_entereval (void);
OP * Perl_pp_leaveeval (void);
OP * Perl_pp_entertry (void);
OP * Perl_pp_leavetry (void);
OP * Perl_pp_ghbyname (void);
OP * Perl_pp_ghbyaddr (void);
OP * Perl_pp_ghostent (void);
OP * Perl_pp_gnbyname (void);
OP * Perl_pp_gnbyaddr (void);
OP * Perl_pp_gnetent (void);
OP * Perl_pp_gpbyname (void);
OP * Perl_pp_gpbynumber (void);
OP * Perl_pp_gprotoent (void);
OP * Perl_pp_gsbyname (void);
OP * Perl_pp_gsbyport (void);
OP * Perl_pp_gservent (void);
OP * Perl_pp_shostent (void);
OP * Perl_pp_snetent (void);
OP * Perl_pp_sprotoent (void);
OP * Perl_pp_sservent (void);
OP * Perl_pp_ehostent (void);
OP * Perl_pp_enetent (void);
OP * Perl_pp_eprotoent (void);
OP * Perl_pp_eservent (void);
OP * Perl_pp_gpwnam (void);
OP * Perl_pp_gpwuid (void);
OP * Perl_pp_gpwent (void);
OP * Perl_pp_spwent (void);
OP * Perl_pp_epwent (void);
OP * Perl_pp_ggrnam (void);
OP * Perl_pp_ggrgid (void);
OP * Perl_pp_ggrent (void);
OP * Perl_pp_sgrent (void);
OP * Perl_pp_egrent (void);
OP * Perl_pp_getlogin (void);
OP * Perl_pp_syscall (void);
OP * Perl_pp_lock (void);
OP * Perl_pp_threadsv (void);
extern OP * (*Perl_ppaddr[])(void);
# 1816 "opcode.h"
extern OP * (*Perl_check[]) (OP *op);
# 2173 "opcode.h"
extern U32 Perl_opargs[];
# 1275 "perl.h" 2
# 1 "op.h" 1
# 26 "op.h"
typedef U32 PADOFFSET;
# 146 "op.h"
struct op {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
};
struct unop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
OP * op_first;
};
struct binop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
OP * op_first;
OP * op_last;
};
struct logop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
OP * op_first;
OP * op_other;
};
struct condop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
OP * op_first;
OP * op_true;
OP * op_false;
};
struct listop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
OP * op_first;
OP * op_last;
U32 op_children;
};
struct pmop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
OP * op_first;
OP * op_last;
U32 op_children;
OP * op_pmreplroot;
OP * op_pmreplstart;
PMOP * op_pmnext;
REGEXP * op_pmregexp;
U16 op_pmflags;
U16 op_pmpermflags;
U8 op_pmdynflags;
};
# 218 "op.h"
struct svop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
SV * op_sv;
};
struct gvop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
GV * op_gv;
};
struct pvop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
char * op_pv;
};
struct loop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
OP * op_first;
OP * op_last;
U32 op_children;
OP * op_redoop;
OP * op_nextop;
OP * op_lastop;
};
# 1276 "perl.h" 2
# 1 "cop.h" 1
# 10 "cop.h"
struct cop {
OP* op_next; OP* op_sibling; OP* (*op_ppaddr)(void); PADOFFSET op_targ; U16 op_type; U16 op_seq; U8 op_flags; U8 op_private;
char * cop_label;
HV * cop_stash;
GV * cop_filegv;
U32 cop_seq;
I32 cop_arybase;
line_t cop_line;
};
# 27 "cop.h"
struct block_sub {
CV * cv;
GV * gv;
GV * dfoutgv;
AV * savearray;
AV * argarray;
U16 olddepth;
U8 hasargs;
};
# 86 "cop.h"
struct block_eval {
I32 old_in_eval;
I32 old_op_type;
char * old_name;
OP * old_eval_root;
SV * cur_text;
};
# 107 "cop.h"
struct block_loop {
char * label;
I32 resetsp;
OP * redo_op;
OP * next_op;
OP * last_op;
SV ** itervar;
SV * itersave;
SV * iterlval;
AV * iterary;
IV iterix;
IV itermax;
};
# 152 "cop.h"
struct block {
I32 blku_oldsp;
COP * blku_oldcop;
I32 blku_oldretsp;
I32 blku_oldmarksp;
I32 blku_oldscopesp;
PMOP * blku_oldpm;
U8 blku_gimme;
union {
struct block_sub blku_sub;
struct block_eval blku_eval;
struct block_loop blku_loop;
} blk_u;
};
# 212 "cop.h"
struct subst {
I32 sbu_iters;
I32 sbu_maxiters;
I32 sbu_safebase;
I32 sbu_oldsave;
int sbu_once;
int sbu_rxtainted;
char * sbu_orig;
SV * sbu_dstr;
SV * sbu_targ;
char * sbu_s;
char * sbu_m;
char * sbu_strend;
void * sbu_rxres;
REGEXP * sbu_rx;
};
# 264 "cop.h"
struct context {
U32 cx_type;
union {
struct block cx_blk;
struct subst cx_subst;
} cx_u;
};
# 316 "cop.h"
struct stackinfo {
AV * si_stack;
PERL_CONTEXT * si_cxstack;
I32 si_cxix;
I32 si_cxmax;
I32 si_type;
struct stackinfo * si_prev;
struct stackinfo * si_next;
I32 * si_markbase;
};
typedef struct stackinfo PERL_SI;
# 1277 "perl.h" 2
# 1 "av.h" 1
# 10 "av.h"
struct xpvav {
char* xav_array;
ssize_t xav_fill;
ssize_t xav_max;
IV xof_off;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
SV** xav_alloc;
SV* xav_arylen;
U8 xav_flags;
};
# 1278 "perl.h" 2
# 1 "hv.h" 1
# 10 "hv.h"
typedef struct he HE;
typedef struct hek HEK;
struct he {
HE *hent_next;
HEK *hent_hek;
SV *hent_val;
};
struct hek {
U32 hek_hash;
I32 hek_len;
char hek_key[1];
};
struct xpvhv {
char * xhv_array;
STRLEN xhv_fill;
STRLEN xhv_max;
IV xhv_keys;
double xnv_nv;
MAGIC* xmg_magic;
HV* xmg_stash;
I32 xhv_riter;
HE *xhv_eiter;
PMOP *xhv_pmroot;
char *xhv_name;
};
# 1279 "perl.h" 2
# 1 "mg.h" 1
# 13 "mg.h"
struct mgvtbl {
int (*svt_get) (SV *sv, MAGIC* mg);
int (*svt_set) (SV *sv, MAGIC* mg);
U32 (*svt_len) (SV *sv, MAGIC* mg);
int (*svt_clear) (SV *sv, MAGIC* mg);
int (*svt_free) (SV *sv, MAGIC* mg);
};
struct magic {
MAGIC* mg_moremagic;
MGVTBL* mg_virtual;
U16 mg_private;
char mg_type;
U8 mg_flags;
SV* mg_obj;
char* mg_ptr;
I32 mg_len;
};
# 1280 "perl.h" 2
# 1 "scope.h" 1
# 131 "scope.h"
struct jmpenv {
struct jmpenv * je_prev;
jmp_buf je_buf;
int je_ret;
int je_mustcatch;
};
typedef struct jmpenv JMPENV;
# 1281 "perl.h" 2
# 1 "bytecode.h" 1
typedef char *pvcontents;
typedef char *strconst;
typedef U32 PV;
typedef char *op_tr_array;
typedef int comment_t;
typedef SV *svindex;
typedef OP *opindex;
typedef IV IV64;
# 1282 "perl.h" 2
# 1 "byterun.h" 1
# 20 "byterun.h"
void *Perl_bset_obj_store (void *, I32);
enum {
INSN_RET,
INSN_LDSV,
INSN_LDOP,
INSN_STSV,
INSN_STOP,
INSN_LDSPECSV,
INSN_NEWSV,
INSN_NEWOP,
INSN_NEWOPN,
INSN_NEWPV,
INSN_NOP,
INSN_PV_CUR,
INSN_PV_FREE,
INSN_SV_UPGRADE,
INSN_SV_REFCNT,
INSN_SV_REFCNT_ADD,
INSN_SV_FLAGS,
INSN_XRV,
INSN_XPV,
INSN_XIV32,
INSN_XIV64,
INSN_XNV,
INSN_XLV_TARGOFF,
INSN_XLV_TARGLEN,
INSN_XLV_TARG,
INSN_XLV_TYPE,
INSN_XBM_USEFUL,
INSN_XBM_PREVIOUS,
INSN_XBM_RARE,
INSN_XFM_LINES,
INSN_XIO_LINES,
INSN_XIO_PAGE,
INSN_XIO_PAGE_LEN,
INSN_XIO_LINES_LEFT,
INSN_XIO_TOP_NAME,
INSN_COMMENT,
INSN_XIO_TOP_GV,
INSN_XIO_FMT_NAME,
INSN_XIO_FMT_GV,
INSN_XIO_BOTTOM_NAME,
INSN_XIO_BOTTOM_GV,
INSN_XIO_SUBPROCESS,
INSN_XIO_TYPE,
INSN_XIO_FLAGS,
INSN_XCV_STASH,
INSN_XCV_START,
INSN_XCV_ROOT,
INSN_XCV_GV,
INSN_XCV_FILEGV,
INSN_XCV_DEPTH,
INSN_XCV_PADLIST,
INSN_XCV_OUTSIDE,
INSN_XCV_FLAGS,
INSN_AV_EXTEND,
INSN_AV_PUSH,
INSN_XAV_FILL,
INSN_XAV_MAX,
INSN_XAV_FLAGS,
INSN_XHV_RITER,
INSN_XHV_NAME,
INSN_HV_STORE,
INSN_SV_MAGIC,
INSN_MG_OBJ,
INSN_MG_PRIVATE,
INSN_MG_FLAGS,
INSN_MG_PV,
INSN_XMG_STASH,
INSN_GV_FETCHPV,
INSN_GV_STASHPV,
INSN_GP_SV,
INSN_GP_REFCNT,
INSN_GP_REFCNT_ADD,
INSN_GP_AV,
INSN_GP_HV,
INSN_GP_CV,
INSN_GP_FILEGV,
INSN_GP_IO,
INSN_GP_FORM,
INSN_GP_CVGEN,
INSN_GP_LINE,
INSN_GP_SHARE,
INSN_XGV_FLAGS,
INSN_OP_NEXT,
INSN_OP_SIBLING,
INSN_OP_PPADDR,
INSN_OP_TARG,
INSN_OP_TYPE,
INSN_OP_SEQ,
INSN_OP_FLAGS,
INSN_OP_PRIVATE,
INSN_OP_FIRST,
INSN_OP_LAST,
INSN_OP_OTHER,
INSN_OP_TRUE,
INSN_OP_FALSE,
INSN_OP_CHILDREN,
INSN_OP_PMREPLROOT,
INSN_OP_PMREPLROOTGV,
INSN_OP_PMREPLSTART,
INSN_OP_PMNEXT,
INSN_PREGCOMP,
INSN_OP_PMFLAGS,
INSN_OP_PMPERMFLAGS,
INSN_OP_SV,
INSN_OP_GV,
INSN_OP_PV,
INSN_OP_PV_TR,
INSN_OP_REDOOP,
INSN_OP_NEXTOP,
INSN_OP_LASTOP,
INSN_COP_LABEL,
INSN_COP_STASH,
INSN_COP_FILEGV,
INSN_COP_SEQ,
INSN_COP_ARYBASE,
INSN_COP_LINE,
INSN_MAIN_START,
INSN_MAIN_ROOT,
INSN_CURPAD,
MAX_INSN = 118
};
enum {
OPt_OP,
OPt_UNOP,
OPt_BINOP,
OPt_LOGOP,
OPt_CONDOP,
OPt_LISTOP,
OPt_PMOP,
OPt_SVOP,
OPt_GVOP,
OPt_PVOP,
OPt_LOOP,
OPt_COP
};
extern int optype_size[]
# 177 "byterun.h"
;
# 1283 "perl.h" 2
typedef struct curcur CURCUR;
struct curcur {
int parenfloor;
int cur;
int min;
int max;
int minmod;
regnode * scan;
regnode * next;
char * lastloc;
CURCUR * oldcc;
};
typedef struct _sublex_info SUBLEXINFO;
struct _sublex_info {
I32 super_state;
I32 sub_inwhat;
OP *sub_op;
};
# 1414 "perl.h"
U32 Perl_cast_ulong (double);
# 1425 "perl.h"
I32 cast_i32 (double);
IV cast_iv (double);
UV cast_uv (double);
struct Outrec {
I32 o_lines;
char *o_str;
U32 o_len;
};
# 1450 "perl.h"
uid_t getuid (void);
uid_t geteuid (void);
gid_t getgid (void);
gid_t getegid (void);
# 1517 "perl.h"
struct ufuncs {
I32 (*uf_val)(IV, SV*);
I32 (*uf_set)(IV, SV*);
IV uf_index;
};
char *mktemp (char*);
double atof (const char*);
# 1544 "perl.h"
# 1 "/usr/include/math.h" 1 3 4
# 29 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/huge_val.h" 1 3 4
# 34 "/usr/include/math.h" 2 3 4
# 1 "/usr/include/bits/mathdef.h" 1 3 4
# 41 "/usr/include/math.h" 2 3 4
# 63 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/mathcalls.h" 1 3 4
# 54 "/usr/include/bits/mathcalls.h" 3 4
extern double acos (double __x) ; extern double __acos (double __x) ;
extern double asin (double __x) ; extern double __asin (double __x) ;
extern double atan (double __x) ; extern double __atan (double __x) ;
extern double atan2 (double __y, double __x) ; extern double __atan2 (double __y, double __x) ;
extern double cos (double __x) ; extern double __cos (double __x) ;
extern double sin (double __x) ; extern double __sin (double __x) ;
extern double tan (double __x) ; extern double __tan (double __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3 4
extern double cosh (double __x) ; extern double __cosh (double __x) ;
extern double sinh (double __x) ; extern double __sinh (double __x) ;
extern double tanh (double __x) ; extern double __tanh (double __x) ;
extern double acosh (double __x) ; extern double __acosh (double __x) ;
extern double asinh (double __x) ; extern double __asinh (double __x) ;
extern double atanh (double __x) ; extern double __atanh (double __x) ;
extern double exp (double __x) ; extern double __exp (double __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3 4
extern double frexp (double __x, int *__exponent) ; extern double __frexp (double __x, int *__exponent) ;
extern double ldexp (double __x, int __exponent) ; extern double __ldexp (double __x, int __exponent) ;
extern double log (double __x) ; extern double __log (double __x) ;
extern double log10 (double __x) ; extern double __log10 (double __x) ;
extern double modf (double __x, double *__iptr) ; extern double __modf (double __x, double *__iptr) ;
extern double expm1 (double __x) ; extern double __expm1 (double __x) ;
extern double log1p (double __x) ; extern double __log1p (double __x) ;
extern double logb (double __x) ; extern double __logb (double __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3 4
extern double pow (double __x, double __y) ; extern double __pow (double __x, double __y) ;
extern double sqrt (double __x) ; extern double __sqrt (double __x) ;
extern double hypot (double __x, double __y) ; extern double __hypot (double __x, double __y) ;
extern double cbrt (double __x) ; extern double __cbrt (double __x) ;
extern double ceil (double __x) ; extern double __ceil (double __x) ;
extern double fabs (double __x) ; extern double __fabs (double __x) ;
extern double floor (double __x) ; extern double __floor (double __x) ;
extern double fmod (double __x, double __y) ; extern double __fmod (double __x, double __y) ;
extern int __isinf (double __value) ;
extern int __finite (double __value) ;
extern int isinf (double __value) ;
extern int finite (double __value) ;
extern double drem (double __x, double __y) ; extern double __drem (double __x, double __y) ;
extern double significand (double __x) ; extern double __significand (double __x) ;
extern double copysign (double __x, double __y) ; extern double __copysign (double __x, double __y) ;
# 209 "/usr/include/bits/mathcalls.h" 3 4
extern int __isnan (double __value) ;
extern int isnan (double __value) ;
extern double j0 (double) ; extern double __j0 (double) ;
extern double j1 (double) ; extern double __j1 (double) ;
extern double jn (int, double) ; extern double __jn (int, double) ;
extern double y0 (double) ; extern double __y0 (double) ;
extern double y1 (double) ; extern double __y1 (double) ;
extern double yn (int, double) ; extern double __yn (int, double) ;
extern double erf (double) ; extern double __erf (double) ;
extern double erfc (double) ; extern double __erfc (double) ;
extern double lgamma (double) ; extern double __lgamma (double) ;
# 238 "/usr/include/bits/mathcalls.h" 3 4
extern double gamma (double) ; extern double __gamma (double) ;
extern double lgamma_r (double, int *__signgamp) ; extern double __lgamma_r (double, int *__signgamp) ;
extern double rint (double __x) ; extern double __rint (double __x) ;
extern double nextafter (double __x, double __y) ; extern double __nextafter (double __x, double __y) ;
extern double remainder (double __x, double __y) ; extern double __remainder (double __x, double __y) ;
extern double scalb (double __x, double __n) ; extern double __scalb (double __x, double __n) ;
extern double scalbn (double __x, int __n) ; extern double __scalbn (double __x, int __n) ;
extern int ilogb (double __x) ; extern int __ilogb (double __x) ;
# 64 "/usr/include/math.h" 2 3 4
# 82 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/mathcalls.h" 1 3 4
# 54 "/usr/include/bits/mathcalls.h" 3 4
extern float acosf (float __x) ; extern float __acosf (float __x) ;
extern float asinf (float __x) ; extern float __asinf (float __x) ;
extern float atanf (float __x) ; extern float __atanf (float __x) ;
extern float atan2f (float __y, float __x) ; extern float __atan2f (float __y, float __x) ;
extern float cosf (float __x) ; extern float __cosf (float __x) ;
extern float sinf (float __x) ; extern float __sinf (float __x) ;
extern float tanf (float __x) ; extern float __tanf (float __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3 4
extern float coshf (float __x) ; extern float __coshf (float __x) ;
extern float sinhf (float __x) ; extern float __sinhf (float __x) ;
extern float tanhf (float __x) ; extern float __tanhf (float __x) ;
extern float acoshf (float __x) ; extern float __acoshf (float __x) ;
extern float asinhf (float __x) ; extern float __asinhf (float __x) ;
extern float atanhf (float __x) ; extern float __atanhf (float __x) ;
extern float expf (float __x) ; extern float __expf (float __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3 4
extern float frexpf (float __x, int *__exponent) ; extern float __frexpf (float __x, int *__exponent) ;
extern float ldexpf (float __x, int __exponent) ; extern float __ldexpf (float __x, int __exponent) ;
extern float logf (float __x) ; extern float __logf (float __x) ;
extern float log10f (float __x) ; extern float __log10f (float __x) ;
extern float modff (float __x, float *__iptr) ; extern float __modff (float __x, float *__iptr) ;
extern float expm1f (float __x) ; extern float __expm1f (float __x) ;
extern float log1pf (float __x) ; extern float __log1pf (float __x) ;
extern float logbf (float __x) ; extern float __logbf (float __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3 4
extern float powf (float __x, float __y) ; extern float __powf (float __x, float __y) ;
extern float sqrtf (float __x) ; extern float __sqrtf (float __x) ;
extern float hypotf (float __x, float __y) ; extern float __hypotf (float __x, float __y) ;
extern float cbrtf (float __x) ; extern float __cbrtf (float __x) ;
extern float ceilf (float __x) ; extern float __ceilf (float __x) ;
extern float fabsf (float __x) ; extern float __fabsf (float __x) ;
extern float floorf (float __x) ; extern float __floorf (float __x) ;
extern float fmodf (float __x, float __y) ; extern float __fmodf (float __x, float __y) ;
extern int __isinff (float __value) ;
extern int __finitef (float __value) ;
extern int isinff (float __value) ;
extern int finitef (float __value) ;
extern float dremf (float __x, float __y) ; extern float __dremf (float __x, float __y) ;
extern float significandf (float __x) ; extern float __significandf (float __x) ;
extern float copysignf (float __x, float __y) ; extern float __copysignf (float __x, float __y) ;
# 209 "/usr/include/bits/mathcalls.h" 3 4
extern int __isnanf (float __value) ;
extern int isnanf (float __value) ;
extern float j0f (float) ; extern float __j0f (float) ;
extern float j1f (float) ; extern float __j1f (float) ;
extern float jnf (int, float) ; extern float __jnf (int, float) ;
extern float y0f (float) ; extern float __y0f (float) ;
extern float y1f (float) ; extern float __y1f (float) ;
extern float ynf (int, float) ; extern float __ynf (int, float) ;
extern float erff (float) ; extern float __erff (float) ;
extern float erfcf (float) ; extern float __erfcf (float) ;
extern float lgammaf (float) ; extern float __lgammaf (float) ;
# 238 "/usr/include/bits/mathcalls.h" 3 4
extern float gammaf (float) ; extern float __gammaf (float) ;
extern float lgammaf_r (float, int *__signgamp) ; extern float __lgammaf_r (float, int *__signgamp) ;
extern float rintf (float __x) ; extern float __rintf (float __x) ;
extern float nextafterf (float __x, float __y) ; extern float __nextafterf (float __x, float __y) ;
extern float remainderf (float __x, float __y) ; extern float __remainderf (float __x, float __y) ;
extern float scalbf (float __x, float __n) ; extern float __scalbf (float __x, float __n) ;
extern float scalbnf (float __x, int __n) ; extern float __scalbnf (float __x, int __n) ;
extern int ilogbf (float __x) ; extern int __ilogbf (float __x) ;
# 83 "/usr/include/math.h" 2 3 4
# 99 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/mathcalls.h" 1 3 4
# 54 "/usr/include/bits/mathcalls.h" 3 4
extern long double acosl (long double __x) ; extern long double __acosl (long double __x) ;
extern long double asinl (long double __x) ; extern long double __asinl (long double __x) ;
extern long double atanl (long double __x) ; extern long double __atanl (long double __x) ;
extern long double atan2l (long double __y, long double __x) ; extern long double __atan2l (long double __y, long double __x) ;
extern long double cosl (long double __x) ; extern long double __cosl (long double __x) ;
extern long double sinl (long double __x) ; extern long double __sinl (long double __x) ;
extern long double tanl (long double __x) ; extern long double __tanl (long double __x) ;
# 78 "/usr/include/bits/mathcalls.h" 3 4
extern long double coshl (long double __x) ; extern long double __coshl (long double __x) ;
extern long double sinhl (long double __x) ; extern long double __sinhl (long double __x) ;
extern long double tanhl (long double __x) ; extern long double __tanhl (long double __x) ;
extern long double acoshl (long double __x) ; extern long double __acoshl (long double __x) ;
extern long double asinhl (long double __x) ; extern long double __asinhl (long double __x) ;
extern long double atanhl (long double __x) ; extern long double __atanhl (long double __x) ;
extern long double expl (long double __x) ; extern long double __expl (long double __x) ;
# 106 "/usr/include/bits/mathcalls.h" 3 4
extern long double frexpl (long double __x, int *__exponent) ; extern long double __frexpl (long double __x, int *__exponent) ;
extern long double ldexpl (long double __x, int __exponent) ; extern long double __ldexpl (long double __x, int __exponent) ;
extern long double logl (long double __x) ; extern long double __logl (long double __x) ;
extern long double log10l (long double __x) ; extern long double __log10l (long double __x) ;
extern long double modfl (long double __x, long double *__iptr) ; extern long double __modfl (long double __x, long double *__iptr) ;
extern long double expm1l (long double __x) ; extern long double __expm1l (long double __x) ;
extern long double log1pl (long double __x) ; extern long double __log1pl (long double __x) ;
extern long double logbl (long double __x) ; extern long double __logbl (long double __x) ;
# 143 "/usr/include/bits/mathcalls.h" 3 4
extern long double powl (long double __x, long double __y) ; extern long double __powl (long double __x, long double __y) ;
extern long double sqrtl (long double __x) ; extern long double __sqrtl (long double __x) ;
extern long double hypotl (long double __x, long double __y) ; extern long double __hypotl (long double __x, long double __y) ;
extern long double cbrtl (long double __x) ; extern long double __cbrtl (long double __x) ;
extern long double ceill (long double __x) ; extern long double __ceill (long double __x) ;
extern long double fabsl (long double __x) ; extern long double __fabsl (long double __x) ;
extern long double floorl (long double __x) ; extern long double __floorl (long double __x) ;
extern long double fmodl (long double __x, long double __y) ; extern long double __fmodl (long double __x, long double __y) ;
extern int __isinfl (long double __value) ;
extern int __finitel (long double __value) ;
extern int isinfl (long double __value) ;
extern int finitel (long double __value) ;
extern long double dreml (long double __x, long double __y) ; extern long double __dreml (long double __x, long double __y) ;
extern long double significandl (long double __x) ; extern long double __significandl (long double __x) ;
extern long double copysignl (long double __x, long double __y) ; extern long double __copysignl (long double __x, long double __y) ;
# 209 "/usr/include/bits/mathcalls.h" 3 4
extern int __isnanl (long double __value) ;
extern int isnanl (long double __value) ;
extern long double j0l (long double) ; extern long double __j0l (long double) ;
extern long double j1l (long double) ; extern long double __j1l (long double) ;
extern long double jnl (int, long double) ; extern long double __jnl (int, long double) ;
extern long double y0l (long double) ; extern long double __y0l (long double) ;
extern long double y1l (long double) ; extern long double __y1l (long double) ;
extern long double ynl (int, long double) ; extern long double __ynl (int, long double) ;
extern long double erfl (long double) ; extern long double __erfl (long double) ;
extern long double erfcl (long double) ; extern long double __erfcl (long double) ;
extern long double lgammal (long double) ; extern long double __lgammal (long double) ;
# 238 "/usr/include/bits/mathcalls.h" 3 4
extern long double gammal (long double) ; extern long double __gammal (long double) ;
extern long double lgammal_r (long double, int *__signgamp) ; extern long double __lgammal_r (long double, int *__signgamp) ;
extern long double rintl (long double __x) ; extern long double __rintl (long double __x) ;
extern long double nextafterl (long double __x, long double __y) ; extern long double __nextafterl (long double __x, long double __y) ;
extern long double remainderl (long double __x, long double __y) ; extern long double __remainderl (long double __x, long double __y) ;
extern long double scalbl (long double __x, long double __n) ; extern long double __scalbl (long double __x, long double __n) ;
extern long double scalbnl (long double __x, int __n) ; extern long double __scalbnl (long double __x, int __n) ;
extern int ilogbl (long double __x) ; extern int __ilogbl (long double __x) ;
# 100 "/usr/include/math.h" 2 3 4
# 113 "/usr/include/math.h" 3 4
extern int signgam;
# 240 "/usr/include/math.h" 3 4
typedef enum
{
_IEEE_ = -1,
_SVID_,
_XOPEN_,
_POSIX_,
_ISOC_
} _LIB_VERSION_TYPE;
extern _LIB_VERSION_TYPE _LIB_VERSION;
# 265 "/usr/include/math.h" 3 4
struct exception
{
int type;
char *name;
double arg1;
double arg2;
double retval;
};
extern int matherr (struct exception *__exc);
# 350 "/usr/include/math.h" 3 4
# 1 "/usr/include/bits/mathinline.h" 1 3 4
# 291 "/usr/include/bits/mathinline.h" 3 4
extern __inline double __sgn (double) ; extern __inline double __sgn (double __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline float __sgnf (float) ; extern __inline float __sgnf (float __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline long double __sgnl (long double) ; extern __inline long double __sgnl (long double __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); }
# 425 "/usr/include/bits/mathinline.h" 3 4
extern __inline double atan2 (double __y, double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; } extern __inline float atan2f (float __y, float __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; } extern __inline long double atan2l (long double __y, long double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; }
extern __inline long double __atan2l (long double __y, long double __x) { register long double __value; __asm __volatile__ ("fpatan" : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)"); return __value; }
extern __inline double fmod (double __x, double __y) { register long double __value; __asm __volatile__ ("1: fprem\n\t" "fnstsw %%ax\n\t" "sahf\n\t" "jp 1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; } extern __inline float fmodf (float __x, float __y) { register long double __value; __asm __volatile__ ("1: fprem\n\t" "fnstsw %%ax\n\t" "sahf\n\t" "jp 1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; } extern __inline long double fmodl (long double __x, long double __y) { register long double __value; __asm __volatile__ ("1: fprem\n\t" "fnstsw %%ax\n\t" "sahf\n\t" "jp 1b" : "=t" (__value) : "0" (__x), "u" (__y) : "ax", "cc"); return __value; }
# 440 "/usr/include/bits/mathinline.h" 3 4
extern __inline double sqrt (double __x) { register double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; } extern __inline float sqrtf (float __x) { register float __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; } extern __inline long double sqrtl (long double __x) { register long double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; }
extern __inline long double __sqrtl (long double __x) { register long double __result; __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); return __result; }
extern __inline double fabs (double __x) { return __builtin_fabs (__x); }
extern __inline float fabsf (float __x) { return __builtin_fabsf (__x); }
extern __inline long double fabsl (long double __x) { return __builtin_fabsl (__x); }
extern __inline long double __fabsl (long double __x) { return __builtin_fabsl (__x); }
# 466 "/usr/include/bits/mathinline.h" 3 4
extern __inline double atan (double __x) { register double __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline float atanf (float __x) { register float __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; } extern __inline long double atanl (long double __x) { register long double __result; __asm __volatile__ ("fld1; fpatan" : "=t" (__result) : "0" (__x) : "st(1)"); return __result; }
extern __inline long double __sgn1l (long double) ; extern __inline long double __sgn1l (long double __x) { __extension__ union { long double __xld; unsigned int __xi[3]; } __n = { __xld: __x }; __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; __n.__xi[1] = 0x80000000; __n.__xi[0] = 0; return __n.__xld; }
# 492 "/usr/include/bits/mathinline.h" 3 4
extern __inline double floor (double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline float floorf (float __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline long double floorl (long double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; }
# 503 "/usr/include/bits/mathinline.h" 3 4
extern __inline double ceil (double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline float ceilf (float __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } extern __inline long double ceill (long double __x) { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; }
# 521 "/usr/include/bits/mathinline.h" 3 4
extern __inline double
ldexp (double __x, int __y)
{
register long double __value; __asm __volatile__ ("fscale" : "=t" (__value) : "0" (__x), "u" ((long double) __y)); return __value;
}
# 539 "/usr/include/bits/mathinline.h" 3 4
extern __inline double log1p (double __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; } extern __inline float log1pf (float __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; } extern __inline long double log1pl (long double __x) { register long double __value; if (__fabsl (__x) >= 1.0 - 0.5 * 1.41421356237309504880L) __value = logl (1.0 + __x); else __asm __volatile__ ("fldln2\n\t" "fxch\n\t" "fyl2xp1" : "=t" (__value) : "0" (__x) : "st(1)"); return __value; }
# 553 "/usr/include/bits/mathinline.h" 3 4
extern __inline double asinh (double __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); } extern __inline float asinhf (float __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); } extern __inline long double asinhl (long double __x) { register long double __y = __fabsl (__x); return (log1pl (__y * __y / (__sqrtl (__y * __y + 1.0) + 1.0) + __y) * __sgn1l (__x)); }
extern __inline double acosh (double __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); } extern __inline float acoshf (float __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); } extern __inline long double acoshl (long double __x) { return logl (__x + __sqrtl (__x - 1.0) * __sqrtl (__x + 1.0)); }
extern __inline double atanh (double __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); } extern __inline float atanhf (float __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); } extern __inline long double atanhl (long double __x) { register long double __y = __fabsl (__x); return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x); }
extern __inline double hypot (double __x, double __y) { return __sqrtl (__x * __x + __y * __y); } extern __inline float hypotf (float __x, float __y) { return __sqrtl (__x * __x + __y * __y); } extern __inline long double hypotl (long double __x, long double __y) { return __sqrtl (__x * __x + __y * __y); }
extern __inline double logb (double __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; } extern __inline float logbf (float __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; } extern __inline long double logbl (long double __x) { register long double __value; register long double __junk; __asm __volatile__ ("fxtract\n\t" : "=t" (__junk), "=u" (__value) : "0" (__x)); return __value; }
# 652 "/usr/include/bits/mathinline.h" 3 4
extern __inline double drem (double __x, double __y) { register double __value; register int __clobbered; __asm __volatile__ ("1: fprem1\n\t" "fstsw %%ax\n\t" "sahf\n\t" "jp 1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; } extern __inline float dremf (float __x, float __y) { register double __value; register int __clobbered; __asm __volatile__ ("1: fprem1\n\t" "fstsw %%ax\n\t" "sahf\n\t" "jp 1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; } extern __inline long double dreml (long double __x, long double __y) { register double __value; register int __clobbered; __asm __volatile__ ("1: fprem1\n\t" "fstsw %%ax\n\t" "sahf\n\t" "jp 1b" : "=t" (__value), "=&a" (__clobbered) : "0" (__x), "u" (__y) : "cc"); return __value; }
# 665 "/usr/include/bits/mathinline.h" 3 4
extern __inline int
__finite (double __x)
{
return (__extension__
(((((union { double __d; int __i[2]; }) {__d: __x}).__i[1]
| 0x800fffffu) + 1) >> 31));
}
# 351 "/usr/include/math.h" 2 3 4
# 411 "/usr/include/math.h" 3 4
# 1545 "perl.h" 2
# 1566 "perl.h"
char *crypt (const char*, const char*);
char *getenv (const char*);
off_t lseek (int,off_t,int);
char *getlogin (void);
# 1598 "perl.h"
typedef void (*Sighandler_t) (int);
typedef Sighandler_t Sigsave_t;
# 1650 "perl.h"
typedef int runops_proc_t (void);
int Perl_runops_standard (void);
# 1665 "perl.h"
extern char ** environ;
# 1678 "perl.h"
extern int * Perl_di;
extern short * Perl_ds;
extern char * Perl_dc;
extern const char Perl_warn_uninit[]
;
extern const char Perl_warn_nosemi[]
;
extern const char Perl_warn_reserved[]
;
extern const char Perl_warn_nl[]
;
extern const char Perl_no_wrongref[]
;
extern const char Perl_no_symref[]
;
extern const char Perl_no_usym[]
;
extern const char Perl_no_aelem[]
;
extern const char Perl_no_helem[]
;
extern const char Perl_no_modify[]
;
extern const char Perl_no_mem[]
;
extern const char Perl_no_security[]
;
extern const char Perl_no_sock_func[]
;
extern const char Perl_no_dir_func[]
;
extern const char Perl_no_func[]
;
extern const char Perl_no_myglob[]
;
extern char *Perl_sig_name[];
extern int Perl_sig_num[];
extern SV * Perl_psig_ptr[];
extern SV * Perl_psig_name[];
# 1803 "perl.h"
extern const unsigned char Perl_fold[];
# 1842 "perl.h"
extern unsigned char Perl_fold_locale[];
# 1918 "perl.h"
extern const unsigned char Perl_freq[];
# 1941 "perl.h"
# 1 "perly.h" 1
# 59 "perly.h"
typedef union {
I32 ival;
char *pval;
OP *opval;
GV *gvval;
} YYSTYPE;
extern YYSTYPE Perl_yylval;
# 1942 "perl.h" 2
typedef enum {
XOPERATOR,
XTERM,
XREF,
XSTATE,
XBLOCK,
XTERMBLOCK
} expectation;
enum {
want_vtbl_sv,
want_vtbl_env,
want_vtbl_envelem,
want_vtbl_sig,
want_vtbl_sigelem,
want_vtbl_pack,
want_vtbl_packelem,
want_vtbl_dbline,
want_vtbl_isa,
want_vtbl_isaelem,
want_vtbl_arylen,
want_vtbl_glob,
want_vtbl_mglob,
want_vtbl_nkeys,
want_vtbl_taint,
want_vtbl_substr,
want_vtbl_vec,
want_vtbl_pos,
want_vtbl_bm,
want_vtbl_fm,
want_vtbl_uvar,
want_vtbl_defelem,
want_vtbl_regexp,
want_vtbl_collxfrm,
want_vtbl_amagic,
want_vtbl_amagicelem
};
# 2022 "perl.h"
typedef regexp*(*regcomp_t) (char* exp, char* xend, PMOP* pm);
typedef I32 (*regexec_t) (regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags);
# 2035 "perl.h"
typedef struct exitlistentry {
void (*fn) (void*);
void *ptr;
} PerlExitListEntry;
# 2094 "perl.h"
struct interpreter {
char broiled;
};
# 2112 "perl.h"
typedef void *Thread;
# 1 "thread.h" 1
# 2121 "perl.h" 2
# 1 "pp.h" 1
# 2122 "perl.h" 2
# 1 "proto.h" 1
# 9 "proto.h"
# 26 "proto.h"
SV* Perl_amagic_call (SV* left,SV* right,int method,int dir);
int Perl_Gv_AMupdate (HV* stash);
OP* Perl_append_elem (I32 optype, OP* head, OP* tail);
OP* Perl_append_list (I32 optype, LISTOP* first, LISTOP* last);
I32 Perl_apply (I32 type, SV** mark, SV** sp);
void Perl_assertref (OP* o);
int Perl_avhv_exists_ent (AV *ar, SV* keysv, U32 hash);
SV** Perl_avhv_fetch_ent (AV *ar, SV* keysv, I32 lval, U32 hash);
HE* Perl_avhv_iternext (AV *ar);
SV* Perl_avhv_iterval (AV *ar, HE* entry);
HV* Perl_avhv_keys (AV *ar);
void Perl_av_clear (AV* ar);
void Perl_av_extend (AV* ar, I32 key);
AV* Perl_av_fake (I32 size, SV** svp);
SV** Perl_av_fetch (AV* ar, I32 key, I32 lval);
void Perl_av_fill (AV* ar, I32 fill);
I32 Perl_av_len (AV* ar);
AV* Perl_av_make (I32 size, SV** svp);
SV* Perl_av_pop (AV* ar);
void Perl_av_push (AV* ar, SV* val);
void Perl_av_reify (AV* ar);
SV* Perl_av_shift (AV* ar);
SV** Perl_av_store (AV* ar, I32 key, SV* val);
void Perl_av_undef (AV* ar);
void Perl_av_unshift (AV* ar, I32 num);
OP* Perl_bind_match (I32 type, OP* left, OP* pat);
OP* Perl_block_end (I32 floor, OP* seq);
I32 Perl_block_gimme (void);
int Perl_block_start (int full);
void Perl_boot_core_UNIVERSAL (void);
void Perl_call_list (I32 oldscope, AV* av_list);
I32 Perl_cando (I32 bit, I32 effective, struct stat* statbufp);
U32 Perl_cast_ulong (double f);
OP* Perl_ck_gvconst (OP* o);
OP* Perl_ck_retarget (OP* o);
OP* Perl_convert (I32 optype, I32 flags, OP* o);
void Perl_croak (const char* pat,...) ;
void Perl_cv_ckproto (CV* cv, GV* gv, char* p);
CV* Perl_cv_clone (CV* proto);
SV* Perl_cv_const_sv (CV* cv);
SV* Perl_op_const_sv (OP* o, CV* cv);
void Perl_cv_undef (CV* cv);
void Perl_cx_dump (PERL_CONTEXT* cs);
SV* Perl_filter_add (filter_t funcp, SV* datasv);
void Perl_filter_del (filter_t funcp);
I32 Perl_filter_read (int idx, SV* buffer, int maxlen);
char ** Perl_get_op_descs (void);
char ** Perl_get_op_names (void);
char * Perl_get_no_modify (void);
U32 * Perl_get_opargs (void);
I32 Perl_cxinc (void);
void Perl_deb (const char* pat,...);
void Perl_deb_growlevel (void);
void Perl_debprofdump (void);
I32 Perl_debop (OP* o);
I32 Perl_debstack (void);
I32 Perl_debstackptrs (void);
char* Perl_delimcpy (char* to, char* toend, char* from, char* fromend, int delim, I32* retlen);
void Perl_deprecate (char* s);
OP* Perl_die (const char* pat,...);
OP* Perl_die_where (char* message);
void Perl_dounwind (I32 cxix);
int Perl_do_aexec (SV* really, SV** mark, SV** sp);
int Perl_do_binmode (FILE *fp, int iotype, int flag);
void Perl_do_chop (SV* asv, SV* sv);
int Perl_do_close (GV* gv, int not_implicit);
int Perl_do_eof (GV* gv);
int Perl_do_exec (char* cmd);
void Perl_do_execfree (void);
void Perl_do_join (SV* sv, SV* del, SV** mark, SV** sp);
OP* Perl_do_kv (void);
int Perl_do_open (GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, FILE* supplied_fp);
void Perl_do_pipe (SV* sv, GV* rgv, GV* wgv);
int Perl_do_print (SV* sv, FILE* fp);
OP* Perl_do_readline (void);
I32 Perl_do_chomp (SV* sv);
int Perl_do_seek (GV* gv, long pos, int whence);
void Perl_do_sprintf (SV* sv, I32 len, SV** sarg);
long Perl_do_sysseek (GV* gv, long pos, int whence);
long Perl_do_tell (GV* gv);
I32 Perl_do_trans (SV* sv, OP* arg);
void Perl_do_vecset (SV* sv);
void Perl_do_vop (I32 optype, SV* sv, SV* left, SV* right);
I32 Perl_dowantarray (void);
void Perl_dump_all (void);
void Perl_dump_eval (void);
void Perl_dump_form (GV* gv);
void Perl_dump_gv (GV* gv);
void Perl_dump_op (OP* arg);
void Perl_dump_pm (PMOP* pm);
void Perl_dump_packsubs (HV* stash);
void Perl_dump_sub (GV* gv);
void Perl_fbm_compile (SV* sv, U32 flags);
char* Perl_fbm_instr (unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags);
char* Perl_find_script (char *scriptname, int dosearch, char **search_ext, I32 flags);
OP* Perl_force_list (OP* arg);
OP* Perl_fold_constants (OP* arg);
char* Perl_form (const char* pat, ...);
void Perl_free_tmps (void);
OP* Perl_gen_constant_list (OP* o);
void Perl_gp_free (GV* gv);
GP* Perl_gp_ref (GP* gp);
GV* Perl_gv_AVadd (GV* gv);
GV* Perl_gv_HVadd (GV* gv);
GV* Perl_gv_IOadd (GV* gv);
GV* Perl_gv_autoload4 (HV* stash, char* name, STRLEN len, I32 method);
void Perl_gv_check (HV* stash);
void Perl_gv_efullname (SV* sv, GV* gv);
void Perl_gv_efullname3 (SV* sv, GV* gv, char* prefix);
GV* Perl_gv_fetchfile (char* name);
GV* Perl_gv_fetchmeth (HV* stash, char* name, STRLEN len, I32 level);
GV* Perl_gv_fetchmethod (HV* stash, char* name);
GV* Perl_gv_fetchmethod_autoload (HV* stash, char* name, I32 autoload);
GV* Perl_gv_fetchpv (char* name, I32 add, I32 sv_type);
void Perl_gv_fullname (SV* sv, GV* gv);
void Perl_gv_fullname3 (SV* sv, GV* gv, char* prefix);
void Perl_gv_init (GV* gv, HV* stash, char* name, STRLEN len, int multi);
HV* Perl_gv_stashpv (char* name, I32 create);
HV* Perl_gv_stashpvn (char* name, U32 namelen, I32 create);
HV* Perl_gv_stashsv (SV* sv, I32 create);
void Perl_hv_clear (HV* tb);
void Perl_hv_delayfree_ent (HV* hv, HE* entry);
SV* Perl_hv_delete (HV* tb, char* key, U32 klen, I32 flags);
SV* Perl_hv_delete_ent (HV* tb, SV* key, I32 flags, U32 hash);
int Perl_hv_exists (HV* tb, char* key, U32 klen);
int Perl_hv_exists_ent (HV* tb, SV* key, U32 hash);
SV** Perl_hv_fetch (HV* tb, char* key, U32 klen, I32 lval);
HE* Perl_hv_fetch_ent (HV* tb, SV* key, I32 lval, U32 hash);
void Perl_hv_free_ent (HV* hv, HE* entry);
I32 Perl_hv_iterinit (HV* tb);
char* Perl_hv_iterkey (HE* entry, I32* retlen);
SV* Perl_hv_iterkeysv (HE* entry);
HE* Perl_hv_iternext (HV* tb);
SV* Perl_hv_iternextsv (HV* hv, char** key, I32* retlen);
SV* Perl_hv_iterval (HV* tb, HE* entry);
void Perl_hv_ksplit (HV* hv, IV newmax);
void Perl_hv_magic (HV* hv, GV* gv, int how);
SV** Perl_hv_store (HV* tb, char* key, U32 klen, SV* val, U32 hash);
HE* Perl_hv_store_ent (HV* tb, SV* key, SV* val, U32 hash);
void Perl_hv_undef (HV* tb);
I32 Perl_ibcmp (char* a, char* b, I32 len);
I32 Perl_ibcmp_locale (char* a, char* b, I32 len);
I32 Perl_ingroup (I32 testgid, I32 effective);
void Perl_init_stacks (void);
U32 Perl_intro_my (void);
char* Perl_instr (char* big, char* little);
int Perl_io_close (IO* io);
OP* Perl_invert (OP* cmd);
OP* Perl_jmaybe (OP* arg);
I32 Perl_keyword (char* d, I32 len);
void Perl_leave_scope (I32 base);
void Perl_lex_end (void);
void Perl_lex_start (SV* line);
OP* Perl_linklist (OP* o);
OP* Perl_list (OP* o);
OP* Perl_listkids (OP* o);
OP* Perl_localize (OP* arg, I32 lexical);
I32 Perl_looks_like_number (SV* sv);
int Perl_magic_clearenv (SV* sv, MAGIC* mg);
int Perl_magic_clear_all_env (SV* sv, MAGIC* mg);
int Perl_magic_clearpack (SV* sv, MAGIC* mg);
int Perl_magic_clearsig (SV* sv, MAGIC* mg);
int Perl_magic_existspack (SV* sv, MAGIC* mg);
int Perl_magic_freeregexp (SV* sv, MAGIC* mg);
int Perl_magic_get (SV* sv, MAGIC* mg);
int Perl_magic_getarylen (SV* sv, MAGIC* mg);
int Perl_magic_getdefelem (SV* sv, MAGIC* mg);
int Perl_magic_getglob (SV* sv, MAGIC* mg);
int Perl_magic_getnkeys (SV* sv, MAGIC* mg);
int Perl_magic_getpack (SV* sv, MAGIC* mg);
int Perl_magic_getpos (SV* sv, MAGIC* mg);
int Perl_magic_getsig (SV* sv, MAGIC* mg);
int Perl_magic_getsubstr (SV* sv, MAGIC* mg);
int Perl_magic_gettaint (SV* sv, MAGIC* mg);
int Perl_magic_getuvar (SV* sv, MAGIC* mg);
int Perl_magic_getvec (SV* sv, MAGIC* mg);
U32 Perl_magic_len (SV* sv, MAGIC* mg);
int Perl_magic_nextpack (SV* sv, MAGIC* mg, SV* key);
int Perl_magic_set (SV* sv, MAGIC* mg);
int Perl_magic_setamagic (SV* sv, MAGIC* mg);
int Perl_magic_setarylen (SV* sv, MAGIC* mg);
int Perl_magic_setbm (SV* sv, MAGIC* mg);
int Perl_magic_setdbline (SV* sv, MAGIC* mg);
int Perl_magic_setdefelem (SV* sv, MAGIC* mg);
int Perl_magic_setenv (SV* sv, MAGIC* mg);
int Perl_magic_setfm (SV* sv, MAGIC* mg);
int Perl_magic_setisa (SV* sv, MAGIC* mg);
int Perl_magic_setglob (SV* sv, MAGIC* mg);
int Perl_magic_setmglob (SV* sv, MAGIC* mg);
int Perl_magic_setnkeys (SV* sv, MAGIC* mg);
int Perl_magic_setpack (SV* sv, MAGIC* mg);
int Perl_magic_setpos (SV* sv, MAGIC* mg);
int Perl_magic_setsig (SV* sv, MAGIC* mg);
int Perl_magic_setsubstr (SV* sv, MAGIC* mg);
int Perl_magic_settaint (SV* sv, MAGIC* mg);
int Perl_magic_setuvar (SV* sv, MAGIC* mg);
int Perl_magic_setvec (SV* sv, MAGIC* mg);
int Perl_magic_set_all_env (SV* sv, MAGIC* mg);
U32 Perl_magic_sizepack (SV* sv, MAGIC* mg);
int Perl_magic_wipepack (SV* sv, MAGIC* mg);
void Perl_magicname (char* sym, char* name, I32 namlen);
int main (int argc, char** argv, char** env);
void Perl_markstack_grow (void);
char* Perl_mess (const char* pat, va_list* args);
int Perl_mg_clear (SV* sv);
int Perl_mg_copy (SV* sv, SV* nsv, char* key, I32 klen);
MAGIC* Perl_mg_find (SV* sv, int type);
int Perl_mg_free (SV* sv);
int Perl_mg_get (SV* sv);
U32 Perl_mg_length (SV* sv);
void Perl_mg_magical (SV* sv);
int Perl_mg_set (SV* sv);
I32 Perl_mg_size (SV* sv);
OP* Perl_mod (OP* o, I32 type);
char* Perl_moreswitches (char* s);
OP* Perl_my (OP* o);
char* Perl_my_bcopy (char* from, char* to, I32 len);
void Perl_my_exit (U32 status) ;
void Perl_my_failure_exit (void) ;
I32 Perl_my_lstat (void);
I32 Perl_my_memcmp (char* s1, char* s2, I32 len);
I32 Perl_my_pclose (FILE* ptr);
FILE* Perl_my_popen (char* cmd, char* mode);
void Perl_my_setenv (char* nam, char* val);
I32 Perl_my_stat (void);
short Perl_my_swap (short s);
long Perl_my_htonl (long l);
long Perl_my_ntohl (long l);
void Perl_my_unexec (void);
OP* Perl_newANONLIST (OP* o);
OP* Perl_newANONHASH (OP* o);
OP* Perl_newANONSUB (I32 floor, OP* proto, OP* block);
OP* Perl_newASSIGNOP (I32 flags, OP* left, I32 optype, OP* right);
OP* Perl_newCONDOP (I32 flags, OP* expr, OP* trueop, OP* falseop);
void Perl_newCONSTSUB (HV* stash, char* name, SV* sv);
void Perl_newFORM (I32 floor, OP* o, OP* block);
OP* Perl_newFOROP (I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont);
OP* Perl_newLOGOP (I32 optype, I32 flags, OP* left, OP* right);
OP* Perl_newLOOPEX (I32 type, OP* label);
OP* Perl_newLOOPOP (I32 flags, I32 debuggable, OP* expr, OP* block);
OP* Perl_newNULLLIST (void);
OP* Perl_newOP (I32 optype, I32 flags);
void Perl_newPROG (OP* o);
OP* Perl_newRANGE (I32 flags, OP* left, OP* right);
OP* Perl_newSLICEOP (I32 flags, OP* subscript, OP* Perl_list);
OP* Perl_newSTATEOP (I32 flags, char* label, OP* o);
CV* Perl_newSUB (I32 floor, OP* o, OP* proto, OP* block);
CV* Perl_newXS (char* name, void (*subaddr)(CV* cv ), char* filename);
AV* Perl_newAV (void);
OP* Perl_newAVREF (OP* o);
OP* Perl_newBINOP (I32 type, I32 flags, OP* first, OP* last);
OP* Perl_newCVREF (I32 flags, OP* o);
OP* Perl_newGVOP (I32 type, I32 flags, GV* gv);
GV* Perl_newGVgen (char* pack);
OP* Perl_newGVREF (I32 type, OP* o);
OP* Perl_newHVREF (OP* o);
HV* Perl_newHV (void);
HV* Perl_newHVhv (HV* hv);
IO* Perl_newIO (void);
OP* Perl_newLISTOP (I32 type, I32 flags, OP* first, OP* last);
OP* Perl_newPMOP (I32 type, I32 flags);
OP* Perl_newPVOP (I32 type, I32 flags, char* pv);
SV* Perl_newRV (SV* pref);
SV* Perl_newRV_noinc (SV *sv);
SV* Perl_newSV (STRLEN len);
OP* Perl_newSVREF (OP* o);
OP* Perl_newSVOP (I32 type, I32 flags, SV* sv);
SV* Perl_newSViv (IV i);
SV* Perl_newSVnv (double n);
SV* Perl_newSVpv (char* s, STRLEN len);
SV* Perl_newSVpvn (char *s, STRLEN len);
SV* Perl_newSVpvf (const char* pat, ...);
SV* Perl_newSVrv (SV* rv, char* classname);
SV* Perl_newSVsv (SV* old);
OP* Perl_newUNOP (I32 type, I32 flags, OP* first);
OP* Perl_newWHILEOP (I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont);
PERL_SI * Perl_new_stackinfo (I32 stitems, I32 cxitems);
FILE* Perl_nextargv (GV* gv);
char* Perl_ninstr (char* big, char* bigend, char* little, char* lend);
OP* Perl_oopsCV (OP* o);
void Perl_op_free (OP* arg);
void Perl_package (OP* o);
PADOFFSET Perl_pad_alloc (I32 optype, U32 tmptype);
PADOFFSET Perl_pad_allocmy (char* name);
PADOFFSET Perl_pad_findmy (char* name);
OP* Perl_oopsAV (OP* o);
OP* Perl_oopsHV (OP* o);
void Perl_pad_leavemy (I32 fill);
SV* Perl_pad_sv (PADOFFSET po);
void Perl_pad_free (PADOFFSET po);
void Perl_pad_reset (void);
void Perl_pad_swipe (PADOFFSET po);
void Perl_peep (OP* o);
PerlInterpreter* perl_alloc (void);
void perl_atexit (void(*fn)(void *), void*);
I32 perl_call_argv (char* sub_name, I32 flags, char** argv);
I32 perl_call_method (char* methname, I32 flags);
I32 perl_call_pv (char* sub_name, I32 flags);
I32 perl_call_sv (SV* sv, I32 flags);
void perl_construct (PerlInterpreter* sv_interp);
void perl_destruct (PerlInterpreter* sv_interp);
SV* perl_eval_pv (char* p, I32 croak_on_error);
I32 perl_eval_sv (SV* sv, I32 flags);
void perl_free (PerlInterpreter* sv_interp);
SV* perl_get_sv (char* name, I32 create);
AV* perl_get_av (char* name, I32 create);
HV* perl_get_hv (char* name, I32 create);
CV* perl_get_cv (char* name, I32 create);
int perl_init_i18nl10n (int printwarn);
int perl_init_i18nl14n (int printwarn);
void perl_new_collate (char* newcoll);
void perl_new_ctype (char* newctype);
void perl_new_numeric (char* newcoll);
void perl_set_numeric_local (void);
void perl_set_numeric_standard (void);
int perl_parse (PerlInterpreter* sv_interp, void(*xsinit)(void), int argc, char** argv, char** env);
void perl_require_pv (char* pv);
int perl_run (PerlInterpreter* sv_interp);
void Perl_pidgone (int pid, int status);
void Perl_pmflag (U16* pmfl, int ch);
OP* Perl_pmruntime (OP* pm, OP* expr, OP* repl);
OP* Perl_pmtrans (OP* o, OP* expr, OP* repl);
OP* Perl_pop_return (void);
void Perl_pop_scope (void);
OP* Perl_prepend_elem (I32 optype, OP* head, OP* tail);
void Perl_push_return (OP* o);
void Perl_push_scope (void);
OP* Perl_ref (OP* o, I32 type);
OP* Perl_refkids (OP* o, I32 type);
void Perl_regdump (regexp* r);
I32 Perl_pregexec (regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave);
void Perl_pregfree (struct regexp* r);
regexp* Perl_pregcomp (char* exp, char* xend, PMOP* pm);
I32 Perl_regexec_flags (regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags);
regnode* Perl_regnext (regnode* p);
void Perl_regprop (SV* sv, regnode* o);
void Perl_repeatcpy (char* to, char* from, I32 len, I32 count);
char* Perl_rninstr (char* big, char* bigend, char* little, char* lend);
Sighandler_t Perl_rsignal (int i, Sighandler_t t);
int Perl_rsignal_restore (int i, Sigsave_t* t);
int Perl_rsignal_save (int i, Sighandler_t t1, Sigsave_t* t2);
Sighandler_t Perl_rsignal_state (int i);
void Perl_rxres_free (void** rsp);
void Perl_rxres_restore (void** rsp, REGEXP* prx);
void Perl_rxres_save (void** rsp, REGEXP* prx);
char* Perl_savepv (char* sv);
char* Perl_savepvn (char* sv, I32 len);
void Perl_savestack_grow (void);
void Perl_save_aelem (AV* av, I32 idx, SV **sptr);
void Perl_save_aptr (AV** aptr);
AV* Perl_save_ary (GV* gv);
void Perl_save_clearsv (SV** svp);
void Perl_save_delete (HV* hv, char* key, I32 klen);
void Perl_save_destructor (void (*f)(void*), void* p);
void Perl_save_freesv (SV* sv);
void Perl_save_freeop (OP* o);
void Perl_save_freepv (char* pv);
void Perl_save_gp (GV* gv, I32 empty);
HV* Perl_save_hash (GV* gv);
void Perl_save_helem (HV* hv, SV *key, SV **sptr);
void Perl_save_hints (void);
void Perl_save_hptr (HV** hptr);
void Perl_save_I16 (I16* intp);
void Perl_save_I32 (I32* intp);
void Perl_save_int (int* intp);
void Perl_save_item (SV* item);
void Perl_save_iv (IV* iv);
void Perl_save_list (SV** sarg, I32 maxsarg);
void Perl_save_long (long* longp);
void Perl_save_nogv (GV* gv);
void Perl_save_op (void);
SV* Perl_save_scalar (GV* gv);
void Perl_save_pptr (char** pptr);
void Perl_save_sptr (SV** sptr);
SV* Perl_save_svref (SV** sptr);
SV** Perl_save_threadsv (PADOFFSET i);
OP* Perl_sawparens (OP* o);
OP* Perl_scalar (OP* o);
OP* Perl_scalarkids (OP* o);
OP* Perl_scalarseq (OP* o);
OP* Perl_scalarvoid (OP* o);
UV Perl_scan_hex (char* start, I32 len, I32* retlen);
char* Perl_scan_num (char* s);
UV Perl_scan_oct (char* start, I32 len, I32* retlen);
OP* Perl_scope (OP* o);
char* Perl_screaminstr (SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last);
I32 Perl_setenv_getix (char* nam);
void Perl_setdefout (GV* gv);
char* Perl_sharepvn (char* sv, I32 len, U32 hash);
HEK* Perl_share_hek (char* sv, I32 len, U32 hash);
void Perl_sighandler (int sig);
SV** Perl_stack_grow (SV** sp, SV**p, int n);
I32 Perl_start_subparse (I32 is_format, U32 flags);
void Perl_sub_crush_depth (CV* cv);
int Perl_sv_2bool (SV* sv);
CV* Perl_sv_2cv (SV* sv, HV** st, GV** gvp, I32 lref);
IO* Perl_sv_2io (SV* sv);
IV Perl_sv_2iv (SV* sv);
SV* Perl_sv_2mortal (SV* sv);
double Perl_sv_2nv (SV* sv);
char* Perl_sv_2pv (SV* sv, STRLEN* lp);
UV Perl_sv_2uv (SV* sv);
IV Perl_sv_iv (SV* sv);
UV Perl_sv_uv (SV* sv);
double Perl_sv_nv (SV* sv);
char * Perl_sv_pvn (SV *sv, STRLEN *len);
I32 Perl_sv_true (SV *sv);
void Perl_sv_add_arena (char* ptr, U32 size, U32 flags);
int Perl_sv_backoff (SV* sv);
SV* Perl_sv_bless (SV* sv, HV* stash);
void Perl_sv_catpvf (SV* sv, const char* pat, ...);
void Perl_sv_catpv (SV* sv, char* ptr);
void Perl_sv_catpvn (SV* sv, char* ptr, STRLEN len);
void Perl_sv_catsv (SV* dsv, SV* ssv);
void Perl_sv_chop (SV* sv, char* ptr);
void Perl_sv_clean_all (void);
void Perl_sv_clean_objs (void);
void Perl_sv_clear (SV* sv);
I32 Perl_sv_cmp (SV* sv1, SV* sv2);
I32 Perl_sv_cmp_locale (SV* sv1, SV* sv2);
OP* Perl_sv_compile_2op (SV* sv, OP** startp, char* code, AV** avp);
void Perl_sv_dec (SV* sv);
void Perl_sv_dump (SV* sv);
int Perl_sv_derived_from (SV* sv, char* name);
I32 Perl_sv_eq (SV* sv1, SV* sv2);
void Perl_sv_free (SV* sv);
void Perl_sv_free_arenas (void);
char* Perl_sv_gets (SV* sv, FILE* fp, I32 append);
char* Perl_sv_grow (SV* sv, I32 newlen);
void Perl_sv_inc (SV* sv);
void Perl_sv_insert (SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen);
int Perl_sv_isa (SV* sv, char* name);
int Perl_sv_isobject (SV* sv);
STRLEN Perl_sv_len (SV* sv);
void Perl_sv_magic (SV* sv, SV* obj, int how, char* name, I32 namlen);
SV* Perl_sv_mortalcopy (SV* oldsv);
SV* Perl_sv_newmortal (void);
SV* Perl_sv_newref (SV* sv);
char* Perl_sv_peek (SV* sv);
char* Perl_sv_pvn_force (SV* sv, STRLEN* lp);
char* Perl_sv_reftype (SV* sv, int ob);
void Perl_sv_replace (SV* sv, SV* nsv);
void Perl_sv_report_used (void);
void Perl_sv_reset (char* s, HV* stash);
void Perl_sv_setpvf (SV* sv, const char* pat, ...);
void Perl_sv_setiv (SV* sv, IV num);
void Perl_sv_setpviv (SV* sv, IV num);
void Perl_sv_setuv (SV* sv, UV num);
void Perl_sv_setnv (SV* sv, double num);
SV* Perl_sv_setref_iv (SV* rv, char* classname, IV iv);
SV* Perl_sv_setref_nv (SV* rv, char* classname, double nv);
SV* Perl_sv_setref_pv (SV* rv, char* classname, void* pv);
SV* Perl_sv_setref_pvn (SV* rv, char* classname, char* pv, I32 n);
void Perl_sv_setpv (SV* sv, const char* ptr);
void Perl_sv_setpvn (SV* sv, const char* ptr, STRLEN len);
void Perl_sv_setsv (SV* dsv, SV* ssv);
void Perl_sv_taint (SV* sv);
int Perl_sv_tainted (SV* sv);
int Perl_sv_unmagic (SV* sv, int type);
void Perl_sv_unref (SV* sv);
void Perl_sv_untaint (SV* sv);
int Perl_sv_upgrade (SV* sv, U32 mt);
void Perl_sv_usepvn (SV* sv, char* ptr, STRLEN len);
void Perl_sv_vcatpvfn (SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, int *used_locale);
void Perl_sv_vsetpvfn (SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, int *used_locale);
void Perl_taint_env (void);
void Perl_taint_proper (const char* f, char* s);
void Perl_unsharepvn (char* sv, I32 len, U32 hash);
void Perl_unshare_hek (HEK* hek);
void Perl_utilize (int aver, I32 floor, OP* version, OP* id, OP* arg);
void Perl_vivify_defelem (SV* sv);
void Perl_vivify_ref (SV* sv, U32 to_what);
I32 Perl_wait4pid (int pid, int* statusp, int flags);
void Perl_warn (const char* pat,...);
void Perl_watch (char** addr);
I32 Perl_whichsig (char* sig);
int Perl_yyerror (char* s);
int Perl_yylex (void);
int Perl_yyparse (void);
int Perl_yywarn (char* s);
void * Perl_safemalloc (size_t nbytes);
void * Perl_safecalloc (size_t elements, size_t size);
void * Perl_saferealloc (void * where, size_t nbytes);
void Perl_safefree (void * where);
# 879 "proto.h"
void Perl_byterun (FILE *fp);
void Perl_sv_catpvf_mg (SV *sv, const char* pat, ...);
void Perl_sv_catpv_mg (SV *sv, char *ptr);
void Perl_sv_catpvn_mg (SV *sv, char *ptr, STRLEN len);
void Perl_sv_catsv_mg (SV *dstr, SV *sstr);
void Perl_sv_setpvf_mg (SV *sv, const char* pat, ...);
void Perl_sv_setiv_mg (SV *sv, IV i);
void Perl_sv_setpviv_mg (SV *sv, IV iv);
void Perl_sv_setuv_mg (SV *sv, UV u);
void Perl_sv_setnv_mg (SV *sv, double num);
void Perl_sv_setpv_mg (SV *sv, const char *ptr);
void Perl_sv_setpvn_mg (SV *sv, const char *ptr, STRLEN len);
void Perl_sv_setsv_mg (SV *dstr, SV *sstr);
void Perl_sv_usepvn_mg (SV *sv, char *ptr, STRLEN len);
MGVTBL* Perl_get_vtbl (int vtbl_id);
OP* Perl_dofile (OP* term);
void Perl_save_generic_svref (SV** sptr);
# 2123 "perl.h" 2
# 2134 "perl.h"
# 1 "embedvar.h" 1
# 2135 "perl.h" 2
# 2146 "perl.h"
# 1 "perlvars.h" 1
# 21 "perlvars.h"
extern PerlInterpreter * PL_curinterp;
# 42 "perlvars.h"
extern int PL_ninterps;
extern int PL_uid;
extern int PL_euid;
extern int PL_gid;
extern int PL_egid;
extern int PL_nomemok;
extern U32 PL_an;
extern U32 PL_cop_seqmax;
extern U16 PL_op_seqmax;
extern U32 PL_evalseq;
extern char ** PL_origenviron;
extern U32 PL_origalen;
extern HV * PL_pidstatus;
extern int PL_maxo ;
extern char * PL_osname;
extern char * PL_sh_path ;
extern Sighandler_t PL_sighandlerp;
extern XPV* PL_xiv_arenaroot;
extern IV * PL_xiv_root;
extern double * PL_xnv_root;
extern XRV * PL_xrv_root;
extern XPV * PL_xpv_root;
extern HE * PL_he_root;
extern char * PL_nice_chunk;
extern U32 PL_nice_chunk_size;
extern runops_proc_t * PL_runops ;
extern char PL_tokenbuf[256];
extern STRLEN PL_na;
extern SV PL_sv_undef;
extern SV PL_sv_no;
extern SV PL_sv_yes;
extern U32 PL_lex_state;
extern U32 PL_lex_defer;
extern expectation PL_lex_expect;
extern I32 PL_lex_brackets;
extern I32 PL_lex_formbrack;
extern I32 PL_lex_fakebrack;
extern I32 PL_lex_casemods;
extern I32 PL_lex_dojoin;
extern I32 PL_lex_starts;
extern SV * PL_lex_stuff;
extern SV * PL_lex_repl;
extern OP * PL_lex_op;
extern OP * PL_lex_inpat;
extern I32 PL_lex_inwhat;
extern char * PL_lex_brackstack;
extern char * PL_lex_casestack;
extern YYSTYPE PL_nextval[5];
extern I32 PL_nexttype[5];
extern I32 PL_nexttoke;
extern SV * PL_linestr;
extern char * PL_bufptr;
extern char * PL_oldbufptr;
extern char * PL_oldoldbufptr;
extern char * PL_bufend;
extern expectation PL_expect ;
extern I32 PL_multi_start;
extern I32 PL_multi_end;
extern I32 PL_multi_open;
extern I32 PL_multi_close;
extern I32 PL_error_count;
extern I32 PL_subline;
extern SV * PL_subname;
extern I32 PL_min_intro_pending;
extern I32 PL_max_intro_pending;
extern I32 PL_padix;
extern I32 PL_padix_floor;
extern I32 PL_pad_reset_pending;
extern I32 PL_thisexpr;
extern char * PL_last_uni;
extern char * PL_last_lop;
extern U16 PL_last_lop_op;
extern int PL_in_my;
extern HV * PL_in_my_stash;
extern U32 PL_hints;
extern int PL_do_undump;
extern volatile U32 PL_debug;
extern long PL_amagic_generation;
# 174 "perlvars.h"
extern const char * PL_Yes ;
extern const char * PL_No ;
extern const char * PL_hexdigit ;
extern const char * PL_patleave ;
extern SV * PL_specialsv_list[4];
# 2147 "perl.h" 2
# 1 "intrpvar.h" 1
# 17 "intrpvar.h"
extern int PL_origargc;
extern char ** PL_origargv;
extern GV * PL_envgv;
extern GV * PL_siggv;
extern GV * PL_incgv;
extern GV * PL_hintgv;
extern char * PL_origfilename;
extern SV * PL_diehook;
extern SV * PL_warnhook;
extern SV * PL_parsehook;
extern char * PL_cddir;
extern int PL_minus_c;
extern char PL_patchlevel[10];
extern char ** PL_localpatches;
extern char * PL_splitstr ;
extern int PL_preprocess;
extern int PL_minus_n;
extern int PL_minus_p;
extern int PL_minus_l;
extern int PL_minus_a;
extern int PL_minus_F;
extern int PL_doswitches;
extern int PL_dowarn;
extern int PL_doextract;
extern int PL_sawampersand;
extern int PL_sawstudy;
extern int PL_sawvec;
extern int PL_unsafe;
extern char * PL_inplace;
extern SV * PL_e_script;
extern U32 PL_perldb;
extern int PL_perl_destruct_level ;
extern time_t PL_basetime;
extern SV * PL_formfeed;
extern I32 PL_maxsysfd ;
extern int PL_multiline;
extern I32 PL_statusvalue;
extern GV * PL_stdingv;
extern GV * PL_defgv;
extern GV * PL_argvgv;
extern GV * PL_argvoutgv;
extern GV * PL_leftgv;
extern GV * PL_ampergv;
extern GV * PL_rightgv;
extern GV * PL_replgv;
extern GV * PL_errgv;
extern GV * PL_DBgv;
extern GV * PL_DBline;
extern GV * PL_DBsub;
extern SV * PL_DBsingle;
extern SV * PL_DBtrace;
extern SV * PL_DBsignal;
extern AV * PL_lineary;
extern AV * PL_dbargs;
extern HV * PL_debstash;
extern HV * PL_globalstash;
extern SV * PL_curstname;
extern AV * PL_beginav;
extern AV * PL_endav;
extern AV * PL_initav;
extern HV * PL_strtab;
extern U32 PL_sub_generation ;
extern I32 PL_sv_count;
extern I32 PL_sv_objcount;
extern SV* PL_sv_root;
extern SV* PL_sv_arenaroot;
extern I32 PL_lastspbase;
extern I32 PL_lastsize;
extern int PL_forkprocess;
extern AV * PL_fdpid;
extern int PL_tainting;
extern char * PL_op_mask ;
extern char * PL_last_proto;
extern I32 PL_dlevel;
extern I32 PL_dlmax ;
extern char * PL_debname;
extern char * PL_debdelim;
extern CV * PL_main_cv;
extern OP * PL_main_root;
extern OP * PL_main_start;
extern OP * PL_eval_root;
extern OP * PL_eval_start;
extern COP * PL_curcopdb ;
extern line_t PL_copline ;
extern SV PL_strchop;
extern int PL_filemode;
extern int PL_lastfd;
extern char * PL_oldname;
extern char ** PL_Argv;
extern char * PL_Cmd;
extern SV * PL_mystrk;
extern I32 PL_dumplvl;
extern PMOP * PL_oldlastpm;
extern I32 PL_gensym;
extern int PL_preambled;
extern AV * PL_preambleav;
extern int PL_laststatval ;
extern I32 PL_laststype ;
extern SV * PL_mess_sv;
extern char * PL_ors;
extern STRLEN PL_orslen;
extern char * PL_ofmt;
extern PerlExitListEntry * PL_exitlist ;
extern I32 PL_exitlistlen ;
extern HV * PL_modglobal;
extern U32 * PL_profiledata ;
extern FILE * volatile PL_rsfp ;
extern AV * PL_rsfp_filters ;
extern COP PL_compiling;
extern CV * PL_compcv;
extern AV * PL_comppad;
extern AV * PL_comppad_name;
extern I32 PL_comppad_name_fill;
extern I32 PL_comppad_name_floor;
extern int PL_generation ;
extern CV * PL_DBcv;
extern char* PL_archpat_auto;
extern int PL_in_clean_objs ;
extern int PL_in_clean_all ;
extern char * PL_linestart;
extern char PL_pending_ident;
extern SUBLEXINFO PL_sublex_info;
extern int PL_bytecode_iv_overflows ;
extern SV * PL_bytecode_sv;
extern XPV PL_bytecode_pv;
extern void ** PL_bytecode_obj_list;
extern I32 PL_bytecode_obj_list_fill ;
# 2152 "perl.h" 2
# 1 "thrdvar.h" 1
# 20 "thrdvar.h"
extern SV ** PL_stack_sp;
extern OP * PL_op;
extern SV ** PL_curpad;
extern SV ** PL_stack_base;
extern SV ** PL_stack_max;
extern I32 * PL_scopestack;
extern I32 PL_scopestack_ix;
extern I32 PL_scopestack_max;
extern ANY * PL_savestack;
extern I32 PL_savestack_ix;
extern I32 PL_savestack_max;
extern SV ** PL_tmps_stack;
extern I32 PL_tmps_ix ;
extern I32 PL_tmps_floor ;
extern I32 PL_tmps_max;
extern I32 * PL_markstack;
extern I32 * PL_markstack_ptr;
extern I32 * PL_markstack_max;
extern OP ** PL_retstack;
extern I32 PL_retstack_ix;
extern I32 PL_retstack_max;
extern SV * PL_Sv;
extern XPV * PL_Xpv;
extern struct stat PL_statbuf;
extern struct stat PL_statcache;
extern GV * PL_statgv;
extern SV * PL_statname ;
extern struct tms PL_timesbuf;
extern int PL_tainted;
extern PMOP * PL_curpm;
extern SV * PL_nrs;
extern SV * PL_rs;
extern GV * PL_last_in_gv;
extern char * PL_ofs;
extern STRLEN PL_ofslen;
extern GV * PL_defoutgv;
extern char * PL_chopset ;
extern SV * PL_formtarget;
extern SV * PL_bodytarget;
extern SV * PL_toptarget;
extern HV * PL_defstash;
extern HV * PL_curstash;
extern OP * PL_restartop;
extern COP * volatile PL_curcop ;
extern volatile int PL_in_eval;
extern int PL_delaymagic;
extern int PL_dirty;
extern int PL_localizing;
extern AV * PL_curstack;
extern PERL_SI * PL_curstackinfo;
extern AV * PL_mainstack;
extern JMPENV * PL_top_env;
extern JMPENV PL_start_env;
extern SV * PL_av_fetch_sv;
extern SV * PL_hv_fetch_sv;
extern HE PL_hv_fetch_ent_mh;
extern I32 PL_modcount;
extern OP* PL_lastgotoprobe;
extern OP * PL_sortcop;
extern HV * PL_sortstash;
extern GV * PL_firstgv;
extern GV * PL_secondgv;
extern I32 PL_sortcxix;
extern I32 * PL_screamfirst;
extern I32 * PL_screamnext;
extern I32 PL_maxscream ;
extern SV * PL_lastscream;
extern regnode PL_regdummy;
extern char* PL_regcomp_parse;
extern char* PL_regxend;
extern regnode* PL_regcode;
extern I32 PL_regnaughty;
extern I32 PL_regsawback;
extern char * PL_regprecomp;
extern I32 PL_regnpar;
extern I32 PL_regsize;
extern U16 PL_regflags;
extern U32 PL_regseen;
extern I32 PL_seen_zerolen;
extern I32 PL_seen_evals;
extern regexp * PL_regcomp_rx;
extern I32 PL_extralen;
extern int PL_colorset;
extern char * PL_colors[4];
extern char * PL_reginput;
extern char * PL_regbol;
extern char * PL_regeol;
extern char ** PL_regstartp;
extern char ** PL_regendp;
extern U32 * PL_reglastparen;
extern char * PL_regtill;
extern char PL_regprev;
extern char ** PL_reg_start_tmp;
extern U32 PL_reg_start_tmpl;
extern struct reg_data * PL_regdata;
extern char * PL_bostr;
extern U32 PL_reg_flags;
extern I32 PL_reg_eval_set;
extern I32 PL_regnarrate;
extern regnode * PL_regprogram;
extern int PL_regindent ;
extern CURCUR * PL_regcc;
extern regcomp_t PL_regcompp ;
extern regexec_t PL_regexecp ;
extern int PL_reginterp_cnt ;
# 2154 "perl.h" 2
# 2317 "perl.h"
extern MGVTBL Perl_vtbl_sv;
extern MGVTBL Perl_vtbl_env;
extern MGVTBL Perl_vtbl_envelem;
extern MGVTBL Perl_vtbl_sig;
extern MGVTBL Perl_vtbl_sigelem;
extern MGVTBL Perl_vtbl_pack;
extern MGVTBL Perl_vtbl_packelem;
extern MGVTBL Perl_vtbl_dbline;
extern MGVTBL Perl_vtbl_isa;
extern MGVTBL Perl_vtbl_isaelem;
extern MGVTBL Perl_vtbl_arylen;
extern MGVTBL Perl_vtbl_glob;
extern MGVTBL Perl_vtbl_mglob;
extern MGVTBL Perl_vtbl_nkeys;
extern MGVTBL Perl_vtbl_taint;
extern MGVTBL Perl_vtbl_substr;
extern MGVTBL Perl_vtbl_vec;
extern MGVTBL Perl_vtbl_pos;
extern MGVTBL Perl_vtbl_bm;
extern MGVTBL Perl_vtbl_fm;
extern MGVTBL Perl_vtbl_uvar;
extern MGVTBL Perl_vtbl_defelem;
extern MGVTBL Perl_vtbl_regexp;
extern MGVTBL Perl_vtbl_amagic;
extern MGVTBL Perl_vtbl_amagicelem;
# 2393 "perl.h"
extern const char * Perl_AMG_names[58];
struct am_table {
long was_ok_sub;
long was_ok_am;
U32 flags;
CV* table[58];
long fallback;
};
struct am_table_short {
long was_ok_sub;
long was_ok_am;
U32 flags;
};
typedef struct am_table AMT;
typedef struct am_table_short AMTS;
# 2420 "perl.h"
enum {
Perl_fallback_amg, Perl_abs_amg,
Perl_bool__amg, Perl_nomethod_amg,
Perl_string_amg, Perl_numer_amg,
Perl_add_amg, Perl_add_ass_amg,
Perl_subtr_amg, Perl_subtr_ass_amg,
Perl_mult_amg, Perl_mult_ass_amg,
Perl_div_amg, Perl_div_ass_amg,
modulo_amg, modulo_ass_amg,
Perl_pow_amg, Perl_pow_ass_amg,
Perl_lshift_amg, Perl_lshift_ass_amg,
Perl_rshift_amg, Perl_rshift_ass_amg,
Perl_band_amg, band_ass_amg,
Perl_bor_amg, bor_ass_amg,
Perl_bxor_amg, bxor_ass_amg,
Perl_lt_amg, Perl_le_amg,
Perl_gt_amg, Perl_ge_amg,
Perl_eq_amg, Perl_ne_amg,
Perl_ncmp_amg, Perl_scmp_amg,
Perl_slt_amg, Perl_sle_amg,
Perl_sgt_amg, Perl_sge_amg,
Perl_seq_amg, Perl_sne_amg,
Perl_not_amg, Perl_compl_amg,
Perl_inc_amg, Perl_dec_amg,
Perl_atan2_amg, Perl_cos_amg,
Perl_sin_amg, Perl_exp_amg,
Perl_log_amg, Perl_sqrt_amg,
Perl_repeat_amg, Perl_repeat_ass_amg,
Perl_concat_amg, Perl_concat_ass_amg,
copy_amg, Perl_neg_amg
};
# 3 "universal.c" 2
static SV *
isa_lookup(HV *stash, char *name, int len, int level)
{
AV* av;
GV* gv;
GV** gvp;
HV* hv = ((HV*)((void *)0));
if (!stash)
return &PL_sv_undef;
if((!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (((XPVHV*) (stash)->sv_any)->xhv_name) && __builtin_constant_p (name) && (__s1_len = strlen (((XPVHV*) (stash)->sv_any)->xhv_name), __s2_len = strlen (name), (!((size_t)(const void *)((((XPVHV*) (stash)->sv_any)->xhv_name) + 1) - (size_t)(const void *)(((XPVHV*) (stash)->sv_any)->xhv_name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s2_len >= 4)) ? Perl_my_memcmp ((__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name), (__const char *) (name), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (((XPVHV*) (stash)->sv_any)->xhv_name) && ((size_t)(const void *)((((XPVHV*) (stash)->sv_any)->xhv_name) + 1) - (size_t)(const void *)(((XPVHV*) (stash)->sv_any)->xhv_name) == 1) && (__s1_len = strlen (((XPVHV*) (stash)->sv_any)->xhv_name), __s1_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (name); register int __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s2_len = strlen (name), __s2_len < 4) ? (__builtin_constant_p (((XPVHV*) (stash)->sv_any)->xhv_name) && ((size_t)(const void *)((((XPVHV*) (stash)->sv_any)->xhv_name) + 1) - (size_t)(const void *)(((XPVHV*) (stash)->sv_any)->xhv_name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (((XPVHV*) (stash)->sv_any)->xhv_name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; }))) : strcmp (((XPVHV*) (stash)->sv_any)->xhv_name, name)))); })))
return &PL_sv_yes;
if (level > 100)
Perl_croak("Recursive inheritance detected in package '%s'", ((XPVHV*) (stash)->sv_any)->xhv_name);
gvp = (GV**)Perl_hv_fetch(stash, "::ISA::CACHE::", 14, (0));
if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (hv = (((((XPVGV*)(gv)->sv_any)->xgv_gp))->gp_hv))) {
SV* sv;
SV** svp = (SV**)Perl_hv_fetch(hv, name, len, (0));
if (svp && (sv = *svp) != (SV*)&PL_sv_undef)
return sv;
}
gvp = (GV**)Perl_hv_fetch(stash,"ISA",3,(0));
if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (av = ((((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_av))) {
if(!hv) {
gvp = (GV**)Perl_hv_fetch(stash, "::ISA::CACHE::", 14, (1));
gv = *gvp;
if (((gv)->sv_flags & 0xff) != SVt_PVGV)
Perl_gv_init(gv, stash, "::ISA::CACHE::", 14, (1));
hv = ((((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_hv ? (((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_hv : (((XPVGV*)(Perl_gv_HVadd(gv))->sv_any)->xgv_gp)->gp_hv);
}
if(hv) {
SV** svp = ((SV**)((XPVAV*) (av)->sv_any)->xav_array);
I32 items = ((XPVAV*) (av)->sv_any)->xav_fill + 1;
while (items--) {
SV* sv = *svp++;
HV* basestash = Perl_gv_stashsv(sv, (0));
if (!basestash) {
if (PL_dowarn)
Perl_warn("Can't locate package %s for @%s::ISA",
((XPV*) (sv)->sv_any)->xpv_pv, ((XPVHV*) (stash)->sv_any)->xhv_name);
continue;
}
if(&PL_sv_yes == isa_lookup(basestash, name, len, level + 1)) {
(void)Perl_hv_store(hv,name,len,&PL_sv_yes,0);
return &PL_sv_yes;
}
}
(void)Perl_hv_store(hv,name,len,&PL_sv_no,0);
}
}
return (((!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (name) && __builtin_constant_p ("UNIVERSAL") && (__s1_len = strlen (name), __s2_len = strlen ("UNIVERSAL"), (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("UNIVERSAL") + 1) - (size_t)(const void *)("UNIVERSAL") == 1) || __s2_len >= 4)) ? Perl_my_memcmp ((__const char *) (name), (__const char *) ("UNIVERSAL"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s1_len = strlen (name), __s1_len < 4) ? (__builtin_constant_p ("UNIVERSAL") && ((size_t)(const void *)(("UNIVERSAL") + 1) - (size_t)(const void *)("UNIVERSAL") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)("UNIVERSAL"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("UNIVERSAL"); register int __result = (((__const unsigned char *) (__const char *) (name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("UNIVERSAL") && ((size_t)(const void *)(("UNIVERSAL") + 1) - (size_t)(const void *)("UNIVERSAL") == 1) && (__s2_len = strlen ("UNIVERSAL"), __s2_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)("UNIVERSAL"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("UNIVERSAL"))[3]); } } __result; }))) : strcmp (name, "UNIVERSAL")))); }))) ? &PL_sv_yes : &PL_sv_no);
}
int
Perl_sv_derived_from(SV *sv, char *name)
{
SV *rv;
char *type;
HV *stash;
stash = ((HV*)((void *)0));
type = ((char*)((void *)0));
if (((sv)->sv_flags & 0x00002000))
Perl_mg_get(sv) ;
if (((sv)->sv_flags & 0x00080000)) {
sv = ((XRV*) (sv)->sv_any)->xrv_rv;
type = Perl_sv_reftype(sv,0);
if(((sv)->sv_flags & 0x00001000))
stash = ((XPVMG*) (sv)->sv_any)->xmg_stash;
}
else {
stash = Perl_gv_stashsv(sv, (0));
}
return (type && (!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (type) && __builtin_constant_p (name) && (__s1_len = strlen (type), __s2_len = strlen (name), (!((size_t)(const void *)((type) + 1) - (size_t)(const void *)(type) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s2_len >= 4)) ? Perl_my_memcmp ((__const char *) (type), (__const char *) (name), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (type) && ((size_t)(const void *)((type) + 1) - (size_t)(const void *)(type) == 1) && (__s1_len = strlen (type), __s1_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (type))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (type))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (name); register int __result = (((__const unsigned char *) (__const char *) (type))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (type))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s2_len = strlen (name), __s2_len < 4) ? (__builtin_constant_p (type) && ((size_t)(const void *)((type) + 1) - (size_t)(const void *)(type) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (type))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (type))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (type))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (type); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; }))) : strcmp (type, name)))); }))) ||
(stash && isa_lookup(stash, name, strlen(name), 0) == &PL_sv_yes)
? (1)
: (0) ;
}
# 1 "XSUB.h" 1
# 108 "universal.c" 2
void XS_UNIVERSAL_isa(CV* cv)
{
extern int (*__errno_location ()); register SV **sp = PL_stack_sp; register SV **mark = PL_stack_base + (*PL_markstack_ptr--); I32 ax = mark - PL_stack_base + 1; I32 items = sp - mark;
SV *sv;
char *name;
STRLEN n_a;
if (items != 2)
Perl_croak("Usage: UNIVERSAL::isa(reference, kind)");
sv = PL_stack_base[ax + (0)];
name = (char *)(((PL_stack_base[ax + (1)])->sv_flags & 0x00040000) ? ((n_a = ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_cur), ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_pv) : Perl_sv_2pv(PL_stack_base[ax + (1)], &n_a));
PL_stack_base[ax + (0)] = ((Perl_sv_derived_from(sv, name)) ? &PL_sv_yes : &PL_sv_no);
(void)( { PL_stack_sp = PL_stack_base + ax + ((1) - 1); return; } );
}
void XS_UNIVERSAL_can(CV* cv)
{
extern int (*__errno_location ()); register SV **sp = PL_stack_sp; register SV **mark = PL_stack_base + (*PL_markstack_ptr--); I32 ax = mark - PL_stack_base + 1; I32 items = sp - mark;
SV *sv;
char *name;
SV *rv;
HV *pkg = ((void *)0);
STRLEN n_a;
if (items != 2)
Perl_croak("Usage: UNIVERSAL::can(object-ref, method)");
sv = PL_stack_base[ax + (0)];
name = (char *)(((PL_stack_base[ax + (1)])->sv_flags & 0x00040000) ? ((n_a = ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_cur), ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_pv) : Perl_sv_2pv(PL_stack_base[ax + (1)], &n_a));
rv = &PL_sv_undef;
if(((sv)->sv_flags & 0x00080000)) {
sv = (SV*)((XRV*) (sv)->sv_any)->xrv_rv;
if(((sv)->sv_flags & 0x00001000))
pkg = ((XPVMG*) (sv)->sv_any)->xmg_stash;
}
else {
pkg = Perl_gv_stashsv(sv, (0));
}
if (pkg) {
GV *gv = Perl_gv_fetchmethod_autoload(pkg, name, (0));
if (gv && (((gv)->sv_flags & 0xff) == SVt_PVGV))
rv = Perl_sv_2mortal(Perl_newRV((SV*)((((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_cv)));
}
PL_stack_base[ax + (0)] = rv;
(void)( { PL_stack_sp = PL_stack_base + ax + ((1) - 1); return; } );
}
void XS_UNIVERSAL_VERSION(CV* cv)
{
extern int (*__errno_location ()); register SV **sp = PL_stack_sp; register SV **mark = PL_stack_base + (*PL_markstack_ptr--); I32 ax = mark - PL_stack_base + 1; I32 items = sp - mark;
HV *pkg;
GV **gvp;
GV *gv;
SV *sv;
char *undef;
double req;
if(((PL_stack_base[ax + (0)])->sv_flags & 0x00080000)) {
sv = (SV*)((XRV*) (PL_stack_base[ax + (0)])->sv_any)->xrv_rv;
if(!((sv)->sv_flags & 0x00001000))
Perl_croak("Cannot find version of an unblessed reference");
pkg = ((XPVMG*) (sv)->sv_any)->xmg_stash;
}
else {
pkg = Perl_gv_stashsv(PL_stack_base[ax + (0)], (0));
}
gvp = pkg ? (GV**)Perl_hv_fetch(pkg,"VERSION",7,(0)) : ((GV**)((void *)0));
if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (sv = ((((XPVGV*)(gv)->sv_any)->xgv_gp)->gp_sv))) {
SV *nsv = Perl_sv_newmortal();
Perl_sv_setsv(nsv, sv);
sv = nsv;
undef = ((char*)((void *)0));
}
else {
sv = (SV*)&PL_sv_undef;
undef = "(undef)";
}
if (items > 1 && (undef || (req = (((PL_stack_base[ax + (1)])->sv_flags & 0x00020000) ? ((XPVNV*)(PL_stack_base[ax + (1)])->sv_any)->xnv_nv : Perl_sv_2nv(PL_stack_base[ax + (1)])), req > (((sv)->sv_flags & 0x00020000) ? ((XPVNV*)(sv)->sv_any)->xnv_nv : Perl_sv_2nv(sv))))) {
STRLEN n_a;
Perl_croak("%s version %s required--this is only version %s",
((XPVHV*) (pkg)->sv_any)->xhv_name, (((PL_stack_base[ax + (1)])->sv_flags & 0x00040000) ? ((n_a = ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_cur), ((XPV*) (PL_stack_base[ax + (1)])->sv_any)->xpv_pv) : Perl_sv_2pv(PL_stack_base[ax + (1)], &n_a)), undef ? undef : (((sv)->sv_flags & 0x00040000) ? ((n_a = ((XPV*) (sv)->sv_any)->xpv_cur), ((XPV*) (sv)->sv_any)->xpv_pv) : Perl_sv_2pv(sv, &n_a)));
}
PL_stack_base[ax + (0)] = sv;
(void)( { PL_stack_sp = PL_stack_base + ax + ((1) - 1); return; } );
}
void
Perl_boot_core_UNIVERSAL(void)
{
char *file = "universal.c";
Perl_newXS("UNIVERSAL::isa", XS_UNIVERSAL_isa, file);
Perl_newXS("UNIVERSAL::can", XS_UNIVERSAL_can, file);
Perl_newXS("UNIVERSAL::VERSION", XS_UNIVERSAL_VERSION, file);
}
^ permalink raw reply [flat|nested] 50+ messages in thread