29#define __STDC_FORMAT_MACROS 
   36#   define va_copy(d,s)  __va_copy (d, s) 
   38#   define va_copy(d,s)  ((d) = (s)) 
   62#define fopen(PATH, MODE) fopen_unlocked (PATH, MODE) 
   63#define fdopen(FILDES, MODE) fdopen_unlocked (FILDES, MODE) 
   64#define freopen(PATH, MODE, STREAM) freopen_unlocked (PATH, MODE, STREAM) 
   79#if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED 
   81# ifdef HAVE_PUTC_UNLOCKED 
   83#  define putc(C, Stream) putc_unlocked (C, Stream) 
   85# ifdef HAVE_PUTCHAR_UNLOCKED 
   87#  define putchar(C) putchar_unlocked (C) 
   89# ifdef HAVE_GETC_UNLOCKED 
   91#  define getc(Stream) getc_unlocked (Stream) 
   93# ifdef HAVE_GETCHAR_UNLOCKED 
   95#  define getchar() getchar_unlocked () 
   97# ifdef HAVE_FPUTC_UNLOCKED 
   99#  define fputc(C, Stream) fputc_unlocked (C, Stream) 
  106# ifdef HAVE_CLEARERR_UNLOCKED 
  108#  define clearerr(Stream) clearerr_unlocked (Stream) 
  109#  if defined (HAVE_DECL_CLEARERR_UNLOCKED) && !HAVE_DECL_CLEARERR_UNLOCKED 
  110extern void clearerr_unlocked (FILE *);
 
  113# ifdef HAVE_FEOF_UNLOCKED 
  115#  define feof(Stream) feof_unlocked (Stream) 
  116#  if defined (HAVE_DECL_FEOF_UNLOCKED) && !HAVE_DECL_FEOF_UNLOCKED 
  117extern int feof_unlocked (FILE *);
 
  120# ifdef HAVE_FILENO_UNLOCKED 
  122#  define fileno(Stream) fileno_unlocked (Stream) 
  123#  if defined (HAVE_DECL_FILENO_UNLOCKED) && !HAVE_DECL_FILENO_UNLOCKED 
  124extern int fileno_unlocked (FILE *);
 
  127# ifdef HAVE_FFLUSH_UNLOCKED 
  129#  define fflush(Stream) fflush_unlocked (Stream) 
  130#  if defined (HAVE_DECL_FFLUSH_UNLOCKED) && !HAVE_DECL_FFLUSH_UNLOCKED 
  131extern int fflush_unlocked (FILE *);
 
  134# ifdef HAVE_FGETC_UNLOCKED 
  136#  define fgetc(Stream) fgetc_unlocked (Stream) 
  137#  if defined (HAVE_DECL_FGETC_UNLOCKED) && !HAVE_DECL_FGETC_UNLOCKED 
  138extern int fgetc_unlocked (FILE *);
 
  141# ifdef HAVE_FGETS_UNLOCKED 
  143#  define fgets(S, n, Stream) fgets_unlocked (S, n, Stream) 
  144#  if defined (HAVE_DECL_FGETS_UNLOCKED) && !HAVE_DECL_FGETS_UNLOCKED 
  145extern char *fgets_unlocked (
char *, 
int, FILE *);
 
  148# ifdef HAVE_FPUTS_UNLOCKED 
  150#  define fputs(String, Stream) fputs_unlocked (String, Stream) 
  151#  if defined (HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED 
  152extern int fputs_unlocked (
const char *, FILE *);
 
  155# ifdef HAVE_FERROR_UNLOCKED 
  157#  define ferror(Stream) ferror_unlocked (Stream) 
  158#  if defined (HAVE_DECL_FERROR_UNLOCKED) && !HAVE_DECL_FERROR_UNLOCKED 
  159extern int ferror_unlocked (FILE *);
 
  162# ifdef HAVE_FREAD_UNLOCKED 
  164#  define fread(Ptr, Size, N, Stream) fread_unlocked (Ptr, Size, N, Stream) 
  165#  if defined (HAVE_DECL_FREAD_UNLOCKED) && !HAVE_DECL_FREAD_UNLOCKED 
  166extern size_t fread_unlocked (
void *, 
size_t, 
size_t, FILE *);
 
  169# ifdef HAVE_FWRITE_UNLOCKED 
  171#  define fwrite(Ptr, Size, N, Stream) fwrite_unlocked (Ptr, Size, N, Stream) 
  172#  if defined (HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED 
  173extern size_t fwrite_unlocked (
const void *, 
size_t, 
size_t, FILE *);
 
  176# ifdef HAVE_FPRINTF_UNLOCKED 
  180#  define fprintf fprintf_unlocked 
  181#  if defined (HAVE_DECL_FPRINTF_UNLOCKED) && !HAVE_DECL_FPRINTF_UNLOCKED 
  182extern int fprintf_unlocked (FILE *, 
const char *, ...);
 
  195#undef fwrite_unlocked 
  201#if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY) 
  222#ifdef INCLUDE_FUNCTIONAL 
  223# include <functional> 
  225#ifdef INCLUDE_SSTREAM 
  230# include <initializer_list> 
  233# include <type_traits> 
  239#include "safe-ctype.h" 
  241#include <sys/types.h> 
  245#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO 
  251#define __NO_STRING_INLINES 
  253#ifdef STRING_WITH_STRINGS 
  260#  ifdef HAVE_STRINGS_H 
  284#ifndef SUCCESS_EXIT_CODE 
  286#  define SUCCESS_EXIT_CODE EXIT_SUCCESS 
  288#  define SUCCESS_EXIT_CODE 0 
  292#ifndef FATAL_EXIT_CODE 
  294#  define FATAL_EXIT_CODE EXIT_FAILURE 
  296#  define FATAL_EXIT_CODE 1 
  300#define ICE_EXIT_CODE 4 
  306#ifdef HAVE_SYS_PARAM_H 
  307# include <sys/param.h> 
  324#define IN_RANGE(VALUE, LOWER, UPPER) \ 
  325  ((unsigned HOST_WIDE_INT) (VALUE) - (unsigned HOST_WIDE_INT) (LOWER) \ 
  326   <= (unsigned HOST_WIDE_INT) (UPPER) - (unsigned HOST_WIDE_INT) (LOWER)) 
 
  332#define INTTYPE_SIGNED(t) (! ((t) 0 < (t) -1)) 
  335#define INTTYPE_MINIMUM(t) ((t) (INTTYPE_SIGNED (t) \ 
  336                            ? (t) 1 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) 
 
  337#define INTTYPE_MAXIMUM(t) ((t) (~ (t) 0 - INTTYPE_MINIMUM (t))) 
  341# define UCHAR_MAX INTTYPE_MAXIMUM (unsigned char) 
  344#ifdef TIME_WITH_SYS_TIME 
  345# include <sys/time.h> 
  349#  include <sys/time.h> 
  360# ifdef HAVE_SYS_FILE_H 
  361#  include <sys/file.h> 
  365#ifdef HAVE_SYS_LOCKING_H 
  366# include <sys/locking.h> 
  396#define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) 
  397#define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) 
  400#define CEIL(x,y) (((x) + (y) - 1) / (y)) 
  403#define ROUND_UP(x,y) (((x) + (y) - 1) & ~((y) - 1)) 
  406#define ROUND_DOWN(x,y) ((x) & ~((y) - 1)) 
  408#ifdef HAVE_SYS_WAIT_H 
  413#define WIFSIGNALED(S) (((S) & 0xff) != 0 && ((S) & 0xff) != 0x7f) 
  416#define WTERMSIG(S) ((S) & 0x7f) 
  419#define WIFEXITED(S) (((S) & 0xff) == 0) 
  422#define WEXITSTATUS(S) (((S) & 0xff00) >> 8) 
  425#define WSTOPSIG WEXITSTATUS 
  428#define WCOREDUMP(S) ((S) & WCOREFLG) 
  435#if !defined (SIGCHLD) && defined (SIGCLD) 
  436# define SIGCHLD SIGCLD 
  439#ifdef HAVE_SYS_MMAN_H 
  440# include <sys/mman.h> 
  444# define MAP_FAILED ((void *)-1) 
  447#if !defined (MAP_ANONYMOUS) && defined (MAP_ANON) 
  448# define MAP_ANONYMOUS MAP_ANON 
  451#ifdef HAVE_SYS_RESOURCE_H 
  452# include <sys/resource.h> 
  455#ifdef HAVE_SYS_TIMES_H 
  456# include <sys/times.h> 
  468#if defined (HAVE_DECL_ATOF) && !HAVE_DECL_ATOF 
  469extern double atof (
const char *);
 
  472#if defined (HAVE_DECL_ATOL) && !HAVE_DECL_ATOL 
  473extern long atol (
const char *);
 
  476#if defined (HAVE_DECL_FREE) && !HAVE_DECL_FREE 
  477extern void free (
void *);
 
  480#if defined (HAVE_DECL_GETCWD) && !HAVE_DECL_GETCWD 
  481extern char *getcwd (
char *, 
size_t);
 
  484#if defined (HAVE_DECL_GETENV) && !HAVE_DECL_GETENV 
  485extern char *getenv (
const char *);
 
  488#if defined (HAVE_DECL_GETOPT) && !HAVE_DECL_GETOPT 
  489extern int getopt (
int, 
char * 
const *, 
const char *);
 
  492#if defined (HAVE_DECL_GETPAGESIZE) && !HAVE_DECL_GETPAGESIZE 
  493extern int getpagesize (
void);
 
  496#if defined (HAVE_DECL_GETWD) && !HAVE_DECL_GETWD 
  497extern char *getwd (
char *);
 
  500#if defined (HAVE_DECL_SBRK) && !HAVE_DECL_SBRK 
  501extern void *sbrk (
int);
 
  504#if defined (HAVE_DECL_SETENV) && !HAVE_DECL_SETENV 
  505int setenv(
const char *, 
const char *, 
int);
 
  508#if defined (HAVE_DECL_STRSTR) && !HAVE_DECL_STRSTR 
  509extern char *strstr (
const char *, 
const char *);
 
  512#if defined (HAVE_DECL_STPCPY) && !HAVE_DECL_STPCPY 
  513extern char *stpcpy (
char *, 
const char *);
 
  516#if defined (HAVE_DECL_UNSETENV) && !HAVE_DECL_UNSETENV 
  517int unsetenv(
const char *);
 
  520#if defined (HAVE_DECL_MALLOC) && !HAVE_DECL_MALLOC 
  521extern void *malloc (
size_t);
 
  524#if defined (HAVE_DECL_CALLOC) && !HAVE_DECL_CALLOC 
  525extern void *calloc (
size_t, 
size_t);
 
  528#if defined (HAVE_DECL_REALLOC) && !HAVE_DECL_REALLOC 
  529extern void *realloc (
void *, 
size_t);
 
  540#ifdef HAVE_INTTYPES_H 
  545# define SIZE_MAX INTTYPE_MAXIMUM (size_t) 
  554#if !defined (HAVE_STRSIGNAL) \ 
  555    || (defined (HAVE_DECL_STRSIGNAL) && !HAVE_DECL_STRSIGNAL) 
  562# if defined (HAVE_DECL_GETRLIMIT) && !HAVE_DECL_GETRLIMIT 
  565extern int getrlimit (
int, 
struct rlimit *);
 
  571# if defined (HAVE_DECL_SETRLIMIT) && !HAVE_DECL_SETRLIMIT 
  574extern int setrlimit (
int, 
const struct rlimit *);
 
  579#if defined (HAVE_DECL_ABORT) && !HAVE_DECL_ABORT 
  580extern void abort (
void);
 
  583#if defined (HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF 
  584extern int snprintf (
char *, 
size_t, 
const char *, ...);
 
  587#if defined (HAVE_DECL_VSNPRINTF) && !HAVE_DECL_VSNPRINTF 
  588extern int vsnprintf (
char *, 
size_t, 
const char *, va_list);
 
  596#if !defined(HAVE_DESIGNATED_INITIALIZERS) 
  598#define HAVE_DESIGNATED_INITIALIZERS 0 
  600#define HAVE_DESIGNATED_INITIALIZERS \ 
  601  ((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) 
 
  605#if !defined(HAVE_DESIGNATED_UNION_INITIALIZERS) 
  607#define HAVE_DESIGNATED_UNION_INITIALIZERS (GCC_VERSION >= 4007) 
  609#define HAVE_DESIGNATED_UNION_INITIALIZERS \ 
  610  ((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) 
 
  615# include <sys/stat.h> 
  620#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) 
  625#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) 
  630#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) 
  635#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) 
  641#   define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) 
  643#   define S_ISSOCK(m) 0 
  650#  define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) 
  652#  define S_ISFIFO(m) 0 
  658# define STDIN_FILENO   0 
  661# define STDOUT_FILENO  1 
  664# define STDERR_FILENO  2 
  668#ifdef MKDIR_TAKES_ONE_ARG 
  669# define mkdir(a,b) mkdir (a) 
  673# define kill(p,s) raise (s) 
  677#ifndef HOST_PTR_PRINTF 
  678#define HOST_PTR_PRINTF "%p" 
  682#ifndef PATH_SEPARATOR 
  683#define PATH_SEPARATOR ':' 
  687#include "filenames.h" 
  691# define DIR_SEPARATOR '/' 
  692# ifdef HAVE_DOS_BASED_FILE_SYSTEM 
  693#  define DIR_SEPARATOR_2 '\\' 
  697#if defined (INCLUDE_DLFCN_H) && defined (HAVE_DLFCN_H) 
  703#ifndef GENERATOR_FILE 
  712  operator mpz_t& () { 
return m_mpz; }
 
  718#if GCC_VERSION < 4008 || GCC_VERSION >= 5000 
 
  730#include "libiberty.h" 
  740#ifndef HOST_BIT_BUCKET 
  741#define HOST_BIT_BUCKET "/dev/null" 
  745#define offsetof(TYPE, MEMBER)  ((size_t) &((TYPE *) 0)->MEMBER) 
  749#if (GCC_VERSION < 2007) 
  751#define __FUNCTION__ "?" 
  758#if (GCC_VERSION < 3000) 
  759#define __builtin_expect(a, b) (a) 
  762#define LIKELY(x) (__builtin_expect ((x), 1)) 
  763#define UNLIKELY(x) (__builtin_expect ((x), 0)) 
  770#ifdef INCLUDE_MALLOC_H 
  771#if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) 
  778#include <isl/options.h> 
  782#include <isl/union_set.h> 
  784#include <isl/union_map.h> 
  786#include <isl/constraint.h> 
  789#include <isl/schedule.h> 
  790#include <isl/ast_build.h> 
  791#include <isl/schedule_node.h> 
  793#include <isl/space.h> 
  801extern void fancy_abort (
const char *, 
int, 
const char *)
 
  803#define abort() fancy_abort (__FILE__, __LINE__, __FUNCTION__) 
  806#if ENABLE_ASSERT_CHECKING 
  807#define gcc_assert(EXPR)                                                \ 
  808   ((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0)) 
  809#elif (GCC_VERSION >= 4005) 
  810#define gcc_assert(EXPR)                                                \ 
  811  ((void)(UNLIKELY (!(EXPR)) ? __builtin_unreachable (), 0 : 0)) 
  814#define gcc_assert(EXPR) ((void)(0 && (EXPR))) 
  818#define gcc_checking_assert(EXPR) gcc_assert (EXPR) 
  821#define gcc_checking_assert(EXPR) ((void)(0 && (EXPR))) 
  824#if GCC_VERSION >= 4000 
  825#define ALWAYS_INLINE inline __attribute__ ((always_inline)) 
  827#define ALWAYS_INLINE inline 
  830#if GCC_VERSION >= 3004 
  831#define WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__)) 
  833#define WARN_UNUSED_RESULT 
  838#if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING 
  839#define gcc_unreachable() __builtin_unreachable () 
  841#define gcc_unreachable() (fancy_abort (__FILE__, __LINE__, __FUNCTION__)) 
  844#if GCC_VERSION >= 7000 && defined(__has_attribute) 
  845# if __has_attribute(fallthrough) 
  846#  define gcc_fallthrough() __attribute__((fallthrough)) 
  848#  define gcc_fallthrough() 
  851# define gcc_fallthrough() 
  854#if GCC_VERSION >= 3001 
  855#define STATIC_CONSTANT_P(X) (__builtin_constant_p (X) && (X)) 
  857#define STATIC_CONSTANT_P(X) (false && (X)) 
  861#define STATIC_ASSERT(X) \ 
  862  static_assert ((X), #X) 
  864#define STATIC_ASSERT(X) \ 
  865  typedef int assertion1[(X) ? 1 : -1] ATTRIBUTE_UNUSED 
 
  886# define bool unsigned char 
  896#define BOOL_BITFIELD unsigned int 
  909#define really_call_malloc malloc 
  910#define really_call_calloc calloc 
  911#define really_call_realloc realloc 
  913#if defined(FLEX_SCANNER) || defined(YYBISON) || defined(YYBYACC) 
  916#define malloc xmalloc 
  917#define realloc xrealloc 
  920#if (GCC_VERSION >= 3000) 
  931 #pragma GCC poison calloc strdup strndup 
  933#if !defined(FLEX_SCANNER) && !defined(YYBISON) 
  936 #pragma GCC poison malloc realloc 
  943 #pragma GCC poison strerror 
  948 #pragma GCC poison loc_t 
  951 #pragma GCC poison ASM_OPEN_PAREN ASM_CLOSE_PAREN                      \ 
  952        FUNCTION_PROLOGUE FUNCTION_EPILOGUE                             \ 
  953        FUNCTION_END_PROLOGUE FUNCTION_BEGIN_EPILOGUE                   \ 
  954        DECL_MACHINE_ATTRIBUTES COMP_TYPE_ATTRIBUTES INSERT_ATTRIBUTES  \ 
  955        VALID_MACHINE_DECL_ATTRIBUTE VALID_MACHINE_TYPE_ATTRIBUTE       \ 
  956        SET_DEFAULT_TYPE_ATTRIBUTES SET_DEFAULT_DECL_ATTRIBUTES         \ 
  957        MERGE_MACHINE_TYPE_ATTRIBUTES MERGE_MACHINE_DECL_ATTRIBUTES     \ 
  958        MD_INIT_BUILTINS MD_EXPAND_BUILTIN ASM_OUTPUT_CONSTRUCTOR       \ 
  959        ASM_OUTPUT_DESTRUCTOR SIGNED_CHAR_SPEC MAX_CHAR_TYPE_SIZE       \ 
  960        WCHAR_UNSIGNED UNIQUE_SECTION SELECT_SECTION SELECT_RTX_SECTION \ 
  961        ENCODE_SECTION_INFO STRIP_NAME_ENCODING ASM_GLOBALIZE_LABEL     \ 
  962        ASM_OUTPUT_MI_THUNK CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS     \ 
  963        ADDRESS_COST MACHINE_DEPENDENT_REORG ASM_FILE_START ASM_FILE_END \ 
  964        ASM_SIMPLIFY_DWARF_ADDR INIT_TARGET_OPTABS INIT_SUBTARGET_OPTABS \ 
  965        INIT_GOFAST_OPTABS MULSI3_LIBCALL MULDI3_LIBCALL DIVSI3_LIBCALL \ 
  966        DIVDI3_LIBCALL UDIVSI3_LIBCALL UDIVDI3_LIBCALL MODSI3_LIBCALL   \ 
  967        MODDI3_LIBCALL UMODSI3_LIBCALL UMODDI3_LIBCALL BUILD_VA_LIST_TYPE \ 
  968        PRETEND_OUTGOING_VARARGS_NAMED STRUCT_VALUE_INCOMING_REGNUM     \ 
  969        ASM_OUTPUT_SECTION_NAME PROMOTE_FUNCTION_ARGS PROMOTE_FUNCTION_MODE \ 
  970        STRUCT_VALUE_INCOMING STRICT_ARGUMENT_NAMING                    \ 
  971        PROMOTE_FUNCTION_RETURN PROMOTE_PROTOTYPES STRUCT_VALUE_REGNUM  \ 
  972        SETUP_INCOMING_VARARGS EXPAND_BUILTIN_SAVEREGS                  \ 
  973        DEFAULT_SHORT_ENUMS SPLIT_COMPLEX_ARGS MD_ASM_CLOBBERS          \ 
  974        HANDLE_PRAGMA_REDEFINE_EXTNAME HANDLE_PRAGMA_EXTERN_PREFIX      \ 
  975        MUST_PASS_IN_STACK FUNCTION_ARG_PASS_BY_REFERENCE               \ 
  976        VECTOR_MODE_SUPPORTED_P TARGET_SUPPORTS_HIDDEN                  \ 
  977        FUNCTION_ARG_PARTIAL_NREGS ASM_OUTPUT_DWARF_DTPREL              \ 
  978        ALLOCATE_INITIAL_VALUE LEGITIMIZE_ADDRESS FRAME_POINTER_REQUIRED \ 
  979        CAN_ELIMINATE TRAMPOLINE_TEMPLATE INITIALIZE_TRAMPOLINE         \ 
  980        TRAMPOLINE_ADJUST_ADDRESS STATIC_CHAIN STATIC_CHAIN_INCOMING    \ 
  981        RETURN_POPS_ARGS UNITS_PER_SIMD_WORD OVERRIDE_OPTIONS           \ 
  982        OPTIMIZATION_OPTIONS CLASS_LIKELY_SPILLED_P                     \ 
  983        USING_SJLJ_EXCEPTIONS TARGET_UNWIND_INFO                        \ 
  984        CAN_DEBUG_WITHOUT_FP UNLIKELY_EXECUTED_TEXT_SECTION_NAME        \ 
  985        HOT_TEXT_SECTION_NAME LEGITIMATE_CONSTANT_P ALWAYS_STRIP_DOTDOT \ 
  986        OUTPUT_ADDR_CONST_EXTRA SMALL_REGISTER_CLASSES ASM_OUTPUT_IDENT \ 
  987        ASM_BYTE_OP MEMBER_TYPE_FORCES_BLK LIBGCC2_HAS_SF_MODE          \ 
  988        LIBGCC2_HAS_DF_MODE LIBGCC2_HAS_XF_MODE LIBGCC2_HAS_TF_MODE     \ 
  989        CLEAR_BY_PIECES_P MOVE_BY_PIECES_P SET_BY_PIECES_P              \ 
  990        STORE_BY_PIECES_P TARGET_FLT_EVAL_METHOD                        \ 
  991        HARD_REGNO_CALL_PART_CLOBBERED HARD_REGNO_MODE_OK               \ 
  992        MODES_TIEABLE_P FUNCTION_ARG_PADDING SLOW_UNALIGNED_ACCESS      \ 
  993        HARD_REGNO_NREGS SECONDARY_MEMORY_NEEDED_MODE                   \ 
  994        SECONDARY_MEMORY_NEEDED CANNOT_CHANGE_MODE_CLASS                \ 
  995        TRULY_NOOP_TRUNCATION FUNCTION_ARG_OFFSET CONSTANT_ALIGNMENT    \ 
  996        STARTING_FRAME_OFFSET FLOAT_TYPE_SIZE DOUBLE_TYPE_SIZE          \ 
  997        LONG_DOUBLE_TYPE_SIZE 
 1001 #pragma GCC poison DECLARE_LIBRARY_RENAMES LIBGCC2_GNU_PREFIX          \ 
 1002        MD_UNWIND_SUPPORT MD_FROB_UPDATE_CONTEXT ENABLE_EXECUTE_STACK   \ 
 1003        REG_VALUE_IN_UNWIND_CONTEXT ASSUME_EXTENDED_UNWIND_CONTEXT 
 1008 #pragma GCC poison INT_ASM_OP ASM_OUTPUT_EH_REGION_BEG CPP_PREDEFINES     \ 
 1009        ASM_OUTPUT_EH_REGION_END ASM_OUTPUT_LABELREF_AS_INT SMALL_STACK    \ 
 1010        DOESNT_NEED_UNWINDER EH_TABLE_LOOKUP OBJC_SELECTORS_WITHOUT_LABELS \ 
 1011        OMIT_EH_TABLE EASY_DIV_EXPR IMPLICIT_FIX_EXPR                      \ 
 1012        LONGJMP_RESTORE_FROM_STACK MAX_INT_TYPE_SIZE ASM_IDENTIFY_GCC      \ 
 1013        STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE          \ 
 1014        SLOW_ZERO_EXTEND SUBREG_REGNO_OFFSET DWARF_LINE_MIN_INSTR_LENGTH   \ 
 1015        TRADITIONAL_RETURN_FLOAT NO_BUILTIN_SIZE_TYPE                      \ 
 1016        NO_BUILTIN_PTRDIFF_TYPE NO_BUILTIN_WCHAR_TYPE NO_BUILTIN_WINT_TYPE \ 
 1017        BLOCK_PROFILER BLOCK_PROFILER_CODE FUNCTION_BLOCK_PROFILER         \ 
 1018        FUNCTION_BLOCK_PROFILER_EXIT MACHINE_STATE_SAVE                    \ 
 1019        MACHINE_STATE_RESTORE SCCS_DIRECTIVE SECTION_ASM_OP BYTEORDER      \ 
 1020        ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL HOST_WORDS_BIG_ENDIAN    \ 
 1021        OBJC_PROLOGUE ALLOCATE_TRAMPOLINE HANDLE_PRAGMA ROUND_TYPE_SIZE    \ 
 1022        ROUND_TYPE_SIZE_UNIT CONST_SECTION_ASM_OP CRT_GET_RFIB_TEXT        \ 
 1023        INSN_CACHE_DEPTH INSN_CACHE_SIZE                                   \ 
 1024        INSN_CACHE_LINE_WIDTH INIT_SECTION_PREAMBLE NEED_ATEXIT ON_EXIT    \ 
 1025        EXIT_BODY OBJECT_FORMAT_ROSE MULTIBYTE_CHARS MAP_CHARACTER         \ 
 1026        LIBGCC_NEEDS_DOUBLE FINAL_PRESCAN_LABEL DEFAULT_CALLER_SAVES       \ 
 1027        LOAD_ARGS_REVERSED MAX_INTEGER_COMPUTATION_MODE                    \ 
 1028        CONVERT_HARD_REGISTER_TO_SSA_P ASM_OUTPUT_MAIN_SOURCE_FILENAME     \ 
 1029        FIRST_INSN_ADDRESS TEXT_SECTION SHARED_BSS_SECTION_ASM_OP          \ 
 1030        PROMOTED_MODE EXPAND_BUILTIN_VA_END                                \ 
 1031        LINKER_DOES_NOT_WORK_WITH_DWARF2 FUNCTION_ARG_KEEP_AS_REFERENCE    \ 
 1032        GIV_SORT_CRITERION MAX_LONG_TYPE_SIZE MAX_LONG_DOUBLE_TYPE_SIZE    \ 
 1033        MAX_WCHAR_TYPE_SIZE SHARED_SECTION_ASM_OP INTEGRATE_THRESHOLD      \ 
 1034        FINAL_REG_PARM_STACK_SPACE MAYBE_REG_PARM_STACK_SPACE              \ 
 1035        TRADITIONAL_PIPELINE_INTERFACE DFA_PIPELINE_INTERFACE              \ 
 1036        BUILTIN_SETJMP_FRAME_VALUE                                         \ 
 1037        SUNOS4_SHARED_LIBRARIES PROMOTE_FOR_CALL_ONLY                      \ 
 1038        SPACE_AFTER_L_OPTION NO_RECURSIVE_FUNCTION_CSE                     \ 
 1039        DEFAULT_MAIN_RETURN TARGET_MEM_FUNCTIONS EXPAND_BUILTIN_VA_ARG     \ 
 1040        COLLECT_PARSE_FLAG DWARF2_GENERATE_TEXT_SECTION_LABEL WINNING_GDB  \ 
 1041        ASM_OUTPUT_FILENAME ASM_OUTPUT_SOURCE_LINE FILE_NAME_JOINER        \ 
 1042        GDB_INV_REF_REGPARM_STABS_LETTER                                   \ 
 1043        PUT_SDB_SRC_FILE STABS_GCC_MARKER SDB_GENERATE_FAKE                \ 
 1044        NON_SAVING_SETJMP TARGET_LATE_RTL_PROLOGUE_EPILOGUE                \ 
 1045        CASE_DROPS_THROUGH TARGET_BELL TARGET_BS TARGET_CR TARGET_DIGIT0   \ 
 1046        TARGET_ESC TARGET_FF TARGET_NEWLINE TARGET_TAB TARGET_VT           \ 
 1047        LINK_LIBGCC_SPECIAL DONT_ACCESS_GBLS_AFTER_EPILOGUE                \ 
 1048        TARGET_OPTIONS TARGET_SWITCHES EXTRA_CC_MODES FINALIZE_PIC         \ 
 1049        PREDICATE_CODES SPECIAL_MODE_PREDICATES UNALIGNED_WORD_ASM_OP      \ 
 1050        EXTRA_SECTIONS EXTRA_SECTION_FUNCTIONS READONLY_DATA_SECTION       \ 
 1051        TARGET_ASM_EXCEPTION_SECTION TARGET_ASM_EH_FRAME_SECTION           \ 
 1052        SMALL_ARG_MAX ASM_OUTPUT_SHARED_BSS ASM_OUTPUT_SHARED_COMMON       \ 
 1053        ASM_OUTPUT_SHARED_LOCAL ASM_MAKE_LABEL_LINKONCE                    \ 
 1054        STACK_CHECK_PROBE_INTERVAL STACK_CHECK_PROBE_LOAD                  \ 
 1055        ORDER_REGS_FOR_LOCAL_ALLOC FUNCTION_OUTGOING_VALUE                 \ 
 1056        ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES  \ 
 1057        SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \ 
 1058        TARGET_OPTION_TRANSLATE_TABLE HANDLE_PRAGMA_PACK_PUSH_POP          \ 
 1059        HANDLE_SYSV_PRAGMA HANDLE_PRAGMA_WEAK CONDITIONAL_REGISTER_USAGE   \ 
 1060        FUNCTION_ARG_BOUNDARY MUST_USE_SJLJ_EXCEPTIONS US_SOFTWARE_GOFAST  \ 
 1061        USING_SVR4_H SVR4_ASM_SPEC FUNCTION_ARG FUNCTION_ARG_ADVANCE       \ 
 1062        FUNCTION_INCOMING_ARG IRA_COVER_CLASSES TARGET_VERSION             \ 
 1063        MACHINE_TYPE TARGET_HAS_TARGETCM ASM_OUTPUT_BSS                    \ 
 1064        SETJMP_VIA_SAVE_AREA FORBIDDEN_INC_DEC_CLASSES                     \ 
 1065        PREFERRED_OUTPUT_RELOAD_CLASS SYSTEM_INCLUDE_DIR                   \ 
 1066        STANDARD_INCLUDE_DIR STANDARD_INCLUDE_COMPONENT                    \ 
 1067        LINK_ELIMINATE_DUPLICATE_LDIRECTORIES MIPS_DEBUGGING_INFO          \ 
 1068        IDENT_ASM_OP ALL_COP_ADDITIONAL_REGISTER_NAMES                     \ 
 1069        RANGE_TEST_NON_SHORT_CIRCUIT                                       \ 
 1070        REAL_VALUE_TRUNCATE REVERSE_CONDEXEC_PREDICATES_P                  \ 
 1071        TARGET_ALIGN_ANON_BITFIELDS TARGET_NARROW_VOLATILE_BITFIELDS       \ 
 1072        IDENT_ASM_OP UNALIGNED_SHORT_ASM_OP UNALIGNED_INT_ASM_OP           \ 
 1073        UNALIGNED_LONG_ASM_OP UNALIGNED_DOUBLE_INT_ASM_OP                  \ 
 1074        USE_COMMON_FOR_ONE_ONLY IFCVT_EXTRA_FIELDS IFCVT_INIT_EXTRA_FIELDS \ 
 1075        CASE_USE_BIT_TESTS FIXUNS_TRUNC_LIKE_FIX_TRUNC                     \ 
 1076        GO_IF_MODE_DEPENDENT_ADDRESS DELAY_SLOTS_FOR_EPILOGUE              \ 
 1077        ELIGIBLE_FOR_EPILOGUE_DELAY TARGET_C99_FUNCTIONS TARGET_HAS_SINCOS \ 
 1078        REG_CLASS_FROM_LETTER CONST_OK_FOR_LETTER_P                        \ 
 1079        CONST_DOUBLE_OK_FOR_LETTER_P EXTRA_CONSTRAINT                      \ 
 1080        REG_CLASS_FROM_CONSTRAINT REG_CLASS_FOR_CONSTRAINT                 \ 
 1081        EXTRA_CONSTRAINT_STR EXTRA_MEMORY_CONSTRAINT                       \ 
 1082        EXTRA_ADDRESS_CONSTRAINT CONST_DOUBLE_OK_FOR_CONSTRAINT_P          \ 
 1083        CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL                  \ 
 1084        ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE LIBGCC2_TF_CEXT \ 
 1085        LIBGCC2_LONG_DOUBLE_TYPE_SIZE STRUCT_VALUE                         \ 
 1086        EH_FRAME_IN_DATA_SECTION TARGET_FLT_EVAL_METHOD_NON_DEFAULT        \ 
 1087        JCR_SECTION_NAME TARGET_USE_JCR_SECTION SDB_DEBUGGING_INFO         \ 
 1088        SDB_DEBUG NO_IMPLICIT_EXTERN_C NOTICE_UPDATE_CC                    \ 
 1089        CC_STATUS_MDEP_INIT CC_STATUS_MDEP CC_STATUS SLOW_SHORT_ACCESS 
 1092 #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE   \ 
 1093        LANG_HOOKS_MARK_TREE LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES \ 
 1094        LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS \ 
 1095        LANG_HOOKS_PUSHLEVEL LANG_HOOKS_SET_BLOCK \ 
 1096        LANG_HOOKS_MAYBE_BUILD_CLEANUP LANG_HOOKS_UPDATE_DECL_AFTER_SAVING \ 
 1097        LANG_HOOKS_POPLEVEL LANG_HOOKS_TRUTHVALUE_CONVERSION \ 
 1098        TARGET_PROMOTE_FUNCTION_ARGS TARGET_PROMOTE_FUNCTION_RETURN \ 
 1099        LANG_HOOKS_MISSING_ARGUMENT LANG_HOOKS_HASH_TYPES \ 
 1100        TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION \ 
 1101        TARGET_IRA_COVER_CLASSES TARGET_HELP \ 
 1102        TARGET_HANDLE_PRAGMA_EXTERN_PREFIX \ 
 1103        TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN \ 
 1104        TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD \ 
 1105        TARGET_MD_ASM_CLOBBERS TARGET_RELAXED_ORDERING \ 
 1106        EXTENDED_SDB_BASIC_TYPES TARGET_INVALID_PARAMETER_TYPE \ 
 1107        TARGET_INVALID_RETURN_TYPE 
 1110 #pragma GCC poison built_in_decls implicit_built_in_decls 
 1113 #pragma GCC poison LIBGCC2_DOUBLE_TYPE_SIZE LIBGCC2_WORDS_BIG_ENDIAN \ 
 1114   LIBGCC2_FLOAT_WORDS_BIG_ENDIAN 
 1117 #pragma GCC poison USE_MAPPED_LOCATION GET_ENVIRONMENT 
 1120#undef ANSI_PROTOTYPES 
 1128 #pragma GCC poison ANSI_PROTOTYPES PTR_CONST LONG_DOUBLE VPARAMS VA_OPEN \ 
 1129  VA_FIXEDARG VA_CLOSE VA_START 
 1134#ifdef IN_GCC_FRONTEND 
 1135#pragma GCC poison GCC_RTL_H GCC_EXCEPT_H GCC_EXPR_H 
 1144 #pragma GCC poison bcopy bzero bcmp rindex 
 1148#pragma GCC poison ENABLE_CHECKING 
 1169#define CONST_CAST2(TOTYPE,FROMTYPE,X) (const_cast<TOTYPE> (X)) 
 1171#if defined(__GNUC__) && GCC_VERSION > 4000 
 1174#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq) 
 1175#elif defined(__GNUC__) 
 1177helper_const_non_const_cast (
const char *p)
 
 1180    const char *const_c;
 
 1187#define CONST_CAST2(TOTYPE,FROMTYPE,X) \ 
 1188        ((TOTYPE) helper_const_non_const_cast ((const char *) (FROMTYPE) (X))) 
 1190#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((TOTYPE)(FROMTYPE)(X)) 
 1193#define CONST_CAST(TYPE,X) CONST_CAST2 (TYPE, const TYPE, (X)) 
 1194#define CONST_CAST_TREE(X) CONST_CAST (union tree_node *, (X)) 
 1195#define CONST_CAST_RTX(X) CONST_CAST (struct rtx_def *, (X)) 
 1196#define CONST_CAST_RTX_INSN(X) CONST_CAST (struct rtx_insn *, (X)) 
 1197#define CONST_CAST_BB(X) CONST_CAST (struct basic_block_def *, (X)) 
 1198#define CONST_CAST_GIMPLE(X) CONST_CAST (gimple *, (X)) 
 1202#if GCC_VERSION >= 4003 
 1205#ifndef ENABLE_ASSERT_CHECKING 
 1206#pragma GCC diagnostic warning "-Wuninitialized" 
 1210#ifdef ENABLE_VALGRIND_ANNOTATIONS 
 1211#include <valgrind/memcheck.h> 
 1215#define VALGRIND_DISCARD(x) 
 1219#if GCC_VERSION >= 6000 
 1220#define GCC_DIAGNOSTIC_STRINGIFY(x) #x 
 1221#define GCC_DIAGNOSTIC_PUSH_IGNORED(x) \ 
 1222  _Pragma ("GCC diagnostic push") \ 
 1223  _Pragma (GCC_DIAGNOSTIC_STRINGIFY (GCC diagnostic ignored #x)) 
 1224#define GCC_DIAGNOSTIC_POP _Pragma ("GCC diagnostic pop") 
 1226#define GCC_DIAGNOSTIC_PUSH_IGNORED(x) 
 1227#define GCC_DIAGNOSTIC_POP 
 1232#if (GCC_VERSION > 4000) 
 1233#define DEBUG_FUNCTION __attribute__ ((__used__)) 
 1234#define DEBUG_VARIABLE __attribute__ ((__used__)) 
 1236#define DEBUG_FUNCTION 
 1237#define DEBUG_VARIABLE 
 1241#define TEST_BIT(X, Y) (((X) >> (Y)) & 1) 
 1249void gcc_qsort (
void *, 
size_t, 
size_t, 
int (*)(
const void *, 
const void *));
 
 1251                     int (*)(
const void *, 
const void *));
 
 1255#define PP_5th(a1, a2, a3, a4, a5, ...) a5 
 1257#define qsort(...) PP_5th (__VA_ARGS__, gcc_qsort, 3, 2, qsort, 0) (__VA_ARGS__) 
 1260#define ONE_M (ONE_K * ONE_K) 
 1261#define ONE_G (ONE_K * ONE_M) 
 1267#define SIZE_SCALE(x) (((x) < 10 * ONE_K \ 
 1269                        : ((x) < 10 * ONE_M \ 
 
 1278#define SIZE_LABEL(x) ((x) < 10 * ONE_K ? ' ' : ((x) < 10 * ONE_M ? 'k' : 'M')) 
 1283#define SIZE_AMOUNT(size) (uint64_t)SIZE_SCALE (size), SIZE_LABEL (size) 
 1287#define PRsa(n) "%" #n PRIu64 "%c" 
 1301#if defined(__clang__) && defined(__powerpc__) 
 1302#define vec_step vec_step_ 
 1310  return strncmp (str, prefix, strlen (prefix)) == 0;
 
 
 1318  size_t str_len = strlen (str);
 
 1319  size_t suffix_len = strlen (suffix);
 
 1320  if (str_len < suffix_len)
 
 1323  return memcmp (str + str_len - suffix_len, suffix, suffix_len) == 0;
 
 
auto_mpz(const auto_mpz &)=delete
~auto_mpz()
Definition system.h:710
auto_mpz & operator=(const auto_mpz &)=delete
friend void mpz_clear(auto_mpz &)=delete
mpz_ptr operator->()
Definition system.h:713
auto_mpz()
Definition system.h:709
friend void mpz_init(auto_mpz &)=delete
mpz_t m_mpz
Definition system.h:725
Definition genoutput.cc:150
void ATTRIBUTE_NORETURN
Definition diagnostic-core.h:76
bool endswith(const char *str, const char *suffix)
Definition system.h:1316
void gcc_stablesort_r(void *, size_t, size_t, sort_r_cmp_fn *, void *data)
Definition sort.cc:309
void gcc_sort_r(void *, size_t, size_t, sort_r_cmp_fn *, void *)
Definition sort.cc:279
void fancy_abort(const char *, int, const char *) ATTRIBUTE_NORETURN ATTRIBUTE_COLD
Definition errors.cc:132
void gcc_qsort(void *, size_t, size_t, int(*)(const void *, const void *))
void qsort_chk(void *, size_t, size_t, sort_r_cmp_fn *, void *)
int sort_r_cmp_fn(const void *, const void *, void *)
Definition system.h:1246
const char * strsignal(int)
void gcc_stablesort(void *, size_t, size_t, int(*)(const void *, const void *))
bool startswith(const char *str, const char *prefix)
Definition system.h:1308
#define abort()
Definition system.h:803