Mercurial > hg > CbC > CbC_gcc
view CbC-examples/c-parser.c @ 45:d645ac0f55d6
add instration howto for PS3 to CbC-INSTALL.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 29 Jan 2010 12:18:08 +0900 |
parents | 4c6926a2b9bc |
children |
line wrap: on
line source
# 1 "../../GCC/gcc/c-parser.c" # 1 "/home/kent/cvs_tmp/CbC_project/build-test/gcc//" # 1 "<built-in>" # 1 "<command line>" # 1 "../../GCC/gcc/c-parser.c" # 39 "../../GCC/gcc/c-parser.c" # 1 "./config.h" 1 # 1 "./auto-host.h" 1 # 7 "./config.h" 2 # 1 "../../GCC/gcc/../include/ansidecl.h" 1 # 9 "./config.h" 2 # 40 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/system.h" 1 # 27 "../../GCC/gcc/system.h" # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stdarg.h" 1 3 4 # 43 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 105 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; # 28 "../../GCC/gcc/system.h" 2 # 38 "../../GCC/gcc/system.h" # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 152 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 3 4 typedef int ptrdiff_t; # 214 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 3 4 typedef unsigned int size_t; # 326 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 3 4 typedef long int wchar_t; # 39 "../../GCC/gcc/system.h" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 28 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 329 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 313 "/usr/include/sys/cdefs.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 314 "/usr/include/sys/cdefs.h" 2 3 4 # 330 "/usr/include/features.h" 2 3 4 # 352 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 5 "/usr/include/gnu/stubs.h" 2 3 4 # 1 "/usr/include/gnu/stubs-32.h" 1 3 4 # 8 "/usr/include/gnu/stubs.h" 2 3 4 # 353 "/usr/include/features.h" 2 3 4 # 29 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 35 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 28 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 29 "/usr/include/bits/types.h" 2 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 32 "/usr/include/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; 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; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 134 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/typesizes.h" 1 3 4 # 135 "/usr/include/bits/types.h" 2 3 4 __extension__ typedef __u_quad_t __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef __u_quad_t __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef __quad_t __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef __u_quad_t __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef void * __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef __quad_t __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef __u_quad_t __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef __u_quad_t __fsfilcnt64_t; __extension__ typedef int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 37 "/usr/include/stdio.h" 2 3 4 typedef struct _IO_FILE FILE; # 62 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 72 "/usr/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 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 355 "/usr/lib/gcc/i386-redhat-linux/4.1.1/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 "/usr/lib/gcc/i386-redhat-linux/4.1.1/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 # 76 "/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 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 29 "/usr/include/gconv.h" 2 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/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 wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); 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_btowc_fct __btowc_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 __attribute__ ((__mode__ (__HI__))); typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); # 33 "/usr/include/libio.h" 2 3 4 # 166 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 176 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 199 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 267 "/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 _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 315 "/usr/include/libio.h" 3 4 __off64_t _offset; # 324 "/usr/include/libio.h" 3 4 void *__pad1; void *__pad2; void *__pad3; void *__pad4; size_t __pad5; int _mode; char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; }; 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_; # 360 "/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); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern int __underflow (_IO_FILE *) __attribute__ ((__nothrow__)); extern int __uflow (_IO_FILE *) __attribute__ ((__nothrow__)); extern int __overflow (_IO_FILE *, int) __attribute__ ((__nothrow__)); extern wint_t __wunderflow (_IO_FILE *) __attribute__ ((__nothrow__)); extern wint_t __wuflow (_IO_FILE *) __attribute__ ((__nothrow__)); extern wint_t __woverflow (_IO_FILE *, wint_t) __attribute__ ((__nothrow__)); # 450 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_putc (int __c, _IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_peekc_locked (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__)); extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__)); extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__)); # 480 "/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) __attribute__ ((__nothrow__)); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) __attribute__ ((__nothrow__)); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) __attribute__ ((__nothrow__)); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) __attribute__ ((__nothrow__)); extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__)); # 73 "/usr/include/stdio.h" 2 3 4 # 86 "/usr/include/stdio.h" 3 4 typedef _G_fpos_t fpos_t; typedef _G_fpos64_t fpos64_t; # 138 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 139 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (__const char *__filename) __attribute__ ((__nothrow__)); extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__)); extern int renameat (int __oldfd, __const char *__old, int __newfd, __const char *__new) __attribute__ ((__nothrow__)); extern FILE *tmpfile (void); # 181 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile64 (void); extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)); extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)); # 203 "/usr/include/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 228 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 238 "/usr/include/stdio.h" 3 4 extern int fcloseall (void); extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); # 269 "/usr/include/stdio.h" 3 4 extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)); extern FILE *fopencookie (void *__restrict __magic_cookie, __const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)); extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __attribute__ ((__nothrow__)); extern FILE *open_memstream (char **__restrict __bufloc, size_t *__restrict __sizeloc) __attribute__ ((__nothrow__)); extern FILE *open_wmemstream (wchar_t **__restrict __bufloc, size_t *__restrict __sizeloc) __attribute__ ((__nothrow__)); extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__)); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__ ((__nothrow__)); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__ ((__nothrow__)); extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__)); 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, ...) __attribute__ ((__nothrow__)); 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) __attribute__ ((__nothrow__)); extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); extern int vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) ; extern int scanf (__const char *__restrict __format, ...) ; extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) ; extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) ; extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 466 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 477 "/usr/include/stdio.h" 3 4 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); # 510 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) ; extern char *gets (char *__s) ; # 556 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) ; # 572 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) ; extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); extern int 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) ; # 633 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream); # 644 "/usr/include/stdio.h" 3 4 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); # 680 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream) ; # 699 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, __const fpos_t *__pos); # 722 "/usr/include/stdio.h" 3 4 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream) ; extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__)); extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ; extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ; extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; 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[]; extern int _sys_nerr; extern __const char *__const _sys_errlist[]; # 761 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ; extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; # 780 "/usr/include/stdio.h" 3 4 extern FILE *popen (__const char *__command, __const char *__modes) ; extern int pclose (FILE *__stream); extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __format, __gnuc_va_list __args) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__)); extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ; extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__)); # 850 "/usr/include/stdio.h" 3 4 # 42 "../../GCC/gcc/system.h" 2 # 179 "../../GCC/gcc/system.h" # 1 "../../GCC/gcc/../include/safe-ctype.h" 1 # 61 "../../GCC/gcc/../include/safe-ctype.h" enum { _sch_isblank = 0x0001, _sch_iscntrl = 0x0002, _sch_isdigit = 0x0004, _sch_islower = 0x0008, _sch_isprint = 0x0010, _sch_ispunct = 0x0020, _sch_isspace = 0x0040, _sch_isupper = 0x0080, _sch_isxdigit = 0x0100, _sch_isidst = 0x0200, _sch_isvsp = 0x0400, _sch_isnvsp = 0x0800, _sch_isalpha = _sch_isupper|_sch_islower, _sch_isalnum = _sch_isalpha|_sch_isdigit, _sch_isidnum = _sch_isidst|_sch_isdigit, _sch_isgraph = _sch_isalnum|_sch_ispunct, _sch_iscppsp = _sch_isvsp|_sch_isnvsp, _sch_isbasic = _sch_isprint|_sch_iscppsp }; extern const unsigned short _sch_istable[256]; # 114 "../../GCC/gcc/../include/safe-ctype.h" extern const unsigned char _sch_toupper[256]; extern const unsigned char _sch_tolower[256]; # 180 "../../GCC/gcc/system.h" 2 # 1 "/usr/include/sys/types.h" 1 3 4 # 29 "/usr/include/sys/types.h" 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; typedef __ino64_t ino64_t; 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; typedef __off64_t off64_t; 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; # 133 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 59 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 75 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 93 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 105 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 134 "/usr/include/sys/types.h" 2 3 4 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 148 "/usr/include/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 195 "/usr/include/sys/types.h" 3 4 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 217 "/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 # 218 "/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 # 121 "/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 # 69 "/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 # 55 "/usr/include/sys/select.h" 3 4 typedef long int __fd_mask; # 67 "/usr/include/sys/select.h" 3 4 typedef struct { __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 99 "/usr/include/sys/select.h" 3 4 # 109 "/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); # 121 "/usr/include/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 221 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/sysmacros.h" 1 3 4 # 29 "/usr/include/sys/sysmacros.h" 3 4 __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline unsigned long long int __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); } # 224 "/usr/include/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 262 "/usr/include/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 36 "/usr/include/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; typedef union { char __size[36]; long int __align; } pthread_attr_t; typedef struct __pthread_internal_slist { struct __pthread_internal_slist *__next; } __pthread_slist_t; typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; int __kind; unsigned int __nusers; __extension__ union { int __spins; __pthread_slist_t __list; }; } __data; char __size[24]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; long int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; long int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; unsigned int __flags; int __writer; } __data; char __size[32]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[20]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 271 "/usr/include/sys/types.h" 2 3 4 # 182 "../../GCC/gcc/system.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 # 43 "/usr/include/bits/errno.h" 3 4 extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); # 37 "/usr/include/errno.h" 2 3 4 # 55 "/usr/include/errno.h" 3 4 extern char *program_invocation_name, *program_invocation_short_name; # 69 "/usr/include/errno.h" 3 4 typedef int error_t; # 184 "../../GCC/gcc/system.h" 2 # 194 "../../GCC/gcc/system.h" # 1 "/usr/include/string.h" 1 3 4 # 28 "/usr/include/string.h" 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/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) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, __const void *__src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memchr (__const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern void *rawmemchr (__const void *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern void *memrchr (__const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 1 "/usr/include/xlocale.h" 1 3 4 # 28 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; # 119 "/usr/include/string.h" 2 3 4 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (__const char *__string, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 165 "/usr/include/string.h" 3 4 extern char *strchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strrchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strchrnul (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strcspn (__const char *__s, __const char *__reject) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (__const char *__s, __const char *__accept) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strpbrk (__const char *__s, __const char *__accept) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strstr (__const char *__haystack, __const char *__needle) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strtok (char *__restrict __s, __const char *__restrict __delim) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strcasestr (__const char *__haystack, __const char *__needle) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strlen (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (__const char *__string, size_t __maxlen) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); # 281 "/usr/include/string.h" 3 4 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void bcopy (__const void *__src, void *__dest, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *index (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *rindex (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern int strcasecmp (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int strverscmp (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) __attribute__ ((__nothrow__)); extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 426 "/usr/include/string.h" 3 4 # 195 "../../GCC/gcc/system.h" 2 # 1 "/usr/include/strings.h" 1 3 4 # 196 "../../GCC/gcc/system.h" 2 # 207 "../../GCC/gcc/system.h" # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 34 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitflags.h" 1 3 4 # 43 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitstatus.h" 1 3 4 # 67 "/usr/include/bits/waitstatus.h" 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; # 44 "/usr/include/stdlib.h" 2 3 4 # 68 "/usr/include/stdlib.h" 3 4 typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); # 96 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 140 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ; extern double atof (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern int atoi (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern long int atol (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int atoll (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 240 "/usr/include/stdlib.h" 3 4 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 429 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ; extern long int a64l (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; # 445 "/usr/include/stdlib.h" 3 4 extern long int random (void) __attribute__ ((__nothrow__)); extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__)); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) __attribute__ ((__nothrow__)); extern void srand (unsigned int __seed) __attribute__ ((__nothrow__)); extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__)); extern double drand48 (void) __attribute__ ((__nothrow__)); extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) __attribute__ ((__nothrow__)); extern long int nrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) __attribute__ ((__nothrow__)); extern long int jrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) __attribute__ ((__nothrow__)); extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); # 1 "/usr/include/alloca.h" 1 3 4 # 25 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); # 613 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern char *__secure_getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int setenv (__const char *__name, __const char *__value, int __replace) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)); extern int clearenv (void) __attribute__ ((__nothrow__)); # 698 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 709 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; # 719 "/usr/include/stdlib.h" 3 4 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; # 729 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int system (__const char *__command) ; extern char *canonicalize_file_name (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 757 "/usr/include/stdlib.h" 3 4 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__)) ; typedef int (*__compar_fn_t) (__const void *, __const void *); typedef __compar_fn_t comparison_fn_t; extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) ; extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; __extension__ extern long long int llabs (long long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; # 822 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ; extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ; extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ; extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) __attribute__ ((__nothrow__)); extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 910 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int posix_openpt (int __oflag) ; extern int grantpt (int __fd) __attribute__ ((__nothrow__)); extern int unlockpt (int __fd) __attribute__ ((__nothrow__)); extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) ; extern int ptsname_r (int __fd, char *__buf, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 978 "/usr/include/stdlib.h" 3 4 # 208 "../../GCC/gcc/system.h" 2 # 232 "../../GCC/gcc/system.h" # 1 "/usr/include/unistd.h" 1 3 4 # 28 "/usr/include/unistd.h" 3 4 # 171 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/posix_opt.h" 1 3 4 # 172 "/usr/include/unistd.h" 2 3 4 # 1 "/usr/include/bits/environments.h" 1 3 4 # 176 "/usr/include/unistd.h" 2 3 4 # 195 "/usr/include/unistd.h" 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 196 "/usr/include/unistd.h" 2 3 4 # 236 "/usr/include/unistd.h" 3 4 typedef __intptr_t intptr_t; typedef __socklen_t socklen_t; # 256 "/usr/include/unistd.h" 3 4 extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int euidaccess (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int eaccess (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int faccessat (int __fd, __const char *__file, int __type, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; # 299 "/usr/include/unistd.h" 3 4 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__)); # 310 "/usr/include/unistd.h" 3 4 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) __attribute__ ((__nothrow__)); extern int close (int __fd); extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; extern ssize_t write (int __fd, __const void *__buf, size_t __n) ; # 341 "/usr/include/unistd.h" 3 4 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) ; extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, __off_t __offset) ; # 369 "/usr/include/unistd.h" 3 4 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) ; extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, __off64_t __offset) ; extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ; # 391 "/usr/include/unistd.h" 3 4 extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__)); # 403 "/usr/include/unistd.h" 3 4 extern unsigned int sleep (unsigned int __seconds); extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) __attribute__ ((__nothrow__)); extern int usleep (__useconds_t __useconds); # 427 "/usr/include/unistd.h" 3 4 extern int pause (void); extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ; extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int fchownat (int __fd, __const char *__file, __uid_t __owner, __gid_t __group, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ; # 469 "/usr/include/unistd.h" 3 4 extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ; extern char *get_current_dir_name (void) __attribute__ ((__nothrow__)); extern char *getwd (char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ; extern int dup (int __fd) __attribute__ ((__nothrow__)) ; extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__)); extern char **__environ; extern char **environ; extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) __attribute__ ((__nothrow__)); extern int execv (__const char *__path, char *__const __argv[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int execle (__const char *__path, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int execl (__const char *__path, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int execvp (__const char *__file, char *__const __argv[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int execlp (__const char *__file, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int nice (int __inc) __attribute__ ((__nothrow__)) ; extern void _exit (int __status) __attribute__ ((__noreturn__)); # 1 "/usr/include/bits/confname.h" 1 3 4 # 26 "/usr/include/bits/confname.h" 3 4 enum { _PC_LINK_MAX, _PC_MAX_CANON, _PC_MAX_INPUT, _PC_NAME_MAX, _PC_PATH_MAX, _PC_PIPE_BUF, _PC_CHOWN_RESTRICTED, _PC_NO_TRUNC, _PC_VDISABLE, _PC_SYNC_IO, _PC_ASYNC_IO, _PC_PRIO_IO, _PC_SOCK_MAXBUF, _PC_FILESIZEBITS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, _PC_SYMLINK_MAX, _PC_2_SYMLINKS }; enum { _SC_ARG_MAX, _SC_CHILD_MAX, _SC_CLK_TCK, _SC_NGROUPS_MAX, _SC_OPEN_MAX, _SC_STREAM_MAX, _SC_TZNAME_MAX, _SC_JOB_CONTROL, _SC_SAVED_IDS, _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_AIO_LISTIO_MAX, _SC_AIO_MAX, _SC_AIO_PRIO_DELTA_MAX, _SC_DELAYTIMER_MAX, _SC_MQ_OPEN_MAX, _SC_MQ_PRIO_MAX, _SC_VERSION, _SC_PAGESIZE, _SC_RTSIG_MAX, _SC_SEM_NSEMS_MAX, _SC_SEM_VALUE_MAX, _SC_SIGQUEUE_MAX, _SC_TIMER_MAX, _SC_BC_BASE_MAX, _SC_BC_DIM_MAX, _SC_BC_SCALE_MAX, _SC_BC_STRING_MAX, _SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_EXPR_NEST_MAX, _SC_LINE_MAX, _SC_RE_DUP_MAX, _SC_CHARCLASS_NAME_MAX, _SC_2_VERSION, _SC_2_C_BIND, _SC_2_C_DEV, _SC_2_FORT_DEV, _SC_2_FORT_RUN, _SC_2_SW_DEV, _SC_2_LOCALEDEF, _SC_PII, _SC_PII_XTI, _SC_PII_SOCKET, _SC_PII_INTERNET, _SC_PII_OSI, _SC_POLL, _SC_SELECT, _SC_UIO_MAXIOV, _SC_IOV_MAX = _SC_UIO_MAXIOV, _SC_PII_INTERNET_STREAM, _SC_PII_INTERNET_DGRAM, _SC_PII_OSI_COTS, _SC_PII_OSI_CLTS, _SC_PII_OSI_M, _SC_T_IOV_MAX, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_GETGR_R_SIZE_MAX, _SC_GETPW_R_SIZE_MAX, _SC_LOGIN_NAME_MAX, _SC_TTY_NAME_MAX, _SC_THREAD_DESTRUCTOR_ITERATIONS, _SC_THREAD_KEYS_MAX, _SC_THREAD_STACK_MIN, _SC_THREAD_THREADS_MAX, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED, _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES, _SC_AVPHYS_PAGES, _SC_ATEXIT_MAX, _SC_PASS_MAX, _SC_XOPEN_VERSION, _SC_XOPEN_XCU_VERSION, _SC_XOPEN_UNIX, _SC_XOPEN_CRYPT, _SC_XOPEN_ENH_I18N, _SC_XOPEN_SHM, _SC_2_CHAR_TERM, _SC_2_C_VERSION, _SC_2_UPE, _SC_XOPEN_XPG2, _SC_XOPEN_XPG3, _SC_XOPEN_XPG4, _SC_CHAR_BIT, _SC_CHAR_MAX, _SC_CHAR_MIN, _SC_INT_MAX, _SC_INT_MIN, _SC_LONG_BIT, _SC_WORD_BIT, _SC_MB_LEN_MAX, _SC_NZERO, _SC_SSIZE_MAX, _SC_SCHAR_MAX, _SC_SCHAR_MIN, _SC_SHRT_MAX, _SC_SHRT_MIN, _SC_UCHAR_MAX, _SC_UINT_MAX, _SC_ULONG_MAX, _SC_USHRT_MAX, _SC_NL_ARGMAX, _SC_NL_LANGMAX, _SC_NL_MSGMAX, _SC_NL_NMAX, _SC_NL_SETMAX, _SC_NL_TEXTMAX, _SC_XBS5_ILP32_OFF32, _SC_XBS5_ILP32_OFFBIG, _SC_XBS5_LP64_OFF64, _SC_XBS5_LPBIG_OFFBIG, _SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME, _SC_XOPEN_REALTIME_THREADS, _SC_ADVISORY_INFO, _SC_BARRIERS, _SC_BASE, _SC_C_LANG_SUPPORT, _SC_C_LANG_SUPPORT_R, _SC_CLOCK_SELECTION, _SC_CPUTIME, _SC_THREAD_CPUTIME, _SC_DEVICE_IO, _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, _SC_PIPE, _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, _SC_MONOTONIC_CLOCK, _SC_MULTI_PROCESS, _SC_SINGLE_PROCESS, _SC_NETWORKING, _SC_READER_WRITER_LOCKS, _SC_SPIN_LOCKS, _SC_REGEXP, _SC_REGEX_VERSION, _SC_SHELL, _SC_SIGNALS, _SC_SPAWN, _SC_SPORADIC_SERVER, _SC_THREAD_SPORADIC_SERVER, _SC_SYSTEM_DATABASE, _SC_SYSTEM_DATABASE_R, _SC_TIMEOUTS, _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, _SC_SYMLOOP_MAX, _SC_STREAMS, _SC_2_PBS_CHECKPOINT, _SC_V6_ILP32_OFF32, _SC_V6_ILP32_OFFBIG, _SC_V6_LP64_OFF64, _SC_V6_LPBIG_OFFBIG, _SC_HOST_NAME_MAX, _SC_TRACE, _SC_TRACE_EVENT_FILTER, _SC_TRACE_INHERIT, _SC_TRACE_LOG, _SC_LEVEL1_ICACHE_SIZE, _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC, _SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE, _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC, _SC_LEVEL3_CACHE_LINESIZE, _SC_LEVEL4_CACHE_SIZE, _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE, _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, _SC_RAW_SOCKETS }; enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _CS_LFS_CFLAGS = 1000, _CS_LFS_LDFLAGS, _CS_LFS_LIBS, _CS_LFS_LINTFLAGS, _CS_LFS64_CFLAGS, _CS_LFS64_LDFLAGS, _CS_LFS64_LIBS, _CS_LFS64_LINTFLAGS, _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, _CS_XBS5_ILP32_OFF32_LDFLAGS, _CS_XBS5_ILP32_OFF32_LIBS, _CS_XBS5_ILP32_OFF32_LINTFLAGS, _CS_XBS5_ILP32_OFFBIG_CFLAGS, _CS_XBS5_ILP32_OFFBIG_LDFLAGS, _CS_XBS5_ILP32_OFFBIG_LIBS, _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, _CS_XBS5_LP64_OFF64_CFLAGS, _CS_XBS5_LP64_OFF64_LDFLAGS, _CS_XBS5_LP64_OFF64_LIBS, _CS_XBS5_LP64_OFF64_LINTFLAGS, _CS_XBS5_LPBIG_OFFBIG_CFLAGS, _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, _CS_XBS5_LPBIG_OFFBIG_LIBS, _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS }; # 553 "/usr/include/unistd.h" 2 3 4 extern long int pathconf (__const char *__path, int __name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__)); extern long int sysconf (int __name) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__)); extern __pid_t getpid (void) __attribute__ ((__nothrow__)); extern __pid_t getppid (void) __attribute__ ((__nothrow__)); extern __pid_t getpgrp (void) __attribute__ ((__nothrow__)); # 589 "/usr/include/unistd.h" 3 4 extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__)); extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__)); extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__)); # 615 "/usr/include/unistd.h" 3 4 extern int setpgrp (void) __attribute__ ((__nothrow__)); # 632 "/usr/include/unistd.h" 3 4 extern __pid_t setsid (void) __attribute__ ((__nothrow__)); extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__)); extern __uid_t getuid (void) __attribute__ ((__nothrow__)); extern __uid_t geteuid (void) __attribute__ ((__nothrow__)); extern __gid_t getgid (void) __attribute__ ((__nothrow__)); extern __gid_t getegid (void) __attribute__ ((__nothrow__)); extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) ; extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__)); extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__)); extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__)); extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__)); extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__)); extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__)); extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__)); extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) __attribute__ ((__nothrow__)); extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) __attribute__ ((__nothrow__)); extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) __attribute__ ((__nothrow__)); extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) __attribute__ ((__nothrow__)); extern __pid_t fork (void) __attribute__ ((__nothrow__)); extern __pid_t vfork (void) __attribute__ ((__nothrow__)); extern char *ttyname (int __fd) __attribute__ ((__nothrow__)); extern int ttyname_r (int __fd, char *__buf, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; extern int isatty (int __fd) __attribute__ ((__nothrow__)); extern int ttyslot (void) __attribute__ ((__nothrow__)); extern int link (__const char *__from, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; extern int linkat (int __fromfd, __const char *__from, int __tofd, __const char *__to, int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) ; extern int symlink (__const char *__from, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; extern ssize_t readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; extern int symlinkat (__const char *__from, int __tofd, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern ssize_t readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) ; extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int unlinkat (int __fd, __const char *__name, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__)); extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__)); extern char *getlogin (void); extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 835 "/usr/include/unistd.h" 3 4 # 1 "../../GCC/gcc/../include/getopt.h" 1 3 4 # 36 "../../GCC/gcc/../include/getopt.h" 3 4 extern char *optarg; # 50 "../../GCC/gcc/../include/getopt.h" 3 4 extern int optind; extern int opterr; extern int optopt; # 82 "../../GCC/gcc/../include/getopt.h" 3 4 struct option { const char *name; int has_arg; int *flag; int val; }; # 113 "../../GCC/gcc/../include/getopt.h" 3 4 extern int getopt (int argc, char *const *argv, const char *shortopts); extern int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int _getopt_internal (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind, int long_only); # 836 "/usr/include/unistd.h" 2 3 4 extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sethostname (__const char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ; extern int getdomainname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int setdomainname (__const char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int vhangup (void) __attribute__ ((__nothrow__)); extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int acct (__const char *__name) __attribute__ ((__nothrow__)); extern char *getusershell (void) __attribute__ ((__nothrow__)); extern void endusershell (void) __attribute__ ((__nothrow__)); extern void setusershell (void) __attribute__ ((__nothrow__)); extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) ; extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); # 921 "/usr/include/unistd.h" 3 4 extern int fsync (int __fd); extern long int gethostid (void); extern void sync (void) __attribute__ ((__nothrow__)); extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern int getdtablesize (void) __attribute__ ((__nothrow__)); extern int truncate (__const char *__file, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 958 "/usr/include/unistd.h" 3 4 extern int truncate64 (__const char *__file, __off64_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 968 "/usr/include/unistd.h" 3 4 extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ; # 978 "/usr/include/unistd.h" 3 4 extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)) ; # 988 "/usr/include/unistd.h" 3 4 extern int brk (void *__addr) __attribute__ ((__nothrow__)) ; extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__)); # 1009 "/usr/include/unistd.h" 3 4 extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__)); # 1032 "/usr/include/unistd.h" 3 4 extern int lockf (int __fd, int __cmd, __off_t __len) ; # 1042 "/usr/include/unistd.h" 3 4 extern int lockf64 (int __fd, int __cmd, __off64_t __len) ; # 1063 "/usr/include/unistd.h" 3 4 extern int fdatasync (int __fildes) __attribute__ ((__nothrow__)); extern char *crypt (__const char *__key, __const char *__salt) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void swab (__const void *__restrict __from, void *__restrict __to, ssize_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); # 1101 "/usr/include/unistd.h" 3 4 # 233 "../../GCC/gcc/system.h" 2 # 1 "/usr/include/sys/param.h" 1 3 4 # 22 "/usr/include/sys/param.h" 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h" 1 3 4 # 11 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h" 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h" 1 3 4 # 122 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 145 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4 # 153 "/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 # 154 "/usr/include/bits/posix1_lim.h" 2 3 4 # 146 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4 # 150 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4 # 34 "/usr/include/bits/xopen_lim.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 35 "/usr/include/bits/xopen_lim.h" 2 3 4 # 154 "/usr/include/limits.h" 2 3 4 # 123 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h" 2 3 4 # 8 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/syslimits.h" 2 3 4 # 12 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h" 2 3 4 # 23 "/usr/include/sys/param.h" 2 3 4 # 1 "/usr/include/linux/param.h" 1 3 4 # 1 "/usr/include/asm/param.h" 1 3 4 # 5 "/usr/include/linux/param.h" 2 3 4 # 25 "/usr/include/sys/param.h" 2 3 4 # 237 "../../GCC/gcc/system.h" 2 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h" 1 3 4 # 243 "../../GCC/gcc/system.h" 2 # 1 "../../GCC/gcc/hwint.h" 1 # 247 "../../GCC/gcc/system.h" 2 # 275 "../../GCC/gcc/system.h" # 1 "/usr/include/sys/time.h" 1 3 4 # 27 "/usr/include/sys/time.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 28 "/usr/include/sys/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 30 "/usr/include/sys/time.h" 2 3 4 # 39 "/usr/include/sys/time.h" 3 4 # 57 "/usr/include/sys/time.h" 3 4 struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct timezone *__restrict __timezone_ptr_t; # 73 "/usr/include/sys/time.h" 3 4 extern int gettimeofday (struct timeval *__restrict __tv, __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int settimeofday (__const struct timeval *__tv, __const struct timezone *__tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int adjtime (__const struct timeval *__delta, struct timeval *__olddelta) __attribute__ ((__nothrow__)); enum __itimer_which { ITIMER_REAL = 0, ITIMER_VIRTUAL = 1, ITIMER_PROF = 2 }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; typedef enum __itimer_which __itimer_which_t; extern int getitimer (__itimer_which_t __which, struct itimerval *__value) __attribute__ ((__nothrow__)); extern int setitimer (__itimer_which_t __which, __const struct itimerval *__restrict __new, struct itimerval *__restrict __old) __attribute__ ((__nothrow__)); extern int utimes (__const char *__file, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); extern int futimesat (int __fd, __const char *__file, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); # 191 "/usr/include/sys/time.h" 3 4 # 276 "../../GCC/gcc/system.h" 2 # 1 "/usr/include/time.h" 1 3 4 # 31 "/usr/include/time.h" 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 40 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 44 "/usr/include/time.h" 2 3 4 # 132 "/usr/include/time.h" 3 4 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; __const char *tm_zone; }; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct sigevent; # 181 "/usr/include/time.h" 3 4 extern clock_t clock (void) __attribute__ ((__nothrow__)); extern time_t time (time_t *__timer) __attribute__ ((__nothrow__)); extern double difftime (time_t __time1, time_t __time0) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__)); extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) __attribute__ ((__nothrow__)); extern char *strptime (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp) __attribute__ ((__nothrow__)); extern size_t strftime_l (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) __attribute__ ((__nothrow__)); extern char *strptime_l (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp, __locale_t __loc) __attribute__ ((__nothrow__)); extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__)); extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__)); extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__ ((__nothrow__)); extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__ ((__nothrow__)); extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__)); extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__)); extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) __attribute__ ((__nothrow__)); extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) __attribute__ ((__nothrow__)); extern char *__tzname[2]; extern int __daylight; extern long int __timezone; extern char *tzname[2]; extern void tzset (void) __attribute__ ((__nothrow__)); extern int daylight; extern long int timezone; extern int stime (__const time_t *__when) __attribute__ ((__nothrow__)); # 312 "/usr/include/time.h" 3 4 extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__)); extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__)); extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); # 327 "/usr/include/time.h" 3 4 extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining); extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__)); extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__)); extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) __attribute__ ((__nothrow__)); extern int clock_nanosleep (clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem); extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__)); extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __attribute__ ((__nothrow__)); extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__)); extern int timer_settime (timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__)); extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) __attribute__ ((__nothrow__)); extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__)); # 389 "/usr/include/time.h" 3 4 extern int getdate_err; # 398 "/usr/include/time.h" 3 4 extern struct tm *getdate (__const char *__string); # 412 "/usr/include/time.h" 3 4 extern int getdate_r (__const char *__restrict __string, struct tm *__restrict __resbufp); # 277 "../../GCC/gcc/system.h" 2 # 288 "../../GCC/gcc/system.h" # 1 "/usr/include/fcntl.h" 1 3 4 # 30 "/usr/include/fcntl.h" 3 4 # 1 "/usr/include/bits/fcntl.h" 1 3 4 # 138 "/usr/include/bits/fcntl.h" 3 4 struct flock { short int l_type; short int l_whence; __off_t l_start; __off_t l_len; __pid_t l_pid; }; struct flock64 { short int l_type; short int l_whence; __off64_t l_start; __off64_t l_len; __pid_t l_pid; }; # 183 "/usr/include/bits/fcntl.h" 3 4 extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) __attribute__ ((__nothrow__)); # 35 "/usr/include/fcntl.h" 2 3 4 # 1 "/usr/include/sys/stat.h" 1 3 4 # 103 "/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; # 70 "/usr/include/bits/stat.h" 3 4 struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 85 "/usr/include/bits/stat.h" 3 4 unsigned long int __unused4; unsigned long int __unused5; }; struct stat64 { __dev_t st_dev; unsigned 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 int __pad2; __off64_t st_size; __blksize_t st_blksize; __blkcnt64_t st_blocks; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 127 "/usr/include/bits/stat.h" 3 4 __ino64_t st_ino; }; # 106 "/usr/include/sys/stat.h" 2 3 4 # 207 "/usr/include/sys/stat.h" 3 4 extern int stat (__const char *__restrict __file, struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 226 "/usr/include/sys/stat.h" 3 4 extern int stat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int fstatat (int __fd, __const char *__restrict __file, struct stat *__restrict __buf, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); # 250 "/usr/include/sys/stat.h" 3 4 extern int fstatat64 (int __fd, __const char *__restrict __file, struct stat64 *__restrict __buf, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); # 272 "/usr/include/sys/stat.h" 3 4 extern int lstat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int chmod (__const char *__file, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int lchmod (__const char *__file, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__)); extern int fchmodat (int __fd, __const char *__file, __mode_t mode, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__)); extern __mode_t getumask (void) __attribute__ ((__nothrow__)); extern int mkdir (__const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int mkdirat (int __fd, __const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int mkfifo (__const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 380 "/usr/include/sys/stat.h" 3 4 extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); extern int __xstat (int __ver, __const char *__filename, struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int __fxstatat (int __ver, int __fildes, __const char *__filename, struct stat *__stat_buf, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); # 413 "/usr/include/sys/stat.h" 3 4 extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); extern int __xstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int __lxstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename, struct stat64 *__stat_buf, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern int __xmknodat (int __ver, int __fd, __const char *__path, __mode_t __mode, __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 5))); extern __inline__ int __attribute__ ((__nothrow__)) stat (__const char *__path, struct stat *__statbuf) { return __xstat (3, __path, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) lstat (__const char *__path, struct stat *__statbuf) { return __lxstat (3, __path, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) fstat (int __fd, struct stat *__statbuf) { return __fxstat (3, __fd, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag) { return __fxstatat (3, __fd, __filename, __statbuf, __flag); } extern __inline__ int __attribute__ ((__nothrow__)) mknod (__const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknod (1, __path, __mode, &__dev); } extern __inline__ int __attribute__ ((__nothrow__)) mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknodat (1, __fd, __path, __mode, &__dev); } extern __inline__ int __attribute__ ((__nothrow__)) stat64 (__const char *__path, struct stat64 *__statbuf) { return __xstat64 (3, __path, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) lstat64 (__const char *__path, struct stat64 *__statbuf) { return __lxstat64 (3, __path, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) fstat64 (int __fd, struct stat64 *__statbuf) { return __fxstat64 (3, __fd, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag) { return __fxstatat64 (3, __fd, __filename, __statbuf, __flag); } # 39 "/usr/include/fcntl.h" 2 3 4 # 76 "/usr/include/fcntl.h" 3 4 extern int fcntl (int __fd, int __cmd, ...); # 85 "/usr/include/fcntl.h" 3 4 extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); # 95 "/usr/include/fcntl.h" 3 4 extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); # 109 "/usr/include/fcntl.h" 3 4 extern int openat (int __fd, __const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); # 120 "/usr/include/fcntl.h" 3 4 extern int openat64 (int __fd, __const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); # 130 "/usr/include/fcntl.h" 3 4 extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); # 140 "/usr/include/fcntl.h" 3 4 extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); # 176 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, int __advise) __attribute__ ((__nothrow__)); # 188 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, int __advise) __attribute__ ((__nothrow__)); # 198 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); # 209 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); # 289 "../../GCC/gcc/system.h" 2 # 326 "../../GCC/gcc/system.h" # 1 "/usr/include/sys/wait.h" 1 3 4 # 29 "/usr/include/sys/wait.h" 3 4 # 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); # 34 "/usr/include/signal.h" 2 3 4 typedef __sig_atomic_t sig_atomic_t; # 58 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/signum.h" 1 3 4 # 59 "/usr/include/signal.h" 2 3 4 # 75 "/usr/include/signal.h" 3 4 typedef void (*__sighandler_t) (int); extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); extern __sighandler_t signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); # 104 "/usr/include/signal.h" 3 4 extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__)); extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__)); extern int raise (int __sig) __attribute__ ((__nothrow__)); extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); extern int gsignal (int __sig) __attribute__ ((__nothrow__)); extern void psignal (int __sig, __const char *__s); # 153 "/usr/include/signal.h" 3 4 extern int __sigpause (int __sig_or_mask, int __is_sig); # 162 "/usr/include/signal.h" 3 4 extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); # 181 "/usr/include/signal.h" 3 4 extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); # 196 "/usr/include/signal.h" 3 4 typedef __sighandler_t sighandler_t; typedef __sighandler_t sig_t; # 212 "/usr/include/signal.h" 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 { int si_tid; int si_overrun; sigval_t si_sigval; } _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; # 129 "/usr/include/bits/siginfo.h" 3 4 enum { SI_ASYNCNL = -60, SI_TKILL = -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 }; # 273 "/usr/include/bits/siginfo.h" 3 4 typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64 / sizeof (int)) - 3)]; __pid_t _tid; struct { void (*_function) (sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; enum { SIGEV_SIGNAL = 0, SIGEV_NONE, SIGEV_THREAD, SIGEV_THREAD_ID = 4 }; # 213 "/usr/include/signal.h" 2 3 4 extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigismember (__const sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigisemptyset (__const sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigandset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int sigorset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); # 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); }; # 247 "/usr/include/signal.h" 2 3 4 extern int sigprocmask (int __how, __const sigset_t *__restrict __set, sigset_t *__restrict __oset) __attribute__ ((__nothrow__)); extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1))); extern int sigaction (int __sig, __const struct sigaction *__restrict __act, struct sigaction *__restrict __oact) __attribute__ ((__nothrow__)); extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) __attribute__ ((__nonnull__ (1, 2))); extern int sigwaitinfo (__const sigset_t *__restrict __set, siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); extern int sigtimedwait (__const sigset_t *__restrict __set, siginfo_t *__restrict __info, __const struct timespec *__restrict __timeout) __attribute__ ((__nonnull__ (1))); extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) __attribute__ ((__nothrow__)); # 304 "/usr/include/signal.h" 3 4 extern __const char *__const _sys_siglist[65]; extern __const char *__const sys_siglist[65]; struct sigvec { __sighandler_t sv_handler; int sv_mask; int sv_flags; }; # 328 "/usr/include/signal.h" 3 4 extern int sigvec (int __sig, __const struct sigvec *__vec, struct sigvec *__ovec) __attribute__ ((__nothrow__)); # 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 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 # 334 "/usr/include/signal.h" 2 3 4 extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__)); # 346 "/usr/include/signal.h" 3 4 extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__)); # 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; # 349 "/usr/include/signal.h" 2 3 4 # 1 "/usr/include/sys/ucontext.h" 1 3 4 # 23 "/usr/include/sys/ucontext.h" 3 4 # 1 "/usr/include/signal.h" 1 3 4 # 24 "/usr/include/sys/ucontext.h" 2 3 4 # 1 "/usr/include/bits/sigcontext.h" 1 3 4 # 28 "/usr/include/sys/ucontext.h" 2 3 4 typedef int greg_t; typedef greg_t gregset_t[19]; enum { REG_GS = 0, REG_FS, REG_ES, REG_DS, REG_EDI, REG_ESI, REG_EBP, REG_ESP, REG_EBX, REG_EDX, REG_ECX, REG_EAX, REG_TRAPNO, REG_ERR, REG_EIP, REG_CS, REG_EFL, REG_UESP, REG_SS }; struct _libc_fpreg { unsigned short int significand[4]; unsigned short int exponent; }; struct _libc_fpstate { unsigned long int cw; unsigned long int sw; unsigned long int tag; unsigned long int ipoff; unsigned long int cssel; unsigned long int dataoff; unsigned long int datasel; struct _libc_fpreg _st[8]; unsigned long int status; }; typedef struct _libc_fpstate *fpregset_t; typedef struct { gregset_t gregs; fpregset_t fpregs; unsigned long int oldmask; unsigned long int cr2; } mcontext_t; typedef struct ucontext { unsigned long int uc_flags; struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; __sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; } ucontext_t; # 352 "/usr/include/signal.h" 2 3 4 extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); extern int sigaltstack (__const struct sigaltstack *__restrict __ss, struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__)); extern int sighold (int __sig) __attribute__ ((__nothrow__)); extern int sigrelse (int __sig) __attribute__ ((__nothrow__)); extern int sigignore (int __sig) __attribute__ ((__nothrow__)); extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__)); # 1 "/usr/include/bits/sigthread.h" 1 3 4 # 31 "/usr/include/bits/sigthread.h" 3 4 extern int pthread_sigmask (int __how, __const __sigset_t *__restrict __newmask, __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__)); extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__)); # 388 "/usr/include/signal.h" 2 3 4 extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__)); extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__)); # 32 "/usr/include/sys/wait.h" 2 3 4 # 1 "/usr/include/sys/resource.h" 1 3 4 # 25 "/usr/include/sys/resource.h" 3 4 # 1 "/usr/include/bits/resource.h" 1 3 4 # 33 "/usr/include/bits/resource.h" 3 4 enum __rlimit_resource { RLIMIT_CPU = 0, RLIMIT_FSIZE = 1, RLIMIT_DATA = 2, RLIMIT_STACK = 3, RLIMIT_CORE = 4, __RLIMIT_RSS = 5, RLIMIT_NOFILE = 7, __RLIMIT_OFILE = RLIMIT_NOFILE, RLIMIT_AS = 9, __RLIMIT_NPROC = 6, __RLIMIT_MEMLOCK = 8, __RLIMIT_LOCKS = 10, __RLIMIT_SIGPENDING = 11, __RLIMIT_MSGQUEUE = 12, __RLIMIT_NICE = 13, __RLIMIT_RTPRIO = 14, __RLIMIT_NLIMITS = 15, __RLIM_NLIMITS = __RLIMIT_NLIMITS }; # 127 "/usr/include/bits/resource.h" 3 4 typedef __rlim_t rlim_t; typedef __rlim64_t rlim64_t; struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; }; struct rlimit64 { rlim64_t rlim_cur; rlim64_t rlim_max; }; enum __rusage_who { RUSAGE_SELF = 0, RUSAGE_CHILDREN = -1 }; # 1 "/usr/include/bits/time.h" 1 3 4 # 167 "/usr/include/bits/resource.h" 2 3 4 struct rusage { struct timeval ru_utime; struct timeval ru_stime; long int ru_maxrss; long int ru_ixrss; long int ru_idrss; long int ru_isrss; long int ru_minflt; long int ru_majflt; long int ru_nswap; long int ru_inblock; long int ru_oublock; long int ru_msgsnd; long int ru_msgrcv; long int ru_nsignals; long int ru_nvcsw; long int ru_nivcsw; }; enum __priority_which { PRIO_PROCESS = 0, PRIO_PGRP = 1, PRIO_USER = 2 }; # 26 "/usr/include/sys/resource.h" 2 3 4 typedef enum __rlimit_resource __rlimit_resource_t; typedef enum __rusage_who __rusage_who_t; typedef enum __priority_which __priority_which_t; # 51 "/usr/include/sys/resource.h" 3 4 extern int getrlimit (__rlimit_resource_t __resource, struct rlimit *__rlimits) __attribute__ ((__nothrow__)); # 62 "/usr/include/sys/resource.h" 3 4 extern int getrlimit64 (__rlimit_resource_t __resource, struct rlimit64 *__rlimits) __attribute__ ((__nothrow__)); extern int setrlimit (__rlimit_resource_t __resource, __const struct rlimit *__rlimits) __attribute__ ((__nothrow__)); # 82 "/usr/include/sys/resource.h" 3 4 extern int setrlimit64 (__rlimit_resource_t __resource, __const struct rlimit64 *__rlimits) __attribute__ ((__nothrow__)); extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __attribute__ ((__nothrow__)); extern int getpriority (__priority_which_t __which, id_t __who) __attribute__ ((__nothrow__)); extern int setpriority (__priority_which_t __which, id_t __who, int __prio) __attribute__ ((__nothrow__)); # 33 "/usr/include/sys/wait.h" 2 3 4 # 102 "/usr/include/sys/wait.h" 3 4 typedef enum { P_ALL, P_PID, P_PGID } idtype_t; # 116 "/usr/include/sys/wait.h" 3 4 extern __pid_t wait (__WAIT_STATUS __stat_loc); # 139 "/usr/include/sys/wait.h" 3 4 extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options); # 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 # 144 "/usr/include/sys/wait.h" 2 3 4 # 155 "/usr/include/sys/wait.h" 3 4 extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop, int __options); struct rusage; extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options, struct rusage * __usage) __attribute__ ((__nothrow__)); struct rusage; extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options, struct rusage *__usage) __attribute__ ((__nothrow__)); # 327 "../../GCC/gcc/system.h" 2 # 377 "../../GCC/gcc/system.h" extern int getopt (int, char * const *, const char *); # 397 "../../GCC/gcc/system.h" # 1 "/usr/include/malloc.h" 1 3 4 # 24 "/usr/include/malloc.h" 3 4 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 25 "/usr/include/malloc.h" 2 3 4 # 46 "/usr/include/malloc.h" 3 4 extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) __attribute__ ((__nothrow__)); extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); extern void *memalign (size_t __alignment, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void * pvalloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void *(*__morecore) (ptrdiff_t __size); extern void *__default_morecore (ptrdiff_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); struct mallinfo { int arena; int ordblks; int smblks; int hblks; int hblkhd; int usmblks; int fsmblks; int uordblks; int fordblks; int keepcost; }; extern struct mallinfo mallinfo (void) __attribute__ ((__nothrow__)); # 128 "/usr/include/malloc.h" 3 4 extern int mallopt (int __param, int __val) __attribute__ ((__nothrow__)); extern int malloc_trim (size_t __pad) __attribute__ ((__nothrow__)); extern size_t malloc_usable_size (void *__ptr) __attribute__ ((__nothrow__)); extern void malloc_stats (void) __attribute__ ((__nothrow__)); extern void *malloc_get_state (void) __attribute__ ((__nothrow__)); extern int malloc_set_state (void *__ptr) __attribute__ ((__nothrow__)); extern void (*__malloc_initialize_hook) (void); extern void (*__free_hook) (void *__ptr, __const void *); extern void *(*__malloc_hook) (size_t __size, __const void *); extern void *(*__realloc_hook) (void *__ptr, size_t __size, __const void *); extern void *(*__memalign_hook) (size_t __alignment, size_t __size, __const void *); extern void (*__after_morecore_hook) (void); extern void __malloc_check_init (void) __attribute__ ((__nothrow__)); # 398 "../../GCC/gcc/system.h" 2 # 521 "../../GCC/gcc/system.h" # 1 "../../GCC/gcc/../include/filenames.h" 1 # 522 "../../GCC/gcc/system.h" 2 # 532 "../../GCC/gcc/system.h" # 1 "../../GCC/gcc/../include/libiberty.h" 1 # 42 "../../GCC/gcc/../include/libiberty.h" # 1 "../../GCC/gcc/../include/ansidecl.h" 1 # 43 "../../GCC/gcc/../include/libiberty.h" 2 # 1 "/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h" 1 3 4 # 46 "../../GCC/gcc/../include/libiberty.h" 2 # 55 "../../GCC/gcc/../include/libiberty.h" extern void unlock_stream (FILE *); extern void unlock_std_streams (void); extern FILE *fopen_unlocked (const char *, const char *); extern FILE *fdopen_unlocked (int, const char *); extern FILE *freopen_unlocked (const char *, const char *, FILE *); extern char **buildargv (const char *) __attribute__ ((__malloc__)); extern void freeargv (char **); extern char **dupargv (char **) __attribute__ ((__malloc__)); extern void expandargv (int *, char ***); # 112 "../../GCC/gcc/../include/libiberty.h" extern const char *lbasename (const char *); extern char *lrealpath (const char *); extern char *concat (const char *, ...) __attribute__ ((__malloc__)) __attribute__ ((__sentinel__)); # 131 "../../GCC/gcc/../include/libiberty.h" extern char *reconcat (char *, const char *, ...) __attribute__ ((__malloc__)) __attribute__ ((__sentinel__)); extern unsigned long concat_length (const char *, ...) __attribute__ ((__sentinel__)); extern char *concat_copy (char *, const char *, ...) __attribute__ ((__sentinel__)); extern char *concat_copy2 (const char *, ...) __attribute__ ((__sentinel__)); extern char *libiberty_concat_ptr; # 167 "../../GCC/gcc/../include/libiberty.h" extern int fdmatch (int fd1, int fd2); # 179 "../../GCC/gcc/../include/libiberty.h" extern char * getpwd (void); # 192 "../../GCC/gcc/../include/libiberty.h" extern long get_run_time (void); extern char *make_relative_prefix (const char *, const char *, const char *) __attribute__ ((__malloc__)); extern char *choose_temp_base (void) __attribute__ ((__malloc__)); extern char *make_temp_file (const char *) __attribute__ ((__malloc__)); extern int unlink_if_ordinary (const char *); extern const char *spaces (int count); extern int errno_max (void); extern const char *strerrno (int); extern int strtoerrno (const char *); extern char *xstrerror (int); extern int signo_max (void); # 249 "../../GCC/gcc/../include/libiberty.h" extern const char *strsigno (int); extern int strtosigno (const char *); extern int xatexit (void (*fn) (void)); extern void xexit (int status) __attribute__ ((__noreturn__)); extern void xmalloc_set_program_name (const char *); extern void xmalloc_failed (size_t) __attribute__ ((__noreturn__)); extern void *xmalloc (size_t) __attribute__ ((__malloc__)); extern void *xrealloc (void *, size_t); extern void *xcalloc (size_t, size_t) __attribute__ ((__malloc__)); extern char *xstrdup (const char *) __attribute__ ((__malloc__)); extern char *xstrndup (const char *, size_t) __attribute__ ((__malloc__)); extern void *xmemdup (const void *, size_t, size_t) __attribute__ ((__malloc__)); extern double physmem_total (void); extern double physmem_available (void); # 338 "../../GCC/gcc/../include/libiberty.h" extern const unsigned char _hex_value[256]; extern void hex_init (void); # 364 "../../GCC/gcc/../include/libiberty.h" extern struct pex_obj *pex_init (int flags, const char *pname, const char *tempbase); # 446 "../../GCC/gcc/../include/libiberty.h" extern const char *pex_run (struct pex_obj *obj, int flags, const char *executable, char * const *argv, const char *outname, const char *errname, int *err); # 461 "../../GCC/gcc/../include/libiberty.h" extern const char *pex_run_in_environment (struct pex_obj *obj, int flags, const char *executable, char * const *argv, char * const *env, const char *outname, const char *errname, int *err); extern FILE *pex_input_file (struct pex_obj *obj, int flags, const char *in_name); extern FILE *pex_input_pipe (struct pex_obj *obj, int binary); extern FILE *pex_read_output (struct pex_obj *, int binary); extern int pex_get_status (struct pex_obj *, int count, int *vector); struct pex_time { unsigned long user_seconds; unsigned long user_microseconds; unsigned long system_seconds; unsigned long system_microseconds; }; extern int pex_get_times (struct pex_obj *, int count, struct pex_time *vector); extern void pex_free (struct pex_obj *); # 527 "../../GCC/gcc/../include/libiberty.h" extern const char *pex_one (int flags, const char *executable, char * const *argv, const char *pname, const char *outname, const char *errname, int *status, int *err); # 546 "../../GCC/gcc/../include/libiberty.h" extern int pexecute (const char *, char * const *, const char *, const char *, char **, char **, int); extern int pwait (int, int *, int); # 590 "../../GCC/gcc/../include/libiberty.h" extern void *C_alloca (size_t) __attribute__ ((__malloc__)); # 533 "../../GCC/gcc/system.h" 2 # 570 "../../GCC/gcc/system.h" extern void fancy_abort (const char *, int, const char *) __attribute__ ((__noreturn__)); # 614 "../../GCC/gcc/system.h" # 1 "../../GCC/gcc/double-int.h" 1 # 49 "../../GCC/gcc/double-int.h" typedef struct { unsigned long low; long high; } double_int; union tree_node; union tree_node *double_int_to_tree (union tree_node *, double_int); double_int tree_to_double_int (union tree_node *tree); static __inline__ double_int shwi_to_double_int (long cst) { double_int r; r.low = (unsigned long) cst; r.high = cst < 0 ? -1 : 0; return r; } # 87 "../../GCC/gcc/double-int.h" static __inline__ double_int uhwi_to_double_int (unsigned long cst) { double_int r; r.low = cst; r.high = 0; return r; } double_int double_int_mul (double_int, double_int); double_int double_int_add (double_int, double_int); double_int double_int_neg (double_int); unsigned char double_int_fits_in_hwi_p (double_int, unsigned char); unsigned char double_int_fits_in_shwi_p (double_int); unsigned char double_int_fits_in_uhwi_p (double_int); long double_int_to_shwi (double_int); unsigned long double_int_to_uhwi (double_int); double_int double_int_div (double_int, double_int, unsigned char, unsigned); double_int double_int_sdiv (double_int, double_int, unsigned); double_int double_int_udiv (double_int, double_int, unsigned); double_int double_int_mod (double_int, double_int, unsigned char, unsigned); double_int double_int_smod (double_int, double_int, unsigned); double_int double_int_umod (double_int, double_int, unsigned); double_int double_int_divmod (double_int, double_int, unsigned char, unsigned, double_int *); double_int double_int_sdivmod (double_int, double_int, unsigned, double_int *); double_int double_int_udivmod (double_int, double_int, unsigned, double_int *); unsigned char double_int_negative_p (double_int); int double_int_cmp (double_int, double_int, unsigned char); int double_int_scmp (double_int, double_int); int double_int_ucmp (double_int, double_int); void dump_double_int (FILE *, double_int, unsigned char); double_int double_int_ext (double_int, unsigned, unsigned char); double_int double_int_sext (double_int, unsigned); double_int double_int_zext (double_int, unsigned); # 144 "../../GCC/gcc/double-int.h" static __inline__ unsigned char double_int_zero_p (double_int cst) { return cst.low == 0 && cst.high == 0; } static __inline__ unsigned char double_int_one_p (double_int cst) { return cst.low == 1 && cst.high == 0; } static __inline__ unsigned char double_int_minus_one_p (double_int cst) { return (cst.low == (~((unsigned long) 0)) && cst.high == -1); } static __inline__ unsigned char double_int_equal_p (double_int cst1, double_int cst2) { return cst1.low == cst2.low && cst1.high == cst2.high; } # 615 "../../GCC/gcc/system.h" 2 # 650 "../../GCC/gcc/system.h" # 691 "../../GCC/gcc/system.h" # 741 "../../GCC/gcc/system.h" # 757 "../../GCC/gcc/system.h" # 767 "../../GCC/gcc/system.h" # 41 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/coretypes.h" 1 # 39 "../../GCC/gcc/coretypes.h" struct bitmap_head_def; typedef struct bitmap_head_def *bitmap; struct rtx_def; typedef struct rtx_def *rtx; struct rtvec_def; typedef struct rtvec_def *rtvec; union tree_node; typedef union tree_node *tree; union section; typedef union section section; struct cpp_reader; enum tls_model { TLS_MODEL_NONE, TLS_MODEL_GLOBAL_DYNAMIC, TLS_MODEL_LOCAL_DYNAMIC, TLS_MODEL_INITIAL_EXEC, TLS_MODEL_LOCAL_EXEC }; # 42 "../../GCC/gcc/c-parser.c" 2 # 1 "./tm.h" 1 # 1 "./options.h" 1 extern int target_flags; extern int warn_abi; extern int warn_address; extern int warn_aggregate_return; extern int warn_assign_intercept; extern int warn_attributes; extern int warn_bad_function_cast; extern int warn_cxx_compat; extern int warn_cast_align; extern int warn_cast_qual; extern int warn_char_subscripts; extern int warn_conversion; extern int warn_ctor_dtor_privacy; extern int warn_declaration_after_statement; extern int warn_deprecated; extern int warn_deprecated_decl; extern int warn_disabled_optimization; extern int warn_div_by_zero; extern int warn_ecpp; extern int warnings_are_errors; extern int flag_fatal_errors; extern int warn_float_equal; extern int warn_format_extra_args; extern int warn_format_nonliteral; extern int warn_format_security; extern int warn_format_y2k; extern int warn_format_zero_length; extern int mesg_implicit_function_declaration; extern int warn_implicit_int; extern int warn_init_self; extern int warn_inline; extern int warn_int_to_pointer_cast; extern int warn_invalid_offsetof; extern int warn_long_long; extern int warn_missing_braces; extern int warn_missing_declarations; extern int warn_missing_field_initializers; extern int warn_missing_format_attribute; extern int warn_missing_noreturn; extern int warn_missing_prototypes; extern int warn_nested_externs; extern int warn_nontemplate_friend; extern int warn_nonvdtor; extern int warn_nonnull; extern int warn_old_style_cast; extern int warn_old_style_definition; extern int warn_overflow; extern int warn_overlength_strings; extern int warn_overloaded_virtual; extern int warn_override_init; extern int warn_packed; extern int warn_padded; extern int warn_parentheses; extern int warn_pmf2ptr; extern int warn_pointer_arith; extern int warn_pointer_sign; extern int warn_pointer_to_int_cast; extern int warn_pragmas; extern int warn_protocol; extern int warn_redundant_decls; extern int warn_reorder; extern int warn_return_type; extern int warn_selector; extern int warn_sequence_point; extern int warn_shadow; extern int warn_sign_compare; extern int warn_sign_promo; extern int warn_stack_protect; extern int warn_strict_prototypes; extern int warn_strict_selector_match; extern int warn_switch; extern int warn_switch_default; extern int warn_switch_enum; extern int warn_synth; extern int warn_system_headers; extern int warn_traditional; extern int warn_undeclared_selector; extern int warn_uninitialized; extern int warn_notreached; extern int warn_unsafe_loop_optimizations; extern int warn_unused_function; extern int warn_unused_label; extern int warn_unused_parameter; extern int warn_unused_value; extern int warn_unused_variable; extern int warn_register_var; extern int warn_write_strings; extern int flag_pic; extern int flag_pie; extern int flag_abi_version; extern int align_functions; extern int align_jumps; extern int align_labels; extern int align_loops; extern int flag_argument_noalias; extern int flag_argument_noalias; extern int flag_argument_noalias; extern int flag_argument_noalias; extern int flag_asynchronous_unwind_tables; extern int flag_bounds_check; extern int flag_branch_on_count_reg; extern int flag_branch_probabilities; extern int flag_branch_target_load_optimize; extern int flag_branch_target_load_optimize2; extern int flag_btr_bb_exclusive; extern int flag_caller_saves; extern int flag_no_common; extern int flag_cprop_registers; extern int flag_crossjumping; extern int flag_cse_follow_jumps; extern int flag_cse_skip_blocks; extern int flag_cx_limited_range; extern int flag_data_sections; extern int flag_defer_pop; extern int flag_delayed_branch; extern int flag_delete_null_pointer_checks; extern int flag_dump_noaddr; extern int flag_dump_unnumbered; extern int flag_early_inlining; extern int flag_eliminate_dwarf2_dups; extern int flag_debug_only_used_symbols; extern int flag_eliminate_unused_debug_types; extern int flag_emit_class_debug_always; extern int flag_exceptions; extern int flag_expensive_optimizations; extern int flag_finite_math_only; extern int flag_float_store; extern int flag_force_addr; extern int flag_force_mem; extern int flag_friend_injection; extern int flag_no_function_cse; extern int flag_function_sections; extern int flag_gcse; extern int flag_gcse_after_reload; extern int flag_gcse_las; extern int flag_gcse_lm; extern int flag_gcse_sm; extern int flag_gnu89_inline; extern int flag_guess_branch_prob; extern int flag_no_ident; extern int flag_if_conversion; extern int flag_if_conversion2; extern int flag_inhibit_size_directive; extern int flag_no_inline; extern int flag_inline_functions; extern int flag_inline_functions_called_once; extern int flag_instrument_function_entry_exit; extern int flag_ipa_cp; extern int flag_ipa_pta; extern int flag_ipa_pure_const; extern int flag_ipa_reference; extern int flag_ipa_type_escape; extern int flag_ivopts; extern int flag_jump_tables; extern int flag_keep_inline_functions; extern int flag_keep_static_consts; extern int flag_leading_underscore; extern int flag_errno_math; extern int mem_report; extern int flag_merge_constants; extern int flag_merge_constants; extern int flag_modulo_sched; extern int flag_move_loop_invariants; extern int flag_mudflap; extern int flag_mudflap_ignore_reads; extern int flag_mudflap; extern int flag_non_call_exceptions; extern int flag_objc_call_cxx_cdtors; extern int flag_objc_direct_dispatch; extern int flag_objc_exceptions; extern int flag_objc_gc; extern int flag_objc_sjlj_exceptions; extern int flag_omit_frame_pointer; extern int flag_openmp; extern int flag_regmove; extern int flag_optimize_sibling_calls; extern int flag_pack_struct; extern int flag_pcc_struct_return; extern int flag_peel_loops; extern int flag_no_peephole; extern int flag_peephole2; extern int flag_pic; extern int flag_pie; extern int flag_prefetch_loop_arrays; extern int profile_flag; extern int profile_arc_flag; extern int flag_profile_values; extern int flag_pcc_struct_return; extern int flag_regmove; extern int flag_rename_registers; extern int flag_reorder_blocks; extern int flag_reorder_blocks_and_partition; extern int flag_reorder_functions; extern int flag_rerun_cse_after_loop; extern int flag_resched_modulo_sched; extern int flag_rounding_math; extern int flag_rtl_seqabstr; extern int flag_schedule_interblock; extern int flag_schedule_speculative; extern int flag_schedule_speculative_load; extern int flag_schedule_speculative_load_dangerous; extern int flag_sched_stalled_insns; extern int flag_sched_stalled_insns_dep; extern int flag_sched2_use_superblocks; extern int flag_sched2_use_traces; extern int flag_schedule_insns; extern int flag_schedule_insns_after_reload; extern int flag_section_anchors; extern int flag_see; extern int flag_show_column; extern int flag_signaling_nans; extern int flag_single_precision_constant; extern int flag_split_ivs_in_unroller; extern int flag_stack_check; extern int flag_stack_protect; extern int flag_stack_protect; extern int flag_strict_aliasing; extern int flag_strict_overflow; extern int flag_syntax_only; extern int flag_test_coverage; extern int flag_thread_jumps; extern int time_report; extern int flag_toplevel_reorder; extern int flag_tracer; extern int flag_trapping_math; extern int flag_trapv; extern int flag_tree_ccp; extern int flag_tree_ch; extern int flag_tree_combine_temps; extern int flag_tree_copy_prop; extern int flag_tree_copyrename; extern int flag_tree_dce; extern int flag_tree_dom; extern int flag_tree_dse; extern int flag_tree_fre; extern int flag_tree_loop_im; extern int flag_tree_loop_ivcanon; extern int flag_tree_loop_linear; extern int flag_tree_loop_optimize; extern int flag_tree_live_range_split; extern int flag_tree_pre; extern int flag_tree_salias; extern int flag_tree_sink; extern int flag_tree_sra; extern int flag_tree_store_ccp; extern int flag_tree_store_copy_prop; extern int flag_tree_ter; extern int flag_tree_vect_loop_version; extern int flag_tree_vectorize; extern int flag_tree_vrp; extern int flag_unit_at_a_time; extern int flag_unroll_all_loops; extern int flag_unroll_loops; extern int flag_unsafe_loop_optimizations; extern int flag_unsafe_math_optimizations; extern int flag_unswitch_loops; extern int flag_unwind_tables; extern int flag_var_tracking; extern int flag_variable_expansion_in_unroller; extern int flag_verbose_asm; extern int flag_value_profile_transformations; extern int flag_web; extern int flag_whole_program; extern int flag_wrapv; extern int flag_zero_initialized_in_bss; extern const char *ix86_align_funcs_string; extern const char *ix86_align_jumps_string; extern const char *ix86_align_loops_string; extern const char *ix86_arch_string; extern const char *ix86_asm_string; extern const char *ix86_branch_cost_string; extern const char *ix86_cmodel_string; extern int TARGET_DEBUG_ADDR; extern int TARGET_DEBUG_ARG; extern const char *ix86_fpmath_string; extern int linux_uclibc; extern const char *ix86_section_threshold_string; extern const char *ix86_preferred_stack_boundary_string; extern const char *ix86_regparm_string; extern int ix86_force_align_arg_pointer; extern const char *ix86_tls_dialect_string; extern const char *ix86_tune_string; extern int linux_uclibc; extern int profile_flag; extern int pedantic; extern int quiet_flag; extern int version_flag; extern int inhibit_warnings; # 362 "./options.h" enum opt_code { OPT__help, OPT__output_pch_, OPT__param, OPT__target_help, OPT__version, OPT_A, OPT_C, OPT_CC, OPT_D, OPT_E, OPT_F, OPT_G, OPT_H, OPT_I, OPT_M, OPT_MD, OPT_MF, OPT_MG, OPT_MM, OPT_MMD, OPT_MP, OPT_MQ, OPT_MT, OPT_O, OPT_Os, OPT_P, OPT_U, OPT_W, OPT_Wabi, OPT_Waddress, OPT_Waggregate_return, OPT_Wall, OPT_Wassign_intercept, OPT_Wattributes, OPT_Wbad_function_cast, OPT_Wc___compat, OPT_Wcast_align, OPT_Wcast_qual, OPT_Wchar_subscripts, OPT_Wcomment, OPT_Wcomments, OPT_Wconversion, OPT_Wctor_dtor_privacy, OPT_Wdeclaration_after_statement, OPT_Wdeprecated, OPT_Wdeprecated_declarations, OPT_Wdisabled_optimization, OPT_Wdiv_by_zero, OPT_Weffc__, OPT_Wendif_labels, OPT_Werror, OPT_Werror_implicit_function_declaration, OPT_Werror_, OPT_Wextra, OPT_Wfatal_errors, OPT_Wfloat_equal, OPT_Wformat, OPT_Wformat_extra_args, OPT_Wformat_nonliteral, OPT_Wformat_security, OPT_Wformat_y2k, OPT_Wformat_zero_length, OPT_Wformat_, OPT_Wimplicit, OPT_Wimplicit_function_declaration, OPT_Wimplicit_int, OPT_Wimport, OPT_Winit_self, OPT_Winline, OPT_Wint_to_pointer_cast, OPT_Winvalid_offsetof, OPT_Winvalid_pch, OPT_Wlarger_than_, OPT_Wlong_long, OPT_Wmain, OPT_Wmissing_braces, OPT_Wmissing_declarations, OPT_Wmissing_field_initializers, OPT_Wmissing_format_attribute, OPT_Wmissing_include_dirs, OPT_Wmissing_noreturn, OPT_Wmissing_prototypes, OPT_Wmultichar, OPT_Wnested_externs, OPT_Wnon_template_friend, OPT_Wnon_virtual_dtor, OPT_Wnonnull, OPT_Wnormalized_, OPT_Wold_style_cast, OPT_Wold_style_definition, OPT_Woverflow, OPT_Woverlength_strings, OPT_Woverloaded_virtual, OPT_Woverride_init, OPT_Wpacked, OPT_Wpadded, OPT_Wparentheses, OPT_Wpmf_conversions, OPT_Wpointer_arith, OPT_Wpointer_sign, OPT_Wpointer_to_int_cast, OPT_Wpragmas, OPT_Wprotocol, OPT_Wredundant_decls, OPT_Wreorder, OPT_Wreturn_type, OPT_Wselector, OPT_Wsequence_point, OPT_Wshadow, OPT_Wsign_compare, OPT_Wsign_promo, OPT_Wstack_protector, OPT_Wstrict_aliasing, OPT_Wstrict_aliasing_, OPT_Wstrict_null_sentinel, OPT_Wstrict_overflow, OPT_Wstrict_overflow_, OPT_Wstrict_prototypes, OPT_Wstrict_selector_match, OPT_Wswitch, OPT_Wswitch_default, OPT_Wswitch_enum, OPT_Wsynth, OPT_Wsystem_headers, OPT_Wtraditional, OPT_Wtrigraphs, OPT_Wundeclared_selector, OPT_Wundef, OPT_Wuninitialized, OPT_Wunknown_pragmas, OPT_Wunreachable_code, OPT_Wunsafe_loop_optimizations, OPT_Wunused, OPT_Wunused_function, OPT_Wunused_label, OPT_Wunused_macros, OPT_Wunused_parameter, OPT_Wunused_value, OPT_Wunused_variable, OPT_Wvariadic_macros, OPT_Wvolatile_register_var, OPT_Wwrite_strings, OPT_ansi, OPT_aux_info, OPT_aux_info_, OPT_auxbase, OPT_auxbase_strip, OPT_d, OPT_dumpbase, OPT_fPIC, OPT_fPIE, OPT_fabi_version_, OPT_faccess_control, OPT_falign_functions, OPT_falign_functions_, OPT_falign_jumps, OPT_falign_jumps_, OPT_falign_labels, OPT_falign_labels_, OPT_falign_loops, OPT_falign_loops_, OPT_fall_virtual, OPT_falt_external_templates, OPT_fargument_alias, OPT_fargument_noalias, OPT_fargument_noalias_anything, OPT_fargument_noalias_global, OPT_fasm, OPT_fasynchronous_unwind_tables, OPT_fbounds_check, OPT_fbranch_count_reg, OPT_fbranch_probabilities, OPT_fbranch_target_load_optimize, OPT_fbranch_target_load_optimize2, OPT_fbtr_bb_exclusive, OPT_fbuiltin, OPT_fbuiltin_, OPT_fcall_saved_, OPT_fcall_used_, OPT_fcaller_saves, OPT_fcheck_new, OPT_fcommon, OPT_fcond_mismatch, OPT_fconserve_space, OPT_fconstant_string_class_, OPT_fcprop_registers, OPT_fcrossjumping, OPT_fcse_follow_jumps, OPT_fcse_skip_blocks, OPT_fcx_limited_range, OPT_fdata_sections, OPT_fdefault_inline, OPT_fdefer_pop, OPT_fdelayed_branch, OPT_fdelete_null_pointer_checks, OPT_fdiagnostics_show_location_, OPT_fdiagnostics_show_option, OPT_fdollars_in_identifiers, OPT_fdump_, OPT_fdump_noaddr, OPT_fdump_unnumbered, OPT_fearly_inlining, OPT_felide_constructors, OPT_feliminate_dwarf2_dups, OPT_feliminate_unused_debug_symbols, OPT_feliminate_unused_debug_types, OPT_femit_class_debug_always, OPT_fenforce_eh_specs, OPT_fenum_int_equiv, OPT_fexceptions, OPT_fexec_charset_, OPT_fexpensive_optimizations, OPT_fextended_identifiers, OPT_fexternal_templates, OPT_ffast_math, OPT_ffinite_math_only, OPT_ffixed_, OPT_ffloat_store, OPT_ffor_scope, OPT_fforce_addr, OPT_fforce_mem, OPT_ffreestanding, OPT_ffriend_injection, OPT_ffunction_cse, OPT_ffunction_sections, OPT_fgcse, OPT_fgcse_after_reload, OPT_fgcse_las, OPT_fgcse_lm, OPT_fgcse_sm, OPT_fgnu_keywords, OPT_fgnu_runtime, OPT_fgnu89_inline, OPT_fguess_branch_probability, OPT_fguiding_decls, OPT_fhandle_exceptions, OPT_fhonor_std, OPT_fhosted, OPT_fhuge_objects, OPT_fident, OPT_fif_conversion, OPT_fif_conversion2, OPT_fimplement_inlines, OPT_fimplicit_inline_templates, OPT_fimplicit_templates, OPT_finhibit_size_directive, OPT_finline, OPT_finline_functions, OPT_finline_functions_called_once, OPT_finline_limit_, OPT_finline_limit_eq, OPT_finput_charset_, OPT_finstrument_functions, OPT_fipa_cp, OPT_fipa_pta, OPT_fipa_pure_const, OPT_fipa_reference, OPT_fipa_type_escape, OPT_fivopts, OPT_fjump_tables, OPT_fkeep_inline_functions, OPT_fkeep_static_consts, OPT_flabels_ok, OPT_fleading_underscore, OPT_flexer_trace, OPT_floop_optimize, OPT_fmath_errno, OPT_fmem_report, OPT_fmerge_all_constants, OPT_fmerge_constants, OPT_fmessage_length_, OPT_fmodulo_sched, OPT_fmove_loop_invariants, OPT_fms_extensions, OPT_fmudflap, OPT_fmudflapir, OPT_fmudflapth, OPT_fname_mangling_version_, OPT_fnew_abi, OPT_fnext_runtime, OPT_fnil_receivers, OPT_fnon_call_exceptions, OPT_fnonansi_builtins, OPT_fnonnull_objects, OPT_fobjc_call_cxx_cdtors, OPT_fobjc_direct_dispatch, OPT_fobjc_exceptions, OPT_fobjc_gc, OPT_fobjc_sjlj_exceptions, OPT_fomit_frame_pointer, OPT_fopenmp, OPT_foperator_names, OPT_foptimize_register_move, OPT_foptimize_sibling_calls, OPT_foptional_diags, OPT_fpack_struct, OPT_fpack_struct_, OPT_fparser_trace, OPT_fpcc_struct_return, OPT_fpch_deps, OPT_fpch_preprocess, OPT_fpeel_loops, OPT_fpeephole, OPT_fpeephole2, OPT_fpermissive, OPT_fpic, OPT_fpie, OPT_fprefetch_loop_arrays, OPT_fpreprocessed, OPT_fprofile, OPT_fprofile_arcs, OPT_fprofile_generate, OPT_fprofile_use, OPT_fprofile_values, OPT_frandom_seed, OPT_frandom_seed_, OPT_freg_struct_return, OPT_fregmove, OPT_frename_registers, OPT_freorder_blocks, OPT_freorder_blocks_and_partition, OPT_freorder_functions, OPT_freplace_objc_classes, OPT_frepo, OPT_frerun_cse_after_loop, OPT_frerun_loop_opt, OPT_freschedule_modulo_scheduled_loops, OPT_frounding_math, OPT_frtl_abstract_sequences, OPT_frtti, OPT_fsched_interblock, OPT_fsched_spec, OPT_fsched_spec_load, OPT_fsched_spec_load_dangerous, OPT_fsched_stalled_insns, OPT_fsched_stalled_insns_dep, OPT_fsched_stalled_insns_dep_, OPT_fsched_stalled_insns_, OPT_fsched_verbose_, OPT_fsched2_use_superblocks, OPT_fsched2_use_traces, OPT_fschedule_insns, OPT_fschedule_insns2, OPT_fsection_anchors, OPT_fsee, OPT_fshort_double, OPT_fshort_enums, OPT_fshort_wchar, OPT_fshow_column, OPT_fsignaling_nans, OPT_fsigned_bitfields, OPT_fsigned_char, OPT_fsingle_precision_constant, OPT_fsplit_ivs_in_unroller, OPT_fsquangle, OPT_fstack_check, OPT_fstack_limit, OPT_fstack_limit_register_, OPT_fstack_limit_symbol_, OPT_fstack_protector, OPT_fstack_protector_all, OPT_fstats, OPT_fstrength_reduce, OPT_fstrict_aliasing, OPT_fstrict_overflow, OPT_fstrict_prototype, OPT_fsyntax_only, OPT_ftabstop_, OPT_ftemplate_depth_, OPT_ftest_coverage, OPT_fthis_is_variable, OPT_fthread_jumps, OPT_fthreadsafe_statics, OPT_ftime_report, OPT_ftls_model_, OPT_ftoplevel_reorder, OPT_ftracer, OPT_ftrapping_math, OPT_ftrapv, OPT_ftree_ccp, OPT_ftree_ch, OPT_ftree_combine_temps, OPT_ftree_copy_prop, OPT_ftree_copyrename, OPT_ftree_dce, OPT_ftree_dominator_opts, OPT_ftree_dse, OPT_ftree_fre, OPT_ftree_loop_im, OPT_ftree_loop_ivcanon, OPT_ftree_loop_linear, OPT_ftree_loop_optimize, OPT_ftree_lrs, OPT_ftree_pre, OPT_ftree_salias, OPT_ftree_sink, OPT_ftree_sra, OPT_ftree_store_ccp, OPT_ftree_store_copy_prop, OPT_ftree_ter, OPT_ftree_vect_loop_version, OPT_ftree_vectorize, OPT_ftree_vectorizer_verbose_, OPT_ftree_vrp, OPT_funit_at_a_time, OPT_funroll_all_loops, OPT_funroll_loops, OPT_funsafe_loop_optimizations, OPT_funsafe_math_optimizations, OPT_funsigned_bitfields, OPT_funsigned_char, OPT_funswitch_loops, OPT_funwind_tables, OPT_fuse_cxa_atexit, OPT_fuse_cxa_get_exception_ptr, OPT_fvar_tracking, OPT_fvariable_expansion_in_unroller, OPT_fverbose_asm, OPT_fvisibility_inlines_hidden, OPT_fvisibility_, OPT_fvpt, OPT_fvtable_gc, OPT_fvtable_thunks, OPT_fweak, OPT_fweb, OPT_fwhole_program, OPT_fwide_exec_charset_, OPT_fworking_directory, OPT_fwrapv, OPT_fxref, OPT_fzero_initialized_in_bss, OPT_fzero_link, OPT_g, OPT_gcoff, OPT_gdwarf_2, OPT_gen_decls, OPT_ggdb, OPT_gstabs, OPT_gstabs_, OPT_gvms, OPT_gxcoff, OPT_gxcoff_, OPT_idirafter, OPT_imacros, OPT_imultilib, OPT_include, OPT_iprefix, OPT_iquote, OPT_isysroot, OPT_isystem, OPT_iwithprefix, OPT_iwithprefixbefore, OPT_lang_asm, OPT_lang_fortran, OPT_lang_objc, OPT_m128bit_long_double, OPT_m32, OPT_m386, OPT_m3dnow, OPT_m486, OPT_m64, OPT_m80387, OPT_m96bit_long_double, OPT_maccumulate_outgoing_args, OPT_malign_double, OPT_malign_functions_, OPT_malign_jumps_, OPT_malign_loops_, OPT_malign_stringops, OPT_march_, OPT_masm_, OPT_mbranch_cost_, OPT_mcmodel_, OPT_mdebug_addr, OPT_mdebug_arg, OPT_mfancy_math_387, OPT_mfp_ret_in_387, OPT_mfpmath_, OPT_mglibc, OPT_mhard_float, OPT_mieee_fp, OPT_minline_all_stringops, OPT_mintel_syntax, OPT_mlarge_data_threshold_, OPT_mmmx, OPT_mms_bitfields, OPT_mno_align_stringops, OPT_mno_fancy_math_387, OPT_mno_push_args, OPT_mno_red_zone, OPT_momit_leaf_frame_pointer, OPT_mpentium, OPT_mpentiumpro, OPT_mpreferred_stack_boundary_, OPT_mpush_args, OPT_mred_zone, OPT_mregparm_, OPT_mrtd, OPT_msoft_float, OPT_msse, OPT_msse2, OPT_msse3, OPT_msseregparm, OPT_mstack_arg_probe, OPT_mstackrealign, OPT_msvr3_shlib, OPT_mtls_dialect_, OPT_mtls_direct_seg_refs, OPT_mtune_, OPT_muclibc, OPT_nostdinc, OPT_nostdinc__, OPT_o, OPT_p, OPT_pedantic, OPT_pedantic_errors, OPT_print_objc_runtime_info, OPT_print_pch_checksum, OPT_quiet, OPT_remap, OPT_std_c__98, OPT_std_c89, OPT_std_c99, OPT_std_c9x, OPT_std_gnu__98, OPT_std_gnu89, OPT_std_gnu99, OPT_std_gnu9x, OPT_std_iso9899_1990, OPT_std_iso9899_199409, OPT_std_iso9899_1999, OPT_std_iso9899_199x, OPT_traditional_cpp, OPT_trigraphs, OPT_undef, OPT_v, OPT_version, OPT_w, OPT_y, N_OPTS }; # 8 "./tm.h" 2 # 1 "../../GCC/gcc/config/i386/i386.h" 1 # 38 "../../GCC/gcc/config/i386/i386.h" struct processor_costs { const int add; const int lea; const int shift_var; const int shift_const; const int mult_init[5]; const int mult_bit; const int divide[5]; int movsx; int movzx; const int large_insn; const int move_ratio; const int movzbl_load; const int int_load[3]; const int int_store[3]; const int fp_move; const int fp_load[3]; const int fp_store[3]; const int mmx_move; const int mmx_load[2]; const int mmx_store[2]; const int sse_move; const int sse_load[3]; const int sse_store[3]; const int mmxsse_to_integer; const int prefetch_block; const int simultaneous_prefetches; const int branch_cost; const int fadd; const int fmul; const int fdiv; const int fabs; const int fchs; const int fsqrt; }; extern const struct processor_costs *ix86_cost; # 143 "../../GCC/gcc/config/i386/i386.h" extern const int x86_use_leave, x86_push_memory, x86_zero_extend_with_and; extern const int x86_use_bit_test, x86_cmove, x86_deep_branch; extern const int x86_branch_hints, x86_unroll_strlen; extern const int x86_double_with_add, x86_partial_reg_stall, x86_movx; extern const int x86_use_himode_fiop, x86_use_simode_fiop; extern const int x86_use_mov0, x86_use_cltd, x86_read_modify_write; extern const int x86_read_modify, x86_split_long_moves; extern const int x86_promote_QImode, x86_single_stringop, x86_fast_prefix; extern const int x86_himode_math, x86_qimode_math, x86_promote_qi_regs; extern const int x86_promote_hi_regs, x86_integer_DFmode_moves; extern const int x86_add_esp_4, x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8; extern const int x86_partial_reg_dependency, x86_memory_mismatch_stall; extern const int x86_accumulate_outgoing_args, x86_prologue_using_move; extern const int x86_epilogue_using_move, x86_decompose_lea; extern const int x86_arch_always_fancy_math_387, x86_shift1; extern const int x86_sse_partial_reg_dependency, x86_sse_split_regs; extern const int x86_sse_typeless_stores, x86_sse_load0_by_pxor; extern const int x86_use_ffreep; extern const int x86_inter_unit_moves, x86_schedule; extern const int x86_use_bt; extern const int x86_cmpxchg, x86_cmpxchg8b, x86_cmpxchg16b, x86_xadd; extern const int x86_use_incdec; extern const int x86_pad_returns; extern const int x86_partial_flag_reg_stall; extern int x86_prefetch_sse; # 281 "../../GCC/gcc/config/i386/i386.h" extern const char *host_detect_local_cpu (int argc, const char **argv); # 1065 "../../GCC/gcc/config/i386/i386.h" enum reg_class { NO_REGS, AREG, DREG, CREG, BREG, SIREG, DIREG, AD_REGS, Q_REGS, NON_Q_REGS, INDEX_REGS, LEGACY_REGS, GENERAL_REGS, FP_TOP_REG, FP_SECOND_REG, FLOAT_REGS, SSE_REGS, MMX_REGS, FP_TOP_SSE_REGS, FP_SECOND_SSE_REGS, FLOAT_SSE_REGS, FLOAT_INT_REGS, INT_SSE_REGS, FLOAT_INT_SSE_REGS, ALL_REGS, LIM_REG_CLASSES }; # 1426 "../../GCC/gcc/config/i386/i386.h" typedef struct ix86_args { int words; int nregs; int regno; int fastcall; int sse_words; int sse_nregs; int warn_sse; int warn_mmx; int sse_regno; int mmx_words; int mmx_nregs; int mmx_regno; int maybe_vaarg; int float_in_sse; } CUMULATIVE_ARGS; # 1955 "../../GCC/gcc/config/i386/i386.h" extern int const dbx_register_map[53]; extern int const dbx64_register_map[53]; extern int const svr4_dbx_register_map[53]; # 2071 "../../GCC/gcc/config/i386/i386.h" enum processor_type { PROCESSOR_I386, PROCESSOR_I486, PROCESSOR_PENTIUM, PROCESSOR_PENTIUMPRO, PROCESSOR_K6, PROCESSOR_ATHLON, PROCESSOR_PENTIUM4, PROCESSOR_K8, PROCESSOR_NOCONA, PROCESSOR_GENERIC32, PROCESSOR_GENERIC64, PROCESSOR_max }; extern enum processor_type ix86_tune; extern enum processor_type ix86_arch; enum fpmath_unit { FPMATH_387 = 1, FPMATH_SSE = 2 }; extern enum fpmath_unit ix86_fpmath; enum tls_dialect { TLS_DIALECT_GNU, TLS_DIALECT_GNU2, TLS_DIALECT_SUN }; extern enum tls_dialect ix86_tls_dialect; enum cmodel { CM_32, CM_SMALL, CM_KERNEL, CM_MEDIUM, CM_LARGE, CM_SMALL_PIC, CM_MEDIUM_PIC }; extern enum cmodel ix86_cmodel; enum asm_dialect { ASM_ATT, ASM_INTEL }; extern enum asm_dialect ix86_asm_dialect; extern unsigned int ix86_preferred_stack_boundary; extern int ix86_branch_cost, ix86_section_threshold; extern enum reg_class const regclass_map[53]; extern rtx ix86_compare_op0; extern rtx ix86_compare_op1; extern rtx ix86_compare_emitted; # 2155 "../../GCC/gcc/config/i386/i386.h" enum ix86_entity { I387_TRUNC = 0, I387_FLOOR, I387_CEIL, I387_MASK_PM, MAX_386_ENTITIES }; enum ix86_stack_slot { SLOT_VIRTUAL = 0, SLOT_TEMP, SLOT_CW_STORED, SLOT_CW_TRUNC, SLOT_CW_FLOOR, SLOT_CW_CEIL, SLOT_CW_MASK_PM, MAX_386_STACK_LOCALS }; # 2230 "../../GCC/gcc/config/i386/i386.h" struct machine_function { struct stack_local_entry *stack_locals; const char *some_ld_name; rtx force_align_arg_pointer; int save_varrargs_registers; int accesses_prev_frame; int optimize_mode_switching[MAX_386_ENTITIES]; int use_fast_prologue_epilogue; int use_fast_prologue_epilogue_nregs; # 2253 "../../GCC/gcc/config/i386/i386.h" int tls_descriptor_call_expanded_p; }; # 9 "./tm.h" 2 # 1 "../../GCC/gcc/config/i386/unix.h" 1 # 10 "./tm.h" 2 # 1 "../../GCC/gcc/config/i386/att.h" 1 # 11 "./tm.h" 2 # 1 "../../GCC/gcc/config/dbxelf.h" 1 # 12 "./tm.h" 2 # 1 "../../GCC/gcc/config/elfos.h" 1 # 13 "./tm.h" 2 # 1 "../../GCC/gcc/config/svr4.h" 1 # 14 "./tm.h" 2 # 1 "../../GCC/gcc/config/linux.h" 1 # 15 "./tm.h" 2 # 1 "../../GCC/gcc/config/i386/linux.h" 1 # 16 "./tm.h" 2 # 1 "../../GCC/gcc/defaults.h" 1 # 741 "../../GCC/gcc/defaults.h" # 17 "./tm.h" 2 # 1 "./insn-constants.h" 1 # 20 "./tm.h" 2 # 1 "./insn-flags.h" 1 # 1102 "./insn-flags.h" static __inline__ rtx gen_cmpdi_ccno_1_rex64 (rtx, rtx); static __inline__ rtx gen_cmpdi_ccno_1_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_cmpdi_1_insn_rex64 (rtx, rtx); static __inline__ rtx gen_cmpdi_1_insn_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_cmpqi_ext_3_insn (rtx, rtx); static __inline__ rtx gen_cmpqi_ext_3_insn_rex64 (rtx, rtx); static __inline__ rtx gen_cmpqi_ext_3_insn_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_x86_fnstsw_1 (rtx); extern rtx gen_x86_sahf_1 (rtx); extern rtx gen_popsi1 (rtx); extern rtx gen_movsi_insv_1 (rtx, rtx); static __inline__ rtx gen_movdi_insv_1_rex64 (rtx, rtx); static __inline__ rtx gen_movdi_insv_1_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_popdi1 (rtx); static __inline__ rtx gen_popdi1(rtx a __attribute__ ((__unused__))) { return 0; } extern rtx gen_swapxf (rtx, rtx); extern rtx gen_zero_extendhisi2_and (rtx, rtx); extern rtx gen_zero_extendsidi2_32 (rtx, rtx); static __inline__ rtx gen_zero_extendsidi2_rex64 (rtx, rtx); static __inline__ rtx gen_zero_extendsidi2_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_zero_extendhidi2 (rtx, rtx); static __inline__ rtx gen_zero_extendhidi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_zero_extendqidi2 (rtx, rtx); static __inline__ rtx gen_zero_extendqidi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_extendsidi2_rex64 (rtx, rtx); static __inline__ rtx gen_extendsidi2_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_extendhidi2 (rtx, rtx); static __inline__ rtx gen_extendhidi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_extendqidi2 (rtx, rtx); static __inline__ rtx gen_extendqidi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_extendhisi2 (rtx, rtx); extern rtx gen_extendqihi2 (rtx, rtx); extern rtx gen_extendqisi2 (rtx, rtx); extern rtx gen_truncxfsf2_i387_noop (rtx, rtx); extern rtx gen_truncxfdf2_i387_noop (rtx, rtx); static __inline__ rtx gen_fix_truncsfdi_sse (rtx, rtx); static __inline__ rtx gen_fix_truncsfdi_sse(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_fix_truncdfdi_sse (rtx, rtx); static __inline__ rtx gen_fix_truncdfdi_sse(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_fix_truncsfsi_sse (rtx, rtx); extern rtx gen_fix_truncdfsi_sse (rtx, rtx); extern rtx gen_fix_trunchi_fisttp_i387_1 (rtx, rtx); extern rtx gen_fix_truncsi_fisttp_i387_1 (rtx, rtx); extern rtx gen_fix_truncdi_fisttp_i387_1 (rtx, rtx); extern rtx gen_fix_trunchi_i387_fisttp (rtx, rtx); extern rtx gen_fix_truncsi_i387_fisttp (rtx, rtx); extern rtx gen_fix_truncdi_i387_fisttp (rtx, rtx); extern rtx gen_fix_trunchi_i387_fisttp_with_temp (rtx, rtx, rtx); extern rtx gen_fix_truncsi_i387_fisttp_with_temp (rtx, rtx, rtx); extern rtx gen_fix_truncdi_i387_fisttp_with_temp (rtx, rtx, rtx); extern rtx gen_fix_truncdi_i387 (rtx, rtx, rtx, rtx); extern rtx gen_fix_truncdi_i387_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_fix_trunchi_i387 (rtx, rtx, rtx, rtx); extern rtx gen_fix_truncsi_i387 (rtx, rtx, rtx, rtx); extern rtx gen_fix_trunchi_i387_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_fix_truncsi_i387_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_x86_fnstcw_1 (rtx); extern rtx gen_x86_fldcw_1 (rtx); extern rtx gen_floathixf2 (rtx, rtx); extern rtx gen_floatsixf2 (rtx, rtx); extern rtx gen_floatdixf2 (rtx, rtx); static __inline__ rtx gen_adddi3_carry_rex64 (rtx, rtx, rtx, rtx); static __inline__ rtx gen_adddi3_carry_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_addqi3_carry (rtx, rtx, rtx, rtx); extern rtx gen_addhi3_carry (rtx, rtx, rtx, rtx); extern rtx gen_addsi3_carry (rtx, rtx, rtx, rtx); extern rtx gen_addqi3_cc (rtx, rtx, rtx); static __inline__ rtx gen_addsi_1_zext (rtx, rtx, rtx); static __inline__ rtx gen_addsi_1_zext(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_addqi_ext_1 (rtx, rtx, rtx); static __inline__ rtx gen_subdi3_carry_rex64 (rtx, rtx, rtx, rtx); static __inline__ rtx gen_subdi3_carry_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_subqi3_carry (rtx, rtx, rtx, rtx); extern rtx gen_subhi3_carry (rtx, rtx, rtx, rtx); extern rtx gen_subsi3_carry (rtx, rtx, rtx, rtx); static __inline__ rtx gen_subsi3_carry_zext (rtx, rtx, rtx, rtx); static __inline__ rtx gen_subsi3_carry_zext(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_divqi3 (rtx, rtx, rtx); extern rtx gen_udivqi3 (rtx, rtx, rtx); extern rtx gen_divmodhi4 (rtx, rtx, rtx, rtx); static __inline__ rtx gen_udivmoddi4 (rtx, rtx, rtx, rtx); static __inline__ rtx gen_udivmoddi4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_udivmodsi4 (rtx, rtx, rtx, rtx); extern rtx gen_testsi_1 (rtx, rtx); extern rtx gen_andqi_ext_0 (rtx, rtx, rtx); extern rtx gen_iorqi_ext_0 (rtx, rtx, rtx); extern rtx gen_xorqi_ext_0 (rtx, rtx, rtx); extern rtx gen_copysignsf3_const (rtx, rtx, rtx, rtx); extern rtx gen_copysignsf3_var (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_copysigndf3_const (rtx, rtx, rtx, rtx); extern rtx gen_copysigndf3_var (rtx, rtx, rtx, rtx, rtx, rtx); static __inline__ rtx gen_ashlti3_1 (rtx, rtx, rtx); static __inline__ rtx gen_ashlti3_1(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_x86_64_shld (rtx, rtx, rtx); static __inline__ rtx gen_x86_64_shld(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_x86_shld_1 (rtx, rtx, rtx); static __inline__ rtx gen_ashrti3_1 (rtx, rtx, rtx); static __inline__ rtx gen_ashrti3_1(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_x86_64_shrd (rtx, rtx, rtx); static __inline__ rtx gen_x86_64_shrd(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_x86_shrd_1 (rtx, rtx, rtx); extern rtx gen_ashrsi3_31 (rtx, rtx, rtx); static __inline__ rtx gen_lshrti3_1 (rtx, rtx, rtx); static __inline__ rtx gen_lshrti3_1(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_ix86_rotldi3 (rtx, rtx, rtx); extern rtx gen_ix86_rotrdi3 (rtx, rtx, rtx); extern rtx gen_jump (rtx); extern rtx gen_blockage (rtx); extern rtx gen_return_internal (void); extern rtx gen_return_internal_long (void); extern rtx gen_return_pop_internal (rtx); extern rtx gen_return_indirect_internal (rtx); extern rtx gen_nop (void); extern rtx gen_align (rtx); extern rtx gen_set_got (rtx); extern rtx gen_set_got_labelled (rtx, rtx); static __inline__ rtx gen_set_got_rex64 (rtx); static __inline__ rtx gen_set_got_rex64(rtx a __attribute__ ((__unused__))) { return 0; } extern rtx gen_eh_return_si (rtx); static __inline__ rtx gen_eh_return_di (rtx); static __inline__ rtx gen_eh_return_di(rtx a __attribute__ ((__unused__))) { return 0; } extern rtx gen_leave (void); static __inline__ rtx gen_leave_rex64 (void); static __inline__ rtx gen_leave_rex64(void) { return 0; } extern rtx gen_ctzsi2 (rtx, rtx); static __inline__ rtx gen_ctzdi2 (rtx, rtx); static __inline__ rtx gen_ctzdi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sqrtxf2 (rtx, rtx); extern rtx gen_fpremxf4 (rtx, rtx, rtx, rtx); extern rtx gen_fprem1xf4 (rtx, rtx, rtx, rtx); extern rtx gen_sincosdf3 (rtx, rtx, rtx); extern rtx gen_sincossf3 (rtx, rtx, rtx); extern rtx gen_sincosxf3 (rtx, rtx, rtx); extern rtx gen_atan2df3_1 (rtx, rtx, rtx); extern rtx gen_atan2sf3_1 (rtx, rtx, rtx); extern rtx gen_atan2xf3_1 (rtx, rtx, rtx); extern rtx gen_fyl2x_xf3 (rtx, rtx, rtx); extern rtx gen_fyl2xp1_xf3 (rtx, rtx, rtx); extern rtx gen_frndintxf2 (rtx, rtx); extern rtx gen_fistdi2 (rtx, rtx); extern rtx gen_fistdi2_with_temp (rtx, rtx, rtx); extern rtx gen_fisthi2 (rtx, rtx); extern rtx gen_fistsi2 (rtx, rtx); extern rtx gen_fisthi2_with_temp (rtx, rtx, rtx); extern rtx gen_fistsi2_with_temp (rtx, rtx, rtx); extern rtx gen_frndintxf2_floor (rtx, rtx); extern rtx gen_frndintxf2_floor_i387 (rtx, rtx, rtx, rtx); extern rtx gen_fistdi2_floor (rtx, rtx, rtx, rtx); extern rtx gen_fistdi2_floor_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_fisthi2_floor (rtx, rtx, rtx, rtx); extern rtx gen_fistsi2_floor (rtx, rtx, rtx, rtx); extern rtx gen_fisthi2_floor_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_fistsi2_floor_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_frndintxf2_ceil (rtx, rtx); extern rtx gen_frndintxf2_ceil_i387 (rtx, rtx, rtx, rtx); extern rtx gen_fistdi2_ceil (rtx, rtx, rtx, rtx); extern rtx gen_fistdi2_ceil_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_fisthi2_ceil (rtx, rtx, rtx, rtx); extern rtx gen_fistsi2_ceil (rtx, rtx, rtx, rtx); extern rtx gen_fisthi2_ceil_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_fistsi2_ceil_with_temp (rtx, rtx, rtx, rtx, rtx); extern rtx gen_frndintxf2_trunc (rtx, rtx); extern rtx gen_frndintxf2_trunc_i387 (rtx, rtx, rtx, rtx); extern rtx gen_frndintxf2_mask_pm (rtx, rtx); extern rtx gen_frndintxf2_mask_pm_i387 (rtx, rtx, rtx, rtx); extern rtx gen_cld (void); static __inline__ rtx gen_x86_movdicc_0_m1_rex64 (rtx, rtx); static __inline__ rtx gen_x86_movdicc_0_m1_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_x86_movsicc_0_m1 (rtx, rtx); extern rtx gen_sminsf3 (rtx, rtx, rtx); extern rtx gen_smaxsf3 (rtx, rtx, rtx); extern rtx gen_smindf3 (rtx, rtx, rtx); extern rtx gen_smaxdf3 (rtx, rtx, rtx); extern rtx gen_pro_epilogue_adjust_stack_1 (rtx, rtx, rtx); static __inline__ rtx gen_pro_epilogue_adjust_stack_rex64 (rtx, rtx, rtx); static __inline__ rtx gen_pro_epilogue_adjust_stack_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_pro_epilogue_adjust_stack_rex64_2 (rtx, rtx, rtx, rtx); static __inline__ rtx gen_pro_epilogue_adjust_stack_rex64_2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_allocate_stack_worker_1 (rtx); static __inline__ rtx gen_allocate_stack_worker_rex64 (rtx); static __inline__ rtx gen_allocate_stack_worker_rex64(rtx a __attribute__ ((__unused__))) { return 0; } extern rtx gen_trap (void); extern rtx gen_stack_protect_set_si (rtx, rtx); static __inline__ rtx gen_stack_protect_set_di (rtx, rtx); static __inline__ rtx gen_stack_protect_set_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_stack_tls_protect_set_si (rtx, rtx); static __inline__ rtx gen_stack_tls_protect_set_di (rtx, rtx); static __inline__ rtx gen_stack_tls_protect_set_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_stack_protect_test_si (rtx, rtx, rtx); static __inline__ rtx gen_stack_protect_test_di (rtx, rtx, rtx); static __inline__ rtx gen_stack_protect_test_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_stack_tls_protect_test_si (rtx, rtx, rtx); static __inline__ rtx gen_stack_tls_protect_test_di (rtx, rtx, rtx); static __inline__ rtx gen_stack_tls_protect_test_di(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_sse_movups (rtx, rtx); extern rtx gen_sse2_movupd (rtx, rtx); extern rtx gen_sse2_movdqu (rtx, rtx); extern rtx gen_sse_movntv4sf (rtx, rtx); extern rtx gen_sse2_movntv2df (rtx, rtx); extern rtx gen_sse2_movntv2di (rtx, rtx); extern rtx gen_sse2_movntsi (rtx, rtx); extern rtx gen_sse3_lddqu (rtx, rtx); extern rtx gen_sse_vmaddv4sf3 (rtx, rtx, rtx); extern rtx gen_sse_vmsubv4sf3 (rtx, rtx, rtx); extern rtx gen_sse_vmmulv4sf3 (rtx, rtx, rtx); extern rtx gen_sse_vmdivv4sf3 (rtx, rtx, rtx); extern rtx gen_sse_rcpv4sf2 (rtx, rtx); extern rtx gen_sse_vmrcpv4sf2 (rtx, rtx, rtx); extern rtx gen_sse_rsqrtv4sf2 (rtx, rtx); extern rtx gen_sse_vmrsqrtv4sf2 (rtx, rtx, rtx); extern rtx gen_sqrtv4sf2 (rtx, rtx); extern rtx gen_sse_vmsqrtv4sf2 (rtx, rtx, rtx); extern rtx gen_sse_vmsmaxv4sf3 (rtx, rtx, rtx); extern rtx gen_sse_vmsminv4sf3 (rtx, rtx, rtx); extern rtx gen_sse3_addsubv4sf3 (rtx, rtx, rtx); extern rtx gen_sse3_haddv4sf3 (rtx, rtx, rtx); extern rtx gen_sse3_hsubv4sf3 (rtx, rtx, rtx); extern rtx gen_sse_maskcmpv4sf3 (rtx, rtx, rtx, rtx); extern rtx gen_sse_vmmaskcmpv4sf3 (rtx, rtx, rtx, rtx); extern rtx gen_sse_comi (rtx, rtx); extern rtx gen_sse_ucomi (rtx, rtx); extern rtx gen_sse_nandv4sf3 (rtx, rtx, rtx); extern rtx gen_sse_cvtpi2ps (rtx, rtx, rtx); extern rtx gen_sse_cvtps2pi (rtx, rtx); extern rtx gen_sse_cvttps2pi (rtx, rtx); extern rtx gen_sse_cvtsi2ss (rtx, rtx, rtx); static __inline__ rtx gen_sse_cvtsi2ssq (rtx, rtx, rtx); static __inline__ rtx gen_sse_cvtsi2ssq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_sse_cvtss2si (rtx, rtx); static __inline__ rtx gen_sse_cvtss2siq (rtx, rtx); static __inline__ rtx gen_sse_cvtss2siq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sse_cvttss2si (rtx, rtx); static __inline__ rtx gen_sse_cvttss2siq (rtx, rtx); static __inline__ rtx gen_sse_cvttss2siq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sse2_cvtdq2ps (rtx, rtx); extern rtx gen_sse2_cvtps2dq (rtx, rtx); extern rtx gen_sse2_cvttps2dq (rtx, rtx); extern rtx gen_sse_movhlps (rtx, rtx, rtx); extern rtx gen_sse_movlhps (rtx, rtx, rtx); extern rtx gen_sse_unpckhps (rtx, rtx, rtx); extern rtx gen_sse_unpcklps (rtx, rtx, rtx); extern rtx gen_sse3_movshdup (rtx, rtx); extern rtx gen_sse3_movsldup (rtx, rtx); extern rtx gen_sse_shufps_1 (rtx, rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_sse_storehps (rtx, rtx); extern rtx gen_sse_loadhps (rtx, rtx, rtx); extern rtx gen_sse_storelps (rtx, rtx); extern rtx gen_sse_loadlps (rtx, rtx, rtx); extern rtx gen_sse_movss (rtx, rtx, rtx); extern rtx gen_sse2_vmaddv2df3 (rtx, rtx, rtx); extern rtx gen_sse2_vmsubv2df3 (rtx, rtx, rtx); extern rtx gen_sse2_vmmulv2df3 (rtx, rtx, rtx); extern rtx gen_sse2_vmdivv2df3 (rtx, rtx, rtx); extern rtx gen_sqrtv2df2 (rtx, rtx); extern rtx gen_sse2_vmsqrtv2df2 (rtx, rtx, rtx); extern rtx gen_sse2_vmsmaxv2df3 (rtx, rtx, rtx); extern rtx gen_sse2_vmsminv2df3 (rtx, rtx, rtx); extern rtx gen_sse3_addsubv2df3 (rtx, rtx, rtx); extern rtx gen_sse3_haddv2df3 (rtx, rtx, rtx); extern rtx gen_sse3_hsubv2df3 (rtx, rtx, rtx); extern rtx gen_sse2_maskcmpv2df3 (rtx, rtx, rtx, rtx); extern rtx gen_sse2_vmmaskcmpv2df3 (rtx, rtx, rtx, rtx); extern rtx gen_sse2_comi (rtx, rtx); extern rtx gen_sse2_ucomi (rtx, rtx); extern rtx gen_sse2_nandv2df3 (rtx, rtx, rtx); extern rtx gen_sse2_cvtpi2pd (rtx, rtx); extern rtx gen_sse2_cvtpd2pi (rtx, rtx); extern rtx gen_sse2_cvttpd2pi (rtx, rtx); extern rtx gen_sse2_cvtsi2sd (rtx, rtx, rtx); static __inline__ rtx gen_sse2_cvtsi2sdq (rtx, rtx, rtx); static __inline__ rtx gen_sse2_cvtsi2sdq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_sse2_cvtsd2si (rtx, rtx); static __inline__ rtx gen_sse2_cvtsd2siq (rtx, rtx); static __inline__ rtx gen_sse2_cvtsd2siq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sse2_cvttsd2si (rtx, rtx); static __inline__ rtx gen_sse2_cvttsd2siq (rtx, rtx); static __inline__ rtx gen_sse2_cvttsd2siq(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sse2_cvtdq2pd (rtx, rtx); extern rtx gen_sse2_cvtsd2ss (rtx, rtx, rtx); extern rtx gen_sse2_cvtss2sd (rtx, rtx, rtx); extern rtx gen_sse2_cvtps2pd (rtx, rtx); extern rtx gen_sse2_unpckhpd (rtx, rtx, rtx); extern rtx gen_sse2_unpcklpd (rtx, rtx, rtx); extern rtx gen_sse2_shufpd_1 (rtx, rtx, rtx, rtx, rtx); extern rtx gen_sse2_storehpd (rtx, rtx); extern rtx gen_sse2_storelpd (rtx, rtx); extern rtx gen_sse2_loadhpd (rtx, rtx, rtx); extern rtx gen_sse2_loadlpd (rtx, rtx, rtx); extern rtx gen_sse2_movsd (rtx, rtx, rtx); extern rtx gen_sse2_ssaddv16qi3 (rtx, rtx, rtx); extern rtx gen_sse2_ssaddv8hi3 (rtx, rtx, rtx); extern rtx gen_sse2_usaddv16qi3 (rtx, rtx, rtx); extern rtx gen_sse2_usaddv8hi3 (rtx, rtx, rtx); extern rtx gen_sse2_sssubv16qi3 (rtx, rtx, rtx); extern rtx gen_sse2_sssubv8hi3 (rtx, rtx, rtx); extern rtx gen_sse2_ussubv16qi3 (rtx, rtx, rtx); extern rtx gen_sse2_ussubv8hi3 (rtx, rtx, rtx); extern rtx gen_sse2_smulv8hi3_highpart (rtx, rtx, rtx); extern rtx gen_sse2_umulv8hi3_highpart (rtx, rtx, rtx); extern rtx gen_sse2_umulv2siv2di3 (rtx, rtx, rtx); extern rtx gen_sse2_pmaddwd (rtx, rtx, rtx); extern rtx gen_ashrv8hi3 (rtx, rtx, rtx); extern rtx gen_ashrv4si3 (rtx, rtx, rtx); extern rtx gen_lshrv8hi3 (rtx, rtx, rtx); extern rtx gen_lshrv4si3 (rtx, rtx, rtx); extern rtx gen_lshrv2di3 (rtx, rtx, rtx); extern rtx gen_ashlv8hi3 (rtx, rtx, rtx); extern rtx gen_ashlv4si3 (rtx, rtx, rtx); extern rtx gen_ashlv2di3 (rtx, rtx, rtx); extern rtx gen_sse2_ashlti3 (rtx, rtx, rtx); extern rtx gen_sse2_lshrti3 (rtx, rtx, rtx); extern rtx gen_sse2_eqv16qi3 (rtx, rtx, rtx); extern rtx gen_sse2_eqv8hi3 (rtx, rtx, rtx); extern rtx gen_sse2_eqv4si3 (rtx, rtx, rtx); extern rtx gen_sse2_gtv16qi3 (rtx, rtx, rtx); extern rtx gen_sse2_gtv8hi3 (rtx, rtx, rtx); extern rtx gen_sse2_gtv4si3 (rtx, rtx, rtx); extern rtx gen_sse2_nandv16qi3 (rtx, rtx, rtx); extern rtx gen_sse2_nandv8hi3 (rtx, rtx, rtx); extern rtx gen_sse2_nandv4si3 (rtx, rtx, rtx); extern rtx gen_sse2_nandv2di3 (rtx, rtx, rtx); extern rtx gen_sse2_packsswb (rtx, rtx, rtx); extern rtx gen_sse2_packssdw (rtx, rtx, rtx); extern rtx gen_sse2_packuswb (rtx, rtx, rtx); extern rtx gen_sse2_punpckhbw (rtx, rtx, rtx); extern rtx gen_sse2_punpcklbw (rtx, rtx, rtx); extern rtx gen_sse2_punpckhwd (rtx, rtx, rtx); extern rtx gen_sse2_punpcklwd (rtx, rtx, rtx); extern rtx gen_sse2_punpckhdq (rtx, rtx, rtx); extern rtx gen_sse2_punpckldq (rtx, rtx, rtx); extern rtx gen_sse2_punpckhqdq (rtx, rtx, rtx); extern rtx gen_sse2_punpcklqdq (rtx, rtx, rtx); extern rtx gen_sse2_pextrw (rtx, rtx, rtx); extern rtx gen_sse2_pshufd_1 (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_sse2_pshuflw_1 (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_sse2_pshufhw_1 (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_sse2_loadld (rtx, rtx, rtx); extern rtx gen_sse2_stored (rtx, rtx); extern rtx gen_sse2_uavgv16qi3 (rtx, rtx, rtx); extern rtx gen_sse2_uavgv8hi3 (rtx, rtx, rtx); extern rtx gen_sse2_psadbw (rtx, rtx, rtx); extern rtx gen_sse_movmskps (rtx, rtx); extern rtx gen_sse2_movmskpd (rtx, rtx); extern rtx gen_sse2_pmovmskb (rtx, rtx); extern rtx gen_sse_ldmxcsr (rtx); extern rtx gen_sse_stmxcsr (rtx); extern rtx gen_sse2_clflush (rtx); extern rtx gen_sse3_mwait (rtx, rtx); extern rtx gen_sse3_monitor (rtx, rtx, rtx); static __inline__ rtx gen_sse3_monitor64 (rtx, rtx, rtx); static __inline__ rtx gen_sse3_monitor64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_sse_movntdi (rtx, rtx); extern rtx gen_mmx_addv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_subv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_mulv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_smaxv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_sminv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_rcpv2sf2 (rtx, rtx); extern rtx gen_mmx_rcpit1v2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_rcpit2v2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_rsqrtv2sf2 (rtx, rtx); extern rtx gen_mmx_rsqit1v2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_haddv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_hsubv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_addsubv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_gtv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_gev2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_eqv2sf3 (rtx, rtx, rtx); extern rtx gen_mmx_pf2id (rtx, rtx); extern rtx gen_mmx_pf2iw (rtx, rtx); extern rtx gen_mmx_pi2fw (rtx, rtx); extern rtx gen_mmx_floatv2si2 (rtx, rtx); extern rtx gen_mmx_pswapdv2sf2 (rtx, rtx); extern rtx gen_mmx_addv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_addv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_addv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_adddi3 (rtx, rtx, rtx); extern rtx gen_mmx_ssaddv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_ssaddv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_usaddv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_usaddv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_subv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_subv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_subv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_subdi3 (rtx, rtx, rtx); extern rtx gen_mmx_sssubv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_sssubv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_ussubv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_ussubv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_mulv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_smulv4hi3_highpart (rtx, rtx, rtx); extern rtx gen_mmx_umulv4hi3_highpart (rtx, rtx, rtx); extern rtx gen_mmx_pmaddwd (rtx, rtx, rtx); extern rtx gen_mmx_pmulhrwv4hi3 (rtx, rtx, rtx); extern rtx gen_sse2_umulsidi3 (rtx, rtx, rtx); extern rtx gen_mmx_umaxv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_smaxv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_uminv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_sminv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_ashrv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_ashrv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_lshrv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_lshrv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_lshrdi3 (rtx, rtx, rtx); extern rtx gen_mmx_ashlv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_ashlv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_ashldi3 (rtx, rtx, rtx); extern rtx gen_mmx_eqv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_eqv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_eqv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_gtv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_gtv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_gtv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_andv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_andv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_andv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_nandv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_nandv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_nandv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_iorv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_iorv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_iorv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_xorv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_xorv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_xorv2si3 (rtx, rtx, rtx); extern rtx gen_mmx_packsswb (rtx, rtx, rtx); extern rtx gen_mmx_packssdw (rtx, rtx, rtx); extern rtx gen_mmx_packuswb (rtx, rtx, rtx); extern rtx gen_mmx_punpckhbw (rtx, rtx, rtx); extern rtx gen_mmx_punpcklbw (rtx, rtx, rtx); extern rtx gen_mmx_punpckhwd (rtx, rtx, rtx); extern rtx gen_mmx_punpcklwd (rtx, rtx, rtx); extern rtx gen_mmx_punpckhdq (rtx, rtx, rtx); extern rtx gen_mmx_punpckldq (rtx, rtx, rtx); extern rtx gen_mmx_pextrw (rtx, rtx, rtx); extern rtx gen_mmx_pshufw_1 (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_mmx_pswapdv2si2 (rtx, rtx); extern rtx gen_mmx_uavgv8qi3 (rtx, rtx, rtx); extern rtx gen_mmx_uavgv4hi3 (rtx, rtx, rtx); extern rtx gen_mmx_psadbw (rtx, rtx, rtx); extern rtx gen_mmx_pmovmskb (rtx, rtx); extern rtx gen_mmx_emms (void); extern rtx gen_mmx_femms (void); extern rtx gen_sync_double_compare_and_swapdi (rtx, rtx, rtx, rtx, rtx); static __inline__ rtx gen_sync_double_compare_and_swapti (rtx, rtx, rtx, rtx, rtx); static __inline__ rtx gen_sync_double_compare_and_swapti(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__)), rtx e __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_double_compare_and_swap_ccdi (rtx, rtx, rtx, rtx, rtx); static __inline__ rtx gen_sync_double_compare_and_swap_ccti (rtx, rtx, rtx, rtx, rtx); static __inline__ rtx gen_sync_double_compare_and_swap_ccti(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__)), rtx e __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_old_addqi (rtx, rtx, rtx); extern rtx gen_sync_old_addhi (rtx, rtx, rtx); extern rtx gen_sync_old_addsi (rtx, rtx, rtx); static __inline__ rtx gen_sync_old_adddi (rtx, rtx, rtx); static __inline__ rtx gen_sync_old_adddi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_lock_test_and_setqi (rtx, rtx, rtx); extern rtx gen_sync_lock_test_and_sethi (rtx, rtx, rtx); extern rtx gen_sync_lock_test_and_setsi (rtx, rtx, rtx); static __inline__ rtx gen_sync_lock_test_and_setdi (rtx, rtx, rtx); static __inline__ rtx gen_sync_lock_test_and_setdi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_addqi (rtx, rtx); extern rtx gen_sync_addhi (rtx, rtx); extern rtx gen_sync_addsi (rtx, rtx); static __inline__ rtx gen_sync_adddi (rtx, rtx); static __inline__ rtx gen_sync_adddi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_subqi (rtx, rtx); extern rtx gen_sync_subhi (rtx, rtx); extern rtx gen_sync_subsi (rtx, rtx); static __inline__ rtx gen_sync_subdi (rtx, rtx); static __inline__ rtx gen_sync_subdi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_iorqi (rtx, rtx); extern rtx gen_sync_iorhi (rtx, rtx); extern rtx gen_sync_iorsi (rtx, rtx); static __inline__ rtx gen_sync_iordi (rtx, rtx); static __inline__ rtx gen_sync_iordi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_andqi (rtx, rtx); extern rtx gen_sync_andhi (rtx, rtx); extern rtx gen_sync_andsi (rtx, rtx); static __inline__ rtx gen_sync_anddi (rtx, rtx); static __inline__ rtx gen_sync_anddi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_xorqi (rtx, rtx); extern rtx gen_sync_xorhi (rtx, rtx); extern rtx gen_sync_xorsi (rtx, rtx); static __inline__ rtx gen_sync_xordi (rtx, rtx); static __inline__ rtx gen_sync_xordi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_cmpti (rtx, rtx); static __inline__ rtx gen_cmpti(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_cmpdi (rtx, rtx); extern rtx gen_cmpsi (rtx, rtx); extern rtx gen_cmphi (rtx, rtx); extern rtx gen_cmpqi (rtx, rtx); static __inline__ rtx gen_cmpdi_1_rex64 (rtx, rtx); static __inline__ rtx gen_cmpdi_1_rex64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_cmpsi_1 (rtx, rtx); extern rtx gen_cmpqi_ext_3 (rtx, rtx); extern rtx gen_cmpxf (rtx, rtx); extern rtx gen_cmpdf (rtx, rtx); extern rtx gen_cmpsf (rtx, rtx); extern rtx gen_movsi (rtx, rtx); extern rtx gen_movhi (rtx, rtx); extern rtx gen_movstricthi (rtx, rtx); extern rtx gen_movqi (rtx, rtx); extern rtx gen_reload_outqi (rtx, rtx, rtx); extern rtx gen_movstrictqi (rtx, rtx); extern rtx gen_movdi (rtx, rtx); extern rtx gen_movti (rtx, rtx); extern rtx gen_movsf (rtx, rtx); extern rtx gen_movdf (rtx, rtx); extern rtx gen_movxf (rtx, rtx); static __inline__ rtx gen_movtf (rtx, rtx); static __inline__ rtx gen_movtf(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_zero_extendhisi2 (rtx, rtx); extern rtx gen_zero_extendqihi2 (rtx, rtx); extern rtx gen_zero_extendqisi2 (rtx, rtx); extern rtx gen_zero_extendsidi2 (rtx, rtx); extern rtx gen_extendsidi2 (rtx, rtx); extern rtx gen_extendsfdf2 (rtx, rtx); extern rtx gen_extendsfxf2 (rtx, rtx); extern rtx gen_extenddfxf2 (rtx, rtx); extern rtx gen_truncdfsf2 (rtx, rtx); extern rtx gen_truncdfsf2_with_temp (rtx, rtx, rtx); extern rtx gen_truncxfsf2 (rtx, rtx); extern rtx gen_truncxfdf2 (rtx, rtx); extern rtx gen_fix_truncxfdi2 (rtx, rtx); extern rtx gen_fix_truncsfdi2 (rtx, rtx); extern rtx gen_fix_truncdfdi2 (rtx, rtx); extern rtx gen_fix_truncxfsi2 (rtx, rtx); extern rtx gen_fix_truncsfsi2 (rtx, rtx); extern rtx gen_fix_truncdfsi2 (rtx, rtx); extern rtx gen_fix_truncsfhi2 (rtx, rtx); extern rtx gen_fix_truncdfhi2 (rtx, rtx); extern rtx gen_fix_truncxfhi2 (rtx, rtx); extern rtx gen_floathisf2 (rtx, rtx); extern rtx gen_floatsisf2 (rtx, rtx); extern rtx gen_floatdisf2 (rtx, rtx); extern rtx gen_floathidf2 (rtx, rtx); extern rtx gen_floatsidf2 (rtx, rtx); extern rtx gen_floatdidf2 (rtx, rtx); extern rtx gen_floatunssisf2 (rtx, rtx); static __inline__ rtx gen_floatunsdisf2 (rtx, rtx); static __inline__ rtx gen_floatunsdisf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_floatunsdidf2 (rtx, rtx); static __inline__ rtx gen_floatunsdidf2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_addti3 (rtx, rtx, rtx); static __inline__ rtx gen_addti3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_adddi3 (rtx, rtx, rtx); extern rtx gen_addsi3 (rtx, rtx, rtx); extern rtx gen_addhi3 (rtx, rtx, rtx); extern rtx gen_addqi3 (rtx, rtx, rtx); extern rtx gen_addxf3 (rtx, rtx, rtx); extern rtx gen_adddf3 (rtx, rtx, rtx); extern rtx gen_addsf3 (rtx, rtx, rtx); static __inline__ rtx gen_subti3 (rtx, rtx, rtx); static __inline__ rtx gen_subti3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_subdi3 (rtx, rtx, rtx); extern rtx gen_subsi3 (rtx, rtx, rtx); extern rtx gen_subhi3 (rtx, rtx, rtx); extern rtx gen_subqi3 (rtx, rtx, rtx); extern rtx gen_subxf3 (rtx, rtx, rtx); extern rtx gen_subdf3 (rtx, rtx, rtx); extern rtx gen_subsf3 (rtx, rtx, rtx); static __inline__ rtx gen_muldi3 (rtx, rtx, rtx); static __inline__ rtx gen_muldi3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_mulsi3 (rtx, rtx, rtx); extern rtx gen_mulhi3 (rtx, rtx, rtx); extern rtx gen_mulqi3 (rtx, rtx, rtx); extern rtx gen_umulqihi3 (rtx, rtx, rtx); extern rtx gen_mulqihi3 (rtx, rtx, rtx); static __inline__ rtx gen_umulditi3 (rtx, rtx, rtx); static __inline__ rtx gen_umulditi3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_umulsidi3 (rtx, rtx, rtx); static __inline__ rtx gen_mulditi3 (rtx, rtx, rtx); static __inline__ rtx gen_mulditi3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_mulsidi3 (rtx, rtx, rtx); static __inline__ rtx gen_umuldi3_highpart (rtx, rtx, rtx); static __inline__ rtx gen_umuldi3_highpart(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_umulsi3_highpart (rtx, rtx, rtx); static __inline__ rtx gen_smuldi3_highpart (rtx, rtx, rtx); static __inline__ rtx gen_smuldi3_highpart(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_smulsi3_highpart (rtx, rtx, rtx); extern rtx gen_mulxf3 (rtx, rtx, rtx); extern rtx gen_muldf3 (rtx, rtx, rtx); extern rtx gen_mulsf3 (rtx, rtx, rtx); extern rtx gen_divxf3 (rtx, rtx, rtx); extern rtx gen_divdf3 (rtx, rtx, rtx); extern rtx gen_divsf3 (rtx, rtx, rtx); static __inline__ rtx gen_divmoddi4 (rtx, rtx, rtx, rtx); static __inline__ rtx gen_divmoddi4(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_divmodsi4 (rtx, rtx, rtx, rtx); extern rtx gen_udivmodhi4 (rtx, rtx, rtx, rtx); extern rtx gen_testsi_ccno_1 (rtx, rtx); extern rtx gen_testqi_ccz_1 (rtx, rtx); extern rtx gen_testqi_ext_ccno_0 (rtx, rtx); static __inline__ rtx gen_anddi3 (rtx, rtx, rtx); static __inline__ rtx gen_anddi3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_andsi3 (rtx, rtx, rtx); extern rtx gen_andhi3 (rtx, rtx, rtx); extern rtx gen_andqi3 (rtx, rtx, rtx); static __inline__ rtx gen_iordi3 (rtx, rtx, rtx); static __inline__ rtx gen_iordi3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_iorsi3 (rtx, rtx, rtx); extern rtx gen_iorhi3 (rtx, rtx, rtx); extern rtx gen_iorqi3 (rtx, rtx, rtx); static __inline__ rtx gen_xordi3 (rtx, rtx, rtx); static __inline__ rtx gen_xordi3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_xorsi3 (rtx, rtx, rtx); extern rtx gen_xorhi3 (rtx, rtx, rtx); extern rtx gen_xorqi3 (rtx, rtx, rtx); extern rtx gen_xorqi_cc_ext_1 (rtx, rtx, rtx); static __inline__ rtx gen_negti2 (rtx, rtx); static __inline__ rtx gen_negti2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_negdi2 (rtx, rtx); extern rtx gen_negsi2 (rtx, rtx); extern rtx gen_neghi2 (rtx, rtx); extern rtx gen_negqi2 (rtx, rtx); extern rtx gen_negsf2 (rtx, rtx); extern rtx gen_abssf2 (rtx, rtx); extern rtx gen_copysignsf3 (rtx, rtx, rtx); extern rtx gen_negdf2 (rtx, rtx); extern rtx gen_absdf2 (rtx, rtx); extern rtx gen_copysigndf3 (rtx, rtx, rtx); extern rtx gen_negxf2 (rtx, rtx); extern rtx gen_absxf2 (rtx, rtx); static __inline__ rtx gen_one_cmpldi2 (rtx, rtx); static __inline__ rtx gen_one_cmpldi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_one_cmplsi2 (rtx, rtx); extern rtx gen_one_cmplhi2 (rtx, rtx); extern rtx gen_one_cmplqi2 (rtx, rtx); static __inline__ rtx gen_ashlti3 (rtx, rtx, rtx); static __inline__ rtx gen_ashlti3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } static __inline__ rtx gen_x86_64_shift_adj (rtx, rtx, rtx, rtx); static __inline__ rtx gen_x86_64_shift_adj(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_ashldi3 (rtx, rtx, rtx); extern rtx gen_x86_shift_adj_1 (rtx, rtx, rtx, rtx); extern rtx gen_x86_shift_adj_2 (rtx, rtx, rtx); extern rtx gen_ashlsi3 (rtx, rtx, rtx); extern rtx gen_ashlhi3 (rtx, rtx, rtx); extern rtx gen_ashlqi3 (rtx, rtx, rtx); static __inline__ rtx gen_ashrti3 (rtx, rtx, rtx); static __inline__ rtx gen_ashrti3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_ashrdi3 (rtx, rtx, rtx); extern rtx gen_x86_shift_adj_3 (rtx, rtx, rtx); extern rtx gen_ashrsi3 (rtx, rtx, rtx); extern rtx gen_ashrhi3 (rtx, rtx, rtx); extern rtx gen_ashrqi3 (rtx, rtx, rtx); static __inline__ rtx gen_lshrti3 (rtx, rtx, rtx); static __inline__ rtx gen_lshrti3(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__))) { return 0; } extern rtx gen_lshrdi3 (rtx, rtx, rtx); extern rtx gen_lshrsi3 (rtx, rtx, rtx); extern rtx gen_lshrhi3 (rtx, rtx, rtx); extern rtx gen_lshrqi3 (rtx, rtx, rtx); extern rtx gen_rotldi3 (rtx, rtx, rtx); extern rtx gen_rotlsi3 (rtx, rtx, rtx); extern rtx gen_rotlhi3 (rtx, rtx, rtx); extern rtx gen_rotlqi3 (rtx, rtx, rtx); extern rtx gen_rotrdi3 (rtx, rtx, rtx); extern rtx gen_rotrsi3 (rtx, rtx, rtx); extern rtx gen_rotrhi3 (rtx, rtx, rtx); extern rtx gen_rotrqi3 (rtx, rtx, rtx); extern rtx gen_extv (rtx, rtx, rtx, rtx); extern rtx gen_extzv (rtx, rtx, rtx, rtx); extern rtx gen_insv (rtx, rtx, rtx, rtx); extern rtx gen_seq (rtx); extern rtx gen_sne (rtx); extern rtx gen_sgt (rtx); extern rtx gen_sgtu (rtx); extern rtx gen_slt (rtx); extern rtx gen_sltu (rtx); extern rtx gen_sge (rtx); extern rtx gen_sgeu (rtx); extern rtx gen_sle (rtx); extern rtx gen_sleu (rtx); extern rtx gen_sunordered (rtx); extern rtx gen_sordered (rtx); extern rtx gen_suneq (rtx); extern rtx gen_sunge (rtx); extern rtx gen_sungt (rtx); extern rtx gen_sunle (rtx); extern rtx gen_sunlt (rtx); extern rtx gen_sltgt (rtx); extern rtx gen_beq (rtx); extern rtx gen_bne (rtx); extern rtx gen_bgt (rtx); extern rtx gen_bgtu (rtx); extern rtx gen_blt (rtx); extern rtx gen_bltu (rtx); extern rtx gen_bge (rtx); extern rtx gen_bgeu (rtx); extern rtx gen_ble (rtx); extern rtx gen_bleu (rtx); extern rtx gen_bunordered (rtx); extern rtx gen_bordered (rtx); extern rtx gen_buneq (rtx); extern rtx gen_bunge (rtx); extern rtx gen_bungt (rtx); extern rtx gen_bunle (rtx); extern rtx gen_bunlt (rtx); extern rtx gen_bltgt (rtx); extern rtx gen_indirect_jump (rtx); extern rtx gen_tablejump (rtx, rtx); extern rtx gen_call_pop (rtx, rtx, rtx, rtx); extern rtx gen_call (rtx, rtx, rtx); extern rtx gen_sibcall (rtx, rtx, rtx); extern rtx gen_call_value_pop (rtx, rtx, rtx, rtx, rtx); extern rtx gen_call_value (rtx, rtx, rtx, rtx); extern rtx gen_sibcall_value (rtx, rtx, rtx, rtx); extern rtx gen_untyped_call (rtx, rtx, rtx); extern rtx gen_return (void); extern rtx gen_prologue (void); extern rtx gen_epilogue (void); extern rtx gen_sibcall_epilogue (void); extern rtx gen_eh_return (rtx); extern rtx gen_ffssi2 (rtx, rtx); static __inline__ rtx gen_ffsdi2 (rtx, rtx); static __inline__ rtx gen_ffsdi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_clzsi2 (rtx, rtx); static __inline__ rtx gen_clzdi2 (rtx, rtx); static __inline__ rtx gen_clzdi2(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_tls_global_dynamic_32 (rtx, rtx); extern rtx gen_tls_global_dynamic_64 (rtx, rtx); extern rtx gen_tls_local_dynamic_base_32 (rtx); extern rtx gen_tls_local_dynamic_base_64 (rtx); extern rtx gen_tls_dynamic_gnu2_32 (rtx, rtx, rtx); static __inline__ rtx gen_tls_dynamic_gnu2_64 (rtx, rtx); static __inline__ rtx gen_tls_dynamic_gnu2_64(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__))) { return 0; } extern rtx gen_sqrtsf2 (rtx, rtx); extern rtx gen_sqrtdf2 (rtx, rtx); extern rtx gen_fmodsf3 (rtx, rtx, rtx); extern rtx gen_fmoddf3 (rtx, rtx, rtx); extern rtx gen_fmodxf3 (rtx, rtx, rtx); extern rtx gen_dremsf3 (rtx, rtx, rtx); extern rtx gen_dremdf3 (rtx, rtx, rtx); extern rtx gen_dremxf3 (rtx, rtx, rtx); extern rtx gen_tandf2 (rtx, rtx); extern rtx gen_tansf2 (rtx, rtx); extern rtx gen_tanxf2 (rtx, rtx); extern rtx gen_atan2df3 (rtx, rtx, rtx); extern rtx gen_atandf2 (rtx, rtx); extern rtx gen_atan2sf3 (rtx, rtx, rtx); extern rtx gen_atansf2 (rtx, rtx); extern rtx gen_atan2xf3 (rtx, rtx, rtx); extern rtx gen_atanxf2 (rtx, rtx); extern rtx gen_asindf2 (rtx, rtx); extern rtx gen_asinsf2 (rtx, rtx); extern rtx gen_asinxf2 (rtx, rtx); extern rtx gen_acosdf2 (rtx, rtx); extern rtx gen_acossf2 (rtx, rtx); extern rtx gen_acosxf2 (rtx, rtx); extern rtx gen_logsf2 (rtx, rtx); extern rtx gen_logdf2 (rtx, rtx); extern rtx gen_logxf2 (rtx, rtx); extern rtx gen_log10sf2 (rtx, rtx); extern rtx gen_log10df2 (rtx, rtx); extern rtx gen_log10xf2 (rtx, rtx); extern rtx gen_log2sf2 (rtx, rtx); extern rtx gen_log2df2 (rtx, rtx); extern rtx gen_log2xf2 (rtx, rtx); extern rtx gen_log1psf2 (rtx, rtx); extern rtx gen_log1pdf2 (rtx, rtx); extern rtx gen_log1pxf2 (rtx, rtx); extern rtx gen_logbsf2 (rtx, rtx); extern rtx gen_logbdf2 (rtx, rtx); extern rtx gen_logbxf2 (rtx, rtx); extern rtx gen_ilogbsi2 (rtx, rtx, rtx, rtx); extern rtx gen_expsf2 (rtx, rtx); extern rtx gen_expdf2 (rtx, rtx); extern rtx gen_expxf2 (rtx, rtx); extern rtx gen_exp10sf2 (rtx, rtx); extern rtx gen_exp10df2 (rtx, rtx); extern rtx gen_exp10xf2 (rtx, rtx); extern rtx gen_exp2sf2 (rtx, rtx); extern rtx gen_exp2df2 (rtx, rtx); extern rtx gen_exp2xf2 (rtx, rtx); extern rtx gen_expm1df2 (rtx, rtx); extern rtx gen_expm1sf2 (rtx, rtx); extern rtx gen_expm1xf2 (rtx, rtx); extern rtx gen_ldexpdf3 (rtx, rtx, rtx); extern rtx gen_ldexpsf3 (rtx, rtx, rtx); extern rtx gen_ldexpxf3 (rtx, rtx, rtx); extern rtx gen_rintdf2 (rtx, rtx); extern rtx gen_rintsf2 (rtx, rtx); extern rtx gen_rintxf2 (rtx, rtx); extern rtx gen_lrinthi2 (rtx, rtx); extern rtx gen_lrintsi2 (rtx, rtx); extern rtx gen_lrintdi2 (rtx, rtx); extern rtx gen_floorxf2 (rtx, rtx); extern rtx gen_floordf2 (rtx, rtx); extern rtx gen_floorsf2 (rtx, rtx); extern rtx gen_lfloorhi2 (rtx, rtx); extern rtx gen_lfloorsi2 (rtx, rtx); extern rtx gen_lfloordi2 (rtx, rtx); extern rtx gen_ceilxf2 (rtx, rtx); extern rtx gen_ceildf2 (rtx, rtx); extern rtx gen_ceilsf2 (rtx, rtx); extern rtx gen_lceilhi2 (rtx, rtx); extern rtx gen_lceilsi2 (rtx, rtx); extern rtx gen_lceildi2 (rtx, rtx); extern rtx gen_btruncxf2 (rtx, rtx); extern rtx gen_btruncdf2 (rtx, rtx); extern rtx gen_btruncsf2 (rtx, rtx); extern rtx gen_nearbyintxf2 (rtx, rtx); extern rtx gen_nearbyintdf2 (rtx, rtx); extern rtx gen_nearbyintsf2 (rtx, rtx); extern rtx gen_movmemsi (rtx, rtx, rtx, rtx); static __inline__ rtx gen_movmemdi (rtx, rtx, rtx, rtx); static __inline__ rtx gen_movmemdi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_strmov (rtx, rtx, rtx, rtx); extern rtx gen_strmov_singleop (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_rep_mov (rtx, rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_setmemsi (rtx, rtx, rtx, rtx); static __inline__ rtx gen_setmemdi (rtx, rtx, rtx, rtx); static __inline__ rtx gen_setmemdi(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_strset (rtx, rtx, rtx); extern rtx gen_strset_singleop (rtx, rtx, rtx, rtx); extern rtx gen_rep_stos (rtx, rtx, rtx, rtx, rtx); extern rtx gen_cmpstrnsi (rtx, rtx, rtx, rtx, rtx); extern rtx gen_cmpintqi (rtx); extern rtx gen_cmpstrnqi_nz_1 (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_cmpstrnqi_1 (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_strlensi (rtx, rtx, rtx, rtx); extern rtx gen_strlendi (rtx, rtx, rtx, rtx); extern rtx gen_strlenqi_1 (rtx, rtx, rtx); static __inline__ rtx gen_movdicc (rtx, rtx, rtx, rtx); static __inline__ rtx gen_movdicc(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_movsicc (rtx, rtx, rtx, rtx); extern rtx gen_movhicc (rtx, rtx, rtx, rtx); extern rtx gen_movqicc (rtx, rtx, rtx, rtx); extern rtx gen_movsfcc (rtx, rtx, rtx, rtx); extern rtx gen_movdfcc (rtx, rtx, rtx, rtx); extern rtx gen_movxfcc (rtx, rtx, rtx, rtx); extern rtx gen_addqicc (rtx, rtx, rtx, rtx); extern rtx gen_addhicc (rtx, rtx, rtx, rtx); extern rtx gen_addsicc (rtx, rtx, rtx, rtx); static __inline__ rtx gen_adddicc (rtx, rtx, rtx, rtx); static __inline__ rtx gen_adddicc(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_allocate_stack_worker (rtx); extern rtx gen_allocate_stack_worker_postreload (rtx); extern rtx gen_allocate_stack_worker_rex64_postreload (rtx); extern rtx gen_allocate_stack (rtx, rtx); extern rtx gen_builtin_setjmp_receiver (rtx); static __inline__ rtx gen_sse_prologue_save (rtx, rtx, rtx, rtx); static __inline__ rtx gen_sse_prologue_save(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_prefetch (rtx, rtx, rtx); extern rtx gen_stack_protect_set (rtx, rtx); extern rtx gen_stack_protect_test (rtx, rtx, rtx); extern rtx gen_movv16qi (rtx, rtx); extern rtx gen_movv8hi (rtx, rtx); extern rtx gen_movv4si (rtx, rtx); extern rtx gen_movv2di (rtx, rtx); extern rtx gen_movv4sf (rtx, rtx); extern rtx gen_movv2df (rtx, rtx); extern rtx gen_pushv16qi1 (rtx); extern rtx gen_pushv8hi1 (rtx); extern rtx gen_pushv4si1 (rtx); extern rtx gen_pushv2di1 (rtx); extern rtx gen_pushv4sf1 (rtx); extern rtx gen_pushv2df1 (rtx); extern rtx gen_movmisalignv16qi (rtx, rtx); extern rtx gen_movmisalignv8hi (rtx, rtx); extern rtx gen_movmisalignv4si (rtx, rtx); extern rtx gen_movmisalignv2di (rtx, rtx); extern rtx gen_movmisalignv4sf (rtx, rtx); extern rtx gen_movmisalignv2df (rtx, rtx); extern rtx gen_negv4sf2 (rtx, rtx); extern rtx gen_absv4sf2 (rtx, rtx); extern rtx gen_addv4sf3 (rtx, rtx, rtx); extern rtx gen_subv4sf3 (rtx, rtx, rtx); extern rtx gen_mulv4sf3 (rtx, rtx, rtx); extern rtx gen_divv4sf3 (rtx, rtx, rtx); extern rtx gen_smaxv4sf3 (rtx, rtx, rtx); extern rtx gen_sminv4sf3 (rtx, rtx, rtx); extern rtx gen_reduc_splus_v4sf (rtx, rtx); extern rtx gen_reduc_smax_v4sf (rtx, rtx); extern rtx gen_reduc_smin_v4sf (rtx, rtx); extern rtx gen_vcondv4sf (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_andv4sf3 (rtx, rtx, rtx); extern rtx gen_iorv4sf3 (rtx, rtx, rtx); extern rtx gen_xorv4sf3 (rtx, rtx, rtx); extern rtx gen_sse_shufps (rtx, rtx, rtx, rtx); extern rtx gen_vec_initv4sf (rtx, rtx); extern rtx gen_vec_setv4sf (rtx, rtx, rtx); extern rtx gen_vec_extractv4sf (rtx, rtx, rtx); extern rtx gen_negv2df2 (rtx, rtx); extern rtx gen_absv2df2 (rtx, rtx); extern rtx gen_addv2df3 (rtx, rtx, rtx); extern rtx gen_subv2df3 (rtx, rtx, rtx); extern rtx gen_mulv2df3 (rtx, rtx, rtx); extern rtx gen_divv2df3 (rtx, rtx, rtx); extern rtx gen_smaxv2df3 (rtx, rtx, rtx); extern rtx gen_sminv2df3 (rtx, rtx, rtx); extern rtx gen_reduc_splus_v2df (rtx, rtx); extern rtx gen_vcondv2df (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_andv2df3 (rtx, rtx, rtx); extern rtx gen_iorv2df3 (rtx, rtx, rtx); extern rtx gen_xorv2df3 (rtx, rtx, rtx); extern rtx gen_sse2_cvtpd2dq (rtx, rtx); extern rtx gen_sse2_cvttpd2dq (rtx, rtx); extern rtx gen_sse2_cvtpd2ps (rtx, rtx); extern rtx gen_sse2_shufpd (rtx, rtx, rtx, rtx); extern rtx gen_vec_setv2df (rtx, rtx, rtx); extern rtx gen_vec_extractv2df (rtx, rtx, rtx); extern rtx gen_vec_initv2df (rtx, rtx); extern rtx gen_negv16qi2 (rtx, rtx); extern rtx gen_negv8hi2 (rtx, rtx); extern rtx gen_negv4si2 (rtx, rtx); extern rtx gen_negv2di2 (rtx, rtx); extern rtx gen_addv16qi3 (rtx, rtx, rtx); extern rtx gen_addv8hi3 (rtx, rtx, rtx); extern rtx gen_addv4si3 (rtx, rtx, rtx); extern rtx gen_addv2di3 (rtx, rtx, rtx); extern rtx gen_subv16qi3 (rtx, rtx, rtx); extern rtx gen_subv8hi3 (rtx, rtx, rtx); extern rtx gen_subv4si3 (rtx, rtx, rtx); extern rtx gen_subv2di3 (rtx, rtx, rtx); extern rtx gen_mulv16qi3 (rtx, rtx, rtx); extern rtx gen_mulv8hi3 (rtx, rtx, rtx); extern rtx gen_mulv4si3 (rtx, rtx, rtx); extern rtx gen_mulv2di3 (rtx, rtx, rtx); extern rtx gen_sdot_prodv8hi (rtx, rtx, rtx, rtx); extern rtx gen_udot_prodv4si (rtx, rtx, rtx, rtx); extern rtx gen_vec_shl_v16qi (rtx, rtx, rtx); extern rtx gen_vec_shl_v8hi (rtx, rtx, rtx); extern rtx gen_vec_shl_v4si (rtx, rtx, rtx); extern rtx gen_vec_shl_v2di (rtx, rtx, rtx); extern rtx gen_vec_shr_v16qi (rtx, rtx, rtx); extern rtx gen_vec_shr_v8hi (rtx, rtx, rtx); extern rtx gen_vec_shr_v4si (rtx, rtx, rtx); extern rtx gen_vec_shr_v2di (rtx, rtx, rtx); extern rtx gen_umaxv16qi3 (rtx, rtx, rtx); extern rtx gen_smaxv8hi3 (rtx, rtx, rtx); extern rtx gen_umaxv8hi3 (rtx, rtx, rtx); extern rtx gen_smaxv16qi3 (rtx, rtx, rtx); extern rtx gen_smaxv4si3 (rtx, rtx, rtx); extern rtx gen_umaxv4si3 (rtx, rtx, rtx); extern rtx gen_uminv16qi3 (rtx, rtx, rtx); extern rtx gen_sminv8hi3 (rtx, rtx, rtx); extern rtx gen_sminv16qi3 (rtx, rtx, rtx); extern rtx gen_sminv4si3 (rtx, rtx, rtx); extern rtx gen_uminv8hi3 (rtx, rtx, rtx); extern rtx gen_uminv4si3 (rtx, rtx, rtx); extern rtx gen_vcondv16qi (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_vcondv8hi (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_vcondv4si (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_vconduv16qi (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_vconduv8hi (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_vconduv4si (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx gen_one_cmplv16qi2 (rtx, rtx); extern rtx gen_one_cmplv8hi2 (rtx, rtx); extern rtx gen_one_cmplv4si2 (rtx, rtx); extern rtx gen_one_cmplv2di2 (rtx, rtx); extern rtx gen_andv16qi3 (rtx, rtx, rtx); extern rtx gen_andv8hi3 (rtx, rtx, rtx); extern rtx gen_andv4si3 (rtx, rtx, rtx); extern rtx gen_andv2di3 (rtx, rtx, rtx); extern rtx gen_iorv16qi3 (rtx, rtx, rtx); extern rtx gen_iorv8hi3 (rtx, rtx, rtx); extern rtx gen_iorv4si3 (rtx, rtx, rtx); extern rtx gen_iorv2di3 (rtx, rtx, rtx); extern rtx gen_xorv16qi3 (rtx, rtx, rtx); extern rtx gen_xorv8hi3 (rtx, rtx, rtx); extern rtx gen_xorv4si3 (rtx, rtx, rtx); extern rtx gen_xorv2di3 (rtx, rtx, rtx); extern rtx gen_sse2_pinsrw (rtx, rtx, rtx, rtx); extern rtx gen_sse2_pshufd (rtx, rtx, rtx); extern rtx gen_sse2_pshuflw (rtx, rtx, rtx); extern rtx gen_sse2_pshufhw (rtx, rtx, rtx); extern rtx gen_sse2_loadd (rtx, rtx); extern rtx gen_sse_storeq (rtx, rtx); extern rtx gen_vec_setv2di (rtx, rtx, rtx); extern rtx gen_vec_extractv2di (rtx, rtx, rtx); extern rtx gen_vec_initv2di (rtx, rtx); extern rtx gen_vec_setv4si (rtx, rtx, rtx); extern rtx gen_vec_extractv4si (rtx, rtx, rtx); extern rtx gen_vec_initv4si (rtx, rtx); extern rtx gen_vec_setv8hi (rtx, rtx, rtx); extern rtx gen_vec_extractv8hi (rtx, rtx, rtx); extern rtx gen_vec_initv8hi (rtx, rtx); extern rtx gen_vec_setv16qi (rtx, rtx, rtx); extern rtx gen_vec_extractv16qi (rtx, rtx, rtx); extern rtx gen_vec_initv16qi (rtx, rtx); extern rtx gen_sse2_maskmovdqu (rtx, rtx, rtx); extern rtx gen_sse_sfence (void); extern rtx gen_sse2_mfence (void); extern rtx gen_sse2_lfence (void); extern rtx gen_movv8qi (rtx, rtx); extern rtx gen_movv4hi (rtx, rtx); extern rtx gen_movv2si (rtx, rtx); extern rtx gen_movv2sf (rtx, rtx); extern rtx gen_pushv8qi1 (rtx); extern rtx gen_pushv4hi1 (rtx); extern rtx gen_pushv2si1 (rtx); extern rtx gen_pushv2sf1 (rtx); extern rtx gen_movmisalignv8qi (rtx, rtx); extern rtx gen_movmisalignv4hi (rtx, rtx); extern rtx gen_movmisalignv2si (rtx, rtx); extern rtx gen_movmisalignv2sf (rtx, rtx); extern rtx gen_mmx_subrv2sf3 (rtx, rtx, rtx); extern rtx gen_vec_setv2sf (rtx, rtx, rtx); extern rtx gen_vec_extractv2sf (rtx, rtx, rtx); extern rtx gen_vec_initv2sf (rtx, rtx); extern rtx gen_mmx_pinsrw (rtx, rtx, rtx, rtx); extern rtx gen_mmx_pshufw (rtx, rtx, rtx); extern rtx gen_vec_setv2si (rtx, rtx, rtx); extern rtx gen_vec_extractv2si (rtx, rtx, rtx); extern rtx gen_vec_initv2si (rtx, rtx); extern rtx gen_vec_setv4hi (rtx, rtx, rtx); extern rtx gen_vec_extractv4hi (rtx, rtx, rtx); extern rtx gen_vec_initv4hi (rtx, rtx); extern rtx gen_vec_setv8qi (rtx, rtx, rtx); extern rtx gen_vec_extractv8qi (rtx, rtx, rtx); extern rtx gen_vec_initv8qi (rtx, rtx); extern rtx gen_mmx_maskmovq (rtx, rtx, rtx); extern rtx gen_sync_compare_and_swapqi (rtx, rtx, rtx, rtx); extern rtx gen_sync_compare_and_swaphi (rtx, rtx, rtx, rtx); extern rtx gen_sync_compare_and_swapsi (rtx, rtx, rtx, rtx); extern rtx gen_sync_compare_and_swapdi (rtx, rtx, rtx, rtx); static __inline__ rtx gen_sync_compare_and_swapti (rtx, rtx, rtx, rtx); static __inline__ rtx gen_sync_compare_and_swapti(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } extern rtx gen_sync_compare_and_swap_ccqi (rtx, rtx, rtx, rtx); extern rtx gen_sync_compare_and_swap_cchi (rtx, rtx, rtx, rtx); extern rtx gen_sync_compare_and_swap_ccsi (rtx, rtx, rtx, rtx); extern rtx gen_sync_compare_and_swap_ccdi (rtx, rtx, rtx, rtx); static __inline__ rtx gen_sync_compare_and_swap_ccti (rtx, rtx, rtx, rtx); static __inline__ rtx gen_sync_compare_and_swap_ccti(rtx a __attribute__ ((__unused__)), rtx b __attribute__ ((__unused__)), rtx c __attribute__ ((__unused__)), rtx d __attribute__ ((__unused__))) { return 0; } # 21 "./tm.h" 2 # 43 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/tree.h" 1 # 24 "../../GCC/gcc/tree.h" # 1 "../../GCC/gcc/../include/hashtab.h" 1 # 46 "../../GCC/gcc/../include/hashtab.h" typedef unsigned int hashval_t; typedef hashval_t (*htab_hash) (const void *); typedef int (*htab_eq) (const void *, const void *); typedef void (*htab_del) (void *); typedef int (*htab_trav) (void **, void *); typedef void *(*htab_alloc) (size_t, size_t); typedef void (*htab_free) (void *); typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t); typedef void (*htab_free_with_arg) (void *, void *); # 99 "../../GCC/gcc/../include/hashtab.h" struct htab { htab_hash hash_f; htab_eq eq_f; htab_del del_f; void ** entries; size_t size; size_t n_elements; size_t n_deleted; unsigned int searches; unsigned int collisions; htab_alloc alloc_f; htab_free free_f; void * alloc_arg; htab_alloc_with_arg alloc_with_arg_f; htab_free_with_arg free_with_arg_f; unsigned int size_prime_index; }; typedef struct htab *htab_t; enum insert_option {NO_INSERT, INSERT}; extern htab_t htab_create_alloc (size_t, htab_hash, htab_eq, htab_del, htab_alloc, htab_free); extern htab_t htab_create_alloc_ex (size_t, htab_hash, htab_eq, htab_del, void *, htab_alloc_with_arg, htab_free_with_arg); extern htab_t htab_create (size_t, htab_hash, htab_eq, htab_del); extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del); extern void htab_set_functions_ex (htab_t, htab_hash, htab_eq, htab_del, void *, htab_alloc_with_arg, htab_free_with_arg); extern void htab_delete (htab_t); extern void htab_empty (htab_t); extern void * htab_find (htab_t, const void *); extern void ** htab_find_slot (htab_t, const void *, enum insert_option); extern void * htab_find_with_hash (htab_t, const void *, hashval_t); extern void ** htab_find_slot_with_hash (htab_t, const void *, hashval_t, enum insert_option); extern void htab_clear_slot (htab_t, void **); extern void htab_remove_elt (htab_t, void *); extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t); extern void htab_traverse (htab_t, htab_trav, void *); extern void htab_traverse_noresize (htab_t, htab_trav, void *); extern size_t htab_size (htab_t); extern size_t htab_elements (htab_t); extern double htab_collisions (htab_t); extern htab_hash htab_hash_pointer; extern htab_eq htab_eq_pointer; extern hashval_t htab_hash_string (const void *); extern hashval_t iterative_hash (const void *, size_t, hashval_t); # 25 "../../GCC/gcc/tree.h" 2 # 1 "../../GCC/gcc/machmode.h" 1 # 25 "../../GCC/gcc/machmode.h" # 1 "./insn-modes.h" 1 enum machine_mode { VOIDmode, BLKmode, CCmode, CCGCmode, CCGOCmode, CCNOmode, CCZmode, CCFPmode, CCFPUmode, BImode, QImode, HImode, SImode, DImode, TImode, SFmode, DFmode, XFmode, TFmode, SDmode, DDmode, TDmode, CQImode, CHImode, CSImode, CDImode, CTImode, SCmode, DCmode, XCmode, TCmode, V4QImode, V2HImode, V8QImode, V4HImode, V2SImode, V16QImode, V8HImode, V4SImode, V2DImode, V32QImode, V16HImode, V8SImode, V4DImode, V2SFmode, V4SFmode, V2DFmode, V8SFmode, V4DFmode, MAX_MACHINE_MODE, MIN_MODE_RANDOM = VOIDmode, MAX_MODE_RANDOM = BLKmode, MIN_MODE_CC = CCmode, MAX_MODE_CC = CCFPUmode, MIN_MODE_INT = QImode, MAX_MODE_INT = TImode, MIN_MODE_PARTIAL_INT = VOIDmode, MAX_MODE_PARTIAL_INT = VOIDmode, MIN_MODE_FLOAT = SFmode, MAX_MODE_FLOAT = TFmode, MIN_MODE_DECIMAL_FLOAT = SDmode, MAX_MODE_DECIMAL_FLOAT = TDmode, MIN_MODE_COMPLEX_INT = CQImode, MAX_MODE_COMPLEX_INT = CTImode, MIN_MODE_COMPLEX_FLOAT = SCmode, MAX_MODE_COMPLEX_FLOAT = TCmode, MIN_MODE_VECTOR_INT = V4QImode, MAX_MODE_VECTOR_INT = V4DImode, MIN_MODE_VECTOR_FLOAT = V2SFmode, MAX_MODE_VECTOR_FLOAT = V4DFmode, NUM_MACHINE_MODES = MAX_MACHINE_MODE }; # 26 "../../GCC/gcc/machmode.h" 2 extern const char * const mode_name[NUM_MACHINE_MODES]; # 1 "../../GCC/gcc/mode-classes.def" 1 # 35 "../../GCC/gcc/machmode.h" 2 enum mode_class { MODE_RANDOM, MODE_CC, MODE_INT, MODE_PARTIAL_INT, MODE_FLOAT, MODE_DECIMAL_FLOAT, MODE_COMPLEX_INT, MODE_COMPLEX_FLOAT, MODE_VECTOR_INT, MODE_VECTOR_FLOAT, MAX_MODE_CLASS }; extern const unsigned char mode_class[NUM_MACHINE_MODES]; # 93 "../../GCC/gcc/machmode.h" extern unsigned char mode_size[NUM_MACHINE_MODES]; extern const unsigned short mode_precision[NUM_MACHINE_MODES]; extern const unsigned long mode_mask_array[NUM_MACHINE_MODES]; extern const unsigned char mode_inner[NUM_MACHINE_MODES]; # 122 "../../GCC/gcc/machmode.h" extern const unsigned char mode_nunits[NUM_MACHINE_MODES]; extern const unsigned char mode_wider[NUM_MACHINE_MODES]; extern const unsigned char mode_2xwider[NUM_MACHINE_MODES]; extern enum machine_mode mode_for_size (unsigned int, enum mode_class, int); extern enum machine_mode smallest_mode_for_size (unsigned int, enum mode_class); extern enum machine_mode int_mode_for_mode (enum machine_mode); extern enum machine_mode get_best_mode (int, int, unsigned int, enum machine_mode, int); extern unsigned char mode_base_align[NUM_MACHINE_MODES]; extern unsigned get_mode_alignment (enum machine_mode); extern const unsigned char class_narrowest_mode[MAX_MODE_CLASS]; extern enum machine_mode byte_mode; extern enum machine_mode word_mode; extern enum machine_mode ptr_mode; extern void init_adjust_machine_modes (void); # 26 "../../GCC/gcc/tree.h" 2 # 1 "../../GCC/gcc/input.h" 1 # 25 "../../GCC/gcc/input.h" # 1 "../../GCC/gcc/../libcpp/include/line-map.h" 1 # 31 "../../GCC/gcc/../libcpp/include/line-map.h" enum lc_reason {LC_ENTER = 0, LC_LEAVE, LC_RENAME}; typedef unsigned int source_location; # 50 "../../GCC/gcc/../libcpp/include/line-map.h" struct line_map { const char *to_file; unsigned int to_line; source_location start_location; int included_from; __extension__ enum lc_reason reason : 8; unsigned char sysp; unsigned int column_bits : 8; }; struct line_maps { struct line_map *maps; unsigned int allocated; unsigned int used; unsigned int cache; int last_listed; unsigned int depth; unsigned char trace_includes; source_location highest_location; source_location highest_line; unsigned int max_column_hint; }; extern void linemap_init (struct line_maps *); extern void linemap_free (struct line_maps *); extern void linemap_check_files_exited (struct line_maps *); extern source_location linemap_line_start (struct line_maps *set, unsigned int to_line, unsigned int max_column_hint); # 124 "../../GCC/gcc/../libcpp/include/line-map.h" extern const struct line_map *linemap_add (struct line_maps *, enum lc_reason, unsigned int sysp, const char *to_file, unsigned int to_line); extern const struct line_map *linemap_lookup (struct line_maps *, source_location); extern void linemap_print_containing_files (struct line_maps *, const struct line_map *); # 178 "../../GCC/gcc/../libcpp/include/line-map.h" extern source_location linemap_position_for_column (struct line_maps *set, unsigned int to_column); # 26 "../../GCC/gcc/input.h" 2 extern struct line_maps line_table; # 52 "../../GCC/gcc/input.h" struct location_s { const char *file; int line; }; typedef struct location_s expanded_location; typedef struct location_s location_t; typedef location_t *source_locus; extern location_t unknown_location; struct file_stack { struct file_stack *next; location_t location; }; extern const char *main_input_filename; extern location_t input_location; extern void push_srcloc (const char *name, int line); extern void pop_srcloc (void); extern void restore_input_file_stack (int); # 97 "../../GCC/gcc/input.h" extern struct file_stack *input_file_stack; extern int input_file_stack_tick; # 27 "../../GCC/gcc/tree.h" 2 # 1 "../../GCC/gcc/statistics.h" 1 # 28 "../../GCC/gcc/tree.h" 2 # 1 "../../GCC/gcc/vec.h" 1 # 411 "../../GCC/gcc/vec.h" extern void *vec_gc_p_reserve (void *, int ); extern void *vec_gc_p_reserve_exact (void *, int ); extern void *vec_gc_o_reserve (void *, int, size_t, size_t ); extern void *vec_gc_o_reserve_exact (void *, int, size_t, size_t ); extern void ggc_free (void *); extern void *vec_heap_p_reserve (void *, int ); extern void *vec_heap_p_reserve_exact (void *, int ); extern void *vec_heap_o_reserve (void *, int, size_t, size_t ); extern void *vec_heap_o_reserve_exact (void *, int, size_t, size_t ); # 29 "../../GCC/gcc/tree.h" 2 enum tree_code { # 1 "../../GCC/gcc/tree.def" 1 # 42 "../../GCC/gcc/tree.def" ERROR_MARK, IDENTIFIER_NODE, TREE_LIST, TREE_VEC, # 79 "../../GCC/gcc/tree.def" BLOCK, # 133 "../../GCC/gcc/tree.def" OFFSET_TYPE, # 146 "../../GCC/gcc/tree.def" ENUMERAL_TYPE, BOOLEAN_TYPE, # 160 "../../GCC/gcc/tree.def" INTEGER_TYPE, REAL_TYPE, # 173 "../../GCC/gcc/tree.def" POINTER_TYPE, REFERENCE_TYPE, COMPLEX_TYPE, VECTOR_TYPE, # 206 "../../GCC/gcc/tree.def" ARRAY_TYPE, # 216 "../../GCC/gcc/tree.def" RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, VOID_TYPE, FUNCTION_TYPE, METHOD_TYPE, LANG_TYPE, # 270 "../../GCC/gcc/tree.def" INTEGER_CST, REAL_CST, COMPLEX_CST, VECTOR_CST, STRING_CST, # 343 "../../GCC/gcc/tree.def" FUNCTION_DECL, LABEL_DECL, FIELD_DECL, VAR_DECL, CONST_DECL, PARM_DECL, TYPE_DECL, RESULT_DECL, STRUCT_FIELD_TAG, NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, NAMESPACE_DECL, TRANSLATION_UNIT_DECL, # 378 "../../GCC/gcc/tree.def" COMPONENT_REF, # 387 "../../GCC/gcc/tree.def" BIT_FIELD_REF, INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, ARRAY_REF, ARRAY_RANGE_REF, # 429 "../../GCC/gcc/tree.def" OBJ_TYPE_REF, EXC_PTR_EXPR, FILTER_EXPR, # 451 "../../GCC/gcc/tree.def" CONSTRUCTOR, # 461 "../../GCC/gcc/tree.def" COMPOUND_EXPR, MODIFY_EXPR, INIT_EXPR, TARGET_EXPR, # 487 "../../GCC/gcc/tree.def" COND_EXPR, # 499 "../../GCC/gcc/tree.def" VEC_COND_EXPR, # 522 "../../GCC/gcc/tree.def" BIND_EXPR, CALL_EXPR, WITH_CLEANUP_EXPR, # 552 "../../GCC/gcc/tree.def" CLEANUP_POINT_EXPR, # 604 "../../GCC/gcc/tree.def" PLACEHOLDER_EXPR, PLUS_EXPR, MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, EXACT_DIV_EXPR, FIX_TRUNC_EXPR, FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR, FLOAT_EXPR, NEGATE_EXPR, MIN_EXPR, MAX_EXPR, ABS_EXPR, # 671 "../../GCC/gcc/tree.def" LSHIFT_EXPR, RSHIFT_EXPR, LROTATE_EXPR, RROTATE_EXPR, BIT_IOR_EXPR, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_NOT_EXPR, # 691 "../../GCC/gcc/tree.def" TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR, TRUTH_XOR_EXPR, TRUTH_NOT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR, NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, RANGE_EXPR, CONVERT_EXPR, NOP_EXPR, NON_LVALUE_EXPR, # 748 "../../GCC/gcc/tree.def" VIEW_CONVERT_EXPR, SAVE_EXPR, ADDR_EXPR, FDESC_EXPR, COMPLEX_EXPR, CONJ_EXPR, REALPART_EXPR, IMAGPART_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, VA_ARG_EXPR, TRY_CATCH_EXPR, TRY_FINALLY_EXPR, DECL_EXPR, LABEL_EXPR, GOTO_EXPR, RETURN_EXPR, EXIT_EXPR, LOOP_EXPR, # 841 "../../GCC/gcc/tree.def" SWITCH_EXPR, CASE_LABEL_EXPR, RESX_EXPR, ASM_EXPR, SSA_NAME, PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC, STATEMENT_LIST, VALUE_HANDLE, # 916 "../../GCC/gcc/tree.def" ASSERT_EXPR, TREE_BINFO, WITH_SIZE_EXPR, # 938 "../../GCC/gcc/tree.def" REALIGN_LOAD_EXPR, # 953 "../../GCC/gcc/tree.def" TARGET_MEM_REF, # 967 "../../GCC/gcc/tree.def" OMP_PARALLEL, # 988 "../../GCC/gcc/tree.def" OMP_FOR, OMP_SECTIONS, OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN, OMP_CONTINUE, OMP_ATOMIC, OMP_CLAUSE, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR, # 1054 "../../GCC/gcc/tree.def" DOT_PROD_EXPR, # 1063 "../../GCC/gcc/tree.def" WIDEN_SUM_EXPR, WIDEN_MULT_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR, # 36 "../../GCC/gcc/tree.h" 2 LAST_AND_UNUSED_TREE_CODE }; extern unsigned char tree_contains_struct[256][64]; # 54 "../../GCC/gcc/tree.h" enum tree_code_class { tcc_exceptional, tcc_constant, tcc_type, tcc_declaration, tcc_reference, tcc_comparison, tcc_unary, tcc_binary, tcc_statement, tcc_expression }; extern const char *const tree_code_class_strings[]; extern const enum tree_code_class tree_code_type[]; # 185 "../../GCC/gcc/tree.h" extern const unsigned char tree_code_length[]; extern const char *const tree_code_name[]; static __inline__ void VEC_tree_must_be_pointer_type (void) { (void)((tree)1 == (void *)1); } typedef struct VEC_tree_base { unsigned num; unsigned alloc; tree vec[1]; } VEC_tree_base; typedef struct VEC_tree_none { VEC_tree_base base; } VEC_tree_none; static __inline__ unsigned VEC_tree_base_length (const VEC_tree_base *vec_) { return vec_ ? vec_->num : 0; } static __inline__ tree VEC_tree_base_last (const VEC_tree_base *vec_ ) { (void)(vec_ && vec_->num); return vec_->vec[vec_->num - 1]; } static __inline__ tree VEC_tree_base_index (const VEC_tree_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->num); return vec_->vec[ix_]; } static __inline__ int VEC_tree_base_iterate (const VEC_tree_base *vec_, unsigned ix_, tree *ptr) { if (vec_ && ix_ < vec_->num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_tree_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_tree_base, vec) + alloc_ * sizeof(tree); } static __inline__ void VEC_tree_base_embedded_init (VEC_tree_base *vec_, int alloc_) { vec_->num = 0; vec_->alloc = alloc_; } static __inline__ int VEC_tree_base_space (VEC_tree_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->alloc - vec_->num >= (unsigned)alloc_ : !alloc_; } static __inline__ tree *VEC_tree_base_quick_push (VEC_tree_base *vec_, tree obj_ ) { tree *slot_; (void)(vec_->num < vec_->alloc); slot_ = &vec_->vec[vec_->num++]; *slot_ = obj_; return slot_; } static __inline__ tree VEC_tree_base_pop (VEC_tree_base *vec_ ) { tree obj_; (void)(vec_->num); obj_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_tree_base_truncate (VEC_tree_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->num >= size_ : !size_); if (vec_) vec_->num = size_; } static __inline__ tree VEC_tree_base_replace (VEC_tree_base *vec_, unsigned ix_, tree obj_ ) { tree old_obj_; (void)(ix_ < vec_->num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ tree *VEC_tree_base_quick_insert (VEC_tree_base *vec_, unsigned ix_, tree obj_ ) { tree *slot_; (void)(vec_->num < vec_->alloc); (void)(ix_ <= vec_->num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (tree)); *slot_ = obj_; return slot_; } static __inline__ tree VEC_tree_base_ordered_remove (VEC_tree_base *vec_, unsigned ix_ ) { tree *slot_; tree obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->num - ix_) * sizeof (tree)); return obj_; } static __inline__ tree VEC_tree_base_unordered_remove (VEC_tree_base *vec_, unsigned ix_ ) { tree *slot_; tree obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_tree_base_block_remove (VEC_tree_base *vec_, unsigned ix_, unsigned len_ ) { tree *slot_; (void)(ix_ + len_ <= vec_->num); slot_ = &vec_->vec[ix_]; vec_->num -= len_; memmove (slot_, slot_ + len_, (vec_->num - ix_) * sizeof (tree)); } static __inline__ tree *VEC_tree_base_address (VEC_tree_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_tree_base_lower_bound (VEC_tree_base *vec_, const tree obj_, unsigned char (*lessthan_)(const tree, const tree) ) { unsigned int len_ = VEC_tree_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { tree middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_tree_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; typedef struct VEC_tree_gc { VEC_tree_base base; } VEC_tree_gc; static __inline__ VEC_tree_gc *VEC_tree_gc_alloc (int alloc_ ) { return (VEC_tree_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_tree_gc_free (VEC_tree_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_tree_gc *VEC_tree_gc_copy (VEC_tree_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_tree_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_tree_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (tree) * len_); } return new_vec_; } static __inline__ int VEC_tree_gc_reserve (VEC_tree_gc **vec_, int alloc_ ) { int extend = !VEC_tree_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_tree_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_tree_gc_reserve_exact (VEC_tree_gc **vec_, int alloc_ ) { int extend = !VEC_tree_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_tree_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_tree_gc_safe_grow (VEC_tree_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_tree_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_tree_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ tree *VEC_tree_gc_safe_push (VEC_tree_gc **vec_, tree obj_ ) { VEC_tree_gc_reserve (vec_, 1 ); return VEC_tree_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ tree *VEC_tree_gc_safe_insert (VEC_tree_gc **vec_, unsigned ix_, tree obj_ ) { VEC_tree_gc_reserve (vec_, 1 ); return VEC_tree_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; typedef struct VEC_tree_heap { VEC_tree_base base; } VEC_tree_heap; static __inline__ VEC_tree_heap *VEC_tree_heap_alloc (int alloc_ ) { return (VEC_tree_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_tree_heap_free (VEC_tree_heap **vec_) { if (*vec_) free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_tree_heap *VEC_tree_heap_copy (VEC_tree_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_tree_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_tree_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (tree) * len_); } return new_vec_; } static __inline__ int VEC_tree_heap_reserve (VEC_tree_heap **vec_, int alloc_ ) { int extend = !VEC_tree_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_tree_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_tree_heap_reserve_exact (VEC_tree_heap **vec_, int alloc_ ) { int extend = !VEC_tree_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_tree_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_tree_heap_safe_grow (VEC_tree_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_tree_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_tree_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ tree *VEC_tree_heap_safe_push (VEC_tree_heap **vec_, tree obj_ ) { VEC_tree_heap_reserve (vec_, 1 ); return VEC_tree_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ tree *VEC_tree_heap_safe_insert (VEC_tree_heap **vec_, unsigned ix_, tree obj_ ) { VEC_tree_heap_reserve (vec_, 1 ); return VEC_tree_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; enum built_in_class { NOT_BUILT_IN = 0, BUILT_IN_FRONTEND, BUILT_IN_MD, BUILT_IN_NORMAL }; extern const char *const built_in_class_names[4]; enum built_in_function { # 1 "../../GCC/gcc/builtins.def" 1 # 176 "../../GCC/gcc/builtins.def" BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH, BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN, BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL, BUILT_IN_ASINL, BUILT_IN_ATAN, BUILT_IN_ATAN2, BUILT_IN_ATAN2F, BUILT_IN_ATAN2L, BUILT_IN_ATANF, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL, BUILT_IN_ATANL, BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_CEIL, BUILT_IN_CEILF, BUILT_IN_CEILL, BUILT_IN_COPYSIGN, BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COS, BUILT_IN_COSF, BUILT_IN_COSH, BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_COSL, BUILT_IN_DREM, BUILT_IN_DREMF, BUILT_IN_DREML, BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_EXP, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L, BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPF, BUILT_IN_EXPL, BUILT_IN_EXPM1, BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FABS, BUILT_IN_FABSF, BUILT_IN_FABSL, BUILT_IN_FDIM, BUILT_IN_FDIMF, BUILT_IN_FDIML, BUILT_IN_FLOOR, BUILT_IN_FLOORF, BUILT_IN_FLOORL, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL, BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN, BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_FMOD, BUILT_IN_FMODF, BUILT_IN_FMODL, BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_GAMMA, BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_HUGE_VAL, BUILT_IN_HUGE_VALF, BUILT_IN_HUGE_VALL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF, BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL, BUILT_IN_INF, BUILT_IN_INFF, BUILT_IN_INFL, BUILT_IN_INFD32, BUILT_IN_INFD64, BUILT_IN_INFD128, BUILT_IN_J0, BUILT_IN_J0F, BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L, BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL, BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL, BUILT_IN_LGAMMA, BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL, BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL, BUILT_IN_LLRINT, BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND, BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG, BUILT_IN_LOG10, BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF, BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L, BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LOGF, BUILT_IN_LOGL, BUILT_IN_LRINT, BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND, BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_NAN, BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NAND32, BUILT_IN_NAND64, BUILT_IN_NAND128, BUILT_IN_NANS, BUILT_IN_NANSF, BUILT_IN_NANSL, BUILT_IN_NEARBYINT, BUILT_IN_NEARBYINTF, BUILT_IN_NEARBYINTL, BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW, BUILT_IN_POW10, BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_POWF, BUILT_IN_POWI, BUILT_IN_POWIF, BUILT_IN_POWIL, BUILT_IN_POWL, BUILT_IN_REMAINDER, BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_RINT, BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_ROUND, BUILT_IN_ROUNDF, BUILT_IN_ROUNDL, BUILT_IN_SCALB, BUILT_IN_SCALBF, BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF, BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF, BUILT_IN_SCALBNL, BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF, BUILT_IN_SIGNBITL, BUILT_IN_SIGNIFICAND, BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_SIN, BUILT_IN_SINCOS, BUILT_IN_SINCOSF, BUILT_IN_SINCOSL, BUILT_IN_SINF, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL, BUILT_IN_SINL, BUILT_IN_SQRT, BUILT_IN_SQRTF, BUILT_IN_SQRTL, BUILT_IN_TAN, BUILT_IN_TANF, BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL, BUILT_IN_TANL, BUILT_IN_TGAMMA, BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_TRUNC, BUILT_IN_TRUNCF, BUILT_IN_TRUNCL, BUILT_IN_Y0, BUILT_IN_Y0F, BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L, BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL, BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL, BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH, BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL, BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN, BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF, BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN, BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF, BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF, BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL, BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CIMAG, BUILT_IN_CIMAGF, BUILT_IN_CIMAGL, BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL, BUILT_IN_CLOG10, BUILT_IN_CLOG10F, BUILT_IN_CLOG10L, BUILT_IN_CONJ, BUILT_IN_CONJF, BUILT_IN_CONJL, BUILT_IN_CPOW, BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL, BUILT_IN_CREAL, BUILT_IN_CREALF, BUILT_IN_CREALL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH, BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT, BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF, BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL, BUILT_IN_BCMP, BUILT_IN_BCOPY, BUILT_IN_BZERO, BUILT_IN_INDEX, BUILT_IN_MEMCMP, BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMPCPY, BUILT_IN_MEMSET, BUILT_IN_RINDEX, BUILT_IN_STPCPY, BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP, BUILT_IN_STRCAT, BUILT_IN_STRCHR, BUILT_IN_STRCMP, BUILT_IN_STRCPY, BUILT_IN_STRCSPN, BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_STRLEN, BUILT_IN_STRNCASECMP, BUILT_IN_STRNCAT, BUILT_IN_STRNCMP, BUILT_IN_STRNCPY, BUILT_IN_STRPBRK, BUILT_IN_STRRCHR, BUILT_IN_STRSPN, BUILT_IN_STRSTR, BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED, BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED, BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE, BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PRINTF, BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_SCANF, BUILT_IN_SNPRINTF, BUILT_IN_SPRINTF, BUILT_IN_SSCANF, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF, BUILT_IN_VPRINTF, BUILT_IN_VSCANF, BUILT_IN_VSNPRINTF, BUILT_IN_VSPRINTF, BUILT_IN_VSSCANF, BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII, BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT, BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT, BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER, BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER, BUILT_IN_TOUPPER, BUILT_IN_ISWALNUM, BUILT_IN_ISWALPHA, BUILT_IN_ISWBLANK, BUILT_IN_ISWCNTRL, BUILT_IN_ISWDIGIT, BUILT_IN_ISWGRAPH, BUILT_IN_ISWLOWER, BUILT_IN_ISWPRINT, BUILT_IN_ISWPUNCT, BUILT_IN_ISWSPACE, BUILT_IN_ISWUPPER, BUILT_IN_ISWXDIGIT, BUILT_IN_TOWLOWER, BUILT_IN_TOWUPPER, BUILT_IN_ABORT, BUILT_IN_ABS, BUILT_IN_AGGREGATE_INCOMING_ADDRESS, BUILT_IN_ALLOCA, BUILT_IN_APPLY, BUILT_IN_APPLY_ARGS, BUILT_IN_ARGS_INFO, BUILT_IN_CALLOC, BUILT_IN_CLASSIFY_TYPE, BUILT_IN_CLZ, BUILT_IN_CLZIMAX, BUILT_IN_CLZL, BUILT_IN_CLZLL, BUILT_IN_CONSTANT_P, BUILT_IN_CTZ, BUILT_IN_CTZIMAX, BUILT_IN_CTZL, BUILT_IN_CTZLL, BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT, BUILT_IN_DWARF_CFA, BUILT_IN_DWARF_SP_COLUMN, BUILT_IN_EH_RETURN, BUILT_IN_EH_RETURN_DATA_REGNO, BUILT_IN_EXECL, BUILT_IN_EXECLP, BUILT_IN_EXECLE, BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_EXIT, BUILT_IN_EXPECT, BUILT_IN_EXTEND_POINTER, BUILT_IN_EXTRACT_RETURN_ADDR, BUILT_IN_FFS, BUILT_IN_FFSIMAX, BUILT_IN_FFSL, BUILT_IN_FFSLL, BUILT_IN_FORK, BUILT_IN_FRAME_ADDRESS, BUILT_IN_FROB_RETURN_ADDR, BUILT_IN_GETTEXT, BUILT_IN_IMAXABS, BUILT_IN_INIT_DWARF_REG_SIZES, BUILT_IN_FINITE, BUILT_IN_FINITEF, BUILT_IN_FINITEL, BUILT_IN_FINITED32, BUILT_IN_FINITED64, BUILT_IN_FINITED128, BUILT_IN_ISINF, BUILT_IN_ISINFF, BUILT_IN_ISINFL, BUILT_IN_ISINFD32, BUILT_IN_ISINFD64, BUILT_IN_ISINFD128, BUILT_IN_ISNAN, BUILT_IN_ISNANF, BUILT_IN_ISNANL, BUILT_IN_ISNAND32, BUILT_IN_ISNAND64, BUILT_IN_ISNAND128, BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER, BUILT_IN_ISUNORDERED, BUILT_IN_LABS, BUILT_IN_LLABS, BUILT_IN_LONGJMP, BUILT_IN_MALLOC, BUILT_IN_NEXT_ARG, BUILT_IN_PARITY, BUILT_IN_PARITYIMAX, BUILT_IN_PARITYL, BUILT_IN_PARITYLL, BUILT_IN_POPCOUNT, BUILT_IN_POPCOUNTIMAX, BUILT_IN_POPCOUNTL, BUILT_IN_POPCOUNTLL, BUILT_IN_PREFETCH, BUILT_IN_RETURN, BUILT_IN_RETURN_ADDRESS, BUILT_IN_SAVEREGS, BUILT_IN_SETJMP, BUILT_IN_STDARG_START, BUILT_IN_STRFMON, BUILT_IN_STRFTIME, BUILT_IN_TRAP, BUILT_IN_UNWIND_INIT, BUILT_IN_UPDATE_SETJMP_BUF, BUILT_IN_VA_COPY, BUILT_IN_VA_END, BUILT_IN_VA_START, BUILT_IN__EXIT, BUILT_IN__EXIT2, BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO, BUILT_IN_SETJMP_SETUP, BUILT_IN_SETJMP_DISPATCHER, BUILT_IN_SETJMP_RECEIVER, BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK, BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK, BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK, BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK, BUILT_IN_VPRINTF_CHK, BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT, # 1 "../../GCC/gcc/sync-builtins.def" 1 # 31 "../../GCC/gcc/sync-builtins.def" BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1, BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4, BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_ADD_16, BUILT_IN_FETCH_AND_SUB_N, BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2, BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8, BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1, BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4, BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_OR_16, BUILT_IN_FETCH_AND_AND_N, BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2, BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8, BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1, BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4, BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_XOR_16, BUILT_IN_FETCH_AND_NAND_N, BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2, BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8, BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1, BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4, BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_ADD_AND_FETCH_16, BUILT_IN_SUB_AND_FETCH_N, BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2, BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1, BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4, BUILT_IN_OR_AND_FETCH_8, BUILT_IN_OR_AND_FETCH_16, BUILT_IN_AND_AND_FETCH_N, BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2, BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1, BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4, BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_XOR_AND_FETCH_16, BUILT_IN_NAND_AND_FETCH_N, BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2, BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1, BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4, BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_BOOL_COMPARE_AND_SWAP_16, BUILT_IN_VAL_COMPARE_AND_SWAP_N, BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2, BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1, BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4, BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_TEST_AND_SET_16, BUILT_IN_LOCK_RELEASE_N, BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2, BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8, BUILT_IN_LOCK_RELEASE_16, BUILT_IN_SYNCHRONIZE, # 727 "../../GCC/gcc/builtins.def" 2 # 1 "../../GCC/gcc/omp-builtins.def" 1 # 27 "../../GCC/gcc/omp-builtins.def" BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_OMP_GET_NUM_THREADS, BUILT_IN_GOMP_ATOMIC_START, BUILT_IN_GOMP_ATOMIC_END, BUILT_IN_GOMP_BARRIER, BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END, BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END, BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START, BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START, BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START, BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START, BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START, BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START, BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT, BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT, BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START, BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START, BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START, BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START, BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT, BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END, BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END, BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT, BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END, BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START, BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END, # 729 "../../GCC/gcc/builtins.def" 2 # 218 "../../GCC/gcc/tree.h" 2 BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX = BUILT_IN_COMPLEX_MUL_MIN + MAX_MODE_COMPLEX_FLOAT - MIN_MODE_COMPLEX_FLOAT, BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX = BUILT_IN_COMPLEX_DIV_MIN + MAX_MODE_COMPLEX_FLOAT - MIN_MODE_COMPLEX_FLOAT, END_BUILTINS }; extern const char * built_in_names[(int) END_BUILTINS]; # 263 "../../GCC/gcc/tree.h" extern tree built_in_decls[(int) END_BUILTINS]; extern tree implicit_built_in_decls[(int) END_BUILTINS]; extern unsigned const char omp_clause_num_ops[]; extern const char * const omp_clause_code_name[]; enum omp_clause_code { OMP_CLAUSE_ERROR = 0, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE, # 299 "../../GCC/gcc/tree.h" OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT }; # 347 "../../GCC/gcc/tree.h" union tree_ann_d; struct tree_common { tree chain; tree type; union tree_ann_d *ann; __extension__ enum tree_code code : 8; unsigned side_effects_flag : 1; unsigned constant_flag : 1; unsigned addressable_flag : 1; unsigned volatile_flag : 1; unsigned readonly_flag : 1; unsigned unsigned_flag : 1; unsigned asm_written_flag: 1; unsigned nowarning_flag : 1; unsigned used_flag : 1; unsigned nothrow_flag : 1; unsigned static_flag : 1; unsigned public_flag : 1; unsigned private_flag : 1; unsigned protected_flag : 1; unsigned deprecated_flag : 1; unsigned invariant_flag : 1; unsigned lang_flag_0 : 1; unsigned lang_flag_1 : 1; unsigned lang_flag_2 : 1; unsigned lang_flag_3 : 1; unsigned lang_flag_4 : 1; unsigned lang_flag_5 : 1; unsigned lang_flag_6 : 1; unsigned visited : 1; }; # 546 "../../GCC/gcc/tree.h" enum tree_node_structure_enum { # 1 "../../GCC/gcc/treestruct.def" 1 # 30 "../../GCC/gcc/treestruct.def" TS_COMMON, TS_INT_CST, TS_REAL_CST, TS_VECTOR, TS_STRING, TS_COMPLEX, TS_IDENTIFIER, TS_DECL_MINIMAL, TS_DECL_COMMON, TS_DECL_WRTL, TS_DECL_NON_COMMON, TS_DECL_WITH_VIS, TS_FIELD_DECL, TS_VAR_DECL, TS_PARM_DECL, TS_LABEL_DECL, TS_RESULT_DECL, TS_CONST_DECL, TS_TYPE_DECL, TS_FUNCTION_DECL, TS_TYPE, TS_LIST, TS_VEC, TS_EXP, TS_SSA_NAME, TS_PHI_NODE, TS_BLOCK, TS_BINFO, TS_STATEMENT_LIST, TS_VALUE_HANDLE, TS_CONSTRUCTOR, TS_MEMORY_TAG, TS_STRUCT_FIELD_TAG, TS_OMP_CLAUSE, # 548 "../../GCC/gcc/tree.h" 2 LAST_TS_ENUM }; # 776 "../../GCC/gcc/tree.h" extern void tree_contains_struct_check_failed (const tree, const enum tree_node_structure_enum, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void tree_check_failed (const tree, const char *, int, const char *, ...) __attribute__ ((__noreturn__)); extern void tree_not_check_failed (const tree, const char *, int, const char *, ...) __attribute__ ((__noreturn__)); extern void tree_class_check_failed (const tree, const enum tree_code_class, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void tree_range_check_failed (const tree, const char *, int, const char *, enum tree_code, enum tree_code); extern void tree_not_class_check_failed (const tree, const enum tree_code_class, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void tree_vec_elt_check_failed (int, int, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void phi_node_elt_check_failed (int, int, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void tree_operand_check_failed (int, enum tree_code, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void omp_clause_check_failed (const tree, const char *, int, const char *, enum omp_clause_code) __attribute__ ((__noreturn__)); extern void omp_clause_operand_check_failed (int, tree, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void omp_clause_range_check_failed (const tree, const char *, int, const char *, enum omp_clause_code, enum omp_clause_code) __attribute__ ((__noreturn__)); # 845 "../../GCC/gcc/tree.h" # 1 "./tree-check.h" 1 # 846 "../../GCC/gcc/tree.h" 2 # 1260 "../../GCC/gcc/tree.h" struct tree_int_cst { struct tree_common common; double_int int_cst; }; struct real_value; struct tree_real_cst { struct tree_common common; struct real_value * real_cst_ptr; }; struct tree_string { struct tree_common common; int length; char str[1]; }; struct tree_complex { struct tree_common common; tree real; tree imag; }; struct tree_vector { struct tree_common common; tree elements; }; # 1 "../../GCC/gcc/../libcpp/include/symtab.h" 1 # 21 "../../GCC/gcc/../libcpp/include/symtab.h" # 1 "../../GCC/gcc/../include/obstack.h" 1 # 157 "../../GCC/gcc/../include/obstack.h" struct _obstack_chunk { char *limit; struct _obstack_chunk *prev; char contents[4]; }; struct obstack { long chunk_size; struct _obstack_chunk *chunk; char *object_base; char *next_free; char *chunk_limit; int temp; int alignment_mask; struct _obstack_chunk *(*chunkfun) (void *, long); void (*freefun) (void *, struct _obstack_chunk *); void *extra_arg; unsigned use_extra_arg:1; unsigned maybe_empty_object:1; unsigned alloc_failed:1; }; extern void _obstack_newchunk (struct obstack *, int); extern void _obstack_free (struct obstack *, void *); extern int _obstack_begin (struct obstack *, int, int, void *(*) (long), void (*) (void *)); extern int _obstack_begin_1 (struct obstack *, int, int, void *(*) (void *, long), void (*) (void *, void *), void *); extern int _obstack_memory_used (struct obstack *); void obstack_init (struct obstack *obstack); void * obstack_alloc (struct obstack *obstack, int size); void * obstack_copy (struct obstack *obstack, void *address, int size); void * obstack_copy0 (struct obstack *obstack, void *address, int size); void obstack_free (struct obstack *obstack, void *block); void obstack_blank (struct obstack *obstack, int size); void obstack_grow (struct obstack *obstack, void *data, int size); void obstack_grow0 (struct obstack *obstack, void *data, int size); void obstack_1grow (struct obstack *obstack, int data_char); void obstack_ptr_grow (struct obstack *obstack, void *data); void obstack_int_grow (struct obstack *obstack, int data); void * obstack_finish (struct obstack *obstack); int obstack_object_size (struct obstack *obstack); int obstack_room (struct obstack *obstack); void obstack_make_room (struct obstack *obstack, int size); void obstack_1grow_fast (struct obstack *obstack, int data_char); void obstack_ptr_grow_fast (struct obstack *obstack, void *data); void obstack_int_grow_fast (struct obstack *obstack, int data); void obstack_blank_fast (struct obstack *obstack, int size); void * obstack_base (struct obstack *obstack); void * obstack_next_free (struct obstack *obstack); int obstack_alignment_mask (struct obstack *obstack); int obstack_chunk_size (struct obstack *obstack); int obstack_memory_used (struct obstack *obstack); extern void (*obstack_alloc_failed_handler) (void); extern int obstack_exit_failure; # 22 "../../GCC/gcc/../libcpp/include/symtab.h" 2 typedef struct ht_identifier ht_identifier; struct ht_identifier { const unsigned char *str; unsigned int len; unsigned int hash_value; }; typedef struct ht hash_table; typedef struct ht_identifier *hashnode; enum ht_lookup_option {HT_NO_INSERT = 0, HT_ALLOC, HT_ALLOCED}; struct ht { struct obstack stack; hashnode *entries; hashnode (*alloc_node) (hash_table *); void * (*alloc_subobject) (size_t); unsigned int nslots; unsigned int nelements; struct cpp_reader *pfile; unsigned int searches; unsigned int collisions; unsigned char entries_owned; }; extern hash_table *ht_create (unsigned int order); extern void ht_destroy (hash_table *); extern hashnode ht_lookup (hash_table *, const unsigned char *, size_t, enum ht_lookup_option); extern hashnode ht_lookup_with_hash (hash_table *, const unsigned char *, size_t, unsigned int, enum ht_lookup_option); typedef int (*ht_cb) (struct cpp_reader *, hashnode, const void *); extern void ht_forall (hash_table *, ht_cb, const void *); extern void ht_load (hash_table *ht, hashnode *entries, unsigned int nslots, unsigned int nelements, unsigned char own); extern void ht_dump_statistics (hash_table *); # 1313 "../../GCC/gcc/tree.h" 2 # 1330 "../../GCC/gcc/tree.h" struct tree_identifier { struct tree_common common; struct ht_identifier id; }; struct tree_list { struct tree_common common; tree purpose; tree value; }; # 1354 "../../GCC/gcc/tree.h" struct tree_vec { struct tree_common common; int length; tree a[1]; }; # 1397 "../../GCC/gcc/tree.h" typedef struct constructor_elt_d { tree index; tree value; } constructor_elt; typedef struct VEC_constructor_elt_base { unsigned num; unsigned alloc; constructor_elt vec[1]; } VEC_constructor_elt_base; typedef struct VEC_constructor_elt_none { VEC_constructor_elt_base base; } VEC_constructor_elt_none; static __inline__ unsigned VEC_constructor_elt_base_length (const VEC_constructor_elt_base *vec_) { return vec_ ? vec_->num : 0; } static __inline__ constructor_elt *VEC_constructor_elt_base_last (VEC_constructor_elt_base *vec_ ) { (void)(vec_ && vec_->num); return &vec_->vec[vec_->num - 1]; } static __inline__ constructor_elt *VEC_constructor_elt_base_index (VEC_constructor_elt_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->num); return &vec_->vec[ix_]; } static __inline__ int VEC_constructor_elt_base_iterate (VEC_constructor_elt_base *vec_, unsigned ix_, constructor_elt **ptr) { if (vec_ && ix_ < vec_->num) { *ptr = &vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_constructor_elt_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_constructor_elt_base, vec) + alloc_ * sizeof(constructor_elt); } static __inline__ void VEC_constructor_elt_base_embedded_init (VEC_constructor_elt_base *vec_, int alloc_) { vec_->num = 0; vec_->alloc = alloc_; } static __inline__ int VEC_constructor_elt_base_space (VEC_constructor_elt_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->alloc - vec_->num >= (unsigned)alloc_ : !alloc_; } static __inline__ constructor_elt *VEC_constructor_elt_base_quick_push (VEC_constructor_elt_base *vec_, const constructor_elt *obj_ ) { constructor_elt *slot_; (void)(vec_->num < vec_->alloc); slot_ = &vec_->vec[vec_->num++]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_constructor_elt_base_pop (VEC_constructor_elt_base *vec_ ) { (void)(vec_->num); --vec_->num; } static __inline__ void VEC_constructor_elt_base_truncate (VEC_constructor_elt_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->num >= size_ : !size_); if (vec_) vec_->num = size_; } static __inline__ constructor_elt *VEC_constructor_elt_base_replace (VEC_constructor_elt_base *vec_, unsigned ix_, const constructor_elt *obj_ ) { constructor_elt *slot_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; if (obj_) *slot_ = *obj_; return slot_; } static __inline__ constructor_elt *VEC_constructor_elt_base_quick_insert (VEC_constructor_elt_base *vec_, unsigned ix_, const constructor_elt *obj_ ) { constructor_elt *slot_; (void)(vec_->num < vec_->alloc); (void)(ix_ <= vec_->num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (constructor_elt)); if (obj_) *slot_ = *obj_; return slot_; } static __inline__ void VEC_constructor_elt_base_ordered_remove (VEC_constructor_elt_base *vec_, unsigned ix_ ) { constructor_elt *slot_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; memmove (slot_, slot_ + 1, (--vec_->num - ix_) * sizeof (constructor_elt)); } static __inline__ void VEC_constructor_elt_base_unordered_remove (VEC_constructor_elt_base *vec_, unsigned ix_ ) { (void)(ix_ < vec_->num); vec_->vec[ix_] = vec_->vec[--vec_->num]; } static __inline__ void VEC_constructor_elt_base_block_remove (VEC_constructor_elt_base *vec_, unsigned ix_, unsigned len_ ) { constructor_elt *slot_; (void)(ix_ + len_ <= vec_->num); slot_ = &vec_->vec[ix_]; vec_->num -= len_; memmove (slot_, slot_ + len_, (vec_->num - ix_) * sizeof (constructor_elt)); } static __inline__ constructor_elt *VEC_constructor_elt_base_address (VEC_constructor_elt_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_constructor_elt_base_lower_bound (VEC_constructor_elt_base *vec_, const constructor_elt *obj_, unsigned char (*lessthan_)(const constructor_elt *, const constructor_elt *) ) { unsigned int len_ = VEC_constructor_elt_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { constructor_elt *middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_constructor_elt_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; typedef struct VEC_constructor_elt_gc { VEC_constructor_elt_base base; } VEC_constructor_elt_gc; static __inline__ VEC_constructor_elt_gc *VEC_constructor_elt_gc_alloc (int alloc_ ) { return (VEC_constructor_elt_gc *) vec_gc_o_reserve_exact (((void *)0), alloc_, __builtin_offsetof (VEC_constructor_elt_gc, base.vec), sizeof (constructor_elt) ); } static __inline__ VEC_constructor_elt_gc *VEC_constructor_elt_gc_copy (VEC_constructor_elt_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_constructor_elt_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_constructor_elt_gc *)(vec_gc_o_reserve_exact (((void *)0), len_, __builtin_offsetof (VEC_constructor_elt_gc, base.vec), sizeof (constructor_elt) )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (constructor_elt) * len_); } return new_vec_; } static __inline__ void VEC_constructor_elt_gc_free (VEC_constructor_elt_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ int VEC_constructor_elt_gc_reserve (VEC_constructor_elt_gc **vec_, int alloc_ ) { int extend = !VEC_constructor_elt_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_constructor_elt_gc *) vec_gc_o_reserve (*vec_, alloc_, __builtin_offsetof (VEC_constructor_elt_gc, base.vec), sizeof (constructor_elt) ); return extend; } static __inline__ int VEC_constructor_elt_gc_reserve_exact (VEC_constructor_elt_gc **vec_, int alloc_ ) { int extend = !VEC_constructor_elt_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_constructor_elt_gc *) vec_gc_o_reserve_exact (*vec_, alloc_, __builtin_offsetof (VEC_constructor_elt_gc, base.vec), sizeof (constructor_elt) ); return extend; } static __inline__ void VEC_constructor_elt_gc_safe_grow (VEC_constructor_elt_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_constructor_elt_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_constructor_elt_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ constructor_elt *VEC_constructor_elt_gc_safe_push (VEC_constructor_elt_gc **vec_, const constructor_elt *obj_ ) { VEC_constructor_elt_gc_reserve (vec_, 1 ); return VEC_constructor_elt_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ constructor_elt *VEC_constructor_elt_gc_safe_insert (VEC_constructor_elt_gc **vec_, unsigned ix_, const constructor_elt *obj_ ) { VEC_constructor_elt_gc_reserve (vec_, 1 ); return VEC_constructor_elt_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; struct tree_constructor { struct tree_common common; VEC_constructor_elt_gc *elts; }; # 1633 "../../GCC/gcc/tree.h" enum omp_clause_schedule_kind { OMP_CLAUSE_SCHEDULE_STATIC, OMP_CLAUSE_SCHEDULE_DYNAMIC, OMP_CLAUSE_SCHEDULE_GUIDED, OMP_CLAUSE_SCHEDULE_RUNTIME }; enum omp_clause_default_kind { OMP_CLAUSE_DEFAULT_UNSPECIFIED, OMP_CLAUSE_DEFAULT_SHARED, OMP_CLAUSE_DEFAULT_NONE, OMP_CLAUSE_DEFAULT_PRIVATE }; struct tree_exp { struct tree_common common; source_locus locus; int complexity; tree block; tree operands[1]; }; # 1702 "../../GCC/gcc/tree.h" struct ptr_info_def; typedef struct ssa_use_operand_d { struct ssa_use_operand_d* prev; struct ssa_use_operand_d* next; tree stmt; tree * use; } ssa_use_operand_t; struct tree_ssa_name { struct tree_common common; tree var; unsigned int version; struct ptr_info_def *ptr_info; tree value_handle; struct ssa_use_operand_d imm_uses; }; # 1767 "../../GCC/gcc/tree.h" struct phi_arg_d { struct ssa_use_operand_d imm_use; tree def; }; struct tree_phi_node { struct tree_common common; tree result; int num_args; int capacity; struct basic_block_def *bb; struct phi_arg_d a[1]; }; # 1802 "../../GCC/gcc/tree.h" struct tree_omp_clause { struct tree_common common; enum omp_clause_code code; union omp_clause_subcode { enum omp_clause_default_kind default_kind; enum omp_clause_schedule_kind schedule_kind; enum tree_code reduction_code; } subcode; tree ops[1]; }; struct varray_head_tag; # 1868 "../../GCC/gcc/tree.h" struct tree_block { struct tree_common common; unsigned handler_block_flag : 1; unsigned abstract_flag : 1; unsigned block_num : 30; tree vars; tree subblocks; tree supercontext; tree abstract_origin; tree fragment_origin; tree fragment_chain; location_t locus; }; # 2079 "../../GCC/gcc/tree.h" struct die_struct; struct tree_type { struct tree_common common; tree values; tree size; tree size_unit; tree attributes; unsigned int uid; unsigned int precision : 9; __extension__ enum machine_mode mode : 7; unsigned string_flag : 1; unsigned no_force_blk_flag : 1; unsigned needs_constructing_flag : 1; unsigned transparent_union_flag : 1; unsigned packed_flag : 1; unsigned restrict_flag : 1; unsigned contains_placeholder_bits : 2; unsigned lang_flag_0 : 1; unsigned lang_flag_1 : 1; unsigned lang_flag_2 : 1; unsigned lang_flag_3 : 1; unsigned lang_flag_4 : 1; unsigned lang_flag_5 : 1; unsigned lang_flag_6 : 1; unsigned user_align : 1; unsigned int align; tree pointer_to; tree reference_to; union tree_type_symtab { int address; char * pointer; struct die_struct * die; } symtab; tree name; tree minval; tree maxval; tree next_variant; tree main_variant; tree binfo; tree context; long alias_set; struct lang_type *lang_specific; }; # 2234 "../../GCC/gcc/tree.h" struct tree_binfo { struct tree_common common; tree offset; tree vtable; tree virtuals; tree vptr_field; VEC_tree_gc *base_accesses; tree inheritance; tree vtt_subvtt; tree vtt_vptr; VEC_tree_none base_binfos; }; # 2272 "../../GCC/gcc/tree.h" enum symbol_visibility { VISIBILITY_DEFAULT, VISIBILITY_PROTECTED, VISIBILITY_HIDDEN, VISIBILITY_INTERNAL }; struct function; # 2314 "../../GCC/gcc/tree.h" struct tree_decl_minimal { struct tree_common common; location_t locus; unsigned int uid; tree name; tree context; }; # 2340 "../../GCC/gcc/tree.h" struct tree_memory_tag { struct tree_decl_minimal common; unsigned int is_global:1; unsigned int is_used_alone:1; unsigned int old_used_alone:1; }; # 2360 "../../GCC/gcc/tree.h" struct tree_struct_field_tag { struct tree_memory_tag common; tree parent_var; unsigned long offset; unsigned long size; }; # 2531 "../../GCC/gcc/tree.h" struct tree_decl_common { struct tree_decl_minimal common; tree size; __extension__ enum machine_mode mode : 8; unsigned nonlocal_flag : 1; unsigned virtual_flag : 1; unsigned ignored_flag : 1; unsigned abstract_flag : 1; unsigned artificial_flag : 1; unsigned user_align : 1; unsigned preserve_flag: 1; unsigned debug_expr_is_from : 1; unsigned lang_flag_0 : 1; unsigned lang_flag_1 : 1; unsigned lang_flag_2 : 1; unsigned lang_flag_3 : 1; unsigned lang_flag_4 : 1; unsigned lang_flag_5 : 1; unsigned lang_flag_6 : 1; unsigned lang_flag_7 : 1; unsigned decl_flag_0 : 1; unsigned decl_flag_1 : 1; unsigned decl_flag_2 : 1; unsigned decl_flag_3 : 1; unsigned gimple_reg_flag : 1; unsigned call_clobbered_flag : 1; union tree_decl_u1 { enum built_in_function f; long i; struct tree_decl_u1_a { unsigned int align : 24; unsigned int off_align : 8; } a; } u1; tree size_unit; tree initial; tree attributes; tree abstract_origin; long pointer_alias_set; struct lang_decl *lang_specific; }; extern tree decl_value_expr_lookup (tree); extern void decl_value_expr_insert (tree, tree); # 2640 "../../GCC/gcc/tree.h" struct tree_decl_with_rtl { struct tree_decl_common common; rtx rtl; }; # 2696 "../../GCC/gcc/tree.h" struct tree_field_decl { struct tree_decl_common common; tree offset; tree bit_field_type; tree qualifier; tree bit_offset; tree fcontext; }; # 2718 "../../GCC/gcc/tree.h" struct tree_label_decl { struct tree_decl_with_rtl common; tree java_field_1; tree java_field_2; tree java_field_3; unsigned int java_field_4; }; struct tree_result_decl { struct tree_decl_with_rtl common; }; struct tree_const_decl { struct tree_decl_with_rtl common; }; # 2749 "../../GCC/gcc/tree.h" struct tree_parm_decl { struct tree_decl_with_rtl common; rtx incoming_rtl; }; # 2793 "../../GCC/gcc/tree.h" extern tree decl_restrict_base_lookup (tree); extern void decl_restrict_base_insert (tree, tree); # 2877 "../../GCC/gcc/tree.h" struct tree_decl_with_vis { struct tree_decl_with_rtl common; tree assembler_name; tree section_name; unsigned defer_output:1; unsigned hard_register:1; unsigned thread_local:1; unsigned common_flag:1; unsigned in_text_section : 1; unsigned gimple_formal_temp : 1; unsigned dllimport_flag : 1; unsigned based_on_restrict_p : 1; unsigned shadowed_for_var_p : 1; unsigned in_system_header_flag : 1; unsigned weak_flag:1; unsigned seen_in_bind_expr : 1; unsigned comdat_flag : 1; __extension__ enum symbol_visibility visibility : 2; unsigned visibility_specified : 1; unsigned one_only : 1; unsigned init_priority_p:1; __extension__ enum tls_model tls_model : 3; }; # 2924 "../../GCC/gcc/tree.h" extern tree decl_debug_expr_lookup (tree); extern void decl_debug_expr_insert (tree, tree); # 2936 "../../GCC/gcc/tree.h" extern unsigned short decl_init_priority_lookup (tree); extern void decl_init_priority_insert (tree, unsigned short); # 2959 "../../GCC/gcc/tree.h" struct tree_var_decl { struct tree_decl_with_vis common; }; # 2979 "../../GCC/gcc/tree.h" struct tree_decl_non_common { struct tree_decl_with_vis common; tree saved_tree; tree arguments; tree result; tree vindex; }; # 3084 "../../GCC/gcc/tree.h" struct tree_function_decl { struct tree_decl_non_common common; unsigned static_ctor_flag : 1; unsigned static_dtor_flag : 1; unsigned uninlinable : 1; unsigned possibly_inlined : 1; unsigned novops_flag : 1; unsigned returns_twice_flag : 1; unsigned malloc_flag : 1; unsigned pure_flag : 1; unsigned declared_inline_flag : 1; unsigned regdecl_flag : 1; unsigned inline_flag : 1; unsigned no_instrument_function_entry_exit : 1; unsigned no_limit_stack : 1; __extension__ enum built_in_class built_in_class : 2; struct function *f; }; # 3116 "../../GCC/gcc/tree.h" struct tree_type_decl { struct tree_decl_non_common common; }; # 3133 "../../GCC/gcc/tree.h" struct tree_statement_list_node { struct tree_statement_list_node *prev; struct tree_statement_list_node *next; tree stmt; }; struct tree_statement_list { struct tree_common common; struct tree_statement_list_node *head; struct tree_statement_list_node *tail; }; # 3159 "../../GCC/gcc/tree.h" struct value_set; struct tree_value_handle { struct tree_common common; struct value_set * expr_set; unsigned int id; VEC_tree_gc *vuses; }; union tree_node { struct tree_common common; struct tree_int_cst int_cst; struct tree_real_cst real_cst; struct tree_vector vector; struct tree_string string; struct tree_complex complex; struct tree_identifier identifier; struct tree_decl_minimal decl_minimal; struct tree_decl_common decl_common; struct tree_decl_with_rtl decl_with_rtl; struct tree_decl_non_common decl_non_common; struct tree_parm_decl parm_decl; struct tree_decl_with_vis decl_with_vis; struct tree_var_decl var_decl; struct tree_field_decl field_decl; struct tree_label_decl label_decl; struct tree_result_decl result_decl; struct tree_const_decl const_decl; struct tree_type_decl type_decl; struct tree_function_decl function_decl; struct tree_type type; struct tree_list list; struct tree_vec vec; struct tree_exp exp; struct tree_ssa_name ssa_name; struct tree_phi_node phi; struct tree_block block; struct tree_binfo binfo; struct tree_statement_list stmt_list; struct tree_value_handle value_handle; struct tree_constructor constructor; struct tree_memory_tag mtag; struct tree_struct_field_tag sft; struct tree_omp_clause omp_clause; }; enum tree_index { TI_ERROR_MARK, TI_INTQI_TYPE, TI_INTHI_TYPE, TI_INTSI_TYPE, TI_INTDI_TYPE, TI_INTTI_TYPE, TI_UINTQI_TYPE, TI_UINTHI_TYPE, TI_UINTSI_TYPE, TI_UINTDI_TYPE, TI_UINTTI_TYPE, TI_INTEGER_ZERO, TI_INTEGER_ONE, TI_INTEGER_MINUS_ONE, TI_NULL_POINTER, TI_SIZE_ZERO, TI_SIZE_ONE, TI_BITSIZE_ZERO, TI_BITSIZE_ONE, TI_BITSIZE_UNIT, TI_PUBLIC, TI_PROTECTED, TI_PRIVATE, TI_BOOLEAN_FALSE, TI_BOOLEAN_TRUE, TI_COMPLEX_INTEGER_TYPE, TI_COMPLEX_FLOAT_TYPE, TI_COMPLEX_DOUBLE_TYPE, TI_COMPLEX_LONG_DOUBLE_TYPE, TI_FLOAT_TYPE, TI_DOUBLE_TYPE, TI_LONG_DOUBLE_TYPE, TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE, TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE, TI_VOID_TYPE, TI_PTR_TYPE, TI_CONST_PTR_TYPE, TI_SIZE_TYPE, TI_PID_TYPE, TI_PTRDIFF_TYPE, TI_VA_LIST_TYPE, TI_VA_LIST_GPR_COUNTER_FIELD, TI_VA_LIST_FPR_COUNTER_FIELD, TI_BOOLEAN_TYPE, TI_FILEPTR_TYPE, TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE, TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE, TI_VOID_LIST_NODE, TI_MAIN_IDENTIFIER, TI_MAX }; extern tree global_trees[TI_MAX]; # 3383 "../../GCC/gcc/tree.h" enum integer_type_kind { itk_char, itk_signed_char, itk_unsigned_char, itk_short, itk_unsigned_short, itk_int, itk_unsigned_int, itk_long, itk_unsigned_long, itk_long_long, itk_unsigned_long_long, itk_none }; typedef enum integer_type_kind integer_type_kind; extern tree integer_types[itk_none]; # 3419 "../../GCC/gcc/tree.h" extern enum tls_model flag_tls_default; # 3443 "../../GCC/gcc/tree.h" enum ptrmemfunc_vbit_where_t { ptrmemfunc_vbit_in_pfn, ptrmemfunc_vbit_in_delta }; extern tree decl_assembler_name (tree); extern size_t tree_size (tree); extern size_t tree_code_size (enum tree_code); extern tree make_node_stat (enum tree_code ); extern tree copy_node_stat (tree ); extern tree copy_list (tree); extern tree make_tree_binfo_stat (unsigned ); extern tree make_tree_vec_stat (int ); extern void init_phinodes (void); extern void fini_phinodes (void); extern void release_phi_node (tree); extern void init_ssanames (void); extern void fini_ssanames (void); extern tree make_ssa_name (tree, tree); extern tree duplicate_ssa_name (tree, tree); extern void duplicate_ssa_name_ptr_info (tree, struct ptr_info_def *); extern void release_ssa_name (tree); extern void release_defs (tree); extern void replace_ssa_name_symbol (tree, tree); # 3513 "../../GCC/gcc/tree.h" extern tree get_identifier (const char *); # 3526 "../../GCC/gcc/tree.h" extern tree get_identifier_with_length (const char *, size_t); extern tree maybe_get_identifier (const char *); extern tree build_nt (enum tree_code, ...); extern tree build0_stat (enum tree_code, tree ); extern tree build1_stat (enum tree_code, tree, tree ); extern tree build2_stat (enum tree_code, tree, tree, tree ); extern tree build3_stat (enum tree_code, tree, tree, tree, tree ); extern tree build4_stat (enum tree_code, tree, tree, tree, tree, tree ); extern tree build5_stat (enum tree_code, tree, tree, tree, tree, tree, tree ); extern tree build7_stat (enum tree_code, tree, tree, tree, tree, tree, tree, tree, tree ); extern tree build_int_cst (tree, long); extern tree build_int_cst_type (tree, long); extern tree build_int_cstu (tree, unsigned long); extern tree build_int_cst_wide (tree, unsigned long, long); extern tree build_vector (tree, tree); extern tree build_vector_from_ctor (tree, VEC_constructor_elt_gc *); extern tree build_constructor (tree, VEC_constructor_elt_gc *); extern tree build_constructor_single (tree, tree, tree); extern tree build_constructor_from_list (tree, tree); extern tree build_real_from_int_cst (tree, tree); extern tree build_complex (tree, tree, tree); extern tree build_one_cst (tree); extern tree build_string (int, const char *); extern tree build_tree_list_stat (tree, tree ); extern tree build_decl_stat (enum tree_code, tree, tree ); extern tree build_fn_decl (const char *, tree); extern tree build_block (tree, tree, tree, tree); extern void annotate_with_file_line (tree, const char *, int); extern void annotate_with_locus (tree, location_t); extern tree build_empty_stmt (void); extern tree build_omp_clause (enum omp_clause_code); extern tree make_signed_type (int); extern tree make_unsigned_type (int); extern tree signed_type_for (tree); extern tree unsigned_type_for (tree); extern void initialize_sizetypes (unsigned char); extern void set_sizetype (tree); extern void fixup_unsigned_type (tree); extern tree build_pointer_type_for_mode (tree, enum machine_mode, unsigned char); extern tree build_pointer_type (tree); extern tree build_reference_type_for_mode (tree, enum machine_mode, unsigned char); extern tree build_reference_type (tree); extern tree build_vector_type_for_mode (tree, enum machine_mode); extern tree build_vector_type (tree innertype, int nunits); extern tree build_type_no_quals (tree); extern tree build_index_type (tree); extern tree build_index_2_type (tree, tree); extern tree build_array_type (tree, tree); extern tree build_function_type (tree, tree); extern tree build_function_type_list (tree, ...); extern tree build_method_type_directly (tree, tree, tree); extern tree build_method_type (tree, tree); extern tree build_offset_type (tree, tree); extern tree build_complex_type (tree); extern tree build_resx (int); extern tree array_type_nelts (tree); extern unsigned char in_array_bounds_p (tree); extern unsigned char range_in_array_bounds_p (tree); extern tree value_member (tree, tree); extern tree purpose_member (tree, tree); extern int attribute_list_equal (tree, tree); extern int attribute_list_contained (tree, tree); extern int tree_int_cst_equal (tree, tree); extern int tree_int_cst_lt (tree, tree); extern int tree_int_cst_compare (tree, tree); extern int host_integerp (tree, int); extern long tree_low_cst (tree, int); extern int tree_int_cst_msb (tree); extern int tree_int_cst_sgn (tree); extern int tree_int_cst_sign_bit (tree); extern int tree_expr_nonnegative_p (tree); extern int tree_expr_nonnegative_warnv_p (tree, unsigned char *); extern unsigned char may_negate_without_overflow_p (tree); extern tree get_inner_array_type (tree); extern tree make_tree (tree, rtx); extern tree build_type_attribute_variant (tree, tree); extern tree build_decl_attribute_variant (tree, tree); struct attribute_spec { const char *const name; const int min_length; const int max_length; const unsigned char decl_required; const unsigned char type_required; const unsigned char function_type_required; # 3687 "../../GCC/gcc/tree.h" tree (*const handler) (tree *node, tree name, tree args, int flags, unsigned char *no_add_attrs); }; enum attribute_flags { ATTR_FLAG_DECL_NEXT = 1, ATTR_FLAG_FUNCTION_NEXT = 2, ATTR_FLAG_ARRAY_NEXT = 4, ATTR_FLAG_TYPE_IN_PLACE = 8, ATTR_FLAG_BUILT_IN = 16 }; extern tree merge_decl_attributes (tree, tree); extern tree merge_type_attributes (tree, tree); extern int is_attribute_p (const char *, tree); extern tree lookup_attribute (const char *, tree); extern tree remove_attribute (const char *, tree); extern tree merge_attributes (tree, tree); # 3752 "../../GCC/gcc/tree.h" extern unsigned char check_qualified_type (tree, tree, int); extern tree get_qualified_type (tree, int); extern tree build_qualified_type (tree, int); # 3777 "../../GCC/gcc/tree.h" extern tree build_distinct_type_copy (tree); extern tree build_variant_type_copy (tree); extern void finish_builtin_struct (tree, const char *, tree, tree); extern void layout_type (tree); # 3799 "../../GCC/gcc/tree.h" typedef struct record_layout_info_s { tree t; tree offset; unsigned int offset_align; tree bitpos; unsigned int record_align; unsigned int unpacked_align; tree prev_field; tree pending_statics; int remaining_in_alignment; int packed_maybe_necessary; } *record_layout_info; extern void set_lang_adjust_rli (void (*) (record_layout_info)); extern record_layout_info start_record_layout (tree); extern tree bit_from_pos (tree, tree); extern tree byte_from_pos (tree, tree); extern void pos_from_bit (tree *, tree *, unsigned int, tree); extern void normalize_offset (tree *, tree *, unsigned int); extern tree rli_size_unit_so_far (record_layout_info); extern tree rli_size_so_far (record_layout_info); extern void normalize_rli (record_layout_info); extern void place_field (record_layout_info, tree); extern void compute_record_mode (tree); extern void finish_record_layout (record_layout_info, int); extern tree type_hash_canon (unsigned int, tree); # 3855 "../../GCC/gcc/tree.h" extern void layout_decl (tree, unsigned); extern void relayout_decl (tree); extern enum machine_mode mode_for_size_tree (tree, enum mode_class, int); extern tree non_lvalue (tree); extern tree convert (tree, tree); extern unsigned int expr_align (tree); extern tree expr_first (tree); extern tree expr_last (tree); extern tree expr_only (tree); extern tree size_in_bytes (tree); extern long int_size_in_bytes (tree); extern long max_int_size_in_bytes (tree); extern tree bit_position (tree); extern long int_bit_position (tree); extern tree byte_position (tree); extern long int_byte_position (tree); enum size_type_kind { SIZETYPE, SSIZETYPE, BITSIZETYPE, SBITSIZETYPE, TYPE_KIND_LAST}; extern tree sizetype_tab[(int) TYPE_KIND_LAST]; extern tree size_int_kind (long, enum size_type_kind); extern tree size_binop (enum tree_code, tree, tree); extern tree size_diffop (tree, tree); extern tree round_up (tree, int); extern tree round_down (tree, int); extern tree get_pending_sizes (void); extern void put_pending_size (tree); extern void put_pending_sizes (tree); # 3927 "../../GCC/gcc/tree.h" extern unsigned int maximum_field_alignment; extern unsigned int initial_max_fld_align; extern tree chainon (tree, tree); extern tree tree_cons_stat (tree, tree, tree ); extern tree tree_last (tree); extern tree nreverse (tree); extern int list_length (tree); extern int fields_length (tree); extern unsigned char initializer_zerop (tree); # 3975 "../../GCC/gcc/tree.h" extern unsigned char categorize_ctor_elements (tree, long *, long *, unsigned char *); extern long count_type_elements (tree, unsigned char); extern int integer_zerop (tree); extern int integer_onep (tree); extern int integer_all_onesp (tree); extern int integer_pow2p (tree); extern int integer_nonzerop (tree); extern unsigned char zero_p (tree); extern unsigned char cst_and_fits_in_hwi (tree); extern tree num_ending_zeros (tree); extern tree staticp (tree); extern tree save_expr (tree); extern tree skip_simple_arithmetic (tree); enum tree_node_structure_enum tree_node_structure (tree); extern unsigned char contains_placeholder_p (tree); # 4045 "../../GCC/gcc/tree.h" extern unsigned char type_contains_placeholder_p (tree); extern tree substitute_in_expr (tree, tree, tree); # 4063 "../../GCC/gcc/tree.h" extern tree substitute_placeholder_in_expr (tree, tree); # 4078 "../../GCC/gcc/tree.h" extern tree variable_size (tree); extern tree stabilize_reference (tree); extern tree stabilize_reference_1 (tree); extern tree get_unwidened (tree, tree); extern tree get_narrower (tree, int *); extern tree get_inner_reference (tree, long *, long *, tree *, enum machine_mode *, int *, int *, unsigned char); extern unsigned char contains_packed_reference (tree exp); extern int handled_component_p (tree); extern tree array_ref_element_size (tree); extern tree array_ref_low_bound (tree); extern tree array_ref_up_bound (tree); extern tree component_ref_field_offset (tree); extern tree get_containing_scope (tree); extern tree decl_function_context (tree); extern tree decl_type_context (tree); extern int real_zerop (tree); extern int pedantic_lvalues; extern tree current_function_decl; extern const char * current_function_func_begin_label; extern unsigned crc32_string (unsigned, const char *); extern void clean_symbol_name (char *); extern tree get_file_function_name_long (const char *); extern tree get_callee_fndecl (tree); extern void change_decl_assembler_name (tree, tree); extern int type_num_arguments (tree); extern unsigned char associative_tree_code (enum tree_code); extern unsigned char commutative_tree_code (enum tree_code); extern tree upper_bound_in_type (tree, tree); extern tree lower_bound_in_type (tree, tree); extern int operand_equal_for_phi_arg_p (tree, tree); extern unsigned char empty_body_p (tree); extern void expand_expr_stmt (tree); extern int warn_if_unused_value (tree, location_t); extern void expand_label (tree); extern void expand_goto (tree); extern rtx expand_stack_save (void); extern void expand_stack_restore (tree); extern void expand_return (tree); extern int is_body_block (tree); extern void using_eh_for_cleanups (void); extern int folding_initializer; extern tree fold (tree); extern tree fold_unary (enum tree_code, tree, tree); extern tree fold_binary (enum tree_code, tree, tree, tree); extern tree fold_ternary (enum tree_code, tree, tree, tree, tree); extern tree fold_build1_stat (enum tree_code, tree, tree ); extern tree fold_build2_stat (enum tree_code, tree, tree, tree ); extern tree fold_build3_stat (enum tree_code, tree, tree, tree, tree ); extern tree fold_build1_initializer (enum tree_code, tree, tree); extern tree fold_build2_initializer (enum tree_code, tree, tree, tree); extern tree fold_build3_initializer (enum tree_code, tree, tree, tree, tree); extern tree fold_convert (tree, tree); extern tree fold_single_bit_test (enum tree_code, tree, tree, tree); extern tree fold_ignored_result (tree); extern tree fold_abs_const (tree, tree); extern tree fold_indirect_ref_1 (tree, tree); extern void fold_defer_overflow_warnings (void); extern void fold_undefer_overflow_warnings (unsigned char, tree, int); extern void fold_undefer_and_ignore_overflow_warnings (void); extern unsigned char fold_deferring_overflow_warnings_p (void); extern tree force_fit_type (tree, int, unsigned char, unsigned char); extern int add_double_with_sign (unsigned long, long, unsigned long, long, unsigned long *, long *, unsigned char); extern int neg_double (unsigned long, long, unsigned long *, long *); extern int mul_double_with_sign (unsigned long, long, unsigned long, long, unsigned long *, long *, unsigned char); extern void lshift_double (unsigned long, long, long, unsigned int, unsigned long *, long *, int); extern void rshift_double (unsigned long, long, long, unsigned int, unsigned long *, long *, int); extern void lrotate_double (unsigned long, long, long, unsigned int, unsigned long *, long *); extern void rrotate_double (unsigned long, long, long, unsigned int, unsigned long *, long *); extern int div_and_round_double (enum tree_code, int, unsigned long, long, unsigned long, long, unsigned long *, long *, unsigned long *, long *); enum operand_equal_flag { OEP_ONLY_CONST = 1, OEP_PURE_SAME = 2 }; extern int operand_equal_p (tree, tree, unsigned int); extern tree omit_one_operand (tree, tree, tree); extern tree omit_two_operands (tree, tree, tree, tree); extern tree invert_truthvalue (tree); extern tree fold_truth_not_expr (tree); extern tree fold_unary_to_constant (enum tree_code, tree, tree); extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree); extern tree fold_read_from_constant_string (tree); extern tree int_const_binop (enum tree_code, tree, tree, int); extern tree build_fold_addr_expr (tree); extern tree fold_build_cleanup_point_expr (tree type, tree expr); extern tree fold_strip_sign_ops (tree); extern tree build_fold_addr_expr_with_type (tree, tree); extern tree build_fold_indirect_ref (tree); extern tree fold_indirect_ref (tree); extern tree constant_boolean_node (int, tree); extern tree build_low_bits_mask (tree, unsigned); extern unsigned char tree_swap_operands_p (tree, tree, unsigned char); extern void swap_tree_operands (tree, tree *, tree *); extern enum tree_code swap_tree_comparison (enum tree_code); extern unsigned char ptr_difference_const (tree, tree, long *); extern enum tree_code invert_tree_comparison (enum tree_code, unsigned char); extern unsigned char tree_expr_nonzero_p (tree); extern unsigned char tree_expr_nonzero_warnv_p (tree, unsigned char *); extern tree fold_builtin (tree, tree, unsigned char); extern tree fold_builtin_fputs (tree, unsigned char, unsigned char, tree); extern tree fold_builtin_strcpy (tree, tree, tree); extern tree fold_builtin_strncpy (tree, tree, tree); extern tree fold_builtin_memory_chk (tree, tree, tree, unsigned char, enum built_in_function); extern tree fold_builtin_stxcpy_chk (tree, tree, tree, unsigned char, enum built_in_function); extern tree fold_builtin_strncpy_chk (tree, tree); extern tree fold_builtin_snprintf_chk (tree, tree, enum built_in_function); extern unsigned char fold_builtin_next_arg (tree); extern enum built_in_function builtin_mathfn_code (tree); extern tree build_function_call_expr (tree, tree); extern tree mathfn_built_in (tree, enum built_in_function fn); extern tree strip_float_extensions (tree); extern tree c_strlen (tree, int); extern tree std_gimplify_va_arg_expr (tree, tree, tree *, tree *); extern tree build_va_arg_indirect_ref (tree); tree build_string_literal (int, const char *); extern tree strip_float_extensions (tree); extern void record_component_aliases (tree); extern long get_alias_set (tree); extern int alias_sets_conflict_p (long, long); extern int alias_sets_might_conflict_p (long, long); extern int objects_must_conflict_p (tree, tree); extern int really_constant_p (tree); extern int int_fits_type_p (tree, tree); extern unsigned char variably_modified_type_p (tree, tree); extern int tree_log2 (tree); extern int tree_floor_log2 (tree); extern int simple_cst_equal (tree, tree); extern hashval_t iterative_hash_expr (tree, hashval_t); extern int compare_tree_int (tree, unsigned long); extern int type_list_equal (tree, tree); extern int chain_member (tree, tree); extern tree type_hash_lookup (unsigned int, tree); extern void type_hash_add (unsigned int, tree); extern int simple_cst_list_equal (tree, tree); extern void dump_tree_statistics (void); extern void expand_function_end (void); extern void expand_function_start (tree); extern void stack_protect_prologue (void); extern void stack_protect_epilogue (void); extern void recompute_tree_invariant_for_addr_expr (tree); extern unsigned char is_global_var (tree t); extern unsigned char needs_to_live_in_memory (tree); extern tree reconstruct_complex_type (tree, tree); extern int real_onep (tree); extern int real_twop (tree); extern int real_minus_onep (tree); extern void init_ttree (void); extern void build_common_tree_nodes (unsigned char, unsigned char); extern void build_common_tree_nodes_2 (int); extern void build_common_builtin_nodes (void); extern tree build_nonstandard_integer_type (unsigned long, int); extern tree build_range_type (tree, tree, tree); extern long int_cst_value (tree); extern tree tree_fold_gcd (tree, tree); extern tree build_addr (tree, tree); extern unsigned char fields_compatible_p (tree, tree); extern tree find_compatible_field (tree, tree); extern void expand_main_function (void); extern void init_dummy_function_start (void); extern void expand_dummy_function_end (void); extern unsigned int init_function_for_compilation (void); extern void allocate_struct_function (tree); extern void init_function_start (tree); extern unsigned char use_register_for_decl (tree); extern void setjmp_vars_warning (tree); extern void setjmp_args_warning (void); extern void init_temp_slots (void); extern void free_temp_slots (void); extern void pop_temp_slots (void); extern void push_temp_slots (void); extern void preserve_temp_slots (rtx); extern int aggregate_value_p (tree, tree); extern void push_function_context (void); extern void pop_function_context (void); extern void push_function_context_to (tree); extern void pop_function_context_from (tree); extern tree gimplify_parameters (void); extern void print_rtl (FILE *, rtx); extern void debug_tree (tree); extern void dump_addr (FILE*, const char *, void *); extern void print_node (FILE *, const char *, tree, int); extern void print_node_brief (FILE *, const char *, tree, int); extern void indent_to (FILE *, int); extern unsigned char debug_find_tree (tree, tree); extern tree unsave_expr_now (tree); extern tree build_duplicate_type (tree); extern rtx emit_line_note (location_t); # 4455 "../../GCC/gcc/tree.h" extern int flags_from_decl_or_type (tree); extern int call_expr_flags (tree); extern int setjmp_call_p (tree); extern unsigned char alloca_call_p (tree); extern unsigned char must_pass_in_stack_var_size (enum machine_mode, tree); extern unsigned char must_pass_in_stack_var_size_or_pad (enum machine_mode, tree); # 4473 "../../GCC/gcc/tree.h" extern tree decl_attributes (tree *, tree, int); extern void set_decl_abstract_flags (tree, int); extern void set_decl_origin_self (tree); extern void set_min_and_max_values_for_integral_type (tree, int, unsigned char); extern void fixup_signed_type (tree); extern void internal_reference_types (void); extern unsigned int update_alignment_for_field (record_layout_info, tree, unsigned int); extern void make_decl_rtl (tree); extern void make_decl_one_only (tree); extern int supports_one_only (void); extern void resolve_unique_section (tree, int, int); extern void mark_referenced (tree); extern void mark_decl_referenced (tree); extern void notice_global_symbol (tree); extern void set_user_assembler_name (tree, const char *); extern void process_pending_assemble_externals (void); extern void finish_aliases_1 (void); extern void finish_aliases_2 (void); extern void expand_computed_goto (tree); extern unsigned char parse_output_constraint (const char **, int, int, int, unsigned char *, unsigned char *, unsigned char *); extern unsigned char parse_input_constraint (const char **, int, int, int, int, const char * const *, unsigned char *, unsigned char *); extern void expand_asm_expr (tree); extern tree resolve_asm_operand_names (tree, tree, tree); extern void expand_case (tree); extern void expand_decl (tree); extern void expand_anon_union_decl (tree, tree, tree); extern tree create_artificial_label (void); extern void gimplify_function_tree (tree); extern const char *get_name (tree); extern tree unshare_expr (tree); extern void sort_case_labels (tree); extern tree get_file_function_name (int); extern char *dwarf2out_cfi_label (void); extern void dwarf2out_def_cfa (const char *, unsigned, long); extern void dwarf2out_window_save (const char *); extern void dwarf2out_args_size (const char *, long); extern void dwarf2out_reg_save (const char *, unsigned, long); extern void dwarf2out_return_save (const char *, long); extern void dwarf2out_return_reg (const char *, unsigned); extern void dwarf2out_reg_save_reg (const char *, rtx, rtx); struct pointer_set_t; typedef tree (*walk_tree_fn) (tree *, int *, void *); extern tree walk_tree (tree*, walk_tree_fn, void*, struct pointer_set_t*); extern tree walk_tree_without_duplicates (tree*, walk_tree_fn, void*); extern void set_decl_rtl (tree, rtx); extern void set_decl_incoming_rtl (tree, rtx); typedef enum { d_kind, t_kind, b_kind, s_kind, r_kind, e_kind, c_kind, id_kind, perm_list_kind, temp_list_kind, vec_kind, binfo_kind, phi_kind, ssa_name_kind, constr_kind, x_kind, lang_decl, lang_type, omp_clause_kind, all_kinds } tree_node_kind; extern int tree_node_counts[]; extern int tree_node_sizes[]; extern unsigned char in_gimple_form; extern tree get_base_address (tree t); extern void vect_set_verbosity_level (const char *); struct tree_map { unsigned int hash; tree from; tree to; }; extern unsigned int tree_map_hash (const void *); extern int tree_map_marked_p (const void *); extern int tree_map_eq (const void *, const void *); extern tree tree_mem_ref_addr (tree, tree); extern void copy_mem_ref_info (tree, tree); extern unsigned char ssa_name_nonzero_p (tree); extern unsigned char ssa_name_nonnegative_p (tree); extern void init_object_sizes (void); extern void fini_object_sizes (void); extern unsigned long compute_builtin_object_size (tree, int); extern unsigned long highest_pow2_factor (tree); # 44 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/rtl.h" 1 # 27 "../../GCC/gcc/rtl.h" # 1 "../../GCC/gcc/real.h" 1 # 29 "../../GCC/gcc/real.h" enum real_value_class { rvc_zero, rvc_normal, rvc_inf, rvc_nan }; struct real_value { unsigned int cl : 2; unsigned int decimal : 1; unsigned int sign : 1; unsigned int signalling : 1; unsigned int canonical : 1; unsigned int uexp : (32 - 6); unsigned long sig[((128 + (8 * 4)) / (8 * 4))]; }; # 77 "../../GCC/gcc/real.h" extern char test_real_width [sizeof(struct real_value) <= (((128 + (8 * 4)) + 32)/(8 * 4) + (((128 + (8 * 4)) + 32)%(8 * 4) ? 1 : 0))*sizeof(long) ? 1 : -1]; # 115 "../../GCC/gcc/real.h" struct real_format { void (*encode) (const struct real_format *, long *, const struct real_value *); void (*decode) (const struct real_format *, struct real_value *, const long *); int b; int log2_b; int p; int pnan; int emin; int emax; int signbit_ro; int signbit_rw; unsigned char has_nans; unsigned char has_inf; unsigned char has_denorm; unsigned char has_signed_zero; unsigned char qnan_msb_set; }; extern const struct real_format * real_format_for_mode[MAX_MODE_FLOAT - MIN_MODE_FLOAT + 1 + MAX_MODE_DECIMAL_FLOAT - MIN_MODE_DECIMAL_FLOAT + 1]; # 182 "../../GCC/gcc/real.h" extern unsigned char real_arithmetic (struct real_value *, int, const struct real_value *, const struct real_value *); extern unsigned char real_compare (int, const struct real_value *, const struct real_value *); extern unsigned char real_isinf (const struct real_value *); extern unsigned char real_isnan (const struct real_value *); extern unsigned char real_isneg (const struct real_value *); extern unsigned char real_isnegzero (const struct real_value *); extern unsigned char real_identical (const struct real_value *, const struct real_value *); extern void real_convert (struct real_value *, enum machine_mode, const struct real_value *); extern unsigned char exact_real_truncate (enum machine_mode, const struct real_value *); extern void real_to_decimal (char *, const struct real_value *, size_t, size_t, int); extern void real_to_hexadecimal (char *, const struct real_value *, size_t, size_t, int); extern long real_to_integer (const struct real_value *); extern void real_to_integer2 (long *, long *, const struct real_value *); extern void real_from_string (struct real_value *, const char *); extern void real_from_string3 (struct real_value *, const char *, enum machine_mode); extern void real_from_integer (struct real_value *, enum machine_mode, unsigned long, long, int); extern long real_to_target_fmt (long *, const struct real_value *, const struct real_format *); extern long real_to_target (long *, const struct real_value *, enum machine_mode); extern void real_from_target_fmt (struct real_value *, const long *, const struct real_format *); extern void real_from_target (struct real_value *, const long *, enum machine_mode); extern void real_inf (struct real_value *); extern unsigned char real_nan (struct real_value *, const char *, int, enum machine_mode); extern void real_maxval (struct real_value *, int, enum machine_mode); extern void real_2expN (struct real_value *, int); extern unsigned int real_hash (const struct real_value *); extern const struct real_format ieee_single_format; extern const struct real_format mips_single_format; extern const struct real_format ieee_double_format; extern const struct real_format mips_double_format; extern const struct real_format ieee_extended_motorola_format; extern const struct real_format ieee_extended_intel_96_format; extern const struct real_format ieee_extended_intel_96_round_53_format; extern const struct real_format ieee_extended_intel_128_format; extern const struct real_format ibm_extended_format; extern const struct real_format mips_extended_format; extern const struct real_format ieee_quad_format; extern const struct real_format mips_quad_format; extern const struct real_format vax_f_format; extern const struct real_format vax_d_format; extern const struct real_format vax_g_format; extern const struct real_format i370_single_format; extern const struct real_format i370_double_format; extern const struct real_format c4x_single_format; extern const struct real_format c4x_extended_format; extern const struct real_format real_internal_format; extern const struct real_format decimal_single_format; extern const struct real_format decimal_double_format; extern const struct real_format decimal_quad_format; # 331 "../../GCC/gcc/real.h" extern struct real_value real_value_truncate (enum machine_mode, struct real_value); extern struct real_value real_arithmetic2 (int, const struct real_value *, const struct real_value *); extern int significand_size (enum machine_mode); extern struct real_value real_from_string2 (const char *, enum machine_mode); # 366 "../../GCC/gcc/real.h" extern int real_exponent (const struct real_value *); extern void real_ldexp (struct real_value *, const struct real_value *, int); extern struct real_value dconst0; extern struct real_value dconst1; extern struct real_value dconst2; extern struct real_value dconst3; extern struct real_value dconst10; extern struct real_value dconstm1; extern struct real_value dconstm2; extern struct real_value dconsthalf; extern struct real_value dconstthird; extern struct real_value dconstpi; extern struct real_value dconste; struct real_value real_value_from_int_cst (tree, tree); # 398 "../../GCC/gcc/real.h" extern rtx const_double_from_real_value (struct real_value, enum machine_mode); extern unsigned char exact_real_inverse (enum machine_mode, struct real_value *); extern tree build_real (tree, struct real_value); extern unsigned char real_sqrt (struct real_value *, enum machine_mode, const struct real_value *); extern unsigned char real_powi (struct real_value *, enum machine_mode, const struct real_value *, long); extern void real_trunc (struct real_value *, enum machine_mode, const struct real_value *); extern void real_floor (struct real_value *, enum machine_mode, const struct real_value *); extern void real_ceil (struct real_value *, enum machine_mode, const struct real_value *); extern void real_round (struct real_value *, enum machine_mode, const struct real_value *); extern void real_copysign (struct real_value *, const struct real_value *); # 28 "../../GCC/gcc/rtl.h" 2 # 42 "../../GCC/gcc/rtl.h" enum rtx_code { # 1 "../../GCC/gcc/rtl.def" 1 # 81 "../../GCC/gcc/rtl.def" UNKNOWN , EXPR_LIST , INSN_LIST , DEPS_LIST , SEQUENCE , ADDRESS , # 119 "../../GCC/gcc/rtl.def" INSN , JUMP_INSN , CALL_INSN , BARRIER , CODE_LABEL , # 156 "../../GCC/gcc/rtl.def" NOTE , # 169 "../../GCC/gcc/rtl.def" COND_EXEC , PARALLEL , ASM_INPUT , # 208 "../../GCC/gcc/rtl.def" ASM_OPERANDS , # 220 "../../GCC/gcc/rtl.def" UNSPEC , UNSPEC_VOLATILE , ADDR_VEC , # 252 "../../GCC/gcc/rtl.def" ADDR_DIFF_VEC , # 263 "../../GCC/gcc/rtl.def" PREFETCH , # 275 "../../GCC/gcc/rtl.def" SET , USE , CLOBBER , CALL , RETURN , TRAP_IF , RESX , CONST_INT , CONST_DOUBLE , CONST_VECTOR , CONST_STRING , CONST , PC , VALUE , # 351 "../../GCC/gcc/rtl.def" REG , SCRATCH , # 368 "../../GCC/gcc/rtl.def" SUBREG , # 381 "../../GCC/gcc/rtl.def" STRICT_LOW_PART , CONCAT , MEM , LABEL_REF , SYMBOL_REF , CC0 , # 422 "../../GCC/gcc/rtl.def" IF_THEN_ELSE , COMPARE , PLUS , MINUS , NEG , MULT , DIV , MOD , UDIV , UMOD , AND , IOR , XOR , NOT , ASHIFT , ROTATE , ASHIFTRT , LSHIFTRT , ROTATERT , # 469 "../../GCC/gcc/rtl.def" SMIN , SMAX , UMIN , UMAX , # 481 "../../GCC/gcc/rtl.def" PRE_DEC , PRE_INC , POST_DEC , POST_INC , # 498 "../../GCC/gcc/rtl.def" PRE_MODIFY , POST_MODIFY , NE , EQ , GE , GT , LE , LT , GEU , GTU , LEU , LTU , UNORDERED , ORDERED , UNEQ , UNGE , UNGT , UNLE , UNLT , LTGT , SIGN_EXTEND , ZERO_EXTEND , TRUNCATE , FLOAT_EXTEND , FLOAT_TRUNCATE , FLOAT , FIX , UNSIGNED_FLOAT , UNSIGNED_FIX , ABS , SQRT , FFS , CLZ , CTZ , POPCOUNT , PARITY , # 595 "../../GCC/gcc/rtl.def" SIGN_EXTRACT , ZERO_EXTRACT , HIGH , LO_SUM , VEC_MERGE , VEC_SELECT , VEC_CONCAT , VEC_DUPLICATE , SS_PLUS , US_PLUS , SS_MINUS , SS_NEG , SS_ASHIFT , US_MINUS , SS_TRUNCATE , US_TRUNCATE , VAR_LOCATION , # 46 "../../GCC/gcc/rtl.h" 2 LAST_AND_UNUSED_RTX_CODE}; # 57 "../../GCC/gcc/rtl.h" enum rtx_class { RTX_COMPARE, RTX_COMM_COMPARE, RTX_BIN_ARITH, RTX_COMM_ARITH, RTX_UNARY, RTX_EXTRA, RTX_MATCH, RTX_INSN, RTX_OBJ, RTX_CONST_OBJ, RTX_TERNARY, RTX_BITFIELD_OPS, RTX_AUTOINC }; # 95 "../../GCC/gcc/rtl.h" extern const unsigned char rtx_length[((int) LAST_AND_UNUSED_RTX_CODE)]; extern const char * const rtx_name[((int) LAST_AND_UNUSED_RTX_CODE)]; extern const char * const rtx_format[((int) LAST_AND_UNUSED_RTX_CODE)]; extern const enum rtx_class rtx_class[((int) LAST_AND_UNUSED_RTX_CODE)]; extern const unsigned char rtx_code_size[((int) LAST_AND_UNUSED_RTX_CODE)]; extern const unsigned char rtx_next[((int) LAST_AND_UNUSED_RTX_CODE)]; typedef struct { unsigned min_align: 8; unsigned base_after_vec: 1; unsigned min_after_vec: 1; unsigned max_after_vec: 1; unsigned min_after_base: 1; unsigned max_after_base: 1; unsigned offset_unsigned: 1; unsigned : 2; unsigned scale : 8; } addr_diff_vec_flags; # 139 "../../GCC/gcc/rtl.h" typedef struct mem_attrs { long alias; tree expr; rtx offset; rtx size; unsigned int align; } mem_attrs; typedef struct reg_attrs { tree decl; long offset; } reg_attrs; union rtunion_def { int rt_int; unsigned int rt_uint; const char *rt_str; rtx rt_rtx; rtvec rt_rtvec; enum machine_mode rt_type; addr_diff_vec_flags rt_addr_diff_vec_flags; struct cselib_val_struct *rt_cselib; struct bitmap_head_def *rt_bit; tree rt_tree; struct basic_block_def *rt_bb; mem_attrs *rt_mem; reg_attrs *rt_reg; struct constant_descriptor_rtx *rt_constant; }; typedef union rtunion_def rtunion; struct block_symbol { rtunion fld[3]; struct object_block *block; long offset; }; static __inline__ void VEC_rtx_must_be_pointer_type (void) { (void)((rtx)1 == (void *)1); } typedef struct VEC_rtx_base { unsigned num; unsigned alloc; rtx vec[1]; } VEC_rtx_base; typedef struct VEC_rtx_none { VEC_rtx_base base; } VEC_rtx_none; static __inline__ unsigned VEC_rtx_base_length (const VEC_rtx_base *vec_) { return vec_ ? vec_->num : 0; } static __inline__ rtx VEC_rtx_base_last (const VEC_rtx_base *vec_ ) { (void)(vec_ && vec_->num); return vec_->vec[vec_->num - 1]; } static __inline__ rtx VEC_rtx_base_index (const VEC_rtx_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->num); return vec_->vec[ix_]; } static __inline__ int VEC_rtx_base_iterate (const VEC_rtx_base *vec_, unsigned ix_, rtx *ptr) { if (vec_ && ix_ < vec_->num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_rtx_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_rtx_base, vec) + alloc_ * sizeof(rtx); } static __inline__ void VEC_rtx_base_embedded_init (VEC_rtx_base *vec_, int alloc_) { vec_->num = 0; vec_->alloc = alloc_; } static __inline__ int VEC_rtx_base_space (VEC_rtx_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->alloc - vec_->num >= (unsigned)alloc_ : !alloc_; } static __inline__ rtx *VEC_rtx_base_quick_push (VEC_rtx_base *vec_, rtx obj_ ) { rtx *slot_; (void)(vec_->num < vec_->alloc); slot_ = &vec_->vec[vec_->num++]; *slot_ = obj_; return slot_; } static __inline__ rtx VEC_rtx_base_pop (VEC_rtx_base *vec_ ) { rtx obj_; (void)(vec_->num); obj_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_rtx_base_truncate (VEC_rtx_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->num >= size_ : !size_); if (vec_) vec_->num = size_; } static __inline__ rtx VEC_rtx_base_replace (VEC_rtx_base *vec_, unsigned ix_, rtx obj_ ) { rtx old_obj_; (void)(ix_ < vec_->num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ rtx *VEC_rtx_base_quick_insert (VEC_rtx_base *vec_, unsigned ix_, rtx obj_ ) { rtx *slot_; (void)(vec_->num < vec_->alloc); (void)(ix_ <= vec_->num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (rtx)); *slot_ = obj_; return slot_; } static __inline__ rtx VEC_rtx_base_ordered_remove (VEC_rtx_base *vec_, unsigned ix_ ) { rtx *slot_; rtx obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->num - ix_) * sizeof (rtx)); return obj_; } static __inline__ rtx VEC_rtx_base_unordered_remove (VEC_rtx_base *vec_, unsigned ix_ ) { rtx *slot_; rtx obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_rtx_base_block_remove (VEC_rtx_base *vec_, unsigned ix_, unsigned len_ ) { rtx *slot_; (void)(ix_ + len_ <= vec_->num); slot_ = &vec_->vec[ix_]; vec_->num -= len_; memmove (slot_, slot_ + len_, (vec_->num - ix_) * sizeof (rtx)); } static __inline__ rtx *VEC_rtx_base_address (VEC_rtx_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_rtx_base_lower_bound (VEC_rtx_base *vec_, const rtx obj_, unsigned char (*lessthan_)(const rtx, const rtx) ) { unsigned int len_ = VEC_rtx_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { rtx middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_rtx_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; typedef struct VEC_rtx_heap { VEC_rtx_base base; } VEC_rtx_heap; static __inline__ VEC_rtx_heap *VEC_rtx_heap_alloc (int alloc_ ) { return (VEC_rtx_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_rtx_heap_free (VEC_rtx_heap **vec_) { if (*vec_) free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_rtx_heap *VEC_rtx_heap_copy (VEC_rtx_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_rtx_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_rtx_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (rtx) * len_); } return new_vec_; } static __inline__ int VEC_rtx_heap_reserve (VEC_rtx_heap **vec_, int alloc_ ) { int extend = !VEC_rtx_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_rtx_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_rtx_heap_reserve_exact (VEC_rtx_heap **vec_, int alloc_ ) { int extend = !VEC_rtx_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_rtx_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_rtx_heap_safe_grow (VEC_rtx_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_rtx_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_rtx_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ rtx *VEC_rtx_heap_safe_push (VEC_rtx_heap **vec_, rtx obj_ ) { VEC_rtx_heap_reserve (vec_, 1 ); return VEC_rtx_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ rtx *VEC_rtx_heap_safe_insert (VEC_rtx_heap **vec_, unsigned ix_, rtx obj_ ) { VEC_rtx_heap_reserve (vec_, 1 ); return VEC_rtx_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; typedef struct VEC_rtx_gc { VEC_rtx_base base; } VEC_rtx_gc; static __inline__ VEC_rtx_gc *VEC_rtx_gc_alloc (int alloc_ ) { return (VEC_rtx_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_rtx_gc_free (VEC_rtx_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_rtx_gc *VEC_rtx_gc_copy (VEC_rtx_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_rtx_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_rtx_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (rtx) * len_); } return new_vec_; } static __inline__ int VEC_rtx_gc_reserve (VEC_rtx_gc **vec_, int alloc_ ) { int extend = !VEC_rtx_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_rtx_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_rtx_gc_reserve_exact (VEC_rtx_gc **vec_, int alloc_ ) { int extend = !VEC_rtx_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_rtx_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_rtx_gc_safe_grow (VEC_rtx_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_rtx_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_rtx_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ rtx *VEC_rtx_gc_safe_push (VEC_rtx_gc **vec_, rtx obj_ ) { VEC_rtx_gc_reserve (vec_, 1 ); return VEC_rtx_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ rtx *VEC_rtx_gc_safe_insert (VEC_rtx_gc **vec_, unsigned ix_, rtx obj_ ) { VEC_rtx_gc_reserve (vec_, 1 ); return VEC_rtx_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; struct object_block { section *sect; unsigned int alignment; long size; # 218 "../../GCC/gcc/rtl.h" VEC_rtx_gc *objects; # 228 "../../GCC/gcc/rtl.h" VEC_rtx_gc *anchors; }; struct rtx_def { __extension__ enum rtx_code code: 16; __extension__ enum machine_mode mode : 8; unsigned int jump : 1; unsigned int call : 1; unsigned int unchanging : 1; # 267 "../../GCC/gcc/rtl.h" unsigned int volatil : 1; # 281 "../../GCC/gcc/rtl.h" unsigned int in_struct : 1; unsigned int used : 1; unsigned frame_related : 1; unsigned return_val : 1; union u { rtunion fld[1]; long hwint[1]; struct block_symbol block_sym; struct real_value rv; } u; }; # 347 "../../GCC/gcc/rtl.h" struct rtvec_def { int num_elem; rtx elem[1]; }; # 539 "../../GCC/gcc/rtl.h" extern void rtl_check_failed_bounds (rtx, int, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void rtl_check_failed_type1 (rtx, int, int, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void rtl_check_failed_type2 (rtx, int, int, int, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void rtl_check_failed_code1 (rtx, enum rtx_code, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void rtl_check_failed_code2 (rtx, enum rtx_code, enum rtx_code, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void rtl_check_failed_code_mode (rtx, enum rtx_code, enum machine_mode, unsigned char, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void rtl_check_failed_block_symbol (const char *, int, const char *) __attribute__ ((__noreturn__)); extern void rtvec_check_failed_bounds (rtvec, int, const char *, int, const char *) __attribute__ ((__noreturn__)); # 793 "../../GCC/gcc/rtl.h" enum reg_note { # 1 "../../GCC/gcc/reg-notes.def" 1 # 32 "../../GCC/gcc/reg-notes.def" REG_DEP_TRUE, REG_DEAD, REG_INC, # 51 "../../GCC/gcc/reg-notes.def" REG_EQUIV, REG_EQUAL, REG_RETVAL, REG_LIBCALL, REG_NONNEG, REG_NO_CONFLICT, REG_UNUSED, # 91 "../../GCC/gcc/reg-notes.def" REG_CC_SETTER, REG_CC_USER, REG_LABEL, REG_DEP_OUTPUT, REG_DEP_ANTI, REG_BR_PROB, REG_VALUE_PROFILE, REG_NOALIAS, REG_BR_PRED, REG_FRAME_RELATED_EXPR, REG_EH_CONTEXT, REG_EH_REGION, REG_SAVE_NOTE, REG_MAYBE_DEAD, REG_NORETURN, REG_NON_LOCAL_GOTO, REG_CROSSING_JUMP, REG_SETJMP, # 797 "../../GCC/gcc/rtl.h" 2 REG_NOTE_MAX }; # 808 "../../GCC/gcc/rtl.h" extern const char * const reg_note_name[]; # 879 "../../GCC/gcc/rtl.h" enum insn_note { NOTE_INSN_BIAS = -100, # 1 "../../GCC/gcc/insn-notes.def" 1 # 35 "../../GCC/gcc/insn-notes.def" NOTE_INSN_DELETED, NOTE_INSN_DELETED_LABEL, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_FUNCTION_BEG, NOTE_INSN_FUNCTION_END, NOTE_INSN_PROLOGUE_END, NOTE_INSN_EPILOGUE_BEG, NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END, NOTE_INSN_REPEATED_LINE_NUMBER, NOTE_INSN_VAR_LOCATION, NOTE_INSN_EXPECTED_VALUE, NOTE_INSN_BASIC_BLOCK, NOTE_INSN_SWITCH_TEXT_SECTIONS, # 886 "../../GCC/gcc/rtl.h" 2 NOTE_INSN_MAX }; extern const char * const note_insn_name[NOTE_INSN_MAX - NOTE_INSN_BIAS]; # 908 "../../GCC/gcc/rtl.h" enum label_kind { LABEL_NORMAL = 0, LABEL_STATIC_ENTRY, LABEL_GLOBAL_ENTRY, LABEL_WEAK_ENTRY }; # 1032 "../../GCC/gcc/rtl.h" extern void init_rtlanal (void); extern int rtx_cost (rtx, enum rtx_code); extern int address_cost (rtx, enum machine_mode); extern unsigned int subreg_lsb (rtx); extern unsigned int subreg_lsb_1 (enum machine_mode, enum machine_mode, unsigned int); extern unsigned int subreg_regno_offset (unsigned int, enum machine_mode, unsigned int, enum machine_mode); extern unsigned char subreg_offset_representable_p (unsigned int, enum machine_mode, unsigned int, enum machine_mode); extern unsigned int subreg_regno (rtx); extern unsigned long nonzero_bits (rtx, enum machine_mode); extern unsigned int num_sign_bit_copies (rtx, enum machine_mode); extern unsigned char constant_pool_constant_p (rtx); extern unsigned char truncated_to_mode (enum machine_mode, rtx); # 1425 "../../GCC/gcc/rtl.h" extern int generating_concat_p; extern int currently_expanding_to_rtl; extern int ceil_log2 (unsigned long); extern rtx expand_builtin_expect_jump (tree, rtx, rtx); extern void set_stack_check_libfunc (rtx); extern long trunc_int_for_mode (long, enum machine_mode); extern rtx plus_constant (rtx, long); extern rtvec gen_rtvec (int, ...); extern rtx copy_insn_1 (rtx); extern rtx copy_insn (rtx); extern rtx gen_int_mode (long, enum machine_mode); extern rtx emit_copy_of_insn_after (rtx, rtx); extern void set_reg_attrs_from_mem (rtx, rtx); extern void set_mem_attrs_from_reg (rtx, rtx); extern void set_reg_attrs_for_parm (rtx, rtx); extern int mem_expr_equal_p (tree, tree); extern rtx rtx_alloc_stat (enum rtx_code ); extern rtvec rtvec_alloc (int); extern rtx copy_rtx (rtx); extern void dump_rtx_statistics (void); extern rtx copy_rtx_if_shared (rtx); extern unsigned int rtx_size (rtx); extern rtx shallow_copy_rtx_stat (rtx ); extern int rtx_equal_p (rtx, rtx); extern rtvec gen_rtvec_v (int, rtx *); extern rtx gen_reg_rtx (enum machine_mode); extern rtx gen_rtx_REG_offset (rtx, enum machine_mode, unsigned int, int); extern rtx gen_label_rtx (void); extern rtx gen_lowpart_common (enum machine_mode, rtx); extern rtx gen_lowpart_if_possible (enum machine_mode, rtx); extern rtx gen_highpart (enum machine_mode, rtx); extern rtx gen_highpart_mode (enum machine_mode, enum machine_mode, rtx); extern rtx operand_subword (rtx, unsigned int, int, enum machine_mode); extern rtx operand_subword_force (rtx, unsigned int, enum machine_mode); extern int subreg_lowpart_p (rtx); extern unsigned int subreg_lowpart_offset (enum machine_mode, enum machine_mode); extern unsigned int subreg_highpart_offset (enum machine_mode, enum machine_mode); extern rtx make_safe_from (rtx, rtx); extern rtx convert_memory_address (enum machine_mode, rtx); extern rtx get_insns (void); extern const char *get_insn_name (int); extern rtx get_last_insn (void); extern rtx get_last_insn_anywhere (void); extern rtx get_first_nonnote_insn (void); extern rtx get_last_nonnote_insn (void); extern void start_sequence (void); extern void push_to_sequence (rtx); extern void end_sequence (void); extern rtx immed_double_const (long, long, enum machine_mode); extern rtx lowpart_subreg (enum machine_mode, rtx, enum machine_mode); extern rtx force_const_mem (enum machine_mode, rtx); struct function; extern rtx get_pool_constant (rtx); extern rtx get_pool_constant_mark (rtx, unsigned char *); extern enum machine_mode get_pool_mode (rtx); extern rtx simplify_subtraction (rtx); extern rtx assign_stack_local (enum machine_mode, long, int); extern rtx assign_stack_temp (enum machine_mode, long, int); extern rtx assign_stack_temp_for_type (enum machine_mode, long, int, tree); extern rtx assign_temp (tree, int, int, int); extern rtx emit_insn_before (rtx, rtx); extern rtx emit_insn_before_noloc (rtx, rtx); extern rtx emit_insn_before_setloc (rtx, rtx, int); extern rtx emit_jump_insn_before (rtx, rtx); extern rtx emit_jump_insn_before_noloc (rtx, rtx); extern rtx emit_jump_insn_before_setloc (rtx, rtx, int); extern rtx emit_call_insn_before (rtx, rtx); extern rtx emit_call_insn_before_noloc (rtx, rtx); extern rtx emit_call_insn_before_setloc (rtx, rtx, int); extern rtx emit_barrier_before (rtx); extern rtx emit_label_before (rtx, rtx); extern rtx emit_note_before (int, rtx); extern rtx emit_insn_after (rtx, rtx); extern rtx emit_insn_after_noloc (rtx, rtx); extern rtx emit_insn_after_setloc (rtx, rtx, int); extern rtx emit_jump_insn_after (rtx, rtx); extern rtx emit_jump_insn_after_noloc (rtx, rtx); extern rtx emit_jump_insn_after_setloc (rtx, rtx, int); extern rtx emit_call_insn_after (rtx, rtx); extern rtx emit_call_insn_after_noloc (rtx, rtx); extern rtx emit_call_insn_after_setloc (rtx, rtx, int); extern rtx emit_barrier_after (rtx); extern rtx emit_label_after (rtx, rtx); extern rtx emit_note_after (int, rtx); extern rtx emit_note_copy_after (rtx, rtx); extern rtx emit_insn (rtx); extern rtx emit_jump_insn (rtx); extern rtx emit_call_insn (rtx); extern rtx emit_label (rtx); extern rtx emit_barrier (void); extern rtx emit_note (int); extern rtx emit_note_copy (rtx); extern rtx emit_line_note (location_t); extern rtx make_insn_raw (rtx); extern rtx make_jump_insn_raw (rtx); extern void add_function_usage_to (rtx, rtx); extern rtx last_call_insn (void); extern rtx previous_insn (rtx); extern rtx next_insn (rtx); extern rtx prev_nonnote_insn (rtx); extern rtx next_nonnote_insn (rtx); extern rtx prev_real_insn (rtx); extern rtx next_real_insn (rtx); extern rtx prev_active_insn (rtx); extern rtx next_active_insn (rtx); extern int active_insn_p (rtx); extern rtx prev_label (rtx); extern rtx next_label (rtx); extern rtx skip_consecutive_labels (rtx); extern rtx next_cc0_user (rtx); extern rtx prev_cc0_setter (rtx); extern int insn_line (rtx); extern const char * insn_file (rtx); extern int locator_line (int); extern const char * locator_file (int); extern int prologue_locator, epilogue_locator; extern enum rtx_code reverse_condition (enum rtx_code); extern enum rtx_code reverse_condition_maybe_unordered (enum rtx_code); extern enum rtx_code swap_condition (enum rtx_code); extern enum rtx_code unsigned_condition (enum rtx_code); extern enum rtx_code signed_condition (enum rtx_code); extern void mark_jump_label (rtx, rtx, int); extern unsigned int cleanup_barriers (void); extern unsigned char squeeze_notes (rtx *, rtx *); extern rtx delete_related_insns (rtx); extern void delete_jump (rtx); extern rtx get_label_before (rtx); extern rtx get_label_after (rtx); extern rtx follow_jumps (rtx); extern rtx *find_constant_term_loc (rtx *); extern rtx try_split (rtx, rtx, int); extern int split_branch_probability; extern rtx split_insns (rtx, rtx); extern rtx simplify_const_unary_operation (enum rtx_code, enum machine_mode, rtx, enum machine_mode); extern rtx simplify_unary_operation (enum rtx_code, enum machine_mode, rtx, enum machine_mode); extern rtx simplify_const_binary_operation (enum rtx_code, enum machine_mode, rtx, rtx); extern rtx simplify_binary_operation (enum rtx_code, enum machine_mode, rtx, rtx); extern rtx simplify_ternary_operation (enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx, rtx); extern rtx simplify_const_relational_operation (enum rtx_code, enum machine_mode, rtx, rtx); extern rtx simplify_relational_operation (enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx); extern rtx simplify_gen_binary (enum rtx_code, enum machine_mode, rtx, rtx); extern rtx simplify_gen_unary (enum rtx_code, enum machine_mode, rtx, enum machine_mode); extern rtx simplify_gen_ternary (enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx, rtx); extern rtx simplify_gen_relational (enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx); extern rtx simplify_subreg (enum machine_mode, rtx, enum machine_mode, unsigned int); extern rtx simplify_gen_subreg (enum machine_mode, rtx, enum machine_mode, unsigned int); extern rtx simplify_replace_rtx (rtx, rtx, rtx); extern rtx simplify_rtx (rtx); extern rtx avoid_constant_pool_reference (rtx); extern unsigned char constant_pool_reference_p (rtx x); extern unsigned char mode_signbit_p (enum machine_mode, rtx); extern enum machine_mode choose_hard_reg_mode (unsigned int, unsigned int, unsigned char); extern rtx set_unique_reg_note (rtx, enum reg_note, rtx); # 1665 "../../GCC/gcc/rtl.h" typedef struct replace_label_data { rtx r1; rtx r2; unsigned char update_label_nuses; } replace_label_data; extern int rtx_addr_can_trap_p (rtx); extern unsigned char nonzero_address_p (rtx); extern int rtx_unstable_p (rtx); extern int rtx_varies_p (rtx, int); extern int rtx_addr_varies_p (rtx, int); extern long get_integer_term (rtx); extern rtx get_related_value (rtx); extern int reg_mentioned_p (rtx, rtx); extern int count_occurrences (rtx, rtx, int); extern int reg_referenced_p (rtx, rtx); extern int reg_used_between_p (rtx, rtx, rtx); extern int reg_set_between_p (rtx, rtx, rtx); extern int commutative_operand_precedence (rtx); extern int swap_commutative_operands_p (rtx, rtx); extern int modified_between_p (rtx, rtx, rtx); extern int no_labels_between_p (rtx, rtx); extern int modified_in_p (rtx, rtx); extern int reg_set_p (rtx, rtx); extern rtx single_set_2 (rtx, rtx); extern int multiple_sets (rtx); extern int set_noop_p (rtx); extern int noop_move_p (rtx); extern rtx find_last_value (rtx, rtx *, rtx, int); extern int refers_to_regno_p (unsigned int, unsigned int, rtx, rtx *); extern int reg_overlap_mentioned_p (rtx, rtx); extern rtx set_of (rtx, rtx); extern void note_stores (rtx, void (*) (rtx, rtx, void *), void *); extern void note_uses (rtx *, void (*) (rtx *, void *), void *); extern int dead_or_set_p (rtx, rtx); extern int dead_or_set_regno_p (rtx, unsigned int); extern rtx find_reg_note (rtx, enum reg_note, rtx); extern rtx find_regno_note (rtx, enum reg_note, unsigned int); extern rtx find_reg_equal_equiv_note (rtx); extern int find_reg_fusage (rtx, enum rtx_code, rtx); extern int find_regno_fusage (rtx, enum rtx_code, unsigned int); extern int pure_call_p (rtx); extern void remove_note (rtx, rtx); extern int side_effects_p (rtx); extern int volatile_refs_p (rtx); extern int volatile_insn_p (rtx); extern int may_trap_p (rtx); extern int may_trap_after_code_motion_p (rtx); extern int may_trap_or_fault_p (rtx); extern int inequality_comparisons_p (rtx); extern rtx replace_rtx (rtx, rtx, rtx); extern int replace_label (rtx *, void *); extern int rtx_referenced_p (rtx, rtx); extern unsigned char tablejump_p (rtx, rtx *, rtx *); extern int computed_jump_p (rtx); typedef int (*rtx_function) (rtx *, void *); extern int for_each_rtx (rtx *, rtx_function, void *); extern rtx regno_use_in (unsigned int, rtx); extern int auto_inc_p (rtx); extern int in_expr_list_p (rtx, rtx); extern void remove_node_from_expr_list (rtx, rtx *); extern int loc_mentioned_in_p (rtx *, rtx); extern rtx find_first_parameter_load (rtx, rtx); extern unsigned char keep_with_call_p (rtx); extern unsigned char label_is_jump_target_p (rtx, rtx); extern int insn_rtx_cost (rtx); extern rtx canonicalize_condition (rtx, rtx, int, rtx *, rtx, int, int); extern rtx get_condition (rtx, rtx *, int, int); extern rtx find_use_as_address (rtx, rtx, long); void free_EXPR_LIST_list (rtx *); void free_INSN_LIST_list (rtx *); void free_EXPR_LIST_node (rtx); void free_INSN_LIST_node (rtx); rtx alloc_INSN_LIST (rtx, rtx); rtx alloc_EXPR_LIST (int, rtx, rtx); void free_DEPS_LIST_list (rtx *); rtx alloc_DEPS_LIST (rtx, rtx, int); void remove_free_DEPS_LIST_elem (rtx, rtx *); void remove_free_INSN_LIST_elem (rtx, rtx *); rtx remove_list_elem (rtx, rtx *); rtx copy_DEPS_LIST_list (rtx); extern int max_parallel; extern void free_reg_info (void); extern int asm_noperands (rtx); extern const char *decode_asm_operands (rtx, rtx *, rtx **, const char **, enum machine_mode *); extern enum reg_class reg_preferred_class (int); extern enum reg_class reg_alternate_class (int); extern void split_all_insns (int); extern unsigned int split_all_insns_noflow (void); extern rtx const_int_rtx[64 * 2 + 1]; extern rtx const_true_rtx; extern rtx const_tiny_rtx[3][(int) MAX_MACHINE_MODE]; # 1815 "../../GCC/gcc/rtl.h" enum global_rtl_index { GR_PC, GR_CC0, GR_STACK_POINTER, GR_FRAME_POINTER, # 1830 "../../GCC/gcc/rtl.h" GR_HARD_FRAME_POINTER, GR_ARG_POINTER, GR_VIRTUAL_INCOMING_ARGS, GR_VIRTUAL_STACK_ARGS, GR_VIRTUAL_STACK_DYNAMIC, GR_VIRTUAL_OUTGOING_ARGS, GR_VIRTUAL_CFA, GR_MAX }; extern rtx global_rtl[GR_MAX]; # 1863 "../../GCC/gcc/rtl.h" extern rtx pic_offset_table_rtx; extern rtx static_chain_rtx; extern rtx static_chain_incoming_rtx; extern rtx return_address_pointer_rtx; # 1 "./genrtl.h" 1 extern rtx gen_rtx_fmt_ee (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1); extern rtx gen_rtx_fmt_ue (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1); extern rtx gen_rtx_fmt_uei (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1, int arg2); extern rtx gen_rtx_fmt_E (enum rtx_code, enum machine_mode mode, rtvec arg0); extern rtx gen_rtx_fmt_e (enum rtx_code, enum machine_mode mode, rtx arg0); extern rtx gen_rtx_fmt_iuuBieiee (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2, struct basic_block_def *arg3, int arg4, rtx arg5, int arg6, rtx arg7, rtx arg8); extern rtx gen_rtx_fmt_iuuBieiee0 (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2, struct basic_block_def *arg3, int arg4, rtx arg5, int arg6, rtx arg7, rtx arg8); extern rtx gen_rtx_fmt_iuuBieieee (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2, struct basic_block_def *arg3, int arg4, rtx arg5, int arg6, rtx arg7, rtx arg8, rtx arg9); extern rtx gen_rtx_fmt_iuu000000 (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2); extern rtx gen_rtx_fmt_iuuB00is (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2, struct basic_block_def *arg3, int arg4, const char *arg5); extern rtx gen_rtx_fmt_s (enum rtx_code, enum machine_mode mode, const char *arg0); extern rtx gen_rtx_fmt_ssiEEsi (enum rtx_code, enum machine_mode mode, const char *arg0, const char *arg1, int arg2, rtvec arg3, rtvec arg4, const char *arg5, int arg6); extern rtx gen_rtx_fmt_Ei (enum rtx_code, enum machine_mode mode, rtvec arg0, int arg1); extern rtx gen_rtx_fmt_eEee0 (enum rtx_code, enum machine_mode mode, rtx arg0, rtvec arg1, rtx arg2, rtx arg3); extern rtx gen_rtx_fmt_eee (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1, rtx arg2); extern rtx gen_rtx_fmt_ (enum rtx_code, enum machine_mode mode); extern rtx gen_rtx_fmt_i (enum rtx_code, enum machine_mode mode, int arg0); extern rtx gen_rtx_fmt_w (enum rtx_code, enum machine_mode mode, long arg0); extern rtx gen_rtx_fmt_0 (enum rtx_code, enum machine_mode mode); extern rtx gen_rtx_fmt_i00 (enum rtx_code, enum machine_mode mode, int arg0); extern rtx gen_rtx_fmt_ei (enum rtx_code, enum machine_mode mode, rtx arg0, int arg1); extern rtx gen_rtx_fmt_e0 (enum rtx_code, enum machine_mode mode, rtx arg0); extern rtx gen_rtx_fmt_u (enum rtx_code, enum machine_mode mode, rtx arg0); extern rtx gen_rtx_fmt_s00 (enum rtx_code, enum machine_mode mode, const char *arg0); extern rtx gen_rtx_fmt_te (enum rtx_code, enum machine_mode mode, union tree_node *arg0, rtx arg1); extern rtx gen_rtx_fmt_iss (enum rtx_code, enum machine_mode mode, int arg0, const char *arg1, const char *arg2); extern rtx gen_rtx_fmt_is (enum rtx_code, enum machine_mode mode, int arg0, const char *arg1); extern rtx gen_rtx_fmt_isE (enum rtx_code, enum machine_mode mode, int arg0, const char *arg1, rtvec arg2); extern rtx gen_rtx_fmt_iE (enum rtx_code, enum machine_mode mode, int arg0, rtvec arg1); extern rtx gen_rtx_fmt_ss (enum rtx_code, enum machine_mode mode, const char *arg0, const char *arg1); extern rtx gen_rtx_fmt_sEss (enum rtx_code, enum machine_mode mode, const char *arg0, rtvec arg1, const char *arg2, const char *arg3); extern rtx gen_rtx_fmt_eE (enum rtx_code, enum machine_mode mode, rtx arg0, rtvec arg1); extern rtx gen_rtx_fmt_Ess (enum rtx_code, enum machine_mode mode, rtvec arg0, const char *arg1, const char *arg2); extern rtx gen_rtx_fmt_ses (enum rtx_code, enum machine_mode mode, const char *arg0, rtx arg1, const char *arg2); extern rtx gen_rtx_fmt_sss (enum rtx_code, enum machine_mode mode, const char *arg0, const char *arg1, const char *arg2); extern rtx gen_rtx_fmt_sse (enum rtx_code, enum machine_mode mode, const char *arg0, const char *arg1, rtx arg2); extern rtx gen_rtx_fmt_sies (enum rtx_code, enum machine_mode mode, const char *arg0, int arg1, rtx arg2, const char *arg3); extern rtx gen_rtx_fmt_sE (enum rtx_code, enum machine_mode mode, const char *arg0, rtvec arg1); extern rtx gen_rtx_fmt_ii (enum rtx_code, enum machine_mode mode, int arg0, int arg1); extern rtx gen_rtx_fmt_Ee (enum rtx_code, enum machine_mode mode, rtvec arg0, rtx arg1); # 1872 "../../GCC/gcc/rtl.h" 2 # 1883 "../../GCC/gcc/rtl.h" extern rtx gen_rtx_CONST_INT (enum machine_mode, long); extern rtx gen_rtx_CONST_VECTOR (enum machine_mode, rtvec); extern rtx gen_raw_REG (enum machine_mode, int); extern rtx gen_rtx_REG (enum machine_mode, unsigned); extern rtx gen_rtx_SUBREG (enum machine_mode, rtx, int); extern rtx gen_rtx_MEM (enum machine_mode, rtx); # 1956 "../../GCC/gcc/rtl.h" extern rtx output_constant_def (tree, int); extern rtx lookup_constant_def (tree); extern int flow2_completed; extern int reload_completed; extern int epilogue_completed; extern int reload_in_progress; extern int regstack_completed; # 1988 "../../GCC/gcc/rtl.h" extern int cse_not_expected; extern int no_new_pseudos; extern int rtx_to_tree_code (enum rtx_code); extern int delete_trivially_dead_insns (rtx, int); extern int cse_main (rtx, int); extern int exp_equiv_p (rtx, rtx, int, unsigned char); extern unsigned hash_rtx (rtx x, enum machine_mode, int *, int *, unsigned char); extern int comparison_dominates_p (enum rtx_code, enum rtx_code); extern int condjump_p (rtx); extern int any_condjump_p (rtx); extern int any_uncondjump_p (rtx); extern rtx pc_set (rtx); extern rtx condjump_label (rtx); extern int simplejump_p (rtx); extern int returnjump_p (rtx); extern int onlyjump_p (rtx); extern int only_sets_cc0_p (rtx); extern int sets_cc0_p (rtx); extern int invert_jump_1 (rtx, rtx); extern int invert_jump (rtx, rtx, int); extern int rtx_renumbered_equal_p (rtx, rtx); extern int true_regnum (rtx); extern unsigned int reg_or_subregno (rtx); extern int redirect_jump_1 (rtx, rtx); extern void redirect_jump_2 (rtx, rtx, rtx, int, int); extern int redirect_jump (rtx, rtx, int); extern void rebuild_jump_labels (rtx); extern rtx reversed_comparison (rtx, enum machine_mode); extern enum rtx_code reversed_comparison_code (rtx, rtx); extern enum rtx_code reversed_comparison_code_parts (enum rtx_code, rtx, rtx, rtx); extern void delete_for_peephole (rtx, rtx); extern int condjump_in_parallel_p (rtx); extern unsigned int purge_line_number_notes (void); extern int max_reg_num (void); extern int max_label_num (void); extern int get_first_label_num (void); extern void maybe_set_first_label_num (rtx); extern void delete_insns_since (rtx); extern void mark_reg_pointer (rtx, int); extern void mark_user_reg (rtx); extern void reset_used_flags (rtx); extern void set_used_flags (rtx); extern void reorder_insns (rtx, rtx, rtx); extern void reorder_insns_nobb (rtx, rtx, rtx); extern int get_max_uid (void); extern int in_sequence_p (void); extern void force_next_line_note (void); extern void init_emit (void); extern void init_emit_once (int); extern void push_topmost_sequence (void); extern void pop_topmost_sequence (void); extern void set_new_first_and_last_insn (rtx, rtx); extern unsigned int unshare_all_rtl (void); extern void unshare_all_rtl_again (rtx); extern void unshare_all_rtl_in_chain (rtx); extern void verify_rtl_sharing (void); extern void set_first_insn (rtx); extern void set_last_insn (rtx); extern void link_cc0_insns (rtx); extern void add_insn (rtx); extern void add_insn_before (rtx, rtx); extern void add_insn_after (rtx, rtx); extern void remove_insn (rtx); extern void emit_insn_after_with_line_notes (rtx, rtx, rtx); extern rtx emit (rtx); extern void renumber_insns (void); extern rtx delete_insn (rtx); extern rtx entry_of_function (void); extern void emit_insn_at_entry (rtx); extern void delete_insn_chain (rtx, rtx); extern rtx unlink_insn_chain (rtx, rtx); extern rtx delete_insn_and_edges (rtx); extern void delete_insn_chain_and_edges (rtx, rtx); extern rtx gen_lowpart_SUBREG (enum machine_mode, rtx); extern rtx gen_const_mem (enum machine_mode, rtx); extern rtx gen_frame_mem (enum machine_mode, rtx); extern rtx gen_tmp_stack_mem (enum machine_mode, rtx); extern unsigned char validate_subreg (enum machine_mode, enum machine_mode, rtx, unsigned int); extern unsigned int extended_count (rtx, enum machine_mode, int); extern rtx remove_death (unsigned int, rtx); extern void dump_combine_stats (FILE *); extern void dump_combine_total_stats (FILE *); extern void print_rtl_slim_with_bb (FILE *, rtx, int); extern void dump_insn_slim (FILE *f, rtx x); extern void debug_insn_slim (rtx x); extern void schedule_insns (void); extern void schedule_ebbs (void); extern void fix_sched_param (const char *, const char *); extern const char *print_rtx_head; extern void debug_rtx (rtx); extern void debug_rtx_list (rtx, int); extern void debug_rtx_range (rtx, rtx); extern rtx debug_rtx_find (rtx, int); extern void print_mem_expr (FILE *, tree); extern void print_rtl (FILE *, rtx); extern void print_simple_rtl (FILE *, rtx); extern int print_rtl_single (FILE *, rtx); extern void print_inline_rtx (FILE *, rtx, int); extern void branch_target_load_optimize (unsigned char); extern void reposition_prologue_and_epilogue_notes (rtx); extern void thread_prologue_and_epilogue_insns (rtx); extern int prologue_epilogue_contains (rtx); extern int sibcall_epilogue_contains (rtx); extern void mark_temp_addr_taken (rtx); extern void update_temp_slot_address (rtx, rtx); extern void expand_null_return (void); extern void expand_naked_return (void); extern void emit_jump (rtx); extern rtx move_by_pieces (rtx, rtx, unsigned long, unsigned int, int); extern void delete_dead_jumptables (void); extern void print_rtl_with_bb (FILE *, rtx); extern void dump_flow_info (FILE *, int); extern void init_expmed (void); extern void expand_inc (rtx, rtx); extern void expand_dec (rtx, rtx); extern unsigned char can_copy_p (enum machine_mode); extern rtx fis_get_condition (rtx); extern void mark_elimination (int, int); extern void dump_global_regs (FILE *); extern void build_insn_chain (rtx); extern int reg_classes_intersect_p (enum reg_class, enum reg_class); extern int reg_class_subset_p (enum reg_class, enum reg_class); extern void globalize_reg (int); extern void init_reg_modes_once (void); extern void init_regs (void); extern void init_fake_stack_mems (void); extern void init_reg_sets (void); extern void regclass_init (void); extern void regclass (rtx, int); extern void reg_scan (rtx, unsigned int); extern void fix_register (const char *, int, int); extern void init_subregs_of_mode (void); extern void record_subregs_of_mode (rtx); extern unsigned char invalid_mode_change_p (unsigned int, enum reg_class, enum machine_mode); extern void dbr_schedule (rtx); extern void dump_local_alloc (FILE *); extern int function_invariant_p (rtx); enum libcall_type { LCT_NORMAL = 0, LCT_CONST = 1, LCT_PURE = 2, LCT_CONST_MAKE_BLOCK = 3, LCT_PURE_MAKE_BLOCK = 4, LCT_NORETURN = 5, LCT_THROW = 6, LCT_RETURNS_TWICE = 7 }; extern void emit_library_call (rtx, enum libcall_type, enum machine_mode, int, ...); extern rtx emit_library_call_value (rtx, rtx, enum libcall_type, enum machine_mode, int, ...); extern void init_varasm_once (void); extern enum tls_model decl_default_tls_model (tree); extern void traverse_md_constants (int (*) (void **, void *), void *); struct md_constant { char *name, *value; }; extern int read_skip_spaces (FILE *); extern unsigned char read_rtx (FILE *, rtx *, int *); extern void copy_rtx_ptr_loc (const void *, const void *); extern void print_rtx_ptr_loc (const void *); extern const char *join_c_conditions (const char *, const char *); extern void print_c_condition (const char *); extern const char *read_rtx_filename; extern int read_rtx_lineno; extern void clear_reg_alias_info (rtx); extern rtx canon_rtx (rtx); extern int true_dependence (rtx, enum machine_mode, rtx, int (*)(rtx, int)); extern rtx get_addr (rtx); extern int canon_true_dependence (rtx, enum machine_mode, rtx, rtx, int (*)(rtx, int)); extern int read_dependence (rtx, rtx); extern int anti_dependence (rtx, rtx); extern int output_dependence (rtx, rtx); extern void init_alias_once (void); extern void init_alias_analysis (void); extern void end_alias_analysis (void); extern unsigned char memory_modified_in_insn_p (rtx, rtx); extern rtx find_base_term (rtx); extern rtx gen_hard_reg_clobber (enum machine_mode, unsigned int); extern rtx get_reg_known_value (unsigned int); extern unsigned char get_reg_known_equiv_p (unsigned int); extern int stack_regs_mentioned (rtx insn); extern rtx stack_limit_rtx; extern void invert_br_probabilities (rtx); extern unsigned char expensive_function_p (int); extern void tracer (unsigned int); extern unsigned int variable_tracking_main (void); extern void get_mode_bounds (enum machine_mode, int, enum machine_mode, rtx *, rtx *); extern rtx reversed_condition (rtx); extern rtx compare_and_jump_seq (rtx, rtx, enum rtx_code, rtx, int, rtx); extern rtx canon_condition (rtx); extern void simplify_using_condition (rtx, rtx *, struct bitmap_head_def *); struct rtl_hooks { rtx (*gen_lowpart) (enum machine_mode, rtx); rtx (*gen_lowpart_no_emit) (enum machine_mode, rtx); rtx (*reg_nonzero_bits) (rtx, enum machine_mode, rtx, enum machine_mode, unsigned long, unsigned long *); rtx (*reg_num_sign_bit_copies) (rtx, enum machine_mode, rtx, enum machine_mode, unsigned int, unsigned int *); unsigned char (*reg_truncated_to_mode) (enum machine_mode, rtx); }; extern struct rtl_hooks rtl_hooks; extern const struct rtl_hooks general_rtl_hooks; # 45 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/langhooks.h" 1 # 26 "../../GCC/gcc/langhooks.h" struct diagnostic_context; struct gimplify_omp_ctx; typedef void (*lang_print_tree_hook) (FILE *, tree, int indent); struct lang_hooks_for_tree_inlining { tree (*walk_subtrees) (tree *, int *, tree (*) (tree *, int *, void *), void *, struct pointer_set_t*); int (*cannot_inline_tree_fn) (tree *); int (*disregard_inline_limits) (tree); tree (*add_pending_fn_decls) (void *, tree); int (*auto_var_in_fn_p) (tree, tree); int (*anon_aggr_type_p) (tree); unsigned char (*var_mod_type_p) (tree, tree); int (*start_inlining) (tree); void (*end_inlining) (tree); tree (*convert_parm_for_inlining) (tree, tree, tree, int); }; struct lang_hooks_for_callgraph { tree (*analyze_expr) (tree *, int *, tree); void (*expand_function) (tree); }; struct lang_hooks_for_functions { void (*init) (struct function *); void (*final) (struct function *); void (*enter_nested) (struct function *); void (*leave_nested) (struct function *); unsigned char (*missing_noreturn_ok_p) (tree); }; struct lang_hooks_for_tree_dump { unsigned char (*dump_tree) (void *, tree); int (*type_quals) (tree); }; struct lang_hooks_for_types { tree (*make_type) (enum tree_code); tree (*type_for_mode) (enum machine_mode, int); tree (*type_for_size) (unsigned, int); tree (*unsigned_type) (tree); tree (*signed_type) (tree); tree (*signed_or_unsigned_type) (int, tree); tree (*type_promotes_to) (tree); # 135 "../../GCC/gcc/langhooks.h" void (*register_builtin_type) (tree, const char *); void (*incomplete_type_error) (tree value, tree type); tree (*max_size) (tree); void (*omp_firstprivatize_type_sizes) (struct gimplify_omp_ctx *, tree); unsigned char hash_types; }; struct lang_hooks_for_decls { int (*global_bindings_p) (void); void (*insert_block) (tree); tree (*pushdecl) (tree); tree (*getdecls) (void); unsigned char (*warn_unused_global) (tree); void (*final_write_globals) (void); void (*prepare_assemble_variable) (tree); unsigned char (*ok_for_sibcall) (tree); # 200 "../../GCC/gcc/langhooks.h" const char * (*comdat_group) (tree); unsigned char (*omp_privatize_by_reference) (tree); enum omp_clause_default_kind (*omp_predetermined_sharing) (tree); unsigned char (*omp_disregard_value_expr) (tree, unsigned char); unsigned char (*omp_private_debug_clause) (tree, unsigned char); tree (*omp_clause_default_ctor) (tree clause, tree decl); tree (*omp_clause_copy_ctor) (tree clause, tree dst, tree src); tree (*omp_clause_assign_op) (tree clause, tree dst, tree src); tree (*omp_clause_dtor) (tree clause, tree decl); }; struct lang_hooks { const char *name; size_t identifier_size; size_t (*tree_size) (enum tree_code); unsigned int (*init_options) (unsigned int argc, const char **argv); void (*initialize_diagnostics) (struct diagnostic_context *); # 270 "../../GCC/gcc/langhooks.h" int (*handle_option) (size_t code, const char *arg, int value); unsigned char (*missing_argument) (const char *opt, size_t code); # 284 "../../GCC/gcc/langhooks.h" unsigned char (*post_options) (const char **); unsigned char (*init) (void); void (*finish) (void); void (*parse_file) (int); void (*clear_binding_stack) (void); long (*get_alias_set) (tree); tree (*expand_constant) (tree); rtx (*expand_expr) (tree, rtx, enum machine_mode, int, rtx *); int (*expand_decl) (tree); # 325 "../../GCC/gcc/langhooks.h" int (*safe_from_p) (rtx, tree); void (*finish_incomplete_decl) (tree); unsigned char (*mark_addressable) (tree); tree (*staticp) (tree); void (*dup_lang_specific_decl) (tree); void (*set_decl_assembler_name) (tree); unsigned char (*can_use_bit_fields_p) (void); unsigned char reduce_bit_field_operations; unsigned char no_body_blocks; void (*print_statistics) (void); lang_print_tree_hook print_xnode; lang_print_tree_hook print_decl; lang_print_tree_hook print_type; lang_print_tree_hook print_identifier; const char *(*decl_printable_name) (tree decl, int verbosity); const char *(*dwarf_name) (tree, int verbosity); int (*types_compatible_p) (tree x, tree y); tree (*lang_get_callee_fndecl) (tree); void (*print_error_function) (struct diagnostic_context *, const char *); tree (*expr_size) (tree); # 414 "../../GCC/gcc/langhooks.h" long (*to_target_charset) (long); const struct attribute_spec *attribute_table; const struct attribute_spec *common_attribute_table; const struct attribute_spec *format_attribute_table; struct lang_hooks_for_functions function; struct lang_hooks_for_tree_inlining tree_inlining; struct lang_hooks_for_callgraph callgraph; struct lang_hooks_for_tree_dump tree_dump; struct lang_hooks_for_decls decls; struct lang_hooks_for_types types; int (*gimplify_expr) (tree *, tree *, tree *); tree (*fold_obj_type_ref) (tree, tree); # 454 "../../GCC/gcc/langhooks.h" tree (*builtin_function) (const char *name, tree type, int function_code, enum built_in_class bt_class, const char *library_name, tree attrs); void (*init_ts) (void); tree (*expr_to_decl) (tree expr, unsigned char *tc, unsigned char *ti, unsigned char *se); }; extern const struct lang_hooks lang_hooks; # 46 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/../libcpp/include/cpplib.h" 1 # 28 "../../GCC/gcc/../libcpp/include/cpplib.h" # 1 "../../GCC/gcc/../libcpp/include/symtab.h" 1 # 29 "../../GCC/gcc/../libcpp/include/cpplib.h" 2 # 1 "../../GCC/gcc/../libcpp/include/line-map.h" 1 # 30 "../../GCC/gcc/../libcpp/include/cpplib.h" 2 typedef struct cpp_reader cpp_reader; typedef struct cpp_buffer cpp_buffer; typedef struct cpp_options cpp_options; typedef struct cpp_token cpp_token; typedef struct cpp_string cpp_string; typedef struct cpp_hashnode cpp_hashnode; typedef struct cpp_macro cpp_macro; typedef struct cpp_callbacks cpp_callbacks; typedef struct cpp_dir cpp_dir; struct answer; struct _cpp_file; # 142 "../../GCC/gcc/../libcpp/include/cpplib.h" enum cpp_ttype { CPP_EQ, CPP_NOT, CPP_GREATER, CPP_LESS, CPP_PLUS, CPP_MINUS, CPP_MULT, CPP_DIV, CPP_MOD, CPP_AND, CPP_OR, CPP_XOR, CPP_RSHIFT, CPP_LSHIFT, CPP_COMPL, CPP_AND_AND, CPP_OR_OR, CPP_QUERY, CPP_COLON, CPP_COMMA, CPP_OPEN_PAREN, CPP_CLOSE_PAREN, CPP_EOF, CPP_EQ_EQ, CPP_NOT_EQ, CPP_GREATER_EQ, CPP_LESS_EQ, CPP_PLUS_EQ, CPP_MINUS_EQ, CPP_MULT_EQ, CPP_DIV_EQ, CPP_MOD_EQ, CPP_AND_EQ, CPP_OR_EQ, CPP_XOR_EQ, CPP_RSHIFT_EQ, CPP_LSHIFT_EQ, CPP_HASH, CPP_PASTE, CPP_OPEN_SQUARE, CPP_CLOSE_SQUARE, CPP_OPEN_BRACE, CPP_CLOSE_BRACE, CPP_SEMICOLON, CPP_ELLIPSIS, CPP_PLUS_PLUS, CPP_MINUS_MINUS, CPP_DEREF, CPP_DOT, CPP_SCOPE, CPP_DEREF_STAR, CPP_DOT_STAR, CPP_ATSIGN, CPP_NAME, CPP_AT_NAME, CPP_NUMBER, CPP_CHAR, CPP_WCHAR, CPP_OTHER, CPP_STRING, CPP_WSTRING, CPP_OBJC_STRING, CPP_HEADER_NAME, CPP_COMMENT, CPP_MACRO_ARG, CPP_PRAGMA, CPP_PRAGMA_EOL, CPP_PADDING, N_TTYPES, CPP_LAST_EQ = CPP_LSHIFT, CPP_FIRST_DIGRAPH = CPP_HASH, CPP_LAST_PUNCTUATOR= CPP_ATSIGN, CPP_LAST_CPP_OP = CPP_LESS_EQ }; enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_STDC89, CLK_STDC94, CLK_STDC99, CLK_GNUCXX, CLK_CXX98, CLK_ASM}; struct cpp_string { unsigned int len; const unsigned char *text; }; # 180 "../../GCC/gcc/../libcpp/include/cpplib.h" enum cpp_token_fld_kind { CPP_TOKEN_FLD_NODE, CPP_TOKEN_FLD_SOURCE, CPP_TOKEN_FLD_STR, CPP_TOKEN_FLD_ARG_NO, CPP_TOKEN_FLD_PRAGMA, CPP_TOKEN_FLD_NONE }; struct cpp_token { source_location src_loc; __extension__ enum cpp_ttype type : 8; unsigned char flags; union cpp_token_u { cpp_hashnode * node; cpp_token * source; struct cpp_string str; unsigned int arg_no; unsigned int pragma; } val; }; extern enum cpp_token_fld_kind cpp_token_val_index (cpp_token *tok); # 239 "../../GCC/gcc/../libcpp/include/cpplib.h" typedef unsigned int cppchar_t; typedef int cppchar_signed_t; enum cpp_deps_style { DEPS_NONE = 0, DEPS_USER, DEPS_SYSTEM }; enum cpp_normalize_level { normalized_KC = 0, normalized_C, normalized_identifier_C, normalized_none }; struct cpp_options { unsigned int tabstop; enum c_lang lang; unsigned char cplusplus; unsigned char cplusplus_comments; unsigned char objc; unsigned char discard_comments; unsigned char discard_comments_in_macro_exp; unsigned char trigraphs; unsigned char digraphs; unsigned char extended_numbers; unsigned char print_include_names; unsigned char pedantic_errors; unsigned char inhibit_warnings; unsigned char warn_deprecated; unsigned char warn_system_headers; unsigned char inhibit_errors; unsigned char warn_comments; unsigned char warn_missing_include_dirs; unsigned char warn_trigraphs; unsigned char warn_multichar; unsigned char warn_traditional; unsigned char warn_long_long; unsigned char warn_endif_labels; unsigned char warn_num_sign_change; unsigned char warn_variadic_macros; unsigned char warnings_are_errors; unsigned char remap; unsigned char dollars_in_ident; unsigned char extended_identifiers; unsigned char warn_dollars; unsigned char warn_undef; unsigned char warn_unused_macros; unsigned char c99; unsigned char std; unsigned char pedantic; unsigned char preprocessed; unsigned char show_column; unsigned char operator_names; unsigned char traditional; const char *narrow_charset; const char *wide_charset; const char *input_charset; enum cpp_normalize_level warn_normalize; unsigned char warn_invalid_pch; unsigned char restore_pch_deps; struct { enum cpp_deps_style style; unsigned char missing_files; unsigned char phony_targets; unsigned char ignore_main_file; } deps; size_t precision, char_precision, int_precision, wchar_precision; unsigned char unsigned_char, unsigned_wchar; unsigned char bytes_big_endian; unsigned char stdc_0_in_system_headers; unsigned char client_diagnostic; }; typedef const char *(*missing_header_cb)(cpp_reader *, const char *header, cpp_dir **); struct cpp_callbacks { void (*line_change) (cpp_reader *, const cpp_token *, int); void (*file_change) (cpp_reader *, const struct line_map *); void (*dir_change) (cpp_reader *, const char *); void (*include) (cpp_reader *, unsigned int, const unsigned char *, const char *, int, const cpp_token **); void (*define) (cpp_reader *, unsigned int, cpp_hashnode *); void (*undef) (cpp_reader *, unsigned int, cpp_hashnode *); void (*ident) (cpp_reader *, unsigned int, const cpp_string *); void (*def_pragma) (cpp_reader *, unsigned int); int (*valid_pch) (cpp_reader *, const char *, int); void (*read_pch) (cpp_reader *, const char *, int, const char *); missing_header_cb missing_header; void (*error) (cpp_reader *, int, const char *, va_list *) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__nonnull__ (3))); }; struct cpp_dir { struct cpp_dir *next; char *name; unsigned int len; unsigned char sysp; const char **name_map; char *(*construct) (const char *header, cpp_dir *dir); ino_t ino; dev_t dev; unsigned char user_supplied_p; }; extern const char *progname; # 539 "../../GCC/gcc/../libcpp/include/cpplib.h" enum node_type { NT_VOID = 0, NT_MACRO, NT_ASSERTION }; enum builtin_type { BT_SPECLINE = 0, BT_DATE, BT_FILE, BT_BASE_FILE, BT_INCLUDE_LEVEL, BT_TIME, BT_STDC, BT_PRAGMA, BT_TIMESTAMP }; # 568 "../../GCC/gcc/../libcpp/include/cpplib.h" enum { NTV_MACRO, NTV_ANSWER, NTV_BUILTIN, NTV_ARGUMENT, NTV_NONE }; # 587 "../../GCC/gcc/../libcpp/include/cpplib.h" union _cpp_hashnode_value { cpp_macro * macro; struct answer * answers; enum builtin_type builtin; unsigned short arg_index; }; struct cpp_hashnode { struct ht_identifier ident; unsigned int is_directive : 1; unsigned int directive_index : 7; unsigned char rid_code; __extension__ enum node_type type : 8; unsigned char flags; union _cpp_hashnode_value value; }; extern cpp_reader *cpp_create_reader (enum c_lang, struct ht *, struct line_maps *); extern void cpp_set_lang (cpp_reader *, enum c_lang); extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int); extern cpp_options *cpp_get_options (cpp_reader *); extern cpp_callbacks *cpp_get_callbacks (cpp_reader *); extern void cpp_set_callbacks (cpp_reader *, cpp_callbacks *); extern struct deps *cpp_get_deps (cpp_reader *); extern const char *cpp_read_main_file (cpp_reader *, const char *); extern void cpp_init_builtins (cpp_reader *, int); extern void cpp_post_options (cpp_reader *); extern void cpp_init_iconv (cpp_reader *); extern int cpp_finish (cpp_reader *, FILE *deps_stream); extern void cpp_destroy (cpp_reader *); extern unsigned int cpp_errors (cpp_reader *); extern unsigned int cpp_token_len (const cpp_token *); extern unsigned char *cpp_token_as_text (cpp_reader *, const cpp_token *); extern unsigned char *cpp_spell_token (cpp_reader *, const cpp_token *, unsigned char *, unsigned char); extern void cpp_register_pragma (cpp_reader *, const char *, const char *, void (*) (cpp_reader *), unsigned char); extern void cpp_register_deferred_pragma (cpp_reader *, const char *, const char *, unsigned, unsigned char, unsigned char); extern int cpp_avoid_paste (cpp_reader *, const cpp_token *, const cpp_token *); extern const cpp_token *cpp_get_token (cpp_reader *); extern const unsigned char *cpp_macro_definition (cpp_reader *, const cpp_hashnode *); extern void _cpp_backup_tokens (cpp_reader *, unsigned int); extern cppchar_t cpp_interpret_charconst (cpp_reader *, const cpp_token *, unsigned int *, int *); extern unsigned char cpp_interpret_string (cpp_reader *, const cpp_string *, size_t, cpp_string *, unsigned char); extern unsigned char cpp_interpret_string_notranslate (cpp_reader *, const cpp_string *, size_t, cpp_string *, unsigned char); extern cppchar_t cpp_host_to_exec_charset (cpp_reader *, cppchar_t); extern void cpp_define (cpp_reader *, const char *); extern void cpp_assert (cpp_reader *, const char *); extern void cpp_undef (cpp_reader *, const char *); extern void cpp_unassert (cpp_reader *, const char *); extern void cpp_undef_all (cpp_reader *); extern cpp_buffer *cpp_push_buffer (cpp_reader *, const unsigned char *, size_t, int); extern int cpp_defined (cpp_reader *, const unsigned char *, int); typedef unsigned long cpp_num_part; typedef struct cpp_num cpp_num; struct cpp_num { cpp_num_part high; cpp_num_part low; unsigned char unsignedp; unsigned char overflow; }; # 754 "../../GCC/gcc/../libcpp/include/cpplib.h" extern unsigned cpp_classify_number (cpp_reader *, const cpp_token *); extern cpp_num cpp_interpret_integer (cpp_reader *, const cpp_token *, unsigned int type); cpp_num cpp_num_sign_extend (cpp_num, size_t); # 786 "../../GCC/gcc/../libcpp/include/cpplib.h" extern void cpp_error (cpp_reader *, int, const char *msgid, ...) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__nonnull__ (3))); extern void cpp_errno (cpp_reader *, int, const char *msgid); extern void cpp_error_with_line (cpp_reader *, int, source_location, unsigned, const char *msgid, ...) __attribute__ ((__format__ (__printf__, 5, 6))) __attribute__ ((__nonnull__ (5))); extern int cpp_ideq (const cpp_token *, const char *); extern void cpp_output_line (cpp_reader *, FILE *); extern void cpp_output_token (const cpp_token *, FILE *); extern const char *cpp_type2name (enum cpp_ttype); extern cppchar_t cpp_parse_escape (cpp_reader *, const unsigned char ** pstr, const unsigned char *limit, int wide); extern cpp_hashnode *cpp_lookup (cpp_reader *, const unsigned char *, unsigned int); typedef int (*cpp_cb) (cpp_reader *, cpp_hashnode *, void *); extern void cpp_forall_identifiers (cpp_reader *, cpp_cb, void *); extern void cpp_scan_nooutput (cpp_reader *); extern int cpp_sys_macro_p (cpp_reader *); extern unsigned char *cpp_quote_string (unsigned char *, const unsigned char *, unsigned int); extern unsigned char cpp_included (cpp_reader *, const char *); extern void cpp_make_system_header (cpp_reader *, int, int); extern unsigned char cpp_push_include (cpp_reader *, const char *); extern void cpp_change_file (cpp_reader *, enum lc_reason, const char *); extern const char *cpp_get_path (struct _cpp_file *); extern cpp_dir *cpp_get_dir (struct _cpp_file *); extern cpp_buffer *cpp_get_buffer (cpp_reader *); extern struct _cpp_file *cpp_get_file (cpp_buffer *); extern cpp_buffer *cpp_get_prev (cpp_buffer *); struct save_macro_data; extern int cpp_save_state (cpp_reader *, FILE *); extern int cpp_write_pch_deps (cpp_reader *, FILE *); extern int cpp_write_pch_state (cpp_reader *, FILE *); extern int cpp_valid_state (cpp_reader *, const char *, int); extern void cpp_prepare_state (cpp_reader *, struct save_macro_data **); extern int cpp_read_state (cpp_reader *, const char *, FILE *, struct save_macro_data *); # 48 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/timevar.h" 1 # 52 "../../GCC/gcc/timevar.h" struct timevar_time_def { double user; double sys; double wall; unsigned ggc_mem; }; typedef enum { # 1 "../../GCC/gcc/timevar.def" 1 # 34 "../../GCC/gcc/timevar.def" TV_TOTAL, TV_GC, TV_DUMP, TV_CGRAPH, TV_CGRAPHOPT, TV_IPA_CONSTANT_PROP, TV_IPA_REFERENCE, TV_IPA_PURE_CONST, TV_IPA_TYPE_ESCAPE, TV_IPA_PTA, TV_CFG, TV_CLEANUP_CFG, TV_CFG_VERIFY, TV_DELETE_TRIVIALLY_DEAD, TV_LIFE, TV_LIFE_UPDATE, TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP, TV_CPP, TV_LEX, TV_PARSE, TV_NAME_LOOKUP, TV_INLINE_HEURISTICS, TV_INTEGRATION, TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG, TV_TREE_CLEANUP_CFG, TV_TREE_VRP, TV_TREE_COPY_PROP, TV_TREE_STORE_COPY_PROP, TV_FIND_REFERENCED_VARS, TV_TREE_PTA, TV_TREE_MAY_ALIAS, TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS, TV_TREE_SSA_OTHER, TV_TREE_SSA_INCREMENTAL, TV_TREE_OPS, TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_STORE_CCP, TV_TREE_CCP, TV_TREE_PHI_CPROP, TV_TREE_SPLIT_EDGES, TV_TREE_REASSOC, TV_TREE_PRE, TV_TREE_REDPHI, TV_TREE_FRE, TV_TREE_SINK, TV_TREE_PHIOPT, TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE, TV_TREE_DSE, TV_TREE_MERGE_PHI, TV_TREE_LOOP, TV_TREE_LOOP_BOUNDS, TV_LIM, TV_TREE_LOOP_IVCANON, TV_SCEV_CONST, TV_TREE_LOOP_UNSWITCH, TV_COMPLETE_UNROLL, TV_TREE_VECTORIZATION, TV_TREE_LINEAR_TRANSFORM, TV_TREE_PREFETCH, TV_TREE_LOOP_IVOPTS, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI, TV_TREE_CH, TV_TREE_SSA_UNCPROP, TV_TREE_SSA_TO_NORMAL, TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY, TV_TREE_STMT_VERIFY, TV_CGRAPH_VERIFY, TV_DOM_FRONTIERS, TV_DOMINANCE, TV_CONTROL_DEPENDENCES, TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION, TV_EXPAND, TV_VARCONST, TV_JUMP, TV_CSE, TV_LOOP, TV_GCSE, TV_CPROP1, TV_PRE, TV_HOIST, TV_CPROP2, TV_LSM, TV_BYPASS, TV_TRACER, TV_WEB, TV_CSE2, TV_BRANCH_PROB, TV_VPT, TV_FLOW, TV_COMBINE, TV_IFCVT, TV_SEE, TV_REGMOVE, TV_MODE_SWITCH, TV_SMS, TV_SCHED, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_RELOAD_CSE_REGS, TV_SEQABSTR, TV_GCSE_AFTER_RELOAD, TV_FLOW2, TV_IFCVT2, TV_PEEPHOLE2, TV_RENAME_REGISTERS, TV_SCHED2, TV_MACH_DEP, TV_DBR_SCHED, TV_REORDER_BLOCKS, TV_SHORTEN_BRANCH, TV_REG_STACK, TV_FINAL, TV_SYMOUT, TV_VAR_TRACKING, TV_REST_OF_COMPILATION, # 76 "../../GCC/gcc/timevar.h" 2 TIMEVAR_LAST } timevar_id_t; extern void timevar_init (void); extern void timevar_push_1 (timevar_id_t); extern void timevar_pop_1 (timevar_id_t); extern void timevar_start (timevar_id_t); extern void timevar_stop (timevar_id_t); extern void timevar_print (FILE *); extern void print_time (const char *, long); extern unsigned char timevar_enable; extern size_t timevar_ggc_mem_total; # 49 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/c-pragma.h" 1 # 24 "../../GCC/gcc/c-pragma.h" # 1 "../../GCC/gcc/../libcpp/include/cpplib.h" 1 # 25 "../../GCC/gcc/c-pragma.h" 2 typedef enum pragma_kind { PRAGMA_NONE = 0, PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER, PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR, PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED, PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR, PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION, PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE, PRAGMA_OMP_THREADPRIVATE, PRAGMA_GCC_PCH_PREPROCESS, PRAGMA_FIRST_EXTERNAL } pragma_kind; extern int yydebug; extern struct cpp_reader* parse_in; # 77 "../../GCC/gcc/c-pragma.h" extern void push_visibility (const char *); extern void pop_visibility (void); extern void init_pragma (void); typedef void (*pragma_handler)(struct cpp_reader *); extern void c_register_pragma (const char *, const char *, pragma_handler); extern void c_register_pragma_with_expansion (const char *, const char *, pragma_handler); extern void c_invoke_pragma_handler (unsigned int); extern void maybe_apply_pragma_weak (tree); extern void maybe_apply_pending_pragma_weaks (void); extern tree maybe_apply_renaming_pragma (tree, tree); extern void add_to_renaming_pragma_list (tree, tree); extern enum cpp_ttype pragma_lex (tree *); extern enum cpp_ttype c_lex_with_flags (tree *, location_t *, unsigned char *); extern int c_lex_string_translate; extern unsigned char c_lex_return_raw_strings; # 50 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/c-tree.h" 1 # 24 "../../GCC/gcc/c-tree.h" # 1 "../../GCC/gcc/c-common.h" 1 # 24 "../../GCC/gcc/c-common.h" # 1 "../../GCC/gcc/../include/splay-tree.h" 1 # 47 "../../GCC/gcc/../include/splay-tree.h" typedef unsigned long int splay_tree_key; typedef unsigned long int splay_tree_value; typedef struct splay_tree_node_s *splay_tree_node; typedef int (*splay_tree_compare_fn) (splay_tree_key, splay_tree_key); typedef void (*splay_tree_delete_key_fn) (splay_tree_key); typedef void (*splay_tree_delete_value_fn) (splay_tree_value); typedef int (*splay_tree_foreach_fn) (splay_tree_node, void*); typedef void *(*splay_tree_allocate_fn) (int, void *); typedef void (*splay_tree_deallocate_fn) (void *, void *); struct splay_tree_node_s { splay_tree_key key; splay_tree_value value; splay_tree_node left; splay_tree_node right; }; struct splay_tree_s { splay_tree_node root; splay_tree_compare_fn comp; splay_tree_delete_key_fn delete_key; splay_tree_delete_value_fn delete_value; splay_tree_allocate_fn allocate; splay_tree_deallocate_fn deallocate; void * allocate_data; }; typedef struct splay_tree_s *splay_tree; extern splay_tree splay_tree_new (splay_tree_compare_fn, splay_tree_delete_key_fn, splay_tree_delete_value_fn); extern splay_tree splay_tree_new_with_allocator (splay_tree_compare_fn, splay_tree_delete_key_fn, splay_tree_delete_value_fn, splay_tree_allocate_fn, splay_tree_deallocate_fn, void *); extern void splay_tree_delete (splay_tree); extern splay_tree_node splay_tree_insert (splay_tree, splay_tree_key, splay_tree_value); extern void splay_tree_remove (splay_tree, splay_tree_key); extern splay_tree_node splay_tree_lookup (splay_tree, splay_tree_key); extern splay_tree_node splay_tree_predecessor (splay_tree, splay_tree_key); extern splay_tree_node splay_tree_successor (splay_tree, splay_tree_key); extern splay_tree_node splay_tree_max (splay_tree); extern splay_tree_node splay_tree_min (splay_tree); extern int splay_tree_foreach (splay_tree, splay_tree_foreach_fn, void*); extern int splay_tree_compare_ints (splay_tree_key, splay_tree_key); extern int splay_tree_compare_pointers (splay_tree_key, splay_tree_key); # 25 "../../GCC/gcc/c-common.h" 2 # 1 "../../GCC/gcc/ggc.h" 1 # 29 "../../GCC/gcc/ggc.h" extern const char empty_string[]; extern const char digit_vector[]; typedef void (*gt_pointer_operator) (void *, void *); # 1 "./gtype-desc.h" 1 # 23 "./gtype-desc.h" enum gt_types_enum { gt_ggc_e_11align_stack, gt_ggc_e_7c_scope, gt_ggc_e_9c_binding, gt_ggc_e_20prod_token_parm_item, gt_ggc_e_12nesting_info, gt_ggc_e_11var_map_elt, gt_ggc_e_20ssa_operand_memory_d, gt_ggc_e_8c_parser, gt_ggc_e_12int_tree_map, gt_ggc_e_6subvar, gt_ggc_e_17VEC_alias_pair_gc, gt_ggc_e_24constant_descriptor_tree, gt_ggc_e_17rtx_constant_pool, gt_ggc_e_12tree_int_map, gt_ggc_e_9type_hash, gt_ggc_e_16string_pool_data, gt_ggc_e_15throw_stmt_node, gt_ggc_e_16VEC_eh_region_gc, gt_ggc_e_9eh_region, gt_ggc_e_13ehl_map_entry, gt_ggc_e_16var_loc_list_def, gt_ggc_e_12var_loc_node, gt_ggc_e_16limbo_die_struct, gt_ggc_e_19VEC_dw_attr_node_gc, gt_ggc_e_16dw_ranges_struct, gt_ggc_e_14pubname_struct, gt_ggc_e_28dw_separate_line_info_struct, gt_ggc_e_19dw_line_info_struct, gt_ggc_e_18dw_loc_list_struct, gt_ggc_e_15dwarf_file_data, gt_ggc_e_15queued_reg_save, gt_ggc_e_20indirect_string_node, gt_ggc_e_19dw_loc_descr_struct, gt_ggc_e_13dw_fde_struct, gt_ggc_e_13dw_cfi_struct, gt_ggc_e_8typeinfo, gt_ggc_e_22VEC_alias_set_entry_gc, gt_ggc_e_15alias_set_entry, gt_ggc_e_10c_arg_info, gt_ggc_e_8c_switch, gt_ggc_e_18sorted_fields_type, gt_ggc_e_15cgraph_asm_node, gt_ggc_e_19cgraph_varpool_node, gt_ggc_e_11cgraph_edge, gt_ggc_e_11cgraph_node, gt_ggc_e_18VEC_basic_block_gc, gt_ggc_e_15edge_prediction, gt_ggc_e_11rtl_bb_info, gt_ggc_e_7et_node, gt_ggc_e_4loop, gt_ggc_e_11VEC_edge_gc, gt_ggc_e_12elt_loc_list, gt_ggc_e_17cselib_val_struct, gt_ggc_e_25ipa_reference_vars_info_d, gt_ggc_e_15varray_head_tag, gt_ggc_e_8edge_def, gt_ggc_e_8elt_list, gt_ggc_e_12reg_info_def, gt_ggc_e_17language_function, gt_ggc_e_20initial_value_struct, gt_ggc_e_18control_flow_graph, gt_ggc_e_13varasm_status, gt_ggc_e_9eh_status, gt_ggc_e_18VEC_temp_slot_p_gc, gt_ggc_e_9temp_slot, gt_ggc_e_11expr_status, gt_ggc_e_11emit_status, gt_ggc_e_14sequence_stack, gt_ggc_e_14var_refs_queue, gt_ggc_e_8tree_map, gt_ggc_e_14lang_tree_node, gt_ggc_e_9value_set, gt_ggc_e_24tree_statement_list_node, gt_ggc_e_8function, gt_ggc_e_9lang_decl, gt_ggc_e_9lang_type, gt_ggc_e_10die_struct, gt_ggc_e_12ptr_info_def, gt_ggc_e_17ssa_use_operand_d, gt_ggc_e_22VEC_constructor_elt_gc, gt_ggc_e_10tree_ann_d, gt_ggc_e_11VEC_tree_gc, gt_ggc_e_13convert_optab, gt_ggc_e_5optab, gt_ggc_e_23constant_descriptor_rtx, gt_ggc_e_15basic_block_def, gt_ggc_e_10real_value, gt_ggc_e_10VEC_rtx_gc, gt_ggc_e_12object_block, gt_ggc_e_9reg_attrs, gt_ggc_e_9mem_attrs, gt_ggc_e_18bitmap_element_def, gt_ggc_e_14bitmap_obstack, gt_ggc_e_17stack_local_entry, gt_ggc_e_16machine_function, gt_ggc_e_6answer, gt_ggc_e_9cpp_macro, gt_ggc_e_9cpp_token, gt_ggc_e_7section, gt_ggc_e_9tree_node, gt_ggc_e_9rtvec_def, gt_ggc_e_7rtx_def, gt_ggc_e_15bitmap_head_def, gt_ggc_e_10location_s, gt_e_II17splay_tree_node_s, gt_e_SP9tree_node17splay_tree_node_s, gt_e_IP9tree_node17splay_tree_node_s, gt_e_P9tree_nodeP9tree_node17splay_tree_node_s, gt_e_P9tree_nodeP9tree_node12splay_tree_s, gt_e_IP9tree_node12splay_tree_s, gt_e_P11var_map_elt4htab, gt_e_P12int_tree_map4htab, gt_e_P23constant_descriptor_rtx4htab, gt_e_P24constant_descriptor_tree4htab, gt_e_P12object_block4htab, gt_e_P7section4htab, gt_e_P12tree_int_map4htab, gt_e_P8tree_map4htab, gt_e_P9type_hash4htab, gt_e_P13ehl_map_entry4htab, gt_e_P15throw_stmt_node4htab, gt_e_P9reg_attrs4htab, gt_e_P9mem_attrs4htab, gt_e_P7rtx_def4htab, gt_e_SP9tree_node12splay_tree_s, gt_e_P16var_loc_list_def4htab, gt_e_P10die_struct4htab, gt_e_P15dwarf_file_data4htab, gt_e_P20indirect_string_node4htab, gt_e_P19cgraph_varpool_node4htab, gt_e_P11cgraph_node4htab, gt_e_II12splay_tree_s, gt_e_P11cgraph_edge4htab, gt_e_P9tree_node4htab, gt_types_enum_last }; extern void gt_ggc_mx_align_stack (void *); extern void gt_ggc_mx_c_scope (void *); extern void gt_ggc_mx_c_binding (void *); extern void gt_ggc_mx_prod_token_parm_item (void *); extern void gt_ggc_mx_nesting_info (void *); extern void gt_ggc_mx_var_map_elt (void *); extern void gt_ggc_mx_ssa_operand_memory_d (void *); extern void gt_ggc_mx_c_parser (void *); extern void gt_ggc_mx_int_tree_map (void *); extern void gt_ggc_mx_subvar (void *); extern void gt_ggc_mx_VEC_alias_pair_gc (void *); extern void gt_ggc_mx_constant_descriptor_tree (void *); extern void gt_ggc_mx_rtx_constant_pool (void *); extern void gt_ggc_mx_tree_int_map (void *); extern void gt_ggc_mx_type_hash (void *); extern void gt_ggc_mx_string_pool_data (void *); extern void gt_ggc_mx_throw_stmt_node (void *); extern void gt_ggc_mx_VEC_eh_region_gc (void *); extern void gt_ggc_mx_eh_region (void *); extern void gt_ggc_mx_ehl_map_entry (void *); extern void gt_ggc_mx_var_loc_list_def (void *); extern void gt_ggc_mx_var_loc_node (void *); extern void gt_ggc_mx_limbo_die_struct (void *); extern void gt_ggc_mx_VEC_dw_attr_node_gc (void *); extern void gt_ggc_mx_dw_ranges_struct (void *); extern void gt_ggc_mx_pubname_struct (void *); extern void gt_ggc_mx_dw_separate_line_info_struct (void *); extern void gt_ggc_mx_dw_line_info_struct (void *); extern void gt_ggc_mx_dw_loc_list_struct (void *); extern void gt_ggc_mx_dwarf_file_data (void *); extern void gt_ggc_mx_queued_reg_save (void *); extern void gt_ggc_mx_indirect_string_node (void *); extern void gt_ggc_mx_dw_loc_descr_struct (void *); extern void gt_ggc_mx_dw_fde_struct (void *); extern void gt_ggc_mx_dw_cfi_struct (void *); extern void gt_ggc_mx_typeinfo (void *); extern void gt_ggc_mx_VEC_alias_set_entry_gc (void *); extern void gt_ggc_mx_alias_set_entry (void *); extern void gt_ggc_mx_c_arg_info (void *); extern void gt_ggc_mx_c_switch (void *); extern void gt_ggc_mx_sorted_fields_type (void *); extern void gt_ggc_mx_cgraph_asm_node (void *); extern void gt_ggc_mx_cgraph_varpool_node (void *); extern void gt_ggc_mx_cgraph_edge (void *); extern void gt_ggc_mx_cgraph_node (void *); extern void gt_ggc_mx_VEC_basic_block_gc (void *); extern void gt_ggc_mx_edge_prediction (void *); extern void gt_ggc_mx_rtl_bb_info (void *); extern void gt_ggc_mx_et_node (void *); extern void gt_ggc_mx_loop (void *); extern void gt_ggc_mx_VEC_edge_gc (void *); extern void gt_ggc_mx_elt_loc_list (void *); extern void gt_ggc_mx_cselib_val_struct (void *); extern void gt_ggc_mx_ipa_reference_vars_info_d (void *); extern void gt_ggc_mx_varray_head_tag (void *); extern void gt_ggc_mx_edge_def (void *); extern void gt_ggc_mx_elt_list (void *); extern void gt_ggc_mx_reg_info_def (void *); extern void gt_ggc_mx_language_function (void *); extern void gt_ggc_mx_initial_value_struct (void *); extern void gt_ggc_mx_control_flow_graph (void *); extern void gt_ggc_mx_varasm_status (void *); extern void gt_ggc_mx_eh_status (void *); extern void gt_ggc_mx_VEC_temp_slot_p_gc (void *); extern void gt_ggc_mx_temp_slot (void *); extern void gt_ggc_mx_expr_status (void *); extern void gt_ggc_mx_emit_status (void *); extern void gt_ggc_mx_sequence_stack (void *); extern void gt_ggc_mx_var_refs_queue (void *); extern void gt_ggc_mx_tree_map (void *); extern void gt_ggc_mx_lang_tree_node (void *); extern void gt_ggc_mx_value_set (void *); extern void gt_ggc_mx_tree_statement_list_node (void *); extern void gt_ggc_mx_function (void *); extern void gt_ggc_mx_lang_decl (void *); extern void gt_ggc_mx_lang_type (void *); extern void gt_ggc_mx_die_struct (void *); extern void gt_ggc_mx_ptr_info_def (void *); extern void gt_ggc_mx_ssa_use_operand_d (void *); extern void gt_ggc_mx_VEC_constructor_elt_gc (void *); extern void gt_ggc_mx_tree_ann_d (void *); extern void gt_ggc_mx_VEC_tree_gc (void *); extern void gt_ggc_mx_convert_optab (void *); extern void gt_ggc_mx_optab (void *); extern void gt_ggc_mx_constant_descriptor_rtx (void *); extern void gt_ggc_mx_basic_block_def (void *); extern void gt_ggc_mx_real_value (void *); extern void gt_ggc_mx_VEC_rtx_gc (void *); extern void gt_ggc_mx_object_block (void *); extern void gt_ggc_mx_reg_attrs (void *); extern void gt_ggc_mx_mem_attrs (void *); extern void gt_ggc_mx_bitmap_element_def (void *); extern void gt_ggc_mx_bitmap_obstack (void *); extern void gt_ggc_mx_stack_local_entry (void *); extern void gt_ggc_mx_machine_function (void *); extern void gt_ggc_mx_answer (void *); extern void gt_ggc_mx_cpp_macro (void *); extern void gt_ggc_mx_cpp_token (void *); extern void gt_ggc_mx_section (void *); extern void gt_ggc_mx_rtvec_def (void *); extern void gt_ggc_mx_rtx_def (void *); extern void gt_ggc_mx_bitmap_head_def (void *); extern void gt_ggc_mx_location_s (void *); extern void gt_ggc_m_II17splay_tree_node_s (void *); extern void gt_ggc_m_SP9tree_node17splay_tree_node_s (void *); extern void gt_ggc_m_IP9tree_node17splay_tree_node_s (void *); extern void gt_ggc_m_P9tree_nodeP9tree_node17splay_tree_node_s (void *); extern void gt_ggc_m_P9tree_nodeP9tree_node12splay_tree_s (void *); extern void gt_ggc_m_IP9tree_node12splay_tree_s (void *); extern void gt_ggc_m_P11var_map_elt4htab (void *); extern void gt_ggc_m_P12int_tree_map4htab (void *); extern void gt_ggc_m_P23constant_descriptor_rtx4htab (void *); extern void gt_ggc_m_P24constant_descriptor_tree4htab (void *); extern void gt_ggc_m_P12object_block4htab (void *); extern void gt_ggc_m_P7section4htab (void *); extern void gt_ggc_m_P12tree_int_map4htab (void *); extern void gt_ggc_m_P8tree_map4htab (void *); extern void gt_ggc_m_P9type_hash4htab (void *); extern void gt_ggc_m_P13ehl_map_entry4htab (void *); extern void gt_ggc_m_P15throw_stmt_node4htab (void *); extern void gt_ggc_m_P9reg_attrs4htab (void *); extern void gt_ggc_m_P9mem_attrs4htab (void *); extern void gt_ggc_m_P7rtx_def4htab (void *); extern void gt_ggc_m_SP9tree_node12splay_tree_s (void *); extern void gt_ggc_m_P16var_loc_list_def4htab (void *); extern void gt_ggc_m_P10die_struct4htab (void *); extern void gt_ggc_m_P15dwarf_file_data4htab (void *); extern void gt_ggc_m_P20indirect_string_node4htab (void *); extern void gt_ggc_m_P19cgraph_varpool_node4htab (void *); extern void gt_ggc_m_P11cgraph_node4htab (void *); extern void gt_ggc_m_II12splay_tree_s (void *); extern void gt_ggc_m_P11cgraph_edge4htab (void *); extern void gt_ggc_m_P9tree_node4htab (void *); extern void gt_pch_nx_align_stack (void *); extern void gt_pch_nx_c_scope (void *); extern void gt_pch_nx_c_binding (void *); extern void gt_pch_nx_prod_token_parm_item (void *); extern void gt_pch_nx_nesting_info (void *); extern void gt_pch_nx_var_map_elt (void *); extern void gt_pch_nx_ssa_operand_memory_d (void *); extern void gt_pch_nx_c_parser (void *); extern void gt_pch_nx_int_tree_map (void *); extern void gt_pch_nx_subvar (void *); extern void gt_pch_nx_VEC_alias_pair_gc (void *); extern void gt_pch_nx_constant_descriptor_tree (void *); extern void gt_pch_nx_rtx_constant_pool (void *); extern void gt_pch_nx_tree_int_map (void *); extern void gt_pch_nx_type_hash (void *); extern void gt_pch_nx_string_pool_data (void *); extern void gt_pch_nx_throw_stmt_node (void *); extern void gt_pch_nx_VEC_eh_region_gc (void *); extern void gt_pch_nx_eh_region (void *); extern void gt_pch_nx_ehl_map_entry (void *); extern void gt_pch_nx_var_loc_list_def (void *); extern void gt_pch_nx_var_loc_node (void *); extern void gt_pch_nx_limbo_die_struct (void *); extern void gt_pch_nx_VEC_dw_attr_node_gc (void *); extern void gt_pch_nx_dw_ranges_struct (void *); extern void gt_pch_nx_pubname_struct (void *); extern void gt_pch_nx_dw_separate_line_info_struct (void *); extern void gt_pch_nx_dw_line_info_struct (void *); extern void gt_pch_nx_dw_loc_list_struct (void *); extern void gt_pch_nx_dwarf_file_data (void *); extern void gt_pch_nx_queued_reg_save (void *); extern void gt_pch_nx_indirect_string_node (void *); extern void gt_pch_nx_dw_loc_descr_struct (void *); extern void gt_pch_nx_dw_fde_struct (void *); extern void gt_pch_nx_dw_cfi_struct (void *); extern void gt_pch_nx_typeinfo (void *); extern void gt_pch_nx_VEC_alias_set_entry_gc (void *); extern void gt_pch_nx_alias_set_entry (void *); extern void gt_pch_nx_c_arg_info (void *); extern void gt_pch_nx_c_switch (void *); extern void gt_pch_nx_sorted_fields_type (void *); extern void gt_pch_nx_cgraph_asm_node (void *); extern void gt_pch_nx_cgraph_varpool_node (void *); extern void gt_pch_nx_cgraph_edge (void *); extern void gt_pch_nx_cgraph_node (void *); extern void gt_pch_nx_VEC_basic_block_gc (void *); extern void gt_pch_nx_edge_prediction (void *); extern void gt_pch_nx_rtl_bb_info (void *); extern void gt_pch_nx_et_node (void *); extern void gt_pch_nx_loop (void *); extern void gt_pch_nx_VEC_edge_gc (void *); extern void gt_pch_nx_elt_loc_list (void *); extern void gt_pch_nx_cselib_val_struct (void *); extern void gt_pch_nx_ipa_reference_vars_info_d (void *); extern void gt_pch_nx_varray_head_tag (void *); extern void gt_pch_nx_edge_def (void *); extern void gt_pch_nx_elt_list (void *); extern void gt_pch_nx_reg_info_def (void *); extern void gt_pch_nx_language_function (void *); extern void gt_pch_nx_initial_value_struct (void *); extern void gt_pch_nx_control_flow_graph (void *); extern void gt_pch_nx_varasm_status (void *); extern void gt_pch_nx_eh_status (void *); extern void gt_pch_nx_VEC_temp_slot_p_gc (void *); extern void gt_pch_nx_temp_slot (void *); extern void gt_pch_nx_expr_status (void *); extern void gt_pch_nx_emit_status (void *); extern void gt_pch_nx_sequence_stack (void *); extern void gt_pch_nx_var_refs_queue (void *); extern void gt_pch_nx_tree_map (void *); extern void gt_pch_nx_lang_tree_node (void *); extern void gt_pch_nx_value_set (void *); extern void gt_pch_nx_tree_statement_list_node (void *); extern void gt_pch_nx_function (void *); extern void gt_pch_nx_lang_decl (void *); extern void gt_pch_nx_lang_type (void *); extern void gt_pch_nx_die_struct (void *); extern void gt_pch_nx_ptr_info_def (void *); extern void gt_pch_nx_ssa_use_operand_d (void *); extern void gt_pch_nx_VEC_constructor_elt_gc (void *); extern void gt_pch_nx_tree_ann_d (void *); extern void gt_pch_nx_VEC_tree_gc (void *); extern void gt_pch_nx_convert_optab (void *); extern void gt_pch_nx_optab (void *); extern void gt_pch_nx_constant_descriptor_rtx (void *); extern void gt_pch_nx_basic_block_def (void *); extern void gt_pch_nx_real_value (void *); extern void gt_pch_nx_VEC_rtx_gc (void *); extern void gt_pch_nx_object_block (void *); extern void gt_pch_nx_reg_attrs (void *); extern void gt_pch_nx_mem_attrs (void *); extern void gt_pch_nx_bitmap_element_def (void *); extern void gt_pch_nx_bitmap_obstack (void *); extern void gt_pch_nx_stack_local_entry (void *); extern void gt_pch_nx_machine_function (void *); extern void gt_pch_nx_answer (void *); extern void gt_pch_nx_cpp_macro (void *); extern void gt_pch_nx_cpp_token (void *); extern void gt_pch_nx_section (void *); extern void gt_pch_nx_rtvec_def (void *); extern void gt_pch_nx_rtx_def (void *); extern void gt_pch_nx_bitmap_head_def (void *); extern void gt_pch_nx_location_s (void *); extern void gt_pch_n_II17splay_tree_node_s (void *); extern void gt_pch_n_SP9tree_node17splay_tree_node_s (void *); extern void gt_pch_n_IP9tree_node17splay_tree_node_s (void *); extern void gt_pch_n_P9tree_nodeP9tree_node17splay_tree_node_s (void *); extern void gt_pch_n_P9tree_nodeP9tree_node12splay_tree_s (void *); extern void gt_pch_n_IP9tree_node12splay_tree_s (void *); extern void gt_pch_n_P11var_map_elt4htab (void *); extern void gt_pch_n_P12int_tree_map4htab (void *); extern void gt_pch_n_P23constant_descriptor_rtx4htab (void *); extern void gt_pch_n_P24constant_descriptor_tree4htab (void *); extern void gt_pch_n_P12object_block4htab (void *); extern void gt_pch_n_P7section4htab (void *); extern void gt_pch_n_P12tree_int_map4htab (void *); extern void gt_pch_n_P8tree_map4htab (void *); extern void gt_pch_n_P9type_hash4htab (void *); extern void gt_pch_n_P13ehl_map_entry4htab (void *); extern void gt_pch_n_P15throw_stmt_node4htab (void *); extern void gt_pch_n_P9reg_attrs4htab (void *); extern void gt_pch_n_P9mem_attrs4htab (void *); extern void gt_pch_n_P7rtx_def4htab (void *); extern void gt_pch_n_SP9tree_node12splay_tree_s (void *); extern void gt_pch_n_P16var_loc_list_def4htab (void *); extern void gt_pch_n_P10die_struct4htab (void *); extern void gt_pch_n_P15dwarf_file_data4htab (void *); extern void gt_pch_n_P20indirect_string_node4htab (void *); extern void gt_pch_n_P19cgraph_varpool_node4htab (void *); extern void gt_pch_n_P11cgraph_node4htab (void *); extern void gt_pch_n_II12splay_tree_s (void *); extern void gt_pch_n_P11cgraph_edge4htab (void *); extern void gt_pch_n_P9tree_node4htab (void *); extern void gt_pch_p_11align_stack (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_7c_scope (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9c_binding (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_20prod_token_parm_item (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_12nesting_info (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_11var_map_elt (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_20ssa_operand_memory_d (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_8c_parser (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_12int_tree_map (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_6subvar (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_17VEC_alias_pair_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_24constant_descriptor_tree (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_17rtx_constant_pool (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_12tree_int_map (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9type_hash (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_16string_pool_data (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15throw_stmt_node (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_16VEC_eh_region_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9eh_region (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_13ehl_map_entry (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_16var_loc_list_def (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_12var_loc_node (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_16limbo_die_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_19VEC_dw_attr_node_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_16dw_ranges_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_14pubname_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_28dw_separate_line_info_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_19dw_line_info_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_18dw_loc_list_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15dwarf_file_data (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15queued_reg_save (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_20indirect_string_node (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_19dw_loc_descr_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_13dw_fde_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_13dw_cfi_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_8typeinfo (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_22VEC_alias_set_entry_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15alias_set_entry (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_18sorted_fields_type (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15cgraph_asm_node (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_19cgraph_varpool_node (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_11cgraph_edge (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_11cgraph_node (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_18VEC_basic_block_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15edge_prediction (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_11rtl_bb_info (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_11VEC_edge_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_12elt_loc_list (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_17cselib_val_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15varray_head_tag (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_8edge_def (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_8elt_list (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_17language_function (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_20initial_value_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_18control_flow_graph (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_13varasm_status (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9eh_status (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_18VEC_temp_slot_p_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9temp_slot (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_11expr_status (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_11emit_status (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_14sequence_stack (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_14var_refs_queue (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_8tree_map (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_14lang_tree_node (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_24tree_statement_list_node (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_8function (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9lang_decl (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9lang_type (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_10die_struct (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_12ptr_info_def (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_17ssa_use_operand_d (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_22VEC_constructor_elt_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_10tree_ann_d (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_11VEC_tree_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_13convert_optab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_5optab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_23constant_descriptor_rtx (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15basic_block_def (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_10real_value (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_10VEC_rtx_gc (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_12object_block (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9reg_attrs (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9mem_attrs (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_18bitmap_element_def (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_14bitmap_obstack (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_17stack_local_entry (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_16machine_function (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_6answer (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9cpp_macro (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9cpp_token (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_7section (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_9rtvec_def (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_7rtx_def (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_15bitmap_head_def (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_10location_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_II17splay_tree_node_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_SP9tree_node17splay_tree_node_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_IP9tree_node17splay_tree_node_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P9tree_nodeP9tree_node17splay_tree_node_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P9tree_nodeP9tree_node12splay_tree_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_IP9tree_node12splay_tree_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P11var_map_elt4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P12int_tree_map4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P23constant_descriptor_rtx4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P24constant_descriptor_tree4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P12object_block4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P7section4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P12tree_int_map4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P8tree_map4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P9type_hash4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P13ehl_map_entry4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P15throw_stmt_node4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P9reg_attrs4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P9mem_attrs4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P7rtx_def4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_SP9tree_node12splay_tree_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P16var_loc_list_def4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P10die_struct4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P15dwarf_file_data4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P20indirect_string_node4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P19cgraph_varpool_node4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P11cgraph_node4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_II12splay_tree_s (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P11cgraph_edge4htab (void *, void *, gt_pointer_operator, void *); extern void gt_pch_p_P9tree_node4htab (void *, void *, gt_pointer_operator, void *); # 40 "../../GCC/gcc/ggc.h" 2 typedef void (*gt_note_pointers) (void *, void *, gt_pointer_operator, void *); typedef void (*gt_handle_reorder) (void *, void *, gt_pointer_operator, void *); extern int gt_pch_note_object (void *, void *, gt_note_pointers, enum gt_types_enum); extern void gt_pch_note_reorder (void *, void *, gt_handle_reorder); typedef void (*gt_pointer_walker) (void *); struct ggc_root_tab { void *base; size_t nelt; size_t stride; gt_pointer_walker cb; gt_pointer_walker pchw; }; extern const struct ggc_root_tab * const gt_ggc_rtab[]; extern const struct ggc_root_tab * const gt_ggc_deletable_rtab[]; extern const struct ggc_root_tab * const gt_pch_cache_rtab[]; extern const struct ggc_root_tab * const gt_pch_scalar_rtab[]; struct htab; struct ggc_cache_tab { struct htab * *base; size_t nelt; size_t stride; gt_pointer_walker cb; gt_pointer_walker pchw; int (*marked_p) (const void *); }; extern const struct ggc_cache_tab * const gt_ggc_cache_rtab[]; # 113 "../../GCC/gcc/ggc.h" extern int ggc_set_mark (const void *); extern int ggc_marked_p (const void *); extern void ggc_mark_stringpool (void); extern void ggc_mark_roots (void); extern void gt_pch_save_stringpool (void); extern void gt_pch_fixup_stringpool (void); extern void gt_pch_restore_stringpool (void); extern void gt_pch_p_S (void *, void *, gt_pointer_operator, void *); extern void gt_pch_n_S (const void *); extern void gt_ggc_m_S (void *); extern void init_stringpool (void); struct alloc_zone; extern void init_ggc (void); extern struct alloc_zone *new_ggc_zone (const char *); extern void destroy_ggc_zone (struct alloc_zone *); struct ggc_pch_data; extern struct ggc_pch_data *init_ggc_pch (void); extern void ggc_pch_count_object (struct ggc_pch_data *, void *, size_t, unsigned char, enum gt_types_enum); extern size_t ggc_pch_total_size (struct ggc_pch_data *); extern void ggc_pch_this_base (struct ggc_pch_data *, void *); extern char *ggc_pch_alloc_object (struct ggc_pch_data *, void *, size_t, unsigned char, enum gt_types_enum); extern void ggc_pch_prepare_write (struct ggc_pch_data *, FILE *); extern void ggc_pch_write_object (struct ggc_pch_data *, FILE *, void *, void *, size_t, unsigned char); extern void ggc_pch_finish (struct ggc_pch_data *, FILE *); extern void ggc_pch_read (FILE *, void *); extern unsigned char ggc_force_collect; extern void *ggc_alloc_stat (size_t ); extern void *ggc_alloc_typed_stat (enum gt_types_enum, size_t ); extern void *ggc_alloc_cleared_stat (size_t ); extern void *ggc_realloc_stat (void *, size_t ); extern void *ggc_calloc (size_t, size_t); extern void ggc_free (void *); extern void ggc_record_overhead (size_t, size_t, void * ); extern void ggc_free_overhead (void *); extern void ggc_prune_overhead_list (void); extern void dump_ggc_loc_statistics (void); # 248 "../../GCC/gcc/ggc.h" extern void *ggc_splay_alloc (int, void *); extern void ggc_splay_dont_free (void *, void *); extern const char *ggc_alloc_string (const char *contents, int length); extern void ggc_collect (void); extern size_t ggc_get_size (const void *); extern void gt_pch_save (FILE *f); extern void gt_pch_restore (FILE *f); typedef struct ggc_statistics { int unused; } ggc_statistics; extern void ggc_print_common_statistics (FILE *, ggc_statistics *); extern void ggc_print_statistics (void); extern void stringpool_statistics (void); extern int ggc_min_expand_heuristic (void); extern int ggc_min_heapsize_heuristic (void); extern void init_ggc_heuristics (void); # 27 "../../GCC/gcc/c-common.h" 2 # 45 "../../GCC/gcc/c-common.h" enum rid { RID_STATIC = 0, RID_UNSIGNED, RID_LONG, RID_CONST, RID_EXTERN, RID_REGISTER, RID_TYPEDEF, RID_SHORT, RID_INLINE, RID_VOLATILE, RID_SIGNED, RID_AUTO, RID_RESTRICT, RID_COMPLEX, RID_THREAD, RID_FRIEND, RID_VIRTUAL, RID_EXPLICIT, RID_EXPORT, RID_MUTABLE, RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF, RID_ONEWAY, RID_INT, RID_CHAR, RID_FLOAT, RID_DOUBLE, RID_VOID, RID_ENUM, RID_STRUCT, RID_UNION, RID_IF, RID_ELSE, RID_WHILE, RID_DO, RID_FOR, RID_SWITCH, RID_CASE, RID_DEFAULT, RID_BREAK, RID_CONTINUE, RID_RETURN, RID_GOTO, RID_SIZEOF, RID_ASM, RID_TYPEOF, RID_ALIGNOF, RID_ATTRIBUTE, RID_VA_ARG, RID_EXTENSION, RID_IMAGPART, RID_REALPART, RID_LABEL, RID_CHOOSE_EXPR, RID_TYPES_COMPATIBLE_P, RID_DFLOAT32, RID_DFLOAT64, RID_DFLOAT128, RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME, RID_C99_FUNCTION_NAME, RID_BOOL, RID_WCHAR, RID_CLASS, RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_TEMPLATE, RID_NULL, RID_CATCH, RID_DELETE, RID_FALSE, RID_NAMESPACE, RID_NEW, RID_OFFSETOF, RID_OPERATOR, RID_THIS, RID_THROW, RID_TRUE, RID_TRY, RID_TYPENAME, RID_TYPEID, RID_USING, RID_CONSTCAST, RID_DYNCAST, RID_REINTCAST, RID_STATCAST, RID_AT_ENCODE, RID_AT_END, RID_AT_CLASS, RID_AT_ALIAS, RID_AT_DEFS, RID_AT_PRIVATE, RID_AT_PROTECTED, RID_AT_PUBLIC, RID_AT_PROTOCOL, RID_AT_SELECTOR, RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY, RID_AT_SYNCHRONIZED, RID_AT_INTERFACE, RID_AT_IMPLEMENTATION, RID_CbC_CODE, RID_CbC_ENV, RID_MAX, RID_FIRST_MODIFIER = RID_STATIC, RID_LAST_MODIFIER = RID_ONEWAY, RID_FIRST_AT = RID_AT_ENCODE, RID_LAST_AT = RID_AT_IMPLEMENTATION, RID_FIRST_PQ = RID_IN, RID_LAST_PQ = RID_ONEWAY }; # 128 "../../GCC/gcc/c-common.h" extern tree *ridpointers; enum c_tree_index { CTI_WCHAR_TYPE, CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE, CTI_WINT_TYPE, CTI_SIGNED_SIZE_TYPE, CTI_UNSIGNED_PTRDIFF_TYPE, CTI_INTMAX_TYPE, CTI_UINTMAX_TYPE, CTI_WIDEST_INT_LIT_TYPE, CTI_WIDEST_UINT_LIT_TYPE, CTI_CHAR_ARRAY_TYPE, CTI_WCHAR_ARRAY_TYPE, CTI_INT_ARRAY_TYPE, CTI_STRING_TYPE, CTI_CONST_STRING_TYPE, CTI_TRUTHVALUE_TYPE, CTI_TRUTHVALUE_TRUE, CTI_TRUTHVALUE_FALSE, CTI_DEFAULT_FUNCTION_TYPE, CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL, CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS, CTI_VOID_ZERO, CTI_NULL, CTI_MAX }; struct c_common_identifier { struct tree_common common; struct cpp_hashnode node; }; # 215 "../../GCC/gcc/c-common.h" extern tree c_global_trees[CTI_MAX]; struct sorted_fields_type { int len; tree elts[1]; }; typedef enum c_language_kind { clk_c = 0, clk_objc = 1, clk_cxx = 2, clk_objcxx = 3 } c_language_kind; extern c_language_kind c_language; struct stmt_tree_s { tree x_cur_stmt_list; # 265 "../../GCC/gcc/c-common.h" int stmts_are_full_exprs_p; }; typedef struct stmt_tree_s *stmt_tree; struct c_language_function { struct stmt_tree_s x_stmt_tree; }; # 289 "../../GCC/gcc/c-common.h" extern int (*lang_missing_noreturn_ok_p) (tree); extern void (*lang_post_pch_load) (void); extern void push_file_scope (void); extern void pop_file_scope (void); extern stmt_tree current_stmt_tree (void); extern tree push_stmt_list (void); extern tree pop_stmt_list (tree); extern tree add_stmt (tree); extern void push_cleanup (tree, tree, unsigned char); extern tree pushdecl_top_level (tree); extern tree pushdecl (tree); extern tree build_modify_expr (tree, enum tree_code, tree); extern tree build_indirect_ref (tree, const char *); extern int c_expand_decl (tree); extern int field_decl_cmp (const void *, const void *); extern void resort_sorted_fields (void *, void *, gt_pointer_operator, void *); extern unsigned char has_c_linkage (tree decl); extern int flag_preprocess_only; extern int flag_nil_receivers; extern int flag_objc_exceptions; extern int flag_objc_sjlj_exceptions; extern int flag_zero_link; extern int flag_replace_objc_classes; extern char flag_no_line_commands; extern char flag_no_output; extern char flag_dump_macros; extern char flag_dump_includes; extern unsigned char flag_pch_preprocess; extern const char *pch_file; extern int flag_iso; extern int flag_undef; extern int flag_no_builtin; extern int flag_no_nonansi_builtin; extern int flag_short_double; extern int flag_short_wchar; extern int flag_ms_extensions; extern int flag_no_asm; extern int flag_const_strings; extern int flag_signed_bitfields; extern int warn_unknown_pragmas; extern int warn_format; # 428 "../../GCC/gcc/c-common.h" extern int flag_cond_mismatch; extern int flag_isoc94; extern int flag_isoc99; extern int flag_hosted; extern int warn_main; # 453 "../../GCC/gcc/c-common.h" extern int flag_gen_declaration; extern int print_struct_values; extern const char *constant_string_class_name; extern int flag_no_gnu_keywords; extern int flag_implement_inlines; extern int flag_implicit_templates; extern int flag_implicit_inline_templates; extern int flag_use_repository; extern int flag_optional_diags; extern int flag_elide_constructors; extern int flag_default_inline; extern int flag_rtti; extern int flag_conserve_space; extern int flag_access_control; extern int flag_check_new; # 535 "../../GCC/gcc/c-common.h" extern int flag_new_for_scope; extern int flag_weak; extern int flag_working_directory; extern int flag_use_cxa_atexit; extern int flag_use_cxa_get_exception_ptr; extern int flag_permissive; extern int flag_enforce_eh_specs; extern int flag_threadsafe_statics; extern int warn_implicit; extern int warn_strict_null_sentinel; extern int max_tinst_depth; extern int skip_evaluation; # 615 "../../GCC/gcc/c-common.h" extern const struct attribute_spec c_common_attribute_table[]; extern const struct attribute_spec c_common_format_attribute_table[]; extern tree (*make_fname_decl) (tree, int); extern tree identifier_global_value (tree); extern void record_builtin_type (enum rid, const char *, tree); extern tree build_void_list_node (void); extern void start_fname_decls (void); extern void finish_fname_decls (void); extern const char *fname_as_string (int); extern tree fname_decl (unsigned, tree); extern void check_function_arguments (tree, tree, tree); extern void check_function_arguments_recurse (void (*) (void *, tree, unsigned long), void *, tree, unsigned long); extern void check_function_format (tree, tree); extern void set_Wformat (int); extern tree handle_format_attribute (tree *, tree, tree, int, unsigned char *); extern tree handle_format_arg_attribute (tree *, tree, tree, int, unsigned char *); extern int c_common_handle_option (size_t code, const char *arg, int value); extern unsigned char c_common_missing_argument (const char *opt, size_t code); extern tree c_common_type_for_mode (enum machine_mode, int); extern tree c_common_type_for_size (unsigned int, int); extern tree c_common_unsigned_type (tree); extern tree c_common_signed_type (tree); extern tree c_common_signed_or_unsigned_type (int, tree); extern tree c_build_bitfield_integer_type (unsigned long, int); extern tree c_common_truthvalue_conversion (tree); extern void c_apply_type_quals_to_decl (int, tree); extern tree c_sizeof_or_alignof_type (tree, unsigned char, int); extern tree c_alignof_expr (tree); extern void binary_op_error (enum tree_code); extern tree fix_string_type (tree); struct varray_head_tag; extern void constant_expression_warning (tree); extern void strict_aliasing_warning(tree, tree, tree); extern void empty_body_warning (tree, tree); extern tree convert_and_check (tree, tree); extern void overflow_warning (tree); extern unsigned char c_determine_visibility (tree); extern unsigned char same_scalar_type_ignoring_signedness (tree, tree); extern tree shorten_compare (tree *, tree *, tree *, enum tree_code *); extern tree pointer_int_sum (enum tree_code, tree, tree); extern unsigned int min_precision (tree, int); extern tree c_build_qualified_type (tree, int); extern void c_common_nodes_and_builtins (void); extern void set_builtin_user_assembler_name (tree decl, const char *asmspec); extern void disable_builtin_function (const char *); extern void set_compound_literal_name (tree decl); extern tree build_va_arg (tree, tree); extern unsigned int c_common_init_options (unsigned int, const char **); extern unsigned char c_common_post_options (const char **); extern unsigned char c_common_init (void); extern void c_common_finish (void); extern void c_common_parse_file (int); extern long c_common_get_alias_set (tree); extern void c_register_builtin_type (tree, const char*); extern unsigned char c_promoting_integer_type_p (tree); extern int self_promoting_args_p (tree); extern tree strip_array_types (tree); extern tree strip_pointer_operator (tree); extern long c_common_to_target_charset (long); extern void c_parse_file (void); extern void finish_file (void); # 732 "../../GCC/gcc/c-common.h" enum c_tree_code { C_DUMMY_TREE_CODE = LAST_AND_UNUSED_TREE_CODE, # 1 "../../GCC/gcc/c-common.def" 1 # 32 "../../GCC/gcc/c-common.def" COMPOUND_LITERAL_EXPR, # 735 "../../GCC/gcc/c-common.h" 2 LAST_C_TREE_CODE }; extern int anon_aggr_type_p (tree); # 754 "../../GCC/gcc/c-common.h" extern void emit_local_var (tree); extern tree do_case (tree, tree); extern tree build_stmt (enum tree_code, ...); extern tree build_case_label (tree, tree, tree); extern tree build_unary_op (enum tree_code, tree, int); extern tree build_binary_op (enum tree_code, tree, tree, int); extern tree perform_integral_promotions (tree); extern tree default_conversion (tree); extern tree common_type (tree, tree); extern tree decl_constant_value (tree); extern tree boolean_increment (enum tree_code, tree); extern int case_compare (splay_tree_key, splay_tree_key); extern tree c_add_case_label (splay_tree, tree, tree, tree, tree); extern void c_do_switch_warnings (splay_tree, location_t, tree, tree); extern tree build_function_call (tree, tree); extern tree resolve_overloaded_builtin (tree, tree); extern tree finish_label_address_expr (tree); extern tree lookup_label (tree); extern tree lookup_name (tree); extern int vector_types_convertible_p (tree t1, tree t2); extern rtx c_expand_expr (tree, rtx, enum machine_mode, int, rtx *); extern tree c_staticp (tree); extern void init_c_lex (void); extern void c_cpp_builtins (cpp_reader *); extern int pending_lang_change; struct c_fileinfo { int time; short interface_only; short interface_unknown; }; struct c_fileinfo *get_fileinfo (const char *); extern void dump_time_statistics (void); extern unsigned char c_dump_tree (void *, tree); extern void c_warn_unused_result (tree *); extern void verify_sequence_points (tree); extern tree fold_offsetof (tree, tree); enum lvalue_use { lv_assign, lv_increment, lv_decrement, lv_addressof, lv_asm }; extern void lvalue_error (enum lvalue_use); extern int complete_array_type (tree *, tree, unsigned char); extern tree builtin_type_for_size (int, unsigned char); extern void warn_array_subscript_with_type_char (tree); extern void c_genericize (tree); extern int c_gimplify_expr (tree *, tree *, tree *); extern tree c_build_bind_expr (tree, tree); extern void pch_init (void); extern int c_common_valid_pch (cpp_reader *pfile, const char *name, int fd); extern void c_common_read_pch (cpp_reader *pfile, const char *name, int fd, const char *orig); extern void c_common_write_pch (void); extern void c_common_no_more_pch (void); extern void c_common_pch_pragma (cpp_reader *pfile, const char *); extern void c_common_print_pch_checksum (FILE *f); extern const unsigned char executable_checksum[16]; extern void builtin_define_with_value (const char *, const char *, int); extern void c_stddef_cpp_builtins (void); extern void fe_file_change (const struct line_map *); extern void c_parse_error (const char *, enum cpp_ttype, tree); extern tree objc_is_class_name (tree); extern tree objc_is_object_ptr (tree); extern void objc_check_decl (tree); extern int objc_is_reserved_word (tree); extern unsigned char objc_compare_types (tree, tree, int, tree); extern void objc_volatilize_decl (tree); extern unsigned char objc_type_quals_match (tree, tree); extern tree objc_rewrite_function_call (tree, tree); extern tree objc_message_selector (void); extern tree objc_lookup_ivar (tree, tree); extern void objc_clear_super_receiver (void); extern int objc_is_public (tree, tree); extern tree objc_is_id (tree); extern void objc_declare_alias (tree, tree); extern void objc_declare_class (tree); extern void objc_declare_protocols (tree); extern tree objc_build_message_expr (tree); extern tree objc_finish_message_expr (tree, tree, tree); extern tree objc_build_selector_expr (tree); extern tree objc_build_protocol_expr (tree); extern tree objc_build_encode_expr (tree); extern tree objc_build_string_object (tree); extern tree objc_get_protocol_qualified_type (tree, tree); extern tree objc_get_class_reference (tree); extern tree objc_get_class_ivars (tree); extern void objc_start_class_interface (tree, tree, tree); extern void objc_start_category_interface (tree, tree, tree); extern void objc_start_protocol (tree, tree); extern void objc_continue_interface (void); extern void objc_finish_interface (void); extern void objc_start_class_implementation (tree, tree); extern void objc_start_category_implementation (tree, tree); extern void objc_continue_implementation (void); extern void objc_finish_implementation (void); extern void objc_set_visibility (int); extern void objc_set_method_type (enum tree_code); extern tree objc_build_method_signature (tree, tree, tree, unsigned char); extern void objc_add_method_declaration (tree); extern void objc_start_method_definition (tree); extern void objc_finish_method_definition (tree); extern void objc_add_instance_variable (tree); extern tree objc_build_keyword_decl (tree, tree, tree); extern tree objc_build_throw_stmt (tree); extern void objc_begin_try_stmt (location_t, tree); extern tree objc_finish_try_stmt (void); extern void objc_begin_catch_clause (tree); extern void objc_finish_catch_clause (void); extern void objc_build_finally_clause (location_t, tree); extern tree objc_build_synchronized (location_t, tree, tree); extern int objc_static_init_needed_p (void); extern tree objc_generate_static_init_call (tree); extern tree objc_generate_write_barrier (tree, enum tree_code, tree); extern void *objc_get_current_scope (void); extern void objc_mark_locals_volatile (void *); extern void init_pp_output (FILE *); extern void preprocess_file (cpp_reader *); extern void pp_file_change (const struct line_map *); extern void pp_dir_change (cpp_reader *, const char *); extern unsigned char check_missing_format_attribute (tree, tree); extern tree c_finish_omp_master (tree); extern tree c_finish_omp_critical (tree, tree); extern tree c_finish_omp_ordered (tree); extern void c_finish_omp_barrier (void); extern tree c_finish_omp_atomic (enum tree_code, tree, tree); extern void c_finish_omp_flush (void); extern tree c_finish_omp_for (location_t, tree, tree, tree, tree, tree, tree); extern void c_split_parallel_clauses (tree, tree *, tree *); extern enum omp_clause_default_kind c_omp_predetermined_sharing (tree); extern unsigned char c_omp_sharing_predetermined (tree); extern tree c_omp_remap_decl (tree, unsigned char); # 25 "../../GCC/gcc/c-tree.h" 2 # 1 "../../GCC/gcc/toplev.h" 1 # 29 "../../GCC/gcc/toplev.h" extern int toplev_main (unsigned int, const char **); extern int read_integral_parameter (const char *, const char *, const int); extern void strip_off_ending (char *, int); extern const char *trim_filename (const char *); extern void _fatal_insn_not_found (rtx, const char *, int, const char *) __attribute__ ((__noreturn__)); extern void _fatal_insn (const char *, rtx, const char *, int, const char *) __attribute__ ((__noreturn__)); # 56 "../../GCC/gcc/toplev.h" extern void internal_error (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))) __attribute__ ((__noreturn__)); extern void warning0 (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); extern void warning (int, const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 2, 3))) __attribute__ ((__nonnull__ (2))); extern void error (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); extern void fatal_error (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))) __attribute__ ((__noreturn__)); extern void pedwarn (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); extern void sorry (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); extern void inform (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); extern void verbatim (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1, 2))) __attribute__ ((__nonnull__ (1))); extern void rest_of_decl_compilation (tree, int, int); extern void rest_of_type_compilation (tree, int); extern void tree_rest_of_compilation (tree); extern void init_optimization_passes (void); extern void finish_optimization_passes (void); extern unsigned char enable_rtl_dump_file (int); extern void announce_function (tree); extern void error_for_asm (rtx, const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 2, 3))) __attribute__ ((__nonnull__ (2))); extern void warning_for_asm (rtx, const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 2, 3))) __attribute__ ((__nonnull__ (2))); extern void warn_deprecated_use (tree); extern void output_quoted_string (FILE *, const char *); extern void output_file_directive (FILE *, const char *); extern void fnotice (FILE *, const char *, ...) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__nonnull__ (2))); extern void wrapup_global_declaration_1 (tree); extern unsigned char wrapup_global_declaration_2 (tree); extern unsigned char wrapup_global_declarations (tree *, int); extern void check_global_declaration_1 (tree); extern void check_global_declarations (tree *, int); extern void emit_debug_global_declarations (tree *, int); extern void write_global_declarations (void); extern unsigned local_tick; extern const char *progname; extern const char *dump_base_name; extern const char *aux_base_name; extern const char *aux_info_file_name; extern const char *asm_file_name; extern unsigned char exit_after_options; extern int target_flags_explicit; extern unsigned char user_defined_section_attribute; extern int flag_crossjumping; extern int flag_if_conversion; extern int flag_if_conversion2; extern int flag_keep_static_consts; extern int flag_peel_loops; extern int flag_rerun_cse_after_loop; extern int flag_thread_jumps; extern int flag_tracer; extern int flag_unroll_loops; extern int flag_unroll_all_loops; extern int flag_unswitch_loops; extern int flag_cprop_registers; extern int time_report; extern void print_version (FILE *, const char *); extern void * default_get_pch_validity (size_t *); extern const char * default_pch_valid_p (const void *, size_t); extern struct ht *ident_hash; extern void set_fast_math_flags (int); extern void decode_d_option (const char *); extern unsigned char fast_math_flags_set_p (void); extern int exact_log2 (unsigned long); extern int floor_log2 (unsigned long); # 172 "../../GCC/gcc/toplev.h" extern __inline__ int floor_log2 (unsigned long x) { return x ? (8 * 4) - 1 - (int) __builtin_clzl (x) : -1; } extern __inline__ int exact_log2 (unsigned long x) { return x == (x & -x) && x ? (int) __builtin_ctzl (x) : -1; } extern const char *get_src_pwd (void); extern unsigned char set_src_pwd (const char *); # 26 "../../GCC/gcc/c-tree.h" 2 # 1 "../../GCC/gcc/diagnostic.h" 1 # 25 "../../GCC/gcc/diagnostic.h" # 1 "../../GCC/gcc/pretty-print.h" 1 # 24 "../../GCC/gcc/pretty-print.h" # 1 "../../GCC/gcc/../include/obstack.h" 1 # 25 "../../GCC/gcc/pretty-print.h" 2 typedef struct { const char *format_spec; va_list *args_ptr; int err_no; location_t *locus; } text_info; typedef enum { DIAGNOSTICS_SHOW_PREFIX_ONCE = 0x0, DIAGNOSTICS_SHOW_PREFIX_NEVER = 0x1, DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE = 0x2 } diagnostic_prefixing_rule_t; struct chunk_info { struct chunk_info *prev; const char *args[30 * 2]; }; typedef struct { struct obstack formatted_obstack; struct obstack chunk_obstack; struct obstack *obstack; struct chunk_info *cur_chunk_array; FILE *stream; int line_length; char digit_buffer[128]; } output_buffer; typedef unsigned int pp_flags; typedef enum { pp_none, pp_before, pp_after } pp_padding; typedef struct { diagnostic_prefixing_rule_t rule; int line_cutoff; } pp_wrapping_mode_t; # 133 "../../GCC/gcc/pretty-print.h" typedef struct pretty_print_info pretty_printer; typedef unsigned char (*printer_fn) (pretty_printer *, text_info *, const char *, int, unsigned char, unsigned char, unsigned char); # 153 "../../GCC/gcc/pretty-print.h" struct pretty_print_info { output_buffer *buffer; const char *prefix; pp_padding padding; int maximum_length; int indent_skip; pp_wrapping_mode_t wrapping; # 182 "../../GCC/gcc/pretty-print.h" printer_fn format_decoder; unsigned char emitted_prefix; unsigned char need_newline; }; # 290 "../../GCC/gcc/pretty-print.h" extern void pp_construct (pretty_printer *, const char *, int); extern void pp_base_set_line_maximum_length (pretty_printer *, int); extern void pp_base_set_prefix (pretty_printer *, const char *); extern void pp_base_destroy_prefix (pretty_printer *); extern int pp_base_remaining_character_count_for_line (pretty_printer *); extern void pp_base_clear_output_area (pretty_printer *); extern const char *pp_base_formatted_text (pretty_printer *); extern const char *pp_base_last_position_in_text (const pretty_printer *); extern void pp_base_emit_prefix (pretty_printer *); extern void pp_base_append_text (pretty_printer *, const char *, const char *); # 308 "../../GCC/gcc/pretty-print.h" extern void pp_printf (pretty_printer *, const char *, ...) __attribute__ ((__format__ (__gcc_diag__, 2 ,3))) __attribute__ ((__nonnull__ (2))); extern void pp_verbatim (pretty_printer *, const char *, ...) __attribute__ ((__format__ (__gcc_diag__, 2 ,3))) __attribute__ ((__nonnull__ (2))); extern void pp_base_flush (pretty_printer *); extern void pp_base_format (pretty_printer *, text_info *); extern void pp_base_output_formatted_text (pretty_printer *); extern void pp_base_format_verbatim (pretty_printer *, text_info *); extern void pp_base_indent (pretty_printer *); extern void pp_base_newline (pretty_printer *); extern void pp_base_character (pretty_printer *, int); extern void pp_base_string (pretty_printer *, const char *); extern void pp_write_text_to_stream (pretty_printer *pp); extern void pp_base_maybe_space (pretty_printer *); static __inline__ pp_wrapping_mode_t pp_set_verbatim_wrapping_ (pretty_printer *pp) { pp_wrapping_mode_t oldmode = (pp)->wrapping; (pp)->wrapping.line_cutoff = 0; (pp)->wrapping.rule = DIAGNOSTICS_SHOW_PREFIX_NEVER; return oldmode; } # 26 "../../GCC/gcc/diagnostic.h" 2 # 1 "./options.h" 1 # 27 "../../GCC/gcc/diagnostic.h" 2 typedef enum { # 1 "../../GCC/gcc/diagnostic.def" 1 DK_UNSPECIFIED, DK_IGNORED, DK_FATAL, DK_ICE, DK_ERROR, DK_SORRY, DK_WARNING, DK_ANACHRONISM, DK_NOTE, DK_DEBUG, # 33 "../../GCC/gcc/diagnostic.h" 2 DK_LAST_DIAGNOSTIC_KIND } diagnostic_t; typedef struct { text_info message; location_t location; diagnostic_t kind; int option_index; } diagnostic_info; typedef struct diagnostic_context diagnostic_context; typedef void (*diagnostic_starter_fn) (diagnostic_context *, diagnostic_info *); typedef diagnostic_starter_fn diagnostic_finalizer_fn; struct diagnostic_context { pretty_printer *printer; int diagnostic_count[DK_LAST_DIAGNOSTIC_KIND]; unsigned char issue_warnings_are_errors_message; unsigned char warning_as_error_requested; char classify_diagnostic[N_OPTS]; unsigned char show_option_requested; unsigned char abort_on_error; # 97 "../../GCC/gcc/diagnostic.h" diagnostic_starter_fn begin_diagnostic; diagnostic_finalizer_fn end_diagnostic; void (*internal_error) (const char *, va_list *); tree last_function; int last_module; int lock; }; # 165 "../../GCC/gcc/diagnostic.h" extern diagnostic_context *global_dc; # 186 "../../GCC/gcc/diagnostic.h" extern void diagnostic_initialize (diagnostic_context *); extern void diagnostic_report_current_module (diagnostic_context *); extern void diagnostic_report_current_function (diagnostic_context *); extern diagnostic_t diagnostic_classify_diagnostic (diagnostic_context *, int , diagnostic_t ); extern void diagnostic_report_diagnostic (diagnostic_context *, diagnostic_info *); extern void diagnostic_set_info (diagnostic_info *, const char *, va_list *, location_t, diagnostic_t) __attribute__ ((__format__ (__gcc_cdiag__, 2, 0))) __attribute__ ((__nonnull__ (2))); extern void diagnostic_set_info_translated (diagnostic_info *, const char *, va_list *, location_t, diagnostic_t) __attribute__ ((__format__ (__gcc_cdiag__, 2, 0))) __attribute__ ((__nonnull__ (2))); extern char *diagnostic_build_prefix (diagnostic_info *); extern char *file_name_as_prefix (const char *); extern int dump_generic_node (pretty_printer *, tree, int, int, unsigned char); extern void print_generic_stmt (FILE *, tree, int); extern void print_generic_stmt_indented (FILE *, tree, int, int); extern void print_generic_expr (FILE *, tree, int); extern void print_generic_decl (FILE *, tree, int); extern void debug_generic_expr (tree); extern void debug_generic_stmt (tree); extern void debug_tree_chain (tree); extern void debug_c_tree (tree); # 27 "../../GCC/gcc/c-tree.h" 2 # 35 "../../GCC/gcc/c-tree.h" struct lang_decl { char dummy; }; # 59 "../../GCC/gcc/c-tree.h" struct lang_type { struct sorted_fields_type * s; tree enum_min; tree enum_max; tree objc_info; }; # 150 "../../GCC/gcc/c-tree.h" struct c_expr { tree value; enum tree_code original_code; }; enum c_typespec_kind { ctsk_resword, ctsk_tagref, ctsk_tagfirstref, ctsk_tagdef, ctsk_typedef, ctsk_objc, ctsk_typeof }; struct c_typespec { enum c_typespec_kind kind; tree spec; }; enum c_storage_class { csc_none, csc_auto, csc_extern, csc_register, csc_static, csc_typedef }; enum c_typespec_keyword { cts_none, cts_void, cts_bool, cts_char, cts_int, cts_float, cts_double, cts_CbC_code, cts_dfloat32, cts_dfloat64, cts_dfloat128 }; struct c_declspecs { tree type; tree decl_attr; tree attrs; enum c_typespec_keyword typespec_word; enum c_storage_class storage_class; unsigned int declspecs_seen_p : 1; unsigned int type_seen_p : 1; unsigned int non_sc_seen_p : 1; unsigned int typedef_p : 1; unsigned int tag_defined_p : 1; unsigned int explicit_signed_p : 1; unsigned int deprecated_p : 1; unsigned int default_int_p; unsigned int long_p : 1; unsigned int long_long_p : 1; unsigned int short_p : 1; unsigned int signed_p : 1; unsigned int unsigned_p : 1; unsigned int complex_p : 1; unsigned int inline_p : 1; unsigned int thread_p : 1; unsigned int const_p : 1; unsigned int volatile_p : 1; unsigned int restrict_p : 1; }; enum c_declarator_kind { cdk_id, cdk_function, cdk_array, cdk_pointer, cdk_attrs }; struct c_arg_info { tree parms; tree tags; tree types; tree others; tree pending_sizes; unsigned int had_vla_unspec : 1; }; struct c_declarator { enum c_declarator_kind kind; struct c_declarator *declarator; location_t id_loc; union { tree id; struct c_arg_info *arg_info; struct { tree dimen; int quals; tree attrs; unsigned int static_p : 1; unsigned int vla_unspec_p : 1; } array; int pointer_quals; tree attrs; } u; }; struct c_type_name { struct c_declspecs *specs; struct c_declarator *declarator; }; struct c_parm { struct c_declspecs *specs; tree attrs; struct c_declarator *declarator; }; struct language_function { struct c_language_function base; tree x_break_label; tree x_cont_label; struct c_switch * x_switch_stack; struct c_arg_info * arg_info; int returns_value; int returns_null; int returns_abnormally; int warn_about_return_type; int extern_inline; }; struct c_label_list { tree label; struct c_label_list *next; }; struct c_label_context_se { struct c_label_list *labels_def; struct c_label_list *labels_used; struct c_label_context_se *next; }; struct c_label_context_vm { struct c_label_list *labels_def; struct c_label_list *labels_used; unsigned scope; struct c_label_context_vm *next; }; extern void c_parse_init (void); extern void gen_aux_info_record (tree, int, int, int); extern struct obstack parser_obstack; extern tree c_break_label; extern tree c_cont_label; extern int global_bindings_p (void); extern void push_scope (void); extern tree pop_scope (void); extern void insert_block (tree); extern void c_expand_body (tree); extern void c_init_decl_processing (void); extern void c_dup_lang_specific_decl (tree); extern void c_print_identifier (FILE *, tree, int); extern int quals_from_declspecs (const struct c_declspecs *); extern struct c_declarator *build_array_declarator (tree, struct c_declspecs *, unsigned char, unsigned char); extern tree build_enumerator (tree, tree); extern tree check_for_loop_decls (void); extern void mark_forward_parm_decls (void); extern void declare_parm_level (void); extern void undeclared_variable (tree, location_t); extern tree declare_label (tree); extern tree define_label (location_t, tree); extern void c_maybe_initialize_eh (void); extern void finish_decl (tree, tree, tree); extern tree finish_enum (tree, tree, tree); extern void finish_function (void); extern tree finish_struct (tree, tree, tree); extern struct c_arg_info *get_parm_info (unsigned char); extern tree grokfield (struct c_declarator *, struct c_declspecs *, tree); extern tree groktypename (struct c_type_name *); extern tree grokparm (const struct c_parm *); extern tree implicitly_declare (tree); extern void keep_next_level (void); extern void pending_xref_error (void); extern void c_push_function_context (struct function *); extern void c_pop_function_context (struct function *); extern void push_parm_decl (const struct c_parm *); extern struct c_declarator *set_array_declarator_inner (struct c_declarator *, struct c_declarator *, unsigned char); extern tree builtin_function (const char *, tree, int, enum built_in_class, const char *, tree); extern void shadow_tag (const struct c_declspecs *); extern void shadow_tag_warned (const struct c_declspecs *, int); extern tree start_enum (tree); extern int start_function (struct c_declspecs *, struct c_declarator *, tree); extern tree start_decl (struct c_declarator *, struct c_declspecs *, unsigned char, tree); extern tree start_struct (enum tree_code, tree); extern void store_parm_decls (void); extern void store_parm_decls_from (struct c_arg_info *); extern tree xref_tag (enum tree_code, tree); extern struct c_typespec parser_xref_tag (enum tree_code, tree); extern int c_expand_decl (tree); extern struct c_parm *build_c_parm (struct c_declspecs *, tree, struct c_declarator *); extern struct c_declarator *build_attrs_declarator (tree, struct c_declarator *); extern struct c_declarator *build_function_declarator (struct c_arg_info *, struct c_declarator *); extern struct c_declarator *build_id_declarator (tree); extern struct c_declarator *make_pointer_declarator (struct c_declspecs *, struct c_declarator *); extern struct c_declspecs *build_null_declspecs (void); extern struct c_declspecs *declspecs_add_qual (struct c_declspecs *, tree); extern struct c_declspecs *declspecs_add_type (struct c_declspecs *, struct c_typespec); extern struct c_declspecs *declspecs_add_scspec (struct c_declspecs *, tree); extern struct c_declspecs *declspecs_add_attrs (struct c_declspecs *, tree); extern struct c_declspecs *finish_declspecs (struct c_declspecs *); extern int c_disregard_inline_limits (tree); extern int c_cannot_inline_tree_fn (tree *); extern unsigned char c_objc_common_init (void); extern unsigned char c_missing_noreturn_ok_p (tree); extern tree c_objc_common_truthvalue_conversion (tree expr); extern unsigned char c_warn_unused_global_decl (tree); extern void c_initialize_diagnostics (diagnostic_context *); extern unsigned char c_vla_unspec_p (tree x, tree fn); extern int in_alignof; extern int in_sizeof; extern int in_typeof; extern struct c_switch *c_switch_stack; extern struct c_label_context_se *label_context_stack_se; extern struct c_label_context_vm *label_context_stack_vm; extern tree require_complete_type (tree); extern int same_translation_unit_p (tree, tree); extern int comptypes (tree, tree); extern unsigned char c_vla_type_p (tree); extern unsigned char c_mark_addressable (tree); extern void c_incomplete_type_error (tree, tree); extern tree c_type_promotes_to (tree); extern struct c_expr default_function_array_conversion (struct c_expr); extern tree composite_type (tree, tree); extern tree build_component_ref (tree, tree); extern tree build_array_ref (tree, tree); extern tree build_external_ref (tree, int, location_t); extern void pop_maybe_used (unsigned char); extern struct c_expr c_expr_sizeof_expr (struct c_expr); extern struct c_expr c_expr_sizeof_type (struct c_type_name *); extern struct c_expr parser_build_unary_op (enum tree_code, struct c_expr); extern struct c_expr parser_build_binary_op (enum tree_code, struct c_expr, struct c_expr); extern tree build_conditional_expr (tree, tree, tree); extern tree build_compound_expr (tree, tree); extern tree c_cast_expr (struct c_type_name *, tree); extern tree build_c_cast (tree, tree); extern void store_init_value (tree, tree); extern void error_init (const char *); extern void pedwarn_init (const char *); extern void maybe_warn_string_init (tree, struct c_expr); extern void start_init (tree, tree, int); extern void finish_init (void); extern void really_start_incremental_init (tree); extern void push_init_level (int); extern struct c_expr pop_init_level (int); extern void set_init_index (tree, tree); extern void set_init_label (tree); extern void process_init_element (struct c_expr); extern tree build_compound_literal (tree, tree); extern tree c_start_case (tree); extern void c_finish_case (tree); extern tree build_asm_expr (tree, tree, tree, tree, unsigned char); extern tree build_asm_stmt (tree, tree); extern tree c_convert_parm_for_inlining (tree, tree, tree, int); extern int c_types_compatible_p (tree, tree); extern tree c_begin_compound_stmt (unsigned char); extern tree c_end_compound_stmt (tree, unsigned char); extern void c_finish_if_stmt (location_t, tree, tree, tree, unsigned char); extern void c_finish_loop (location_t, tree, tree, tree, tree, tree, unsigned char); extern tree c_begin_stmt_expr (void); extern tree c_finish_stmt_expr (tree); extern tree c_process_expr_stmt (tree); extern tree c_finish_expr_stmt (tree); extern tree c_finish_return (tree); extern tree c_finish_bc_stmt (tree *, unsigned char); extern tree c_finish_goto_label (tree); extern tree c_finish_goto_ptr (tree); extern void c_begin_vm_scope (unsigned int); extern void c_end_vm_scope (unsigned int); extern tree c_expr_to_decl (tree, unsigned char *, unsigned char *, unsigned char *); extern tree c_begin_omp_parallel (void); extern tree c_finish_omp_parallel (tree, tree); extern tree c_finish_omp_clauses (tree); extern int current_function_returns_value; extern int current_function_returns_null; extern int current_function_returns_abnormally; extern int system_header_p; extern unsigned char c_override_global_bindings_to_false; extern unsigned char c_eh_initialized_p; extern void c_finish_incomplete_decl (tree); extern void c_write_global_declarations (void); # 635 "../../GCC/gcc/c-tree.h" extern void pedwarn_c90 (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1 ,2))) __attribute__ ((__nonnull__ (1))); extern void pedwarn_c99 (const char *, ...) __attribute__ ((__format__ (__gcc_cdiag__, 1 ,2))) __attribute__ ((__nonnull__ (1))); # 51 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/flags.h" 1 # 27 "../../GCC/gcc/flags.h" enum debug_info_type { NO_DEBUG, DBX_DEBUG, SDB_DEBUG, DWARF2_DEBUG, XCOFF_DEBUG, VMS_DEBUG, VMS_AND_DWARF2_DEBUG }; extern enum debug_info_type write_symbols; extern const char *const debug_type_names[]; enum debug_info_level { DINFO_LEVEL_NONE, DINFO_LEVEL_TERSE, DINFO_LEVEL_NORMAL, DINFO_LEVEL_VERBOSE }; extern enum debug_info_level debug_info_level; extern unsigned char use_gnu_debug_info_extensions; # 74 "../../GCC/gcc/flags.h" extern enum symbol_visibility default_visibility; struct visibility_flags { unsigned inpragma : 1; unsigned inlines_hidden : 1; }; extern struct visibility_flags visibility_options; extern int optimize; extern int optimize_size; extern unsigned char extra_warnings; extern void set_Wunused (int setting); extern unsigned char warn_larger_than; extern long larger_than_size; extern int warn_strict_aliasing; extern int warn_strict_overflow; extern int in_system_header; extern int flag_print_asm_name; extern int flag_signed_char; extern int flag_short_enums; extern int flag_pcc_struct_return; extern int flag_complex_method; extern int flag_really_no_inline; extern int rtl_dump_and_exit; extern int flag_gen_aux_info; extern int flag_dump_unnumbered; extern int flag_pedantic_errors; extern int flag_shlib; # 187 "../../GCC/gcc/flags.h" extern int flag_debug_asm; extern int flag_next_runtime; extern int flag_dump_rtl_in_asm; extern int flag_renumber_insns; extern int frame_pointer_needed; extern int flag_evaluation_order; extern unsigned long g_switch_value; extern unsigned char g_switch_set; extern int align_loops_log; extern int align_loops_max_skip; extern int align_jumps_log; extern int align_jumps_max_skip; extern int align_labels_log; extern int align_labels_max_skip; extern int align_functions_log; extern int force_align_functions_log; extern int dump_for_graph; enum graph_dump_types { no_graph = 0, vcg }; extern enum graph_dump_types graph_dump_format; extern int flag_detailed_statistics; extern int flag_remove_unreachable_functions; extern int flag_var_tracking; extern unsigned char flag_speculative_prefetching_set; extern const char *flag_random_seed; # 319 "../../GCC/gcc/flags.h" enum warn_strict_overflow_code { WARN_STRICT_OVERFLOW_ALL = 1, WARN_STRICT_OVERFLOW_CONDITIONAL = 2, WARN_STRICT_OVERFLOW_COMPARISON = 3, WARN_STRICT_OVERFLOW_MISC = 4, WARN_STRICT_OVERFLOW_MAGNITUDE = 5 }; # 52 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/output.h" 1 # 27 "../../GCC/gcc/output.h" extern void init_final (const char *); extern void app_enable (void); extern void app_disable (void); extern int dbr_sequence_length (void); extern void init_insn_lengths (void); extern int get_attr_length (rtx); extern int get_attr_min_length (rtx); extern void shorten_branches (rtx); extern void final_start_function (rtx, FILE *, int); extern void final_end_function (void); extern void final (rtx, FILE *, int); extern rtx final_scan_insn (rtx, FILE *, int, int, int *); extern rtx alter_subreg (rtx *); extern void output_operand_lossage (const char *, ...) __attribute__ ((__format__ (__printf__, 1, 2))) __attribute__ ((__nonnull__ (1))); extern void output_asm_insn (const char *, rtx *); extern int insn_current_reference_address (rtx); extern int label_to_alignment (rtx); extern void output_asm_label (rtx); extern void output_address (rtx); extern void output_addr_const (FILE *, rtx); # 117 "../../GCC/gcc/output.h" typedef long __gcc_host_wide_int__; extern void asm_fprintf (FILE *file, const char *p, ...) __attribute__ ((__format__ (__asm_fprintf__, 2, 3))) __attribute__ ((__nonnull__ (2))); extern void split_double (rtx, rtx *, rtx *); extern int leaf_function_p (void); extern int final_forward_branch_p (rtx); extern int only_leaf_regs_used (void); extern void leaf_renumber_regs_insn (rtx); extern const char *get_insn_template (int, rtx); extern int regno_clobbered_at_setjmp (int); extern void declare_weak (tree); extern void merge_weak (tree, tree); extern void weak_finish (void); # 168 "../../GCC/gcc/output.h" extern int decode_reg_name (const char *); extern void assemble_alias (tree, tree); extern void default_assemble_visibility (tree, int); extern void assemble_asm (tree); extern void assemble_start_function (tree, const char *); extern void assemble_end_function (tree, const char *); # 197 "../../GCC/gcc/output.h" extern void assemble_variable (tree, int, int, int); extern void align_variable (tree decl, unsigned char dont_output_data); extern void assemble_external (tree); extern void assemble_zeros (unsigned long); extern void assemble_align (int); extern void assemble_string (const char *, int); extern void assemble_external_libcall (rtx); extern void assemble_label (const char *); extern void assemble_name_raw (FILE *, const char *); extern void assemble_name (FILE *, const char *); # 242 "../../GCC/gcc/output.h" extern const char *integer_asm_op (int, int); extern void assemble_integer_with_op (const char *, rtx); extern unsigned char default_assemble_integer (rtx, unsigned int, int); extern unsigned char assemble_integer (rtx, unsigned, unsigned, int); # 265 "../../GCC/gcc/output.h" extern void assemble_real (struct real_value, enum machine_mode, unsigned); extern int get_pool_size (void); extern void output_shared_constant_pool (void); extern void output_object_blocks (void); extern unsigned char constructor_static_from_elts_p (tree); # 295 "../../GCC/gcc/output.h" extern tree initializer_constant_valid_p (tree, tree); # 305 "../../GCC/gcc/output.h" extern void output_constant (tree, unsigned long, unsigned int); extern rtx final_sequence; # 325 "../../GCC/gcc/output.h" extern FILE *asm_out_file; extern const char *first_global_object_name; extern const char *weak_global_object_name; extern int current_function_is_leaf; extern int current_function_sp_is_unchanging; extern int current_function_uses_only_leaf_regs; extern FILE *dump_file; extern rtx current_insn_predicate; extern rtx current_output_insn; extern rtx this_is_asm_operands; extern int size_directive_output; extern tree last_assemble_variable_decl; extern unsigned char first_function_block_is_cold; extern unsigned char decl_readonly_section (tree, int); extern int compute_reloc_for_constant (tree); extern const char *user_label_prefix; extern void default_function_pro_epilogue (FILE *, long); extern void no_asm_to_stream (FILE *); # 430 "../../GCC/gcc/output.h" enum section_category { SECCAT_TEXT, SECCAT_RODATA, SECCAT_RODATA_MERGE_STR, SECCAT_RODATA_MERGE_STR_INIT, SECCAT_RODATA_MERGE_CONST, SECCAT_SRODATA, SECCAT_DATA, # 451 "../../GCC/gcc/output.h" SECCAT_DATA_REL, SECCAT_DATA_REL_LOCAL, SECCAT_DATA_REL_RO, SECCAT_DATA_REL_RO_LOCAL, SECCAT_SDATA, SECCAT_TDATA, SECCAT_BSS, SECCAT_SBSS, SECCAT_TBSS }; struct section_common { unsigned int flags; }; struct named_section { struct section_common common; const char *name; tree decl; }; typedef void (*unnamed_section_callback) (const void *); struct unnamed_section { struct section_common common; unnamed_section_callback callback; const void * data; section *next; }; # 508 "../../GCC/gcc/output.h" typedef unsigned char (*noswitch_section_callback) (tree decl, const char *name, unsigned long size, unsigned long rounded); struct noswitch_section { struct section_common common; noswitch_section_callback callback; }; union section { struct section_common common; struct named_section named; struct unnamed_section unnamed; struct noswitch_section noswitch; }; struct object_block; extern section *text_section; extern section *data_section; extern section *readonly_data_section; extern section *sdata_section; extern section *ctors_section; extern section *dtors_section; extern section *bss_section; extern section *sbss_section; extern section *exception_section; extern section *eh_frame_section; extern section *tls_comm_section; extern section *comm_section; extern section *lcomm_section; extern section *bss_noswitch_section; extern section *in_section; extern unsigned char in_cold_section_p; extern section *get_unnamed_section (unsigned int, void (*) (const void *), const void *); extern section *get_section (const char *, unsigned int, tree); extern section *get_named_section (tree, const char *, int); extern void place_block_symbol (rtx); extern rtx get_section_anchor (struct object_block *, long, enum tls_model); extern section *mergeable_constant_section (enum machine_mode, unsigned long, unsigned int); extern section *function_section (tree); extern section *unlikely_text_section (void); extern section *current_function_section (void); extern unsigned char unlikely_text_section_p (section *); extern void switch_to_section (section *); extern void output_section_asm_op (const void *); extern unsigned int default_section_type_flags (tree, const char *, int); extern unsigned char have_global_bss_p (void); extern void default_no_named_section (const char *, unsigned int, tree); extern void default_elf_asm_named_section (const char *, unsigned int, tree); extern enum section_category categorize_decl_for_section (tree, int); extern void default_coff_asm_named_section (const char *, unsigned int, tree); extern void default_pe_asm_named_section (const char *, unsigned int, tree); extern void default_stabs_asm_out_destructor (rtx, int); extern void default_named_section_asm_out_destructor (rtx, int); extern void default_dtor_section_asm_out_destructor (rtx, int); extern void default_stabs_asm_out_constructor (rtx, int); extern void default_named_section_asm_out_constructor (rtx, int); extern void default_ctor_section_asm_out_constructor (rtx, int); extern section *default_select_section (tree, int, unsigned long); extern section *default_elf_select_section (tree, int, unsigned long); extern void default_unique_section (tree, int); extern section *default_function_rodata_section (tree); extern section *default_no_function_rodata_section (tree); extern section *default_select_rtx_section (enum machine_mode, rtx, unsigned long); extern section *default_elf_select_rtx_section (enum machine_mode, rtx, unsigned long); extern void default_encode_section_info (tree, rtx, int); extern const char *default_strip_name_encoding (const char *); extern void default_asm_output_anchor (rtx); extern unsigned char default_use_anchors_for_symbol_p (rtx); extern unsigned char default_binds_local_p (tree); extern unsigned char default_binds_local_p_1 (tree, int); extern void default_globalize_label (FILE *, const char *); extern void default_emit_unwind_label (FILE *, tree, int, int); extern void default_emit_except_table_label (FILE *); extern void default_internal_label (FILE *, const char *, unsigned long); extern void default_file_start (void); extern void file_end_indicate_exec_stack (void); extern unsigned char default_valid_pointer_mode (enum machine_mode); extern int default_address_cost (rtx); extern void dbxout_int (int); extern void dbxout_stabd (int, int); extern void dbxout_begin_stabn (int); extern void dbxout_begin_stabn_sline (int); extern void dbxout_begin_empty_stabs (int); extern void dbxout_begin_simple_stabs (const char *, int); extern void dbxout_begin_simple_stabs_desc (const char *, int, int); extern void dbxout_stab_value_zero (void); extern void dbxout_stab_value_label (const char *); extern void dbxout_stab_value_label_diff (const char *, const char *); extern void dbxout_stab_value_internal_label (const char *, int *); extern void dbxout_stab_value_internal_label_diff (const char *, int *, const char *); # 53 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/target.h" 1 # 55 "../../GCC/gcc/target.h" struct stdarg_info; struct spec_info_def; typedef struct secondary_reload_info { int icode; int extra_cost; struct secondary_reload_info *prev_sri; int t_icode; } secondary_reload_info; struct gcc_target { struct asm_out { const char *open_paren, *close_paren; const char *byte_op; struct asm_int_op { const char *hi; const char *si; const char *di; const char *ti; } aligned_op, unaligned_op; unsigned char (* integer) (rtx x, unsigned int size, int aligned_p); void (* globalize_label) (FILE *, const char *); void (* unwind_label) (FILE *, tree, int, int); void (* except_table_label) (FILE *); void (* unwind_emit) (FILE *, rtx); void (* internal_label) (FILE *, const char *, unsigned long); unsigned char (* ttype) (rtx); void (* visibility) (tree, int); void (* function_prologue) (FILE *, long); void (* function_end_prologue) (FILE *); void (* function_begin_epilogue) (FILE *); void (* function_epilogue) (FILE *, long); void (* init_sections) (void); void (* named_section) (const char *name, unsigned int flags, tree decl); int (*reloc_rw_mask) (void); section *(* select_section) (tree, int, unsigned long); section *(* select_rtx_section) (enum machine_mode, rtx, unsigned long); void (* unique_section) (tree, int); section *(* function_rodata_section) (tree); void (* constructor) (rtx, int); void (* destructor) (rtx, int); void (* output_mi_thunk) (FILE *file, tree thunk_decl, long delta, long vcall_offset, tree function_decl); unsigned char (* can_output_mi_thunk) (tree thunk_decl, long delta, long vcall_offset, tree function_decl); void (*file_start) (void); void (*file_end) (void); void (*external_libcall) (rtx); void (*mark_decl_preserved) (const char *); void (*output_anchor) (rtx); void (*output_dwarf_dtprel) (FILE *file, int size, rtx x); } asm_out; struct sched { int (* adjust_cost) (rtx insn, rtx link, rtx def_insn, int cost); int (* adjust_priority) (rtx, int); int (* issue_rate) (void); int (* variable_issue) (FILE *, int, rtx, int); void (* md_init) (FILE *, int, int); void (* md_finish) (FILE *, int); void (* md_init_global) (FILE *, int, int); void (* md_finish_global) (FILE *, int); int (* reorder) (FILE *, int, rtx *, int *, int); int (* reorder2) (FILE *, int, rtx *, int *, int); void (* dependencies_evaluation_hook) (rtx, rtx); # 272 "../../GCC/gcc/target.h" void (* init_dfa_pre_cycle_insn) (void); rtx (* dfa_pre_cycle_insn) (void); void (* init_dfa_post_cycle_insn) (void); rtx (* dfa_post_cycle_insn) (void); # 284 "../../GCC/gcc/target.h" int (* first_cycle_multipass_dfa_lookahead) (void); int (* first_cycle_multipass_dfa_lookahead_guard) (rtx); # 305 "../../GCC/gcc/target.h" int (* dfa_new_cycle) (FILE *, int, rtx, int, int, int *); # 317 "../../GCC/gcc/target.h" unsigned char (* is_costly_dependence) (rtx, rtx, rtx, int, int); int (* adjust_cost_2) (rtx insn, int, rtx def_insn, int cost); void (* h_i_d_extended) (void); # 340 "../../GCC/gcc/target.h" int (* speculate_insn) (rtx, int, rtx *); unsigned char (* needs_block_p) (rtx); # 356 "../../GCC/gcc/target.h" rtx (* gen_check) (rtx, rtx, unsigned char); unsigned char (* first_cycle_multipass_dfa_lookahead_guard_spec) (rtx); void (* set_sched_flags) (struct spec_info_def *); } sched; struct vectorize { tree (* builtin_mask_for_load) (void); unsigned char (* vector_alignment_reachable) (tree, unsigned char); } vectorize; int default_target_flags; unsigned char (* handle_option) (size_t code, const char *arg, int value); enum machine_mode (* eh_return_filter_mode) (void); tree (* merge_decl_attributes) (tree, tree); tree (* merge_type_attributes) (tree, tree); const struct attribute_spec *attribute_table; int (* comp_type_attributes) (tree type1, tree type2); void (* set_default_type_attributes) (tree type); void (* insert_attributes) (tree decl, tree *attributes); unsigned char (* function_attribute_inlinable_p) (tree fndecl); unsigned char (* ms_bitfield_layout_p) (tree record_type); unsigned char (* decimal_float_supported_p) (void); unsigned char (* align_anon_bitfield) (void); unsigned char (* narrow_volatile_bitfield) (void); void (* init_builtins) (void); rtx (* expand_builtin) (tree exp, rtx target, rtx subtarget, enum machine_mode mode, int ignore); tree (*resolve_overloaded_builtin) (tree decl, tree params); tree (* fold_builtin) (tree fndecl, tree arglist, unsigned char ignore); const char * (* mangle_fundamental_type) (tree type); void (* init_libfuncs) (void); unsigned int (* section_type_flags) (tree, const char *, int); unsigned char (* cannot_modify_jumps_p) (void); int (* branch_target_register_class) (void); unsigned char (* branch_target_register_callee_saved) (unsigned char after_pe_gen); unsigned char (* cannot_force_const_mem) (rtx); unsigned char (* cannot_copy_insn_p) (rtx); unsigned char (* commutative_p) (rtx, int); rtx (* delegitimize_address) (rtx); unsigned char (* use_blocks_for_constant_p) (enum machine_mode, rtx); long min_anchor_offset; long max_anchor_offset; unsigned char (* use_anchors_for_symbol_p) (rtx); unsigned char (*function_ok_for_sibcall) (tree decl, tree exp); unsigned char (* in_small_data_p) (tree); unsigned char (* binds_local_p) (tree); void (* encode_section_info) (tree, rtx, int); const char * (* strip_name_encoding) (const char *); unsigned long (* shift_truncation_mask) (enum machine_mode mode); unsigned int (* min_divisions_for_recip_mul) (enum machine_mode mode); int (* mode_rep_extended) (enum machine_mode mode, enum machine_mode mode_rep); unsigned char (* valid_pointer_mode) (enum machine_mode mode); unsigned char (* scalar_mode_supported_p) (enum machine_mode mode); unsigned char (* vector_mode_supported_p) (enum machine_mode mode); unsigned char (* vector_opaque_p) (tree); unsigned char (* rtx_costs) (rtx x, int code, int outer_code, int *total); int (* address_cost) (rtx x); rtx (* allocate_initial_value) (rtx x); rtx (* dwarf_register_span) (rtx); # 584 "../../GCC/gcc/target.h" unsigned char (* fixed_condition_code_regs) (unsigned int *, unsigned int *); enum machine_mode (* cc_modes_compatible) (enum machine_mode, enum machine_mode); void (* machine_dependent_reorg) (void); tree (* build_builtin_va_list) (void); tree (* gimplify_va_arg_expr) (tree valist, tree type, tree *pre_p, tree *post_p); void * (* get_pch_validity) (size_t *); const char * (* pch_valid_p) (const void *, size_t); const char *(*check_pch_target_flags) (int); unsigned char (* default_short_enums) (void); rtx (* builtin_setjmp_frame_value) (void); tree (* md_asm_clobbers) (tree, tree, tree); int (* dwarf_calling_convention) (tree); # 646 "../../GCC/gcc/target.h" void (* dwarf_handle_frame_unspec) (const char *, rtx, int); unsigned char (* stdarg_optimize_hook) (struct stdarg_info *ai, tree lhs, tree rhs); tree (* stack_protect_guard) (void); tree (* stack_protect_fail) (void); const char * (*invalid_within_doloop) (rtx); unsigned char (* valid_dllimport_attribute_p) (tree decl); struct calls { unsigned char (*promote_function_args) (tree fntype); unsigned char (*promote_function_return) (tree fntype); unsigned char (*promote_prototypes) (tree fntype); rtx (*struct_value_rtx) (tree fndecl, int incoming); unsigned char (*return_in_memory) (tree type, tree fndecl); unsigned char (*return_in_msb) (tree type); unsigned char (*pass_by_reference) (CUMULATIVE_ARGS *ca, enum machine_mode mode, tree type, unsigned char named_arg); rtx (*expand_builtin_saveregs) (void); void (*setup_incoming_varargs) (CUMULATIVE_ARGS *ca, enum machine_mode mode, tree type, int *pretend_arg_size, int second_time); unsigned char (*strict_argument_naming) (CUMULATIVE_ARGS *ca); unsigned char (*pretend_outgoing_varargs_named) (CUMULATIVE_ARGS *ca); unsigned char (* split_complex_arg) (tree type); unsigned char (* must_pass_in_stack) (enum machine_mode mode, tree t); unsigned char (* callee_copies) (CUMULATIVE_ARGS *ca, enum machine_mode mode, tree type, unsigned char named); int (* arg_partial_bytes) (CUMULATIVE_ARGS *ca, enum machine_mode mode, tree type, unsigned char named); const char *(*invalid_arg_for_unprototyped_fn) (tree typelist, tree funcdecl, tree val); rtx (*function_value) (tree ret_type, tree fn_decl_or_type, unsigned char outgoing); rtx (*internal_arg_pointer) (void); } calls; const char *(*invalid_conversion) (tree fromtype, tree totype); const char *(*invalid_unary_op) (int op, tree type); const char *(*invalid_binary_op) (int op, tree type1, tree type2); enum reg_class (*secondary_reload) (unsigned char, rtx, enum reg_class, enum machine_mode, struct secondary_reload_info *); struct cxx { tree (*guard_type) (void); unsigned char (*guard_mask_bit) (void); tree (*get_cookie_size) (tree); unsigned char (*cookie_has_size) (void); int (*import_export_class) (tree, int); unsigned char (*cdtor_returns_this) (void); unsigned char (*key_method_may_be_inline) (void); void (*determine_class_data_visibility) (tree decl); unsigned char (*class_data_always_comdat) (void); unsigned char (*use_aeabi_atexit) (void); void (*adjust_class_at_definition) (tree type); } cxx; void (*live_on_entry) (bitmap); unsigned char unwind_tables_default; unsigned char have_named_sections; unsigned char have_switchable_bss_sections; unsigned char have_ctors_dtors; unsigned char have_tls; unsigned char have_srodata_section; unsigned char terminate_dw2_eh_frame_info; unsigned char file_start_app_off; unsigned char file_start_file_directive; unsigned char handle_pragma_redefine_extname; unsigned char handle_pragma_extern_prefix; unsigned char relaxed_ordering; unsigned char arm_eabi_unwinder; }; extern struct gcc_target targetm; # 58 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/cgraph.h" 1 # 24 "../../GCC/gcc/cgraph.h" # 1 "../../GCC/gcc/basic-block.h" 1 # 24 "../../GCC/gcc/basic-block.h" # 1 "../../GCC/gcc/bitmap.h" 1 # 27 "../../GCC/gcc/bitmap.h" typedef unsigned long BITMAP_WORD; # 43 "../../GCC/gcc/bitmap.h" typedef struct bitmap_obstack { struct bitmap_element_def *elements; struct bitmap_head_def *heads; struct obstack obstack; } bitmap_obstack; # 62 "../../GCC/gcc/bitmap.h" typedef struct bitmap_element_def { struct bitmap_element_def *next; struct bitmap_element_def *prev; unsigned int indx; BITMAP_WORD bits[((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u))]; } bitmap_element; typedef struct bitmap_head_def { bitmap_element *first; bitmap_element *current; unsigned int indx; bitmap_obstack *obstack; } bitmap_head; extern bitmap_element bitmap_zero_bits; extern bitmap_obstack bitmap_default_obstack; extern void bitmap_clear (bitmap); extern void bitmap_copy (bitmap, bitmap); extern unsigned char bitmap_equal_p (bitmap, bitmap); extern unsigned char bitmap_intersect_p (bitmap, bitmap); extern unsigned char bitmap_intersect_compl_p (bitmap, bitmap); extern unsigned long bitmap_count_bits (bitmap); extern void bitmap_and (bitmap, bitmap, bitmap); extern void bitmap_and_into (bitmap, bitmap); extern void bitmap_and_compl (bitmap, bitmap, bitmap); extern unsigned char bitmap_and_compl_into (bitmap, bitmap); extern void bitmap_compl_and_into (bitmap, bitmap); extern void bitmap_clear_range (bitmap, unsigned int, unsigned int); extern unsigned char bitmap_ior (bitmap, bitmap, bitmap); extern unsigned char bitmap_ior_into (bitmap, bitmap); extern void bitmap_xor (bitmap, bitmap, bitmap); extern void bitmap_xor_into (bitmap, bitmap); extern unsigned char bitmap_ior_and_compl (bitmap DST, bitmap A, bitmap B, bitmap C); extern unsigned char bitmap_ior_and_compl_into (bitmap DST, bitmap B, bitmap C); extern void bitmap_clear_bit (bitmap, int); extern void bitmap_set_bit (bitmap, int); extern int bitmap_bit_p (bitmap, int); extern void debug_bitmap (bitmap); extern void debug_bitmap_file (FILE *, bitmap); extern void bitmap_print (FILE *, bitmap, const char *, const char *); extern void bitmap_obstack_initialize (bitmap_obstack *); extern void bitmap_obstack_release (bitmap_obstack *); static __inline__ void bitmap_initialize (bitmap head, bitmap_obstack *obstack) { head->first = head->current = ((void *)0); head->obstack = obstack; } extern bitmap bitmap_obstack_alloc (bitmap_obstack *obstack); extern bitmap bitmap_gc_alloc (void); extern void bitmap_obstack_free (bitmap); extern unsigned bitmap_first_set_bit (bitmap); extern hashval_t bitmap_hash(bitmap); # 182 "../../GCC/gcc/bitmap.h" typedef struct { bitmap_element *elt1; bitmap_element *elt2; unsigned word_no; BITMAP_WORD bits; } bitmap_iterator; static __inline__ void bmp_iter_set_init (bitmap_iterator *bi, bitmap map, unsigned start_bit, unsigned *bit_no) { bi->elt1 = map->first; bi->elt2 = ((void *)0); while (1) { if (!bi->elt1) { bi->elt1 = &bitmap_zero_bits; break; } if (bi->elt1->indx >= start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) break; bi->elt1 = bi->elt1->next; } if (bi->elt1->indx != start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) start_bit = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); bi->word_no = start_bit / (8 * 4 * 1u) % ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)); bi->bits = bi->elt1->bits[bi->word_no]; bi->bits >>= start_bit % (8 * 4 * 1u); start_bit += !bi->bits; *bit_no = start_bit; } static __inline__ void bmp_iter_and_init (bitmap_iterator *bi, bitmap map1, bitmap map2, unsigned start_bit, unsigned *bit_no) { bi->elt1 = map1->first; bi->elt2 = map2->first; while (1) { if (!bi->elt1) { bi->elt2 = ((void *)0); break; } if (bi->elt1->indx >= start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) break; bi->elt1 = bi->elt1->next; } while (1) { if (!bi->elt2) { bi->elt1 = bi->elt2 = &bitmap_zero_bits; break; } if (bi->elt2->indx >= bi->elt1->indx) break; bi->elt2 = bi->elt2->next; } if (bi->elt1->indx == bi->elt2->indx) { if (bi->elt1->indx != start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) start_bit = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); bi->word_no = start_bit / (8 * 4 * 1u) % ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)); bi->bits = bi->elt1->bits[bi->word_no] & bi->elt2->bits[bi->word_no]; bi->bits >>= start_bit % (8 * 4 * 1u); } else { bi->word_no = ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) - 1; bi->bits = 0; } start_bit += !bi->bits; *bit_no = start_bit; } static __inline__ void bmp_iter_and_compl_init (bitmap_iterator *bi, bitmap map1, bitmap map2, unsigned start_bit, unsigned *bit_no) { bi->elt1 = map1->first; bi->elt2 = map2->first; while (1) { if (!bi->elt1) { bi->elt1 = &bitmap_zero_bits; break; } if (bi->elt1->indx >= start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) break; bi->elt1 = bi->elt1->next; } while (bi->elt2 && bi->elt2->indx < bi->elt1->indx) bi->elt2 = bi->elt2->next; if (bi->elt1->indx != start_bit / (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u))) start_bit = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); bi->word_no = start_bit / (8 * 4 * 1u) % ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)); bi->bits = bi->elt1->bits[bi->word_no]; if (bi->elt2 && bi->elt1->indx == bi->elt2->indx) bi->bits &= ~bi->elt2->bits[bi->word_no]; bi->bits >>= start_bit % (8 * 4 * 1u); start_bit += !bi->bits; *bit_no = start_bit; } static __inline__ void bmp_iter_next (bitmap_iterator *bi, unsigned *bit_no) { bi->bits >>= 1; *bit_no += 1; } static __inline__ unsigned char bmp_iter_set (bitmap_iterator *bi, unsigned *bit_no) { if (bi->bits) { next_bit: while (!(bi->bits & 1)) { bi->bits >>= 1; *bit_no += 1; } return 1; } *bit_no = ((*bit_no + (8 * 4 * 1u) - 1) / (8 * 4 * 1u) * (8 * 4 * 1u)); bi->word_no++; while (1) { while (bi->word_no != ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u))) { bi->bits = bi->elt1->bits[bi->word_no]; if (bi->bits) goto next_bit; *bit_no += (8 * 4 * 1u); bi->word_no++; } bi->elt1 = bi->elt1->next; if (!bi->elt1) return 0; *bit_no = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); bi->word_no = 0; } } static __inline__ unsigned char bmp_iter_and (bitmap_iterator *bi, unsigned *bit_no) { if (bi->bits) { next_bit: while (!(bi->bits & 1)) { bi->bits >>= 1; *bit_no += 1; } return 1; } *bit_no = ((*bit_no + (8 * 4 * 1u) - 1) / (8 * 4 * 1u) * (8 * 4 * 1u)); bi->word_no++; while (1) { while (bi->word_no != ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u))) { bi->bits = bi->elt1->bits[bi->word_no] & bi->elt2->bits[bi->word_no]; if (bi->bits) goto next_bit; *bit_no += (8 * 4 * 1u); bi->word_no++; } do { do { bi->elt1 = bi->elt1->next; if (!bi->elt1) return 0; } while (bi->elt1->indx < bi->elt2->indx); while (bi->elt2->indx < bi->elt1->indx) { bi->elt2 = bi->elt2->next; if (!bi->elt2) return 0; } } while (bi->elt1->indx != bi->elt2->indx); *bit_no = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); bi->word_no = 0; } } static __inline__ unsigned char bmp_iter_and_compl (bitmap_iterator *bi, unsigned *bit_no) { if (bi->bits) { next_bit: while (!(bi->bits & 1)) { bi->bits >>= 1; *bit_no += 1; } return 1; } *bit_no = ((*bit_no + (8 * 4 * 1u) - 1) / (8 * 4 * 1u) * (8 * 4 * 1u)); bi->word_no++; while (1) { while (bi->word_no != ((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u))) { bi->bits = bi->elt1->bits[bi->word_no]; if (bi->elt2 && bi->elt2->indx == bi->elt1->indx) bi->bits &= ~bi->elt2->bits[bi->word_no]; if (bi->bits) goto next_bit; *bit_no += (8 * 4 * 1u); bi->word_no++; } bi->elt1 = bi->elt1->next; if (!bi->elt1) return 0; while (bi->elt2 && bi->elt2->indx < bi->elt1->indx) bi->elt2 = bi->elt2->next; *bit_no = bi->elt1->indx * (((128 + (8 * 4 * 1u) - 1) / (8 * 4 * 1u)) * (8 * 4 * 1u)); bi->word_no = 0; } } # 25 "../../GCC/gcc/basic-block.h" 2 # 1 "../../GCC/gcc/sbitmap.h" 1 # 31 "../../GCC/gcc/sbitmap.h" typedef struct simple_bitmap_def { unsigned int n_bits; unsigned int size; unsigned int bytes; unsigned long elms[1]; } *sbitmap; typedef unsigned long *sbitmap_ptr; # 59 "../../GCC/gcc/sbitmap.h" typedef struct { unsigned long *ptr; unsigned int size; unsigned int word_num; unsigned int bit_num; unsigned long word; } sbitmap_iterator; static __inline__ void sbitmap_iter_init (sbitmap_iterator *i, sbitmap bmp, unsigned int min) { i->word_num = min / (unsigned int) ((unsigned) (8 * 4)); i->bit_num = min; i->size = bmp->size; i->ptr = bmp->elms; if (i->word_num >= i->size) i->word = 0; else i->word = (i->ptr[i->word_num] >> (i->bit_num % (unsigned int) ((unsigned) (8 * 4)))); } static __inline__ unsigned char sbitmap_iter_cond (sbitmap_iterator *i, unsigned int *n) { for (; i->word == 0; i->word = i->ptr[i->word_num]) { i->word_num++; if (i->word_num >= i->size) return 0; i->bit_num = i->word_num * ((unsigned) (8 * 4)); } for (; (i->word & 1) == 0; i->word >>= 1) i->bit_num++; *n = i->bit_num; return 1; } static __inline__ void sbitmap_iter_next (sbitmap_iterator *i) { i->word >>= 1; i->bit_num++; } # 171 "../../GCC/gcc/sbitmap.h" struct int_list; extern void dump_sbitmap (FILE *, sbitmap); extern void dump_sbitmap_file (FILE *, sbitmap); extern void dump_sbitmap_vector (FILE *, const char *, const char *, sbitmap *, int); extern sbitmap sbitmap_alloc (unsigned int); extern sbitmap *sbitmap_vector_alloc (unsigned int, unsigned int); extern sbitmap sbitmap_resize (sbitmap, unsigned int, int); extern void sbitmap_copy (sbitmap, sbitmap); extern int sbitmap_equal (sbitmap, sbitmap); extern void sbitmap_zero (sbitmap); extern void sbitmap_ones (sbitmap); extern void sbitmap_vector_zero (sbitmap *, unsigned int); extern void sbitmap_vector_ones (sbitmap *, unsigned int); extern void sbitmap_union_of_diff (sbitmap, sbitmap, sbitmap, sbitmap); extern unsigned char sbitmap_union_of_diff_cg (sbitmap, sbitmap, sbitmap, sbitmap); extern void sbitmap_difference (sbitmap, sbitmap, sbitmap); extern void sbitmap_not (sbitmap, sbitmap); extern void sbitmap_a_or_b_and_c (sbitmap, sbitmap, sbitmap, sbitmap); extern unsigned char sbitmap_a_or_b_and_c_cg (sbitmap, sbitmap, sbitmap, sbitmap); extern void sbitmap_a_and_b_or_c (sbitmap, sbitmap, sbitmap, sbitmap); extern unsigned char sbitmap_a_and_b_or_c_cg (sbitmap, sbitmap, sbitmap, sbitmap); extern unsigned char sbitmap_any_common_bits (sbitmap, sbitmap); extern void sbitmap_a_and_b (sbitmap, sbitmap, sbitmap); extern unsigned char sbitmap_a_and_b_cg (sbitmap, sbitmap, sbitmap); extern void sbitmap_a_or_b (sbitmap, sbitmap, sbitmap); extern unsigned char sbitmap_a_or_b_cg (sbitmap, sbitmap, sbitmap); extern void sbitmap_a_xor_b (sbitmap, sbitmap, sbitmap); extern unsigned char sbitmap_a_xor_b_cg (sbitmap, sbitmap, sbitmap); extern unsigned char sbitmap_a_subset_b_p (sbitmap, sbitmap); extern int sbitmap_first_set_bit (sbitmap); extern int sbitmap_last_set_bit (sbitmap); extern void sbitmap_intersect_of_predsucc (sbitmap, sbitmap *, int, struct int_list **); extern void sbitmap_union_of_predsucc (sbitmap, sbitmap *, int, struct int_list **); extern void sbitmap_intersection_of_succs (sbitmap, sbitmap *, int); extern void sbitmap_intersection_of_preds (sbitmap, sbitmap *, int); extern void sbitmap_union_of_succs (sbitmap, sbitmap *, int); extern void sbitmap_union_of_preds (sbitmap, sbitmap *, int); extern void debug_sbitmap (sbitmap); extern sbitmap sbitmap_realloc (sbitmap, unsigned int); # 26 "../../GCC/gcc/basic-block.h" 2 # 1 "../../GCC/gcc/varray.h" 1 # 38 "../../GCC/gcc/varray.h" enum varray_data_enum { VARRAY_DATA_C, VARRAY_DATA_UC, VARRAY_DATA_S, VARRAY_DATA_US, VARRAY_DATA_I, VARRAY_DATA_U, VARRAY_DATA_L, VARRAY_DATA_UL, VARRAY_DATA_HINT, VARRAY_DATA_UHINT, VARRAY_DATA_GENERIC, VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_CPTR, VARRAY_DATA_RTX, VARRAY_DATA_RTVEC, VARRAY_DATA_TREE, VARRAY_DATA_BITMAP, VARRAY_DATA_REG, VARRAY_DATA_BB, VARRAY_DATA_TE, VARRAY_DATA_EDGE, VARRAY_DATA_TREE_PTR, NUM_VARRAY_DATA }; typedef union varray_data_tag { char vdt_c[1]; unsigned char vdt_uc[1]; short vdt_s[1]; unsigned short vdt_us[1]; int vdt_i[1]; unsigned int vdt_u[1]; long vdt_l[1]; unsigned long vdt_ul[1]; long vdt_hint[1]; unsigned long vdt_uhint[1]; void * vdt_generic[1]; void * vdt_generic_nogc[1]; char * vdt_cptr[1]; rtx vdt_rtx[1]; rtvec vdt_rtvec[1]; tree vdt_tree[1]; struct bitmap_head_def * vdt_bitmap[1]; struct reg_info_def * vdt_reg[1]; struct basic_block_def * vdt_bb[1]; struct elt_list * vdt_te[1]; struct edge_def * vdt_e[1]; tree * vdt_tp[1]; } varray_data; struct varray_head_tag { size_t num_elements; size_t elements_used; enum varray_data_enum type; const char *name; varray_data data; }; typedef struct varray_head_tag *varray_type; extern varray_type varray_init (size_t, enum varray_data_enum, const char *); # 200 "../../GCC/gcc/varray.h" extern varray_type varray_grow (varray_type, size_t); # 211 "../../GCC/gcc/varray.h" extern void varray_clear (varray_type); extern void dump_varray_statistics (void); # 27 "../../GCC/gcc/basic-block.h" 2 # 1 "../../GCC/gcc/../include/partition.h" 1 # 46 "../../GCC/gcc/../include/partition.h" struct partition_elem { int class_element; struct partition_elem* next; unsigned class_count; }; typedef struct partition_def { int num_elements; struct partition_elem elements[1]; } *partition; extern partition partition_new (int); extern void partition_delete (partition); extern int partition_union (partition, int, int); extern void partition_print (partition, FILE*); # 28 "../../GCC/gcc/basic-block.h" 2 # 1 "../../GCC/gcc/hard-reg-set.h" 1 # 42 "../../GCC/gcc/hard-reg-set.h" typedef unsigned long HARD_REG_ELT_TYPE; # 53 "../../GCC/gcc/hard-reg-set.h" typedef HARD_REG_ELT_TYPE HARD_REG_SET[((53 + (8 * 4) - 1) / (8 * 4))]; # 396 "../../GCC/gcc/hard-reg-set.h" extern char fixed_regs[53]; extern HARD_REG_SET fixed_reg_set; extern char call_used_regs[53]; extern HARD_REG_SET call_used_reg_set; extern HARD_REG_SET losing_caller_save_reg_set; extern char call_fixed_regs[53]; extern HARD_REG_SET call_fixed_reg_set; extern char global_regs[53]; # 446 "../../GCC/gcc/hard-reg-set.h" extern HARD_REG_SET regs_invalidated_by_call; extern int reg_alloc_order[53]; extern int inv_reg_alloc_order[53]; extern HARD_REG_SET reg_class_contents[((int) LIM_REG_CLASSES)]; extern unsigned int reg_class_size[((int) LIM_REG_CLASSES)]; extern enum reg_class reg_class_subunion[((int) LIM_REG_CLASSES)][((int) LIM_REG_CLASSES)]; extern enum reg_class reg_class_superunion[((int) LIM_REG_CLASSES)][((int) LIM_REG_CLASSES)]; extern const char * reg_names[53]; extern const char * reg_class_names[]; # 29 "../../GCC/gcc/basic-block.h" 2 # 1 "../../GCC/gcc/predict.h" 1 # 24 "../../GCC/gcc/predict.h" enum br_predictor { # 1 "../../GCC/gcc/predict.def" 1 # 38 "../../GCC/gcc/predict.def" PRED_COMBINED, PRED_DS_THEORY, PRED_FIRST_MATCH, PRED_NO_PREDICTION, PRED_UNCONDITIONAL, PRED_LOOP_ITERATIONS, PRED_BUILTIN_EXPECT, PRED_CONTINUE, PRED_NORETURN, PRED_LOOP_BRANCH, PRED_LOOP_EXIT, PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER, PRED_POINTER, PRED_TREE_POINTER, PRED_OPCODE_POSITIVE, PRED_OPCODE_NONEQUAL, PRED_FPOPCODE, PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE, PRED_CALL, PRED_EARLY_RETURN, PRED_TREE_EARLY_RETURN, PRED_GOTO, PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN, PRED_MUDFLAP, # 27 "../../GCC/gcc/predict.h" 2 END_PREDICTORS }; enum prediction { NOT_TAKEN, TAKEN }; extern void predict_insn_def (rtx, enum br_predictor, enum prediction); extern int counts_to_freqs (void); # 30 "../../GCC/gcc/basic-block.h" 2 # 1 "../../GCC/gcc/function.h" 1 # 27 "../../GCC/gcc/function.h" struct var_refs_queue { rtx modified; enum machine_mode promoted_mode; int unsignedp; struct var_refs_queue *next; }; struct sequence_stack { rtx first; rtx last; struct sequence_stack *next; }; extern struct sequence_stack *sequence_stack; struct simple_obstack_stack { struct obstack *obstack; struct simple_obstack_stack *next; }; struct emit_status { int x_reg_rtx_no; int x_first_label_num; rtx x_first_insn; rtx x_last_insn; struct sequence_stack *sequence_stack; int x_cur_insn_uid; location_t x_last_location; int regno_pointer_align_length; unsigned char * regno_pointer_align; rtx * x_regno_reg_rtx; }; # 113 "../../GCC/gcc/function.h" struct expr_status { int x_pending_stack_adjust; # 134 "../../GCC/gcc/function.h" int x_inhibit_defer_pop; int x_stack_pointer_delta; rtx x_saveregs_value; rtx x_apply_args_value; rtx x_forced_labels; }; # 161 "../../GCC/gcc/function.h" struct temp_slot; typedef struct temp_slot *temp_slot_p; static __inline__ void VEC_temp_slot_p_must_be_pointer_type (void) { (void)((temp_slot_p)1 == (void *)1); } typedef struct VEC_temp_slot_p_base { unsigned num; unsigned alloc; temp_slot_p vec[1]; } VEC_temp_slot_p_base; typedef struct VEC_temp_slot_p_none { VEC_temp_slot_p_base base; } VEC_temp_slot_p_none; static __inline__ unsigned VEC_temp_slot_p_base_length (const VEC_temp_slot_p_base *vec_) { return vec_ ? vec_->num : 0; } static __inline__ temp_slot_p VEC_temp_slot_p_base_last (const VEC_temp_slot_p_base *vec_ ) { (void)(vec_ && vec_->num); return vec_->vec[vec_->num - 1]; } static __inline__ temp_slot_p VEC_temp_slot_p_base_index (const VEC_temp_slot_p_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->num); return vec_->vec[ix_]; } static __inline__ int VEC_temp_slot_p_base_iterate (const VEC_temp_slot_p_base *vec_, unsigned ix_, temp_slot_p *ptr) { if (vec_ && ix_ < vec_->num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_temp_slot_p_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_temp_slot_p_base, vec) + alloc_ * sizeof(temp_slot_p); } static __inline__ void VEC_temp_slot_p_base_embedded_init (VEC_temp_slot_p_base *vec_, int alloc_) { vec_->num = 0; vec_->alloc = alloc_; } static __inline__ int VEC_temp_slot_p_base_space (VEC_temp_slot_p_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->alloc - vec_->num >= (unsigned)alloc_ : !alloc_; } static __inline__ temp_slot_p *VEC_temp_slot_p_base_quick_push (VEC_temp_slot_p_base *vec_, temp_slot_p obj_ ) { temp_slot_p *slot_; (void)(vec_->num < vec_->alloc); slot_ = &vec_->vec[vec_->num++]; *slot_ = obj_; return slot_; } static __inline__ temp_slot_p VEC_temp_slot_p_base_pop (VEC_temp_slot_p_base *vec_ ) { temp_slot_p obj_; (void)(vec_->num); obj_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_temp_slot_p_base_truncate (VEC_temp_slot_p_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->num >= size_ : !size_); if (vec_) vec_->num = size_; } static __inline__ temp_slot_p VEC_temp_slot_p_base_replace (VEC_temp_slot_p_base *vec_, unsigned ix_, temp_slot_p obj_ ) { temp_slot_p old_obj_; (void)(ix_ < vec_->num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ temp_slot_p *VEC_temp_slot_p_base_quick_insert (VEC_temp_slot_p_base *vec_, unsigned ix_, temp_slot_p obj_ ) { temp_slot_p *slot_; (void)(vec_->num < vec_->alloc); (void)(ix_ <= vec_->num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (temp_slot_p)); *slot_ = obj_; return slot_; } static __inline__ temp_slot_p VEC_temp_slot_p_base_ordered_remove (VEC_temp_slot_p_base *vec_, unsigned ix_ ) { temp_slot_p *slot_; temp_slot_p obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->num - ix_) * sizeof (temp_slot_p)); return obj_; } static __inline__ temp_slot_p VEC_temp_slot_p_base_unordered_remove (VEC_temp_slot_p_base *vec_, unsigned ix_ ) { temp_slot_p *slot_; temp_slot_p obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_temp_slot_p_base_block_remove (VEC_temp_slot_p_base *vec_, unsigned ix_, unsigned len_ ) { temp_slot_p *slot_; (void)(ix_ + len_ <= vec_->num); slot_ = &vec_->vec[ix_]; vec_->num -= len_; memmove (slot_, slot_ + len_, (vec_->num - ix_) * sizeof (temp_slot_p)); } static __inline__ temp_slot_p *VEC_temp_slot_p_base_address (VEC_temp_slot_p_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_temp_slot_p_base_lower_bound (VEC_temp_slot_p_base *vec_, const temp_slot_p obj_, unsigned char (*lessthan_)(const temp_slot_p, const temp_slot_p) ) { unsigned int len_ = VEC_temp_slot_p_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { temp_slot_p middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_temp_slot_p_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; typedef struct VEC_temp_slot_p_gc { VEC_temp_slot_p_base base; } VEC_temp_slot_p_gc; static __inline__ VEC_temp_slot_p_gc *VEC_temp_slot_p_gc_alloc (int alloc_ ) { return (VEC_temp_slot_p_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_temp_slot_p_gc_free (VEC_temp_slot_p_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_temp_slot_p_gc *VEC_temp_slot_p_gc_copy (VEC_temp_slot_p_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_temp_slot_p_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_temp_slot_p_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (temp_slot_p) * len_); } return new_vec_; } static __inline__ int VEC_temp_slot_p_gc_reserve (VEC_temp_slot_p_gc **vec_, int alloc_ ) { int extend = !VEC_temp_slot_p_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_temp_slot_p_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_temp_slot_p_gc_reserve_exact (VEC_temp_slot_p_gc **vec_, int alloc_ ) { int extend = !VEC_temp_slot_p_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_temp_slot_p_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_temp_slot_p_gc_safe_grow (VEC_temp_slot_p_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_temp_slot_p_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_temp_slot_p_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ temp_slot_p *VEC_temp_slot_p_gc_safe_push (VEC_temp_slot_p_gc **vec_, temp_slot_p obj_ ) { VEC_temp_slot_p_gc_reserve (vec_, 1 ); return VEC_temp_slot_p_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ temp_slot_p *VEC_temp_slot_p_gc_safe_insert (VEC_temp_slot_p_gc **vec_, unsigned ix_, temp_slot_p obj_ ) { VEC_temp_slot_p_gc_reserve (vec_, 1 ); return VEC_temp_slot_p_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; enum function_frequency { FUNCTION_FREQUENCY_UNLIKELY_EXECUTED, FUNCTION_FREQUENCY_NORMAL, FUNCTION_FREQUENCY_HOT }; struct function { struct eh_status *eh; struct expr_status *expr; struct emit_status *emit; struct varasm_status *varasm; struct control_flow_graph *cfg; tree decl; struct function *outer; int pops_args; int args_size; int pretend_args_size; int outgoing_args_size; rtx arg_offset_rtx; CUMULATIVE_ARGS args_info; rtx return_rtx; rtx internal_arg_pointer; struct initial_value_struct *hard_reg_initial_vals; rtx x_nonlocal_goto_handler_labels; rtx x_return_label; rtx x_naked_return_label; rtx x_stack_slot_list; rtx x_stack_check_probe_note; rtx x_arg_pointer_save_area; long x_frame_offset; tree static_chain_decl; tree nonlocal_goto_save_area; rtx x_parm_birth_insn; VEC_temp_slot_p_gc *x_used_temp_slots; struct temp_slot *x_avail_temp_slots; struct var_refs_queue *fixup_var_refs_queue; int x_temp_slot_level; int inl_max_label_num; int funcdef_no; int max_loop_depth; struct machine_function * machine; unsigned int stack_alignment_needed; unsigned int preferred_stack_boundary; struct language_function * language; htab_t used_types_hash; rtx epilogue_delay_list; int max_jumptable_ents; int last_label_uid; location_t function_end_locus; VEC_tree_gc *ib_boundaries_block; tree unexpanded_var_list; const char *hot_section_label; const char *cold_section_label; const char *hot_section_end_label; const char *cold_section_end_label; const char *unlikely_text_section_name; tree stack_protect_guard; unsigned int returns_struct : 1; unsigned int returns_pcc_struct : 1; unsigned int returns_pointer : 1; unsigned int calls_setjmp : 1; unsigned int calls_alloca : 1; unsigned int accesses_prior_frames : 1; unsigned int calls_eh_return : 1; unsigned int has_nonlocal_label : 1; unsigned int has_nonlocal_goto : 1; unsigned int is_thunk : 1; unsigned int all_throwers_are_sibcalls : 1; unsigned int profile : 1; unsigned int limit_stack : 1; unsigned int stdarg : 1; # 431 "../../GCC/gcc/function.h" unsigned int x_dont_save_pending_sizes_p : 1; unsigned int uses_const_pool : 1; unsigned int uses_pic_offset_table : 1; unsigned int uses_eh_lsda : 1; unsigned int arg_pointer_save_area_init : 1; unsigned int after_inlining : 1; unsigned int recursive_call_emit : 1; unsigned int tail_call_emit : 1; __extension__ enum function_frequency function_frequency : 2; unsigned int va_list_gpr_size : 8; unsigned int va_list_fpr_size : 8; }; extern struct function *cfun; extern struct function *outer_function_chain; extern int virtuals_instantiated; extern int trampolines_created; # 525 "../../GCC/gcc/function.h" struct function *find_function_data (tree); extern void reorder_blocks (void); extern void number_blocks (tree); extern void clear_block_marks (tree); extern tree blocks_nreverse (tree); extern void reset_block_changes (void); extern void record_block_change (tree); extern void finalize_block_changes (void); extern void check_block_change (rtx, tree *); extern void free_block_changes (void); extern long get_frame_size (void); extern unsigned char frame_offset_overflow (long, tree); extern struct machine_function * (*init_machine_status) (void); extern void free_after_parsing (struct function *); extern void free_after_compilation (struct function *); extern void init_varasm_status (struct function *); extern void diddle_return_value (void (*)(rtx, void*), void*); extern void clobber_return_register (void); extern rtx get_arg_pointer_save_area (struct function *); extern const char *current_function_name (void); extern void do_warn_unused_parameter (tree); extern unsigned char pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode, tree, unsigned char); extern unsigned char reference_callee_copied (CUMULATIVE_ARGS *, enum machine_mode, tree, unsigned char); extern void used_types_insert (tree); # 32 "../../GCC/gcc/basic-block.h" 2 typedef bitmap_head regset_head; typedef bitmap regset; # 83 "../../GCC/gcc/basic-block.h" extern void reg_set_to_hard_reg_set (HARD_REG_SET *, bitmap); typedef bitmap_iterator reg_set_iterator; # 114 "../../GCC/gcc/basic-block.h" typedef long long gcov_type; struct edge_def { struct basic_block_def *src; struct basic_block_def *dest; union edge_def_insns { rtx r; tree t; } insns; void * aux; source_locus goto_locus; int flags; int probability; gcov_type count; unsigned int dest_idx; }; typedef struct edge_def *edge; static __inline__ void VEC_edge_must_be_pointer_type (void) { (void)((edge)1 == (void *)1); } typedef struct VEC_edge_base { unsigned num; unsigned alloc; edge vec[1]; } VEC_edge_base; typedef struct VEC_edge_none { VEC_edge_base base; } VEC_edge_none; static __inline__ unsigned VEC_edge_base_length (const VEC_edge_base *vec_) { return vec_ ? vec_->num : 0; } static __inline__ edge VEC_edge_base_last (const VEC_edge_base *vec_ ) { (void)(vec_ && vec_->num); return vec_->vec[vec_->num - 1]; } static __inline__ edge VEC_edge_base_index (const VEC_edge_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->num); return vec_->vec[ix_]; } static __inline__ int VEC_edge_base_iterate (const VEC_edge_base *vec_, unsigned ix_, edge *ptr) { if (vec_ && ix_ < vec_->num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_edge_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_edge_base, vec) + alloc_ * sizeof(edge); } static __inline__ void VEC_edge_base_embedded_init (VEC_edge_base *vec_, int alloc_) { vec_->num = 0; vec_->alloc = alloc_; } static __inline__ int VEC_edge_base_space (VEC_edge_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->alloc - vec_->num >= (unsigned)alloc_ : !alloc_; } static __inline__ edge *VEC_edge_base_quick_push (VEC_edge_base *vec_, edge obj_ ) { edge *slot_; (void)(vec_->num < vec_->alloc); slot_ = &vec_->vec[vec_->num++]; *slot_ = obj_; return slot_; } static __inline__ edge VEC_edge_base_pop (VEC_edge_base *vec_ ) { edge obj_; (void)(vec_->num); obj_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_edge_base_truncate (VEC_edge_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->num >= size_ : !size_); if (vec_) vec_->num = size_; } static __inline__ edge VEC_edge_base_replace (VEC_edge_base *vec_, unsigned ix_, edge obj_ ) { edge old_obj_; (void)(ix_ < vec_->num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ edge *VEC_edge_base_quick_insert (VEC_edge_base *vec_, unsigned ix_, edge obj_ ) { edge *slot_; (void)(vec_->num < vec_->alloc); (void)(ix_ <= vec_->num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (edge)); *slot_ = obj_; return slot_; } static __inline__ edge VEC_edge_base_ordered_remove (VEC_edge_base *vec_, unsigned ix_ ) { edge *slot_; edge obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->num - ix_) * sizeof (edge)); return obj_; } static __inline__ edge VEC_edge_base_unordered_remove (VEC_edge_base *vec_, unsigned ix_ ) { edge *slot_; edge obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_edge_base_block_remove (VEC_edge_base *vec_, unsigned ix_, unsigned len_ ) { edge *slot_; (void)(ix_ + len_ <= vec_->num); slot_ = &vec_->vec[ix_]; vec_->num -= len_; memmove (slot_, slot_ + len_, (vec_->num - ix_) * sizeof (edge)); } static __inline__ edge *VEC_edge_base_address (VEC_edge_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_edge_base_lower_bound (VEC_edge_base *vec_, const edge obj_, unsigned char (*lessthan_)(const edge, const edge) ) { unsigned int len_ = VEC_edge_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { edge middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_edge_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; typedef struct VEC_edge_gc { VEC_edge_base base; } VEC_edge_gc; static __inline__ VEC_edge_gc *VEC_edge_gc_alloc (int alloc_ ) { return (VEC_edge_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_edge_gc_free (VEC_edge_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_edge_gc *VEC_edge_gc_copy (VEC_edge_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_edge_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_edge_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (edge) * len_); } return new_vec_; } static __inline__ int VEC_edge_gc_reserve (VEC_edge_gc **vec_, int alloc_ ) { int extend = !VEC_edge_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_edge_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_edge_gc_reserve_exact (VEC_edge_gc **vec_, int alloc_ ) { int extend = !VEC_edge_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_edge_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_edge_gc_safe_grow (VEC_edge_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_edge_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_edge_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ edge *VEC_edge_gc_safe_push (VEC_edge_gc **vec_, edge obj_ ) { VEC_edge_gc_reserve (vec_, 1 ); return VEC_edge_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ edge *VEC_edge_gc_safe_insert (VEC_edge_gc **vec_, unsigned ix_, edge obj_ ) { VEC_edge_gc_reserve (vec_, 1 ); return VEC_edge_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; # 177 "../../GCC/gcc/basic-block.h" extern const struct gcov_ctr_summary *profile_info; struct loop; struct loops; struct edge_prediction; struct rtl_bb_info; # 213 "../../GCC/gcc/basic-block.h" struct basic_block_def { tree stmt_list; VEC_edge_gc *preds; VEC_edge_gc *succs; void * aux; struct loop * loop_father; struct et_node * dom[2]; struct basic_block_def *prev_bb; struct basic_block_def *next_bb; union basic_block_il_dependent { struct rtl_bb_info * rtl; } il; tree phi_nodes; struct edge_prediction *predictions; gcov_type count; int index; int loop_depth; int frequency; int flags; }; struct rtl_bb_info { rtx head_; rtx end_; bitmap global_live_at_start; bitmap global_live_at_end; rtx header; rtx footer; int visited; }; typedef struct basic_block_def *basic_block; static __inline__ void VEC_basic_block_must_be_pointer_type (void) { (void)((basic_block)1 == (void *)1); } typedef struct VEC_basic_block_base { unsigned num; unsigned alloc; basic_block vec[1]; } VEC_basic_block_base; typedef struct VEC_basic_block_none { VEC_basic_block_base base; } VEC_basic_block_none; static __inline__ unsigned VEC_basic_block_base_length (const VEC_basic_block_base *vec_) { return vec_ ? vec_->num : 0; } static __inline__ basic_block VEC_basic_block_base_last (const VEC_basic_block_base *vec_ ) { (void)(vec_ && vec_->num); return vec_->vec[vec_->num - 1]; } static __inline__ basic_block VEC_basic_block_base_index (const VEC_basic_block_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->num); return vec_->vec[ix_]; } static __inline__ int VEC_basic_block_base_iterate (const VEC_basic_block_base *vec_, unsigned ix_, basic_block *ptr) { if (vec_ && ix_ < vec_->num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_basic_block_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_basic_block_base, vec) + alloc_ * sizeof(basic_block); } static __inline__ void VEC_basic_block_base_embedded_init (VEC_basic_block_base *vec_, int alloc_) { vec_->num = 0; vec_->alloc = alloc_; } static __inline__ int VEC_basic_block_base_space (VEC_basic_block_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->alloc - vec_->num >= (unsigned)alloc_ : !alloc_; } static __inline__ basic_block *VEC_basic_block_base_quick_push (VEC_basic_block_base *vec_, basic_block obj_ ) { basic_block *slot_; (void)(vec_->num < vec_->alloc); slot_ = &vec_->vec[vec_->num++]; *slot_ = obj_; return slot_; } static __inline__ basic_block VEC_basic_block_base_pop (VEC_basic_block_base *vec_ ) { basic_block obj_; (void)(vec_->num); obj_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_basic_block_base_truncate (VEC_basic_block_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->num >= size_ : !size_); if (vec_) vec_->num = size_; } static __inline__ basic_block VEC_basic_block_base_replace (VEC_basic_block_base *vec_, unsigned ix_, basic_block obj_ ) { basic_block old_obj_; (void)(ix_ < vec_->num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ basic_block *VEC_basic_block_base_quick_insert (VEC_basic_block_base *vec_, unsigned ix_, basic_block obj_ ) { basic_block *slot_; (void)(vec_->num < vec_->alloc); (void)(ix_ <= vec_->num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (basic_block)); *slot_ = obj_; return slot_; } static __inline__ basic_block VEC_basic_block_base_ordered_remove (VEC_basic_block_base *vec_, unsigned ix_ ) { basic_block *slot_; basic_block obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->num - ix_) * sizeof (basic_block)); return obj_; } static __inline__ basic_block VEC_basic_block_base_unordered_remove (VEC_basic_block_base *vec_, unsigned ix_ ) { basic_block *slot_; basic_block obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_basic_block_base_block_remove (VEC_basic_block_base *vec_, unsigned ix_, unsigned len_ ) { basic_block *slot_; (void)(ix_ + len_ <= vec_->num); slot_ = &vec_->vec[ix_]; vec_->num -= len_; memmove (slot_, slot_ + len_, (vec_->num - ix_) * sizeof (basic_block)); } static __inline__ basic_block *VEC_basic_block_base_address (VEC_basic_block_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_basic_block_base_lower_bound (VEC_basic_block_base *vec_, const basic_block obj_, unsigned char (*lessthan_)(const basic_block, const basic_block) ) { unsigned int len_ = VEC_basic_block_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { basic_block middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_basic_block_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; typedef struct VEC_basic_block_gc { VEC_basic_block_base base; } VEC_basic_block_gc; static __inline__ VEC_basic_block_gc *VEC_basic_block_gc_alloc (int alloc_ ) { return (VEC_basic_block_gc *) vec_gc_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_basic_block_gc_free (VEC_basic_block_gc **vec_) { if (*vec_) ggc_free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_basic_block_gc *VEC_basic_block_gc_copy (VEC_basic_block_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_basic_block_gc *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_basic_block_gc *)(vec_gc_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (basic_block) * len_); } return new_vec_; } static __inline__ int VEC_basic_block_gc_reserve (VEC_basic_block_gc **vec_, int alloc_ ) { int extend = !VEC_basic_block_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_basic_block_gc *) vec_gc_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_basic_block_gc_reserve_exact (VEC_basic_block_gc **vec_, int alloc_ ) { int extend = !VEC_basic_block_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_basic_block_gc *) vec_gc_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_basic_block_gc_safe_grow (VEC_basic_block_gc **vec_, int size_ ) { (void)(size_ >= 0 && VEC_basic_block_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_basic_block_gc_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ basic_block *VEC_basic_block_gc_safe_push (VEC_basic_block_gc **vec_, basic_block obj_ ) { VEC_basic_block_gc_reserve (vec_, 1 ); return VEC_basic_block_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ basic_block *VEC_basic_block_gc_safe_insert (VEC_basic_block_gc **vec_, unsigned ix_, basic_block obj_ ) { VEC_basic_block_gc_reserve (vec_, 1 ); return VEC_basic_block_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; typedef struct VEC_basic_block_heap { VEC_basic_block_base base; } VEC_basic_block_heap; static __inline__ VEC_basic_block_heap *VEC_basic_block_heap_alloc (int alloc_ ) { return (VEC_basic_block_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_basic_block_heap_free (VEC_basic_block_heap **vec_) { if (*vec_) free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_basic_block_heap *VEC_basic_block_heap_copy (VEC_basic_block_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_basic_block_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_basic_block_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (basic_block) * len_); } return new_vec_; } static __inline__ int VEC_basic_block_heap_reserve (VEC_basic_block_heap **vec_, int alloc_ ) { int extend = !VEC_basic_block_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_basic_block_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_basic_block_heap_reserve_exact (VEC_basic_block_heap **vec_, int alloc_ ) { int extend = !VEC_basic_block_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_basic_block_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_basic_block_heap_safe_grow (VEC_basic_block_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_basic_block_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_basic_block_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ basic_block *VEC_basic_block_heap_safe_push (VEC_basic_block_heap **vec_, basic_block obj_ ) { VEC_basic_block_heap_reserve (vec_, 1 ); return VEC_basic_block_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ basic_block *VEC_basic_block_heap_safe_insert (VEC_basic_block_heap **vec_, unsigned ix_, basic_block obj_ ) { VEC_basic_block_heap_reserve (vec_, 1 ); return VEC_basic_block_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; # 298 "../../GCC/gcc/basic-block.h" enum bb_flags { BB_DIRTY = 1, BB_NEW = 2, BB_REACHABLE = 4, BB_IRREDUCIBLE_LOOP = 8, BB_SUPERBLOCK = 16, BB_DISABLE_SCHEDULE = 32, BB_HOT_PARTITION = 64, BB_COLD_PARTITION = 128, BB_DUPLICATED = 256, BB_RTL = 1024, BB_FORWARDER_BLOCK = 2048, BB_NONTHREADABLE_BLOCK = 4096 }; # 361 "../../GCC/gcc/basic-block.h" struct control_flow_graph { basic_block x_entry_block_ptr; basic_block x_exit_block_ptr; VEC_basic_block_gc *x_basic_block_info; int x_n_basic_blocks; int x_n_edges; int x_last_basic_block; VEC_basic_block_gc *x_label_to_block_map; enum profile_status { PROFILE_ABSENT, PROFILE_GUESSED, PROFILE_READ } x_profile_status; }; # 450 "../../GCC/gcc/basic-block.h" extern bitmap_obstack reg_obstack; # 481 "../../GCC/gcc/basic-block.h" extern void compute_bb_for_insn (void); extern unsigned int free_bb_for_insn (void); extern void update_bb_for_insn (basic_block); extern void free_basic_block_vars (void); extern void insert_insn_on_edge (rtx, edge); extern void commit_edge_insertions (void); extern void commit_edge_insertions_watch_calls (void); extern void remove_fake_edges (void); extern void remove_fake_exit_edges (void); extern void add_noreturn_fake_exit_edges (void); extern void connect_infinite_loops_to_exit (void); extern edge unchecked_make_edge (basic_block, basic_block, int); extern edge cached_make_edge (sbitmap, basic_block, basic_block, int); extern edge make_edge (basic_block, basic_block, int); extern edge make_single_succ_edge (basic_block, basic_block, int); extern void remove_edge (edge); extern void redirect_edge_succ (edge, basic_block); extern edge redirect_edge_succ_nodup (edge, basic_block); extern void redirect_edge_pred (edge, basic_block); extern basic_block create_basic_block_structure (rtx, rtx, rtx, basic_block); extern void clear_bb_flags (void); extern int post_order_compute (int *, unsigned char); extern int pre_and_rev_post_order_compute (int *, int *, unsigned char); extern int dfs_enumerate_from (basic_block, int, unsigned char (*)(basic_block, void *), basic_block *, int, void *); extern void compute_dominance_frontiers (bitmap *); extern void dump_bb_info (basic_block, unsigned char, unsigned char, int, const char *, FILE *); extern void dump_edge_info (FILE *, edge, int); extern void brief_dump_cfg (FILE *); extern void clear_edges (void); extern rtx first_insn_after_basic_block_note (basic_block); extern void scale_bbs_frequencies_int (basic_block *, int, int, int); extern void scale_bbs_frequencies_gcov_type (basic_block *, int, gcov_type, gcov_type); typedef struct ce_if_block { basic_block test_bb; basic_block then_bb; basic_block else_bb; basic_block join_bb; basic_block last_test_bb; int num_multiple_test_blocks; int num_and_and_blocks; int num_or_or_blocks; int num_multiple_test_insns; int and_and_p; int num_then_insns; int num_else_insns; int pass; } ce_if_block_t; struct edge_list { int num_blocks; int num_edges; edge *index_to_edge; }; # 602 "../../GCC/gcc/basic-block.h" static __inline__ unsigned char single_succ_p (basic_block bb) { return (VEC_edge_base_length((((bb->succs)) ? &((bb->succs))->base : 0))) == 1; } static __inline__ unsigned char single_pred_p (basic_block bb) { return (VEC_edge_base_length((((bb->preds)) ? &((bb->preds))->base : 0))) == 1; } static __inline__ edge single_succ_edge (basic_block bb) { ((void)(!(single_succ_p (bb)) ? fancy_abort ("../../GCC/gcc/basic-block.h", 622, __FUNCTION__), 0 : 0)); return (VEC_edge_base_index((((bb)->succs) ? &((bb)->succs)->base : 0),(0) )); } static __inline__ edge single_pred_edge (basic_block bb) { ((void)(!(single_pred_p (bb)) ? fancy_abort ("../../GCC/gcc/basic-block.h", 632, __FUNCTION__), 0 : 0)); return (VEC_edge_base_index((((bb)->preds) ? &((bb)->preds)->base : 0),(0) )); } static __inline__ basic_block single_succ (basic_block bb) { return single_succ_edge (bb)->dest; } static __inline__ basic_block single_pred (basic_block bb) { return single_pred_edge (bb)->src; } typedef struct { unsigned index; VEC_edge_gc **container; } edge_iterator; static __inline__ VEC_edge_gc * ei_container (edge_iterator i) { ((void)(!(i.container) ? fancy_abort ("../../GCC/gcc/basic-block.h", 664, __FUNCTION__), 0 : 0)); return *i.container; } static __inline__ edge_iterator ei_start_1 (VEC_edge_gc **ev) { edge_iterator i; i.index = 0; i.container = ev; return i; } static __inline__ edge_iterator ei_last_1 (VEC_edge_gc **ev) { edge_iterator i; i.index = (VEC_edge_base_length((((*ev)) ? &((*ev))->base : 0))) - 1; i.container = ev; return i; } static __inline__ unsigned char ei_end_p (edge_iterator i) { return (i.index == (VEC_edge_base_length((((ei_container (i))) ? &((ei_container (i)))->base : 0)))); } static __inline__ unsigned char ei_one_before_end_p (edge_iterator i) { return (i.index + 1 == (VEC_edge_base_length((((ei_container (i))) ? &((ei_container (i)))->base : 0)))); } static __inline__ void ei_next (edge_iterator *i) { ((void)(!(i->index < (VEC_edge_base_length((((ei_container (*i))) ? &((ei_container (*i)))->base : 0)))) ? fancy_abort ("../../GCC/gcc/basic-block.h", 715, __FUNCTION__), 0 : 0)); i->index++; } static __inline__ void ei_prev (edge_iterator *i) { ((void)(!(i->index > 0) ? fancy_abort ("../../GCC/gcc/basic-block.h", 723, __FUNCTION__), 0 : 0)); i->index--; } static __inline__ edge ei_edge (edge_iterator i) { return (VEC_edge_base_index((((ei_container (i))) ? &((ei_container (i)))->base : 0),(i.index) )); } static __inline__ edge ei_safe_edge (edge_iterator i) { return !ei_end_p (i) ? ei_edge (i) : ((void *)0); } static __inline__ unsigned char ei_cond (edge_iterator ei, edge *p) { if (!ei_end_p (ei)) { *p = ei_edge (ei); return 1; } else { *p = ((void *)0); return 0; } } # 782 "../../GCC/gcc/basic-block.h" struct edge_list * create_edge_list (void); void free_edge_list (struct edge_list *); void print_edge_list (FILE *, struct edge_list *); void verify_edge_list (FILE *, struct edge_list *); int find_edge_index (struct edge_list *, basic_block, basic_block); edge find_edge (basic_block, basic_block); enum update_life_extent { UPDATE_LIFE_LOCAL = 0, UPDATE_LIFE_GLOBAL = 1, UPDATE_LIFE_GLOBAL_RM_NOTES = 2 }; # 848 "../../GCC/gcc/basic-block.h" extern void life_analysis (int); extern int update_life_info (sbitmap, enum update_life_extent, int); extern int update_life_info_in_dirty_blocks (enum update_life_extent, int); extern int count_or_remove_death_notes (sbitmap, int); extern int propagate_block (basic_block, regset, regset, regset, int); struct propagate_block_info; extern rtx propagate_one_insn (struct propagate_block_info *, rtx); extern struct propagate_block_info *init_propagate_block_info (basic_block, regset, regset, regset, int); extern void free_propagate_block_info (struct propagate_block_info *); extern struct edge_list *pre_edge_lcm (int, sbitmap *, sbitmap *, sbitmap *, sbitmap *, sbitmap **, sbitmap **); extern struct edge_list *pre_edge_rev_lcm (int, sbitmap *, sbitmap *, sbitmap *, sbitmap *, sbitmap **, sbitmap **); extern void compute_available (sbitmap *, sbitmap *, sbitmap *, sbitmap *); extern void expected_value_to_br_prob (void); extern unsigned char maybe_hot_bb_p (basic_block); extern unsigned char probably_cold_bb_p (basic_block); extern unsigned char probably_never_executed_bb_p (basic_block); extern unsigned char tree_predicted_by_p (basic_block, enum br_predictor); extern unsigned char rtl_predicted_by_p (basic_block, enum br_predictor); extern void tree_predict_edge (edge, enum br_predictor, int); extern void rtl_predict_edge (edge, enum br_predictor, int); extern void predict_edge_def (edge, enum br_predictor, enum prediction); extern void guess_outgoing_edge_probabilities (basic_block); extern void remove_predictions_associated_with_edge (edge); extern unsigned char edge_probability_reliable_p (edge); extern unsigned char br_prob_note_reliable_p (rtx); extern void init_flow (void); extern void debug_bb (basic_block); extern basic_block debug_bb_n (int); extern void dump_regset (regset, FILE *); extern void debug_regset (regset); extern void allocate_reg_life_data (void); extern void expunge_block (basic_block); extern void link_block (basic_block, basic_block); extern void unlink_block (basic_block); extern void compact_blocks (void); extern basic_block alloc_block (void); extern void find_unreachable_blocks (void); extern int delete_noop_moves (void); extern basic_block force_nonfallthru (edge); extern rtx block_label (basic_block); extern unsigned char forwarder_block_p (basic_block); extern unsigned char purge_all_dead_edges (void); extern unsigned char purge_dead_edges (basic_block); extern void find_many_sub_basic_blocks (sbitmap); extern void rtl_make_eh_edge (sbitmap, basic_block, rtx); extern unsigned char can_fallthru (basic_block, basic_block); extern unsigned char could_fall_through (basic_block, basic_block); extern void flow_nodes_print (const char *, const sbitmap, FILE *); extern void flow_edge_list_print (const char *, const edge *, int, FILE *); extern void alloc_aux_for_block (basic_block, int); extern void alloc_aux_for_blocks (int); extern void clear_aux_for_blocks (void); extern void free_aux_for_blocks (void); extern void alloc_aux_for_edge (edge, int); extern void alloc_aux_for_edges (int); extern void clear_aux_for_edges (void); extern void free_aux_for_edges (void); extern void find_basic_blocks (rtx); extern unsigned char cleanup_cfg (int); extern unsigned char delete_unreachable_blocks (void); extern unsigned char merge_seq_blocks (void); typedef struct conflict_graph_def *conflict_graph; typedef int (*conflict_graph_enum_fn) (int, int, void *); extern conflict_graph conflict_graph_new (int); extern void conflict_graph_delete (conflict_graph); extern int conflict_graph_add (conflict_graph, int, int); extern int conflict_graph_conflict_p (conflict_graph, int, int); extern void conflict_graph_enum (conflict_graph, int, conflict_graph_enum_fn, void *); extern void conflict_graph_merge_regs (conflict_graph, int, int); extern void conflict_graph_print (conflict_graph, FILE*); extern unsigned char mark_dfs_back_edges (void); extern void set_edge_can_fallthru_flag (void); extern void update_br_prob_note (basic_block); extern void fixup_abnormal_edges (void); extern unsigned char inside_basic_block_p (rtx); extern unsigned char control_flow_insn_p (rtx); extern rtx get_last_bb_insn (basic_block); extern void reorder_basic_blocks (unsigned int); enum cdi_direction { CDI_DOMINATORS, CDI_POST_DOMINATORS }; enum dom_state { DOM_NONE, DOM_NO_FAST_QUERY, DOM_OK }; extern enum dom_state dom_computed[2]; extern unsigned char dom_info_available_p (enum cdi_direction); extern void calculate_dominance_info (enum cdi_direction); extern void free_dominance_info (enum cdi_direction); extern basic_block nearest_common_dominator (enum cdi_direction, basic_block, basic_block); extern basic_block nearest_common_dominator_for_set (enum cdi_direction, bitmap); extern void set_immediate_dominator (enum cdi_direction, basic_block, basic_block); extern basic_block get_immediate_dominator (enum cdi_direction, basic_block); extern unsigned char dominated_by_p (enum cdi_direction, basic_block, basic_block); extern int get_dominated_by (enum cdi_direction, basic_block, basic_block **); extern unsigned get_dominated_by_region (enum cdi_direction, basic_block *, unsigned, basic_block *); extern void add_to_dominance_info (enum cdi_direction, basic_block); extern void delete_from_dominance_info (enum cdi_direction, basic_block); basic_block recount_dominator (enum cdi_direction, basic_block); extern void redirect_immediate_dominators (enum cdi_direction, basic_block, basic_block); extern void iterate_fix_dominators (enum cdi_direction, basic_block *, int); extern void verify_dominators (enum cdi_direction); extern basic_block first_dom_son (enum cdi_direction, basic_block); extern basic_block next_dom_son (enum cdi_direction, basic_block); unsigned bb_dom_dfs_in (enum cdi_direction, basic_block); unsigned bb_dom_dfs_out (enum cdi_direction, basic_block); extern edge try_redirect_by_replacing_jump (edge, basic_block, unsigned char); extern void break_superblocks (void); extern void check_bb_profile (basic_block, FILE *); extern void update_bb_profile_for_threading (basic_block, int, gcov_type, edge); extern void init_rtl_bb_info (basic_block); extern void initialize_original_copy_tables (void); extern void free_original_copy_tables (void); extern void set_bb_original (basic_block, basic_block); extern basic_block get_bb_original (basic_block); extern void set_bb_copy (basic_block, basic_block); extern basic_block get_bb_copy (basic_block); extern rtx insert_insn_end_bb_new (rtx, basic_block); # 1 "../../GCC/gcc/cfghooks.h" 1 # 24 "../../GCC/gcc/cfghooks.h" struct cfg_hooks { const char *name; int (*verify_flow_info) (void); void (*dump_bb) (basic_block, FILE *, int); basic_block (*create_basic_block) (void *head, void *end, basic_block after); edge (*redirect_edge_and_branch) (edge e, basic_block b); basic_block (*redirect_edge_and_branch_force) (edge, basic_block); void (*delete_basic_block) (basic_block); basic_block (*split_block) (basic_block b, void * i); unsigned char (*move_block_after) (basic_block b, basic_block a); unsigned char (*can_merge_blocks_p) (basic_block a, basic_block b); void (*merge_blocks) (basic_block a, basic_block b); void (*predict_edge) (edge e, enum br_predictor predictor, int probability); unsigned char (*predicted_by_p) (basic_block bb, enum br_predictor predictor); unsigned char (*can_duplicate_block_p) (basic_block a); basic_block (*duplicate_block) (basic_block a); basic_block (*split_edge) (edge); void (*make_forwarder_block) (edge); void (*tidy_fallthru_edge) (edge); unsigned char (*block_ends_with_call_p) (basic_block); unsigned char (*block_ends_with_condjump_p) (basic_block); # 101 "../../GCC/gcc/cfghooks.h" int (*flow_call_edges_add) (sbitmap); void (*execute_on_growing_pred) (edge); void (*execute_on_shrinking_pred) (edge); unsigned char (*cfg_hook_duplicate_loop_to_header_edge) (struct loop *loop, edge e, struct loops *loops, unsigned int ndupl, sbitmap wont_exit, edge orig, edge *to_remove, unsigned int *n_to_remove, int flags); void (*lv_add_condition_to_bb) (basic_block, basic_block, basic_block, void *); void (*lv_adjust_loop_header_phi) (basic_block, basic_block, basic_block, edge); void (*extract_cond_bb_edges) (basic_block, edge *, edge *); void (*flush_pending_stmts) (edge); }; extern void verify_flow_info (void); extern void dump_bb (basic_block, FILE *, int); extern edge redirect_edge_and_branch (edge, basic_block); extern basic_block redirect_edge_and_branch_force (edge, basic_block); extern edge split_block (basic_block, void *); extern edge split_block_after_labels (basic_block); extern unsigned char move_block_after (basic_block, basic_block); extern void delete_basic_block (basic_block); extern basic_block split_edge (edge); extern basic_block create_basic_block (void *, void *, basic_block); extern basic_block create_empty_bb (basic_block); extern unsigned char can_merge_blocks_p (basic_block, basic_block); extern void merge_blocks (basic_block, basic_block); extern edge make_forwarder_block (basic_block, unsigned char (*)(edge), void (*) (basic_block)); extern void tidy_fallthru_edge (edge); extern void tidy_fallthru_edges (void); extern void predict_edge (edge e, enum br_predictor predictor, int probability); extern unsigned char predicted_by_p (basic_block bb, enum br_predictor predictor); extern unsigned char can_duplicate_block_p (basic_block); extern basic_block duplicate_block (basic_block, edge, basic_block); extern unsigned char block_ends_with_call_p (basic_block bb); extern unsigned char block_ends_with_condjump_p (basic_block bb); extern int flow_call_edges_add (sbitmap); extern void execute_on_growing_pred (edge); extern void execute_on_shrinking_pred (edge); extern unsigned char cfg_hook_duplicate_loop_to_header_edge (struct loop *loop, edge, struct loops *loops, unsigned int ndupl, sbitmap wont_exit, edge orig, edge *to_remove, unsigned int *n_to_remove, int flags); extern void lv_flush_pending_stmts (edge); extern void extract_cond_bb_edges (basic_block, edge *, edge*); extern void lv_adjust_loop_header_phi (basic_block, basic_block, basic_block, edge); extern void lv_add_condition_to_bb (basic_block, basic_block, basic_block, void *); extern struct cfg_hooks tree_cfg_hooks; extern struct cfg_hooks rtl_cfg_hooks; extern struct cfg_hooks cfg_layout_rtl_cfg_hooks; extern int ir_type (void); extern void rtl_register_cfg_hooks (void); extern void cfg_layout_rtl_register_cfg_hooks (void); extern void tree_register_cfg_hooks (void); # 1012 "../../GCC/gcc/basic-block.h" 2 # 1031 "../../GCC/gcc/basic-block.h" struct struct_equiv_checkpoint { int ninsns; int local_count; int input_count; rtx x_start, y_start; unsigned char input_valid; # 1057 "../../GCC/gcc/basic-block.h" int version; }; struct equiv_info { basic_block x_block, y_block; int mode; int input_cost; # 1090 "../../GCC/gcc/basic-block.h" rtx x_input, y_input; rtx input_reg; regset common_live; regset x_local_live, y_local_live; bitmap equiv_used; struct struct_equiv_checkpoint cur; struct struct_equiv_checkpoint best_match; unsigned char need_rerun; unsigned char check_input_conflict; unsigned char had_input_conflict; unsigned char live_update; rtx x_local[16], y_local[16]; unsigned char local_rvalue[16]; int dying_inputs; rtx x_end, y_end; rtx x_label, y_label; }; extern unsigned char insns_match_p (rtx, rtx, struct equiv_info *); extern int struct_equiv_block_eq (int, struct equiv_info *); extern unsigned char struct_equiv_init (int, struct equiv_info *); extern unsigned char rtx_equiv_p (rtx *, rtx, int, struct equiv_info *); extern unsigned char condjump_equiv_p (struct equiv_info *, unsigned char); static __inline__ unsigned char bb_has_eh_pred (basic_block bb) { edge e; edge_iterator ei; for ((ei) = ei_start_1 (&((bb->preds))); ei_cond ((ei), &(e)); ei_next (&(ei))) { if (e->flags & 8) return 1; } return 0; } # 25 "../../GCC/gcc/cgraph.h" 2 enum availability { AVAIL_UNSET, AVAIL_NOT_AVAILABLE, AVAIL_OVERWRITABLE, AVAIL_AVAILABLE, AVAIL_LOCAL }; struct cgraph_local_info { int self_insns; unsigned local : 1; unsigned externally_visible : 1; unsigned finalized : 1; unsigned inlinable : 1; unsigned disregard_inline_limits : 1; unsigned redefined_extern_inline : 1; unsigned for_functions_valid : 1; unsigned vtable_method : 1; }; struct cgraph_global_info { struct cgraph_node *inlined_to; int insns; int estimated_growth; unsigned char inlined; }; struct cgraph_rtl_info { int preferred_incoming_stack_boundary; }; struct cgraph_node { tree decl; struct cgraph_edge *callees; struct cgraph_edge *callers; struct cgraph_node *next; struct cgraph_node *previous; struct cgraph_node *origin; struct cgraph_node *nested; struct cgraph_node *next_nested; struct cgraph_node *next_needed; struct cgraph_node *next_clone; struct cgraph_node *prev_clone; struct cgraph_node *master_clone; htab_t call_site_hash; void * aux; struct cgraph_local_info local; struct cgraph_global_info global; struct cgraph_rtl_info rtl; gcov_type count; int uid; int order; unsigned needed : 1; unsigned reachable : 1; unsigned lowered : 1; unsigned analyzed : 1; unsigned output : 1; unsigned alias : 1; tree inline_decl; }; struct cgraph_edge { struct cgraph_node *caller; struct cgraph_node *callee; struct cgraph_edge *prev_caller; struct cgraph_edge *next_caller; struct cgraph_edge *prev_callee; struct cgraph_edge *next_callee; tree call_stmt; void * aux; const char *inline_failed; gcov_type count; int loop_nest; }; typedef struct cgraph_edge *cgraph_edge_p; static __inline__ void VEC_cgraph_edge_p_must_be_pointer_type (void) { (void)((cgraph_edge_p)1 == (void *)1); } typedef struct VEC_cgraph_edge_p_base { unsigned num; unsigned alloc; cgraph_edge_p vec[1]; } VEC_cgraph_edge_p_base; typedef struct VEC_cgraph_edge_p_none { VEC_cgraph_edge_p_base base; } VEC_cgraph_edge_p_none; static __inline__ unsigned VEC_cgraph_edge_p_base_length (const VEC_cgraph_edge_p_base *vec_) { return vec_ ? vec_->num : 0; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_last (const VEC_cgraph_edge_p_base *vec_ ) { (void)(vec_ && vec_->num); return vec_->vec[vec_->num - 1]; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_index (const VEC_cgraph_edge_p_base *vec_, unsigned ix_ ) { (void)(vec_ && ix_ < vec_->num); return vec_->vec[ix_]; } static __inline__ int VEC_cgraph_edge_p_base_iterate (const VEC_cgraph_edge_p_base *vec_, unsigned ix_, cgraph_edge_p *ptr) { if (vec_ && ix_ < vec_->num) { *ptr = vec_->vec[ix_]; return 1; } else { *ptr = 0; return 0; } } static __inline__ size_t VEC_cgraph_edge_p_base_embedded_size (int alloc_) { return __builtin_offsetof (VEC_cgraph_edge_p_base, vec) + alloc_ * sizeof(cgraph_edge_p); } static __inline__ void VEC_cgraph_edge_p_base_embedded_init (VEC_cgraph_edge_p_base *vec_, int alloc_) { vec_->num = 0; vec_->alloc = alloc_; } static __inline__ int VEC_cgraph_edge_p_base_space (VEC_cgraph_edge_p_base *vec_, int alloc_ ) { (void)(alloc_ >= 0); return vec_ ? vec_->alloc - vec_->num >= (unsigned)alloc_ : !alloc_; } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_base_quick_push (VEC_cgraph_edge_p_base *vec_, cgraph_edge_p obj_ ) { cgraph_edge_p *slot_; (void)(vec_->num < vec_->alloc); slot_ = &vec_->vec[vec_->num++]; *slot_ = obj_; return slot_; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_pop (VEC_cgraph_edge_p_base *vec_ ) { cgraph_edge_p obj_; (void)(vec_->num); obj_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_cgraph_edge_p_base_truncate (VEC_cgraph_edge_p_base *vec_, unsigned size_ ) { (void)(vec_ ? vec_->num >= size_ : !size_); if (vec_) vec_->num = size_; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_replace (VEC_cgraph_edge_p_base *vec_, unsigned ix_, cgraph_edge_p obj_ ) { cgraph_edge_p old_obj_; (void)(ix_ < vec_->num); old_obj_ = vec_->vec[ix_]; vec_->vec[ix_] = obj_; return old_obj_; } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_base_quick_insert (VEC_cgraph_edge_p_base *vec_, unsigned ix_, cgraph_edge_p obj_ ) { cgraph_edge_p *slot_; (void)(vec_->num < vec_->alloc); (void)(ix_ <= vec_->num); slot_ = &vec_->vec[ix_]; memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (cgraph_edge_p)); *slot_ = obj_; return slot_; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_ordered_remove (VEC_cgraph_edge_p_base *vec_, unsigned ix_ ) { cgraph_edge_p *slot_; cgraph_edge_p obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; memmove (slot_, slot_ + 1, (--vec_->num - ix_) * sizeof (cgraph_edge_p)); return obj_; } static __inline__ cgraph_edge_p VEC_cgraph_edge_p_base_unordered_remove (VEC_cgraph_edge_p_base *vec_, unsigned ix_ ) { cgraph_edge_p *slot_; cgraph_edge_p obj_; (void)(ix_ < vec_->num); slot_ = &vec_->vec[ix_]; obj_ = *slot_; *slot_ = vec_->vec[--vec_->num]; return obj_; } static __inline__ void VEC_cgraph_edge_p_base_block_remove (VEC_cgraph_edge_p_base *vec_, unsigned ix_, unsigned len_ ) { cgraph_edge_p *slot_; (void)(ix_ + len_ <= vec_->num); slot_ = &vec_->vec[ix_]; vec_->num -= len_; memmove (slot_, slot_ + len_, (vec_->num - ix_) * sizeof (cgraph_edge_p)); } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_base_address (VEC_cgraph_edge_p_base *vec_) { return vec_ ? vec_->vec : 0; } static __inline__ unsigned VEC_cgraph_edge_p_base_lower_bound (VEC_cgraph_edge_p_base *vec_, const cgraph_edge_p obj_, unsigned char (*lessthan_)(const cgraph_edge_p, const cgraph_edge_p) ) { unsigned int len_ = VEC_cgraph_edge_p_base_length (vec_); unsigned int half_, middle_; unsigned int first_ = 0; while (len_ > 0) { cgraph_edge_p middle_elem_; half_ = len_ >> 1; middle_ = first_; middle_ += half_; middle_elem_ = VEC_cgraph_edge_p_base_index (vec_, middle_ ); if (lessthan_ (middle_elem_, obj_)) { first_ = middle_; ++first_; len_ = len_ - half_ - 1; } else len_ = half_; } return first_; } struct vec_swallow_trailing_semi; typedef struct VEC_cgraph_edge_p_heap { VEC_cgraph_edge_p_base base; } VEC_cgraph_edge_p_heap; static __inline__ VEC_cgraph_edge_p_heap *VEC_cgraph_edge_p_heap_alloc (int alloc_ ) { return (VEC_cgraph_edge_p_heap *) vec_heap_p_reserve_exact (((void *)0), alloc_ ); } static __inline__ void VEC_cgraph_edge_p_heap_free (VEC_cgraph_edge_p_heap **vec_) { if (*vec_) free (*vec_); *vec_ = ((void *)0); } static __inline__ VEC_cgraph_edge_p_heap *VEC_cgraph_edge_p_heap_copy (VEC_cgraph_edge_p_base *vec_ ) { size_t len_ = vec_ ? vec_->num : 0; VEC_cgraph_edge_p_heap *new_vec_ = ((void *)0); if (len_) { new_vec_ = (VEC_cgraph_edge_p_heap *)(vec_heap_p_reserve_exact (((void *)0), len_ )); new_vec_->base.num = len_; memcpy (new_vec_->base.vec, vec_->vec, sizeof (cgraph_edge_p) * len_); } return new_vec_; } static __inline__ int VEC_cgraph_edge_p_heap_reserve (VEC_cgraph_edge_p_heap **vec_, int alloc_ ) { int extend = !VEC_cgraph_edge_p_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_edge_p_heap *) vec_heap_p_reserve (*vec_, alloc_ ); return extend; } static __inline__ int VEC_cgraph_edge_p_heap_reserve_exact (VEC_cgraph_edge_p_heap **vec_, int alloc_ ) { int extend = !VEC_cgraph_edge_p_base_space (((*vec_) ? &(*vec_)->base : 0), alloc_ ); if (extend) *vec_ = (VEC_cgraph_edge_p_heap *) vec_heap_p_reserve_exact (*vec_, alloc_ ); return extend; } static __inline__ void VEC_cgraph_edge_p_heap_safe_grow (VEC_cgraph_edge_p_heap **vec_, int size_ ) { (void)(size_ >= 0 && VEC_cgraph_edge_p_base_length ((*vec_) ? &(*vec_)->base : 0) <= (unsigned)size_); VEC_cgraph_edge_p_heap_reserve_exact (vec_, size_ - (int)(*vec_ ? ((*vec_) ? &(*vec_)->base : 0)->num : 0) ); ((*vec_) ? &(*vec_)->base : 0)->num = size_; } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_heap_safe_push (VEC_cgraph_edge_p_heap **vec_, cgraph_edge_p obj_ ) { VEC_cgraph_edge_p_heap_reserve (vec_, 1 ); return VEC_cgraph_edge_p_base_quick_push (((*vec_) ? &(*vec_)->base : 0), obj_ ); } static __inline__ cgraph_edge_p *VEC_cgraph_edge_p_heap_safe_insert (VEC_cgraph_edge_p_heap **vec_, unsigned ix_, cgraph_edge_p obj_ ) { VEC_cgraph_edge_p_heap_reserve (vec_, 1 ); return VEC_cgraph_edge_p_base_quick_insert (((*vec_) ? &(*vec_)->base : 0), ix_, obj_ ); } struct vec_swallow_trailing_semi; struct cgraph_varpool_node { tree decl; struct cgraph_varpool_node *next; struct cgraph_varpool_node *next_needed; int order; unsigned needed : 1; unsigned force_output : 1; unsigned analyzed : 1; unsigned finalized : 1; unsigned output : 1; unsigned externally_visible : 1; unsigned alias : 1; }; struct cgraph_asm_node { struct cgraph_asm_node *next; tree asm_str; int order; }; extern struct cgraph_node *cgraph_nodes; extern int cgraph_n_nodes; extern int cgraph_max_uid; extern unsigned char cgraph_global_info_ready; extern unsigned char cgraph_function_flags_ready; extern struct cgraph_node *cgraph_nodes_queue; extern struct cgraph_node *cgraph_expand_queue; extern struct cgraph_varpool_node *cgraph_varpool_first_unanalyzed_node; extern struct cgraph_varpool_node *cgraph_varpool_last_needed_node; extern struct cgraph_varpool_node *cgraph_varpool_nodes_queue; extern struct cgraph_varpool_node *cgraph_varpool_nodes; extern struct cgraph_asm_node *cgraph_asm_nodes; extern int cgraph_order; void dump_cgraph (FILE *); void dump_cgraph_node (FILE *, struct cgraph_node *); void cgraph_insert_node_to_hashtable (struct cgraph_node *node); void dump_varpool (FILE *); void dump_cgraph_varpool_node (FILE *, struct cgraph_varpool_node *); void cgraph_remove_edge (struct cgraph_edge *); void cgraph_remove_node (struct cgraph_node *); void cgraph_node_remove_callees (struct cgraph_node *node); struct cgraph_edge *cgraph_create_edge (struct cgraph_node *, struct cgraph_node *, tree, gcov_type, int); struct cgraph_node *cgraph_node (tree); struct cgraph_node *cgraph_node_for_asm (tree asmname); struct cgraph_edge *cgraph_edge (struct cgraph_node *, tree); void cgraph_set_call_stmt (struct cgraph_edge *, tree); struct cgraph_local_info *cgraph_local_info (tree); struct cgraph_global_info *cgraph_global_info (tree); struct cgraph_rtl_info *cgraph_rtl_info (tree); const char * cgraph_node_name (struct cgraph_node *); struct cgraph_edge * cgraph_clone_edge (struct cgraph_edge *, struct cgraph_node *, tree, gcov_type, int, unsigned char); struct cgraph_node * cgraph_clone_node (struct cgraph_node *, gcov_type, int, unsigned char); struct cgraph_varpool_node *cgraph_varpool_node (tree); struct cgraph_varpool_node *cgraph_varpool_node_for_asm (tree asmname); void cgraph_varpool_mark_needed_node (struct cgraph_varpool_node *); void cgraph_varpool_finalize_decl (tree); void cgraph_redirect_edge_callee (struct cgraph_edge *, struct cgraph_node *); struct cgraph_asm_node *cgraph_add_asm_node (tree); unsigned char cgraph_function_possibly_inlined_p (tree); void cgraph_unnest_node (struct cgraph_node *); void cgraph_varpool_enqueue_needed_node (struct cgraph_varpool_node *); void cgraph_varpool_reset_queue (void); unsigned char decide_is_variable_needed (struct cgraph_varpool_node *, tree); enum availability cgraph_function_body_availability (struct cgraph_node *); enum availability cgraph_variable_initializer_availability (struct cgraph_varpool_node *); unsigned char cgraph_is_master_clone (struct cgraph_node *); struct cgraph_node *cgraph_master_clone (struct cgraph_node *); void cgraph_add_new_function (tree); unsigned char cgraph_assemble_pending_functions (void); unsigned char cgraph_varpool_assemble_pending_decls (void); void cgraph_finalize_function (tree, unsigned char); void cgraph_finalize_compilation_unit (void); void cgraph_optimize (void); void cgraph_mark_needed_node (struct cgraph_node *); void cgraph_mark_reachable_node (struct cgraph_node *); unsigned char cgraph_inline_p (struct cgraph_edge *, const char **reason); unsigned char cgraph_preserve_function_body_p (tree); void verify_cgraph (void); void verify_cgraph_node (struct cgraph_node *); void cgraph_build_static_cdtor (char which, tree body, int priority); void cgraph_reset_static_var_maps (void); void init_cgraph (void); struct cgraph_node *cgraph_function_versioning (struct cgraph_node *, VEC_cgraph_edge_p_heap*, varray_type); void cgraph_analyze_function (struct cgraph_node *); struct cgraph_node *save_inline_function_body (struct cgraph_node *); unsigned char cgraph_remove_unreachable_nodes (unsigned char, FILE *); int cgraph_postorder (struct cgraph_node **); unsigned char cgraph_decide_inlining_incrementally (struct cgraph_node *, unsigned char); void cgraph_clone_inlined_nodes (struct cgraph_edge *, unsigned char, unsigned char); void cgraph_mark_inline_edge (struct cgraph_edge *, unsigned char); unsigned char cgraph_default_inline_p (struct cgraph_node *, const char **); # 59 "../../GCC/gcc/c-parser.c" 2 # 1 "../../GCC/gcc/cbc-tree.h" 1 # 61 "../../GCC/gcc/c-parser.c" 2 int yydebug; static int objc_pq_context = 0; static int objc_need_raw_identifier = 0; struct resword { const char *word; __extension__ enum rid rid : 16; unsigned int disable : 16; }; # 98 "../../GCC/gcc/c-parser.c" static const struct resword reswords[] = { { "_Bool", RID_BOOL, 0 }, { "_Complex", RID_COMPLEX, 0 }, { "_Decimal32", RID_DFLOAT32, 0x02 }, { "_Decimal64", RID_DFLOAT64, 0x02 }, { "_Decimal128", RID_DFLOAT128, 0x02 }, { "__FUNCTION__", RID_FUNCTION_NAME, 0 }, { "__PRETTY_FUNCTION__", RID_PRETTY_FUNCTION_NAME, 0 }, { "__alignof", RID_ALIGNOF, 0 }, { "__alignof__", RID_ALIGNOF, 0 }, { "__asm", RID_ASM, 0 }, { "__asm__", RID_ASM, 0 }, { "__attribute", RID_ATTRIBUTE, 0 }, { "__attribute__", RID_ATTRIBUTE, 0 }, { "__code", RID_CbC_CODE, 0 }, { "__builtin_choose_expr", RID_CHOOSE_EXPR, 0 }, { "__builtin_offsetof", RID_OFFSETOF, 0 }, { "__builtin_types_compatible_p", RID_TYPES_COMPATIBLE_P, 0 }, { "__builtin_va_arg", RID_VA_ARG, 0 }, { "__complex", RID_COMPLEX, 0 }, { "__complex__", RID_COMPLEX, 0 }, { "__const", RID_CONST, 0 }, { "__const__", RID_CONST, 0 }, { "__environment", RID_CbC_ENV, 0 }, { "__extension__", RID_EXTENSION, 0 }, { "__func__", RID_C99_FUNCTION_NAME, 0 }, { "__imag", RID_IMAGPART, 0 }, { "__imag__", RID_IMAGPART, 0 }, { "__inline", RID_INLINE, 0 }, { "__inline__", RID_INLINE, 0 }, { "__label__", RID_LABEL, 0 }, { "__real", RID_REALPART, 0 }, { "__real__", RID_REALPART, 0 }, { "__restrict", RID_RESTRICT, 0 }, { "__restrict__", RID_RESTRICT, 0 }, { "__signed", RID_SIGNED, 0 }, { "__signed__", RID_SIGNED, 0 }, { "__thread", RID_THREAD, 0 }, { "__typeof", RID_TYPEOF, 0 }, { "__typeof__", RID_TYPEOF, 0 }, { "__volatile", RID_VOLATILE, 0 }, { "__volatile__", RID_VOLATILE, 0 }, { "asm", RID_ASM, 0x02 }, { "auto", RID_AUTO, 0 }, { "break", RID_BREAK, 0 }, { "case", RID_CASE, 0 }, { "char", RID_CHAR, 0 }, { "const", RID_CONST, 0 }, { "continue", RID_CONTINUE, 0 }, { "default", RID_DEFAULT, 0 }, { "do", RID_DO, 0 }, { "double", RID_DOUBLE, 0 }, { "else", RID_ELSE, 0 }, { "enum", RID_ENUM, 0 }, { "extern", RID_EXTERN, 0 }, { "float", RID_FLOAT, 0 }, { "for", RID_FOR, 0 }, { "goto", RID_GOTO, 0 }, { "if", RID_IF, 0 }, { "inline", RID_INLINE, 0x04 }, { "int", RID_INT, 0 }, { "long", RID_LONG, 0 }, { "register", RID_REGISTER, 0 }, { "restrict", RID_RESTRICT, 0x01 }, { "return", RID_RETURN, 0 }, { "short", RID_SHORT, 0 }, { "signed", RID_SIGNED, 0 }, { "sizeof", RID_SIZEOF, 0 }, { "static", RID_STATIC, 0 }, { "struct", RID_STRUCT, 0 }, { "switch", RID_SWITCH, 0 }, { "typedef", RID_TYPEDEF, 0 }, { "typeof", RID_TYPEOF, 0x02 }, { "union", RID_UNION, 0 }, { "unsigned", RID_UNSIGNED, 0 }, { "void", RID_VOID, 0 }, { "volatile", RID_VOLATILE, 0 }, { "while", RID_WHILE, 0 }, { "class", RID_AT_CLASS, 0x08 }, { "compatibility_alias", RID_AT_ALIAS, 0x08 }, { "defs", RID_AT_DEFS, 0x08 }, { "encode", RID_AT_ENCODE, 0x08 }, { "end", RID_AT_END, 0x08 }, { "implementation", RID_AT_IMPLEMENTATION, 0x08 }, { "interface", RID_AT_INTERFACE, 0x08 }, { "private", RID_AT_PRIVATE, 0x08 }, { "protected", RID_AT_PROTECTED, 0x08 }, { "protocol", RID_AT_PROTOCOL, 0x08 }, { "public", RID_AT_PUBLIC, 0x08 }, { "selector", RID_AT_SELECTOR, 0x08 }, { "throw", RID_AT_THROW, 0x08 }, { "try", RID_AT_TRY, 0x08 }, { "catch", RID_AT_CATCH, 0x08 }, { "finally", RID_AT_FINALLY, 0x08 }, { "synchronized", RID_AT_SYNCHRONIZED, 0x08 }, { "bycopy", RID_BYCOPY, 0x08 }, { "byref", RID_BYREF, 0x08 }, { "in", RID_IN, 0x08 }, { "inout", RID_INOUT, 0x08 }, { "oneway", RID_ONEWAY, 0x08 }, { "out", RID_OUT, 0x08 }, }; typedef enum pragma_omp_clause { PRAGMA_OMP_CLAUSE_NONE = 0, PRAGMA_OMP_CLAUSE_COPYIN, PRAGMA_OMP_CLAUSE_COPYPRIVATE, PRAGMA_OMP_CLAUSE_DEFAULT, PRAGMA_OMP_CLAUSE_FIRSTPRIVATE, PRAGMA_OMP_CLAUSE_IF, PRAGMA_OMP_CLAUSE_LASTPRIVATE, PRAGMA_OMP_CLAUSE_NOWAIT, PRAGMA_OMP_CLAUSE_NUM_THREADS, PRAGMA_OMP_CLAUSE_ORDERED, PRAGMA_OMP_CLAUSE_PRIVATE, PRAGMA_OMP_CLAUSE_REDUCTION, PRAGMA_OMP_CLAUSE_SCHEDULE, PRAGMA_OMP_CLAUSE_SHARED } pragma_omp_clause; void c_parse_init (void) { unsigned int i; tree id; int mask = (flag_isoc99 ? 0 : 0x01) | (flag_no_asm ? (flag_isoc99 ? 0x02 : 0x02|0x04) : 0); if (!(c_language & clk_objc)) mask |= 0x08; ridpointers = ((tree *) ggc_alloc_cleared_stat (((int) RID_MAX) * sizeof(tree) )); for (i = 0; i < (sizeof reswords / sizeof (struct resword)); i++) { if (reswords[i].disable & mask) continue; id = (__builtin_constant_p (reswords[i].word) ? get_identifier_with_length ((reswords[i].word), strlen (reswords[i].word)) : get_identifier (reswords[i].word)); (((struct c_common_identifier *) (id))->node.rid_code) = reswords[i].rid; ((id)->common.lang_flag_0) = 1; ridpointers [(int) reswords[i].rid] = id; } } # 280 "../../GCC/gcc/c-parser.c" typedef enum c_id_kind { C_ID_ID, C_ID_TYPENAME, C_ID_CLASSNAME, C_ID_NONE } c_id_kind; typedef struct c_token { __extension__ enum cpp_ttype type : 8; __extension__ enum c_id_kind id_kind : 8; __extension__ enum rid keyword : 8; __extension__ enum pragma_kind pragma_kind : 7; unsigned int in_system_header : 1; tree value; location_t location; } c_token; typedef struct c_parser { c_token tokens[2]; short tokens_avail; unsigned int error : 1; unsigned int in_pragma : 1; } c_parser; static c_parser *the_parser; static void c_lex_one_token (c_token *token) { do { if (timevar_enable) timevar_push_1 (TV_LEX); }while(0); token->type = c_lex_with_flags (&token->value, &token->location, ((void *)0)); token->id_kind = C_ID_NONE; token->keyword = RID_MAX; token->pragma_kind = PRAGMA_NONE; token->in_system_header = in_system_header; switch (token->type) { case CPP_NAME: { tree decl; int objc_force_identifier = objc_need_raw_identifier; do { if ((c_language & clk_objc)) objc_need_raw_identifier = 0; } while (0); if (((token->value)->common.lang_flag_0)) { enum rid rid_code = (((struct c_common_identifier *) (token->value))->node.rid_code); if ((c_language & clk_objc)) { if (!((unsigned int) (rid_code) >= (unsigned int) RID_FIRST_AT && (unsigned int) (rid_code) <= (unsigned int) RID_LAST_AT) && (!((unsigned int) (rid_code) >= (unsigned int) RID_FIRST_PQ && (unsigned int) (rid_code) <= (unsigned int) RID_LAST_PQ) || objc_pq_context)) { token->value = ridpointers[(int) rid_code]; token->type = ((enum cpp_ttype) (N_TTYPES + 1)); token->keyword = rid_code; break; } } else { token->value = ridpointers[(int) rid_code]; token->type = ((enum cpp_ttype) (N_TTYPES + 1)); token->keyword = rid_code; break; } } decl = lookup_name (token->value); if (decl) { if (((enum tree_code) (decl)->common.code) == TYPE_DECL) { token->id_kind = C_ID_TYPENAME; break; } } else if ((c_language & clk_objc)) { tree objc_interface_decl = objc_is_class_name (token->value); if (objc_interface_decl && (global_bindings_p () || (!objc_force_identifier && !decl))) { token->value = objc_interface_decl; token->id_kind = C_ID_CLASSNAME; break; } } token->id_kind = C_ID_ID; } break; case CPP_AT_NAME: token->type = ((enum cpp_ttype) (N_TTYPES + 1)); token->keyword = (((struct c_common_identifier *) (token->value))->node.rid_code); break; case CPP_COLON: case CPP_COMMA: case CPP_CLOSE_PAREN: case CPP_SEMICOLON: do { if ((c_language & clk_objc)) objc_need_raw_identifier = 0; } while (0); break; case CPP_PRAGMA: token->pragma_kind = ((__extension__ ({ const tree __t = (token->value); if (((enum tree_code) (__t)->common.code) != (INTEGER_CST)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 429, __FUNCTION__, (INTEGER_CST), 0); __t; })->int_cst.int_cst).low); token->value = ((void *)0); break; default: break; } do { if (timevar_enable) timevar_pop_1 (TV_LEX); }while(0); } static __inline__ c_token * c_parser_peek_token (c_parser *parser) { if (parser->tokens_avail == 0) { c_lex_one_token (&parser->tokens[0]); parser->tokens_avail = 1; } return &parser->tokens[0]; } static __inline__ unsigned char c_parser_next_token_is (c_parser *parser, enum cpp_ttype type) { return c_parser_peek_token (parser)->type == type; } static __inline__ unsigned char c_parser_next_token_is_not (c_parser *parser, enum cpp_ttype type) { return !c_parser_next_token_is (parser, type); } static __inline__ unsigned char c_parser_next_token_is_keyword (c_parser *parser, enum rid keyword) { c_token *token; token = c_parser_peek_token (parser); return token->keyword == keyword; } static unsigned char c_token_starts_typename (c_token *token) { switch (token->type) { case CPP_NAME: switch (token->id_kind) { case C_ID_ID: return 0; case C_ID_TYPENAME: return 1; case C_ID_CLASSNAME: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 499, __FUNCTION__), 0 : 0)); return 1; default: (fancy_abort ("../../GCC/gcc/c-parser.c", 502, __FUNCTION__)); } case ((enum cpp_ttype) (N_TTYPES + 1)): switch (token->keyword) { case RID_UNSIGNED: case RID_LONG: case RID_SHORT: case RID_SIGNED: case RID_COMPLEX: case RID_INT: case RID_CHAR: case RID_FLOAT: case RID_DOUBLE: case RID_VOID: case RID_DFLOAT32: case RID_DFLOAT64: case RID_DFLOAT128: case RID_BOOL: case RID_ENUM: case RID_STRUCT: case RID_UNION: case RID_TYPEOF: case RID_CONST: case RID_VOLATILE: case RID_RESTRICT: case RID_ATTRIBUTE: case RID_CbC_CODE: return 1; default: return 0; } case CPP_LESS: if ((c_language & clk_objc)) return 1; return 0; default: return 0; } } static __inline__ unsigned char c_parser_next_token_starts_typename (c_parser *parser) { c_token *token = c_parser_peek_token (parser); return c_token_starts_typename (token); } static unsigned char c_token_starts_declspecs (c_token *token) { switch (token->type) { case CPP_NAME: switch (token->id_kind) { case C_ID_ID: return 0; case C_ID_TYPENAME: return 1; case C_ID_CLASSNAME: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 569, __FUNCTION__), 0 : 0)); return 1; default: (fancy_abort ("../../GCC/gcc/c-parser.c", 572, __FUNCTION__)); } case ((enum cpp_ttype) (N_TTYPES + 1)): switch (token->keyword) { case RID_STATIC: case RID_EXTERN: case RID_REGISTER: case RID_TYPEDEF: case RID_INLINE: case RID_AUTO: case RID_THREAD: case RID_UNSIGNED: case RID_LONG: case RID_SHORT: case RID_SIGNED: case RID_COMPLEX: case RID_INT: case RID_CHAR: case RID_FLOAT: case RID_DOUBLE: case RID_VOID: case RID_DFLOAT32: case RID_DFLOAT64: case RID_DFLOAT128: case RID_BOOL: case RID_ENUM: case RID_STRUCT: case RID_UNION: case RID_TYPEOF: case RID_CONST: case RID_VOLATILE: case RID_RESTRICT: case RID_ATTRIBUTE: case RID_CbC_CODE: return 1; default: return 0; } case CPP_LESS: if ((c_language & clk_objc)) return 1; return 0; default: return 0; } } static __inline__ unsigned char c_parser_next_token_starts_declspecs (c_parser *parser) { c_token *token = c_parser_peek_token (parser); return c_token_starts_declspecs (token); } static c_token * c_parser_peek_2nd_token (c_parser *parser) { if (parser->tokens_avail >= 2) return &parser->tokens[1]; ((void)(!(parser->tokens_avail == 1) ? fancy_abort ("../../GCC/gcc/c-parser.c", 639, __FUNCTION__), 0 : 0)); ((void)(!(parser->tokens[0].type != CPP_EOF) ? fancy_abort ("../../GCC/gcc/c-parser.c", 640, __FUNCTION__), 0 : 0)); ((void)(!(parser->tokens[0].type != CPP_PRAGMA_EOL) ? fancy_abort ("../../GCC/gcc/c-parser.c", 641, __FUNCTION__), 0 : 0)); c_lex_one_token (&parser->tokens[1]); parser->tokens_avail = 2; return &parser->tokens[1]; } static void c_parser_consume_token (c_parser *parser) { ((void)(!(parser->tokens_avail >= 1) ? fancy_abort ("../../GCC/gcc/c-parser.c", 652, __FUNCTION__), 0 : 0)); ((void)(!(parser->tokens[0].type != CPP_EOF) ? fancy_abort ("../../GCC/gcc/c-parser.c", 653, __FUNCTION__), 0 : 0)); ((void)(!(!parser->in_pragma || parser->tokens[0].type != CPP_PRAGMA_EOL) ? fancy_abort ("../../GCC/gcc/c-parser.c", 654, __FUNCTION__), 0 : 0)); ((void)(!(parser->error || parser->tokens[0].type != CPP_PRAGMA) ? fancy_abort ("../../GCC/gcc/c-parser.c", 655, __FUNCTION__), 0 : 0)); if (parser->tokens_avail == 2) parser->tokens[0] = parser->tokens[1]; parser->tokens_avail--; } static void c_parser_consume_pragma (c_parser *parser) { ((void)(!(!parser->in_pragma) ? fancy_abort ("../../GCC/gcc/c-parser.c", 667, __FUNCTION__), 0 : 0)); ((void)(!(parser->tokens_avail >= 1) ? fancy_abort ("../../GCC/gcc/c-parser.c", 668, __FUNCTION__), 0 : 0)); ((void)(!(parser->tokens[0].type == CPP_PRAGMA) ? fancy_abort ("../../GCC/gcc/c-parser.c", 669, __FUNCTION__), 0 : 0)); if (parser->tokens_avail == 2) parser->tokens[0] = parser->tokens[1]; parser->tokens_avail--; parser->in_pragma = 1; } static __inline__ void c_parser_set_source_position_from_token (c_token *token) { if (token->type != CPP_EOF) { input_location = token->location; in_system_header = token->in_system_header; } } # 700 "../../GCC/gcc/c-parser.c" static void c_parser_error (c_parser *parser, const char *gmsgid) { c_token *token = c_parser_peek_token (parser); if (parser->error) return; parser->error = 1; if (!gmsgid) return; c_parser_set_source_position_from_token (token); c_parse_error (gmsgid, (token->type == ((enum cpp_ttype) (N_TTYPES + 1)) ? CPP_NAME : token->type), token->value); } static unsigned char c_parser_require (c_parser *parser, enum cpp_ttype type, const char *msgid) { if (c_parser_next_token_is (parser, type)) { c_parser_consume_token (parser); return 1; } else { c_parser_error (parser, msgid); return 0; } } static unsigned char c_parser_require_keyword (c_parser *parser, enum rid keyword, const char *msgid) { if (c_parser_next_token_is_keyword (parser, keyword)) { c_parser_consume_token (parser); return 1; } else { c_parser_error (parser, msgid); return 0; } } static void c_parser_skip_until_found (c_parser *parser, enum cpp_ttype type, const char *msgid) { unsigned nesting_depth = 0; if (c_parser_require (parser, type, msgid)) return; while (1) { c_token *token = c_parser_peek_token (parser); if (token->type == type && !nesting_depth) { c_parser_consume_token (parser); break; } if (token->type == CPP_EOF) return; if (token->type == CPP_PRAGMA_EOL && parser->in_pragma) return; if (token->type == CPP_OPEN_BRACE || token->type == CPP_OPEN_PAREN || token->type == CPP_OPEN_SQUARE) ++nesting_depth; else if (token->type == CPP_CLOSE_BRACE || token->type == CPP_CLOSE_PAREN || token->type == CPP_CLOSE_SQUARE) { if (nesting_depth-- == 0) break; } c_parser_consume_token (parser); } parser->error = 0; } static void c_parser_skip_to_end_of_parameter (c_parser *parser) { unsigned nesting_depth = 0; while (1) { c_token *token = c_parser_peek_token (parser); if ((token->type == CPP_COMMA || token->type == CPP_SEMICOLON) && !nesting_depth) break; if (token->type == CPP_EOF) return; if (token->type == CPP_PRAGMA_EOL && parser->in_pragma) return; if (token->type == CPP_OPEN_BRACE || token->type == CPP_OPEN_PAREN || token->type == CPP_OPEN_SQUARE) ++nesting_depth; else if (token->type == CPP_CLOSE_BRACE || token->type == CPP_CLOSE_PAREN || token->type == CPP_CLOSE_SQUARE) { if (nesting_depth-- == 0) break; } c_parser_consume_token (parser); } parser->error = 0; } static void c_parser_skip_to_pragma_eol (c_parser *parser) { ((void)(!(parser->in_pragma) ? fancy_abort ("../../GCC/gcc/c-parser.c", 854, __FUNCTION__), 0 : 0)); parser->in_pragma = 0; if (!c_parser_require (parser, CPP_PRAGMA_EOL, "expected end of line")) while (1) { c_token *token = c_parser_peek_token (parser); if (token->type == CPP_EOF) break; if (token->type == CPP_PRAGMA_EOL) { c_parser_consume_token (parser); break; } c_parser_consume_token (parser); } parser->error = 0; } static void c_parser_skip_to_end_of_block_or_statement (c_parser *parser) { unsigned nesting_depth = 0; unsigned char save_error = parser->error; while (1) { c_token *token; token = c_parser_peek_token (parser); switch (token->type) { case CPP_EOF: return; case CPP_PRAGMA_EOL: if (parser->in_pragma) return; break; case CPP_SEMICOLON: if (!nesting_depth) { c_parser_consume_token (parser); goto finished; } break; case CPP_CLOSE_BRACE: if (nesting_depth == 0 || --nesting_depth == 0) { c_parser_consume_token (parser); goto finished; } break; case CPP_OPEN_BRACE: ++nesting_depth; break; case CPP_PRAGMA: c_parser_consume_pragma (parser); c_parser_skip_to_pragma_eol (parser); parser->error = save_error; continue; default: break; } c_parser_consume_token (parser); } finished: parser->error = 0; } static __inline__ int disable_extension_diagnostics (void) { int ret = (pedantic | (warn_pointer_arith << 1) | (warn_traditional << 2) | (flag_iso << 3)); pedantic = 0; warn_pointer_arith = 0; warn_traditional = 0; flag_iso = 0; return ret; } static __inline__ void restore_extension_diagnostics (int flags) { pedantic = flags & 1; warn_pointer_arith = (flags >> 1) & 1; warn_traditional = (flags >> 2) & 1; flag_iso = (flags >> 3) & 1; } typedef enum c_dtr_syn { C_DTR_NORMAL, C_DTR_ABSTRACT, # 994 "../../GCC/gcc/c-parser.c" C_DTR_PARM } c_dtr_syn; static void c_parser_external_declaration (c_parser *); static void c_parser_asm_definition (c_parser *); static void c_parser_declaration_or_fndef (c_parser *, unsigned char, unsigned char, unsigned char, unsigned char); static void c_parser_declspecs (c_parser *, struct c_declspecs *, unsigned char, unsigned char, unsigned char); static struct c_typespec c_parser_enum_specifier (c_parser *); static struct c_typespec c_parser_struct_or_union_specifier (c_parser *); static tree c_parser_struct_declaration (c_parser *); static struct c_typespec c_parser_typeof_specifier (c_parser *); static struct c_declarator *c_parser_declarator (c_parser *, unsigned char, c_dtr_syn, unsigned char *); static struct c_declarator *c_parser_direct_declarator (c_parser *, unsigned char, c_dtr_syn, unsigned char *); static struct c_declarator *c_parser_direct_declarator_inner (c_parser *, unsigned char, struct c_declarator *); static struct c_arg_info *c_parser_parms_declarator (c_parser *, unsigned char, tree); static struct c_arg_info *c_parser_parms_list_declarator (c_parser *, tree); static struct c_parm *c_parser_parameter_declaration (c_parser *, tree); static tree c_parser_simple_asm_expr (c_parser *); static tree c_parser_attributes (c_parser *); static struct c_type_name *c_parser_type_name (c_parser *); static struct c_expr c_parser_initializer (c_parser *); static struct c_expr c_parser_braced_init (c_parser *, tree, unsigned char); static void c_parser_initelt (c_parser *); static void c_parser_initval (c_parser *, struct c_expr *); static tree c_parser_compound_statement (c_parser *); static void c_parser_compound_statement_nostart (c_parser *); static void c_parser_label (c_parser *); static void c_parser_statement (c_parser *); static void c_parser_statement_after_labels (c_parser *); static void c_parser_if_statement (c_parser *); static void c_parser_switch_statement (c_parser *); static void c_parser_while_statement (c_parser *); static void c_parser_do_statement (c_parser *); static void c_parser_for_statement (c_parser *); static tree c_parser_asm_statement (c_parser *); static tree c_parser_asm_operands (c_parser *, unsigned char); static tree c_parser_asm_clobbers (c_parser *); static struct c_expr c_parser_expr_no_commas (c_parser *, struct c_expr *); static struct c_expr c_parser_conditional_expression (c_parser *, struct c_expr *); static struct c_expr c_parser_binary_expression (c_parser *, struct c_expr *); static struct c_expr c_parser_cast_expression (c_parser *, struct c_expr *); static struct c_expr c_parser_unary_expression (c_parser *); static struct c_expr c_parser_sizeof_expression (c_parser *); static struct c_expr c_parser_alignof_expression (c_parser *); static struct c_expr c_parser_postfix_expression (c_parser *); static struct c_expr c_parser_postfix_expression_after_paren_type (c_parser *, struct c_type_name *); static struct c_expr c_parser_postfix_expression_after_primary (c_parser *, struct c_expr); static struct c_expr c_parser_expression (c_parser *); static struct c_expr c_parser_expression_conv (c_parser *); static tree c_parser_expr_list (c_parser *, unsigned char); static void c_parser_omp_construct (c_parser *); static void c_parser_omp_threadprivate (c_parser *); static void c_parser_omp_barrier (c_parser *); static void c_parser_omp_flush (c_parser *); enum pragma_context { pragma_external, pragma_stmt, pragma_compound }; static unsigned char c_parser_pragma (c_parser *, enum pragma_context); static void c_parser_objc_class_definition (c_parser *); static void c_parser_objc_class_instance_variables (c_parser *); static void c_parser_objc_class_declaration (c_parser *); static void c_parser_objc_alias_declaration (c_parser *); static void c_parser_objc_protocol_definition (c_parser *); static enum tree_code c_parser_objc_method_type (c_parser *); static void c_parser_objc_method_definition (c_parser *); static void c_parser_objc_methodprotolist (c_parser *); static void c_parser_objc_methodproto (c_parser *); static tree c_parser_objc_method_decl (c_parser *); static tree c_parser_objc_type_name (c_parser *); static tree c_parser_objc_protocol_refs (c_parser *); static void c_parser_objc_try_catch_statement (c_parser *); static void c_parser_objc_synchronized_statement (c_parser *); static tree c_parser_objc_selector (c_parser *); static tree c_parser_objc_selector_arg (c_parser *); static tree c_parser_objc_receiver (c_parser *); static tree c_parser_objc_message_args (c_parser *); static tree c_parser_objc_keywordexpr (c_parser *); # 1097 "../../GCC/gcc/c-parser.c" static void c_parser_translation_unit (c_parser *parser) { if (c_parser_next_token_is (parser, CPP_EOF)) { if (pedantic) pedwarn ("ISO C forbids an empty source file"); } else { void *obstack_position = __extension__ ({ struct obstack *__h = (&parser_obstack); __extension__ ({ struct obstack *__o = (__h); int __len = ((0)); if (__o->chunk_limit - __o->next_free < __len) _obstack_newchunk (__o, __len); ((__o)->next_free += (__len)); (void) 0; }); __extension__ ({ struct obstack *__o1 = (__h); void *value; value = (void *) __o1->object_base; if (__o1->next_free == value) __o1->maybe_empty_object = 1; __o1->next_free = (((((__o1->next_free) - (char *) 0)+__o1->alignment_mask) & ~ (__o1->alignment_mask)) + (char *) 0); if (__o1->next_free - (char *)__o1->chunk > __o1->chunk_limit - (char *)__o1->chunk) __o1->next_free = __o1->chunk_limit; __o1->object_base = __o1->next_free; value; }); }); do { ggc_collect (); c_parser_external_declaration (parser); __extension__ ({ struct obstack *__o = (&parser_obstack); void *__obj = (void *) (obstack_position); if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) __o->next_free = __o->object_base = (char *) __obj; else (obstack_free) (__o, __obj); }); } while (c_parser_next_token_is_not (parser, CPP_EOF)); } } # 1142 "../../GCC/gcc/c-parser.c" static void c_parser_external_declaration (c_parser *parser) { int ext; switch (c_parser_peek_token (parser)->type) { case ((enum cpp_ttype) (N_TTYPES + 1)): switch (c_parser_peek_token (parser)->keyword) { case RID_EXTENSION: ext = disable_extension_diagnostics (); c_parser_consume_token (parser); c_parser_external_declaration (parser); restore_extension_diagnostics (ext); break; case RID_ASM: c_parser_asm_definition (parser); break; case RID_AT_INTERFACE: case RID_AT_IMPLEMENTATION: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1162, __FUNCTION__), 0 : 0)); c_parser_objc_class_definition (parser); break; case RID_AT_CLASS: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1166, __FUNCTION__), 0 : 0)); c_parser_objc_class_declaration (parser); break; case RID_AT_ALIAS: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1170, __FUNCTION__), 0 : 0)); c_parser_objc_alias_declaration (parser); break; case RID_AT_PROTOCOL: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1174, __FUNCTION__), 0 : 0)); c_parser_objc_protocol_definition (parser); break; case RID_AT_END: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1178, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); objc_finish_implementation (); break; default: goto decl_or_fndef; } break; case CPP_SEMICOLON: if (pedantic) pedwarn ("ISO C does not allow extra %<;%> outside of a function"); c_parser_consume_token (parser); break; case CPP_PRAGMA: c_parser_pragma (parser, pragma_external); break; case CPP_PLUS: case CPP_MINUS: if ((c_language & clk_objc)) { c_parser_objc_method_definition (parser); break; } default: decl_or_fndef: c_parser_declaration_or_fndef (parser, 1, 1, 0, 1); break; } } # 1271 "../../GCC/gcc/c-parser.c" static void c_parser_declaration_or_fndef (c_parser *parser, unsigned char fndef_ok, unsigned char empty_ok, unsigned char nested, unsigned char start_attr_ok) { struct c_declspecs *specs; tree prefix_attrs; tree all_prefix_attrs; unsigned char diagnosed_no_specs = 0; specs = build_null_declspecs (); c_parser_declspecs (parser, specs, 1, 1, start_attr_ok); if (parser->error) { c_parser_skip_to_end_of_block_or_statement (parser); return; } if (nested && !specs->declspecs_seen_p) { c_parser_error (parser, "expected declaration specifiers"); c_parser_skip_to_end_of_block_or_statement (parser); return; } finish_declspecs (specs); if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { if (empty_ok) shadow_tag (specs); else { shadow_tag_warned (specs, 1); pedwarn ("empty declaration"); } c_parser_consume_token (parser); return; } pending_xref_error (); prefix_attrs = specs->attrs; all_prefix_attrs = prefix_attrs; specs->attrs = (tree) ((void *)0); while (1) { struct c_declarator *declarator; unsigned char dummy = 0; tree fnbody; declarator = c_parser_declarator (parser, specs->type_seen_p, C_DTR_NORMAL, &dummy); if (declarator == ((void *)0)) { c_parser_skip_to_end_of_block_or_statement (parser); return; } if (c_parser_next_token_is (parser, CPP_EQ) || c_parser_next_token_is (parser, CPP_COMMA) || c_parser_next_token_is (parser, CPP_SEMICOLON) || c_parser_next_token_is_keyword (parser, RID_ASM) || c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) { tree asm_name = (tree) ((void *)0); tree postfix_attrs = (tree) ((void *)0); if (!diagnosed_no_specs && !specs->declspecs_seen_p) { diagnosed_no_specs = 1; pedwarn ("data definition has no type or storage class"); } fndef_ok = 0; if (c_parser_next_token_is_keyword (parser, RID_ASM)) asm_name = c_parser_simple_asm_expr (parser); if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) postfix_attrs = c_parser_attributes (parser); if (c_parser_next_token_is (parser, CPP_EQ)) { tree d; struct c_expr init; c_parser_consume_token (parser); d = start_decl (declarator, specs, 1, chainon (postfix_attrs, all_prefix_attrs)); if (!d) d = global_trees[TI_ERROR_MARK]; start_init (d, asm_name, global_bindings_p ()); init = c_parser_initializer (parser); finish_init (); if (d != global_trees[TI_ERROR_MARK]) { maybe_warn_string_init (((d)->common.type), init); finish_decl (d, init.value, asm_name); } } else { tree d = start_decl (declarator, specs, 0, chainon (postfix_attrs, all_prefix_attrs)); if (d) finish_decl (d, (tree) ((void *)0), asm_name); } if (c_parser_next_token_is (parser, CPP_COMMA)) { c_parser_consume_token (parser); if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) all_prefix_attrs = chainon (c_parser_attributes (parser), prefix_attrs); else all_prefix_attrs = prefix_attrs; continue; } else if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { c_parser_consume_token (parser); return; } else { c_parser_error (parser, "expected %<,%> or %<;%>"); c_parser_skip_to_end_of_block_or_statement (parser); return; } } else if (!fndef_ok) { c_parser_error (parser, "expected %<=%>, %<,%>, %<;%>, " "%<asm%> or %<__attribute__%>"); c_parser_skip_to_end_of_block_or_statement (parser); return; } if (nested) { if (pedantic) pedwarn ("ISO C forbids nested functions"); push_function_context (); } if (!start_function (specs, declarator, all_prefix_attrs)) { c_parser_error (parser, "expected %<=%>, %<,%>, %<;%>, %<asm%> " "or %<__attribute__%>"); if (nested) pop_function_context (); break; } # 1433 "../../GCC/gcc/c-parser.c" while (c_parser_next_token_is_not (parser, CPP_EOF) && c_parser_next_token_is_not (parser, CPP_OPEN_BRACE)) c_parser_declaration_or_fndef (parser, 0, 0, 1, 0); (__extension__ ({ const tree __t = (current_function_decl); if (tree_contains_struct[((enum tree_code) (__t)->common.code)][(TS_DECL_MINIMAL)] != 1) tree_contains_struct_check_failed (__t, (TS_DECL_MINIMAL), "../../GCC/gcc/c-parser.c", 1436, __FUNCTION__); __t; })->decl_minimal.locus) = c_parser_peek_token (parser)->location; store_parm_decls (); fnbody = c_parser_compound_statement (parser); if (nested) { tree decl = current_function_decl; add_stmt (fnbody); finish_function (); pop_function_context (); add_stmt (build_stmt (DECL_EXPR, decl)); } else { add_stmt (fnbody); finish_function (); } break; } } # 1464 "../../GCC/gcc/c-parser.c" static void c_parser_asm_definition (c_parser *parser) { tree asm_str = c_parser_simple_asm_expr (parser); if (asm_str) cgraph_add_asm_node (asm_str); c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } # 1551 "../../GCC/gcc/c-parser.c" static void c_parser_declspecs (c_parser *parser, struct c_declspecs *specs, unsigned char scspec_ok, unsigned char typespec_ok, unsigned char start_attr_ok) { unsigned char attrs_ok = start_attr_ok; unsigned char seen_type = specs->type_seen_p; while (c_parser_next_token_is (parser, CPP_NAME) || c_parser_next_token_is (parser, ((enum cpp_ttype) (N_TTYPES + 1))) || ((c_language & clk_objc) && c_parser_next_token_is (parser, CPP_LESS))) { struct c_typespec t; tree attrs; if (c_parser_next_token_is (parser, CPP_NAME)) { tree value = c_parser_peek_token (parser)->value; c_id_kind kind = c_parser_peek_token (parser)->id_kind; if (!typespec_ok || seen_type || (kind != C_ID_TYPENAME && kind != C_ID_CLASSNAME)) break; c_parser_consume_token (parser); seen_type = 1; attrs_ok = 1; if (kind == C_ID_TYPENAME && (!(c_language & clk_objc) || c_parser_next_token_is_not (parser, CPP_LESS))) { t.kind = ctsk_typedef; t.spec = lookup_name (value); } else { tree proto = (tree) ((void *)0); ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1588, __FUNCTION__), 0 : 0)); t.kind = ctsk_objc; if (c_parser_next_token_is (parser, CPP_LESS)) proto = c_parser_objc_protocol_refs (parser); t.spec = objc_get_protocol_qualified_type (value, proto); } declspecs_add_type (specs, t); continue; } if (c_parser_next_token_is (parser, CPP_LESS)) { tree proto; ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1602, __FUNCTION__), 0 : 0)); if (!typespec_ok || seen_type) break; proto = c_parser_objc_protocol_refs (parser); t.kind = ctsk_objc; t.spec = objc_get_protocol_qualified_type ((tree) ((void *)0), proto); declspecs_add_type (specs, t); continue; } ((void)(!(c_parser_next_token_is (parser, ((enum cpp_ttype) (N_TTYPES + 1)))) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1611, __FUNCTION__), 0 : 0)); switch (c_parser_peek_token (parser)->keyword) { case RID_STATIC: case RID_EXTERN: case RID_REGISTER: case RID_TYPEDEF: case RID_INLINE: case RID_AUTO: case RID_THREAD: if (!scspec_ok) goto out; attrs_ok = 1; declspecs_add_scspec (specs, c_parser_peek_token (parser)->value); c_parser_consume_token (parser); break; case RID_UNSIGNED: case RID_LONG: case RID_SHORT: case RID_SIGNED: case RID_COMPLEX: case RID_INT: case RID_CHAR: case RID_FLOAT: case RID_DOUBLE: case RID_VOID: case RID_DFLOAT32: case RID_DFLOAT64: case RID_DFLOAT128: case RID_BOOL: case RID_CbC_CODE: if (!typespec_ok) goto out; attrs_ok = 1; seen_type = 1; do { if ((c_language & clk_objc)) objc_need_raw_identifier = 1; } while (0); t.kind = ctsk_resword; t.spec = c_parser_peek_token (parser)->value; declspecs_add_type (specs, t); c_parser_consume_token (parser); break; case RID_ENUM: if (!typespec_ok) goto out; attrs_ok = 1; seen_type = 1; t = c_parser_enum_specifier (parser); declspecs_add_type (specs, t); break; case RID_STRUCT: case RID_UNION: if (!typespec_ok) goto out; attrs_ok = 1; seen_type = 1; t = c_parser_struct_or_union_specifier (parser); declspecs_add_type (specs, t); break; case RID_TYPEOF: if (!typespec_ok || seen_type) goto out; attrs_ok = 1; seen_type = 1; t = c_parser_typeof_specifier (parser); declspecs_add_type (specs, t); break; case RID_CONST: case RID_VOLATILE: case RID_RESTRICT: attrs_ok = 1; declspecs_add_qual (specs, c_parser_peek_token (parser)->value); c_parser_consume_token (parser); break; case RID_ATTRIBUTE: if (!attrs_ok) goto out; attrs = c_parser_attributes (parser); declspecs_add_attrs (specs, attrs); break; default: goto out; } } out: ; } # 1727 "../../GCC/gcc/c-parser.c" static struct c_typespec c_parser_enum_specifier (c_parser *parser) { struct c_typespec ret; tree attrs; tree ident = (tree) ((void *)0); ((void)(!(c_parser_next_token_is_keyword (parser, RID_ENUM)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1733, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); attrs = c_parser_attributes (parser); if (c_parser_next_token_is (parser, CPP_NAME)) { ident = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); } if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) { tree type = start_enum (ident); tree postfix_attrs; tree values = (tree) ((void *)0); c_parser_consume_token (parser); while (1) { tree enum_id; tree enum_value; tree enum_decl; unsigned char seen_comma; if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, ((void *)0)); values = global_trees[TI_ERROR_MARK]; break; } enum_id = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_EQ)) { c_parser_consume_token (parser); enum_value = c_parser_expr_no_commas (parser, ((void *)0)).value; } else enum_value = (tree) ((void *)0); enum_decl = build_enumerator (enum_id, enum_value); ((enum_decl)->common.chain) = values; values = enum_decl; seen_comma = 0; if (c_parser_next_token_is (parser, CPP_COMMA)) { seen_comma = 1; c_parser_consume_token (parser); } if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) { if (seen_comma && pedantic && !flag_isoc99) pedwarn ("comma at end of enumerator list"); c_parser_consume_token (parser); break; } if (!seen_comma) { c_parser_error (parser, "expected %<,%> or %<}%>"); c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, ((void *)0)); values = global_trees[TI_ERROR_MARK]; break; } } postfix_attrs = c_parser_attributes (parser); ret.spec = finish_enum (type, nreverse (values), chainon (attrs, postfix_attrs)); ret.kind = ctsk_tagdef; return ret; } else if (!ident) { c_parser_error (parser, "expected %<{%>"); ret.spec = global_trees[TI_ERROR_MARK]; ret.kind = ctsk_tagref; return ret; } ret = parser_xref_tag (ENUMERAL_TYPE, ident); if (pedantic && !((__extension__ ({ const tree __t = (ret.spec); if (tree_code_type[(int) (((enum tree_code) (__t)->common.code))] != (tcc_type)) tree_class_check_failed (__t, (tcc_type), "../../GCC/gcc/c-parser.c", 1812, __FUNCTION__); __t; })->type.size) != (tree) ((void *)0))) pedwarn ("ISO C forbids forward references to %<enum%> types"); return ret; } # 1856 "../../GCC/gcc/c-parser.c" static struct c_typespec c_parser_struct_or_union_specifier (c_parser *parser) { struct c_typespec ret; tree attrs; tree ident = (tree) ((void *)0); enum tree_code code; switch (c_parser_peek_token (parser)->keyword) { case RID_STRUCT: code = RECORD_TYPE; break; case RID_UNION: code = UNION_TYPE; break; default: (fancy_abort ("../../GCC/gcc/c-parser.c", 1872, __FUNCTION__)); } c_parser_consume_token (parser); attrs = c_parser_attributes (parser); if (c_parser_next_token_is (parser, CPP_NAME)) { ident = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); } if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) { tree type = start_struct (code, ident); tree postfix_attrs; # 1897 "../../GCC/gcc/c-parser.c" tree contents = (tree) ((void *)0); c_parser_consume_token (parser); if (c_parser_next_token_is_keyword (parser, RID_AT_DEFS)) { tree name; ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 1904, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) goto end_at_defs; if (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_token (parser)->id_kind == C_ID_CLASSNAME) { name = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); } else { c_parser_error (parser, "expected class name"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); goto end_at_defs; } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); contents = nreverse (objc_get_class_ivars (name)); } end_at_defs: while (1) { tree decls; if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); c_parser_consume_token (parser); continue; } if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) { c_parser_consume_token (parser); break; } if (c_parser_next_token_is (parser, CPP_PRAGMA)) { c_parser_pragma (parser, pragma_external); continue; } decls = c_parser_struct_declaration (parser); contents = chainon (decls, contents); if (c_parser_next_token_is (parser, CPP_SEMICOLON)) c_parser_consume_token (parser); else { if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) pedwarn ("no semicolon at end of struct or union"); else { c_parser_error (parser, "expected %<;%>"); c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, ((void *)0)); break; } } } postfix_attrs = c_parser_attributes (parser); ret.spec = finish_struct (type, nreverse (contents), chainon (attrs, postfix_attrs)); ret.kind = ctsk_tagdef; return ret; } else if (!ident) { c_parser_error (parser, "expected %<{%>"); ret.spec = global_trees[TI_ERROR_MARK]; ret.kind = ctsk_tagref; return ret; } ret = parser_xref_tag (code, ident); return ret; } # 2020 "../../GCC/gcc/c-parser.c" static tree c_parser_struct_declaration (c_parser *parser) { struct c_declspecs *specs; tree prefix_attrs; tree all_prefix_attrs; tree decls; if (c_parser_next_token_is_keyword (parser, RID_EXTENSION)) { int ext; tree decl; ext = disable_extension_diagnostics (); c_parser_consume_token (parser); decl = c_parser_struct_declaration (parser); restore_extension_diagnostics (ext); return decl; } specs = build_null_declspecs (); c_parser_declspecs (parser, specs, 0, 1, 1); if (parser->error) return (tree) ((void *)0); if (!specs->declspecs_seen_p) { c_parser_error (parser, "expected specifier-qualifier-list"); return (tree) ((void *)0); } finish_declspecs (specs); if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { tree ret; if (!specs->type_seen_p) { if (pedantic) pedwarn ("ISO C forbids member declarations with no members"); shadow_tag_warned (specs, pedantic); ret = (tree) ((void *)0); } else { ret = grokfield (build_id_declarator ((tree) ((void *)0)), specs, (tree) ((void *)0)); } return ret; } pending_xref_error (); prefix_attrs = specs->attrs; all_prefix_attrs = prefix_attrs; specs->attrs = (tree) ((void *)0); decls = (tree) ((void *)0); while (1) { struct c_declarator *declarator; unsigned char dummy = 0; if (c_parser_next_token_is (parser, CPP_COLON)) declarator = build_id_declarator ((tree) ((void *)0)); else declarator = c_parser_declarator (parser, specs->type_seen_p, C_DTR_NORMAL, &dummy); if (declarator == ((void *)0)) { c_parser_skip_to_end_of_block_or_statement (parser); break; } if (c_parser_next_token_is (parser, CPP_COLON) || c_parser_next_token_is (parser, CPP_COMMA) || c_parser_next_token_is (parser, CPP_SEMICOLON) || c_parser_next_token_is (parser, CPP_CLOSE_BRACE) || c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) { tree postfix_attrs = (tree) ((void *)0); tree width = (tree) ((void *)0); tree d; if (c_parser_next_token_is (parser, CPP_COLON)) { c_parser_consume_token (parser); width = c_parser_expr_no_commas (parser, ((void *)0)).value; } if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) postfix_attrs = c_parser_attributes (parser); d = grokfield (declarator, specs, width); decl_attributes (&d, chainon (postfix_attrs, all_prefix_attrs), 0); ((d)->common.chain) = decls; decls = d; if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) all_prefix_attrs = chainon (c_parser_attributes (parser), prefix_attrs); else all_prefix_attrs = prefix_attrs; if (c_parser_next_token_is (parser, CPP_COMMA)) c_parser_consume_token (parser); else if (c_parser_next_token_is (parser, CPP_SEMICOLON) || c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) { break; } else { c_parser_error (parser, "expected %<,%>, %<;%> or %<}%>"); break; } } else { c_parser_error (parser, "expected %<:%>, %<,%>, %<;%>, %<}%> or " "%<__attribute__%>"); break; } } return decls; } # 2144 "../../GCC/gcc/c-parser.c" static struct c_typespec c_parser_typeof_specifier (c_parser *parser) { struct c_typespec ret; ret.kind = ctsk_typeof; ret.spec = global_trees[TI_ERROR_MARK]; ((void)(!(c_parser_next_token_is_keyword (parser, RID_TYPEOF)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 2150, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); skip_evaluation++; in_typeof++; if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { skip_evaluation--; in_typeof--; return ret; } if (c_parser_next_token_starts_typename (parser)) { struct c_type_name *type = c_parser_type_name (parser); skip_evaluation--; in_typeof--; if (type != ((void *)0)) { ret.spec = groktypename (type); pop_maybe_used (variably_modified_type_p (ret.spec, (tree) ((void *)0))); } } else { unsigned char was_vm; struct c_expr expr = c_parser_expression (parser); skip_evaluation--; in_typeof--; if (((enum tree_code) (expr.value)->common.code) == COMPONENT_REF && ((__extension__ ({ const tree __t = (__extension__ ({ const tree __t = (__extension__ (*({const tree __t = __extension__ ({ const tree __t = (expr.value); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 2178, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 2178, __FUNCTION__); &__t->exp.operands[__i]; }))); if (((enum tree_code) (__t)->common.code) != (FIELD_DECL)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 2178, __FUNCTION__, (FIELD_DECL), 0); __t; })); if (tree_contains_struct[((enum tree_code) (__t)->common.code)][(TS_DECL_COMMON)] != 1) tree_contains_struct_check_failed (__t, (TS_DECL_COMMON), "../../GCC/gcc/c-parser.c", 2178, __FUNCTION__); __t; })->decl_common.lang_flag_4) == 1)) error ("%<typeof%> applied to a bit-field"); ret.spec = ((expr.value)->common.type); was_vm = variably_modified_type_p (ret.spec, (tree) ((void *)0)); if (!skip_evaluation && was_vm) { tree e = expr.value; if ((tree_code_type[(int) (((enum tree_code) (e)->common.code))] == tcc_declaration) || (tree_code_type[(int) (((enum tree_code) (e)->common.code))] == tcc_constant)) e = build1_stat (NOP_EXPR,global_trees[TI_VOID_TYPE],e ); if (((tree_code_type[(int) (((enum tree_code) (e)->common.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (e)->common.code))]) <= tcc_expression)) annotate_with_locus (e, input_location); add_stmt (e); } pop_maybe_used (was_vm); } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return ret; } # 2282 "../../GCC/gcc/c-parser.c" static struct c_declarator * c_parser_declarator (c_parser *parser, unsigned char type_seen_p, c_dtr_syn kind, unsigned char *seen_id) { if (c_parser_next_token_is (parser, CPP_MULT)) { struct c_declspecs *quals_attrs = build_null_declspecs (); struct c_declarator *inner; c_parser_consume_token (parser); c_parser_declspecs (parser, quals_attrs, 0, 0, 1); inner = c_parser_declarator (parser, type_seen_p, kind, seen_id); if (inner == ((void *)0)) return ((void *)0); else return make_pointer_declarator (quals_attrs, inner); } return c_parser_direct_declarator (parser, type_seen_p, kind, seen_id); } static struct c_declarator * c_parser_direct_declarator (c_parser *parser, unsigned char type_seen_p, c_dtr_syn kind, unsigned char *seen_id) { # 2345 "../../GCC/gcc/c-parser.c" if (kind != C_DTR_ABSTRACT && c_parser_next_token_is (parser, CPP_NAME) && ((type_seen_p && c_parser_peek_token (parser)->id_kind == C_ID_TYPENAME) || c_parser_peek_token (parser)->id_kind == C_ID_ID)) { struct c_declarator *inner = build_id_declarator (c_parser_peek_token (parser)->value); *seen_id = 1; inner->id_loc = c_parser_peek_token (parser)->location; c_parser_consume_token (parser); return c_parser_direct_declarator_inner (parser, *seen_id, inner); } if (kind != C_DTR_NORMAL && c_parser_next_token_is (parser, CPP_OPEN_SQUARE)) { struct c_declarator *inner = build_id_declarator ((tree) ((void *)0)); return c_parser_direct_declarator_inner (parser, *seen_id, inner); } if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) { tree attrs; struct c_declarator *inner; c_parser_consume_token (parser); attrs = c_parser_attributes (parser); if (kind != C_DTR_NORMAL && (c_parser_next_token_starts_declspecs (parser) || c_parser_next_token_is (parser, CPP_CLOSE_PAREN))) { struct c_arg_info *args = c_parser_parms_declarator (parser, kind == C_DTR_NORMAL, attrs); if (args == ((void *)0)) return ((void *)0); else { inner = build_function_declarator (args, build_id_declarator ((tree) ((void *)0))); return c_parser_direct_declarator_inner (parser, *seen_id, inner); } } inner = c_parser_declarator (parser, type_seen_p, kind, seen_id); if (inner != ((void *)0) && attrs != ((void *)0)) inner = build_attrs_declarator (attrs, inner); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { c_parser_consume_token (parser); if (inner == ((void *)0)) return ((void *)0); else return c_parser_direct_declarator_inner (parser, *seen_id, inner); } else { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return ((void *)0); } } else { if (kind == C_DTR_NORMAL) { c_parser_error (parser, "expected identifier or %<(%>"); return ((void *)0); } else return build_id_declarator ((tree) ((void *)0)); } } static struct c_declarator * c_parser_direct_declarator_inner (c_parser *parser, unsigned char id_present, struct c_declarator *inner) { if (c_parser_next_token_is (parser, CPP_OPEN_SQUARE)) { struct c_declarator *declarator; struct c_declspecs *quals_attrs = build_null_declspecs (); unsigned char static_seen; unsigned char star_seen; tree dimen; c_parser_consume_token (parser); c_parser_declspecs (parser, quals_attrs, 0, 0, 1); static_seen = c_parser_next_token_is_keyword (parser, RID_STATIC); if (static_seen) c_parser_consume_token (parser); if (static_seen && !quals_attrs->declspecs_seen_p) c_parser_declspecs (parser, quals_attrs, 0, 0, 1); if (!quals_attrs->declspecs_seen_p) quals_attrs = ((void *)0); if (static_seen) { star_seen = 0; dimen = c_parser_expr_no_commas (parser, ((void *)0)).value; } else { if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) { dimen = (tree) ((void *)0); star_seen = 0; } else if (c_parser_next_token_is (parser, CPP_MULT)) { if (c_parser_peek_2nd_token (parser)->type == CPP_CLOSE_SQUARE) { dimen = (tree) ((void *)0); star_seen = 1; c_parser_consume_token (parser); } else { star_seen = 0; dimen = c_parser_expr_no_commas (parser, ((void *)0)).value; } } else { star_seen = 0; dimen = c_parser_expr_no_commas (parser, ((void *)0)).value; } } if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) c_parser_consume_token (parser); else { c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); return ((void *)0); } declarator = build_array_declarator (dimen, quals_attrs, static_seen, star_seen); if (declarator == ((void *)0)) return ((void *)0); inner = set_array_declarator_inner (declarator, inner, !id_present); return c_parser_direct_declarator_inner (parser, id_present, inner); } else if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) { tree attrs; struct c_arg_info *args; c_parser_consume_token (parser); attrs = c_parser_attributes (parser); args = c_parser_parms_declarator (parser, id_present, attrs); if (args == ((void *)0)) return ((void *)0); else { inner = build_function_declarator (args, inner); return c_parser_direct_declarator_inner (parser, id_present, inner); } } return inner; } static struct c_arg_info * c_parser_parms_declarator (c_parser *parser, unsigned char id_list_ok, tree attrs) { push_scope (); declare_parm_level (); if (id_list_ok && !attrs && c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_token (parser)->id_kind == C_ID_ID) { tree list = (tree) ((void *)0), *nextp = &list; while (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_token (parser)->id_kind == C_ID_ID) { *nextp = build_tree_list_stat((tree) ((void *)0),c_parser_peek_token (parser)->value ); nextp = & ((*nextp)->common.chain); c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_COMMA)) break; c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { c_parser_error (parser, "expected identifier"); break; } } if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { struct c_arg_info *ret = ((struct c_arg_info *) __extension__ ({ struct obstack *__h = ((&parser_obstack)); __extension__ ({ struct obstack *__o = (__h); int __len = ((sizeof (struct c_arg_info))); if (__o->chunk_limit - __o->next_free < __len) _obstack_newchunk (__o, __len); ((__o)->next_free += (__len)); (void) 0; }); __extension__ ({ struct obstack *__o1 = (__h); void *value; value = (void *) __o1->object_base; if (__o1->next_free == value) __o1->maybe_empty_object = 1; __o1->next_free = (((((__o1->next_free) - (char *) 0)+__o1->alignment_mask) & ~ (__o1->alignment_mask)) + (char *) 0); if (__o1->next_free - (char *)__o1->chunk > __o1->chunk_limit - (char *)__o1->chunk) __o1->next_free = __o1->chunk_limit; __o1->object_base = __o1->next_free; value; }); })); ret->parms = 0; ret->tags = 0; ret->types = list; ret->others = 0; ret->pending_sizes = 0; ret->had_vla_unspec = 0; c_parser_consume_token (parser); pop_scope (); return ret; } else { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); pop_scope (); return ((void *)0); } } else { struct c_arg_info *ret = c_parser_parms_list_declarator (parser, attrs); pop_scope (); return ret; } } static struct c_arg_info * c_parser_parms_list_declarator (c_parser *parser, tree attrs) { unsigned char good_parm = 0; if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { struct c_arg_info *ret = ((struct c_arg_info *) __extension__ ({ struct obstack *__h = ((&parser_obstack)); __extension__ ({ struct obstack *__o = (__h); int __len = ((sizeof (struct c_arg_info))); if (__o->chunk_limit - __o->next_free < __len) _obstack_newchunk (__o, __len); ((__o)->next_free += (__len)); (void) 0; }); __extension__ ({ struct obstack *__o1 = (__h); void *value; value = (void *) __o1->object_base; if (__o1->next_free == value) __o1->maybe_empty_object = 1; __o1->next_free = (((((__o1->next_free) - (char *) 0)+__o1->alignment_mask) & ~ (__o1->alignment_mask)) + (char *) 0); if (__o1->next_free - (char *)__o1->chunk > __o1->chunk_limit - (char *)__o1->chunk) __o1->next_free = __o1->chunk_limit; __o1->object_base = __o1->next_free; value; }); })); ret->parms = 0; ret->tags = 0; ret->types = 0; ret->others = 0; ret->pending_sizes = 0; ret->had_vla_unspec = 0; c_parser_consume_token (parser); return ret; } if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) { struct c_arg_info *ret = ((struct c_arg_info *) __extension__ ({ struct obstack *__h = ((&parser_obstack)); __extension__ ({ struct obstack *__o = (__h); int __len = ((sizeof (struct c_arg_info))); if (__o->chunk_limit - __o->next_free < __len) _obstack_newchunk (__o, __len); ((__o)->next_free += (__len)); (void) 0; }); __extension__ ({ struct obstack *__o1 = (__h); void *value; value = (void *) __o1->object_base; if (__o1->next_free == value) __o1->maybe_empty_object = 1; __o1->next_free = (((((__o1->next_free) - (char *) 0)+__o1->alignment_mask) & ~ (__o1->alignment_mask)) + (char *) 0); if (__o1->next_free - (char *)__o1->chunk > __o1->chunk_limit - (char *)__o1->chunk) __o1->next_free = __o1->chunk_limit; __o1->object_base = __o1->next_free; value; }); })); ret->parms = 0; ret->tags = 0; ret->others = 0; ret->pending_sizes = 0; ret->had_vla_unspec = 0; ret->types = global_trees[TI_ERROR_MARK]; error ("ISO C requires a named argument before %<...%>"); c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { c_parser_consume_token (parser); return ret; } else { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return ((void *)0); } } while (1) { struct c_parm *parm = c_parser_parameter_declaration (parser, attrs); attrs = (tree) ((void *)0); if (parm != ((void *)0)) { good_parm = 1; push_parm_decl (parm); } if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { tree new_attrs; c_parser_consume_token (parser); mark_forward_parm_decls (); new_attrs = c_parser_attributes (parser); return c_parser_parms_list_declarator (parser, new_attrs); } if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { c_parser_consume_token (parser); if (good_parm) return get_parm_info (0); else { struct c_arg_info *ret = ((struct c_arg_info *) __extension__ ({ struct obstack *__h = ((&parser_obstack)); __extension__ ({ struct obstack *__o = (__h); int __len = ((sizeof (struct c_arg_info))); if (__o->chunk_limit - __o->next_free < __len) _obstack_newchunk (__o, __len); ((__o)->next_free += (__len)); (void) 0; }); __extension__ ({ struct obstack *__o1 = (__h); void *value; value = (void *) __o1->object_base; if (__o1->next_free == value) __o1->maybe_empty_object = 1; __o1->next_free = (((((__o1->next_free) - (char *) 0)+__o1->alignment_mask) & ~ (__o1->alignment_mask)) + (char *) 0); if (__o1->next_free - (char *)__o1->chunk > __o1->chunk_limit - (char *)__o1->chunk) __o1->next_free = __o1->chunk_limit; __o1->object_base = __o1->next_free; value; }); })); ret->parms = 0; ret->tags = 0; ret->types = 0; ret->others = 0; ret->pending_sizes = 0; ret->had_vla_unspec = 0; return ret; } } if (!c_parser_require (parser, CPP_COMMA, "expected %<;%>, %<,%> or %<)%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return ((void *)0); } if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) { c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { c_parser_consume_token (parser); if (good_parm) return get_parm_info (1); else { struct c_arg_info *ret = ((struct c_arg_info *) __extension__ ({ struct obstack *__h = ((&parser_obstack)); __extension__ ({ struct obstack *__o = (__h); int __len = ((sizeof (struct c_arg_info))); if (__o->chunk_limit - __o->next_free < __len) _obstack_newchunk (__o, __len); ((__o)->next_free += (__len)); (void) 0; }); __extension__ ({ struct obstack *__o1 = (__h); void *value; value = (void *) __o1->object_base; if (__o1->next_free == value) __o1->maybe_empty_object = 1; __o1->next_free = (((((__o1->next_free) - (char *) 0)+__o1->alignment_mask) & ~ (__o1->alignment_mask)) + (char *) 0); if (__o1->next_free - (char *)__o1->chunk > __o1->chunk_limit - (char *)__o1->chunk) __o1->next_free = __o1->chunk_limit; __o1->object_base = __o1->next_free; value; }); })); ret->parms = 0; ret->tags = 0; ret->types = 0; ret->others = 0; ret->pending_sizes = 0; ret->had_vla_unspec = 0; return ret; } } else { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return ((void *)0); } } } } static struct c_parm * c_parser_parameter_declaration (c_parser *parser, tree attrs) { struct c_declspecs *specs; struct c_declarator *declarator; tree prefix_attrs; tree postfix_attrs = (tree) ((void *)0); unsigned char dummy = 0; if (!c_parser_next_token_starts_declspecs (parser)) { c_parser_error (parser, "expected declaration specifiers or %<...%>"); c_parser_skip_to_end_of_parameter (parser); return ((void *)0); } specs = build_null_declspecs (); if (attrs) { declspecs_add_attrs (specs, attrs); attrs = (tree) ((void *)0); } c_parser_declspecs (parser, specs, 1, 1, 1); finish_declspecs (specs); pending_xref_error (); prefix_attrs = specs->attrs; specs->attrs = (tree) ((void *)0); declarator = c_parser_declarator (parser, specs->type_seen_p, C_DTR_PARM, &dummy); if (declarator == ((void *)0)) { c_parser_skip_until_found (parser, CPP_COMMA, ((void *)0)); return ((void *)0); } if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) postfix_attrs = c_parser_attributes (parser); return build_c_parm (specs, chainon (postfix_attrs, prefix_attrs), declarator); } # 2762 "../../GCC/gcc/c-parser.c" static tree c_parser_asm_string_literal (c_parser *parser) { tree str; if (c_parser_next_token_is (parser, CPP_STRING)) { str = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); } else if (c_parser_next_token_is (parser, CPP_WSTRING)) { error ("wide string literal in %<asm%>"); str = build_string (1, ""); c_parser_consume_token (parser); } else { c_parser_error (parser, "expected string literal"); str = (tree) ((void *)0); } return str; } # 2793 "../../GCC/gcc/c-parser.c" static tree c_parser_simple_asm_expr (c_parser *parser) { tree str; ((void)(!(c_parser_next_token_is_keyword (parser, RID_ASM)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 2797, __FUNCTION__), 0 : 0)); c_lex_string_translate = 0; c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { c_lex_string_translate = 1; return (tree) ((void *)0); } str = c_parser_asm_string_literal (parser); c_lex_string_translate = 1; if (!c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return (tree) ((void *)0); } return str; } # 2844 "../../GCC/gcc/c-parser.c" static tree c_parser_attributes (c_parser *parser) { tree attrs = (tree) ((void *)0); while (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE)) { c_lex_string_translate = 0; c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { c_lex_string_translate = 1; return attrs; } if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { c_lex_string_translate = 1; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return attrs; } while (c_parser_next_token_is (parser, CPP_COMMA) || c_parser_next_token_is (parser, CPP_NAME) || c_parser_next_token_is (parser, ((enum cpp_ttype) (N_TTYPES + 1)))) { tree attr, attr_name, attr_args; if (c_parser_next_token_is (parser, CPP_COMMA)) { c_parser_consume_token (parser); continue; } if (c_parser_next_token_is (parser, ((enum cpp_ttype) (N_TTYPES + 1)))) { unsigned char ok; switch (c_parser_peek_token (parser)->keyword) { case RID_STATIC: case RID_UNSIGNED: case RID_LONG: case RID_CONST: case RID_EXTERN: case RID_REGISTER: case RID_TYPEDEF: case RID_SHORT: case RID_INLINE: case RID_VOLATILE: case RID_SIGNED: case RID_AUTO: case RID_RESTRICT: case RID_COMPLEX: case RID_THREAD: case RID_INT: case RID_CHAR: case RID_FLOAT: case RID_DOUBLE: case RID_VOID: case RID_DFLOAT32: case RID_DFLOAT64: case RID_DFLOAT128: case RID_BOOL: ok = 1; break; default: ok = 0; break; } if (!ok) break; } attr_name = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_OPEN_PAREN)) { attr = build_tree_list_stat(attr_name,(tree) ((void *)0) ); attrs = chainon (attrs, attr); continue; } c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_token (parser)->id_kind == C_ID_ID && ((c_parser_peek_2nd_token (parser)->type == CPP_COMMA) || (c_parser_peek_2nd_token (parser)->type == CPP_CLOSE_PAREN))) { tree arg1 = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) attr_args = build_tree_list_stat((tree) ((void *)0),arg1 ); else { c_parser_consume_token (parser); attr_args = tree_cons_stat ((tree) ((void *)0),arg1,c_parser_expr_list (parser, 0) ); } } else { if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) attr_args = (tree) ((void *)0); else attr_args = c_parser_expr_list (parser, 0); } attr = build_tree_list_stat(attr_name,attr_args ); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) c_parser_consume_token (parser); else { c_lex_string_translate = 1; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return attrs; } attrs = chainon (attrs, attr); } if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) c_parser_consume_token (parser); else { c_lex_string_translate = 1; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return attrs; } if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) c_parser_consume_token (parser); else { c_lex_string_translate = 1; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return attrs; } c_lex_string_translate = 1; } return attrs; } static struct c_type_name * c_parser_type_name (c_parser *parser) { struct c_declspecs *specs = build_null_declspecs (); struct c_declarator *declarator; struct c_type_name *ret; unsigned char dummy = 0; c_parser_declspecs (parser, specs, 0, 1, 1); if (!specs->declspecs_seen_p) { c_parser_error (parser, "expected specifier-qualifier-list"); return ((void *)0); } pending_xref_error (); finish_declspecs (specs); declarator = c_parser_declarator (parser, specs->type_seen_p, C_DTR_ABSTRACT, &dummy); if (declarator == ((void *)0)) return ((void *)0); ret = ((struct c_type_name *) __extension__ ({ struct obstack *__h = ((&parser_obstack)); __extension__ ({ struct obstack *__o = (__h); int __len = ((sizeof (struct c_type_name))); if (__o->chunk_limit - __o->next_free < __len) _obstack_newchunk (__o, __len); ((__o)->next_free += (__len)); (void) 0; }); __extension__ ({ struct obstack *__o1 = (__h); void *value; value = (void *) __o1->object_base; if (__o1->next_free == value) __o1->maybe_empty_object = 1; __o1->next_free = (((((__o1->next_free) - (char *) 0)+__o1->alignment_mask) & ~ (__o1->alignment_mask)) + (char *) 0); if (__o1->next_free - (char *)__o1->chunk > __o1->chunk_limit - (char *)__o1->chunk) __o1->next_free = __o1->chunk_limit; __o1->object_base = __o1->next_free; value; }); })); ret->specs = specs; ret->declarator = declarator; return ret; } # 3062 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_initializer (c_parser *parser) { if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) return c_parser_braced_init (parser, (tree) ((void *)0), 0); else { struct c_expr ret; ret = c_parser_expr_no_commas (parser, ((void *)0)); if (((enum tree_code) (ret.value)->common.code) != STRING_CST && ((enum tree_code) (ret.value)->common.code) != COMPOUND_LITERAL_EXPR) ret = default_function_array_conversion (ret); return ret; } } static struct c_expr c_parser_braced_init (c_parser *parser, tree type, unsigned char nested_p) { ((void)(!(c_parser_next_token_is (parser, CPP_OPEN_BRACE)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 3087, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (nested_p) push_init_level (0); else really_start_incremental_init (type); if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) { if (pedantic) pedwarn ("ISO C forbids empty initializer braces"); } else { while (1) { c_parser_initelt (parser); if (parser->error) break; if (c_parser_next_token_is (parser, CPP_COMMA)) c_parser_consume_token (parser); else break; if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) break; } } if (c_parser_next_token_is_not (parser, CPP_CLOSE_BRACE)) { struct c_expr ret; ret.value = global_trees[TI_ERROR_MARK]; ret.original_code = ERROR_MARK; c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, "expected %<}%>"); return ret; } c_parser_consume_token (parser); return pop_init_level (0); } static void c_parser_initelt (c_parser *parser) { if (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_2nd_token (parser)->type == CPP_COLON) { set_init_label (c_parser_peek_token (parser)->value); if (pedantic) pedwarn ("obsolete use of designated initializer with %<:%>"); c_parser_consume_token (parser); c_parser_consume_token (parser); } else { int des_seen = 0; while (c_parser_next_token_is (parser, CPP_OPEN_SQUARE) || c_parser_next_token_is (parser, CPP_DOT)) { int des_prev = des_seen; if (des_seen < 2) des_seen++; if (c_parser_next_token_is (parser, CPP_DOT)) { des_seen = 2; c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_NAME)) { set_init_label (c_parser_peek_token (parser)->value); c_parser_consume_token (parser); } else { struct c_expr init; init.value = global_trees[TI_ERROR_MARK]; init.original_code = ERROR_MARK; c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_COMMA, ((void *)0)); process_init_element (init); return; } } else { tree first, second; # 3190 "../../GCC/gcc/c-parser.c" if (des_prev == 1 && (c_language & clk_objc)) { des_seen = des_prev; break; } if (des_prev == 0 && (c_language & clk_objc)) { tree rec, args; struct c_expr mexpr; c_parser_consume_token (parser); if (c_parser_peek_token (parser)->type == CPP_NAME && ((c_parser_peek_token (parser)->id_kind == C_ID_TYPENAME) || (c_parser_peek_token (parser)->id_kind == C_ID_CLASSNAME))) { tree id = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); rec = objc_get_class_reference (id); goto parse_message_args; } first = c_parser_expr_no_commas (parser, ((void *)0)).value; if (c_parser_next_token_is (parser, CPP_ELLIPSIS) || c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) goto array_desig_after_first; rec = first; while (c_parser_next_token_is (parser, CPP_COMMA)) { struct c_expr next; c_parser_consume_token (parser); next = c_parser_expr_no_commas (parser, ((void *)0)); next = default_function_array_conversion (next); rec = build_compound_expr (rec, next.value); } parse_message_args: args = c_parser_objc_message_args (parser); c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); mexpr.value = objc_build_message_expr (build_tree_list_stat(rec,args )); mexpr.original_code = ERROR_MARK; c_parser_initval (parser, &mexpr); return; } c_parser_consume_token (parser); first = c_parser_expr_no_commas (parser, ((void *)0)).value; array_desig_after_first: if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) { c_parser_consume_token (parser); second = c_parser_expr_no_commas (parser, ((void *)0)).value; } else second = (tree) ((void *)0); if (c_parser_next_token_is (parser, CPP_CLOSE_SQUARE)) { c_parser_consume_token (parser); set_init_index (first, second); if (pedantic && second) pedwarn ("ISO C forbids specifying range of " "elements to initialize"); } else c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); } } if (des_seen >= 1) { if (c_parser_next_token_is (parser, CPP_EQ)) { if (pedantic && !flag_isoc99) pedwarn ("ISO C90 forbids specifying subobject to initialize"); c_parser_consume_token (parser); } else { if (des_seen == 1) { if (pedantic) pedwarn ("obsolete use of designated initializer " "without %<=%>"); } else { struct c_expr init; init.value = global_trees[TI_ERROR_MARK]; init.original_code = ERROR_MARK; c_parser_error (parser, "expected %<=%>"); c_parser_skip_until_found (parser, CPP_COMMA, ((void *)0)); process_init_element (init); return; } } } } c_parser_initval (parser, ((void *)0)); } static void c_parser_initval (c_parser *parser, struct c_expr *after) { struct c_expr init; ((void)(!(!after || (c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 3314, __FUNCTION__), 0 : 0)); if (c_parser_next_token_is (parser, CPP_OPEN_BRACE) && !after) init = c_parser_braced_init (parser, (tree) ((void *)0), 1); else { init = c_parser_expr_no_commas (parser, after); if (init.value != (tree) ((void *)0) && ((enum tree_code) (init.value)->common.code) != STRING_CST && ((enum tree_code) (init.value)->common.code) != COMPOUND_LITERAL_EXPR) init = default_function_array_conversion (init); } process_init_element (init); } # 3381 "../../GCC/gcc/c-parser.c" static tree c_parser_compound_statement (c_parser *parser) { tree stmt; if (!c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) return global_trees[TI_ERROR_MARK]; stmt = c_begin_compound_stmt (1); c_parser_compound_statement_nostart (parser); return c_end_compound_stmt (stmt, 1); } static void c_parser_compound_statement_nostart (c_parser *parser) { unsigned char last_stmt = 0; unsigned char last_label = 0; if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) { c_parser_consume_token (parser); return; } if (c_parser_next_token_is_keyword (parser, RID_LABEL)) { while (c_parser_next_token_is_keyword (parser, RID_LABEL)) { c_parser_consume_token (parser); while (1) { tree label; if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); break; } label = declare_label (c_parser_peek_token (parser)->value); ((label)->common.lang_flag_1) = 1; add_stmt (build_stmt (DECL_EXPR, label)); c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_COMMA)) c_parser_consume_token (parser); else break; } c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } if (pedantic) pedwarn ("ISO C forbids label declarations"); } if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) { c_parser_error (parser, "expected declaration or statement"); c_parser_consume_token (parser); return; } while (c_parser_next_token_is_not (parser, CPP_CLOSE_BRACE)) { location_t loc = c_parser_peek_token (parser)->location; if (c_parser_next_token_is_keyword (parser, RID_CASE) || c_parser_next_token_is_keyword (parser, RID_DEFAULT) || (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_2nd_token (parser)->type == CPP_COLON)) { last_label = 1; last_stmt = 0; c_parser_label (parser); } else if (!last_label && c_parser_next_token_starts_declspecs (parser)) { last_label = 0; c_parser_declaration_or_fndef (parser, 1, 1, 1, 1); if (last_stmt && ((pedantic && !flag_isoc99) || warn_declaration_after_statement)) pedwarn_c90 ("%HISO C90 forbids mixed declarations and code", &loc); last_stmt = 0; } else if (!last_label && c_parser_next_token_is_keyword (parser, RID_EXTENSION)) { while (c_parser_peek_2nd_token (parser)->type == ((enum cpp_ttype) (N_TTYPES + 1)) && (c_parser_peek_2nd_token (parser)->keyword == RID_EXTENSION)) c_parser_consume_token (parser); if (c_token_starts_declspecs (c_parser_peek_2nd_token (parser))) { int ext; ext = disable_extension_diagnostics (); c_parser_consume_token (parser); last_label = 0; c_parser_declaration_or_fndef (parser, 1, 1, 1, 1); restore_extension_diagnostics (ext); if (last_stmt && ((pedantic && !flag_isoc99) || warn_declaration_after_statement)) pedwarn_c90 ("%HISO C90 forbids mixed declarations and code", &loc); last_stmt = 0; } else goto statement; } else if (c_parser_next_token_is (parser, CPP_PRAGMA)) { if (c_parser_pragma (parser, pragma_compound)) last_label = 0, last_stmt = 1; } else if (c_parser_next_token_is (parser, CPP_EOF)) { c_parser_error (parser, "expected declaration or statement"); return; } else { statement: last_label = 0; last_stmt = 1; c_parser_statement_after_labels (parser); } parser->error = 0; } if (last_label) error ("label at end of compound statement"); c_parser_consume_token (parser); } # 3549 "../../GCC/gcc/c-parser.c" static void c_parser_label (c_parser *parser) { location_t loc1 = c_parser_peek_token (parser)->location; tree label = (tree) ((void *)0); if (c_parser_next_token_is_keyword (parser, RID_CASE)) { tree exp1, exp2; c_parser_consume_token (parser); exp1 = c_parser_expr_no_commas (parser, ((void *)0)).value; if (c_parser_next_token_is (parser, CPP_COLON)) { c_parser_consume_token (parser); label = do_case (exp1, (tree) ((void *)0)); } else if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) { c_parser_consume_token (parser); exp2 = c_parser_expr_no_commas (parser, ((void *)0)).value; if (c_parser_require (parser, CPP_COLON, "expected %<:%>")) label = do_case (exp1, exp2); } else c_parser_error (parser, "expected %<:%> or %<...%>"); } else if (c_parser_next_token_is_keyword (parser, RID_DEFAULT)) { c_parser_consume_token (parser); if (c_parser_require (parser, CPP_COLON, "expected %<:%>")) label = do_case ((tree) ((void *)0), (tree) ((void *)0)); } else { tree name = c_parser_peek_token (parser)->value; tree tlab; location_t loc2; tree attrs; ((void)(!(c_parser_next_token_is (parser, CPP_NAME)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 3586, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); ((void)(!(c_parser_next_token_is (parser, CPP_COLON)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 3588, __FUNCTION__), 0 : 0)); loc2 = c_parser_peek_token (parser)->location; c_parser_consume_token (parser); attrs = c_parser_attributes (parser); tlab = define_label (loc2, name); if (tlab) { decl_attributes (&tlab, attrs, 0); label = add_stmt (build_stmt (LABEL_EXPR, tlab)); } } if (label) annotate_with_locus (label, loc1); } # 3700 "../../GCC/gcc/c-parser.c" static void c_parser_statement (c_parser *parser) { while (c_parser_next_token_is_keyword (parser, RID_CASE) || c_parser_next_token_is_keyword (parser, RID_DEFAULT) || (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_2nd_token (parser)->type == CPP_COLON)) c_parser_label (parser); c_parser_statement_after_labels (parser); } static void c_parser_statement_after_labels (c_parser *parser) { location_t loc = c_parser_peek_token (parser)->location; tree stmt = (tree) ((void *)0); switch (c_parser_peek_token (parser)->type) { case CPP_OPEN_BRACE: add_stmt (c_parser_compound_statement (parser)); break; case ((enum cpp_ttype) (N_TTYPES + 1)): switch (c_parser_peek_token (parser)->keyword) { case RID_IF: c_parser_if_statement (parser); break; case RID_SWITCH: c_parser_switch_statement (parser); break; case RID_WHILE: c_parser_while_statement (parser); break; case RID_DO: c_parser_do_statement (parser); break; case RID_FOR: c_parser_for_statement (parser); break; case RID_GOTO: c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_NAME)) { tree id = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); if ( !c_parser_next_token_is (parser, CPP_OPEN_PAREN) ) { stmt = c_finish_goto_label (id); } else { struct c_expr expr; tree exprlist; expr.value = build_external_ref (id, 1, loc); expr.original_code = ERROR_MARK; c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) exprlist = (tree) ((void *)0); else exprlist = c_parser_expr_list (parser, 1); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); expr.value = build_function_call (expr.value, exprlist); (__extension__ ({ const tree __t = (expr.value); if (((enum tree_code) (__t)->common.code) != (CALL_EXPR)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 3769, __FUNCTION__, (CALL_EXPR), 0); __t; })->common.lang_flag_5) = 1; expr.original_code = ERROR_MARK; expr = default_function_array_conversion (expr); stmt = c_finish_return (expr.value); } # 3807 "../../GCC/gcc/c-parser.c" } else if (c_parser_next_token_is (parser, CPP_MULT)) { c_parser_consume_token (parser); stmt = c_finish_goto_ptr (c_parser_expression (parser).value); } else if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) { } else c_parser_error (parser, "expected identifier or %<*%>"); goto expect_semicolon; case RID_CONTINUE: c_parser_consume_token (parser); stmt = c_finish_bc_stmt (&c_cont_label, 0); goto expect_semicolon; case RID_BREAK: c_parser_consume_token (parser); stmt = c_finish_bc_stmt (&c_break_label, 1); goto expect_semicolon; case RID_RETURN: c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { stmt = c_finish_return ((tree) ((void *)0)); c_parser_consume_token (parser); } else { stmt = c_finish_return (c_parser_expression_conv (parser).value); goto expect_semicolon; } break; case RID_ASM: stmt = c_parser_asm_statement (parser); break; case RID_AT_THROW: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 3846, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { stmt = objc_build_throw_stmt ((tree) ((void *)0)); c_parser_consume_token (parser); } else { stmt = objc_build_throw_stmt (c_parser_expression (parser).value); goto expect_semicolon; } break; case RID_AT_TRY: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 3861, __FUNCTION__), 0 : 0)); c_parser_objc_try_catch_statement (parser); break; case RID_AT_SYNCHRONIZED: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 3865, __FUNCTION__), 0 : 0)); c_parser_objc_synchronized_statement (parser); break; default: goto expr_stmt; } break; case CPP_SEMICOLON: c_parser_consume_token (parser); break; case CPP_CLOSE_PAREN: case CPP_CLOSE_SQUARE: c_parser_error (parser, "expected statement"); c_parser_consume_token (parser); break; case CPP_PRAGMA: c_parser_pragma (parser, pragma_stmt); break; default: expr_stmt: stmt = c_finish_expr_stmt (c_parser_expression_conv (parser).value); expect_semicolon: c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); break; } # 3904 "../../GCC/gcc/c-parser.c" if (stmt && ((tree_code_type[(int) (((enum tree_code) (stmt)->common.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (stmt)->common.code))]) <= tcc_expression)) annotate_with_locus (stmt, loc); } static tree c_parser_paren_condition (c_parser *parser) { location_t loc; tree cond; if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) return global_trees[TI_ERROR_MARK]; loc = c_parser_peek_token (parser)->location; cond = c_objc_common_truthvalue_conversion (c_parser_expression_conv (parser).value); if (((tree_code_type[(int) (((enum tree_code) (cond)->common.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (cond)->common.code))]) <= tcc_expression)) annotate_with_locus (cond, loc); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); return cond; } static tree c_parser_c99_block_statement (c_parser *parser) { tree block = c_begin_compound_stmt (flag_isoc99); c_parser_statement (parser); return c_end_compound_stmt (block, flag_isoc99); } static tree c_parser_if_body (c_parser *parser, unsigned char *if_p) { tree block = c_begin_compound_stmt (flag_isoc99); while (c_parser_next_token_is_keyword (parser, RID_CASE) || c_parser_next_token_is_keyword (parser, RID_DEFAULT) || (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_2nd_token (parser)->type == CPP_COLON)) c_parser_label (parser); *if_p = c_parser_next_token_is_keyword (parser, RID_IF); if (extra_warnings && c_parser_next_token_is (parser, CPP_SEMICOLON)) add_stmt (build_empty_stmt ()); c_parser_statement_after_labels (parser); return c_end_compound_stmt (block, flag_isoc99); } # 3968 "../../GCC/gcc/c-parser.c" static void c_parser_if_statement (c_parser *parser) { tree block; location_t loc; tree cond; unsigned char first_if = 0, second_if = 0; tree first_body, second_body; ((void)(!(c_parser_next_token_is_keyword (parser, RID_IF)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 3976, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); block = c_begin_compound_stmt (flag_isoc99); loc = c_parser_peek_token (parser)->location; cond = c_parser_paren_condition (parser); first_body = c_parser_if_body (parser, &first_if); if (c_parser_next_token_is_keyword (parser, RID_ELSE)) { c_parser_consume_token (parser); second_body = c_parser_if_body (parser, &second_if); } else second_body = (tree) ((void *)0); c_finish_if_stmt (loc, cond, first_body, second_body, first_if); add_stmt (c_end_compound_stmt (block, flag_isoc99)); } static void c_parser_switch_statement (c_parser *parser) { tree block, expr, body, save_break; ((void)(!(c_parser_next_token_is_keyword (parser, RID_SWITCH)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4003, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); block = c_begin_compound_stmt (flag_isoc99); if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr = c_parser_expression (parser).value; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } else expr = global_trees[TI_ERROR_MARK]; c_start_case (expr); save_break = c_break_label; c_break_label = (tree) ((void *)0); body = c_parser_c99_block_statement (parser); c_finish_case (body); if (c_break_label) add_stmt (build1_stat (LABEL_EXPR,global_trees[TI_VOID_TYPE],c_break_label )); c_break_label = save_break; add_stmt (c_end_compound_stmt (block, flag_isoc99)); } static void c_parser_while_statement (c_parser *parser) { tree block, cond, body, save_break, save_cont; location_t loc; ((void)(!(c_parser_next_token_is_keyword (parser, RID_WHILE)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4035, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); block = c_begin_compound_stmt (flag_isoc99); loc = c_parser_peek_token (parser)->location; cond = c_parser_paren_condition (parser); save_break = c_break_label; c_break_label = (tree) ((void *)0); save_cont = c_cont_label; c_cont_label = (tree) ((void *)0); body = c_parser_c99_block_statement (parser); c_finish_loop (loc, cond, ((void *)0), body, c_break_label, c_cont_label, 1); add_stmt (c_end_compound_stmt (block, flag_isoc99)); c_break_label = save_break; c_cont_label = save_cont; } static void c_parser_do_statement (c_parser *parser) { tree block, cond, body, save_break, save_cont, new_break, new_cont; location_t loc; ((void)(!(c_parser_next_token_is_keyword (parser, RID_DO)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4062, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); block = c_begin_compound_stmt (flag_isoc99); loc = c_parser_peek_token (parser)->location; save_break = c_break_label; c_break_label = (tree) ((void *)0); save_cont = c_cont_label; c_cont_label = (tree) ((void *)0); body = c_parser_c99_block_statement (parser); c_parser_require_keyword (parser, RID_WHILE, "expected %<while%>"); new_break = c_break_label; c_break_label = save_break; new_cont = c_cont_label; c_cont_label = save_cont; cond = c_parser_paren_condition (parser); if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) c_parser_skip_to_end_of_block_or_statement (parser); c_finish_loop (loc, cond, ((void *)0), body, new_break, new_cont, 0); add_stmt (c_end_compound_stmt (block, flag_isoc99)); } # 4099 "../../GCC/gcc/c-parser.c" static void c_parser_for_statement (c_parser *parser) { tree block, cond, incr, save_break, save_cont, body; location_t loc; ((void)(!(c_parser_next_token_is_keyword (parser, RID_FOR)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4104, __FUNCTION__), 0 : 0)); loc = c_parser_peek_token (parser)->location; c_parser_consume_token (parser); block = c_begin_compound_stmt (flag_isoc99); if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { c_parser_consume_token (parser); c_finish_expr_stmt ((tree) ((void *)0)); } else if (c_parser_next_token_starts_declspecs (parser)) { c_parser_declaration_or_fndef (parser, 1, 1, 1, 1); check_for_loop_decls (); } else if (c_parser_next_token_is_keyword (parser, RID_EXTENSION)) { while (c_parser_peek_2nd_token (parser)->type == ((enum cpp_ttype) (N_TTYPES + 1)) && (c_parser_peek_2nd_token (parser)->keyword == RID_EXTENSION)) c_parser_consume_token (parser); if (c_token_starts_declspecs (c_parser_peek_2nd_token (parser))) { int ext; ext = disable_extension_diagnostics (); c_parser_consume_token (parser); c_parser_declaration_or_fndef (parser, 1, 1, 1, 1); restore_extension_diagnostics (ext); check_for_loop_decls (); } else goto init_expr; } else { init_expr: c_finish_expr_stmt (c_parser_expression (parser).value); c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } loc = c_parser_peek_token (parser)->location; if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { c_parser_consume_token (parser); cond = (tree) ((void *)0); } else { tree ocond = c_parser_expression_conv (parser).value; cond = c_objc_common_truthvalue_conversion (ocond); if (((tree_code_type[(int) (((enum tree_code) (cond)->common.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (cond)->common.code))]) <= tcc_expression)) annotate_with_locus (cond, loc); c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) incr = c_process_expr_stmt ((tree) ((void *)0)); else incr = c_process_expr_stmt (c_parser_expression (parser).value); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } else { cond = global_trees[TI_ERROR_MARK]; incr = global_trees[TI_ERROR_MARK]; } save_break = c_break_label; c_break_label = (tree) ((void *)0); save_cont = c_cont_label; c_cont_label = (tree) ((void *)0); body = c_parser_c99_block_statement (parser); c_finish_loop (loc, cond, incr, body, c_break_label, c_cont_label, 1); add_stmt (c_end_compound_stmt (block, flag_isoc99)); c_break_label = save_break; c_cont_label = save_cont; } # 4203 "../../GCC/gcc/c-parser.c" static tree c_parser_asm_statement (c_parser *parser) { tree quals, str, outputs, inputs, clobbers, ret; unsigned char simple; ((void)(!(c_parser_next_token_is_keyword (parser, RID_ASM)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4208, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (c_parser_next_token_is_keyword (parser, RID_VOLATILE)) { quals = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); } else if (c_parser_next_token_is_keyword (parser, RID_CONST) || c_parser_next_token_is_keyword (parser, RID_RESTRICT)) { warning (0, "%E qualifier ignored on asm", c_parser_peek_token (parser)->value); quals = (tree) ((void *)0); c_parser_consume_token (parser); } else quals = (tree) ((void *)0); c_lex_string_translate = 0; if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { c_lex_string_translate = 1; return (tree) ((void *)0); } str = c_parser_asm_string_literal (parser); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { simple = 1; outputs = (tree) ((void *)0); inputs = (tree) ((void *)0); clobbers = (tree) ((void *)0); goto done_asm; } if (!c_parser_require (parser, CPP_COLON, "expected %<:%> or %<)%>")) { c_lex_string_translate = 1; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return (tree) ((void *)0); } simple = 0; if (c_parser_next_token_is (parser, CPP_COLON) || c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) outputs = (tree) ((void *)0); else outputs = c_parser_asm_operands (parser, 0); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { inputs = (tree) ((void *)0); clobbers = (tree) ((void *)0); goto done_asm; } if (!c_parser_require (parser, CPP_COLON, "expected %<:%> or %<)%>")) { c_lex_string_translate = 1; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return (tree) ((void *)0); } if (c_parser_next_token_is (parser, CPP_COLON) || c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) inputs = (tree) ((void *)0); else inputs = c_parser_asm_operands (parser, 1); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { clobbers = (tree) ((void *)0); goto done_asm; } if (!c_parser_require (parser, CPP_COLON, "expected %<:%> or %<)%>")) { c_lex_string_translate = 1; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return (tree) ((void *)0); } clobbers = c_parser_asm_clobbers (parser); done_asm: c_lex_string_translate = 1; if (!c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return (tree) ((void *)0); } if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) c_parser_skip_to_end_of_block_or_statement (parser); ret = build_asm_stmt (quals, build_asm_expr (str, outputs, inputs, clobbers, simple)); return ret; } # 4313 "../../GCC/gcc/c-parser.c" static tree c_parser_asm_operands (c_parser *parser, unsigned char convert_p) { tree list = (tree) ((void *)0); while (1) { tree name, str; struct c_expr expr; if (c_parser_next_token_is (parser, CPP_OPEN_SQUARE)) { c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_NAME)) { tree id = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); name = build_string ((__extension__ ({ const tree __t = (id); if (((enum tree_code) (__t)->common.code) != (IDENTIFIER_NODE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 4328, __FUNCTION__, (IDENTIFIER_NODE), 0); __t; })->identifier.id.len), ((const char *) __extension__ ({ const tree __t = (id); if (((enum tree_code) (__t)->common.code) != (IDENTIFIER_NODE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 4329, __FUNCTION__, (IDENTIFIER_NODE), 0); __t; })->identifier.id.str)); } else { c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, ((void *)0)); return (tree) ((void *)0); } c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); } else name = (tree) ((void *)0); str = c_parser_asm_string_literal (parser); if (str == (tree) ((void *)0)) return (tree) ((void *)0); c_lex_string_translate = 1; if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { c_lex_string_translate = 0; return (tree) ((void *)0); } expr = c_parser_expression (parser); if (convert_p) expr = default_function_array_conversion (expr); c_lex_string_translate = 0; if (!c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return (tree) ((void *)0); } list = chainon (list, build_tree_list_stat(build_tree_list_stat(name,str ),expr.value )); if (c_parser_next_token_is (parser, CPP_COMMA)) c_parser_consume_token (parser); else break; } return list; } # 4377 "../../GCC/gcc/c-parser.c" static tree c_parser_asm_clobbers (c_parser *parser) { tree list = (tree) ((void *)0); while (1) { tree str = c_parser_asm_string_literal (parser); if (str) list = tree_cons_stat ((tree) ((void *)0),str,list ); else return (tree) ((void *)0); if (c_parser_next_token_is (parser, CPP_COMMA)) c_parser_consume_token (parser); else break; } return list; } # 4412 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_expr_no_commas (c_parser *parser, struct c_expr *after) { struct c_expr lhs, rhs, ret; enum tree_code code; ((void)(!(!after || (c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4417, __FUNCTION__), 0 : 0)); lhs = c_parser_conditional_expression (parser, after); switch (c_parser_peek_token (parser)->type) { case CPP_EQ: code = NOP_EXPR; break; case CPP_MULT_EQ: code = MULT_EXPR; break; case CPP_DIV_EQ: code = TRUNC_DIV_EXPR; break; case CPP_MOD_EQ: code = TRUNC_MOD_EXPR; break; case CPP_PLUS_EQ: code = PLUS_EXPR; break; case CPP_MINUS_EQ: code = MINUS_EXPR; break; case CPP_LSHIFT_EQ: code = LSHIFT_EXPR; break; case CPP_RSHIFT_EQ: code = RSHIFT_EXPR; break; case CPP_AND_EQ: code = BIT_AND_EXPR; break; case CPP_XOR_EQ: code = BIT_XOR_EXPR; break; case CPP_OR_EQ: code = BIT_IOR_EXPR; break; default: return lhs; } c_parser_consume_token (parser); rhs = c_parser_expr_no_commas (parser, ((void *)0)); rhs = default_function_array_conversion (rhs); ret.value = build_modify_expr (lhs.value, code, rhs.value); if (code == NOP_EXPR) ret.original_code = MODIFY_EXPR; else { ((ret.value)->common.nowarning_flag) = 1; ret.original_code = ERROR_MARK; } return ret; } # 4485 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_conditional_expression (c_parser *parser, struct c_expr *after) { struct c_expr cond, exp1, exp2, ret; ((void)(!(!after || (c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4489, __FUNCTION__), 0 : 0)); cond = c_parser_binary_expression (parser, after); if (c_parser_next_token_is_not (parser, CPP_QUERY)) return cond; cond = default_function_array_conversion (cond); c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_COLON)) { if (pedantic) pedwarn ("ISO C forbids omitting the middle term of a ?: expression"); exp1.value = save_expr (default_conversion (cond.value)); cond.value = c_objc_common_truthvalue_conversion (exp1.value); skip_evaluation += cond.value == c_global_trees[CTI_TRUTHVALUE_TRUE]; } else { cond.value = c_objc_common_truthvalue_conversion (default_conversion (cond.value)); skip_evaluation += cond.value == c_global_trees[CTI_TRUTHVALUE_FALSE]; exp1 = c_parser_expression_conv (parser); skip_evaluation += ((cond.value == c_global_trees[CTI_TRUTHVALUE_TRUE]) - (cond.value == c_global_trees[CTI_TRUTHVALUE_FALSE])); } if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) { skip_evaluation -= cond.value == c_global_trees[CTI_TRUTHVALUE_TRUE]; ret.value = global_trees[TI_ERROR_MARK]; ret.original_code = ERROR_MARK; return ret; } exp2 = c_parser_conditional_expression (parser, ((void *)0)); exp2 = default_function_array_conversion (exp2); skip_evaluation -= cond.value == c_global_trees[CTI_TRUTHVALUE_TRUE]; ret.value = build_conditional_expr (cond.value, exp1.value, exp2.value); ret.original_code = ERROR_MARK; return ret; } # 4583 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_binary_expression (c_parser *parser, struct c_expr *after) { # 4609 "../../GCC/gcc/c-parser.c" enum prec { PREC_NONE, PREC_LOGOR, PREC_LOGAND, PREC_BITOR, PREC_BITXOR, PREC_BITAND, PREC_EQ, PREC_REL, PREC_SHIFT, PREC_ADD, PREC_MULT, NUM_PRECS }; struct { struct c_expr expr; enum prec prec; enum tree_code op; } stack[NUM_PRECS]; int sp; # 4655 "../../GCC/gcc/c-parser.c" ((void)(!(!after || (c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4655, __FUNCTION__), 0 : 0)); stack[0].expr = c_parser_cast_expression (parser, after); stack[0].prec = PREC_NONE; sp = 0; while (1) { enum prec oprec; enum tree_code ocode; if (parser->error) goto out; switch (c_parser_peek_token (parser)->type) { case CPP_MULT: oprec = PREC_MULT; ocode = MULT_EXPR; break; case CPP_DIV: oprec = PREC_MULT; ocode = TRUNC_DIV_EXPR; break; case CPP_MOD: oprec = PREC_MULT; ocode = TRUNC_MOD_EXPR; break; case CPP_PLUS: oprec = PREC_ADD; ocode = PLUS_EXPR; break; case CPP_MINUS: oprec = PREC_ADD; ocode = MINUS_EXPR; break; case CPP_LSHIFT: oprec = PREC_SHIFT; ocode = LSHIFT_EXPR; break; case CPP_RSHIFT: oprec = PREC_SHIFT; ocode = RSHIFT_EXPR; break; case CPP_LESS: oprec = PREC_REL; ocode = LT_EXPR; break; case CPP_GREATER: oprec = PREC_REL; ocode = GT_EXPR; break; case CPP_LESS_EQ: oprec = PREC_REL; ocode = LE_EXPR; break; case CPP_GREATER_EQ: oprec = PREC_REL; ocode = GE_EXPR; break; case CPP_EQ_EQ: oprec = PREC_EQ; ocode = EQ_EXPR; break; case CPP_NOT_EQ: oprec = PREC_EQ; ocode = NE_EXPR; break; case CPP_AND: oprec = PREC_BITAND; ocode = BIT_AND_EXPR; break; case CPP_XOR: oprec = PREC_BITXOR; ocode = BIT_XOR_EXPR; break; case CPP_OR: oprec = PREC_BITOR; ocode = BIT_IOR_EXPR; break; case CPP_AND_AND: oprec = PREC_LOGAND; ocode = TRUTH_ANDIF_EXPR; break; case CPP_OR_OR: oprec = PREC_LOGOR; ocode = TRUTH_ORIF_EXPR; break; default: goto out; } c_parser_consume_token (parser); while (oprec <= stack[sp].prec) do { switch (stack[sp].op) { case TRUTH_ANDIF_EXPR: skip_evaluation -= stack[sp - 1].expr.value == c_global_trees[CTI_TRUTHVALUE_FALSE]; break; case TRUTH_ORIF_EXPR: skip_evaluation -= stack[sp - 1].expr.value == c_global_trees[CTI_TRUTHVALUE_TRUE]; break; default: break; } stack[sp - 1].expr = default_function_array_conversion (stack[sp - 1].expr); stack[sp].expr = default_function_array_conversion (stack[sp].expr); stack[sp - 1].expr = parser_build_binary_op (stack[sp].op, stack[sp - 1].expr, stack[sp].expr); sp--; } while (0); switch (ocode) { case TRUTH_ANDIF_EXPR: stack[sp].expr = default_function_array_conversion (stack[sp].expr); stack[sp].expr.value = c_objc_common_truthvalue_conversion (default_conversion (stack[sp].expr.value)); skip_evaluation += stack[sp].expr.value == c_global_trees[CTI_TRUTHVALUE_FALSE]; break; case TRUTH_ORIF_EXPR: stack[sp].expr = default_function_array_conversion (stack[sp].expr); stack[sp].expr.value = c_objc_common_truthvalue_conversion (default_conversion (stack[sp].expr.value)); skip_evaluation += stack[sp].expr.value == c_global_trees[CTI_TRUTHVALUE_TRUE]; break; default: break; } sp++; stack[sp].expr = c_parser_cast_expression (parser, ((void *)0)); stack[sp].prec = oprec; stack[sp].op = ocode; } out: while (sp > 0) do { switch (stack[sp].op) { case TRUTH_ANDIF_EXPR: skip_evaluation -= stack[sp - 1].expr.value == c_global_trees[CTI_TRUTHVALUE_FALSE]; break; case TRUTH_ORIF_EXPR: skip_evaluation -= stack[sp - 1].expr.value == c_global_trees[CTI_TRUTHVALUE_TRUE]; break; default: break; } stack[sp - 1].expr = default_function_array_conversion (stack[sp - 1].expr); stack[sp].expr = default_function_array_conversion (stack[sp].expr); stack[sp - 1].expr = parser_build_binary_op (stack[sp].op, stack[sp - 1].expr, stack[sp].expr); sp--; } while (0); return stack[0].expr; } # 4787 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_cast_expression (c_parser *parser, struct c_expr *after) { ((void)(!(!after || (c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4790, __FUNCTION__), 0 : 0)); if (after) return c_parser_postfix_expression_after_primary (parser, *after); if (c_parser_next_token_is (parser, CPP_OPEN_PAREN) && c_token_starts_typename (c_parser_peek_2nd_token (parser))) { struct c_type_name *type_name; struct c_expr ret; struct c_expr expr; c_parser_consume_token (parser); type_name = c_parser_type_name (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (type_name == ((void *)0)) { ret.value = global_trees[TI_ERROR_MARK]; ret.original_code = ERROR_MARK; return ret; } used_types_insert (type_name->specs->type); if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) return c_parser_postfix_expression_after_paren_type (parser, type_name); expr = c_parser_cast_expression (parser, ((void *)0)); expr = default_function_array_conversion (expr); ret.value = c_cast_expr (type_name, expr.value); ret.original_code = ERROR_MARK; return ret; } else return c_parser_unary_expression (parser); } # 4856 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_unary_expression (c_parser *parser) { int ext; struct c_expr ret, op; switch (c_parser_peek_token (parser)->type) { case CPP_PLUS_PLUS: c_parser_consume_token (parser); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); return parser_build_unary_op (PREINCREMENT_EXPR, op); case CPP_MINUS_MINUS: c_parser_consume_token (parser); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); return parser_build_unary_op (PREDECREMENT_EXPR, op); case CPP_AND: c_parser_consume_token (parser); return parser_build_unary_op (ADDR_EXPR, c_parser_cast_expression (parser, ((void *)0))); case CPP_MULT: c_parser_consume_token (parser); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); ret.value = build_indirect_ref (op.value, "unary *"); ret.original_code = ERROR_MARK; return ret; case CPP_PLUS: c_parser_consume_token (parser); if (!(c_language & clk_objc) && !in_system_header) warning (OPT_Wtraditional, "traditional C rejects the unary plus operator"); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); return parser_build_unary_op (CONVERT_EXPR, op); case CPP_MINUS: c_parser_consume_token (parser); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); return parser_build_unary_op (NEGATE_EXPR, op); case CPP_COMPL: c_parser_consume_token (parser); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); return parser_build_unary_op (BIT_NOT_EXPR, op); case CPP_NOT: c_parser_consume_token (parser); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); return parser_build_unary_op (TRUTH_NOT_EXPR, op); case CPP_AND_AND: c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_NAME)) { ret.value = finish_label_address_expr (c_parser_peek_token (parser)->value); c_parser_consume_token (parser); } else { c_parser_error (parser, "expected identifier"); ret.value = global_trees[TI_ERROR_MARK]; } ret.original_code = ERROR_MARK; return ret; case ((enum cpp_ttype) (N_TTYPES + 1)): switch (c_parser_peek_token (parser)->keyword) { case RID_SIZEOF: return c_parser_sizeof_expression (parser); case RID_ALIGNOF: return c_parser_alignof_expression (parser); case RID_EXTENSION: c_parser_consume_token (parser); ext = disable_extension_diagnostics (); ret = c_parser_cast_expression (parser, ((void *)0)); restore_extension_diagnostics (ext); return ret; case RID_REALPART: c_parser_consume_token (parser); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); return parser_build_unary_op (REALPART_EXPR, op); case RID_IMAGPART: c_parser_consume_token (parser); op = c_parser_cast_expression (parser, ((void *)0)); op = default_function_array_conversion (op); return parser_build_unary_op (IMAGPART_EXPR, op); default: return c_parser_postfix_expression (parser); } default: return c_parser_postfix_expression (parser); } } static struct c_expr c_parser_sizeof_expression (c_parser *parser) { struct c_expr expr; ((void)(!(c_parser_next_token_is_keyword (parser, RID_SIZEOF)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 4960, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); skip_evaluation++; in_sizeof++; if (c_parser_next_token_is (parser, CPP_OPEN_PAREN) && c_token_starts_typename (c_parser_peek_2nd_token (parser))) { struct c_type_name *type_name; c_parser_consume_token (parser); type_name = c_parser_type_name (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (type_name == ((void *)0)) { struct c_expr ret; skip_evaluation--; in_sizeof--; ret.value = global_trees[TI_ERROR_MARK]; ret.original_code = ERROR_MARK; return ret; } if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) { expr = c_parser_postfix_expression_after_paren_type (parser, type_name); goto sizeof_expr; } skip_evaluation--; in_sizeof--; if (type_name->declarator->kind == cdk_array && type_name->declarator->u.array.vla_unspec_p) { error ("%<[*]%> not allowed in other than a declaration"); } return c_expr_sizeof_type (type_name); } else { expr = c_parser_unary_expression (parser); sizeof_expr: skip_evaluation--; in_sizeof--; if (((enum tree_code) (expr.value)->common.code) == COMPONENT_REF && ((__extension__ ({ const tree __t = (__extension__ ({ const tree __t = (__extension__ (*({const tree __t = __extension__ ({ const tree __t = (expr.value); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 5006, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 5006, __FUNCTION__); &__t->exp.operands[__i]; }))); if (((enum tree_code) (__t)->common.code) != (FIELD_DECL)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 5006, __FUNCTION__, (FIELD_DECL), 0); __t; })); if (tree_contains_struct[((enum tree_code) (__t)->common.code)][(TS_DECL_COMMON)] != 1) tree_contains_struct_check_failed (__t, (TS_DECL_COMMON), "../../GCC/gcc/c-parser.c", 5006, __FUNCTION__); __t; })->decl_common.lang_flag_4) == 1)) error ("%<sizeof%> applied to a bit-field"); return c_expr_sizeof_expr (expr); } } static struct c_expr c_parser_alignof_expression (c_parser *parser) { struct c_expr expr; ((void)(!(c_parser_next_token_is_keyword (parser, RID_ALIGNOF)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5018, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); skip_evaluation++; in_alignof++; if (c_parser_next_token_is (parser, CPP_OPEN_PAREN) && c_token_starts_typename (c_parser_peek_2nd_token (parser))) { struct c_type_name *type_name; struct c_expr ret; c_parser_consume_token (parser); type_name = c_parser_type_name (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (type_name == ((void *)0)) { struct c_expr ret; skip_evaluation--; in_alignof--; ret.value = global_trees[TI_ERROR_MARK]; ret.original_code = ERROR_MARK; return ret; } if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) { expr = c_parser_postfix_expression_after_paren_type (parser, type_name); goto alignof_expr; } skip_evaluation--; in_alignof--; ret.value = c_sizeof_or_alignof_type (groktypename (type_name), 0, 1); ret.original_code = ERROR_MARK; return ret; } else { struct c_expr ret; expr = c_parser_unary_expression (parser); alignof_expr: skip_evaluation--; in_alignof--; ret.value = c_alignof_expr (expr.value); ret.original_code = ERROR_MARK; return ret; } } # 5120 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_postfix_expression (c_parser *parser) { struct c_expr expr, e1, e2, e3; struct c_type_name *t1, *t2; switch (c_parser_peek_token (parser)->type) { case CPP_NUMBER: case CPP_CHAR: case CPP_WCHAR: expr.value = c_parser_peek_token (parser)->value; expr.original_code = ERROR_MARK; c_parser_consume_token (parser); break; case CPP_STRING: case CPP_WSTRING: expr.value = c_parser_peek_token (parser)->value; expr.original_code = STRING_CST; c_parser_consume_token (parser); break; case CPP_OBJC_STRING: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5141, __FUNCTION__), 0 : 0)); expr.value = objc_build_string_object (c_parser_peek_token (parser)->value); expr.original_code = ERROR_MARK; c_parser_consume_token (parser); break; case CPP_NAME: if (c_parser_peek_token (parser)->id_kind != C_ID_ID) { c_parser_error (parser, "expected expression"); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } { tree id = c_parser_peek_token (parser)->value; location_t loc = c_parser_peek_token (parser)->location; c_parser_consume_token (parser); expr.value = build_external_ref (id, (c_parser_peek_token (parser)->type == CPP_OPEN_PAREN), loc); expr.original_code = ERROR_MARK; } break; case CPP_OPEN_PAREN: if (c_parser_peek_2nd_token (parser)->type == CPP_OPEN_BRACE) { tree stmt; c_parser_consume_token (parser); c_parser_consume_token (parser); if ((current_stmt_tree ()->x_cur_stmt_list) == ((void *)0)) { error ("braced-group within expression allowed " "only inside a function"); parser->error = 1; c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, ((void *)0)); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } stmt = c_begin_stmt_expr (); c_parser_compound_statement_nostart (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (pedantic) pedwarn ("ISO C forbids braced-groups within expressions"); expr.value = c_finish_stmt_expr (stmt); expr.original_code = ERROR_MARK; } else if (c_token_starts_typename (c_parser_peek_2nd_token (parser))) { struct c_type_name *type_name; c_parser_consume_token (parser); type_name = c_parser_type_name (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (type_name == ((void *)0)) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; } else expr = c_parser_postfix_expression_after_paren_type (parser, type_name); } else { c_parser_consume_token (parser); expr = c_parser_expression (parser); if (((enum tree_code) (expr.value)->common.code) == MODIFY_EXPR) ((expr.value)->common.nowarning_flag) = 1; expr.original_code = ERROR_MARK; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } break; case ((enum cpp_ttype) (N_TTYPES + 1)): switch (c_parser_peek_token (parser)->keyword) { case RID_FUNCTION_NAME: case RID_PRETTY_FUNCTION_NAME: case RID_C99_FUNCTION_NAME: expr.value = fname_decl (c_parser_peek_token (parser)->keyword, c_parser_peek_token (parser)->value); expr.original_code = ERROR_MARK; c_parser_consume_token (parser); break; case RID_VA_ARG: c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } e1 = c_parser_expr_no_commas (parser, ((void *)0)); if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } t1 = c_parser_type_name (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (t1 == ((void *)0)) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; } else { expr.value = build_va_arg (e1.value, groktypename (t1)); expr.original_code = ERROR_MARK; } break; case RID_OFFSETOF: c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } t1 = c_parser_type_name (parser); if (t1 == ((void *)0)) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } { tree type = groktypename (t1); tree offsetof_ref; if (type == global_trees[TI_ERROR_MARK]) offsetof_ref = global_trees[TI_ERROR_MARK]; else offsetof_ref = build1_stat (INDIRECT_REF,type,global_trees[TI_NULL_POINTER] ); if (c_parser_next_token_is (parser, CPP_NAME)) { offsetof_ref = build_component_ref (offsetof_ref, c_parser_peek_token (parser)->value); c_parser_consume_token (parser); while (c_parser_next_token_is (parser, CPP_DOT) || c_parser_next_token_is (parser, CPP_OPEN_SQUARE)) { if (c_parser_next_token_is (parser, CPP_DOT)) { c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); break; } offsetof_ref = build_component_ref (offsetof_ref, c_parser_peek_token (parser)->value); c_parser_consume_token (parser); } else { tree idx; c_parser_consume_token (parser); idx = c_parser_expression (parser).value; c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); offsetof_ref = build_array_ref (offsetof_ref, idx); } } } else c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); expr.value = fold_offsetof (offsetof_ref, (tree) ((void *)0)); expr.original_code = ERROR_MARK; } break; case RID_CHOOSE_EXPR: c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } e1 = c_parser_expr_no_commas (parser, ((void *)0)); if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } e2 = c_parser_expr_no_commas (parser, ((void *)0)); if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } e3 = c_parser_expr_no_commas (parser, ((void *)0)); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); { tree c; c = fold (e1.value); if (((enum tree_code) (c)->common.code) != INTEGER_CST) error ("first argument to %<__builtin_choose_expr%> not" " a constant"); expr = integer_zerop (c) ? e3 : e2; } break; case RID_TYPES_COMPATIBLE_P: c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } t1 = c_parser_type_name (parser); if (t1 == ((void *)0)) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } if (!c_parser_require (parser, CPP_COMMA, "expected %<,%>")) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } t2 = c_parser_type_name (parser); if (t2 == ((void *)0)) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); { tree e1, e2; e1 = (__extension__ ({ const tree __t = (groktypename (t1)); if (tree_code_type[(int) (((enum tree_code) (__t)->common.code))] != (tcc_type)) tree_class_check_failed (__t, (tcc_type), "../../GCC/gcc/c-parser.c", 5412, __FUNCTION__); __t; })->type.main_variant); e2 = (__extension__ ({ const tree __t = (groktypename (t2)); if (tree_code_type[(int) (((enum tree_code) (__t)->common.code))] != (tcc_type)) tree_class_check_failed (__t, (tcc_type), "../../GCC/gcc/c-parser.c", 5413, __FUNCTION__); __t; })->type.main_variant); expr.value = comptypes (e1, e2) ? build_int_cst ((tree) ((void *)0), 1) : build_int_cst ((tree) ((void *)0), 0); expr.original_code = ERROR_MARK; } break; case RID_AT_SELECTOR: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5422, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } { tree sel = c_parser_objc_selector_arg (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); expr.value = objc_build_selector_expr (sel); expr.original_code = ERROR_MARK; } break; case RID_AT_PROTOCOL: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5439, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } { tree id = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); expr.value = objc_build_protocol_expr (id); expr.original_code = ERROR_MARK; } break; case RID_AT_ENCODE: ((void)(!((c_language & clk_objc)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5466, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } t1 = c_parser_type_name (parser); if (t1 == ((void *)0)) { expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); break; } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); { tree type = groktypename (t1); expr.value = objc_build_encode_expr (type); expr.original_code = ERROR_MARK; } break; default: c_parser_error (parser, "expected expression"); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } break; case CPP_OPEN_SQUARE: if ((c_language & clk_objc)) { tree receiver, args; c_parser_consume_token (parser); receiver = c_parser_objc_receiver (parser); args = c_parser_objc_message_args (parser); c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); expr.value = objc_build_message_expr (build_tree_list_stat(receiver,args )); expr.original_code = ERROR_MARK; break; } default: c_parser_error (parser, "expected expression"); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; break; } return c_parser_postfix_expression_after_primary (parser, expr); } # 5529 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_postfix_expression_after_paren_type (c_parser *parser, struct c_type_name *type_name) { tree type; struct c_expr init; struct c_expr expr; start_init ((tree) ((void *)0), ((void *)0), 0); type = groktypename (type_name); if (type != global_trees[TI_ERROR_MARK] && (__extension__ ({ const tree __t = (type); if (tree_code_type[(int) (((enum tree_code) (__t)->common.code))] != (tcc_type)) tree_class_check_failed (__t, (tcc_type), "../../GCC/gcc/c-parser.c", 5538, __FUNCTION__); __t; })->type.lang_flag_1)) { error ("compound literal has variable size"); type = global_trees[TI_ERROR_MARK]; } init = c_parser_braced_init (parser, type, 0); finish_init (); maybe_warn_string_init (type, init); if (pedantic && !flag_isoc99) pedwarn ("ISO C90 forbids compound literals"); expr.value = build_compound_literal (type, init.value); expr.original_code = ERROR_MARK; return c_parser_postfix_expression_after_primary (parser, expr); } static struct c_expr c_parser_postfix_expression_after_primary (c_parser *parser, struct c_expr expr) { tree ident, idx, exprlist; while (1) { switch (c_parser_peek_token (parser)->type) { case CPP_OPEN_SQUARE: c_parser_consume_token (parser); idx = c_parser_expression (parser).value; c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, "expected %<]%>"); expr.value = build_array_ref (expr.value, idx); expr.original_code = ERROR_MARK; break; case CPP_OPEN_PAREN: c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) exprlist = (tree) ((void *)0); else exprlist = c_parser_expr_list (parser, 1); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); expr.value = build_function_call (expr.value, exprlist); expr.original_code = ERROR_MARK; break; case CPP_DOT: c_parser_consume_token (parser); expr = default_function_array_conversion (expr); if (c_parser_next_token_is (parser, CPP_NAME)) ident = c_parser_peek_token (parser)->value; else { c_parser_error (parser, "expected identifier"); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; return expr; } c_parser_consume_token (parser); expr.value = build_component_ref (expr.value, ident); expr.original_code = ERROR_MARK; break; case CPP_DEREF: c_parser_consume_token (parser); expr = default_function_array_conversion (expr); if (c_parser_next_token_is (parser, CPP_NAME)) ident = c_parser_peek_token (parser)->value; else { c_parser_error (parser, "expected identifier"); expr.value = global_trees[TI_ERROR_MARK]; expr.original_code = ERROR_MARK; return expr; } c_parser_consume_token (parser); expr.value = build_component_ref (build_indirect_ref (expr.value, "->"), ident); expr.original_code = ERROR_MARK; break; case CPP_PLUS_PLUS: c_parser_consume_token (parser); expr = default_function_array_conversion (expr); expr.value = build_unary_op (POSTINCREMENT_EXPR, expr.value, 0); expr.original_code = ERROR_MARK; break; case CPP_MINUS_MINUS: c_parser_consume_token (parser); expr = default_function_array_conversion (expr); expr.value = build_unary_op (POSTDECREMENT_EXPR, expr.value, 0); expr.original_code = ERROR_MARK; break; default: return expr; } } } # 5649 "../../GCC/gcc/c-parser.c" static struct c_expr c_parser_expression (c_parser *parser) { struct c_expr expr; expr = c_parser_expr_no_commas (parser, ((void *)0)); while (c_parser_next_token_is (parser, CPP_COMMA)) { struct c_expr next; c_parser_consume_token (parser); next = c_parser_expr_no_commas (parser, ((void *)0)); next = default_function_array_conversion (next); expr.value = build_compound_expr (expr.value, next.value); expr.original_code = COMPOUND_EXPR; } return expr; } static struct c_expr c_parser_expression_conv (c_parser *parser) { struct c_expr expr; expr = c_parser_expression (parser); expr = default_function_array_conversion (expr); return expr; } # 5686 "../../GCC/gcc/c-parser.c" static tree c_parser_expr_list (c_parser *parser, unsigned char convert_p) { struct c_expr expr; tree ret, cur; expr = c_parser_expr_no_commas (parser, ((void *)0)); if (convert_p) expr = default_function_array_conversion (expr); ret = cur = build_tree_list_stat((tree) ((void *)0),expr.value ); while (c_parser_next_token_is (parser, CPP_COMMA)) { c_parser_consume_token (parser); expr = c_parser_expr_no_commas (parser, ((void *)0)); if (convert_p) expr = default_function_array_conversion (expr); cur = ((cur)->common.chain) = build_tree_list_stat((tree) ((void *)0),expr.value ); } return ret; } # 5729 "../../GCC/gcc/c-parser.c" static void c_parser_objc_class_definition (c_parser *parser) { unsigned char iface_p; tree id1; tree superclass; if (c_parser_next_token_is_keyword (parser, RID_AT_INTERFACE)) iface_p = 1; else if (c_parser_next_token_is_keyword (parser, RID_AT_IMPLEMENTATION)) iface_p = 0; else (fancy_abort ("../../GCC/gcc/c-parser.c", 5740, __FUNCTION__)); c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); return; } id1 = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) { tree id2; tree proto = (tree) ((void *)0); c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); return; } id2 = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (!iface_p) { objc_start_category_implementation (id1, id2); return; } if (c_parser_next_token_is (parser, CPP_LESS)) proto = c_parser_objc_protocol_refs (parser); objc_start_category_interface (id1, id2, proto); c_parser_objc_methodprotolist (parser); c_parser_require_keyword (parser, RID_AT_END, "expected %<@end%>"); objc_finish_interface (); return; } if (c_parser_next_token_is (parser, CPP_COLON)) { c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); return; } superclass = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); } else superclass = (tree) ((void *)0); if (iface_p) { tree proto = (tree) ((void *)0); if (c_parser_next_token_is (parser, CPP_LESS)) proto = c_parser_objc_protocol_refs (parser); objc_start_class_interface (id1, superclass, proto); } else objc_start_class_implementation (id1, superclass); if (c_parser_next_token_is (parser, CPP_OPEN_BRACE)) c_parser_objc_class_instance_variables (parser); if (iface_p) { objc_continue_interface (); c_parser_objc_methodprotolist (parser); c_parser_require_keyword (parser, RID_AT_END, "expected %<@end%>"); objc_finish_interface (); } else { objc_continue_implementation (); return; } } # 5836 "../../GCC/gcc/c-parser.c" static void c_parser_objc_class_instance_variables (c_parser *parser) { ((void)(!(c_parser_next_token_is (parser, CPP_OPEN_BRACE)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5839, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); while (c_parser_next_token_is_not (parser, CPP_EOF)) { tree decls; if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { if (pedantic) pedwarn ("extra semicolon in struct or union specified"); c_parser_consume_token (parser); continue; } if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) { c_parser_consume_token (parser); break; } if (c_parser_next_token_is_keyword (parser, RID_AT_PRIVATE)) { c_parser_consume_token (parser); objc_set_visibility (2); continue; } else if (c_parser_next_token_is_keyword (parser, RID_AT_PROTECTED)) { c_parser_consume_token (parser); objc_set_visibility (0); continue; } else if (c_parser_next_token_is_keyword (parser, RID_AT_PUBLIC)) { c_parser_consume_token (parser); objc_set_visibility (1); continue; } else if (c_parser_next_token_is (parser, CPP_PRAGMA)) { c_parser_pragma (parser, pragma_external); continue; } decls = c_parser_struct_declaration (parser); { tree ivar = nreverse (decls); for (; ivar; ivar = ((ivar)->common.chain)) objc_add_instance_variable (copy_node_stat (ivar )); } c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } } static void c_parser_objc_class_declaration (c_parser *parser) { tree list = (tree) ((void *)0); ((void)(!(c_parser_next_token_is_keyword (parser, RID_AT_CLASS)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5906, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); while (1) { tree id; if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); break; } id = c_parser_peek_token (parser)->value; list = chainon (list, build_tree_list_stat((tree) ((void *)0),id )); c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_COMMA)) c_parser_consume_token (parser); else break; } c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); objc_declare_class (list); } static void c_parser_objc_alias_declaration (c_parser *parser) { tree id1, id2; ((void)(!(c_parser_next_token_is_keyword (parser, RID_AT_ALIAS)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5940, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_SEMICOLON, ((void *)0)); return; } id1 = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); c_parser_skip_until_found (parser, CPP_SEMICOLON, ((void *)0)); return; } id2 = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); objc_declare_alias (id1, id2); } # 5973 "../../GCC/gcc/c-parser.c" static void c_parser_objc_protocol_definition (c_parser *parser) { ((void)(!(c_parser_next_token_is_keyword (parser, RID_AT_PROTOCOL)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 5976, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); return; } if (c_parser_peek_2nd_token (parser)->type == CPP_COMMA || c_parser_peek_2nd_token (parser)->type == CPP_SEMICOLON) { tree list = (tree) ((void *)0); while (1) { tree id; if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); break; } id = c_parser_peek_token (parser)->value; list = chainon (list, build_tree_list_stat((tree) ((void *)0),id )); c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_COMMA)) c_parser_consume_token (parser); else break; } c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); objc_declare_protocols (list); } else { tree id = c_parser_peek_token (parser)->value; tree proto = (tree) ((void *)0); c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_LESS)) proto = c_parser_objc_protocol_refs (parser); objc_pq_context = 1; objc_start_protocol (id, proto); c_parser_objc_methodprotolist (parser); c_parser_require_keyword (parser, RID_AT_END, "expected %<@end%>"); objc_pq_context = 0; objc_finish_interface (); } } # 6031 "../../GCC/gcc/c-parser.c" static enum tree_code c_parser_objc_method_type (c_parser *parser) { switch (c_parser_peek_token (parser)->type) { case CPP_PLUS: c_parser_consume_token (parser); return PLUS_EXPR; case CPP_MINUS: c_parser_consume_token (parser); return MINUS_EXPR; default: (fancy_abort ("../../GCC/gcc/c-parser.c", 6043, __FUNCTION__)); } } static void c_parser_objc_method_definition (c_parser *parser) { enum tree_code type = c_parser_objc_method_type (parser); tree decl; objc_set_method_type (type); objc_pq_context = 1; decl = c_parser_objc_method_decl (parser); if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { c_parser_consume_token (parser); if (pedantic) pedwarn ("extra semicolon in method definition specified"); } if (!c_parser_next_token_is (parser, CPP_OPEN_BRACE)) { c_parser_error (parser, "expected %<{%>"); return; } objc_pq_context = 0; objc_start_method_definition (decl); add_stmt (c_parser_compound_statement (parser)); objc_finish_method_definition (current_function_decl); } # 6092 "../../GCC/gcc/c-parser.c" static void c_parser_objc_methodprotolist (c_parser *parser) { while (1) { switch (c_parser_peek_token (parser)->type) { case CPP_SEMICOLON: if (pedantic) pedwarn ("ISO C does not allow extra %<;%> outside of a function"); c_parser_consume_token (parser); break; case CPP_PLUS: case CPP_MINUS: c_parser_objc_methodproto (parser); break; case CPP_PRAGMA: c_parser_pragma (parser, pragma_external); break; case CPP_EOF: return; default: if (c_parser_next_token_is_keyword (parser, RID_AT_END)) return; c_parser_declaration_or_fndef (parser, 0, 1, 0, 1); break; } } } static void c_parser_objc_methodproto (c_parser *parser) { enum tree_code type = c_parser_objc_method_type (parser); tree decl; objc_set_method_type (type); objc_pq_context = 1; decl = c_parser_objc_method_decl (parser); objc_pq_context = 0; objc_add_method_declaration (decl); c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } # 6174 "../../GCC/gcc/c-parser.c" static tree c_parser_objc_method_decl (c_parser *parser) { tree type = (tree) ((void *)0); tree sel; tree parms = (tree) ((void *)0); unsigned char ellipsis = 0; if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) { c_parser_consume_token (parser); type = c_parser_objc_type_name (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } sel = c_parser_objc_selector (parser); if (!sel || c_parser_next_token_is (parser, CPP_COLON)) { tree tsel = sel; tree list = (tree) ((void *)0); while (1) { tree atype = (tree) ((void *)0), id, keyworddecl; if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) break; if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) { c_parser_consume_token (parser); atype = c_parser_objc_type_name (parser); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); return global_trees[TI_ERROR_MARK]; } id = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); keyworddecl = objc_build_keyword_decl (tsel, atype, id); list = chainon (list, keyworddecl); tsel = c_parser_objc_selector (parser); if (!tsel && c_parser_next_token_is_not (parser, CPP_COLON)) break; } parms = make_node_stat (TREE_LIST ); while (c_parser_next_token_is (parser, CPP_COMMA)) { struct c_parm *parm; c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_ELLIPSIS)) { ellipsis = 1; c_parser_consume_token (parser); break; } parm = c_parser_parameter_declaration (parser, (tree) ((void *)0)); if (parm == ((void *)0)) break; parms = chainon (parms, build_tree_list_stat((tree) ((void *)0),grokparm (parm) )); } sel = list; } return objc_build_method_signature (type, sel, parms, ellipsis); } # 6260 "../../GCC/gcc/c-parser.c" static tree c_parser_objc_type_name (c_parser *parser) { tree quals = (tree) ((void *)0); struct c_type_name *typename = ((void *)0); tree type = (tree) ((void *)0); while (1) { c_token *token = c_parser_peek_token (parser); if (token->type == ((enum cpp_ttype) (N_TTYPES + 1)) && (token->keyword == RID_IN || token->keyword == RID_OUT || token->keyword == RID_INOUT || token->keyword == RID_BYCOPY || token->keyword == RID_BYREF || token->keyword == RID_ONEWAY)) { quals = chainon (quals, build_tree_list_stat((tree) ((void *)0),token->value )); c_parser_consume_token (parser); } else break; } if (c_parser_next_token_starts_typename (parser)) typename = c_parser_type_name (parser); if (typename) type = groktypename (typename); return build_tree_list_stat(quals,type ); } static tree c_parser_objc_protocol_refs (c_parser *parser) { tree list = (tree) ((void *)0); ((void)(!(c_parser_next_token_is (parser, CPP_LESS)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 6300, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); while (1) { tree id; if (c_parser_next_token_is_not (parser, CPP_NAME)) { c_parser_error (parser, "expected identifier"); break; } id = c_parser_peek_token (parser)->value; list = chainon (list, build_tree_list_stat((tree) ((void *)0),id )); c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_COMMA)) c_parser_consume_token (parser); else break; } c_parser_require (parser, CPP_GREATER, "expected %<>%>"); return list; } # 6335 "../../GCC/gcc/c-parser.c" static void c_parser_objc_try_catch_statement (c_parser *parser) { location_t loc; tree stmt; ((void)(!(c_parser_next_token_is_keyword (parser, RID_AT_TRY)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 6340, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); loc = c_parser_peek_token (parser)->location; stmt = c_parser_compound_statement (parser); objc_begin_try_stmt (loc, stmt); while (c_parser_next_token_is_keyword (parser, RID_AT_CATCH)) { struct c_parm *parm; c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) break; parm = c_parser_parameter_declaration (parser, (tree) ((void *)0)); if (parm == ((void *)0)) { c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, ((void *)0)); break; } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); objc_begin_catch_clause (grokparm (parm)); if (c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) c_parser_compound_statement_nostart (parser); objc_finish_catch_clause (); } if (c_parser_next_token_is_keyword (parser, RID_AT_FINALLY)) { location_t finloc; tree finstmt; c_parser_consume_token (parser); finloc = c_parser_peek_token (parser)->location; finstmt = c_parser_compound_statement (parser); objc_build_finally_clause (finloc, finstmt); } objc_finish_try_stmt (); } static void c_parser_objc_synchronized_statement (c_parser *parser) { location_t loc; tree expr, stmt; ((void)(!(c_parser_next_token_is_keyword (parser, RID_AT_SYNCHRONIZED)) ? fancy_abort ("../../GCC/gcc/c-parser.c", 6386, __FUNCTION__), 0 : 0)); c_parser_consume_token (parser); loc = c_parser_peek_token (parser)->location; if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { expr = c_parser_expression (parser).value; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } else expr = global_trees[TI_ERROR_MARK]; stmt = c_parser_compound_statement (parser); objc_build_synchronized (loc, expr, stmt); } # 6414 "../../GCC/gcc/c-parser.c" static tree c_parser_objc_selector (c_parser *parser) { c_token *token = c_parser_peek_token (parser); tree value = token->value; if (token->type == CPP_NAME) { c_parser_consume_token (parser); return value; } if (token->type != ((enum cpp_ttype) (N_TTYPES + 1))) return (tree) ((void *)0); switch (token->keyword) { case RID_ENUM: case RID_STRUCT: case RID_UNION: case RID_IF: case RID_ELSE: case RID_WHILE: case RID_DO: case RID_FOR: case RID_SWITCH: case RID_CASE: case RID_DEFAULT: case RID_BREAK: case RID_CONTINUE: case RID_RETURN: case RID_GOTO: case RID_ASM: case RID_SIZEOF: case RID_TYPEOF: case RID_ALIGNOF: case RID_UNSIGNED: case RID_LONG: case RID_CONST: case RID_SHORT: case RID_VOLATILE: case RID_SIGNED: case RID_RESTRICT: case RID_COMPLEX: case RID_IN: case RID_OUT: case RID_INOUT: case RID_BYCOPY: case RID_BYREF: case RID_ONEWAY: case RID_INT: case RID_CHAR: case RID_FLOAT: case RID_DOUBLE: case RID_VOID: case RID_BOOL: c_parser_consume_token (parser); return value; default: return (tree) ((void *)0); } } # 6489 "../../GCC/gcc/c-parser.c" static tree c_parser_objc_selector_arg (c_parser *parser) { tree sel = c_parser_objc_selector (parser); tree list = (tree) ((void *)0); if (sel && c_parser_next_token_is_not (parser, CPP_COLON)) return sel; while (1) { if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) return list; list = chainon (list, build_tree_list_stat(sel,(tree) ((void *)0) )); sel = c_parser_objc_selector (parser); if (!sel && c_parser_next_token_is_not (parser, CPP_COLON)) break; } return list; } # 6516 "../../GCC/gcc/c-parser.c" static tree c_parser_objc_receiver (c_parser *parser) { if (c_parser_peek_token (parser)->type == CPP_NAME && (c_parser_peek_token (parser)->id_kind == C_ID_TYPENAME || c_parser_peek_token (parser)->id_kind == C_ID_CLASSNAME)) { tree id = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); return objc_get_class_reference (id); } return c_parser_expression (parser).value; } # 6545 "../../GCC/gcc/c-parser.c" static tree c_parser_objc_message_args (c_parser *parser) { tree sel = c_parser_objc_selector (parser); tree list = (tree) ((void *)0); if (sel && c_parser_next_token_is_not (parser, CPP_COLON)) return sel; while (1) { tree keywordexpr; if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) return list; keywordexpr = c_parser_objc_keywordexpr (parser); list = chainon (list, build_tree_list_stat(sel,keywordexpr )); sel = c_parser_objc_selector (parser); if (!sel && c_parser_next_token_is_not (parser, CPP_COLON)) break; } return list; } static tree c_parser_objc_keywordexpr (c_parser *parser) { tree list = c_parser_expr_list (parser, 1); if (((list)->common.chain) == (tree) ((void *)0)) { return (__extension__ ({ const tree __t = (list); if (((enum tree_code) (__t)->common.code) != (TREE_LIST)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6580, __FUNCTION__, (TREE_LIST), 0); __t; })->list.value); } else { return list; } } static unsigned char c_parser_pragma (c_parser *parser, enum pragma_context context) { unsigned int id; id = c_parser_peek_token (parser)->pragma_kind; ((void)(!(id != PRAGMA_NONE) ? fancy_abort ("../../GCC/gcc/c-parser.c", 6601, __FUNCTION__), 0 : 0)); switch (id) { case PRAGMA_OMP_BARRIER: if (context != pragma_compound) { if (context == pragma_stmt) c_parser_error (parser, "%<#pragma omp barrier%> may only be " "used in compound statements"); goto bad_stmt; } c_parser_omp_barrier (parser); return 0; case PRAGMA_OMP_FLUSH: if (context != pragma_compound) { if (context == pragma_stmt) c_parser_error (parser, "%<#pragma omp flush%> may only be " "used in compound statements"); goto bad_stmt; } c_parser_omp_flush (parser); return 0; case PRAGMA_OMP_THREADPRIVATE: c_parser_omp_threadprivate (parser); return 0; case PRAGMA_OMP_SECTION: error ("%<#pragma omp section%> may only be used in " "%<#pragma omp sections%> construct"); c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, ((void *)0)); return 0; case PRAGMA_GCC_PCH_PREPROCESS: c_parser_error (parser, "%<#pragma GCC pch_preprocess%> must be first"); c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, ((void *)0)); return 0; default: if (id < PRAGMA_FIRST_EXTERNAL) { if (context == pragma_external) { bad_stmt: c_parser_error (parser, "expected declaration specifiers"); c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, ((void *)0)); return 0; } c_parser_omp_construct (parser); return 1; } break; } c_parser_consume_pragma (parser); c_invoke_pragma_handler (id); parser->error = 1; c_parser_skip_to_pragma_eol (parser); return 0; } enum cpp_ttype pragma_lex (tree *value) { c_token *tok = c_parser_peek_token (the_parser); enum cpp_ttype ret = tok->type; *value = tok->value; if (ret == CPP_PRAGMA_EOL || ret == CPP_EOF) ret = CPP_EOF; else { if (ret == ((enum cpp_ttype) (N_TTYPES + 1))) ret = CPP_NAME; c_parser_consume_token (the_parser); } return ret; } static void c_parser_pragma_pch_preprocess (c_parser *parser) { tree name = ((void *)0); c_parser_consume_pragma (parser); if (c_parser_next_token_is (parser, CPP_STRING)) { name = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); } else c_parser_error (parser, "expected string literal"); c_parser_skip_to_pragma_eol (parser); if (name) c_common_pch_pragma (parse_in, ((const char *)(__extension__ ({ const tree __t = (name); if (((enum tree_code) (__t)->common.code) != (STRING_CST)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6707, __FUNCTION__, (STRING_CST), 0); __t; })->string.str))); } # 6717 "../../GCC/gcc/c-parser.c" static pragma_omp_clause c_parser_omp_clause_name (c_parser *parser) { pragma_omp_clause result = PRAGMA_OMP_CLAUSE_NONE; if (c_parser_next_token_is_keyword (parser, RID_IF)) result = PRAGMA_OMP_CLAUSE_IF; else if (c_parser_next_token_is_keyword (parser, RID_DEFAULT)) result = PRAGMA_OMP_CLAUSE_DEFAULT; else if (c_parser_next_token_is (parser, CPP_NAME)) { const char *p = ((const char *) __extension__ ({ const tree __t = (c_parser_peek_token (parser)->value); if (((enum tree_code) (__t)->common.code) != (IDENTIFIER_NODE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6728, __FUNCTION__, (IDENTIFIER_NODE), 0); __t; })->identifier.id.str); switch (p[0]) { case 'c': if (!strcmp ("copyin", p)) result = PRAGMA_OMP_CLAUSE_COPYIN; else if (!strcmp ("copyprivate", p)) result = PRAGMA_OMP_CLAUSE_COPYPRIVATE; break; case 'f': if (!strcmp ("firstprivate", p)) result = PRAGMA_OMP_CLAUSE_FIRSTPRIVATE; break; case 'l': if (!strcmp ("lastprivate", p)) result = PRAGMA_OMP_CLAUSE_LASTPRIVATE; break; case 'n': if (!strcmp ("nowait", p)) result = PRAGMA_OMP_CLAUSE_NOWAIT; else if (!strcmp ("num_threads", p)) result = PRAGMA_OMP_CLAUSE_NUM_THREADS; break; case 'o': if (!strcmp ("ordered", p)) result = PRAGMA_OMP_CLAUSE_ORDERED; break; case 'p': if (!strcmp ("private", p)) result = PRAGMA_OMP_CLAUSE_PRIVATE; break; case 'r': if (!strcmp ("reduction", p)) result = PRAGMA_OMP_CLAUSE_REDUCTION; break; case 's': if (!strcmp ("schedule", p)) result = PRAGMA_OMP_CLAUSE_SCHEDULE; else if (!strcmp ("shared", p)) result = PRAGMA_OMP_CLAUSE_SHARED; break; } } if (result != PRAGMA_OMP_CLAUSE_NONE) c_parser_consume_token (parser); return result; } static void check_no_duplicate_clause (tree clauses, enum tree_code code, const char *name) { tree c; for (c = clauses; c ; c = ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6786, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain)) if ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6787, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->omp_clause.code == code) { error ("too many %qs clauses", name); break; } } # 6805 "../../GCC/gcc/c-parser.c" static tree c_parser_omp_variable_list (c_parser *parser, enum omp_clause_code kind, tree list) { if (c_parser_next_token_is_not (parser, CPP_NAME) || c_parser_peek_token (parser)->id_kind != C_ID_ID) c_parser_error (parser, "expected identifier"); while (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_token (parser)->id_kind == C_ID_ID) { tree t = lookup_name (c_parser_peek_token (parser)->value); if (t == (tree) ((void *)0)) undeclared_variable (c_parser_peek_token (parser)->value, c_parser_peek_token (parser)->location); else if (t == global_trees[TI_ERROR_MARK]) ; else if (kind != 0) { tree u = build_omp_clause (kind); __extension__ (*({const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (u); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6826, __FUNCTION__, (OMP_CLAUSE), 0); __t; })); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6826, __FUNCTION__, OMP_CLAUSE, 0); if ((int) __t->omp_clause.code < (int) (OMP_CLAUSE_PRIVATE) || (int) __t->omp_clause.code > (int) (OMP_CLAUSE_COPYPRIVATE)) omp_clause_range_check_failed (__t, "../../GCC/gcc/c-parser.c", 6826, __FUNCTION__, (OMP_CLAUSE_PRIVATE), (OMP_CLAUSE_COPYPRIVATE)); __t; }); const int __i = (0); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6826, __FUNCTION__, OMP_CLAUSE, 0); if (__i < 0 || __i >= omp_clause_num_ops [__t->omp_clause.code]) omp_clause_operand_check_failed (__i, __t, "../../GCC/gcc/c-parser.c", 6826, __FUNCTION__); &__t->omp_clause.ops[__i]; })) = t; ((__extension__ ({ const tree __t = (u); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6827, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain) = list; list = u; } else list = tree_cons_stat (t,(tree) ((void *)0),list ); c_parser_consume_token (parser); if (c_parser_next_token_is_not (parser, CPP_COMMA)) break; c_parser_consume_token (parser); } return list; } static tree c_parser_omp_var_list_parens (c_parser *parser, enum tree_code kind, tree list) { if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { list = c_parser_omp_variable_list (parser, kind, list); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } return list; } static tree c_parser_omp_clause_copyin (c_parser *parser, tree list) { return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_COPYIN, list); } static tree c_parser_omp_clause_copyprivate (c_parser *parser, tree list) { return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_COPYPRIVATE, list); } static tree c_parser_omp_clause_default (c_parser *parser, tree list) { enum omp_clause_default_kind kind = OMP_CLAUSE_DEFAULT_UNSPECIFIED; tree c; if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) return list; if (c_parser_next_token_is (parser, CPP_NAME)) { const char *p = ((const char *) __extension__ ({ const tree __t = (c_parser_peek_token (parser)->value); if (((enum tree_code) (__t)->common.code) != (IDENTIFIER_NODE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6889, __FUNCTION__, (IDENTIFIER_NODE), 0); __t; })->identifier.id.str); switch (p[0]) { case 'n': if (strcmp ("none", p) != 0) goto invalid_kind; kind = OMP_CLAUSE_DEFAULT_NONE; break; case 's': if (strcmp ("shared", p) != 0) goto invalid_kind; kind = OMP_CLAUSE_DEFAULT_SHARED; break; default: goto invalid_kind; } c_parser_consume_token (parser); } else { invalid_kind: c_parser_error (parser, "expected %<none%> or %<shared%>"); } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (kind == OMP_CLAUSE_DEFAULT_UNSPECIFIED) return list; check_no_duplicate_clause (list, OMP_CLAUSE_DEFAULT, "default"); c = build_omp_clause (OMP_CLAUSE_DEFAULT); ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6923, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain) = list; (__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6924, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_DEFAULT)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 6924, __FUNCTION__, (OMP_CLAUSE_DEFAULT)); __t; })->omp_clause.subcode.default_kind) = kind; return c; } static tree c_parser_omp_clause_firstprivate (c_parser *parser, tree list) { return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_FIRSTPRIVATE, list); } static tree c_parser_omp_clause_if (c_parser *parser, tree list) { if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) { tree t = c_parser_paren_condition (parser); tree c; check_no_duplicate_clause (list, OMP_CLAUSE_IF, "if"); c = build_omp_clause (OMP_CLAUSE_IF); __extension__ (*({const tree __t = __extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6952, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_IF)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 6952, __FUNCTION__, (OMP_CLAUSE_IF)); __t; }); const int __i = (0); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6952, __FUNCTION__, OMP_CLAUSE, 0); if (__i < 0 || __i >= omp_clause_num_ops [__t->omp_clause.code]) omp_clause_operand_check_failed (__i, __t, "../../GCC/gcc/c-parser.c", 6952, __FUNCTION__); &__t->omp_clause.ops[__i]; })) = t; ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6953, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain) = list; list = c; } else c_parser_error (parser, "expected %<(%>"); return list; } static tree c_parser_omp_clause_lastprivate (c_parser *parser, tree list) { return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_LASTPRIVATE, list); } static tree c_parser_omp_clause_nowait (c_parser *parser __attribute__ ((__unused__)), tree list) { tree c; check_no_duplicate_clause (list, OMP_CLAUSE_NOWAIT, "nowait"); c = build_omp_clause (OMP_CLAUSE_NOWAIT); ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 6982, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain) = list; return c; } static tree c_parser_omp_clause_num_threads (c_parser *parser, tree list) { if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { tree c, t = c_parser_expression (parser).value; c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); if (!(((enum tree_code) (((t)->common.type))->common.code) == ENUMERAL_TYPE || ((enum tree_code) (((t)->common.type))->common.code) == BOOLEAN_TYPE || ((enum tree_code) (((t)->common.type))->common.code) == INTEGER_TYPE)) { c_parser_error (parser, "expected integer expression"); return list; } c = fold_build2_stat (LE_EXPR, global_trees[TI_BOOLEAN_TYPE], t, build_int_cst (((t)->common.type), 0) ); if (c == global_trees[TI_BOOLEAN_TRUE]) { warning (0, "%<num_threads%> value must be positive"); t = global_trees[TI_INTEGER_ONE]; } check_no_duplicate_clause (list, OMP_CLAUSE_NUM_THREADS, "num_threads"); c = build_omp_clause (OMP_CLAUSE_NUM_THREADS); __extension__ (*({const tree __t = __extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7016, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_NUM_THREADS)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 7016, __FUNCTION__, (OMP_CLAUSE_NUM_THREADS)); __t; }); const int __i = (0); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7016, __FUNCTION__, OMP_CLAUSE, 0); if (__i < 0 || __i >= omp_clause_num_ops [__t->omp_clause.code]) omp_clause_operand_check_failed (__i, __t, "../../GCC/gcc/c-parser.c", 7016, __FUNCTION__); &__t->omp_clause.ops[__i]; })) = t; ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7017, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain) = list; list = c; } return list; } static tree c_parser_omp_clause_ordered (c_parser *parser __attribute__ ((__unused__)), tree list) { tree c; check_no_duplicate_clause (list, OMP_CLAUSE_ORDERED, "ordered"); c = build_omp_clause (OMP_CLAUSE_ORDERED); ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7035, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain) = list; return c; } static tree c_parser_omp_clause_private (c_parser *parser, tree list) { return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_PRIVATE, list); } static tree c_parser_omp_clause_reduction (c_parser *parser, tree list) { if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) { enum tree_code code; switch (c_parser_peek_token (parser)->type) { case CPP_PLUS: code = PLUS_EXPR; break; case CPP_MULT: code = MULT_EXPR; break; case CPP_MINUS: code = MINUS_EXPR; break; case CPP_AND: code = BIT_AND_EXPR; break; case CPP_XOR: code = BIT_XOR_EXPR; break; case CPP_OR: code = BIT_IOR_EXPR; break; case CPP_AND_AND: code = TRUTH_ANDIF_EXPR; break; case CPP_OR_OR: code = TRUTH_ORIF_EXPR; break; default: c_parser_error (parser, "expected %<+%>, %<*%>, %<-%>, %<&%>, " "%<^%>, %<|%>, %<&&%>, or %<||%>"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, 0); return list; } c_parser_consume_token (parser); if (c_parser_require (parser, CPP_COLON, "expected %<:%>")) { tree nl, c; nl = c_parser_omp_variable_list (parser, OMP_CLAUSE_REDUCTION, list); for (c = nl; c != list; c = ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7100, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain)) (__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7101, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_REDUCTION)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 7101, __FUNCTION__, (OMP_CLAUSE_REDUCTION)); __t; })->omp_clause.subcode.reduction_code) = code; list = nl; } c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } return list; } # 7118 "../../GCC/gcc/c-parser.c" static tree c_parser_omp_clause_schedule (c_parser *parser, tree list) { tree c, t; if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) return list; c = build_omp_clause (OMP_CLAUSE_SCHEDULE); if (c_parser_next_token_is (parser, CPP_NAME)) { tree kind = c_parser_peek_token (parser)->value; const char *p = ((const char *) __extension__ ({ const tree __t = (kind); if (((enum tree_code) (__t)->common.code) != (IDENTIFIER_NODE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7131, __FUNCTION__, (IDENTIFIER_NODE), 0); __t; })->identifier.id.str); switch (p[0]) { case 'd': if (strcmp ("dynamic", p) != 0) goto invalid_kind; (__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7138, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_SCHEDULE)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 7138, __FUNCTION__, (OMP_CLAUSE_SCHEDULE)); __t; })->omp_clause.subcode.schedule_kind) = OMP_CLAUSE_SCHEDULE_DYNAMIC; break; case 'g': if (strcmp ("guided", p) != 0) goto invalid_kind; (__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7144, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_SCHEDULE)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 7144, __FUNCTION__, (OMP_CLAUSE_SCHEDULE)); __t; })->omp_clause.subcode.schedule_kind) = OMP_CLAUSE_SCHEDULE_GUIDED; break; case 'r': if (strcmp ("runtime", p) != 0) goto invalid_kind; (__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7150, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_SCHEDULE)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 7150, __FUNCTION__, (OMP_CLAUSE_SCHEDULE)); __t; })->omp_clause.subcode.schedule_kind) = OMP_CLAUSE_SCHEDULE_RUNTIME; break; default: goto invalid_kind; } } else if (c_parser_next_token_is_keyword (parser, RID_STATIC)) (__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7158, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_SCHEDULE)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 7158, __FUNCTION__, (OMP_CLAUSE_SCHEDULE)); __t; })->omp_clause.subcode.schedule_kind) = OMP_CLAUSE_SCHEDULE_STATIC; else goto invalid_kind; c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_COMMA)) { c_parser_consume_token (parser); t = c_parser_expr_no_commas (parser, ((void *)0)).value; if ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7169, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_SCHEDULE)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 7169, __FUNCTION__, (OMP_CLAUSE_SCHEDULE)); __t; })->omp_clause.subcode.schedule_kind) == OMP_CLAUSE_SCHEDULE_RUNTIME) error ("schedule %<runtime%> does not take " "a %<chunk_size%> parameter"); else if (((enum tree_code) (((t)->common.type))->common.code) == INTEGER_TYPE) __extension__ (*({const tree __t = __extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7173, __FUNCTION__, OMP_CLAUSE, 0); if (__t->omp_clause.code != (OMP_CLAUSE_SCHEDULE)) omp_clause_check_failed (__t, "../../GCC/gcc/c-parser.c", 7173, __FUNCTION__, (OMP_CLAUSE_SCHEDULE)); __t; }); const int __i = (0); if (((enum tree_code) (__t)->common.code) != OMP_CLAUSE) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7173, __FUNCTION__, OMP_CLAUSE, 0); if (__i < 0 || __i >= omp_clause_num_ops [__t->omp_clause.code]) omp_clause_operand_check_failed (__i, __t, "../../GCC/gcc/c-parser.c", 7173, __FUNCTION__); &__t->omp_clause.ops[__i]; })) = t; else c_parser_error (parser, "expected integer expression"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } else c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<,%> or %<)%>"); check_no_duplicate_clause (list, OMP_CLAUSE_SCHEDULE, "schedule"); ((__extension__ ({ const tree __t = (c); if (((enum tree_code) (__t)->common.code) != (OMP_CLAUSE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7184, __FUNCTION__, (OMP_CLAUSE), 0); __t; }))->common.chain) = list; return c; invalid_kind: c_parser_error (parser, "invalid schedule kind"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, 0); return list; } static tree c_parser_omp_clause_shared (c_parser *parser, tree list) { return c_parser_omp_var_list_parens (parser, OMP_CLAUSE_SHARED, list); } static tree c_parser_omp_all_clauses (c_parser *parser, unsigned int mask, const char *where) { tree clauses = ((void *)0); while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) { const pragma_omp_clause c_kind = c_parser_omp_clause_name (parser); const char *c_name; tree prev = clauses; switch (c_kind) { case PRAGMA_OMP_CLAUSE_COPYIN: clauses = c_parser_omp_clause_copyin (parser, clauses); c_name = "copyin"; break; case PRAGMA_OMP_CLAUSE_COPYPRIVATE: clauses = c_parser_omp_clause_copyprivate (parser, clauses); c_name = "copyprivate"; break; case PRAGMA_OMP_CLAUSE_DEFAULT: clauses = c_parser_omp_clause_default (parser, clauses); c_name = "default"; break; case PRAGMA_OMP_CLAUSE_FIRSTPRIVATE: clauses = c_parser_omp_clause_firstprivate (parser, clauses); c_name = "firstprivate"; break; case PRAGMA_OMP_CLAUSE_IF: clauses = c_parser_omp_clause_if (parser, clauses); c_name = "if"; break; case PRAGMA_OMP_CLAUSE_LASTPRIVATE: clauses = c_parser_omp_clause_lastprivate (parser, clauses); c_name = "lastprivate"; break; case PRAGMA_OMP_CLAUSE_NOWAIT: clauses = c_parser_omp_clause_nowait (parser, clauses); c_name = "nowait"; break; case PRAGMA_OMP_CLAUSE_NUM_THREADS: clauses = c_parser_omp_clause_num_threads (parser, clauses); c_name = "num_threads"; break; case PRAGMA_OMP_CLAUSE_ORDERED: clauses = c_parser_omp_clause_ordered (parser, clauses); c_name = "ordered"; break; case PRAGMA_OMP_CLAUSE_PRIVATE: clauses = c_parser_omp_clause_private (parser, clauses); c_name = "private"; break; case PRAGMA_OMP_CLAUSE_REDUCTION: clauses = c_parser_omp_clause_reduction (parser, clauses); c_name = "reduction"; break; case PRAGMA_OMP_CLAUSE_SCHEDULE: clauses = c_parser_omp_clause_schedule (parser, clauses); c_name = "schedule"; break; case PRAGMA_OMP_CLAUSE_SHARED: clauses = c_parser_omp_clause_shared (parser, clauses); c_name = "shared"; break; default: c_parser_error (parser, "expected %<#pragma omp%> clause"); goto saw_error; } if (((mask >> c_kind) & 1) == 0 && !parser->error) { clauses = prev; error ("%qs is not valid for %qs", c_name, where); } } saw_error: c_parser_skip_to_pragma_eol (parser); return c_finish_omp_clauses (clauses); } # 7300 "../../GCC/gcc/c-parser.c" static tree c_parser_omp_structured_block (c_parser *parser) { tree stmt = push_stmt_list (); c_parser_statement (parser); return pop_stmt_list (stmt); } # 7319 "../../GCC/gcc/c-parser.c" static void c_parser_omp_atomic (c_parser *parser) { tree lhs, rhs; tree stmt; enum tree_code code; c_parser_skip_to_pragma_eol (parser); lhs = c_parser_unary_expression (parser).value; switch (((enum tree_code) (lhs)->common.code)) { case ERROR_MARK: saw_error: c_parser_skip_to_end_of_block_or_statement (parser); return; case PREINCREMENT_EXPR: case POSTINCREMENT_EXPR: lhs = __extension__ (*({const tree __t = __extension__ ({ const tree __t = (lhs); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7338, __FUNCTION__); __t; }); const int __i = (0); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7338, __FUNCTION__); &__t->exp.operands[__i]; })); code = PLUS_EXPR; rhs = global_trees[TI_INTEGER_ONE]; break; case PREDECREMENT_EXPR: case POSTDECREMENT_EXPR: lhs = __extension__ (*({const tree __t = __extension__ ({ const tree __t = (lhs); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7345, __FUNCTION__); __t; }); const int __i = (0); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7345, __FUNCTION__); &__t->exp.operands[__i]; })); code = MINUS_EXPR; rhs = global_trees[TI_INTEGER_ONE]; break; default: switch (c_parser_peek_token (parser)->type) { case CPP_MULT_EQ: code = MULT_EXPR; break; case CPP_DIV_EQ: code = TRUNC_DIV_EXPR; break; case CPP_PLUS_EQ: code = PLUS_EXPR; break; case CPP_MINUS_EQ: code = MINUS_EXPR; break; case CPP_LSHIFT_EQ: code = LSHIFT_EXPR; break; case CPP_RSHIFT_EQ: code = RSHIFT_EXPR; break; case CPP_AND_EQ: code = BIT_AND_EXPR; break; case CPP_OR_EQ: code = BIT_IOR_EXPR; break; case CPP_XOR_EQ: code = BIT_XOR_EXPR; break; default: c_parser_error (parser, "invalid operator for %<#pragma omp atomic%>"); goto saw_error; } c_parser_consume_token (parser); rhs = c_parser_expression (parser).value; break; } stmt = c_finish_omp_atomic (code, lhs, rhs); if (stmt != global_trees[TI_ERROR_MARK]) add_stmt (stmt); c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } static void c_parser_omp_barrier (c_parser *parser) { c_parser_consume_pragma (parser); c_parser_skip_to_pragma_eol (parser); c_finish_omp_barrier (); } static tree c_parser_omp_critical (c_parser *parser) { tree stmt, name = ((void *)0); if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) { c_parser_consume_token (parser); if (c_parser_next_token_is (parser, CPP_NAME)) { name = c_parser_peek_token (parser)->value; c_parser_consume_token (parser); c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>"); } else c_parser_error (parser, "expected identifier"); } else if (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) c_parser_error (parser, "expected %<(%> or end of line"); c_parser_skip_to_pragma_eol (parser); stmt = c_parser_omp_structured_block (parser); return c_finish_omp_critical (stmt, name); } static void c_parser_omp_flush (c_parser *parser) { c_parser_consume_pragma (parser); if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)) c_parser_omp_var_list_parens (parser, 0, ((void *)0)); else if (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL)) c_parser_error (parser, "expected %<(%> or end of line"); c_parser_skip_to_pragma_eol (parser); c_finish_omp_flush (); } static tree c_parser_omp_for_loop (c_parser *parser) { tree decl, cond, incr, save_break, save_cont, body, init; location_t loc; if (!c_parser_next_token_is_keyword (parser, RID_FOR)) { c_parser_error (parser, "for statement expected"); return ((void *)0); } loc = c_parser_peek_token (parser)->location; c_parser_consume_token (parser); if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>")) return ((void *)0); if (c_parser_next_token_starts_declspecs (parser)) { c_parser_declaration_or_fndef (parser, 1, 1, 1, 1); decl = check_for_loop_decls (); if (decl == ((void *)0)) goto error_init; init = decl; } else if (c_parser_next_token_is (parser, CPP_NAME) && c_parser_peek_2nd_token (parser)->type == CPP_EQ) { decl = c_parser_postfix_expression (parser).value; c_parser_require (parser, CPP_EQ, "expected %<=%>"); init = c_parser_expr_no_commas (parser, ((void *)0)).value; init = build_modify_expr (decl, NOP_EXPR, init); init = c_process_expr_stmt (init); c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } else goto error_init; cond = (tree) ((void *)0); if (c_parser_next_token_is_not (parser, CPP_SEMICOLON)) { cond = c_parser_expression_conv (parser).value; cond = c_objc_common_truthvalue_conversion (cond); if (((tree_code_type[(int) (((enum tree_code) (cond)->common.code))]) >= tcc_reference && (tree_code_type[(int) (((enum tree_code) (cond)->common.code))]) <= tcc_expression)) annotate_with_locus (cond, input_location); } c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); incr = (tree) ((void *)0); if (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN)) incr = c_process_expr_stmt (c_parser_expression (parser).value); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); parse_body: save_break = c_break_label; c_break_label = global_trees[TI_SIZE_ONE]; save_cont = c_cont_label; c_cont_label = (tree) ((void *)0); body = push_stmt_list (); add_stmt (c_parser_c99_block_statement (parser)); if (c_cont_label) add_stmt (build1_stat (LABEL_EXPR,global_trees[TI_VOID_TYPE],c_cont_label )); body = pop_stmt_list (body); c_break_label = save_break; c_cont_label = save_cont; if (decl != ((void *)0) && decl != global_trees[TI_ERROR_MARK] && init != global_trees[TI_ERROR_MARK]) return c_finish_omp_for (loc, decl, init, cond, incr, body, ((void *)0)); return ((void *)0); error_init: c_parser_error (parser, "expected iteration declaration or initialization"); c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>"); decl = init = cond = incr = (tree) ((void *)0); goto parse_body; } # 7564 "../../GCC/gcc/c-parser.c" static tree c_parser_omp_for (c_parser *parser) { tree block, clauses, ret; clauses = c_parser_omp_all_clauses (parser, ( (1u << PRAGMA_OMP_CLAUSE_PRIVATE) | (1u << PRAGMA_OMP_CLAUSE_FIRSTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_LASTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_REDUCTION) | (1u << PRAGMA_OMP_CLAUSE_ORDERED) | (1u << PRAGMA_OMP_CLAUSE_SCHEDULE) | (1u << PRAGMA_OMP_CLAUSE_NOWAIT)), "#pragma omp for"); block = c_begin_compound_stmt (1); ret = c_parser_omp_for_loop (parser); if (ret) __extension__ (*({const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (ret); if (((enum tree_code) (__t)->common.code) != (OMP_FOR)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7575, __FUNCTION__, (OMP_FOR), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7575, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7575, __FUNCTION__); &__t->exp.operands[__i]; })) = clauses; block = c_end_compound_stmt (block, 1); add_stmt (block); return ret; } static tree c_parser_omp_master (c_parser *parser) { c_parser_skip_to_pragma_eol (parser); return c_finish_omp_master (c_parser_omp_structured_block (parser)); } static tree c_parser_omp_ordered (c_parser *parser) { c_parser_skip_to_pragma_eol (parser); return c_finish_omp_ordered (c_parser_omp_structured_block (parser)); } # 7615 "../../GCC/gcc/c-parser.c" static tree c_parser_omp_sections_scope (c_parser *parser) { tree stmt, substmt; unsigned char error_suppress = 0; location_t loc; if (!c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>")) { parser->error = 0; return (tree) ((void *)0); } stmt = push_stmt_list (); loc = c_parser_peek_token (parser)->location; if (c_parser_peek_token (parser)->pragma_kind != PRAGMA_OMP_SECTION) { substmt = push_stmt_list (); while (1) { c_parser_statement (parser); if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_OMP_SECTION) break; if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) break; if (c_parser_next_token_is (parser, CPP_EOF)) break; } substmt = pop_stmt_list (substmt); substmt = build1_stat (OMP_SECTION,global_trees[TI_VOID_TYPE],substmt ); annotate_with_locus (substmt, loc); add_stmt (substmt); } while (1) { if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE)) break; if (c_parser_next_token_is (parser, CPP_EOF)) break; loc = c_parser_peek_token (parser)->location; if (c_parser_peek_token (parser)->pragma_kind == PRAGMA_OMP_SECTION) { c_parser_consume_pragma (parser); c_parser_skip_to_pragma_eol (parser); error_suppress = 0; } else if (!error_suppress) { error ("expected %<#pragma omp section%> or %<}%>"); error_suppress = 1; } substmt = c_parser_omp_structured_block (parser); substmt = build1_stat (OMP_SECTION,global_trees[TI_VOID_TYPE],substmt ); annotate_with_locus (substmt, loc); add_stmt (substmt); } c_parser_skip_until_found (parser, CPP_CLOSE_BRACE, "expected %<#pragma omp section%> or %<}%>"); substmt = pop_stmt_list (stmt); stmt = make_node_stat (OMP_SECTIONS ); ((stmt)->common.type) = global_trees[TI_VOID_TYPE]; __extension__ (*({const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (OMP_SECTIONS)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7686, __FUNCTION__, (OMP_SECTIONS), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7686, __FUNCTION__); __t; }); const int __i = (0); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7686, __FUNCTION__); &__t->exp.operands[__i]; })) = substmt; return add_stmt (stmt); } # 7703 "../../GCC/gcc/c-parser.c" static tree c_parser_omp_sections (c_parser *parser) { tree block, clauses, ret; clauses = c_parser_omp_all_clauses (parser, ( (1u << PRAGMA_OMP_CLAUSE_PRIVATE) | (1u << PRAGMA_OMP_CLAUSE_FIRSTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_LASTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_REDUCTION) | (1u << PRAGMA_OMP_CLAUSE_NOWAIT)), "#pragma omp sections"); block = c_begin_compound_stmt (1); ret = c_parser_omp_sections_scope (parser); if (ret) __extension__ (*({const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (ret); if (((enum tree_code) (__t)->common.code) != (OMP_SECTIONS)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7714, __FUNCTION__, (OMP_SECTIONS), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7714, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7714, __FUNCTION__); &__t->exp.operands[__i]; })) = clauses; block = c_end_compound_stmt (block, 1); add_stmt (block); return ret; } # 7737 "../../GCC/gcc/c-parser.c" static tree c_parser_omp_parallel (c_parser *parser) { enum pragma_kind p_kind = PRAGMA_OMP_PARALLEL; const char *p_name = "#pragma omp parallel"; tree stmt, clauses, par_clause, ws_clause, block; unsigned int mask = ( (1u << PRAGMA_OMP_CLAUSE_IF) | (1u << PRAGMA_OMP_CLAUSE_PRIVATE) | (1u << PRAGMA_OMP_CLAUSE_FIRSTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_DEFAULT) | (1u << PRAGMA_OMP_CLAUSE_SHARED) | (1u << PRAGMA_OMP_CLAUSE_COPYIN) | (1u << PRAGMA_OMP_CLAUSE_REDUCTION) | (1u << PRAGMA_OMP_CLAUSE_NUM_THREADS)); if (c_parser_next_token_is_keyword (parser, RID_FOR)) { c_parser_consume_token (parser); p_kind = PRAGMA_OMP_PARALLEL_FOR; p_name = "#pragma omp parallel for"; mask |= ( (1u << PRAGMA_OMP_CLAUSE_PRIVATE) | (1u << PRAGMA_OMP_CLAUSE_FIRSTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_LASTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_REDUCTION) | (1u << PRAGMA_OMP_CLAUSE_ORDERED) | (1u << PRAGMA_OMP_CLAUSE_SCHEDULE) | (1u << PRAGMA_OMP_CLAUSE_NOWAIT)); mask &= ~(1u << PRAGMA_OMP_CLAUSE_NOWAIT); } else if (c_parser_next_token_is (parser, CPP_NAME)) { const char *p = ((const char *) __extension__ ({ const tree __t = (c_parser_peek_token (parser)->value); if (((enum tree_code) (__t)->common.code) != (IDENTIFIER_NODE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7755, __FUNCTION__, (IDENTIFIER_NODE), 0); __t; })->identifier.id.str); if (strcmp (p, "sections") == 0) { c_parser_consume_token (parser); p_kind = PRAGMA_OMP_PARALLEL_SECTIONS; p_name = "#pragma omp parallel sections"; mask |= ( (1u << PRAGMA_OMP_CLAUSE_PRIVATE) | (1u << PRAGMA_OMP_CLAUSE_FIRSTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_LASTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_REDUCTION) | (1u << PRAGMA_OMP_CLAUSE_NOWAIT)); mask &= ~(1u << PRAGMA_OMP_CLAUSE_NOWAIT); } } clauses = c_parser_omp_all_clauses (parser, mask, p_name); switch (p_kind) { case PRAGMA_OMP_PARALLEL: block = c_begin_omp_parallel (); c_parser_statement (parser); stmt = c_finish_omp_parallel (clauses, block); break; case PRAGMA_OMP_PARALLEL_FOR: block = c_begin_omp_parallel (); c_split_parallel_clauses (clauses, &par_clause, &ws_clause); stmt = c_parser_omp_for_loop (parser); if (stmt) __extension__ (*({const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (OMP_FOR)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7781, __FUNCTION__, (OMP_FOR), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7781, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7781, __FUNCTION__); &__t->exp.operands[__i]; })) = ws_clause; stmt = c_finish_omp_parallel (par_clause, block); ((__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (OMP_PARALLEL)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7783, __FUNCTION__, (OMP_PARALLEL), 0); __t; }))->common.private_flag) = 1; break; case PRAGMA_OMP_PARALLEL_SECTIONS: block = c_begin_omp_parallel (); c_split_parallel_clauses (clauses, &par_clause, &ws_clause); stmt = c_parser_omp_sections_scope (parser); if (stmt) __extension__ (*({const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (OMP_SECTIONS)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7791, __FUNCTION__, (OMP_SECTIONS), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7791, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7791, __FUNCTION__); &__t->exp.operands[__i]; })) = ws_clause; stmt = c_finish_omp_parallel (par_clause, block); ((__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (OMP_PARALLEL)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7793, __FUNCTION__, (OMP_PARALLEL), 0); __t; }))->common.private_flag) = 1; break; default: (fancy_abort ("../../GCC/gcc/c-parser.c", 7797, __FUNCTION__)); } return stmt; } # 7814 "../../GCC/gcc/c-parser.c" static tree c_parser_omp_single (c_parser *parser) { tree stmt = make_node_stat (OMP_SINGLE ); ((stmt)->common.type) = global_trees[TI_VOID_TYPE]; __extension__ (*({const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (OMP_SINGLE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7820, __FUNCTION__, (OMP_SINGLE), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7820, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7820, __FUNCTION__); &__t->exp.operands[__i]; })) = c_parser_omp_all_clauses (parser, ( (1u << PRAGMA_OMP_CLAUSE_PRIVATE) | (1u << PRAGMA_OMP_CLAUSE_FIRSTPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_COPYPRIVATE) | (1u << PRAGMA_OMP_CLAUSE_NOWAIT)), "#pragma omp single"); __extension__ (*({const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (OMP_SINGLE)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7823, __FUNCTION__, (OMP_SINGLE), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "../../GCC/gcc/c-parser.c", 7823, __FUNCTION__); __t; }); const int __i = (0); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "../../GCC/gcc/c-parser.c", 7823, __FUNCTION__); &__t->exp.operands[__i]; })) = c_parser_omp_structured_block (parser); return add_stmt (stmt); } static void c_parser_omp_construct (c_parser *parser) { enum pragma_kind p_kind; location_t loc; tree stmt; loc = c_parser_peek_token (parser)->location; p_kind = c_parser_peek_token (parser)->pragma_kind; c_parser_consume_pragma (parser); if (p_kind != PRAGMA_OMP_ATOMIC) c_maybe_initialize_eh (); switch (p_kind) { case PRAGMA_OMP_ATOMIC: c_parser_omp_atomic (parser); return; case PRAGMA_OMP_CRITICAL: stmt = c_parser_omp_critical (parser); break; case PRAGMA_OMP_FOR: stmt = c_parser_omp_for (parser); break; case PRAGMA_OMP_MASTER: stmt = c_parser_omp_master (parser); break; case PRAGMA_OMP_ORDERED: stmt = c_parser_omp_ordered (parser); break; case PRAGMA_OMP_PARALLEL: stmt = c_parser_omp_parallel (parser); break; case PRAGMA_OMP_SECTIONS: stmt = c_parser_omp_sections (parser); break; case PRAGMA_OMP_SINGLE: stmt = c_parser_omp_single (parser); break; default: (fancy_abort ("../../GCC/gcc/c-parser.c", 7875, __FUNCTION__)); } if (stmt) annotate_with_locus (stmt, loc); } static void c_parser_omp_threadprivate (c_parser *parser) { tree vars, t; c_parser_consume_pragma (parser); vars = c_parser_omp_var_list_parens (parser, 0, ((void *)0)); if (!targetm.have_tls) sorry ("threadprivate variables not supported in this target"); for (t = vars; t; t = ((t)->common.chain)) { tree v = (__extension__ ({ const tree __t = (t); if (((enum tree_code) (__t)->common.code) != (TREE_LIST)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7900, __FUNCTION__, (TREE_LIST), 0); __t; })->list.purpose); if (((v)->common.used_flag) && !(__extension__ ({ const tree __t = (__extension__ ({ const tree __t = (v); if (((enum tree_code) (__t)->common.code) != (VAR_DECL)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7904, __FUNCTION__, (VAR_DECL), 0); __t; })); if (tree_contains_struct[((enum tree_code) (__t)->common.code)][(TS_DECL_COMMON)] != 1) tree_contains_struct_check_failed (__t, (TS_DECL_COMMON), "../../GCC/gcc/c-parser.c", 7904, __FUNCTION__); __t; })->decl_common.lang_flag_3)) error ("%qE declared %<threadprivate%> after first use", v); else if (! ((v)->common.static_flag) && ! (__extension__ ({ const tree __t = (v); if (tree_contains_struct[((enum tree_code) (__t)->common.code)][(TS_DECL_COMMON)] != 1) tree_contains_struct_check_failed (__t, (TS_DECL_COMMON), "../../GCC/gcc/c-parser.c", 7906, __FUNCTION__); __t; })->decl_common.decl_flag_2)) error ("automatic variable %qE cannot be %<threadprivate%>", v); else if (! ((__extension__ ({ const tree __t = (((v)->common.type)); if (tree_code_type[(int) (((enum tree_code) (__t)->common.code))] != (tcc_type)) tree_class_check_failed (__t, (tcc_type), "../../GCC/gcc/c-parser.c", 7908, __FUNCTION__); __t; })->type.size) != (tree) ((void *)0))) error ("%<threadprivate%> %qE has incomplete type", v); else { if (! (__extension__ ({ const tree __t = (v); if (((enum tree_code) (__t)->common.code) != (VAR_DECL)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7912, __FUNCTION__, (VAR_DECL), 0); __t; })->decl_with_vis.tls_model != TLS_MODEL_NONE)) { (__extension__ ({ const tree __t = (v); if (((enum tree_code) (__t)->common.code) != (VAR_DECL)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7914, __FUNCTION__, (VAR_DECL), 0); __t; })->decl_with_vis.tls_model) = decl_default_tls_model (v); if ((((tree_contains_struct[(((enum tree_code) (v)->common.code))][(TS_DECL_WRTL)])) && __extension__ ({ const tree __t = (v); if (tree_contains_struct[((enum tree_code) (__t)->common.code)][(TS_DECL_WRTL)] != 1) tree_contains_struct_check_failed (__t, (TS_DECL_WRTL), "../../GCC/gcc/c-parser.c", 7918, __FUNCTION__); __t; })->decl_with_rtl.rtl != ((void *)0))) make_decl_rtl (v); } (__extension__ ({ const tree __t = (__extension__ ({ const tree __t = (v); if (((enum tree_code) (__t)->common.code) != (VAR_DECL)) tree_check_failed (__t, "../../GCC/gcc/c-parser.c", 7921, __FUNCTION__, (VAR_DECL), 0); __t; })); if (tree_contains_struct[((enum tree_code) (__t)->common.code)][(TS_DECL_COMMON)] != 1) tree_contains_struct_check_failed (__t, (TS_DECL_COMMON), "../../GCC/gcc/c-parser.c", 7921, __FUNCTION__); __t; })->decl_common.lang_flag_3) = 1; } } c_parser_skip_to_pragma_eol (parser); } void c_parse_file (void) { c_parser tparser; memset (&tparser, 0, sizeof tparser); the_parser = &tparser; if (c_parser_peek_token (&tparser)->pragma_kind == PRAGMA_GCC_PCH_PREPROCESS) c_parser_pragma_pch_preprocess (&tparser); the_parser = ((c_parser *) ggc_alloc_stat (sizeof (c_parser) )); *the_parser = tparser; c_parser_translation_unit (the_parser); the_parser = ((void *)0); } # 1 "./gt-c-parser.h" 1 # 22 "./gt-c-parser.h" void gt_ggc_mx_c_parser (void *x_p) { struct c_parser * const x = (struct c_parser *)x_p; if (((x) != ((void *)0) && ((void *) (x)) != (void *) 1 && ! ggc_set_mark (x))) { { size_t i0; for (i0 = 0; i0 != (size_t)(2); i0++) { do { if ((*x).tokens[i0].value != ((void *)0)) gt_ggc_mx_lang_tree_node ((*x).tokens[i0].value); } while (0); } } } } void gt_pch_nx_c_parser (void *x_p) { struct c_parser * const x = (struct c_parser *)x_p; if (gt_pch_note_object (x, x, gt_pch_p_8c_parser, gt_ggc_e_8c_parser)) { { size_t i0; for (i0 = 0; i0 != (size_t)(2); i0++) { do { if ((*x).tokens[i0].value != ((void *)0)) gt_pch_nx_lang_tree_node ((*x).tokens[i0].value); } while (0); gt_pch_n_S ((*x).tokens[i0].location.file); } } } } void gt_pch_p_8c_parser (__attribute__ ((__unused__)) void *this_obj, void *x_p, __attribute__ ((__unused__)) gt_pointer_operator op, __attribute__ ((__unused__)) void *cookie) { struct c_parser * const x __attribute__ ((__unused__)) = (struct c_parser *)x_p; { size_t i0; for (i0 = 0; i0 != (size_t)(2); i0++) { if ((void *)(x) == this_obj) op (&((*x).tokens[i0].value), cookie); if ((void *)(x) == this_obj) op (&((*x).tokens[i0].location.file), cookie); } } } const struct ggc_root_tab gt_ggc_r_gt_c_parser_h[] = { { &the_parser, 1, sizeof (the_parser), >_ggc_mx_c_parser, >_pch_nx_c_parser }, { ((void *)0), 0, 0, ((void *)0), ((void *)0) } }; # 7952 "../../GCC/gcc/c-parser.c" 2