public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: bootstrap/7802: stage2 bootstrap of gcc-3-3 (20020901) failure on sparc32-linux
@ 2002-10-10 11:29 davem
  0 siblings, 0 replies; 2+ messages in thread
From: davem @ 2002-10-10 11:29 UTC (permalink / raw)
  To: christian, gcc-bugs, gcc-prs, nobody

Synopsis: stage2 bootstrap of gcc-3-3 (20020901) failure on sparc32-linux

State-Changed-From-To: open->closed
State-Changed-By: davem
State-Changed-When: Thu Oct 10 11:29:27 2002
State-Changed-Why:
    Verified to not occur anymore with current mainline.
    
    Please, in the future, attach huge *.i preprocessed files
    using the "Add a file attachment:" dialog on the gnats
    bug entry page, don't just cat it into the Description
    field.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7802


^ permalink raw reply	[flat|nested] 2+ messages in thread

* bootstrap/7802: stage2 bootstrap of gcc-3-3 (20020901) failure on sparc32-linux
@ 2002-09-01 12:56 christian
  0 siblings, 0 replies; 2+ messages in thread
From: christian @ 2002-09-01 12:56 UTC (permalink / raw)
  To: gcc-gnats

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 168022 bytes --]


>Number:         7802
>Category:       bootstrap
>Synopsis:       stage2 bootstrap of gcc-3-3 (20020901) failure on sparc32-linux
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Sun Sep 01 12:56:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Christian Jönsson
>Release:        3.3 20020901 (experimental)
>Organization:
>Environment:
Linux sparky.j-son.org 2.4.18-0.998sparcsmp #1 SMP Thu Aug 29 00:53:09 EDT 2002 sparc unknown
Architecture: sparc

	
host: sparc-unknown-linux-gnu
build: sparc-unknown-linux-gnu
target: sparc-unknown-linux-gnu
configured with: ../gcc/configure 
>Description:
	Reading specs from stage1/specs
Configured with: ../gcc/configure 
Thread model: posix
gcc version 3.3 20020901 (experimental)
 stage1/cc1 -E -quiet -v -I. -I. -I../../gcc/gcc -I../../gcc/gcc/. -I../../gcc/gcc/config -I../../gcc/gcc/../include -iprefix stage1/../lib/gcc-lib/sparc-unknown-linux-gnu/3.3/ -isystem include -isystem stage1/include -isystem /usr/local/sparc-unknown-linux-gnu/bin/include -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -D__sparc__ -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__sparc__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=unix -Asystem=posix -D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc -DIN_GCC -DHAVE_CONFIG_H ../../gcc/gcc/cppfiles.c -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -fno-common -O2 cppfiles.i
ignoring nonexistent directory "stage1/include"
ignoring nonexistent directory "/usr/local/sparc-unknown-linux-gnu/bin/include"
ignoring nonexistent directory "lib/gcc-lib/sparc-unknown-linux-gnu/3.3/include"ignoring nonexistent directory "lib/gcc-lib/sparc-unknown-linux-gnu/3.3/../../../../sparc-unknown-linux-gnu/include"
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/lib/gcc-lib/sparc-unknown-linux-gnu/3.3/include"
ignoring nonexistent directory "/usr/local/sparc-unknown-linux-gnu/include"
ignoring duplicate directory "."
ignoring duplicate directory "../../gcc/gcc"
#include "..." search starts here:
#include <...> search starts here:
 .
 ../../gcc/gcc
 ../../gcc/gcc/config
 ../../gcc/include
 include
 /usr/local/include
 /usr/include
End of search list.
../../gcc/gcc/cppfiles.c:1415:30: warning: null character(s) ignored
cc1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

Here's the preprocessed file cppfiles.i:

# 1 "../../gcc/gcc/cppfiles.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "../../gcc/gcc/cppfiles.c"
# 23 "../../gcc/gcc/cppfiles.c"
# 1 "config.h" 1

# 1 "auto-host.h" 1
# 3 "config.h" 2





struct rtx_def;
typedef struct rtx_def *rtx;
struct rtvec_def;
typedef struct rtvec_def *rtvec;
union tree_node;
typedef union tree_node *tree;



# 1 "../../gcc/include/ansidecl.h" 1
# 18 "config.h" 2
# 1 "../../gcc/gcc/config/sparc/sparc.h" 1
# 82 "../../gcc/gcc/config/sparc/sparc.h"
enum cmodel {
  CM_32,
  CM_MEDLOW,
  CM_MEDMID,
  CM_MEDANY,
  CM_EMBMEDANY
};


extern const char *sparc_cmodel_string;

extern enum cmodel sparc_cmodel;
# 382 "../../gcc/gcc/config/sparc/sparc.h"
extern int target_flags;
# 606 "../../gcc/gcc/config/sparc/sparc.h"
enum processor_type {
  PROCESSOR_V7,
  PROCESSOR_CYPRESS,
  PROCESSOR_V8,
  PROCESSOR_SUPERSPARC,
  PROCESSOR_SPARCLITE,
  PROCESSOR_F930,
  PROCESSOR_F934,
  PROCESSOR_HYPERSPARC,
  PROCESSOR_SPARCLITE86X,
  PROCESSOR_SPARCLET,
  PROCESSOR_TSC701,
  PROCESSOR_V9,
  PROCESSOR_ULTRASPARC,
  PROCESSOR_ULTRASPARC3
};


extern enum processor_type sparc_cpu;
# 645 "../../gcc/gcc/config/sparc/sparc.h"
struct sparc_cpu_select
{
  const char *string;
  const char *const name;
  const int set_tune_p;
  const int set_arch_p;
};

extern struct sparc_cpu_select sparc_select[];
# 1028 "../../gcc/gcc/config/sparc/sparc.h"
extern const int *hard_regno_mode_classes;
extern int sparc_mode_class[];
# 1208 "../../gcc/gcc/config/sparc/sparc.h"
enum reg_class { NO_REGS, FPCC_REGS, I64_REGS, GENERAL_REGS, FP_REGS,
                 EXTRA_FP_REGS, GENERAL_OR_FP_REGS, GENERAL_OR_EXTRA_FP_REGS,
                 ALL_REGS, LIM_REG_CLASSES };
# 1241 "../../gcc/gcc/config/sparc/sparc.h"
extern enum reg_class sparc_regno_reg_class[102];
# 1324 "../../gcc/gcc/config/sparc/sparc.h"
extern char sparc_leaf_regs[];


extern char leaf_reg_remap[];
# 1724 "../../gcc/gcc/config/sparc/sparc.h"
struct sparc_args {
  int words;
  int prototype_p;
  int libcall_p;
};
# 1813 "../../gcc/gcc/config/sparc/sparc.h"
extern rtx sparc_compare_op0;
extern rtx sparc_compare_op1;
# 1842 "../../gcc/gcc/config/sparc/sparc.h"
extern char sparc_hard_reg_printed[8];
# 19 "config.h" 2
# 1 "../../gcc/gcc/config/dbxelf.h" 1
# 20 "config.h" 2
# 1 "../../gcc/gcc/config/elfos.h" 1
# 21 "config.h" 2
# 1 "../../gcc/gcc/config/svr4.h" 1
# 22 "config.h" 2
# 1 "../../gcc/gcc/config/sparc/sysv4.h" 1
# 23 "config.h" 2
# 1 "../../gcc/gcc/config/sparc/linux.h" 1
# 24 "config.h" 2
# 1 "../../gcc/gcc/defaults.h" 1
# 25 "config.h" 2





# 1 "insn-constants.h" 1
# 31 "config.h" 2
# 1 "insn-flags.h" 1
# 210 "insn-flags.h"
extern rtx gen_get_pc (rtx, rtx, rtx);
extern rtx gen_movsi_lo_sum_pic (rtx, rtx, rtx);
extern rtx gen_movsi_high_pic (rtx, rtx);
static __inline__ rtx gen_movdi_lo_sum_pic (rtx, rtx, rtx);
static __inline__ rtx
gen_movdi_lo_sum_pic(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_movdi_high_pic (rtx, rtx);
static __inline__ rtx
gen_movdi_high_pic(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_seth44 (rtx, rtx);
extern rtx gen_setm44 (rtx, rtx, rtx);
extern rtx gen_setl44 (rtx, rtx, rtx);
extern rtx gen_sethh (rtx, rtx);
extern rtx gen_setlm (rtx, rtx);
extern rtx gen_sethm (rtx, rtx, rtx);
extern rtx gen_setlo (rtx, rtx, rtx);
extern rtx gen_embmedany_sethi (rtx, rtx);
extern rtx gen_embmedany_losum (rtx, rtx, rtx);
extern rtx gen_embmedany_brsum (rtx, rtx);
extern rtx gen_embmedany_textuhi (rtx, rtx);
extern rtx gen_embmedany_texthi (rtx, rtx);
extern rtx gen_embmedany_textulo (rtx, rtx, rtx);
extern rtx gen_embmedany_textlo (rtx, rtx, rtx);
extern rtx gen_movdf_cc_sp64 (rtx, rtx, rtx, rtx, rtx);
static __inline__ rtx gen_movdf_cc_reg_sp64 (rtx, rtx, rtx, rtx, rtx);
static __inline__ rtx
gen_movdf_cc_reg_sp64(a, b, c, d, e)
     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_extendsfdf2 (rtx, rtx);
extern rtx gen_truncdfsf2 (rtx, rtx);
extern rtx gen_floatsisf2 (rtx, rtx);
extern rtx gen_floatsidf2 (rtx, rtx);
extern rtx gen_floatdisf2 (rtx, rtx);
extern rtx gen_floatdidf2 (rtx, rtx);
extern rtx gen_fix_truncsfsi2 (rtx, rtx);
extern rtx gen_fix_truncdfsi2 (rtx, rtx);
extern rtx gen_fix_truncsfdi2 (rtx, rtx);
extern rtx gen_fix_truncdfdi2 (rtx, rtx);
extern rtx gen_adddi3_insn_sp32 (rtx, rtx, rtx);
extern rtx gen_addx (rtx, rtx, rtx);
extern rtx gen_subx (rtx, rtx, rtx);
extern rtx gen_cmp_minus_cc_set (rtx, rtx, rtx);
extern rtx gen_mulsi3 (rtx, rtx, rtx);
extern rtx gen_muldi3_v8plus (rtx, rtx, rtx);
extern rtx gen_mulsidi3_v8plus (rtx, rtx, rtx);
extern rtx gen_const_mulsidi3_v8plus (rtx, rtx, rtx);
extern rtx gen_const_mulsidi3_sp32 (rtx, rtx, rtx);
static __inline__ rtx gen_const_mulsidi3_sp64 (rtx, rtx, rtx);
static __inline__ rtx
gen_const_mulsidi3_sp64(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_smulsi3_highpart_v8plus (rtx, rtx, rtx, rtx);
extern rtx gen_const_smulsi3_highpart_v8plus (rtx, rtx, rtx, rtx);
extern rtx gen_const_smulsi3_highpart (rtx, rtx, rtx);
extern rtx gen_umulsidi3_v8plus (rtx, rtx, rtx);
extern rtx gen_const_umulsidi3_sp32 (rtx, rtx, rtx);
static __inline__ rtx gen_const_umulsidi3_sp64 (rtx, rtx, rtx);
static __inline__ rtx
gen_const_umulsidi3_sp64(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_const_umulsidi3_v8plus (rtx, rtx, rtx);
extern rtx gen_umulsi3_highpart_v8plus (rtx, rtx, rtx, rtx);
extern rtx gen_const_umulsi3_highpart_v8plus (rtx, rtx, rtx, rtx);
extern rtx gen_const_umulsi3_highpart (rtx, rtx, rtx);
extern rtx gen_divsi3_sp32 (rtx, rtx, rtx);
static __inline__ rtx gen_divsi3_sp64 (rtx, rtx, rtx, rtx);
static __inline__ rtx
gen_divsi3_sp64(a, b, c, d)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
     rtx d __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_divdi3 (rtx, rtx, rtx);
static __inline__ rtx
gen_divdi3(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_udivsi3_sp32 (rtx, rtx, rtx);
static __inline__ rtx gen_udivsi3_sp64 (rtx, rtx, rtx);
static __inline__ rtx
gen_udivsi3_sp64(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_udivdi3 (rtx, rtx, rtx);
static __inline__ rtx
gen_udivdi3(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_andsi3 (rtx, rtx, rtx);
extern rtx gen_iorsi3 (rtx, rtx, rtx);
extern rtx gen_xorsi3 (rtx, rtx, rtx);
extern rtx gen_negsi2 (rtx, rtx);
extern rtx gen_one_cmplsi2 (rtx, rtx);
extern rtx gen_adddf3 (rtx, rtx, rtx);
extern rtx gen_addsf3 (rtx, rtx, rtx);
extern rtx gen_subdf3 (rtx, rtx, rtx);
extern rtx gen_subsf3 (rtx, rtx, rtx);
extern rtx gen_muldf3 (rtx, rtx, rtx);
extern rtx gen_mulsf3 (rtx, rtx, rtx);
extern rtx gen_divdf3 (rtx, rtx, rtx);
extern rtx gen_divsf3 (rtx, rtx, rtx);
extern rtx gen_negsf2 (rtx, rtx);
extern rtx gen_abssf2 (rtx, rtx);
extern rtx gen_sqrtdf2 (rtx, rtx);
extern rtx gen_sqrtsf2 (rtx, rtx);
extern rtx gen_ashlsi3 (rtx, rtx, rtx);
extern rtx gen_ashldi3_v8plus (rtx, rtx, rtx);
extern rtx gen_ashrsi3 (rtx, rtx, rtx);
extern rtx gen_ashrdi3_v8plus (rtx, rtx, rtx);
extern rtx gen_lshrsi3 (rtx, rtx, rtx);
extern rtx gen_lshrdi3_v8plus (rtx, rtx, rtx);
extern rtx gen_jump (rtx);
extern rtx gen_blockage (void);
extern rtx gen_update_return (rtx, rtx);
extern rtx gen_nop (void);
extern rtx gen_flush_register_windows (void);
extern rtx gen_goto_handler_and_restore (rtx);
extern rtx gen_do_builtin_setjmp_setup (void);
extern rtx gen_flush (rtx);
extern rtx gen_flushdi (rtx);
extern rtx gen_ffssi2 (rtx, rtx);
extern rtx gen_prefetch_64 (rtx, rtx, rtx);
extern rtx gen_prefetch_32 (rtx, rtx, rtx);
extern rtx gen_trap (void);
extern rtx gen_cmpsi (rtx, rtx);
static __inline__ rtx gen_cmpdi (rtx, rtx);
static __inline__ rtx
gen_cmpdi(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_cmpsf (rtx, rtx);
extern rtx gen_cmpdf (rtx, rtx);
extern rtx gen_cmptf (rtx, rtx);
extern rtx gen_seqsi_special (rtx, rtx, rtx);
static __inline__ rtx gen_seqdi_special (rtx, rtx, rtx);
static __inline__ rtx
gen_seqdi_special(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_snesi_special (rtx, rtx, rtx);
static __inline__ rtx gen_snedi_special (rtx, rtx, rtx);
static __inline__ rtx
gen_snedi_special(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_seqdi_special_trunc (rtx, rtx, rtx);
static __inline__ rtx
gen_seqdi_special_trunc(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_snedi_special_trunc (rtx, rtx, rtx);
static __inline__ rtx
gen_snedi_special_trunc(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_seqsi_special_extend (rtx, rtx, rtx);
static __inline__ rtx
gen_seqsi_special_extend(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_snesi_special_extend (rtx, rtx, rtx);
static __inline__ rtx
gen_snesi_special_extend(a, b, c)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_seq (rtx);
extern rtx gen_sne (rtx);
extern rtx gen_sgt (rtx);
extern rtx gen_slt (rtx);
extern rtx gen_sge (rtx);
extern rtx gen_sle (rtx);
extern rtx gen_sgtu (rtx);
extern rtx gen_sltu (rtx);
extern rtx gen_sgeu (rtx);
extern rtx gen_sleu (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_bungt (rtx);
extern rtx gen_bunlt (rtx);
extern rtx gen_buneq (rtx);
extern rtx gen_bunge (rtx);
extern rtx gen_bunle (rtx);
extern rtx gen_bltgt (rtx);
extern rtx gen_movqi (rtx, rtx);
extern rtx gen_movhi (rtx, rtx);
extern rtx gen_movsi (rtx, rtx);
extern rtx gen_movsi_pic_label_ref (rtx, rtx);
extern rtx gen_movdi (rtx, rtx);
static __inline__ rtx gen_movdi_pic_label_ref (rtx, rtx);
static __inline__ rtx
gen_movdi_pic_label_ref(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_reload_indi (rtx, rtx, rtx);
extern rtx gen_reload_outdi (rtx, rtx, rtx);
extern rtx gen_movsf (rtx, rtx);
extern rtx gen_movdf (rtx, rtx);
extern rtx gen_movtf (rtx, rtx);
extern rtx gen_movqicc (rtx, rtx, rtx, rtx);
extern rtx gen_movhicc (rtx, rtx, rtx, rtx);
extern rtx gen_movsicc (rtx, rtx, rtx, rtx);
static __inline__ rtx gen_movdicc (rtx, rtx, rtx, rtx);
static __inline__ rtx
gen_movdicc(a, b, c, d)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
     rtx c __attribute__ ((__unused__));
     rtx d __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_movsfcc (rtx, rtx, rtx, rtx);
extern rtx gen_movdfcc (rtx, rtx, rtx, rtx);
extern rtx gen_movtfcc (rtx, rtx, rtx, rtx);
extern rtx gen_zero_extendhisi2 (rtx, rtx);
extern rtx gen_zero_extendqihi2 (rtx, rtx);
extern rtx gen_zero_extendqisi2 (rtx, rtx);
static __inline__ rtx gen_zero_extendqidi2 (rtx, rtx);
static __inline__ rtx
gen_zero_extendqidi2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_zero_extendhidi2 (rtx, rtx);
static __inline__ rtx
gen_zero_extendhidi2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_zero_extendsidi2 (rtx, rtx);
extern rtx gen_extendhisi2 (rtx, rtx);
extern rtx gen_extendqihi2 (rtx, rtx);
extern rtx gen_extendqisi2 (rtx, rtx);
static __inline__ rtx gen_extendqidi2 (rtx, rtx);
static __inline__ rtx
gen_extendqidi2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_extendhidi2 (rtx, rtx);
static __inline__ rtx
gen_extendhidi2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_extendsidi2 (rtx, rtx);
static __inline__ rtx
gen_extendsidi2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_extendsftf2 (rtx, rtx);
extern rtx gen_extenddftf2 (rtx, rtx);
extern rtx gen_trunctfsf2 (rtx, rtx);
extern rtx gen_trunctfdf2 (rtx, rtx);
extern rtx gen_floatsitf2 (rtx, rtx);
static __inline__ rtx gen_floatunssitf2 (rtx, rtx);
static __inline__ rtx
gen_floatunssitf2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_floatunsdisf2 (rtx, rtx);
static __inline__ rtx
gen_floatunsdisf2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
static __inline__ rtx gen_floatunsdidf2 (rtx, rtx);
static __inline__ rtx
gen_floatunsdidf2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_floatditf2 (rtx, rtx);
static __inline__ rtx gen_floatunsditf2 (rtx, rtx);
static __inline__ rtx
gen_floatunsditf2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_fix_trunctfsi2 (rtx, rtx);
static __inline__ rtx gen_fixuns_trunctfsi2 (rtx, rtx);
static __inline__ rtx
gen_fixuns_trunctfsi2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_fix_trunctfdi2 (rtx, rtx);
static __inline__ rtx gen_fixuns_trunctfdi2 (rtx, rtx);
static __inline__ rtx
gen_fixuns_trunctfdi2(a, b)
     rtx a __attribute__ ((__unused__));
     rtx b __attribute__ ((__unused__));
{
  return 0;
}
extern rtx gen_adddi3 (rtx, rtx, rtx);
extern rtx gen_addsi3 (rtx, rtx, rtx);
extern rtx gen_subdi3 (rtx, rtx, rtx);
extern rtx gen_subsi3 (rtx, rtx, rtx);
extern rtx gen_muldi3 (rtx, rtx, rtx);
extern rtx gen_mulsidi3 (rtx, rtx, rtx);
extern rtx gen_smulsi3_highpart (rtx, rtx, rtx);
extern rtx gen_umulsidi3 (rtx, rtx, rtx);
extern rtx gen_umulsi3_highpart (rtx, rtx, rtx);
extern rtx gen_divsi3 (rtx, rtx, rtx);
extern rtx gen_udivsi3 (rtx, rtx, rtx);
extern rtx gen_anddi3 (rtx, rtx, rtx);
extern rtx gen_iordi3 (rtx, rtx, rtx);
extern rtx gen_xordi3 (rtx, rtx, rtx);
extern rtx gen_negdi2 (rtx, rtx);
extern rtx gen_one_cmpldi2 (rtx, rtx);
extern rtx gen_addtf3 (rtx, rtx, rtx);
extern rtx gen_subtf3 (rtx, rtx, rtx);
extern rtx gen_multf3 (rtx, rtx, rtx);
extern rtx gen_divtf3 (rtx, rtx, rtx);
extern rtx gen_negtf2 (rtx, rtx);
extern rtx gen_negdf2 (rtx, rtx);
extern rtx gen_abstf2 (rtx, rtx);
extern rtx gen_absdf2 (rtx, rtx);
extern rtx gen_sqrttf2 (rtx, rtx);
extern rtx gen_ashldi3 (rtx, rtx, rtx);
extern rtx gen_ashrdi3 (rtx, rtx, rtx);
extern rtx gen_lshrdi3 (rtx, rtx, rtx);
extern rtx gen_tablejump (rtx, rtx);

extern rtx gen_call (rtx, rtx, rtx, rtx);

extern rtx gen_call_value (rtx, rtx, rtx, rtx, rtx);
extern rtx gen_untyped_call (rtx, rtx, rtx);

extern rtx gen_sibcall (rtx);

extern rtx gen_sibcall_value (rtx, rtx);
extern rtx gen_sibcall_epilogue (void);
extern rtx gen_untyped_return (rtx, rtx);
extern rtx gen_indirect_jump (rtx);
extern rtx gen_nonlocal_goto (rtx, rtx, rtx, rtx);
extern rtx gen_builtin_setjmp_setup (rtx);
extern rtx gen_setjmp (void);
extern rtx gen_setjmp_32 (void);
extern rtx gen_setjmp_64 (void);
extern rtx gen_prefetch (rtx, rtx, rtx);
extern rtx gen_prologue (void);
extern rtx gen_exception_receiver (void);
extern rtx gen_builtin_setjmp_receiver (rtx);
extern rtx gen_conditional_trap (rtx, rtx);
# 32 "config.h" 2
# 24 "../../gcc/gcc/cppfiles.c" 2
# 1 "../../gcc/gcc/system.h" 1
# 33 "../../gcc/gcc/system.h"
# 1 "include/stdarg.h" 1 3 4
# 43 "include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 105 "include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 34 "../../gcc/gcc/system.h" 2
# 47 "../../gcc/gcc/system.h"
# 1 "include/stddef.h" 1 3 4
# 147 "include/stddef.h" 3 4
typedef int ptrdiff_t;
# 203 "include/stddef.h" 3 4
typedef unsigned int size_t;
# 299 "include/stddef.h" 3 4
typedef int wchar_t;
# 48 "../../gcc/gcc/system.h" 2


# 1 "include/stdio.h" 1 3 4
# 37 "include/stdio.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 291 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 292 "/usr/include/features.h" 2 3 4
# 320 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4
# 321 "/usr/include/features.h" 2 3 4
# 38 "include/stdio.h" 2 3 4





# 1 "include/stddef.h" 1 3 4
# 44 "include/stdio.h" 2 3 4

# 1 "/usr/include/bits/types.h" 1 3 4
# 29 "/usr/include/bits/types.h" 3 4
# 1 "include/stddef.h" 1 3 4
# 30 "/usr/include/bits/types.h" 2 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 31 "/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;





__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 55 "/usr/include/bits/types.h" 3 4
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;





__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;


typedef __quad_t *__qaddr_t;

typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_quad_t __ino64_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __off64_t;
typedef __quad_t __loff_t;
typedef int __pid_t;



typedef int __ssize_t;

typedef __u_long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef __u_int __id_t;

typedef struct
  {
    int __val[2];
  } __fsid_t;


typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef int __suseconds_t;
typedef long int __swblk_t;

typedef long int __clock_t;


typedef int __clockid_t;


typedef int __timer_t;





typedef int __key_t;





typedef unsigned short int __ipc_pid_t;




typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;


typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;


typedef unsigned long int __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;


typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;





typedef int __intptr_t;



typedef unsigned int __socklen_t;




# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
# 23 "/usr/include/bits/pthreadtypes.h" 3 4
# 1 "/usr/include/bits/sched.h" 1 3 4
# 68 "/usr/include/bits/sched.h" 3 4
struct __sched_param
  {
    int __sched_priority;
  };
# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4


struct _pthread_fastlock
{
  long int __status;
  int __spinlock;

};



typedef struct _pthread_descr_struct *_pthread_descr;





typedef struct __pthread_attr_s
{
  int __detachstate;
  int __schedpolicy;
  struct __sched_param __schedparam;
  int __inheritsched;
  int __scope;
  size_t __guardsize;
  int __stackaddr_set;
  void *__stackaddr;
  size_t __stacksize;
} pthread_attr_t;



typedef struct
{
  struct _pthread_fastlock __c_lock;
  _pthread_descr __c_waiting;
} pthread_cond_t;



typedef struct
{
  int __dummy;
} pthread_condattr_t;


typedef unsigned int pthread_key_t;





typedef struct
{
  int __m_reserved;
  int __m_count;
  _pthread_descr __m_owner;
  int __m_kind;
  struct _pthread_fastlock __m_lock;
} pthread_mutex_t;



typedef struct
{
  int __mutexkind;
} pthread_mutexattr_t;



typedef int pthread_once_t;




typedef struct _pthread_rwlock_t
{
  struct _pthread_fastlock __rw_lock;
  int __rw_readers;
  _pthread_descr __rw_writer;
  _pthread_descr __rw_read_waiting;
  _pthread_descr __rw_write_waiting;
  int __rw_kind;
  int __rw_pshared;
} pthread_rwlock_t;



typedef struct
{
  int __lockkind;
  int __pshared;
} pthread_rwlockattr_t;




typedef volatile int pthread_spinlock_t;


typedef struct {
  struct _pthread_fastlock __ba_lock;
  int __ba_required;
  int __ba_present;
  _pthread_descr __ba_waiting;
} pthread_barrier_t;


typedef struct {
  int __pshared;
} pthread_barrierattr_t;





typedef unsigned long int pthread_t;
# 162 "/usr/include/bits/types.h" 2 3 4
# 46 "include/stdio.h" 2 3 4
# 54 "include/stdio.h" 3 4
typedef struct _IO_FILE FILE;
# 64 "include/stdio.h" 3 4
typedef struct _IO_FILE __FILE;
# 74 "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 "include/stddef.h" 1 3 4
# 327 "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 "include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4

# 1 "/usr/include/bits/wchar.h" 1 3 4
# 51 "/usr/include/wchar.h" 2 3 4
# 67 "/usr/include/wchar.h" 3 4
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    char __wchb[4];
  } __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3 4

typedef struct
{
  __off_t __pos;
  __mbstate_t __state;
} _G_fpos_t;
typedef struct
{
  __off64_t __pos;
  __mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3 4
# 1 "/usr/include/gconv.h" 1 3 4
# 28 "/usr/include/gconv.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4
# 29 "/usr/include/gconv.h" 2 3 4


# 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 int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);



typedef int (*__gconv_trans_fct) (struct __gconv_step *,
                                  struct __gconv_step_data *, void *,
                                  __const unsigned char *,
                                  __const unsigned char **,
                                  __const unsigned char *, unsigned char **,
                                  size_t *);


typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
                                          __const unsigned char *,
                                          unsigned char *, unsigned char *);


typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
                                        size_t *);


typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);

struct __gconv_trans_data
{

  __gconv_trans_fct __trans_fct;
  __gconv_trans_context_fct __trans_context_fct;
  __gconv_trans_end_fct __trans_end_fct;
  void *__data;
  struct __gconv_trans_data *__next;
};



struct __gconv_step
{
  struct __gconv_loaded_object *__shlib_handle;
  __const char *__modname;

  int __counter;

  char *__from_name;
  char *__to_name;

  __gconv_fct __fct;
  __gconv_init_fct __init_fct;
  __gconv_end_fct __end_fct;



  int __min_needed_from;
  int __max_needed_from;
  int __min_needed_to;
  int __max_needed_to;


  int __stateful;

  void *__data;
};



struct __gconv_step_data
{
  unsigned char *__outbuf;
  unsigned char *__outbufend;



  int __flags;



  int __invocation_counter;



  int __internal_use;

  __mbstate_t *__statep;
  __mbstate_t __state;



  struct __gconv_trans_data *__trans;
};



typedef struct __gconv_info
{
  size_t __nsteps;
  struct __gconv_step *__steps;
  __extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3 4
typedef union
{
  struct __gconv_info __cd;
  struct
  {
    struct __gconv_info __cd;
    struct __gconv_step_data __data;
  } __combined;
} _G_iconv_t;

typedef int _G_int16_t __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
# 160 "/usr/include/libio.h" 3 4
struct _IO_jump_t; struct _IO_FILE;
# 170 "/usr/include/libio.h" 3 4
typedef void _IO_lock_t;





struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;



  int _pos;
# 193 "/usr/include/libio.h" 3 4
};


enum __codecvt_result
{
  __codecvt_ok,
  __codecvt_partial,
  __codecvt_error,
  __codecvt_noconv
};
# 261 "/usr/include/libio.h" 3 4
struct _IO_FILE {
  int _flags;




  char* _IO_read_ptr;
  char* _IO_read_end;
  char* _IO_read_base;
  char* _IO_write_base;
  char* _IO_write_ptr;
  char* _IO_write_end;
  char* _IO_buf_base;
  char* _IO_buf_end;

  char *_IO_save_base;
  char *_IO_backup_base;
  char *_IO_save_end;

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;
  int _blksize;
  __off_t _old_offset;



  unsigned short _cur_column;
  signed char _vtable_offset;
  char _shortbuf[1];



  _IO_lock_t *_lock;
# 305 "/usr/include/libio.h" 3 4
  __off64_t _offset;





  void *__pad1;
  void *__pad2;

  int _mode;

  char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];

};


typedef struct _IO_FILE _IO_FILE;


struct _IO_FILE_plus;

extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 344 "/usr/include/libio.h" 3 4
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);







typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
                                 size_t __n);







typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);


typedef int __io_close_fn (void *__cookie);




typedef __io_read_fn cookie_read_function_t;
typedef __io_write_fn cookie_write_function_t;
typedef __io_seek_fn cookie_seek_function_t;
typedef __io_close_fn cookie_close_function_t;


typedef struct
{
  __io_read_fn *read;
  __io_write_fn *write;
  __io_seek_fn *seek;
  __io_close_fn *close;
} _IO_cookie_io_functions_t;
typedef _IO_cookie_io_functions_t cookie_io_functions_t;

struct _IO_cookie_file;


extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
                             void *__cookie, _IO_cookie_io_functions_t __fns);







extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern wint_t __wunderflow (_IO_FILE *) ;
extern wint_t __wuflow (_IO_FILE *) ;
extern wint_t __woverflow (_IO_FILE *, wint_t) ;
# 426 "/usr/include/libio.h" 3 4
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;

extern int _IO_peekc_locked (_IO_FILE *__fp) ;





extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 456 "/usr/include/libio.h" 3 4
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
                        __gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
                         __gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;

extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;

extern void _IO_free_backup_area (_IO_FILE *) ;
# 75 "include/stdio.h" 2 3 4




typedef __gnuc_va_list __not_va_list__;
# 89 "include/stdio.h" 3 4
typedef _G_fpos_t fpos_t;




typedef _G_fpos64_t fpos64_t;
# 138 "include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio_lim.h" 1 3 4
# 139 "include/stdio.h" 2 3 4



extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
# 153 "include/stdio.h" 3 4
extern int remove (__const char *__filename) ;

extern int rename (__const char *__old, __const char *__new) ;




extern FILE *tmpfile (void) ;
# 169 "include/stdio.h" 3 4
extern FILE *tmpfile64 (void) ;


extern char *tmpnam (char *__s) ;




extern char *tmpnam_r (char *__s) ;
# 189 "include/stdio.h" 3 4
extern char *tempnam (__const char *__dir, __const char *__pfx)
     __attribute__ ((__malloc__));




extern int fclose (FILE *__stream) ;

extern int fflush (FILE *__stream) ;



extern int fflush_unlocked (FILE *__stream) ;




extern int fcloseall (void) ;





extern FILE *fopen (__const char *__restrict __filename,
                    __const char *__restrict __modes) ;

extern FILE *freopen (__const char *__restrict __filename,
                      __const char *__restrict __modes,
                      FILE *__restrict __stream) ;
# 233 "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) ;





extern FILE *fopencookie (void *__restrict __magic_cookie,
                          __const char *__restrict __modes,
                          _IO_cookie_io_functions_t __io_funcs) ;


extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) ;




extern FILE *open_memstream (char **__restrict __bufloc,
                             size_t *__restrict __sizeloc) ;





extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;



extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
                    int __modes, size_t __n) ;




extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
                       size_t __size) ;


extern void setlinebuf (FILE *__stream) ;




extern int fprintf (FILE *__restrict __stream,
                    __const char *__restrict __format, ...) ;

extern int printf (__const char *__restrict __format, ...) ;

extern int sprintf (char *__restrict __s,
                    __const char *__restrict __format, ...) ;


extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
                     __gnuc_va_list __arg) ;

extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
     ;

extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
                     __gnuc_va_list __arg) ;



extern int snprintf (char *__restrict __s, size_t __maxlen,
                     __const char *__restrict __format, ...)
     __attribute__ ((__format__ (__printf__, 3, 4)));

extern int vsnprintf (char *__restrict __s, size_t __maxlen,
                      __const char *__restrict __format, __gnuc_va_list __arg)
     __attribute__ ((__format__ (__printf__, 3, 0)));





extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
                      __gnuc_va_list __arg)
     __attribute__ ((__format__ (__printf__, 2, 0)));
extern int __asprintf (char **__restrict __ptr,
                       __const char *__restrict __fmt, ...)
     __attribute__ ((__format__ (__printf__, 2, 3)));
extern int asprintf (char **__restrict __ptr,
                     __const char *__restrict __fmt, ...)
     __attribute__ ((__format__ (__printf__, 2, 3)));


extern int vdprintf (int __fd, __const char *__restrict __fmt,
                     __gnuc_va_list __arg)
     __attribute__ ((__format__ (__printf__, 2, 0)));
extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
     __attribute__ ((__format__ (__printf__, 2, 3)));




extern int fscanf (FILE *__restrict __stream,
                   __const char *__restrict __format, ...) ;

extern int scanf (__const char *__restrict __format, ...) ;

extern int sscanf (__const char *__restrict __s,
                   __const char *__restrict __format, ...) ;



extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
                    __gnuc_va_list __arg)
     __attribute__ ((__format__ (__scanf__, 2, 0)));


extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
     __attribute__ ((__format__ (__scanf__, 1, 0)));


extern int vsscanf (__const char *__restrict __s,
                    __const char *__restrict __format, __gnuc_va_list __arg)
     __attribute__ ((__format__ (__scanf__, 2, 0)));




extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;


extern int getchar (void) ;







extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;




extern int fgetc_unlocked (FILE *__stream) ;




extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;


extern int putchar (int __c) ;







extern int fputc_unlocked (int __c, FILE *__stream) ;




extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;





extern int getw (FILE *__stream) ;


extern int putw (int __w, FILE *__stream) ;




extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
     ;



extern char *fgets_unlocked (char *__restrict __s, int __n,
                             FILE *__restrict __stream) ;




extern char *gets (char *__s) ;
# 437 "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 fputs_unlocked (__const char *__restrict __s,
                           FILE *__restrict __stream) ;



extern int puts (__const char *__s) ;



extern int ungetc (int __c, FILE *__stream) ;



extern size_t fread (void *__restrict __ptr, size_t __size,
                     size_t __n, FILE *__restrict __stream) ;

extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
                      size_t __n, FILE *__restrict __s) ;



extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
                              size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
                               size_t __n, FILE *__restrict __stream) ;




extern int fseek (FILE *__stream, long int __off, int __whence) ;

extern long int ftell (FILE *__stream) ;

extern void rewind (FILE *__stream) ;
# 500 "include/stdio.h" 3 4
extern int fseeko (FILE *__stream, __off_t __off, int __whence) ;

extern __off_t ftello (FILE *__stream) ;



extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
     ;

extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 534 "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) ;

extern int feof (FILE *__stream) ;

extern int ferror (FILE *__stream) ;



extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;




extern void perror (__const char *__s) ;




extern int sys_nerr;
extern __const char *__const sys_errlist[];


extern int _sys_nerr;
extern __const char *__const _sys_errlist[];





extern int fileno (FILE *__stream) ;




extern int fileno_unlocked (FILE *__stream) ;






extern FILE *popen (__const char *__command, __const char *__modes) ;


extern int pclose (FILE *__stream) ;





extern char *ctermid (char *__s) ;





extern char *cuserid (char *__s) ;




struct obstack;


extern int obstack_printf (struct obstack *__restrict __obstack,
                           __const char *__restrict __format, ...) ;
extern int obstack_vprintf (struct obstack *__restrict __obstack,
                            __const char *__restrict __format,
                            __gnuc_va_list __args) ;







extern void flockfile (FILE *__stream) ;



extern int ftrylockfile (FILE *__stream) ;


extern void funlockfile (FILE *__stream) ;
# 644 "include/stdio.h" 3 4

# 51 "../../gcc/gcc/system.h" 2
# 110 "../../gcc/gcc/system.h"
# 1 "../../gcc/include/safe-ctype.h" 1
# 44 "../../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];
# 97 "../../gcc/include/safe-ctype.h"
extern const unsigned char _sch_toupper[256];
extern const unsigned char _sch_tolower[256];
# 111 "../../gcc/gcc/system.h" 2

# 1 "/usr/include/sys/types.h" 1 3 4
# 28 "/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;
# 132 "/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;
# 70 "/usr/include/time.h" 3 4
typedef __time_t time_t;
# 82 "/usr/include/time.h" 3 4
typedef __clockid_t clockid_t;
# 94 "/usr/include/time.h" 3 4
typedef __timer_t timer_t;
# 133 "/usr/include/sys/types.h" 2 3 4



typedef __useconds_t useconds_t;



typedef __suseconds_t suseconds_t;





# 1 "include/stddef.h" 1 3 4
# 147 "/usr/include/sys/types.h" 2 3 4



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 190 "/usr/include/sys/types.h" 3 4
typedef int int8_t __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__)));
# 212 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 37 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/endian.h" 1 3 4
# 38 "/usr/include/endian.h" 2 3 4
# 213 "/usr/include/sys/types.h" 2 3 4


# 1 "/usr/include/sys/select.h" 1 3 4
# 31 "/usr/include/sys/select.h" 3 4
# 1 "/usr/include/bits/select.h" 1 3 4
# 32 "/usr/include/sys/select.h" 2 3 4


# 1 "/usr/include/bits/sigset.h" 1 3 4
# 23 "/usr/include/bits/sigset.h" 3 4
typedef int __sig_atomic_t;




typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  } __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3 4



typedef __sigset_t sigset_t;





# 1 "/usr/include/time.h" 1 3 4
# 106 "/usr/include/time.h" 3 4
struct timespec
  {
    __time_t tv_sec;
    long int tv_nsec;
  };
# 45 "/usr/include/sys/select.h" 2 3 4

# 1 "/usr/include/bits/time.h" 1 3 4
# 67 "/usr/include/bits/time.h" 3 4
struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 47 "/usr/include/sys/select.h" 2 3 4
# 55 "/usr/include/sys/select.h" 3 4
typedef long int __fd_mask;







typedef struct
  {



    __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];





  } fd_set;






typedef __fd_mask fd_mask;
# 95 "/usr/include/sys/select.h" 3 4







extern int select (int __nfds, fd_set *__restrict __readfds,
                   fd_set *__restrict __writefds,
                   fd_set *__restrict __exceptfds,
                   struct timeval *__restrict __timeout) ;





extern int pselect (int __nfds, fd_set *__restrict __readfds,
                    fd_set *__restrict __writefds,
                    fd_set *__restrict __exceptfds,
                    const struct timespec *__restrict __timeout,
                    const __sigset_t *__restrict __sigmask) ;



# 216 "/usr/include/sys/types.h" 2 3 4


# 1 "/usr/include/sys/sysmacros.h" 1 3 4
# 23 "/usr/include/sys/sysmacros.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 24 "/usr/include/sys/sysmacros.h" 2 3 4
# 219 "/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;
# 257 "/usr/include/sys/types.h" 3 4
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;



# 113 "../../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





# 1 "/usr/include/asm-sparc/errno.h" 1 3 4
# 7 "/usr/include/asm/errno.h" 2 3 4
# 5 "/usr/include/linux/errno.h" 2 3 4
# 26 "/usr/include/bits/errno.h" 2 3 4
# 36 "/usr/include/bits/errno.h" 3 4
extern int errno;


extern int *__errno_location (void) __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;
# 115 "../../gcc/gcc/system.h" 2






# 1 "/usr/include/string.h" 1 3 4
# 28 "/usr/include/string.h" 3 4





# 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) ;


extern void *memmove (void *__dest, __const void *__src, size_t __n)
     ;





extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
                      int __c, size_t __n)
     ;




extern void *memset (void *__s, int __c, size_t __n) ;


extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
     __attribute__ ((__pure__));


extern void *memchr (__const void *__s, int __c, size_t __n)
      __attribute__ ((__pure__));




extern void *rawmemchr (__const void *__s, int __c) __attribute__ ((__pure__));


extern void *memrchr (__const void *__s, int __c, size_t __n)
      __attribute__ ((__pure__));




extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
     ;

extern char *strncpy (char *__restrict __dest,
                      __const char *__restrict __src, size_t __n) ;


extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
     ;

extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
                      size_t __n) ;


extern int strcmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));

extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
     __attribute__ ((__pure__));


extern int strcoll (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));

extern size_t strxfrm (char *__restrict __dest,
                       __const char *__restrict __src, size_t __n) ;





# 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;
} *__locale_t;
# 109 "/usr/include/string.h" 2 3 4


extern int __strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
     __attribute__ ((__pure__));

extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n,
                           __locale_t __l) ;




extern char *strdup (__const char *__s) __attribute__ ((__malloc__));






extern char *strndup (__const char *__string, size_t __n)
     __attribute__ ((__malloc__));
# 155 "/usr/include/string.h" 3 4
extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__));

extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__));




extern char *strchrnul (__const char *__s, int __c) __attribute__ ((__pure__));




extern size_t strcspn (__const char *__s, __const char *__reject)
     __attribute__ ((__pure__));


extern size_t strspn (__const char *__s, __const char *__accept)
     __attribute__ ((__pure__));

extern char *strpbrk (__const char *__s, __const char *__accept)
     __attribute__ ((__pure__));

extern char *strstr (__const char *__haystack, __const char *__needle)
     __attribute__ ((__pure__));



extern char *strcasestr (__const char *__haystack, __const char *__needle)
     __attribute__ ((__pure__));



extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
     ;



extern char *__strtok_r (char *__restrict __s,
                         __const char *__restrict __delim,
                         char **__restrict __save_ptr) ;

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
                       char **__restrict __save_ptr) ;






extern void *memmem (__const void *__haystack, size_t __haystacklen,
                     __const void *__needle, size_t __needlelen)
     __attribute__ ((__pure__));



extern void *__mempcpy (void *__restrict __dest,
                        __const void *__restrict __src, size_t __n) ;
extern void *mempcpy (void *__restrict __dest,
                      __const void *__restrict __src, size_t __n) ;




extern size_t strlen (__const char *__s) __attribute__ ((__pure__));




extern size_t strnlen (__const char *__string, size_t __maxlen)
     __attribute__ ((__pure__));




extern char *strerror (int __errnum) ;



extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;




extern void __bzero (void *__s, size_t __n) ;



extern void bcopy (__const void *__src, void *__dest, size_t __n) ;


extern void bzero (void *__s, size_t __n) ;


extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
     __attribute__ ((__pure__));


extern char *index (__const char *__s, int __c) __attribute__ ((__pure__));


extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__));



extern int ffs (int __i) __attribute__ ((__const__));




extern int ffsl (long int __l) __attribute__ ((__const__));

__extension__ extern int ffsll (long long int __ll)
     __attribute__ ((__const__));




extern int strcasecmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));


extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
     __attribute__ ((__pure__));





extern int __strcasecmp_l (__const char *__s1, __const char *__s2,
                           __locale_t __loc) __attribute__ ((__pure__));

extern int __strncasecmp_l (__const char *__s1, __const char *__s2,
                            size_t __n, __locale_t __loc)
     __attribute__ ((__pure__));





extern char *strsep (char **__restrict __stringp,
                     __const char *__restrict __delim) ;




extern int strverscmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));


extern char *strsignal (int __sig) ;


extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
     ;
extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
     ;



extern char *__stpncpy (char *__restrict __dest,
                        __const char *__restrict __src, size_t __n) ;
extern char *stpncpy (char *__restrict __dest,
                      __const char *__restrict __src, size_t __n) ;


extern char *strfry (char *__string) ;


extern void *memfrob (void *__s, size_t __n) ;






extern char *basename (__const char *__filename) ;
# 364 "/usr/include/string.h" 3 4

# 122 "../../gcc/gcc/system.h" 2
# 1 "/usr/include/strings.h" 1 3 4
# 123 "../../gcc/gcc/system.h" 2
# 134 "../../gcc/gcc/system.h"
# 1 "/usr/include/stdlib.h" 1 3 4
# 33 "/usr/include/stdlib.h" 3 4
# 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
# 65 "/usr/include/bits/waitstatus.h" 3 4
union wait
  {
    int w_status;
    struct
      {







        unsigned int:16;
        unsigned int __w_retcode:8;
        unsigned int __w_coredump:1;
        unsigned int __w_termsig:7;

      } __wait_terminated;
    struct
      {






        unsigned int:16;
        unsigned int __w_stopsig:8;
        unsigned int __w_stopval:8;

      } __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__));
# 94 "/usr/include/stdlib.h" 3 4
typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;





__extension__ typedef struct
  {
    long long int quot;
    long long int rem;
  } lldiv_t;
# 133 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) ;



extern double atof (__const char *__nptr) __attribute__ ((__pure__));

extern int atoi (__const char *__nptr) __attribute__ ((__pure__));

extern long int atol (__const char *__nptr) __attribute__ ((__pure__));



__extension__ extern long long int atoll (__const char *__nptr)
     __attribute__ ((__pure__));



extern double strtod (__const char *__restrict __nptr,
                      char **__restrict __endptr) ;



extern float strtof (__const char *__restrict __nptr,
                     char **__restrict __endptr) ;

extern long double strtold (__const char *__restrict __nptr,
                            char **__restrict __endptr) ;



extern long int strtol (__const char *__restrict __nptr,
                        char **__restrict __endptr, int __base) ;

extern unsigned long int strtoul (__const char *__restrict __nptr,
                                  char **__restrict __endptr, int __base)
     ;



__extension__
extern long long int strtoq (__const char *__restrict __nptr,
                             char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
                                       char **__restrict __endptr, int __base)
     ;






__extension__
extern long long int strtoll (__const char *__restrict __nptr,
                              char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
                                        char **__restrict __endptr, int __base)
     ;
# 215 "/usr/include/stdlib.h" 3 4
extern long int __strtol_l (__const char *__restrict __nptr,
                            char **__restrict __endptr, int __base,
                            __locale_t __loc) ;

extern unsigned long int __strtoul_l (__const char *__restrict __nptr,
                                      char **__restrict __endptr,
                                      int __base, __locale_t __loc) ;

__extension__
extern long long int __strtoll_l (__const char *__restrict __nptr,
                                  char **__restrict __endptr, int __base,
                                  __locale_t __loc) ;

__extension__
extern unsigned long long int __strtoull_l (__const char *__restrict __nptr,
                                            char **__restrict __endptr,
                                            int __base, __locale_t __loc)
     ;

extern double __strtod_l (__const char *__restrict __nptr,
                          char **__restrict __endptr, __locale_t __loc)
     ;

extern float __strtof_l (__const char *__restrict __nptr,
                         char **__restrict __endptr, __locale_t __loc) ;

extern long double __strtold_l (__const char *__restrict __nptr,
                                char **__restrict __endptr,
                                __locale_t __loc) ;






extern double __strtod_internal (__const char *__restrict __nptr,
                                 char **__restrict __endptr, int __group)
     ;
extern float __strtof_internal (__const char *__restrict __nptr,
                                char **__restrict __endptr, int __group)
     ;
extern long double __strtold_internal (__const char *__restrict __nptr,
                                       char **__restrict __endptr,
                                       int __group) ;

extern long int __strtol_internal (__const char *__restrict __nptr,
                                   char **__restrict __endptr,
                                   int __base, int __group) ;



extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
                                             char **__restrict __endptr,
                                             int __base, int __group) ;




__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
                                         char **__restrict __endptr,
                                         int __base, int __group) ;



__extension__
extern unsigned long long int __strtoull_internal (__const char *
                                                   __restrict __nptr,
                                                   char **__restrict __endptr,
                                                   int __base, int __group)
     ;
# 384 "/usr/include/stdlib.h" 3 4
extern char *l64a (long int __n) ;


extern long int a64l (__const char *__s) __attribute__ ((__pure__));
# 397 "/usr/include/stdlib.h" 3 4
extern long int random (void) ;


extern void srandom (unsigned int __seed) ;





extern char *initstate (unsigned int __seed, char *__statebuf,
                        size_t __statelen) ;



extern char *setstate (char *__statebuf) ;







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
                     int32_t *__restrict __result) ;

extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
                        size_t __statelen,
                        struct random_data *__restrict __buf) ;

extern int setstate_r (char *__restrict __statebuf,
                       struct random_data *__restrict __buf) ;





extern int rand (void) ;

extern void srand (unsigned int __seed) ;



extern int rand_r (unsigned int *__seed) ;







extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;


extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;


extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;


extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    unsigned long long int __a;
  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;


extern int lrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int mrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     ;

extern int seed48_r (unsigned short int __seed16v[3],
                     struct drand48_data *__buffer) ;

extern int lcong48_r (unsigned short int __param[7],
                      struct drand48_data *__buffer) ;
# 527 "/usr/include/stdlib.h" 3 4
extern void *malloc (size_t __size) __attribute__ ((__malloc__));

extern void *calloc (size_t __nmemb, size_t __size)
     __attribute__ ((__malloc__));





extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__));

extern void free (void *__ptr) ;



extern void cfree (void *__ptr) ;



# 1 "/usr/include/alloca.h" 1 3 4
# 25 "/usr/include/alloca.h" 3 4
# 1 "include/stddef.h" 1 3 4
# 26 "/usr/include/alloca.h" 2 3 4







extern void *alloca (size_t __size) ;






# 547 "/usr/include/stdlib.h" 2 3 4




extern void *valloc (size_t __size) __attribute__ ((__malloc__));




extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
     __attribute__ ((__malloc__));



extern void abort (void) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) ;




extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     ;





extern void exit (int __status) __attribute__ ((__noreturn__));




extern void _Exit (int __status) __attribute__ ((__noreturn__));




extern char *getenv (__const char *__name) ;



extern char *__secure_getenv (__const char *__name) ;





extern int putenv (char *__string) ;





extern int setenv (__const char *__name, __const char *__value, int __replace)
     ;


extern int unsetenv (__const char *__name) ;






extern int clearenv (void) ;
# 623 "/usr/include/stdlib.h" 3 4
extern char *mktemp (char *__template) ;







extern int mkstemp (char *__template) ;
# 640 "/usr/include/stdlib.h" 3 4
extern int mkstemp64 (char *__template) ;
# 650 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) ;




extern int system (__const char *__command) ;






extern char *canonicalize_file_name (__const char *__name) ;
# 672 "/usr/include/stdlib.h" 3 4
extern char *realpath (__const char *__restrict __name,
                       char *__restrict __resolved) ;






typedef int (*__compar_fn_t) (__const void *, __const void *);


typedef __compar_fn_t comparison_fn_t;





extern void *bsearch (__const void *__key, __const void *__base,
                      size_t __nmemb, size_t __size, __compar_fn_t __compar);



extern void qsort (void *__base, size_t __nmemb, size_t __size,
                   __compar_fn_t __compar);



extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));

__extension__ extern long long int llabs (long long int __x)
     __attribute__ ((__const__));






extern div_t div (int __numer, int __denom)
     __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
     __attribute__ ((__const__));

__extension__ extern lldiv_t lldiv (long long int __numer,
                                    long long int __denom)
     __attribute__ ((__const__));
# 728 "/usr/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *gcvt (double __value, int __ndigit, char *__buf) ;




extern char *qecvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;

extern int qecvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;






extern int mblen (__const char *__s, size_t __n) ;


extern int mbtowc (wchar_t *__restrict __pwc,
                   __const char *__restrict __s, size_t __n) ;


extern int wctomb (char *__s, wchar_t __wchar) ;



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
                        __const char *__restrict __s, size_t __n) ;

extern size_t wcstombs (char *__restrict __s,
                        __const wchar_t *__restrict __pwcs, size_t __n)
     ;







extern int rpmatch (__const char *__response) ;
# 808 "/usr/include/stdlib.h" 3 4
extern int getsubopt (char **__restrict __optionp,
                      char *__const *__restrict __tokens,
                      char **__restrict __valuep) ;





extern void setkey (__const char *__key) ;







extern int posix_openpt (int __oflag) ;







extern int grantpt (int __fd) ;



extern int unlockpt (int __fd) ;




extern char *ptsname (int __fd) ;






extern int ptsname_r (int __fd, char *__buf, size_t __buflen) ;


extern int getpt (void) ;






extern int getloadavg (double __loadavg[], int __nelem) ;






# 135 "../../gcc/gcc/system.h" 2
# 157 "../../gcc/gcc/system.h"
# 1 "/usr/include/unistd.h" 1 3 4
# 28 "/usr/include/unistd.h" 3 4

# 175 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/bits/posix_opt.h" 1 3 4
# 176 "/usr/include/unistd.h" 2 3 4



# 1 "/usr/include/bits/environments.h" 1 3 4
# 23 "/usr/include/bits/environments.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 24 "/usr/include/bits/environments.h" 2 3 4
# 180 "/usr/include/unistd.h" 2 3 4
# 199 "/usr/include/unistd.h" 3 4
# 1 "include/stddef.h" 1 3 4
# 200 "/usr/include/unistd.h" 2 3 4
# 240 "/usr/include/unistd.h" 3 4
typedef __intptr_t intptr_t;






typedef __socklen_t socklen_t;
# 260 "/usr/include/unistd.h" 3 4
extern int access (__const char *__name, int __type) ;




extern int euidaccess (__const char *__name, int __type) ;
# 290 "/usr/include/unistd.h" 3 4
extern __off_t lseek (int __fd, __off_t __offset, int __whence) ;
# 302 "/usr/include/unistd.h" 3 4
extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) ;



extern int close (int __fd) ;



extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;


extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;



extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset)
     ;
extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
                       __off_t __offset) ;
# 340 "/usr/include/unistd.h" 3 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]) ;
# 362 "/usr/include/unistd.h" 3 4
extern unsigned int alarm (unsigned int __seconds) ;
# 371 "/usr/include/unistd.h" 3 4
extern unsigned int sleep (unsigned int __seconds) ;






extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
     ;



extern int usleep (__useconds_t __useconds) ;





extern int pause (void) ;



extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
     ;



extern int fchown (int __fd, __uid_t __owner, __gid_t __group) ;




extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
     ;




extern int chdir (__const char *__path) ;



extern int fchdir (int __fd) ;
# 423 "/usr/include/unistd.h" 3 4
extern char *getcwd (char *__buf, size_t __size) ;





extern char *get_current_dir_name (void) ;






extern char *getwd (char *__buf) ;




extern int dup (int __fd) ;


extern int dup2 (int __fd, int __fd2) ;


extern char **__environ;

extern char **environ;





extern int execve (__const char *__path, char *__const __argv[],
                   char *__const __envp[]) ;




extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
     ;




extern int execv (__const char *__path, char *__const __argv[]) ;



extern int execle (__const char *__path, __const char *__arg, ...) ;



extern int execl (__const char *__path, __const char *__arg, ...) ;



extern int execvp (__const char *__file, char *__const __argv[]) ;




extern int execlp (__const char *__file, __const char *__arg, ...) ;




extern int nice (int __inc) ;




extern void _exit (int __status) __attribute__ ((__noreturn__));





# 1 "/usr/include/bits/confname.h" 1 3 4
# 25 "/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

  };


enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,




    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,



    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG

  };





enum
  {
    _CS_PATH,




    _CS_LFS_CFLAGS = 1000,

    _CS_LFS_LDFLAGS,

    _CS_LFS_LIBS,

    _CS_LFS_LINTFLAGS,

    _CS_LFS64_CFLAGS,

    _CS_LFS64_LDFLAGS,

    _CS_LFS64_LIBS,

    _CS_LFS64_LINTFLAGS,




    _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,

    _CS_XBS5_ILP32_OFF32_LDFLAGS,

    _CS_XBS5_ILP32_OFF32_LIBS,

    _CS_XBS5_ILP32_OFF32_LINTFLAGS,

    _CS_XBS5_ILP32_OFFBIG_CFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LDFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LIBS,

    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,

    _CS_XBS5_LP64_OFF64_CFLAGS,

    _CS_XBS5_LP64_OFF64_LDFLAGS,

    _CS_XBS5_LP64_OFF64_LIBS,

    _CS_XBS5_LP64_OFF64_LINTFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_CFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LIBS,

    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,



    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LIBS,

    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,

    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,

    _CS_POSIX_V6_LP64_OFF64_CFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LIBS,

    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,



    _CS_V6_WIDTH_RESTRICTED_ENVS

  };
# 501 "/usr/include/unistd.h" 2 3 4


extern long int pathconf (__const char *__path, int __name) ;


extern long int fpathconf (int __fd, int __name) ;


extern long int sysconf (int __name) __attribute__ ((__const__));



extern size_t confstr (int __name, char *__buf, size_t __len) ;




extern __pid_t getpid (void) ;


extern __pid_t getppid (void) ;




extern __pid_t getpgrp (void) ;
# 536 "/usr/include/unistd.h" 3 4
extern __pid_t __getpgid (__pid_t __pid) ;

extern __pid_t getpgid (__pid_t __pid) ;






extern int setpgid (__pid_t __pid, __pid_t __pgid) ;
# 562 "/usr/include/unistd.h" 3 4
extern int setpgrp (void) ;
# 580 "/usr/include/unistd.h" 3 4
extern __pid_t setsid (void) ;



extern __pid_t getsid (__pid_t __pid) ;



extern __uid_t getuid (void) ;


extern __uid_t geteuid (void) ;


extern __gid_t getgid (void) ;


extern __gid_t getegid (void) ;




extern int getgroups (int __size, __gid_t __list[]) ;



extern int group_member (__gid_t __gid) ;






extern int setuid (__uid_t __uid) ;




extern int setreuid (__uid_t __ruid, __uid_t __euid) ;




extern int seteuid (__uid_t __uid) ;






extern int setgid (__gid_t __gid) ;




extern int setregid (__gid_t __rgid, __gid_t __egid) ;




extern int setegid (__gid_t __gid) ;






extern __pid_t fork (void) ;






extern __pid_t vfork (void) ;





extern char *ttyname (int __fd) ;



extern int ttyname_r (int __fd, char *__buf, size_t __buflen) ;



extern int isatty (int __fd) ;





extern int ttyslot (void) ;




extern int link (__const char *__from, __const char *__to) ;



extern int symlink (__const char *__from, __const char *__to) ;




extern int readlink (__const char *__restrict __path, char *__restrict __buf,
                     size_t __len) ;



extern int unlink (__const char *__name) ;


extern int rmdir (__const char *__path) ;



extern __pid_t tcgetpgrp (int __fd) ;


extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) ;



extern char *getlogin (void) ;




extern int getlogin_r (char *__name, size_t __name_len) ;




extern int setlogin (__const char *__name) ;
# 726 "/usr/include/unistd.h" 3 4
# 1 "../../gcc/include/getopt.h" 1 3 4
# 36 "../../gcc/include/getopt.h" 3 4
extern char *optarg;
# 50 "../../gcc/include/getopt.h" 3 4
extern int optind;




extern int opterr;



extern int optopt;
# 82 "../../gcc/include/getopt.h" 3 4
struct option
{

  const char *name;





  int has_arg;
  int *flag;
  int val;
};
# 113 "../../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);
# 727 "/usr/include/unistd.h" 2 3 4







extern int gethostname (char *__name, size_t __len) ;






extern int sethostname (__const char *__name, size_t __len) ;



extern int sethostid (long int __id) ;





extern int getdomainname (char *__name, size_t __len) ;
extern int setdomainname (__const char *__name, size_t __len) ;





extern int vhangup (void) ;


extern int revoke (__const char *__file) ;







extern int profil (unsigned short int *__sample_buffer, size_t __size,
                   size_t __offset, unsigned int __scale) ;





extern int acct (__const char *__name) ;



extern char *getusershell (void) ;
extern void endusershell (void) ;
extern void setusershell (void) ;





extern int daemon (int __nochdir, int __noclose) ;






extern int chroot (__const char *__path) ;



extern char *getpass (__const char *__prompt) ;





extern int fsync (int __fd) ;






extern long int gethostid (void) ;


extern void sync (void) ;




extern int getpagesize (void) __attribute__ ((__const__));




extern int truncate (__const char *__file, __off_t __length) ;
# 836 "/usr/include/unistd.h" 3 4
extern int truncate64 (__const char *__file, __off64_t __length) ;




extern int ftruncate (int __fd, __off_t __length) ;
# 851 "/usr/include/unistd.h" 3 4
extern int ftruncate64 (int __fd, __off64_t __length) ;





extern int getdtablesize (void) ;
# 866 "/usr/include/unistd.h" 3 4
extern int brk (void *__addr) ;





extern void *sbrk (intptr_t __delta) ;
# 887 "/usr/include/unistd.h" 3 4
extern long int syscall (long int __sysno, ...) ;
# 907 "/usr/include/unistd.h" 3 4
extern int lockf (int __fd, int __cmd, __off_t __len) ;
# 917 "/usr/include/unistd.h" 3 4
extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
# 938 "/usr/include/unistd.h" 3 4
extern int fdatasync (int __fildes) ;







extern char *crypt (__const char *__key, __const char *__salt) ;



extern void encrypt (char *__block, int __edflag) ;






extern void swab (__const void *__restrict __from, void *__restrict __to,
                  ssize_t __n) ;







extern char *ctermid (char *__s) ;
# 983 "/usr/include/unistd.h" 3 4
extern int pthread_atfork (void (*__prepare) (void),
                           void (*__parent) (void),
                           void (*__child) (void)) ;



# 158 "../../gcc/gcc/system.h" 2



# 1 "/usr/include/sys/param.h" 1 3 4
# 22 "/usr/include/sys/param.h" 3 4
# 1 "include/limits.h" 1 3 4
# 11 "include/limits.h" 3 4
# 1 "include/syslimits.h" 1 3 4






# 1 "include/limits.h" 1 3 4
# 122 "include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 144 "/usr/include/limits.h" 3 4
# 1 "/usr/include/bits/posix1_lim.h" 1 3 4
# 126 "/usr/include/bits/posix1_lim.h" 3 4
# 1 "/usr/include/bits/local_lim.h" 1 3 4
# 36 "/usr/include/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 37 "/usr/include/bits/local_lim.h" 2 3 4
# 127 "/usr/include/bits/posix1_lim.h" 2 3 4
# 145 "/usr/include/limits.h" 2 3 4



# 1 "/usr/include/bits/posix2_lim.h" 1 3 4
# 149 "/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
# 153 "/usr/include/limits.h" 2 3 4
# 123 "include/limits.h" 2 3 4
# 8 "include/syslimits.h" 2 3 4
# 12 "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





# 1 "/usr/include/asm-sparc/param.h" 1 3 4
# 7 "/usr/include/asm/param.h" 2 3 4
# 5 "/usr/include/linux/param.h" 2 3 4
# 25 "/usr/include/sys/param.h" 2 3 4
# 162 "../../gcc/gcc/system.h" 2





# 1 "include/limits.h" 1 3 4
# 168 "../../gcc/gcc/system.h" 2



# 1 "../../gcc/gcc/hwint.h" 1
# 172 "../../gcc/gcc/system.h" 2
# 200 "../../gcc/gcc/system.h"
# 1 "/usr/include/sys/time.h" 1 3 4
# 26 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 27 "/usr/include/sys/time.h" 2 3 4

# 1 "/usr/include/bits/time.h" 1 3 4
# 29 "/usr/include/sys/time.h" 2 3 4
# 38 "/usr/include/sys/time.h" 3 4

# 56 "/usr/include/sys/time.h" 3 4
struct timezone
  {
    int tz_minuteswest;
    int tz_dsttime;
  };

typedef struct timezone *__restrict __timezone_ptr_t;
# 72 "/usr/include/sys/time.h" 3 4
extern int gettimeofday (struct timeval *__restrict __tv,
                         __timezone_ptr_t __tz) ;




extern int settimeofday (__const struct timeval *__tv,
                         __const struct timezone *__tz) ;





extern int adjtime (__const struct timeval *__delta,
                    struct timeval *__olddelta) ;




enum __itimer_which
  {

    ITIMER_REAL = 0,


    ITIMER_VIRTUAL = 1,



    ITIMER_PROF = 2

  };



struct itimerval
  {

    struct timeval it_interval;

    struct timeval it_value;
  };




typedef enum __itimer_which __itimer_which_t;






extern int getitimer (__itimer_which_t __which,
                      struct itimerval *__value) ;




extern int setitimer (__itimer_which_t __which,
                      __const struct itimerval *__restrict __new,
                      struct itimerval *__restrict __old) ;



extern int utimes (__const char *__file, __const struct timeval __tvp[2])
     ;
# 171 "/usr/include/sys/time.h" 3 4

# 201 "../../gcc/gcc/system.h" 2
# 1 "/usr/include/time.h" 1 3 4
# 30 "/usr/include/time.h" 3 4








# 1 "include/stddef.h" 1 3 4
# 39 "/usr/include/time.h" 2 3 4



# 1 "/usr/include/bits/time.h" 1 3 4
# 43 "/usr/include/time.h" 2 3 4
# 118 "/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;
# 163 "/usr/include/time.h" 3 4
extern clock_t clock (void) ;


extern time_t time (time_t *__timer) ;


extern double difftime (time_t __time1, time_t __time0)
     __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) ;





extern size_t strftime (char *__restrict __s, size_t __maxsize,
                        __const char *__restrict __format,
                        __const struct tm *__restrict __tp) ;




extern char *strptime (__const char *__restrict __s,
                       __const char *__restrict __fmt, struct tm *__tp)
     ;





extern struct tm *gmtime (__const time_t *__timer) ;



extern struct tm *localtime (__const time_t *__timer) ;




extern struct tm *gmtime_r (__const time_t *__restrict __timer,
                            struct tm *__restrict __tp) ;



extern struct tm *localtime_r (__const time_t *__restrict __timer,
                               struct tm *__restrict __tp) ;




extern char *asctime (__const struct tm *__tp) ;


extern char *ctime (__const time_t *__timer) ;






extern char *asctime_r (__const struct tm *__restrict __tp,
                        char *__restrict __buf) ;


extern char *ctime_r (__const time_t *__restrict __timer,
                      char *__restrict __buf) ;




extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) ;



extern int daylight;
extern long int timezone;





extern int stime (__const time_t *__when) ;
# 271 "/usr/include/time.h" 3 4
extern time_t timegm (struct tm *__tp) ;


extern time_t timelocal (struct tm *__tp) ;


extern int dysize (int __year) __attribute__ ((__const__));





extern int nanosleep (__const struct timespec *__requested_time,
                      struct timespec *__remaining) ;



extern int clock_getres (clockid_t __clock_id, struct timespec *__res) ;


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) ;


extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
     ;



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) ;




extern int timer_create (clockid_t __clock_id,
                         struct sigevent *__restrict __evp,
                         timer_t *__restrict __timerid) ;


extern int timer_delete (timer_t __timerid) ;


extern int timer_settime (timer_t __timerid, int __flags,
                          __const struct itimerspec *__restrict __value,
                          struct itimerspec *__restrict __ovalue) ;


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
     ;


extern int timer_getoverrun (timer_t __timerid) ;
# 342 "/usr/include/time.h" 3 4
extern int getdate_err;





extern struct tm *getdate (__const char *__string) ;
# 357 "/usr/include/time.h" 3 4
extern int getdate_r (__const char *__restrict __string,
                      struct tm *__restrict __resbufp) ;




# 202 "../../gcc/gcc/system.h" 2
# 213 "../../gcc/gcc/system.h"
# 1 "/usr/include/fcntl.h" 1 3 4
# 29 "/usr/include/fcntl.h" 3 4




# 1 "/usr/include/bits/fcntl.h" 1 3 4
# 25 "/usr/include/bits/fcntl.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 26 "/usr/include/bits/fcntl.h" 2 3 4
# 152 "/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;
    short int __unused;
  };


struct flock64
  {
    short int l_type;
    short int l_whence;
    __off64_t l_start;
    __off64_t l_len;
    __pid_t l_pid;
    short int __unused;
  };
# 34 "/usr/include/fcntl.h" 2 3 4



# 1 "/usr/include/sys/stat.h" 1 3 4
# 96 "/usr/include/sys/stat.h" 3 4


# 1 "/usr/include/bits/stat.h" 1 3 4
# 36 "/usr/include/bits/stat.h" 3 4
struct stat
  {
    __dev_t st_dev;

    unsigned short int __pad1;
    __ino_t st_ino;



    __mode_t st_mode;
    __nlink_t st_nlink;
    __uid_t st_uid;
    __gid_t st_gid;
    __dev_t st_rdev;
    unsigned short int __pad2;

    __off_t st_size;



    __blksize_t st_blksize;


    __blkcnt_t st_blocks;



    __time_t st_atime;
    unsigned long int __unused1;
    __time_t st_mtime;
    unsigned long int __unused2;
    __time_t st_ctime;
    unsigned long int __unused3;
    unsigned long int __unused4;
    unsigned long int __unused5;
  };


struct stat64
  {
    __dev_t st_dev;



    __ino64_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;
    __off64_t st_size;
    __blksize_t st_blksize;

    __blkcnt64_t st_blocks;
    __time_t st_atime;
    unsigned long int __unused1;
    __time_t st_mtime;
    unsigned long int __unused2;
    __time_t st_ctime;
    unsigned long int __unused3;
    unsigned long int __unused4;
    unsigned long int __unused5;
  };
# 99 "/usr/include/sys/stat.h" 2 3 4
# 200 "/usr/include/sys/stat.h" 3 4
extern int stat (__const char *__restrict __file,
                 struct stat *__restrict __buf) ;



extern int fstat (int __fd, struct stat *__buf) ;
# 219 "/usr/include/sys/stat.h" 3 4
extern int stat64 (__const char *__restrict __file,
                   struct stat64 *__restrict __buf) ;
extern int fstat64 (int __fd, struct stat64 *__buf) ;






extern int lstat (__const char *__restrict __file,
                  struct stat *__restrict __buf) ;
# 241 "/usr/include/sys/stat.h" 3 4
extern int lstat64 (__const char *__restrict __file,
                    struct stat64 *__restrict __buf) ;






extern int chmod (__const char *__file, __mode_t __mode) ;



extern int fchmod (int __fd, __mode_t __mode) ;





extern __mode_t umask (__mode_t __mask) ;




extern __mode_t getumask (void) ;



extern int mkdir (__const char *__path, __mode_t __mode) ;





extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
     ;




extern int mkfifo (__const char *__path, __mode_t __mode) ;
# 306 "/usr/include/sys/stat.h" 3 4
extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) ;
extern int __xstat (int __ver, __const char *__filename,
                    struct stat *__stat_buf) ;
extern int __lxstat (int __ver, __const char *__filename,
                     struct stat *__stat_buf) ;
# 330 "/usr/include/sys/stat.h" 3 4
extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf)
     ;
extern int __xstat64 (int __ver, __const char *__filename,
                      struct stat64 *__stat_buf) ;
extern int __lxstat64 (int __ver, __const char *__filename,
                       struct stat64 *__stat_buf) ;

extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
                     __dev_t *__dev) ;




extern __inline__ int stat (__const char *__path,
                            struct stat *__statbuf)
{
  return __xstat (3, __path, __statbuf);
}


extern __inline__ int lstat (__const char *__path,
                             struct stat *__statbuf)
{
  return __lxstat (3, __path, __statbuf);
}


extern __inline__ int fstat (int __fd, struct stat *__statbuf)
{
  return __fxstat (3, __fd, __statbuf);
}


extern __inline__ int mknod (__const char *__path, __mode_t __mode,
                             __dev_t __dev)
{
  return __xmknod (1, __path, __mode, &__dev);
}





extern __inline__ int stat64 (__const char *__path,
                              struct stat64 *__statbuf)
{
  return __xstat64 (3, __path, __statbuf);
}


extern __inline__ int lstat64 (__const char *__path,
                               struct stat64 *__statbuf)
{
  return __lxstat64 (3, __path, __statbuf);
}


extern __inline__ int fstat64 (int __fd, struct stat64 *__statbuf)
{
  return __fxstat64 (3, __fd, __statbuf);
}





# 38 "/usr/include/fcntl.h" 2 3 4
# 60 "/usr/include/fcntl.h" 3 4
extern int fcntl (int __fd, int __cmd, ...) ;





extern int open (__const char *__file, int __oflag, ...) ;
# 76 "/usr/include/fcntl.h" 3 4
extern int open64 (__const char *__file, int __oflag, ...) ;






extern int creat (__const char *__file, __mode_t __mode) ;
# 93 "/usr/include/fcntl.h" 3 4
extern int creat64 (__const char *__file, __mode_t __mode) ;
# 130 "/usr/include/fcntl.h" 3 4
extern int posix_fadvise (int __fd, __off_t __offset, size_t __len,
                          int __advise) ;
# 142 "/usr/include/fcntl.h" 3 4
extern int posix_fadvise64 (int __fd, __off64_t __offset, size_t __len,
                            int __advise) ;





extern int posix_fallocate (int __fd, __off_t __offset, size_t __len) ;
# 160 "/usr/include/fcntl.h" 3 4
extern int posix_fallocate64 (int __fd, __off64_t __offset, size_t __len)
     ;




# 214 "../../gcc/gcc/system.h" 2
# 251 "../../gcc/gcc/system.h"
# 1 "/usr/include/sys/wait.h" 1 3 4
# 28 "/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;
# 56 "/usr/include/signal.h" 3 4
# 1 "/usr/include/bits/signum.h" 1 3 4
# 57 "/usr/include/signal.h" 2 3 4
# 71 "/usr/include/signal.h" 3 4
typedef void (*__sighandler_t) (int);




extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
     ;

extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler)
     ;






extern __sighandler_t signal (int __sig, __sighandler_t __handler) ;
# 103 "/usr/include/signal.h" 3 4
extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) ;






extern int kill (__pid_t __pid, int __sig) ;






extern int killpg (__pid_t __pgrp, int __sig) ;



extern int raise (int __sig) ;



extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) ;
extern int gsignal (int __sig) ;




extern void psignal (int __sig, __const char *__s) ;
# 140 "/usr/include/signal.h" 3 4
extern int __sigpause (int __sig_or_mask, int __is_sig) ;




extern int sigpause (int __mask) ;
# 168 "/usr/include/signal.h" 3 4
extern int sigblock (int __mask) ;


extern int sigsetmask (int __mask) ;


extern int siggetmask (void) ;
# 183 "/usr/include/signal.h" 3 4
typedef __sighandler_t sighandler_t;




typedef __sighandler_t sig_t;
# 199 "/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
          {
            unsigned int _timer1;
            unsigned int _timer2;
          } _timer;


        struct
          {
            __pid_t si_pid;
            __uid_t si_uid;
            sigval_t si_sigval;
          } _rt;


        struct
          {
            __pid_t si_pid;
            __uid_t si_uid;
            int si_status;
            __clock_t si_utime;
            __clock_t si_stime;
          } _sigchld;


        struct
          {
            void *si_addr;
            int si_trapno;
          } _sigfault;


        struct
          {
            int si_band;
            int si_fd;
          } _sigpoll;
      } _sifields;
  } siginfo_t;
# 130 "/usr/include/bits/siginfo.h" 3 4
enum
{
  SI_ASYNCNL = -6,

  SI_SIGIO,

  SI_ASYNCIO,

  SI_MESGQ,

  SI_TIMER,

  SI_QUEUE,

  SI_USER,

  SI_KERNEL = 0x80

};



enum
{
  ILL_ILLOPC = 1,

  ILL_ILLOPN,

  ILL_ILLADR,

  ILL_ILLTRP,

  ILL_PRVOPC,

  ILL_PRVREG,

  ILL_COPROC,

  ILL_BADSTK

};


enum
{
  FPE_INTDIV = 1,

  FPE_INTOVF,

  FPE_FLTDIV,

  FPE_FLTOVF,

  FPE_FLTUND,

  FPE_FLTRES,

  FPE_FLTINV,

  FPE_FLTSUB

};


enum
{
  SEGV_MAPERR = 1,

  SEGV_ACCERR

};


enum
{
  BUS_ADRALN = 1,

  BUS_ADRERR,

  BUS_OBJERR

};


enum
{
  TRAP_BRKPT = 1,

  TRAP_TRACE

};


enum
{
  CLD_EXITED = 1,

  CLD_KILLED,

  CLD_DUMPED,

  CLD_TRAPPED,

  CLD_STOPPED,

  CLD_CONTINUED

};


enum
{
  POLL_IN = 1,

  POLL_OUT,

  POLL_MSG,

  POLL_ERR,

  POLL_PRI,

  POLL_HUP

};


enum
{
  EMT_TAGOVF = 1

};
# 280 "/usr/include/bits/siginfo.h" 3 4
struct __pthread_attr_s;

typedef struct sigevent
  {
    sigval_t sigev_value;
    int sigev_signo;
    int sigev_notify;

    union
      {
        int _pad[((64 / sizeof (int)) - 3)];

        struct
          {
            void (*_function) (sigval_t);
            struct __pthread_attr_s *_attribute;
          } _sigev_thread;
      } _sigev_un;
  } sigevent_t;






enum
{
  SIGEV_SIGNAL = 0,

  SIGEV_NONE,

  SIGEV_THREAD

};
# 200 "/usr/include/signal.h" 2 3 4



extern int sigemptyset (sigset_t *__set) ;


extern int sigfillset (sigset_t *__set) ;


extern int sigaddset (sigset_t *__set, int __signo) ;


extern int sigdelset (sigset_t *__set, int __signo) ;


extern int sigismember (__const sigset_t *__set, int __signo) ;



extern int sigisemptyset (__const sigset_t *__set) ;


extern int sigandset (sigset_t *__set, __const sigset_t *__left,
                      __const sigset_t *__right) ;


extern int sigorset (sigset_t *__set, __const sigset_t *__left,
                     __const sigset_t *__right) ;




# 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;


    unsigned long sa_flags;


    void (*sa_restorer) (void);
  };
# 233 "/usr/include/signal.h" 2 3 4


extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
                        sigset_t *__restrict __oset) ;



extern int sigsuspend (__const sigset_t *__set) ;


extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
                      struct sigaction *__restrict __oact) ;


extern int sigpending (sigset_t *__set) ;



extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
     ;



extern int sigwaitinfo (__const sigset_t *__restrict __set,
                        siginfo_t *__restrict __info) ;



extern int sigtimedwait (__const sigset_t *__restrict __set,
                         siginfo_t *__restrict __info,
                         __const struct timespec *__restrict __timeout)
     ;



extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
     ;
# 278 "/usr/include/signal.h" 3 4
extern __const char *__const _sys_siglist[64];
extern __const char *__const sys_siglist[64];


struct sigvec
  {
    __sighandler_t sv_handler;
    int sv_mask;

    int sv_flags;

  };
# 302 "/usr/include/signal.h" 3 4
extern int sigvec (int __sig, __const struct sigvec *__vec,
                   struct sigvec *__ovec) ;



# 1 "/usr/include/bits/sigcontext.h" 1 3 4
# 23 "/usr/include/bits/sigcontext.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 24 "/usr/include/bits/sigcontext.h" 2 3 4
# 33 "/usr/include/bits/sigcontext.h" 3 4
struct sigcontext
  {
    struct
      {
        unsigned int psr;
        unsigned int pc;
        unsigned int npc;
        unsigned int y;
        unsigned int u_regs[16];
      } si_regs;
    int si_mask;
  };
# 308 "/usr/include/signal.h" 2 3 4


extern int sigreturn (struct sigcontext *__scp) ;
# 320 "/usr/include/signal.h" 3 4
extern int siginterrupt (int __sig, int __interrupt) ;

# 1 "/usr/include/bits/sigstack.h" 1 3 4
# 26 "/usr/include/bits/sigstack.h" 3 4
struct sigstack
  {
    void *ss_sp;
    int ss_onstack;
  };



enum
{
  SS_ONSTACK = 1,

  SS_DISABLE

};
# 50 "/usr/include/bits/sigstack.h" 3 4
typedef struct sigaltstack
  {
    void *ss_sp;
    int ss_flags;
    size_t ss_size;
  } stack_t;
# 323 "/usr/include/signal.h" 2 3 4

# 1 "/usr/include/ucontext.h" 1 3 4
# 27 "/usr/include/ucontext.h" 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/wordsize.h" 1 3 4
# 25 "/usr/include/sys/ucontext.h" 2 3 4
# 136 "/usr/include/sys/ucontext.h" 3 4
typedef int greg_t;



typedef greg_t gregset_t[19];
# 150 "/usr/include/sys/ucontext.h" 3 4
struct rwindow
  {
    greg_t rw_local[8];
    greg_t rw_in[8];
  };




typedef struct gwindows
  {
    int wbcnt;
    int *spbuf[31];
    struct rwindow wbuf[31];
  } gwindows_t;
# 179 "/usr/include/sys/ucontext.h" 3 4
struct fpq
  {
    unsigned long *fpq_addr;
    unsigned long fpq_instr;
  };

struct fq
  {
    union
      {
        double whole;
        struct fpq fpq;
      } FQu;
  };
# 218 "/usr/include/sys/ucontext.h" 3 4
typedef struct fpu
  {
    union {
      unsigned long long fpu_regs[32];
      double fpu_dregs[16];
    } fpu_fr;
    struct fq *fpu_q;
    unsigned fpu_fsr;
    unsigned char fpu_qcnt;
    unsigned char fpu_q_entrysize;
    unsigned char fpu_en;
  } fpregset_t;
# 241 "/usr/include/sys/ucontext.h" 3 4
typedef struct
  {
    unsigned int xrs_id;
    void * xrs_ptr;
  } xrs_t;



typedef struct
  {
    gregset_t gregs;
    gwindows_t *gwins;
    fpregset_t fpregs;
    xrs_t xrs;
    long filler[19];
  } mcontext_t;



typedef struct ucontext
  {
    unsigned long uc_flags;
    struct ucontext *uc_link;
    __sigset_t uc_sigmask;
    stack_t uc_stack;
    mcontext_t uc_mcontext;
  } ucontext_t;
# 28 "/usr/include/ucontext.h" 2 3 4




extern int getcontext (ucontext_t *__ucp) ;


extern int setcontext (__const ucontext_t *__ucp) ;



extern int swapcontext (ucontext_t *__restrict __oucp,
                        __const ucontext_t *__restrict __ucp) ;







extern void makecontext (ucontext_t *__ucp, void (*__func) (void),
                         int __argc, ...) ;


# 325 "/usr/include/signal.h" 2 3 4





extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) ;



extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
                        struct sigaltstack *__restrict __oss) ;







extern int sighold (int __sig) ;


extern int sigrelse (int __sig) ;


extern int sigignore (int __sig) ;


extern __sighandler_t sigset (int __sig, __sighandler_t __disp) ;





# 1 "include/bits/sigthread.h" 1 3 4
# 40 "include/bits/sigthread.h" 3 4
extern int pthread_sigmask (int __how,
                            __const __sigset_t *__restrict __newmask,
                            __sigset_t *__restrict __oldmask);


extern int pthread_kill (pthread_t __thr, int __signo) ;
# 359 "/usr/include/signal.h" 2 3 4






extern int __libc_current_sigrtmin (void) ;

extern int __libc_current_sigrtmax (void) ;




# 31 "/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
# 32 "/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 = 6,
  RLIMIT_OFILE = RLIMIT_NOFILE,




  RLIMIT_AS = 9,



  RLIMIT_NPROC = 7,



  RLIMIT_MEMLOCK = 8,



  RLIMIT_LOCKS = 10,


  RLIM_NLIMITS = 11


};
# 122 "/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,



  RUSAGE_BOTH = -2

};


# 1 "/usr/include/bits/time.h" 1 3 4
# 166 "/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) ;
# 63 "/usr/include/sys/resource.h" 3 4
extern int getrlimit64 (__rlimit_resource_t __resource,
                        struct rlimit64 *__rlimits) ;






extern int setrlimit (__rlimit_resource_t __resource,
                      __const struct rlimit *__rlimits) ;
# 83 "/usr/include/sys/resource.h" 3 4
extern int setrlimit64 (__rlimit_resource_t __resource,
                        __const struct rlimit64 *__rlimits) ;




extern int getrusage (__rusage_who_t __who, struct rusage *__usage) ;





extern int getpriority (__priority_which_t __which, id_t __who) ;



extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
     ;


# 32 "/usr/include/sys/wait.h" 2 3 4
# 98 "/usr/include/sys/wait.h" 3 4
typedef enum
{
  P_ALL,
  P_PID,
  P_PGID
} idtype_t;





extern __pid_t wait (__WAIT_STATUS __stat_loc) ;
# 129 "/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
# 134 "/usr/include/sys/wait.h" 2 3 4
# 142 "/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) ;





struct rusage;


extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
                      struct rusage *__usage) ;




# 252 "../../gcc/gcc/system.h" 2
# 296 "../../gcc/gcc/system.h"
extern int getopt (int, char * const *, const char *);
# 312 "../../gcc/gcc/system.h"
# 1 "/usr/include/malloc.h" 1 3 4
# 44 "/usr/include/malloc.h" 3 4
# 1 "include/stddef.h" 1 3 4
# 45 "/usr/include/malloc.h" 2 3 4
# 113 "/usr/include/malloc.h" 3 4
extern void * malloc (size_t __size) __attribute__ ((__malloc__));


extern void * calloc (size_t __nmemb, size_t __size)
       __attribute__ ((__malloc__));



extern void * realloc (void * __ptr, size_t __size)

       __attribute__ ((__malloc__));


extern void free (void * __ptr) ;


extern void cfree (void * __ptr) ;


extern void * memalign (size_t __alignment, size_t __size) ;


extern void * valloc (size_t __size) __attribute__ ((__malloc__));



extern void * pvalloc (size_t __size)
       __attribute__ ((__malloc__));



extern void * (*__morecore) (ptrdiff_t __size);


extern void * __default_morecore (ptrdiff_t __size)
       __attribute__ ((__malloc__));


struct mallinfo {
  int arena;
  int ordblks;
  int smblks;
  int hblks;
  int hblkhd;
  int usmblks;
  int fsmblks;
  int uordblks;
  int fordblks;
  int keepcost;
};


extern struct mallinfo mallinfo (void) ;
# 189 "/usr/include/malloc.h" 3 4
extern int mallopt (int __param, int __val) ;



extern int malloc_trim (size_t __pad) ;



extern size_t malloc_usable_size (void * __ptr) ;


extern void malloc_stats (void) ;


extern void * malloc_get_state (void) ;



extern int malloc_set_state (void * __ptr) ;





extern void (*__malloc_initialize_hook) (void);

extern void (*__free_hook) (void * __ptr, __const void *);

extern void * (*__malloc_hook) (size_t __size, __const void *);

extern void * (*__realloc_hook) (void * __ptr, size_t __size, __const void *);


extern void * (*__memalign_hook) (size_t __alignment, size_t __size, __const void *);


extern void (*__after_morecore_hook) (void);


extern void __malloc_check_init (void) ;
# 313 "../../gcc/gcc/system.h" 2
# 490 "../../gcc/gcc/system.h"
# 1 "../../gcc/include/libiberty.h" 1
# 46 "../../gcc/include/libiberty.h"
# 1 "include/stddef.h" 1 3 4
# 47 "../../gcc/include/libiberty.h" 2







extern char **buildargv (const char *) __attribute__ ((__malloc__));



extern void freeargv (char **);




extern char **dupargv (char **) __attribute__ ((__malloc__));
# 86 "../../gcc/include/libiberty.h"
extern const char *lbasename (const char *);





extern char *concat (const char *, ...) __attribute__ ((__malloc__));
# 101 "../../gcc/include/libiberty.h"
extern char *reconcat (char *, const char *, ...) __attribute__ ((__malloc__));





extern unsigned long concat_length (const char *, ...);






extern char *concat_copy (char *, const char *, ...);






extern char *concat_copy2 (const char *, ...);



extern char *libiberty_concat_ptr;
# 137 "../../gcc/include/libiberty.h"
extern int fdmatch (int fd1, int fd2);




extern char * getpwd (void);



extern long get_run_time (void);



extern char *choose_temp_base (void) __attribute__ ((__malloc__));



extern char *make_temp_file (const char *) __attribute__ ((__malloc__));



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);
# 193 "../../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 void * xmemdup (const void *, size_t, size_t) __attribute__ ((__malloc__));





extern const char _hex_value[256];
extern void hex_init (void);
# 260 "../../gcc/include/libiberty.h"
extern int pexecute (const char *, char * const *, const char *, const char *, char **, char **, int);




extern int pwait (int, int *, int);




extern int asprintf (char **, const char *, ...) __attribute__ ((__format__ (__printf__, 2, 3)));




extern int vasprintf (char **, const char *, va_list)
  __attribute__ ((__format__ (__printf__, 2, 0)));
# 286 "../../gcc/include/libiberty.h"
extern void * C_alloca (size_t) __attribute__ ((__malloc__));
# 491 "../../gcc/gcc/system.h" 2
# 1 "../../gcc/include/symcat.h" 1
# 492 "../../gcc/gcc/system.h" 2
# 547 "../../gcc/gcc/system.h"
# 1 "include/stdbool.h" 1 3 4
# 548 "../../gcc/gcc/system.h" 2
# 25 "../../gcc/gcc/cppfiles.c" 2
# 1 "../../gcc/gcc/cpplib.h" 1
# 27 "../../gcc/gcc/cpplib.h"
# 1 "../../gcc/gcc/hashtable.h" 1
# 21 "../../gcc/gcc/hashtable.h"
# 1 "../../gcc/include/obstack.h" 1
# 161 "../../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 *);
# 223 "../../gcc/include/obstack.h"
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);
# 267 "../../gcc/include/obstack.h"
extern void (*obstack_alloc_failed_handler) (void);





extern int obstack_exit_failure;
# 22 "../../gcc/gcc/hashtable.h" 2



typedef struct ht_identifier ht_identifier;
struct ht_identifier
{
  unsigned int len;
  const unsigned char *str;
};
# 39 "../../gcc/gcc/hashtable.h"
struct cpp_reader;
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 *);

  unsigned int nslots;
  unsigned int nelements;


  struct cpp_reader *pfile;


  unsigned int searches;
  unsigned int collisions;
};

extern void gcc_obstack_init (struct obstack *);


extern hash_table *ht_create (unsigned int order);


extern void ht_destroy (hash_table *);

extern hashnode ht_lookup (hash_table *, const unsigned char *, 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_dump_statistics (hash_table *);



extern double approx_sqrt (double);
# 28 "../../gcc/gcc/cpplib.h" 2
# 1 "../../gcc/gcc/line-map.h" 1
# 31 "../../gcc/gcc/line-map.h"
enum lc_reason {LC_ENTER = 0, LC_LEAVE, LC_RENAME};
# 41 "../../gcc/gcc/line-map.h"
struct line_map
{
  const char *to_file;
  unsigned int to_line;
  unsigned int from_line;
  int included_from;
  enum lc_reason reason : 8;
  unsigned char sysp;
};


struct line_maps
{
  struct line_map *maps;
  unsigned int allocated;
  unsigned int used;




  int last_listed;


  unsigned int depth;


  _Bool trace_includes;
};


extern void init_line_maps
  (struct line_maps *);


extern void free_line_maps
  (struct line_maps *);
# 87 "../../gcc/gcc/line-map.h"
extern const struct line_map *add_line_map
  (struct line_maps *, enum lc_reason, unsigned int sysp, unsigned int from_line, const char *to_file, unsigned int to_line);




extern const struct line_map *lookup_line
  (struct line_maps *, unsigned int);




extern void print_containing_files
  (struct line_maps *, const struct line_map *);
# 29 "../../gcc/gcc/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;

struct answer;
struct file_name_map_list;
# 146 "../../gcc/gcc/cpplib.h"
enum cpp_ttype
{
  CPP_EQ = 0, 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_MIN, CPP_MAX, 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_MIN_EQ, CPP_MAX_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_NUMBER, CPP_CHAR, CPP_WCHAR, CPP_OTHER, CPP_STRING, CPP_WSTRING, CPP_HEADER_NAME, CPP_COMMENT, CPP_MACRO_ARG, CPP_PADDING,
  N_TTYPES
};




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;
};
# 176 "../../gcc/gcc/cpplib.h"
struct cpp_token
{
  unsigned int line;
  unsigned short col;
  enum cpp_ttype type : 8;
  unsigned char flags;

  union
  {
    cpp_hashnode *node;
    const cpp_token *source;
    struct cpp_string str;
    unsigned int arg_no;
    unsigned char c;
  } val;
};
# 208 "../../gcc/gcc/cpplib.h"
typedef unsigned int cppchar_t;
typedef int cppchar_signed_t;
# 218 "../../gcc/gcc/cpplib.h"
enum { dump_none = 0, dump_only, dump_names, dump_definitions };



struct cpp_options
{

  unsigned int tabstop;


  struct cpp_pending *pending;


  struct search_path *quote_include;
  struct search_path *bracket_include;



  struct file_name_map_list *map_list;



  const char *include_prefix;
  unsigned int include_prefix_len;


  enum c_lang lang;


  unsigned char verbose;


  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_system_headers;



  unsigned char inhibit_errors;


  unsigned char warn_comments;


  unsigned char warn_trigraphs;


  unsigned char warn_import;


  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 warnings_are_errors;



  unsigned char no_output;



  unsigned char remap;


  unsigned char no_line_commands;



  unsigned char ignore_srcdir;


  unsigned char dollars_in_ident;


  unsigned char warn_undef;


  unsigned char warn_unused_macros;


  unsigned char c99;


  unsigned char std;


  unsigned char pedantic;



  unsigned char preprocessed;


  unsigned char no_standard_includes;


  unsigned char no_standard_cplusplus_includes;


  unsigned char dump_macros;


  unsigned char dump_includes;


  unsigned char show_column;


  unsigned char operator_names;


  unsigned char traditional;


  struct
  {

    enum {DEPS_NONE = 0, DEPS_USER, DEPS_SYSTEM } style;


    _Bool missing_files;



    _Bool phony_targets;


    _Bool ignore_main_file;
  } deps;





  size_t precision, char_precision, int_precision, wchar_precision;


  _Bool unsigned_char, unsigned_wchar;


  unsigned char stdc_0_in_system_headers;
};


struct cpp_callbacks
{

  void (*line_change) (cpp_reader *, const cpp_token *, int);
  void (*file_change) (cpp_reader *, const struct line_map *);
  void (*include) (cpp_reader *, unsigned int, const unsigned char *, 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);


  void (*register_builtins) (cpp_reader *);
};


extern const char *progname;
# 448 "../../gcc/gcc/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
};
# 477 "../../gcc/gcc/cpplib.h"
struct cpp_hashnode
{
  struct ht_identifier ident;
  unsigned short arg_index;
  unsigned char directive_index;
  unsigned char rid_code;
  enum node_type type : 8;
  unsigned char flags;

  union
  {
    cpp_macro *macro;
    struct answer *answers;
    enum cpp_ttype operator;
    enum builtin_type builtin;
  } value;
};


extern cpp_reader *cpp_create_reader (enum c_lang);



extern void cpp_set_lang (cpp_reader *, enum c_lang);





extern void cpp_add_dependency_target (cpp_reader *, const char * target, int quote);
# 515 "../../gcc/gcc/cpplib.h"
extern cpp_options *cpp_get_options (cpp_reader *);
extern const struct line_maps *cpp_get_line_maps (cpp_reader *);
extern cpp_callbacks *cpp_get_callbacks (cpp_reader *);
extern void cpp_set_callbacks (cpp_reader *, cpp_callbacks *);






extern int cpp_handle_options (cpp_reader *, int, char **);
extern int cpp_handle_option (cpp_reader *, int, char **);
# 538 "../../gcc/gcc/cpplib.h"
extern const char *cpp_read_main_file (cpp_reader *, const char *, struct ht *);







extern void cpp_finish_options (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 *);

extern void cpp_register_pragma (cpp_reader *, const char *, const char *, void (*) (cpp_reader *));



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 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 cpp_buffer *cpp_push_buffer (cpp_reader *, const unsigned char *, size_t, int, int);


extern int cpp_defined (cpp_reader *, const unsigned char *, int);



typedef unsigned int cpp_num_part;
typedef struct cpp_num cpp_num;
struct cpp_num
{
  cpp_num_part high;
  cpp_num_part low;
  _Bool unsignedp;
  _Bool overflow;
};
# 635 "../../gcc/gcc/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);
# 673 "../../gcc/gcc/cpplib.h"
extern void cpp_error (cpp_reader *, int, const char *msgid, ...)
  __attribute__ ((__format__ (__printf__, 3, 4)));



extern void cpp_errno (cpp_reader *, int level, const char *msg);




extern void cpp_error_with_line (cpp_reader *, int, unsigned, unsigned, const char *msgid, ...)
  __attribute__ ((__format__ (__printf__, 5, 6)));


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);
# 706 "../../gcc/gcc/cpplib.h"
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 int cpp_included (cpp_reader *, const char *);
extern void cpp_make_system_header (cpp_reader *, int, int);


extern void cpp_preprocess_file (cpp_reader *, const char *, FILE *);
# 26 "../../gcc/gcc/cppfiles.c" 2
# 1 "../../gcc/gcc/cpphash.h" 1
# 28 "../../gcc/gcc/cpphash.h"
struct directive;
struct pending_option;
struct op;

typedef unsigned char uchar;
# 54 "../../gcc/gcc/cpphash.h"
struct dummy
{
  char c;
  union
  {
    double d;
    int *p;
  } u;
};







struct cpp_macro
{

  cpp_hashnode **params;




  union
  {
    cpp_token *tokens;
    const uchar *text;
  } exp;


  unsigned int line;


  unsigned int count;


  unsigned short paramc;


  unsigned int fun_like : 1;


  unsigned int variadic : 1;


  unsigned int syshdr : 1;


  unsigned int used : 1;
};






typedef struct _cpp_buff _cpp_buff;
struct _cpp_buff
{
  struct _cpp_buff *next;
  unsigned char *base, *cur, *limit;
};

extern _cpp_buff *_cpp_get_buff (cpp_reader *, size_t);
extern void _cpp_release_buff (cpp_reader *, _cpp_buff *);
extern void _cpp_extend_buff (cpp_reader *, _cpp_buff **, size_t);
extern _cpp_buff *_cpp_append_extend_buff (cpp_reader *, _cpp_buff *, size_t);

extern void _cpp_free_buff (_cpp_buff *);
extern unsigned char *_cpp_aligned_alloc (cpp_reader *, size_t);
extern unsigned char *_cpp_unaligned_alloc (cpp_reader *, size_t);






struct search_path
{
  struct search_path *next;



  const char *name;
  unsigned int len;


  ino_t ino;
  dev_t dev;

  int sysp;


  struct file_name_map *name_map;
};


enum include_type {IT_INCLUDE, IT_INCLUDE_NEXT, IT_IMPORT, IT_CMDLINE};

union utoken
{
  const cpp_token *token;
  const cpp_token **ptoken;
};


typedef struct tokenrun tokenrun;
struct tokenrun
{
  tokenrun *next, *prev;
  cpp_token *base, *limit;
};







typedef struct cpp_context cpp_context;
struct cpp_context
{

  cpp_context *next, *prev;

  union
  {



    struct
    {
      union utoken first;
      union utoken last;
    } iso;


    struct
    {
      const uchar *cur;
      const uchar *rlimit;
    } trad;
  } u;



  _cpp_buff *buff;


  cpp_hashnode *macro;


  _Bool direct_p;
};

struct lexer_state
{

  unsigned char in_directive;


  unsigned char skipping;


  unsigned char angled_headers;


  unsigned char in_expression;



  unsigned char save_comments;


  unsigned char lexing_comment;


  unsigned char va_args_ok;


  unsigned char poisoned_ok;


  unsigned char prevent_expansion;


  unsigned char parsing_args;


  unsigned int skip_eval;
};


struct spec_nodes
{
  cpp_hashnode *n_defined;
  cpp_hashnode *n_true;
  cpp_hashnode *n_false;
  cpp_hashnode *n__VA_ARGS__;
};



struct printer
{
  FILE *outf;
  const struct line_map *map;
  const cpp_token *prev;
  const cpp_token *source;
  unsigned int line;
  unsigned char printed;
};


struct cpp_buffer
{
  const unsigned char *cur;
  const unsigned char *backup_to;
  const unsigned char *rlimit;
  const unsigned char *line_base;

  struct cpp_buffer *prev;

  const unsigned char *buf;



  struct include_file *inc;



  struct if_stack *if_stack;


  unsigned int col_adjust;


  unsigned char saved_flags;



  const unsigned char *last_Wtrigraphs;





  unsigned char warned_cplusplus_comments;




  unsigned char from_stage3;



  unsigned char search_cached;




  _Bool return_at_eof;



  struct search_path dir;


  const uchar *saved_cur, *saved_rlimit;
};




struct cpp_reader
{

  cpp_buffer *buffer;


  cpp_buffer *overlaid_buffer;


  struct lexer_state state;


  struct line_maps line_maps;
  const struct line_map *map;
  unsigned int line;


  unsigned int directive_line;


  _cpp_buff *a_buff;
  _cpp_buff *u_buff;
  _cpp_buff *free_buffs;


  struct cpp_context base_context;
  struct cpp_context *context;


  const struct directive *directive;




  struct pending_option **next_include_file;


  const cpp_hashnode *mi_cmacro;
  const cpp_hashnode *mi_ind_cmacro;
  _Bool mi_valid;


  cpp_token *cur_token;
  tokenrun base_run, *cur_run;
  unsigned int lookaheads;


  unsigned int keep_tokens;


  unsigned int errors;


  unsigned char *macro_buffer;
  unsigned int macro_buffer_len;


  struct splay_tree_s *all_include_files;



  unsigned int max_include_len;


  unsigned int first_unused_line;


  const uchar *date;
  const uchar *time;


  cpp_token avoid_paste;
  cpp_token eof;


  struct deps *deps;



  struct obstack hash_ob;



  struct obstack buffer_ob;



  struct pragma_entry *pragmas;


  struct cpp_callbacks cb;


  struct ht *hash_table;


  struct op *op_stack, *op_limit;


  struct cpp_options opts;



  struct spec_nodes spec_nodes;


  struct printer print;


  unsigned char our_hashtable;


  struct
  {
    uchar *base;
    uchar *limit;
    uchar *cur;
    unsigned int first_line;
  } out;



  unsigned int saved_line;
};
# 476 "../../gcc/gcc/cpphash.h"
extern const unsigned char _cpp_trigraph_map[(127 * 2 + 1) + 1];
# 488 "../../gcc/gcc/cpphash.h"
extern int _cpp_begin_message (cpp_reader *, int, unsigned int, unsigned int);



extern void _cpp_free_definition (cpp_hashnode *);
extern _Bool _cpp_create_definition (cpp_reader *, cpp_hashnode *);
extern void _cpp_pop_context (cpp_reader *);
extern void _cpp_push_text_context (cpp_reader *, cpp_hashnode *, const uchar *, size_t);

extern _Bool _cpp_save_parameter (cpp_reader *, cpp_macro *, cpp_hashnode *);

extern _Bool _cpp_arguments_ok (cpp_reader *, cpp_macro *, const cpp_hashnode *, unsigned int);


extern const uchar *_cpp_builtin_macro_text (cpp_reader *, cpp_hashnode *);

int _cpp_warn_if_unused_macro (cpp_reader *, cpp_hashnode *, void *);


extern void _cpp_init_hashtable (cpp_reader *, hash_table *);
extern void _cpp_destroy_hashtable (cpp_reader *);


extern void _cpp_fake_include (cpp_reader *, const char *);
extern void _cpp_never_reread (struct include_file *);
extern char *_cpp_simplify_pathname (char *);
extern _Bool _cpp_read_file (cpp_reader *, const char *);
extern _Bool _cpp_execute_include (cpp_reader *, const cpp_token *, enum include_type);


extern int _cpp_compare_file_date (cpp_reader *, const cpp_token *);

extern void _cpp_report_missing_guards (cpp_reader *);
extern void _cpp_init_includes (cpp_reader *);
extern void _cpp_cleanup_includes (cpp_reader *);
extern void _cpp_pop_file_buffer (cpp_reader *, struct include_file *);



extern _Bool _cpp_parse_expr (cpp_reader *);
extern struct op *_cpp_expand_op_stack (cpp_reader *);


extern cpp_token *_cpp_temp_token (cpp_reader *);
extern const cpp_token *_cpp_lex_token (cpp_reader *);
extern cpp_token *_cpp_lex_direct (cpp_reader *);
extern int _cpp_equiv_tokens (const cpp_token *, const cpp_token *);

extern void _cpp_init_tokenrun (tokenrun *, unsigned int);


extern void _cpp_maybe_push_include_file (cpp_reader *);


extern int _cpp_test_assertion (cpp_reader *, unsigned int *);
extern int _cpp_handle_directive (cpp_reader *, int);
extern void _cpp_define_builtin (cpp_reader *, const char *);
extern void _cpp_do__Pragma (cpp_reader *);
extern void _cpp_init_directives (cpp_reader *);
extern void _cpp_init_internal_pragmas (cpp_reader *);
extern void _cpp_do_file_change (cpp_reader *, enum lc_reason, const char *, unsigned int, unsigned int);


extern void _cpp_pop_buffer (cpp_reader *);


extern _Bool _cpp_read_logical_line_trad (cpp_reader *);
extern void _cpp_overlay_buffer (cpp_reader *pfile, const uchar *, size_t);

extern void _cpp_remove_overlay (cpp_reader *);
extern _Bool _cpp_create_trad_definition (cpp_reader *, cpp_macro *);
extern _Bool _cpp_expansions_different_trad (const cpp_macro *, const cpp_macro *);

extern uchar *_cpp_copy_replacement_text (const cpp_macro *, uchar *);
extern size_t _cpp_replacement_text_len (const cpp_macro *);
# 574 "../../gcc/gcc/cpphash.h"
static __inline__ int ustrcmp (const uchar *, const uchar *);
static __inline__ int ustrncmp (const uchar *, const uchar *, size_t);

static __inline__ size_t ustrlen (const uchar *);
static __inline__ uchar *uxstrdup (const uchar *);
static __inline__ uchar *ustrchr (const uchar *, int);
static __inline__ int ufputs (const uchar *, FILE *);

static __inline__ int
ustrcmp (s1, s2)
     const uchar *s1, *s2;
{
  return strcmp ((const char *)s1, (const char *)s2);
}

static __inline__ int
ustrncmp (s1, s2, n)
     const uchar *s1, *s2;
     size_t n;
{
  return strncmp ((const char *)s1, (const char *)s2, n);
}

static __inline__ size_t
ustrlen (s1)
     const uchar *s1;
{
  return strlen ((const char *)s1);
}

static __inline__ uchar *
uxstrdup (s1)
     const uchar *s1;
{
  return (uchar *) xstrdup ((const char *)s1);
}

static __inline__ uchar *
ustrchr (s1, c)
     const uchar *s1;
     int c;
{
  return (uchar *) strchr ((const char *)s1, c);
}

static __inline__ int
ufputs (s, f)
     const uchar *s;
     FILE *f;
{
  return fputs_unlocked ((const char *)s, f);
}
# 27 "../../gcc/gcc/cppfiles.c" 2
# 1 "../../gcc/gcc/intl.h" 1
# 23 "../../gcc/gcc/intl.h"
# 1 "/usr/include/locale.h" 1 3 4
# 29 "/usr/include/locale.h" 3 4
# 1 "include/stddef.h" 1 3 4
# 30 "/usr/include/locale.h" 2 3 4
# 1 "/usr/include/bits/locale.h" 1 3 4
# 27 "/usr/include/bits/locale.h" 3 4
enum
{
  __LC_CTYPE = 0,
  __LC_NUMERIC = 1,
  __LC_TIME = 2,
  __LC_COLLATE = 3,
  __LC_MONETARY = 4,
  __LC_MESSAGES = 5,
  __LC_ALL = 6,
  __LC_PAPER = 7,
  __LC_NAME = 8,
  __LC_ADDRESS = 9,
  __LC_TELEPHONE = 10,
  __LC_MEASUREMENT = 11,
  __LC_IDENTIFICATION = 12
};
# 31 "/usr/include/locale.h" 2 3 4


# 52 "/usr/include/locale.h" 3 4
struct lconv
{


  char *decimal_point;
  char *thousands_sep;





  char *grouping;





  char *int_curr_symbol;
  char *currency_symbol;
  char *mon_decimal_point;
  char *mon_thousands_sep;
  char *mon_grouping;
  char *positive_sign;
  char *negative_sign;
  char int_frac_digits;
  char frac_digits;

  char p_cs_precedes;

  char p_sep_by_space;

  char n_cs_precedes;

  char n_sep_by_space;






  char p_sign_posn;
  char n_sign_posn;


  char int_p_cs_precedes;

  char int_p_sep_by_space;

  char int_n_cs_precedes;

  char int_n_sep_by_space;






  char int_p_sign_posn;
  char int_n_sign_posn;
# 119 "/usr/include/locale.h" 3 4
};



extern char *setlocale (int __category, __const char *__locale) ;


extern struct lconv *localeconv (void) ;
# 149 "/usr/include/locale.h" 3 4
extern __locale_t __newlocale (int __category_mask, __const char *__locale,
                               __locale_t __base) ;



extern __locale_t __duplocale (__locale_t __dataset) ;



extern void __freelocale (__locale_t __dataset) ;



# 24 "../../gcc/gcc/intl.h" 2
# 34 "../../gcc/gcc/intl.h"
# 1 "/usr/include/libintl.h" 1 3 4
# 30 "/usr/include/libintl.h" 3 4





extern char *gettext (__const char *__msgid) ;



extern char *dgettext (__const char *__domainname, __const char *__msgid)
     ;
extern char *__dgettext (__const char *__domainname, __const char *__msgid)
     __attribute__ ((__format_arg__ (2)));



extern char *dcgettext (__const char *__domainname,
                        __const char *__msgid, int __category) ;
extern char *__dcgettext (__const char *__domainname,
                          __const char *__msgid, int __category)
     __attribute__ ((__format_arg__ (2)));




extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
                       unsigned long int __n)
     __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));



extern char *dngettext (__const char *__domainname, __const char *__msgid1,
                        __const char *__msgid2, unsigned long int __n)
     __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));



extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
                         __const char *__msgid2, unsigned long int __n,
                         int __category)
     __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));





extern char *textdomain (__const char *__domainname) ;



extern char *bindtextdomain (__const char *__domainname,
                             __const char *__dirname) ;



extern char *bind_textdomain_codeset (__const char *__domainname,
                                      __const char *__codeset) ;







# 1 "include/stddef.h" 1 3 4
# 95 "/usr/include/libintl.h" 2 3 4
# 115 "/usr/include/libintl.h" 3 4

# 35 "../../gcc/gcc/intl.h" 2






extern void gcc_init_libintl (void);
# 28 "../../gcc/gcc/cppfiles.c" 2
# 1 "../../gcc/gcc/mkdeps.h" 1
# 29 "../../gcc/gcc/mkdeps.h"
struct deps;


extern struct deps *deps_init (void);


extern void deps_free (struct deps *);



extern void deps_add_target (struct deps *, const char *, int);



extern void deps_add_default_target (struct deps *, const char *);





extern void deps_add_dep (struct deps *, const char *);



extern void deps_write (const struct deps *, FILE *, unsigned int);






extern void deps_phony_targets (const struct deps *, FILE *);
# 29 "../../gcc/gcc/cppfiles.c" 2
# 1 "../../gcc/include/splay-tree.h" 1
# 43 "../../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;
};


typedef 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;

} *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);
# 30 "../../gcc/gcc/cppfiles.c" 2


# 1 "/usr/include/sys/mman.h" 1 3 4
# 26 "/usr/include/sys/mman.h" 3 4
# 1 "include/stddef.h" 1 3 4
# 27 "/usr/include/sys/mman.h" 2 3 4
# 42 "/usr/include/sys/mman.h" 3 4
# 1 "/usr/include/bits/mman.h" 1 3 4
# 43 "/usr/include/sys/mman.h" 2 3 4





# 58 "/usr/include/sys/mman.h" 3 4
extern void *mmap (void *__addr, size_t __len, int __prot,
                   int __flags, int __fd, __off_t __offset) ;
# 71 "/usr/include/sys/mman.h" 3 4
extern void *mmap64 (void *__addr, size_t __len, int __prot,
                     int __flags, int __fd, __off64_t __offset) ;




extern int munmap (void *__addr, size_t __len) ;




extern int mprotect (void *__addr, size_t __len, int __prot) ;




extern int msync (void *__addr, size_t __len, int __flags) ;




extern int madvise (void *__addr, size_t __len, int __advice) ;



extern int posix_madvise (void *__addr, size_t __len, int __advice) ;




extern int mlock (__const void *__addr, size_t __len) ;


extern int munlock (__const void *__addr, size_t __len) ;




extern int mlockall (int __flags) ;



extern int munlockall (void) ;





extern void *mremap (void *__addr, size_t __old_len, size_t __new_len,
                     int __may_move) ;






extern int mincore (void *__start, size_t __len, unsigned char *__vec);




extern int shm_open (__const char *__name, int __oflag, mode_t __mode);


extern int shm_unlink (__const char *__name);


# 33 "../../gcc/gcc/cppfiles.c" 2
# 80 "../../gcc/gcc/cppfiles.c"
struct include_file
{
  const char *name;
  const cpp_hashnode *cmacro;
  const struct search_path *foundhere;


  const unsigned char *buffer;
  struct stat st;
  int fd;
  int err_no;
  unsigned short include_count;
  unsigned short refcnt;
  unsigned char mapped;
};
# 115 "../../gcc/gcc/cppfiles.c"
static struct file_name_map *read_name_map
                                (cpp_reader *, const char *);
static char *read_filename_string (int, FILE *);
static char *remap_filename (cpp_reader *, char *, struct search_path *);

static struct search_path *search_from (cpp_reader *, enum include_type);

static struct include_file *
        find_include_file (cpp_reader *, const cpp_token *, enum include_type);

static struct include_file *open_file (cpp_reader *, const char *);
static int read_include_file (cpp_reader *, struct include_file *);
static _Bool stack_include_file (cpp_reader *, struct include_file *);
static void purge_cache (struct include_file *);
static void destroy_node (splay_tree_value);
static int report_missing_guard (splay_tree_node, void *);
static splay_tree_node find_or_create_entry (cpp_reader *, const char *);

static void handle_missing_header (cpp_reader *, const char *, int);
static int remove_component_p (const char *);
# 148 "../../gcc/gcc/cppfiles.c"
void
_cpp_init_includes (pfile)
     cpp_reader *pfile;
{
  pfile->all_include_files
    = splay_tree_new ((splay_tree_compare_fn) strcmp,
                      (splay_tree_delete_key_fn) free,
                      destroy_node);
}


void
_cpp_cleanup_includes (pfile)
     cpp_reader *pfile;
{
  splay_tree_delete (pfile->all_include_files);
}


static void
destroy_node (v)
     splay_tree_value v;
{
  struct include_file *f = (struct include_file *)v;

  if (f)
    {
      purge_cache (f);
      free (f);
    }
}


void
_cpp_never_reread (file)
     struct include_file *file;
{
  file->cmacro = ((const cpp_hashnode *)-1);
}




static splay_tree_node
find_or_create_entry (pfile, fname)
     cpp_reader *pfile;
     const char *fname;
{
  splay_tree_node node;
  struct include_file *file;
  char *name = xstrdup (fname);

  _cpp_simplify_pathname (name);
  node = splay_tree_lookup (pfile->all_include_files, (splay_tree_key) name);
  if (node)
    free (name);
  else
    {
      file = (struct include_file *) xcalloc (1, sizeof(struct include_file));
      file->name = name;
      file->err_no = (*__errno_location ());
      node = splay_tree_insert (pfile->all_include_files,
                                (splay_tree_key) file->name,
                                (splay_tree_value) file);
    }

  return node;
}


void
_cpp_fake_include (pfile, fname)
     cpp_reader *pfile;
     const char *fname;
{
  find_or_create_entry (pfile, fname);
}
# 235 "../../gcc/gcc/cppfiles.c"
static struct include_file *
open_file (pfile, filename)
     cpp_reader *pfile;
     const char *filename;
{
  splay_tree_node nd = find_or_create_entry (pfile, filename);
  struct include_file *file = (struct include_file *) nd->value;

  if (file->err_no)
    {

      (*__errno_location ()) = file->err_no;
      return 0;
    }


  if (((file)->cmacro && ((file)->cmacro == ((const cpp_hashnode *)-1) || (file)->cmacro->type == NT_MACRO)))
    return file;


  if (file->buffer != ((void *)0))
    return file;
# 272 "../../gcc/gcc/cppfiles.c"
  if (filename[0] == '\0')
    {
      file->fd = 0;






    }
  else
    file->fd = open (file->name, 0x0000 | 0x8000 | 0, 0666);

  if (file->fd != -1 && fstat (file->fd, &file->st) == 0)
    {
      if (!((((file->st.st_mode)) & 0170000) == (0040000)))
        return file;




      (*__errno_location ()) = 2;
      close (file->fd);
      file->fd = -1;
    }

  file->err_no = (*__errno_location ());
  return 0;
}





static _Bool
stack_include_file (pfile, inc)
     cpp_reader *pfile;
     struct include_file *inc;
{
  cpp_buffer *fp;
  int sysp;
  const char *filename;

  if (((inc)->cmacro && ((inc)->cmacro == ((const cpp_hashnode *)-1) || (inc)->cmacro->type == NT_MACRO)))
    return 0;

  sysp = (((pfile->map ? pfile->map->sysp : 0)) > ((inc->foundhere ? inc->foundhere->sysp : 0)) ? ((pfile->map ? pfile->map->sysp : 0)) : ((inc->foundhere ? inc->foundhere->sysp : 0)));



  if (((pfile)->opts.deps.style) > !!sysp && !inc->include_count)
    {
      if (pfile->buffer || ((pfile)->opts.deps.ignore_main_file) == 0)
        deps_add_dep (pfile->deps, inc->name);
    }


  if (! inc->buffer)
    {
      if (read_include_file (pfile, inc))
        {

          _cpp_never_reread (inc);
          return 0;
        }



      if (((((inc->st.st_mode)) & 0170000) == (0100000)) && inc->st.st_size == 0)
        _cpp_never_reread (inc);
      close (inc->fd);
      inc->fd = -1;
    }

  if (pfile->buffer)

    inc->include_count++;


  fp = cpp_push_buffer (pfile, inc->buffer, inc->st.st_size,
                                          ((pfile)->opts.preprocessed), 0);
  fp->inc = inc;
  fp->inc->refcnt++;


  pfile->mi_valid = 1;
  pfile->mi_cmacro = 0;


  filename = inc->name;
  if (*filename == '\0')
    filename = "<stdin>";
  _cpp_do_file_change (pfile, LC_ENTER, filename, 1, sysp);

  return 1;
}
# 383 "../../gcc/gcc/cppfiles.c"
static int
read_include_file (pfile, inc)
     cpp_reader *pfile;
     struct include_file *inc;
{
  ssize_t size, offset, count;
  uchar *buf;

  static int pagesize = -1;


  if (((((inc->st.st_mode)) & 0170000) == (0100000)))
    {
# 404 "../../gcc/gcc/cppfiles.c"
      if (inc->st.st_size > ((ssize_t) (~ (ssize_t) 0 - ((ssize_t) ((! ((ssize_t) 0 < (ssize_t) -1)) ? ~ (ssize_t) 0 << (sizeof(ssize_t) * 8 - 1) : (ssize_t) 0)))))
        {
          cpp_error (pfile, 0x03, "%s is too large", inc->name);
          goto fail;
        }
      size = inc->st.st_size;

      inc->mapped = 0;

      if (pagesize == -1)
        pagesize = getpagesize ();

      if ((size / pagesize >= 3 && (size % pagesize) != 0))
        {
          buf = (uchar *) mmap (0, size, 0x1, 0x02, inc->fd, 0);
          if (buf == (uchar *)-1)
            goto perror_fail;
          inc->mapped = 1;
        }
      else

        {
          buf = (uchar *) xmalloc (size + 1);
          offset = 0;
          while (offset < size)
            {
              count = read (inc->fd, buf + offset, size - offset);
              if (count < 0)
                goto perror_fail;
              if (count == 0)
                {
                  if (!0)
                    cpp_error (pfile, 0x00,
                               "%s is shorter than expected", inc->name);
                  size = offset;
                  buf = xrealloc (buf, size + 1);
                  inc->st.st_size = size;
                  break;
                }
              offset += count;
            }

          buf[size] = '\0';
        }
    }
  else if (((((inc->st.st_mode)) & 0170000) == (0060000)))
    {
      cpp_error (pfile, 0x03, "%s is a block device", inc->name);
      goto fail;
    }
  else
    {



      size = 8 * 1024;

      buf = (uchar *) xmalloc (size + 1);
      offset = 0;
      while ((count = read (inc->fd, buf + offset, size - offset)) > 0)
        {
          offset += count;
          if (offset == size)
            {
              size *= 2;
              buf = xrealloc (buf, size + 1);
            }
        }
      if (count < 0)
        goto perror_fail;

      if (offset + 1 < size)
        buf = xrealloc (buf, offset + 1);


      buf[offset] = '\0';
      inc->st.st_size = offset;
    }

  inc->buffer = buf;
  return 0;

 perror_fail:
  cpp_errno (pfile, 0x03, inc->name);
 fail:
  return 1;
}


static void
purge_cache (inc)
     struct include_file *inc;
{
  if (inc->buffer)
    {

      if (inc->mapped)
        munmap ((void *) inc->buffer, inc->st.st_size);
      else

        free ((void *) inc->buffer);
      inc->buffer = ((void *)0);
    }
}



int
cpp_included (pfile, fname)
     cpp_reader *pfile;
     const char *fname;
{
  struct search_path *path;
  char *name, *n;
  splay_tree_node nd;

  if (((((fname)[0]) == '/') || (fname)[0] == '$'))
    {

      nd = splay_tree_lookup (pfile->all_include_files, (splay_tree_key) fname);
      return (nd && nd->value);
    }


  name = (char *) __builtin_alloca(strlen (fname) + pfile->max_include_len + 2);
  for (path = ((pfile)->opts.quote_include); path; path = path->next)
    {
      memcpy (name, path->name, path->len);
      name[path->len] = '/';
      strcpy (&name[path->len + 1], fname);
      if (((pfile)->opts.remap))
        n = remap_filename (pfile, name, path);
      else
        n = name;

      nd = splay_tree_lookup (pfile->all_include_files, (splay_tree_key) n);
      if (nd && nd->value)
        return 1;
    }
  return 0;
}






static struct include_file *
find_include_file (pfile, header, type)
     cpp_reader *pfile;
     const cpp_token *header;
     enum include_type type;
{
  const char *fname = (const char *) header->val.str.text;
  struct search_path *path;
  struct include_file *file;
  char *name, *n;

  if (((((fname)[0]) == '/') || (fname)[0] == '$'))
    return open_file (pfile, fname);




  if (type == IT_INCLUDE_NEXT && pfile->buffer->inc->foundhere)
    path = pfile->buffer->inc->foundhere->next;
  else if (header->type == CPP_HEADER_NAME)
    path = ((pfile)->opts.bracket_include);
  else
    path = search_from (pfile, type);

  if (path == ((void *)0))
    {
      cpp_error (pfile, 0x03, "no include path in which to find %s",
                 fname);
      return ((struct include_file *) -1);
    }


  name = (char *) __builtin_alloca(strlen (fname) + pfile->max_include_len + 2);
  for (; path; path = path->next)
    {
      int len = path->len;
      memcpy (name, path->name, len);


      if (name[len-1] == '/')
        len--;
      name[len] = '/';
      strcpy (&name[len + 1], fname);
      if (((pfile)->opts.remap))
        n = remap_filename (pfile, name, path);
      else
        n = name;

      file = open_file (pfile, n);
      if (file)
        {
          file->foundhere = path;
          return file;
        }
    }

  return 0;
}




void
cpp_make_system_header (pfile, syshdr, externc)
     cpp_reader *pfile;
     int syshdr, externc;
{
  int flags = 0;


  if (syshdr)
    flags = 1 + (externc != 0);
  _cpp_do_file_change (pfile, LC_RENAME, pfile->map->to_file,
                       ((pfile->line) + (pfile->map)->to_line - (pfile->map)->from_line), flags);
}



void
_cpp_report_missing_guards (pfile)
     cpp_reader *pfile;
{
  int banner = 0;
  splay_tree_foreach (pfile->all_include_files, report_missing_guard,
                      (void *) &banner);
}


static int
report_missing_guard (n, b)
     splay_tree_node n;
     void *b;
{
  struct include_file *f = (struct include_file *) n->value;
  int *bannerp = (int *)b;

  if (f && f->cmacro == 0 && f->include_count == 1)
    {
      if (*bannerp == 0)
        {
          fputs_unlocked (dcgettext (((void *)0), "Multiple include guards may be useful for:\n", __LC_MESSAGES), stderr);
          *bannerp = 1;
        }
      fputs_unlocked (f->name, stderr);
      putc_unlocked ('\n', stderr);
    }
  return 0;
}




static void
handle_missing_header (pfile, fname, angle_brackets)
     cpp_reader *pfile;
     const char *fname;
     int angle_brackets;
{
  _Bool print_dep
    = ((pfile)->opts.deps.style) > (angle_brackets || pfile->map->sysp);

  if (((pfile)->opts.deps.missing_files) && print_dep)
    deps_add_dep (pfile->deps, fname);





  else
    cpp_errno (pfile, ((pfile)->opts.deps.style) && ! print_dep
               ? 0x00: 0x03, fname);
}




_Bool
_cpp_execute_include (pfile, header, type)
     cpp_reader *pfile;
     const cpp_token *header;
     enum include_type type;
{
  _Bool stacked = 0;
  struct include_file *inc = find_include_file (pfile, header, type);

  if (inc == 0)
    handle_missing_header (pfile, (const char *) header->val.str.text,
                           header->type == CPP_HEADER_NAME);
  else if (inc != ((struct include_file *) -1))
    {
      stacked = stack_include_file (pfile, inc);

      if (type == IT_IMPORT)
        _cpp_never_reread (inc);
    }

  return stacked;
}




int
_cpp_compare_file_date (pfile, header)
     cpp_reader *pfile;
     const cpp_token *header;
{
  struct include_file *inc = find_include_file (pfile, header, 0);

  if (inc == ((void *)0) || inc == ((struct include_file *) -1))
    return -1;

  if (inc->fd > 0)
    {
      close (inc->fd);
      inc->fd = -1;
    }

  return inc->st.st_mtime > pfile->buffer->inc->st.st_mtime;
}





_Bool
_cpp_read_file (pfile, fname)
     cpp_reader *pfile;
     const char *fname;
{
  struct include_file *f = open_file (pfile, fname);

  if (f == ((void *)0))
    {
      cpp_errno (pfile, 0x03, fname);
      return 0;
    }

  return stack_include_file (pfile, f);
}



void
_cpp_pop_file_buffer (pfile, inc)
     cpp_reader *pfile;
     struct include_file *inc;
{


  if (pfile->mi_valid && inc->cmacro == ((void *)0))
    inc->cmacro = pfile->mi_cmacro;


  pfile->mi_valid = 0;

  inc->refcnt--;
  if (inc->refcnt == 0 && ((inc)->cmacro && ((inc)->cmacro == ((const cpp_hashnode *)-1) || (inc)->cmacro->type == NT_MACRO)))
    purge_cache (inc);
}







static struct search_path *
search_from (pfile, type)
     cpp_reader *pfile;
     enum include_type type;
{
  cpp_buffer *buffer = pfile->buffer;
  unsigned int dlen;


  if (type == IT_CMDLINE)
    goto use_cwd;


  if (((pfile)->opts.ignore_srcdir))
    return ((pfile)->opts.quote_include);

  if (! buffer->search_cached)
    {
      buffer->search_cached = 1;

      dlen = lbasename (buffer->inc->name) - buffer->inc->name;

      if (dlen)
        {


          buffer->dir.name = buffer->inc->name;
          if (dlen > 1)
            dlen--;
        }
      else
        {
        use_cwd:
          buffer->dir.name = ".";
          dlen = 1;
        }

      if (dlen > pfile->max_include_len)
        pfile->max_include_len = dlen;

      buffer->dir.len = dlen;
      buffer->dir.next = ((pfile)->opts.quote_include);
      buffer->dir.sysp = pfile->map->sysp;
    }

  return &buffer->dir;
}
# 833 "../../gcc/gcc/cppfiles.c"
struct file_name_map
{
  struct file_name_map *map_next;
  char *map_from;
  char *map_to;
};





static char *
read_filename_string (ch, f)
     int ch;
     FILE *f;
{
  char *alloc, *set;
  int len;

  len = 20;
  set = alloc = xmalloc (len + 1);
  if (! (_sch_istable[(ch) & 0xff] & (unsigned short)(_sch_iscppsp)))
    {
      *set++ = ch;
      while ((ch = _IO_getc (f)) != (-1) && ! (_sch_istable[(ch) & 0xff] & (unsigned short)(_sch_iscppsp)))
        {
          if (set - alloc == len)
            {
              len *= 2;
              alloc = xrealloc (alloc, len + 1);
              set = alloc + len / 2;
            }
          *set++ = ch;
        }
    }
  *set = '\0';
  ungetc (ch, f);
  return alloc;
}


struct file_name_map_list
{
  struct file_name_map_list *map_list_next;
  char *map_list_name;
  struct file_name_map *map_list_map;
};


static struct file_name_map *
read_name_map (pfile, dirname)
     cpp_reader *pfile;
     const char *dirname;
{
  struct file_name_map_list *map_list_ptr;
  char *name;
  FILE *f;


  for (map_list_ptr = ((pfile)->opts.map_list); map_list_ptr;
       map_list_ptr = map_list_ptr->map_list_next)
    if (! strcmp (map_list_ptr->map_list_name, dirname))
      return map_list_ptr->map_list_map;

  map_list_ptr = ((struct file_name_map_list *)
                  xmalloc (sizeof (struct file_name_map_list)));
  map_list_ptr->map_list_name = xstrdup (dirname);


  map_list_ptr->map_list_map = ((void *)0);

  name = (char *) __builtin_alloca(strlen (dirname) + strlen ("header.gcc") + 2);
  strcpy (name, dirname);
  if (*dirname)
    strcat (name, "/");
  strcat (name, "header.gcc");
  f = fopen (name, "r");


  if (f)
    {
      int ch;

      while ((ch = _IO_getc (f)) != (-1))
        {
          char *from, *to;
          struct file_name_map *ptr;

          if ((_sch_istable[(ch) & 0xff] & (unsigned short)(_sch_iscppsp)))
            continue;
          from = read_filename_string (ch, f);
          while ((ch = _IO_getc (f)) != (-1) && (_sch_istable[(ch) & 0xff] & (unsigned short)(_sch_isblank)))
            ;
          to = read_filename_string (ch, f);

          ptr = ((struct file_name_map *)
                 xmalloc (sizeof (struct file_name_map)));
          ptr->map_from = from;


          if (((((to)[0]) == '/') || (to)[0] == '$'))
            ptr->map_to = to;
          else
            {
              ptr->map_to = concat (dirname, "/", to, ((void *)0));
              free (to);
            }

          ptr->map_next = map_list_ptr->map_list_map;
          map_list_ptr->map_list_map = ptr;

          while ((ch = _IO_getc (f)) != '\n')
            if (ch == (-1))
              break;
        }
      fclose (f);
    }


  map_list_ptr->map_list_next = ((pfile)->opts.map_list);
  ((pfile)->opts.map_list) = map_list_ptr;

  return map_list_ptr->map_list_map;
}



static char *
remap_filename (pfile, name, loc)
     cpp_reader *pfile;
     char *name;
     struct search_path *loc;
{
  struct file_name_map *map;
  const char *from, *p;
  char *dir;

  if (! loc->name_map)
    {

      char *dname = __builtin_alloca(loc->len + 1);
      memcpy (dname, loc->name, loc->len);
      dname[loc->len] = '\0';

      loc->name_map = read_name_map (pfile, dname);
      if (! loc->name_map)
        return name;
    }


  from = name + loc->len + 1;

  for (map = loc->name_map; map; map = map->map_next)
    if (!strcmp (map->map_from, from))
      return map->map_to;





  p = strrchr (name, '/');
  if (!p)
    return name;


  if (p == name)
    cpp_error (pfile, 0x04, "absolute file name in remap_filename");

  dir = (char *) __builtin_alloca(p - name + 1);
  memcpy (dir, name, p - name);
  dir[p - name] = '\0';
  from = p + 1;

  for (map = read_name_map (pfile, dir); map; map = map->map_next)
    if (! strcmp (map->map_from, from))
      return map->map_to;

  return name;
}





static int
remove_component_p (path)
     const char *path;
{
  struct stat s;
  int result;


  result = lstat (path, &s);







  if (result == 0)
    (*__errno_location ()) = 0;

  return result == 0 && ((((s.st_mode)) & 0170000) == (0040000));
}
# 1053 "../../gcc/gcc/cppfiles.c"
char *
_cpp_simplify_pathname (path)
     char *path;
{

  char *from, *to;
  char *base, *orig_base;
  int absolute = 0;

  (*__errno_location ()) = 0;

  if (*path == '\0')
    return path;
# 1078 "../../gcc/gcc/cppfiles.c"
  from = to = path;



  if (*from == '/')
    {
      absolute = 1;
      to++;
      from++;
      if (*from == '/')
        {
          if (*++from == '/')

            while (*++from == '/');
          else

            to++;
        }
    }

  base = orig_base = to;
  for (;;)
    {
      int move_base = 0;

      while (*from == '/')
        from++;

      if (*from == '\0')
        break;

      if (*from == '.')
        {
          if (from[1] == '\0')
            break;
          if (from[1] == '/')
            {
              from += 2;
              continue;
            }
          else if (from[1] == '.' && (from[2] == '/' || from[2] == '\0'))
            {

              if (absolute && orig_base == to)
                {
                  from += 2;
                  continue;
                }


              if (base != to && (*__errno_location ()) == 0)
                {

                  *to = '\0';
                  if (remove_component_p (path))
                    {
                      while (to > base && *to != '/')
                        to--;
                      from += 2;
                      continue;
                    }
                }
              move_base = 1;
            }
        }


      if (to > orig_base)
        *to++ = '/';


      while (*from != '\0' && *from != '/')
        *to++ = *from++;

      if (move_base)
        base = to;
    }



  if (to == path)
    *to++ = '.';
  *to = '\0';

  return path;




}
ulse

            to++;
        }
    }

  base = orig_base = to;
  for (;;)
    {
      int move_base = 0;

      while (*from == '/')
        from++;

      if (*from == '\0')
        break;

      if (*from == '.')
        {
          if (from[1] == '\0')
            break;
          if (from[1] == '/')
            {
              from += 2;
              continue;
            }
          else if (from[1] == '.' && (from[2] == '/' || from[2] == '\0'))
            {

              if (absolute && orig_base == to)
                {
                  from += 2;
                  continue;
                }


              if (base != to && (*__errno_location ()) == 0)
                {

                  *to = '\0';
                  if (remove_component_p (path))
                    {
                      while (to > base && *to != '/')
                        to--;
                      from += 2;
                      continue;
                    }
                }
              move_base = 1;
            }
        }


      if (to > orig_base)
        *to++ = '/';


      while (*from != '\0' && *from != '/')
        *to++ = *from++;

      if (move_base)
        base = to;
    }



  if (to == path)
    *to++ = '.';
  *to = '\0';

  return path;




}
ulse

            to++;
        }
    }

  base = orig_base = to;
  for (;;)
    {
      int move_base = 0;

      while (*from == '/')
        from++;

      if (*from == '\0')
        break;

      if (*from == '.')
        {
          if (from[1] == '\0')
            break;
          if (from[1] == '/')
            {
              from += 2;
              continue;
            }
          else if (from[1] == '.' && (from[2] == '/' || from[2] == '\0'))
            {

              if (absolute && orig_base == to)
                {
                  from += 2;
                  continue;
                }


              if (base != to && (*__errno_location ()) == 0)
                {

                  *to = '\0';
                  if (remove_component_p (path))
                    {
                      while (to > base && *to != '/')
                        to--;
                      from += 2;
                      continue;
                    }
                }
              move_base = 1;
            }
        }


      if (to > orig_base)
        *to++ = '/';


      while (*from != '\0' && *from != '/')
        *to++ = *from++;

      if (move_base)
        base = to;
    }



  if (to == path)
    *to++ = '.';
  *to = '\0';

  return path;




}
ulse

            to++;
        }
    }

  base = orig_base = to;
  for (;;)
    {
      int move_base = 0;

      while (*from == '/')
        from++;

      if (*from == '\0')
        break;

      if (*from == '.')
        {
          if (from[1] == '\0')
            break;
          if (from[1] == '/')
            {
              from += 2;
              continue;
            }
          else if (from[1] == '.' && (from[2] == '/' || from[2] == '\0'))
            {

              if (absolute && orig_base == to)
                {
                  from += 2;
                  continue;
                }


              if (base != to && (*__errno_location ()) == 0)
                {

                  *to = '\0';
                  if (remove_component_p (path))
                    {
                      while (to > base && *to != '/')
                        to--;
                      from += 2;
                      continue;
                    }
                }
              move_base = 1;
            }
        }


      if (to > orig_base)
        *to++ = '/';


      while (*from != '\0' && *from != '/')
        *to++ = *from++;

      if (move_base)
        base = to;
    }



  if (to == path)
    *to++ = '.';
  *to = '\0';

  return path;




}
ulse

            to++;
        }
    }

  base = orig_base = to;
  for (;;)
    {
      int move_base = 0;

      while (*from == '/')
        from++;

      if (*from == '\0')
        break;

      if (*from == '.')
        {
          if (from[1] == '\0'
>How-To-Repeat:
	well, bootstrap on either debian 3.0 or Aurora SPARC Linux 0.32 on a sparc32 machine I guess...
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
  PRs are public.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-10-10 18:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-10 11:29 bootstrap/7802: stage2 bootstrap of gcc-3-3 (20020901) failure on sparc32-linux davem
  -- strict thread matches above, loose matches on Subject: below --
2002-09-01 12:56 christian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).