From ad87de1ece2f52d260b582709751ab9f315ab349 Mon Sep 17 00:00:00 2001 From: law Date: Sun, 7 Dec 1997 00:31:01 +0000 Subject: [PATCH] Merge from gcc-2.8 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16987 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.10 | 6061 ++++++++++++++++++++++++++++++-- gcc/ChangeLog.11 | 1920 +++++++--- gcc/INSTALL | 13 +- gcc/Makefile.in | 92 +- gcc/NEWS | 280 +- gcc/acconfig.h | 6 + gcc/aclocal.m4 | 6 + gcc/bc-optab.c | 3 + gcc/bitmap.h | 2 +- gcc/c-decl.c | 2 +- gcc/c-lex.c | 25 +- gcc/c-typeck.c | 17 + gcc/calls.c | 6 +- gcc/cccp.c | 356 +- gcc/cexp.c | 36 +- gcc/collect2.c | 35 +- gcc/combine.c | 58 +- gcc/config.in | 57 + gcc/config/alpha/alpha.c | 22 +- gcc/config/alpha/alpha.h | 12 +- gcc/config/alpha/alpha.md | 2 +- gcc/config/alpha/elf.h | 14 +- gcc/config/alpha/linux.h | 9 +- gcc/config/alpha/vms.h | 33 +- gcc/config/alpha/xm-alpha.h | 8 - gcc/config/arc/arc.c | 8 +- gcc/config/arm/arm.c | 20 +- gcc/config/i386/cygwin32.h | 3 + gcc/config/i386/i386.c | 7 +- gcc/config/i386/i386.h | 2 + gcc/config/i386/rtems.h | 2 +- gcc/config/i386/sco5.h | 6 +- gcc/config/i386/xm-dos.h | 3 - gcc/config/i386/xm-mingw32.h | 13 +- gcc/config/i960/rtems.h | 2 +- gcc/config/linux.h | 19 +- gcc/config/m68k/linux.h | 7 +- gcc/config/m68k/m68k.c | 4 +- gcc/config/m68k/m68k.h | 6 +- gcc/config/m68k/rtems.h | 2 +- gcc/config/m68k/xm-mot3300.h | 9 +- gcc/config/m88k/dgux.h | 6 +- gcc/config/m88k/m88k.c | 6 +- gcc/config/m88k/xm-m88k.h | 13 +- gcc/config/mips/iris6.h | 4 +- gcc/config/mips/mips.c | 2 +- gcc/config/mips/mips.h | 2 +- gcc/config/mips/mips.md | 2 +- gcc/config/mips/rtems64.h | 2 +- gcc/config/mips/xm-mips.h | 4 +- gcc/config/mn10200/mn10200.c | 2 +- gcc/config/mn10200/mn10200.h | 5 +- gcc/config/mn10200/mn10200.md | 4 +- gcc/config/mn10300/mn10300.c | 2 +- gcc/config/mn10300/mn10300.h | 5 +- gcc/config/mn10300/mn10300.md | 6 +- gcc/config/pa/pa-hpux10.h | 4 +- gcc/config/pa/pa.c | 17 +- gcc/config/pa/pa.h | 6 +- gcc/config/pa/pa.md | 4 +- gcc/config/rs6000/linux.h | 2 +- gcc/config/rs6000/rs6000.c | 8 +- gcc/config/rs6000/rs6000.h | 10 +- gcc/config/rs6000/rs6000.md | 2 +- gcc/config/rs6000/rtems.h | 2 +- gcc/config/rs6000/sysv4.h | 10 +- gcc/config/rs6000/xm-cygwin32.h | 2 +- gcc/config/sh/rtems.h | 2 +- gcc/config/sh/sh.c | 26 +- gcc/config/sh/sh.h | 2 +- gcc/config/sh/sh.md | 16 +- gcc/config/sparc/linux-aout.h | 13 +- gcc/config/sparc/linux.h | 25 +- gcc/config/sparc/linux64.h | 21 +- gcc/config/sparc/rtems.h | 2 +- gcc/config/sparc/sparc.c | 9 +- gcc/config/sparc/sparc.h | 6 +- gcc/config/sparc/xm-linux.h | 2 +- gcc/config/v850/lib1funcs.asm | 2 +- gcc/config/v850/v850.c | 6 +- gcc/config/v850/v850.h | 11 +- gcc/config/v850/v850.md | 12 +- gcc/config/xm-linux.h | 16 +- gcc/config/xm-svr4.h | 10 +- gcc/configure | 1307 ++++++- gcc/configure.in | 123 +- gcc/configure.lang | 2 +- gcc/cp/ChangeLog | 17 + gcc/cp/ChangeLog.egcs | 5 - gcc/cp/Make-lang.in | 4 +- gcc/cp/class.c | 4 +- gcc/cp/decl.c | 10 +- gcc/cp/except.c | 4 +- gcc/cp/g++FAQ.texi | 4 +- gcc/cp/gxxint.texi | 4 +- gcc/cp/init.c | 2 +- gcc/cp/lex.c | 2 +- gcc/cp/parse.c | 7403 +++++++++++++++++++-------------------- gcc/cp/pt.c | 10 +- gcc/cp/repo.c | 4 +- gcc/cp/search.c | 4 +- gcc/cp/typeck.c | 4 +- gcc/cp/xref.c | 4 +- gcc/cplus-dem.c | 11 +- gcc/cpplib.c | 269 +- gcc/crtstuff.c | 9 +- gcc/cse.c | 13 +- gcc/dwarf2.h | 4 +- gcc/dwarf2out.c | 47 +- gcc/dwarfout.c | 23 +- gcc/emit-rtl.c | 4 + gcc/except.c | 18 +- gcc/except.h | 5 + gcc/expmed.c | 2 + gcc/expr.c | 123 +- gcc/extend.texi | 2 +- gcc/flow.c | 10 +- gcc/fold-const.c | 6 +- gcc/frame.c | 24 +- gcc/frame.h | 18 +- gcc/function.c | 43 +- gcc/gcc.1 | 6 +- gcc/gcc.c | 8 +- gcc/gcc.texi | 24 +- gcc/genattrtab.c | 18 +- gcc/install.texi | 13 +- gcc/integrate.c | 2 +- gcc/invoke.texi | 98 +- gcc/jump.c | 70 +- gcc/libgcc2.c | 13 +- gcc/local-alloc.c | 3 +- gcc/loop.c | 18 +- gcc/md.texi | 10 +- gcc/mips-tfile.c | 23 +- gcc/objc/Make-lang.in | 26 +- gcc/obstack.h | 184 +- gcc/pexecute.c | 17 +- gcc/print-rtl.c | 5 + gcc/profile.c | 4 +- gcc/protoize.c | 44 +- gcc/regclass.c | 19 + gcc/reload.c | 16 +- gcc/reload1.c | 9 +- gcc/rtl.c | 14 +- gcc/rtl.def | 6 +- gcc/rtl.h | 3 + gcc/stmt.c | 67 +- gcc/stor-layout.c | 2 +- gcc/tm.texi | 22 +- gcc/toplev.c | 43 +- gcc/tree.c | 10 +- gcc/tree.def | 4 +- gcc/tree.h | 54 +- gcc/unroll.c | 7 +- gcc/varasm.c | 2 +- gcc/version.c | 2 +- gcc/vmsconfig.com | 39 +- 157 files changed, 14034 insertions(+), 5920 deletions(-) diff --git a/gcc/ChangeLog.10 b/gcc/ChangeLog.10 index 7fba875b3c6..a7d3837d103 100644 --- a/gcc/ChangeLog.10 +++ b/gcc/ChangeLog.10 @@ -4,7 +4,6 @@ Sun Mar 31 05:10:10 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) if the mode of the field type is not MODE_INT. * sched.c (schedule_block): CALL_INSNs don't affect fixed regs. - * flow.c (propagate_block): CALL_INSNs don't kill fixed regs. Sat Mar 30 03:32:48 1996 Torbjorn Granlund @@ -33,7 +32,7 @@ Fri Mar 29 09:37:52 1996 Jeffrey A. Law (emit_library_call_value): Likewise. * expr.c (expand_builtin): Likewise. * function.c (assign_parms): Likewise. - * config/pa/pa.h (hppa_args): New field "indirect". + * pa.h (hppa_args): New field "indirect". (INIT_CUMULATIVE_ARGS): Initialize "indirect" field. (FUNCTION_ARG): Check "indirect" field, rather than "current_call_is_indirect". @@ -79,7 +78,7 @@ Thu Mar 28 16:50:10 1996 Doug Evans Thu Mar 28 12:07:31 1996 Jeffrey A. Law - * ginclude/va-h8300.h (va_arg): Don't assume sizeof (int) == 4. + * va-h8300.h (va_arg): Don't assume sizeof (int) == 4. * pa.c (hppa_legitimize_address): Don't lose for (plus (plus (mult (A) (shadd_const)) (B)) (C)) if @@ -218,15 +217,15 @@ Wed Mar 20 17:07:45 1996 Doug Evans * sparc/sol2.h (ASM_CPU_SPEC): Recognize -mcpu=v8plus, not v9. Fix typo in ultrasparc entry. - * sparc/sparc.h (CPP_CPU_SPEC): Add v8plus entry. + * sparc.h (CPP_CPU_SPEC): Add v8plus entry. (ASM_CPU_SPEC): Likewise. - * sparc/sparc.c (fcc_reg_operand): Ensure correct mode. + * sparc.c (fcc_reg_operand): Ensure correct mode. (icc_or_fcc_reg_operand): Likewise. (gen_v9_scc): IF_THEN_ELSE must have a mode. (print_operand): New operand code `x' for all condition codes. New operand codes `c,d' for reversed conditional moves. - * sparc/sparc.md (movqicc,movhicc): New named patterns. + * sparc.md (movqicc,movhicc): New named patterns. (movdicc): if_then_else must have a mode. (movsicc,movsfcc,movdfcc,movtfcc): Likewise. Change condition to TARGET_V9, not TARGET_ARCH64. @@ -489,7 +488,7 @@ Tue Mar 12 13:54:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) Tue Mar 12 12:43:27 1996 Jim Wilson - * i960/i960.h (ROUND_TPE_SIZE): Return round_up result instead of + * i960.h (ROUND_TYPE_SIZE): Return round_up result instead of COMPUTED. * expr.c (expand_expr, case COMPONENT_REF): For unaligned object in @@ -504,16 +503,16 @@ Mon Mar 11 19:07:50 1996 Jeffrey A. Law Mon Mar 11 16:06:13 1996 Doug Evans - * h8300/h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG. + * h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG. (CC_DONE_CBIT): Delete. (CC_OVERFLOW_0,CC_OVERFLOW_UNUSABLE,CC_NO_CARRY): Define. - * h8300/h8300.c (cond_string): Delete CC_DONE_CBIT handling. + * h8300.c (cond_string): Delete CC_DONE_CBIT handling. (notice_update_cc): Delete CC_CBIT, CC_WHOOPS. Add CC_SET_ZN_C0. (restore_compare_p): New function. (shift_one): Use shll instead of shal so overflow bit is usable. Set cc_valid bits to cc_status.flags values. (emit_a_shift): Set cc_status.flags. - * h8300/h8300.md (attr cc): Delete whoops,cbit. Add set_zn_c0. + * h8300.md (attr cc): Delete whoops,cbit. Add set_zn_c0. (all patterns) Update cc attr setting. (tstqi,tsthi,tstsi): Delete CC_DONE_CBIT handling. (addhi3,subhi3): Change define_expand to define_insn. @@ -559,7 +558,7 @@ Fri Mar 8 15:37:31 1996 Mike Stump Fri Mar 8 16:14:51 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) - * i386.c (ix86_binary_operator_ok): one memory operand is OK. + * i386.c (ix86_binary_operator_ok): One memory operand is OK. This is independent of commutativity. Fri Mar 8 14:07:43 1996 Jim Wilson @@ -586,7 +585,7 @@ Thu Mar 7 19:14:21 1996 Doug Evans * sparc/splet.h: New file. * configure (sparclet-*-aout*): Use them. - * sparc/sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define. + * sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define. (FIRST_PSEUDO_REGISTER): Add 1 for %icc (now 101). (FIXED_REGISTERS,CALL_USED_REGISTERS): Update. (FIXED_REGISTERS): %g0 is fixed by default. @@ -601,7 +600,7 @@ Thu Mar 7 19:14:21 1996 Doug Evans (REG_OK_FOR_{BASE,INDEX}_P,EXTRA_CONSTRAINT): Likewise. (REGISTER_NAMES): Add %icc. (ADDITIONAL_REGISTER_NAMES): Use SPARC_ICC_REG. - * sparc/sparc.c (leaf_reg_remap): Add %icc=100. + * sparc.c (leaf_reg_remap): Add %icc=100. (reg_or_0_operand): Don't allow 0 if TARGET_LIVE_G0. (fcc_reg_operand): Renamed from ccfp_reg_operand. Use SPARC_FCC_REG. Don't treat reg 0 as an fcc reg. Don't match @@ -624,7 +623,7 @@ Thu Mar 7 19:14:21 1996 Doug Evans (print_operand, MEM op): Don't print "%g0+" if TARGET_LIVE_G0. (sparc_flat_eligible_for_epilogue_delay): Don't allow anything if TARGET_LIVE_G0. - * sparc/sparc.md (live_g0): New attribute. + * sparc.md (live_g0): New attribute. (*): Integer condition code register is now reg 100. Use SPARC_ICC_REG instead of hardcoding reg 100 where possible. Non-v9 floating point condition code register is now reg 96. @@ -986,7 +985,7 @@ Thu Feb 29 17:33:12 1996 Jim Wilson Thu Feb 29 13:59:27 1996 Doug Evans - * h8300/h8300.h (ASM_OUTPUT_BSS): Define. + * h8300.h (ASM_OUTPUT_BSS): Define. * m68k/coff.h (BSS_SECTION_ASM_OP): Define. (ASM_OUTPUT_ALIGNED_BSS): Define. * m68k/m68k-aout.h (BSS_SECTION_ASM_OP): Define. @@ -1009,9 +1008,9 @@ Thu Feb 29 13:14:14 1996 Jeffrey A. Law Thu Feb 29 11:39:30 1996 Stan Cox - * i386/i386.md (cmpxf*): XF compare cannot have mem operands. + * i386.md (cmpxf*): XF compare cannot have mem operands. (casesi expand): Put (minus:SI..) into subsi3 format. - * i386/i386.c (i386_return_pops_args): Cleanup extra argument + * i386.c (i386_return_pops_args): Cleanup extra argument used as address of a returned structure. Wed Feb 28 22:24:28 1996 Doug Evans @@ -1028,10 +1027,10 @@ Wed Feb 28 22:24:28 1996 Doug Evans (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. * svr3.h (EXTRA_SECTIONS): Likewise. (BSS_SECTION_FUNCTION): Delete. - * convex/convex.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. - * dsp16xx/dsp16xx.h (EXTRA_SECTIONS): Delete in_bss. + * convex.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. + * dsp16xx.h (EXTRA_SECTIONS): Delete in_bss. (EXTRA_SECTION_FUNCTIONS): Delete bss_section. - * gmicro/gmicro.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. + * gmicro.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. * i386/aix386ng.h (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. * i386/att.h (BSS_SECTION_FUNCTION): Delete. @@ -1047,7 +1046,7 @@ Wed Feb 28 22:24:28 1996 Doug Evans (BSS_SECTION_ASM_OP): Define. * m68k/m68k.h (BC_OUTPUT_BSS): Define. * mips/iris6.h (EXTRA_SECTIONS): Delete in_bss. - * pa/pa.h (EXTRA_SECTIONS): Delete in_bss. + * pa.h (EXTRA_SECTIONS): Delete in_bss. (EXTRA_SECTION_FUNCTIONS): Delete bss_section. * sparc/litecoff.h (EXTRA_SECTIONS): Delete in_bss. @@ -1059,9 +1058,9 @@ Wed Feb 28 14:12:25 1996 Jim Wilson Wed Feb 28 12:03:26 1996 Michael Meissner - * rs6000.c (rs6000_trampoline_{template,size}): Change the Windows - NT trampoline template so that it doesn't require making the stack - executable. Add support for 64 bit systems. + * rs6000.c (rs6000_trampoline_{template,size}): Change Windows NT + trampoline template so it doesn't require making stack executable. + Add support for 64 bit systems. (rs6000_initialize_trampoline): Ditto. Tue Feb 27 16:42:00 1996 David Edelsohn @@ -1074,7 +1073,7 @@ Tue Feb 27 16:42:00 1996 David Edelsohn Tue Feb 27 15:02:17 1996 Doug Evans - * sh/sh.h (HANDLE_PRAGMA): Delete `return'. + * sh.h (HANDLE_PRAGMA): Delete `return'. Tue Feb 27 08:18:12 1996 Richard Earnshaw (rearnsha@armltd.co.uk) @@ -1139,7 +1138,7 @@ Tue Feb 27 08:18:12 1996 Richard Earnshaw (rearnsha@armltd.co.uk) Mon Feb 26 17:26:13 1996 Doug Evans - * sparc/sparc.md: Add sparclet scheduling parameters. + * sparc.md: Add sparclet scheduling parameters. (compare define_insn's): Move closer to compare define_expand's. (32 bit multiply patterns): Use for TARGET_SPARCLET. (*smacsi,*smacdi,*umacdi): Multiply/accumulate patterns for the @@ -1180,7 +1179,7 @@ Thu Feb 22 17:45:12 1996 Doug Evans Wed Feb 21 20:39:53 1996 Doug Evans * configure (sparc64-*-solaris2*): Merge with sparc-*-solaris2*. - * sparc/sparc.h (enum processor_type): Declare. + * sparc.h (enum processor_type): Declare. (sparc_cpu_attr): Define. (TARGET_OPTIONS): Add -mtune=. (sparc_select): Declare. @@ -1195,13 +1194,13 @@ Wed Feb 21 20:39:53 1996 Doug Evans (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Likewise. (FP_REG_CLASS_P,SPARC_REGISTER_NAMES): Likewise. (REG_CLASS_FROM_LETTER): Test TARGET_V9 at runtime. - * sparc/sparc.c (sparc_cpu_string): Delete. + * sparc.c (sparc_cpu_string): Delete. (sparc_select): New global. (sparc_override_options): Handle -mtune=xxx. - * sparc/sparc.md (cpu attr): Add sparc{lite,let} implementations. + * sparc.md (cpu attr): Add sparc{lite,let} implementations. * sparc/sp64-sol2.h: Deleted. - * arm/arm.md (consttable_end): Delete call to text_section. + * arm.md (consttable_end): Delete call to text_section. (align_4): Delete call to readonly_data_section. Wed Feb 21 14:29:06 1996 Ian Lance Taylor @@ -1221,7 +1220,7 @@ Wed Feb 21 12:42:52 1996 Jeffrey A. Law Wed Feb 21 11:49:58 1996 David Edelsohn - * rs6000/rs6000.h (ASM_OUTPUT_EXTERNAL): Append section info + * rs6000.h (ASM_OUTPUT_EXTERNAL): Append section info even when verbatim symbol prefix '*' present. * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Same. * rs6000/aix41.h (ASM_OUTPUT_EXTERNAL): Same. @@ -1234,10 +1233,8 @@ Wed Feb 21 03:55:32 1996 Paul Eggert Handle multiple adjacent backslash-newlines correctly. Accept a new parameter LIMIT to specify end of input; this prevents confusion when the input contains '\0' characters. - (collect_expansion): Fix off-by-1 error when searching for `*/' at end of a comment used for traditional token concatenation. - (macarg1): Fix off-by-1 error when skipping past `*/' at end of comment. @@ -1254,7 +1251,7 @@ Tue Feb 20 14:21:16 1996 Jeffrey A. Law Mon Feb 19 19:42:15 1996 Brendan Kehoe - * sparc/sparc.h (TARGET_SWITCHES): Add -m{,no-}impure-text. + * sparc.h (TARGET_SWITCHES): Add -m{,no-}impure-text. (MASK_IMPURE_TEXT, TARGET_IMPURE_TEXT): Define. (LINK_SPEC): Only add `-assert pure-text' if -mimpure-text wasn't used. @@ -1266,7 +1263,7 @@ Mon Feb 19 19:20:15 1996 Doug Evans Don't set use_collect2. (target_cpu_default): Set to TARGET_CPU_ for sparc. - * sparc/sparc.h (TARGET_CPU_sparc{,let,lite,64}): Define. + * sparc.h (TARGET_CPU_sparc{,let,lite,64}): Define. ({CPP,ASM}_DEFAULT_SPEC): Set from TARGET_CPU_foo. (SPARC_ARCH64 CPP_PREDEFINES): Define __arch64__. (CPP_SPEC): Add %(cpp_cpu). @@ -1288,7 +1285,7 @@ Mon Feb 19 19:20:15 1996 Doug Evans Don't set call_used_regs[48..80] for sparc64 in 32 bit mode. Don't clobber fixed_regs[234] if -ffixed- was passed. (ADJUST_COST): Change test for supersparc. - * sparc/sparc.c (sparc_cpu_string,sparc_cpu): New globals. + * sparc.c (sparc_cpu_string,sparc_cpu): New globals. (sparc_override_options): Set ISA and CPU from sparc_cpu_string. Delete tests for v9 only switches if not v9. Error if -mcpu=v9 and v9 support not compiled in. @@ -1299,7 +1296,7 @@ Mon Feb 19 19:20:15 1996 Doug Evans * sparc/t-sparcbare (MULTILIB_*): -mv8 renamed to -mcpu=v8. * sparc/t-sparclite (MULTILIB_*): Delete msoft-float and mno-flat, they're the defaults. Add -mcpu=f934 as synonym for -mfpu. - * ginclude/va-sparc.h (__arch64__): Renamed from __sparc_v9__. + * va-sparc.h (__arch64__): Renamed from __sparc_v9__. * sparc/lite.h: #include aoutos.h. (TARGET_DEFAULT): Use MASK_FOO values. @@ -1311,13 +1308,13 @@ Mon Feb 19 19:20:15 1996 Doug Evans * sparc/sp64-sol2.h (TARGET_DEFAULT, SUBTARGET_SWITCHES): Delete. (ASM_SPEC): Delete. - * sparc/sparc.h ({MASK,TARGET}_FRW): Delete. + * sparc.h ({MASK,TARGET}_FRW): Delete. (FRAME_POINTER_REQUIRED,INITIAL_FRAME_POINTER_OFFSET, BASE_{INCOMING_ARG,OUTGOING_VALUE}_REG,INCOMING_REGNO,OUTGOING_REGNO, FUNCTION_{PROLOGUE,EPILOGUE},DELAY_SLOTS_FOR_EPILOGUE): TARGET_FRW renamed to TARGET_FLAT. - * sparc/sparc.md (cpu attr): Add all cpu variants. + * sparc.md (cpu attr): Add all cpu variants. (negtf2,negdf2,abstf2,absdf2): Use isa attr, not arch attr, in determining insn lengths. @@ -1327,7 +1324,7 @@ Mon Feb 19 19:20:15 1996 Doug Evans Mon Feb 19 17:49:08 1996 David Edelsohn - * rs6000.md (movsf split): Use SUBREG not operand_subword. + * rs6000.md (movsf split): Use SUBREG, not operand_subword. (movdf split): operand_subword TARGET_32BIT and new split using SUBREG for TARGET_64BIT. * rs6000.c (easy_fp_constant): Rewrite to not use operand_subword. @@ -1342,14 +1339,14 @@ Mon Feb 19 13:38:00 1996 Lee Iverson Mon Feb 19 08:19:00 1996 Michael Meissner - * hard-reg-set.h (HARD_REG macros): If there are more than + * hard-reg-set.h (HARD_REG macros): If more than HOST_BITS_PER_WIDE_INT hard registers and less than or equal to - 4*HOST_BITS_PER_WIDE_INT hard registers, unroll the loops by hand. + 4*HOST_BITS_PER_WIDE_INT hard registers, unroll loops by hand. Mon Feb 19 07:35:07 1996 Torbjorn Granlund * rs6000.md (not:SI with assign and compare): Fix typo. - * (not:DI with assign and compare): Likewise. + (not:DI with assign and compare): Likewise. Mon Feb 19 07:17:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -1421,7 +1418,6 @@ Fri Feb 16 20:13:23 1996 Paul Eggert * c-typeck.c (convert_for_assignment): Bring back conversion to union without a cast, undoing the Jan 16 change, but with the following differences: - - The union must have the transparent_union attribute. - The conversion must be for a function argument. - Warn consistently about such conversions if pedantic. @@ -1461,8 +1457,7 @@ Thu Feb 15 18:26:04 1996 Michael Meissner byte boundary. * rs6000.md (allocate_stack): On Windows NT, call set_sp to - indicate to CSE that the stack pointer changes with the call to - __allocate_stack. + indicate to CSE stack pointer changes with call to __allocate_stack. (set_sp): New pattern. Thu Feb 15 16:49:15 1996 Jim Wilson @@ -1651,7 +1646,7 @@ Mon Feb 12 14:43:50 1996 Per Bothner Mon Feb 12 12:01:16 1996 Richard Earnshaw (rearnsha@armltd.co.uk) - * arm/arm.h: (CPP_SPEC): Define __ARMEB__, __ARMEL__, and + * arm.h: (CPP_SPEC): Define __ARMEB__, __ARMEL__, and __ARMWEL__ depending on the endian flags passed to the compiler. (ARM_FLAG_LITTLE_WORDS): Define. (TARGET_SWITCHES): Add option -mwords-little-endian. @@ -1659,13 +1654,13 @@ Mon Feb 12 12:01:16 1996 Richard Earnshaw (rearnsha@armltd.co.uk) (WORDS_BIG_ENDIAN): Select based on the endian switches. (LIBGCC2_WORDS_BIG_ENDIAN): Define based on run-time endian defines. - * arm/arm.c (output_move_double): Cope with both word-endian + * arm.c (output_move_double): Cope with both word-endian alternatives. Remove extraneous parameters from calls to output_mov_immediate. (arm_print_operand): New print code 'Q' for the least significant register of a DImode operand. Make code 'R' always print the most significant register, rather than the highest numbered. - * arm/arm.md (all DImode output patterns): Use print code + * arm.md (all DImode output patterns): Use print code 'Q' to access the least significant word. Make sure the patterns are fully aware of the word endianness. @@ -1684,29 +1679,12 @@ Mon Feb 12 10:15:29 1996 Ian Lance Taylor handle --with-stabs by adding dbx.h to tm_file, rather than using a different tm_file. * dbx.h: New file. - * alpha/gdb-osf2.h: Remove. - * alpha/gdb-osf12.h: Remove. - * alpha/gdb.h: Remove. - * i386/sysv4gdb.h: Remove. - * mips/iris5gdb.h: Remove. - * mips/iris4gl.h: Remove. - * mips/iris4gdb.h: Remove. - * mips/iris3gdb.h: Remove. - * mips/dec-gosf1.h: Remove. - * mips/news4-gdb.h: Remove. - * mips/news5-gdb.h: Remove. - * mips/svr4-t-gdb.h: Remove. - * mips/ultrix-gdb.h: Remove. - * mips/bsd-5-gdb.h: Remove. - * mips/bsd-4-gdb.h: Remove. - * mips/svr4-5-gdb.h: Remove. - * mips/svr4-4-gdb.h: Remove. - * mips/svr3-5-gdb.h: Remove. - * mips/svr3-4-gdb.h: Remove. - * mips/mips-5-gdb.h: Remove. - * mips/ecoffl-gdb.h: Remove. - * mips/ecoff-gdb.h: Remove. - * mips/mips-4-gdb.h: Remove. + * alpha/gdb-osf2.h, alpha/gdb-osf12.h, alpha/gdb.h: Deleted. + * i386/sysv4gdb.h, mips/iris{5gdb,4gl,4gdb,3gdb}.h: Likewise. + * mips/dec-gosf1.h, mips/news{4,5}-gdb.h, mips/svr4-t-gdb.h: Likewise. + * mips/ultrix-gdb.h, mips/bsd-{4,5}-gdb.h: Likewise. + * mips/svr{4-5,4-4,3-5,3-4}-gdb.h, mips/mips-5-gdb.h: Likewise. + * mips/ecoff{,l}-gdb.h, mips/mips-4-gdb.h: Likewise. Mon Feb 12 07:22:20 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -1790,7 +1768,7 @@ Fri Feb 9 16:10:04 1996 Stan Cox (coxs@dg-rtp.dg.com) str_immediate_operand, is_fp_insn, is_fp_dest, is_fp_store, agi_dependent, reg_mentioned_in_mem): New functions. - * i386/i386.h (OPTIMIZATION_OPTIONS, ALIGN_DFmode, IS_STACK_MODE, + * i386.h (OPTIMIZATION_OPTIONS, ALIGN_DFmode, IS_STACK_MODE, IX86_EXPAND_BINARY_OPERATOR): New macros. (RTX_COSTS, REGISTER_MOVE_COST, ADJUST_BLOCKAGE) Changed for pentium. @@ -1878,10 +1856,10 @@ Fri Feb 2 19:44:10 1996 Michael Meissner Thu Feb 1 09:10:02 1996 Steve Chamberlain - * config/{i386,rs6000}/cygwin32.{asm,h}: New templates. - * config/{i386,rs6000}/{t,x}-cygwin32: Ditto. - * config/{i386,rs6000}/xm-cygwin32.h: Ditto. - * configure.in (powerpcle-*-cygwin32, i[3456]86-*-cygwin32): New. + * {i386,rs6000}/cygwin32.{asm,h}: New templates. + * {i386,rs6000}/{t,x}-cygwin32: Ditto. + * {i386,rs6000}/xm-cygwin32.h: Ditto. + * configure (powerpcle-*-cygwin32, i[3456]86-*-cygwin32): New. Fri Feb 2 17:42:40 1996 Paul Eggert @@ -1893,8 +1871,7 @@ Fri Feb 2 17:42:40 1996 Paul Eggert Fri Feb 2 11:05:27 1996 Doug Evans - * h8300/h8300.h (TARGET_ALIGN_300): Renamed from - TARGET_ALIGN_STRUCT_300. + * h8300.h (TARGET_ALIGN_300): Renamed from TARGET_ALIGN_STRUCT_300. (TARGET_SWITCHES): Rename -malign-struct-300 to -malign-300. (BIGGEST_ALIGNMENT): Use TARGET_ALIGN_300. @@ -1917,9 +1894,9 @@ Thu Feb 1 21:49:02 1996 Jeffrey A. Law Thu Feb 1 17:50:02 1996 Doug Evans * c-lex.c (check_newline): Return result of HANDLE_PRAGMA. - * h8300/h8300.h (HANDLE_PRAGMA): Pass result back to caller. + * h8300.h (HANDLE_PRAGMA): Pass result back to caller. * i960/i960.h (HANDLE_PRAGMA): Likewise. - * sh/sh.h (HANDLE_PRAGMA): Likewise. + * sh.h (HANDLE_PRAGMA): Likewise. * nextstep.h (HANDLE_PRAGMA): Likewise. Wed Jan 31 19:26:03 1996 Doug Evans @@ -1938,10 +1915,8 @@ Wed Jan 31 15:10:59 1996 David Edelsohn Wed Jan 31 09:46:11 1996 Richard Earnshaw (rearnshaw@armltd.co.uk) - * regs.h (regno_pointer_align, REGNO_POINTER_ALIGN): Delete from - here... - * rtl.h (regno_pointer_align, REGNO_POINTER_ALIGN): ... and put - them here. + * regs.h (regno_pointer_align, REGNO_POINTER_ALIGN): Delete from here. + * rtl.h (regno_pointer_align, REGNO_POINTER_ALIGN): Put them here. Wed Jan 31 08:26:12 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) @@ -1988,8 +1963,8 @@ Wed Jan 31 07:15:23 1996 Philippe De Muyter (phdm@info.ucl.ac.be) Tue Jan 30 13:29:05 1996 Ian Lance Taylor - * dbxout.c: Don't include . Don't compare strchr result - to NULL. + * dbxout.c: Don't include . + Don't compare strchr result to NULL. * config/svr4.h (ASM_FINAL_SPEC): Use %|, not ${pipe:-}. @@ -2112,7 +2087,7 @@ Thu Jan 25 10:03:34 1996 Michael Meissner Thu Jan 25 09:16:34 1996 Doug Evans * configure (sparc64-*-solaris2*): New target. - * sparc/sparc.h (SPARC_{V9,ARCH64}): Default value is 0. + * sparc.h (SPARC_{V9,ARCH64}): Default value is 0. (*): Replace SPARCV9 with SPARC_{V9,ARCH64}. (MASK_CPUS): Define. ({MASK,TARGET}_ENV32): Delete. @@ -2130,16 +2105,16 @@ Thu Jan 25 09:16:34 1996 Doug Evans (ENDFILE_SPEC): No longer need to check for -nostartfiles. (ASM_IDENTIFY_GCC): Define as empty. * sparc/sp64-sol2.h: New file. - * sparc/sparc.c (*): Replace TARGET_V9 with TARGET_ARCH64. + * sparc.c (*): Replace TARGET_V9 with TARGET_ARCH64. (hard_32bit_mode_classes): Add v9 regs. (gen_v9_scc): Handle 32 bit v9 case. Call v9_regcmp_p. - * sparc/sparc.md (*): Replace TARGET_V9 with TARGET_ARCH64 in places + * sparc.md (*): Replace TARGET_V9 with TARGET_ARCH64 in places requiring 64 bit environment. (multf3_extend): Require TARGET_HARD_QUAD. Thu Jan 25 00:33:25 1996 Ian Lance Taylor - * config/dbxcoff.h (DBX_USE_BINCL): Define. + * dbxcoff.h (DBX_USE_BINCL): Define. (DBX_CONTIN_LENGTH): Define if not defined. Wed Jan 24 18:00:12 1996 Brendan Kehoe @@ -2231,7 +2206,7 @@ Wed Jan 24 15:18:15 1996 Michael Meissner Wed Jan 24 15:18:15 1996 Kim Knuttila - * config/rs6000/win-nt.h (LIB_SPEC): Change options to GNU ld style. + * rs6000/win-nt.h (LIB_SPEC): Change options to GNU ld style. (From Jason Molenda) Wed Jan 24 14:32:48 1996 Jim Wilson @@ -2279,7 +2254,7 @@ Mon Jan 22 18:39:21 1996 Per Bothner Mon Jan 22 16:53:48 1996 David Edelsohn - * rs6000/rs6000.h (BIGGEST_ALIGNMENT): Increase to 64 always. + * rs6000.h (BIGGEST_ALIGNMENT): Increase to 64 always. (BIGGEST_FIELD_ALIGNMENT): Define. (GO_IF_LEGITIMATE_ADDRESS): Merge PRE_INC and PRE_DEC cases. (LEGITIMIZE_ADDRESS): Use Pmode not SImode. @@ -2287,7 +2262,7 @@ Mon Jan 22 16:53:48 1996 David Edelsohn (ASM_OUTPUT_COMMON): Delete. (ASM_OUTPUT_ALIGNED_COMMON): Define. * rs6000/sysv4.h (BIGGEST_FIELD_ALIGNMENT): Undefine. - * rs6000/rs6000.md (adddi3, subdi3, negsi2): New PowerPC64 patterns. + * rs6000.md (adddi3, subdi3, negsi2): New PowerPC64 patterns. (ashldi3, lshrdi3, ashrdi3, anddi3, iordi3, xordi3): Same. (moddi3, cmpdi, tablejump matchers): Same. (divdi3): Update PowerPC64 patterns. @@ -2394,9 +2369,7 @@ Thu Jan 18 10:07:33 1996 Michael Meissner defines. (set_spec): If EXTRA_SPECS is defined, handle the extra specifications. - (process_command): Ditto. - (main): Ditto. - (validate_all_switches): Ditto. + (process_command, main, validate_all_switches): Likewise. * rs6000/{rs6000.h,powerpc.h,aix41.h} ({CPP,ASM}_SPEC): Use common specs with EXTRA_SPECS, only modifying things in the target that @@ -2482,14 +2455,10 @@ Tue Jan 16 12:18:56 1996 Doug Evans Tue Jan 16 11:42:09 1996 Ian Lance Taylor - * config/dbxcoff.h: New file for stabs in COFF support. - * config/a29k/a29k-udi.h: Use dbxcoff.h. - * config/h8300/h8300.h: Likewise. - * config/i960/i960-coff.h: Likewise. - * config/m68k/coff.h: Likewise. - * config/m88k/m88k-coff.h: Likewise. - * config/sh/sh.h: Likewise. - * config/sparc/litecoff.h: Likewise. + * dbxcoff.h: New file for stabs in COFF support. + * a29k/a29k-udi.h: Use dbxcoff.h. + * h8300.h, i960/i960-coff.h, m68k/coff.h, m88k/m88k-coff.h: Likewise. + * sh.h, sparc/litecoff.h: Likewise. Tue Jan 16 08:21:45 1996 Hans-Peter Nilsson @@ -2586,17 +2555,17 @@ Mon Jan 15 17:01:16 1996 Doug Evans * c-lex.c (check_newline): Pass character after `#pragma' to HANDLE_PRAGMA. Don't call get_directive_line if at end of line. * c-common.c (get_directive_line): Watch for EOF. - * h8300/h8300.h (HANDLE_PRAGMA): New argument `c'. + * h8300.h (HANDLE_PRAGMA): New argument `c'. Must issue `return' now. - * i960/i960.h (HANDLE_PRAGMA): Likewise. - * sh/sh.h (HANDLE_PRAGMA): Likewise. + * i960.h (HANDLE_PRAGMA): Likewise. + * sh.h (HANDLE_PRAGMA): Likewise. * nextstep.h (HANDLE_PRAGMA): Likewise. - * h8300/h8300.c (handle_pragma): New argument `ch'. + * h8300.c (handle_pragma): New argument `ch'. Simplify pragma processing. Delete support for `#pragma section'. - * i960/i960.c (process_pragma): New argument `c'. Change result to + * i960.c (process_pragma): New argument `c'. Change result to terminating character. * nextstep.c (handle_pragma): Likewise. - * sh/sh.c (handle_pragma): Likewise. Also simplified. + * sh.c (handle_pragma): Likewise. Also simplified. * sched.c (reemit_notes): Add prototype. (sched_analyze_2): Reorganize comments. Call prev_nonnote_insn. @@ -2759,13 +2728,13 @@ Thu Jan 11 19:41:07 1996 Per Bothner Thu Jan 11 18:33:50 1996 Doug Evans - * h8300/h8300.h (TARGET_ALIGN_STRUCT_300): New macro. + * h8300.h (TARGET_ALIGN_STRUCT_300): New macro. (TARGET_SWITCHES): Add -malign-struct-300. (BIGGEST_FIELD_ALIGNMENT): Update. Thu Jan 11 12:07:44 1996 J.T. Conklin - * h8300/h8300.h (CPP_PREDEFINES): Delete -D_DOUBLE_IS_32BITS. + * h8300.h (CPP_PREDEFINES): Delete -D_DOUBLE_IS_32BITS. Thu Jan 11 11:09:33 1996 David Edelsohn @@ -2798,8 +2767,8 @@ Wed Jan 10 11:27:28 1996 Michael Meissner files. * rs6000/t-{eabi,eabigas,ppc,ppcgas} (MULTILIB_MATCHES): Drop - support for obsolete -mcpu=mpc403. Add -mcpu=821 and -mcpu=860 to - soft-float defaults. + support for obsolete -mcpu=mpc403. + Add -mcpu=821 and -mcpu=860 to soft-float defaults. * rs6000/t-eabi{,gas} (LIBGCC): Add stmp-crt. (INSTALL_LIBGCC): Add install-crt. @@ -2827,8 +2796,7 @@ Sun Jan 7 17:11:11 1996 David Edelsohn Sun Jan 7 16:56:56 1996 Michael Meissner - * {svr4,mips/elf{,64}}.h (MAX_OFILE_ALIGNMENT): Define as - 32768*8. + * {svr4,mips/elf{,64}}.h (MAX_OFILE_ALIGNMENT): Define as 32768*8. Sat Jan 6 15:52:36 1996 Doug Evans @@ -2889,7 +2857,7 @@ Fri Jan 5 10:40:37 1996 David Edelsohn Fri Jan 5 00:32:49 1996 Doug Evans - * sparc/sparc.h (MACHINE_STATE_RESTORE): Add missing .align. + * sparc.h (MACHINE_STATE_RESTORE): Add missing .align. Wed Jan 3 18:29:32 1996 Doug Evans @@ -3032,28 +3000,23 @@ Fri Dec 29 12:41:47 1995 Michael Meissner Thu Dec 28 22:24:53 1995 Michael Meissner - * rs6000.h: (reg_class): Undo 12/27 changes, except for - formatting. - (REG_NAMES): Ditto. - (REG_CLASS_CONTENTS): Ditto. - (REGNO_REG_CLASS): Ditto. - (REG_CLASS_FROM_LETTER): Ditto. + * rs6000.h: (reg_class): Undo 12/27 changes, except for formatting. + (REG_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise. + (REG_CLASS_FROM_LETTER): Likewie. (PREDICATE_CODES): Delete predicate functions. (gpc_reg{0,3,4,34}_operand): Delete declaration. - (cc_reg{0,1}_operand): Ditto. - + (cc_reg{0,1}_operand): Likewise. * rs6000.c (gpc_reg{0,3,4}_operand): Delete. - (cc_reg{0,1}_operand): Ditto. + (cc_reg{0,1}_operand): Likewise. - * rs6000.md (common mode functions): Undo 12/27 changes, and add - the appropriate clobbers for common mode calls. Keep the - define_splits for powerpc SI*SI->DI. + * rs6000.md (common mode functions): Undo 12/27 changes,and add + appropriate clobbers for common mode calls. Keep define_splits for + powerpc SI*SI->DI. Thu Dec 28 11:08:11 1995 Mike Stump - * sparc.h (RETURN_ADDR_OFFSET): Rename from - NORMAL_RETURN_ADDR_OFFSET, returns the offset for the current - function specifically. + * sparc.h (RETURN_ADDR_OFFSET): Rename from NORMAL_RETURN_ADDR_OFFSET; + returns offset for the current function specifically. Thu Dec 28 07:07:14 1995 Paul Eggert @@ -3158,7 +3121,7 @@ Wed Dec 27 11:38:20 1995 Michael Meissner mode multiplies. * rs6000.c (gpc_reg34_operand): Delete unused function. - * rs6000.h (gpc_reg34_operand): Ditto. + * rs6000.h (gpc_reg34_operand): Likewise. * rs6000.c (gpc_reg{3,4}_operand): Reorganize code and don't allow SUBREG's. @@ -3167,25 +3130,22 @@ Wed Dec 27 11:38:20 1995 Michael Meissner little endian PowerPC's. (gpc_reg{0,3,4,34}_operand): New functions to match a specific register. - (cc_reg{0,1}_operand): Ditto. + (cc_reg{0,1}_operand): Likewise. * rs6000.h (reg_class): Add register classes for register 3 by itself, register 4 by itself, registers 3&4, and CR1. (REG_NAMES): Add support for new register classes. - (REG_CLASS_CONTENTS): Ditto. - (REGNO_REG_CLASS): Ditto. - (REG_CLASS_FROM_LETTER): Ditto. + (REG_CLASS_CONTENTS, REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. (PREDICATE_CODES): Add new predicate functions. (gpc_reg{0,3,4,34}_operand): Add declaration. - (cc_reg{0,1}_operand): Ditto. - - * rs6000.md (common mode multiplication/division): Move/rename the - common mode calls so that they are closer to the define_expands - that call them. Set attribute type to be jmpreg, rather than - integer, so optimizer knows the branch processing unit is used. - Make SI*SI->DI multiplier use register classes instead of - hardwired registers. Add the appropriate clobbers of CR0/CR1 as - mandated by the PowerOpen spec. + (cc_reg{0,1}_operand): Likewise. + + * rs6000.md (common mode multiplication/division): Move/rename common + mode calls so they are closer to define_expands that call them. + Set attribute type to be jmpreg, rather than integer, so optimizer + knows branch processing unit is used; make SI*SI->DI multiplier use + register classes instead of hardwired registers. + Add appropriate clobbers of CR0/CR1 as mandated by PowerOpen spec. (PowerPC SI*SI->DI multipliers): Add appropriate define_splits. * rs6000/t-{,x}newas (MULTILIB*): Don't build power2 or 601 @@ -3281,8 +3241,7 @@ Sat Dec 23 12:21:53 1995 Jeffrey A. Law * pa.c (output_move_double): Correctly identify and handle overlapping moves. - * pa.md (movdi patterns): Eliminate earlyclobbers in mem<->gr - cases. + * pa.md (movdi patterns): Eliminate earlyclobbers in mem<->gr cases. (movdf patterns): Likewise. Fri Dec 22 17:29:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -3313,20 +3272,18 @@ Fri Dec 22 15:55:00 1995 Michael Meissner Fri Dec 22 15:13:47 1995 Stan Cox - * i386.h: (TARGET_UNROLL_STRLEN): New macro. - * i386.c: (output_strlen_unroll): New function. - * i386.md: (strlensi): New pattern. + * i386.h (TARGET_UNROLL_STRLEN): New macro. + * i386.c (output_strlen_unroll): New function. + * i386.md (strlensi): New pattern. Thu Dec 21 18:53:31 1995 Roland McGrath - * config/gnu.h (GNU_CPP_PREDEFINES): Add missing space after - -Amachine(CPU). + * /gnu.h (GNU_CPP_PREDEFINES): Add missing space after -Amachine(CPU). Thu Dec 21 12:23:42 1995 Michael Meissner - * configure ({powerpc,rs6000}*): Change --enable-cpu to - --with-cpu. - * rs6000.c (rs6000_select): Ditto. + * configure ({powerpc,rs6000}*): Change --enable-cpu to --with-cpu. + * rs6000.c (rs6000_select): Likewise. * rs6000/aix41.h (LINK_SPEC): Do not pass -bexport to the linker if -g and -shared. @@ -3338,13 +3295,11 @@ Wed Dec 20 11:23:39 1995 Michael Meissner ({powerpc,rs6000}*): Add support for --enable-cpu= to select the default cpu to compile for. - * rs6000/aix41.h (TARGET_DEFAULT): Make -mcpu=common the default - behavior. - (PROCESSOR_DEFAULT): Ditto. + * rs6000/aix41.h (TARGET_DEFAULT): Make -mcpu=common default behavior. + (PROCESSOR_DEFAULT): Likewise. (MULTILIB_DEFAULTS): Set mcpu=common. - * rs6000/rs6000.h (TARGET_CPU_DEFAULT): Define to be NULL if not - defined. This is used for the --enable-cpu= switch. + * rs6000.h (TARGET_CPU_DEFAULT): Define to be NULL if not defined. (PROCESSOR_COMMON): Set this to PROCESSOR_601. (PROCESSOR_POWERPC): Set this to PROCESSOR_604. (TARGET_OPTIONS): Add -mtune= switch. @@ -3353,18 +3308,18 @@ Wed Dec 20 11:23:39 1995 Michael Meissner (OVERRIDE_OPTIONS): Pass TARGET_CPU_DEFAULT to rs6000_override_options. - * rs6000/rs6000.c (rs6000_cpu_string): Delete global variable. + * rs6000.c (rs6000_cpu_string): Delete global variable. (rs6000_select): Define new global variable. (rs6000_override_options): Take default_cpu argument, and provide support for it and -mtune= in addition to -mcpu=. * rs6000/{aix{3newas,41},lynx,netware,powerpc}.h (ASM_SPEC): Add support for -mcpu=power2. - * rs6000/{rs6000,sysv4}.h (ASM_SPEC): Ditto. + * rs6000/{rs6000,sysv4}.h (ASM_SPEC): Likewise. * rs6000/{aix41,eabiaix,eabile,lynx,powerpc}.h (CPP_SPEC): Make sure all -mcpu=xxx targets are supports. - * rs6000/{rs6000,sysv4,sysv4le}.h (CPP_SPEC): Ditto. + * rs6000/{rs6000,sysv4,sysv4le}.h (CPP_SPEC): Likewise. * rs6000/t-x{newas,rs6000}: New files to be used when making a cross compiler, to prevent libgcc1-test from being made. @@ -3394,8 +3349,7 @@ Tue Dec 19 15:08:31 1995 Jason Merrill Tue Dec 19 10:57:23 1995 Kim Knuttila - * ginclude/ppc-asm.h: Do not compile the register macros under - winnt. + * ppc-asm.h: Do not compile the register macros under winnt. Mon Dec 18 19:31:23 1995 Adam Fedor @@ -3413,10 +3367,10 @@ Mon Dec 18 18:40:34 1995 Jim Wilson (clear_storage, store_expr): Likewise for memset and bzero. (store_constructor): Likewise for memset. * optabs.c (emit_cmp_insn): Likewise for memcmp and bcmp. - * convex/convex.c (expand_movstr_call): Likewise for memcpy. - * m88k/m88k.c (expand_block_move): Likewise for memcpy and bcopy. - * mips/mips.c (block_move_call): Likewise for memcpy and bcopy. - * mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise for cacheflush. + * convex.c (expand_movstr_call): Likewise for memcpy. + * m88k.c (expand_block_move): Likewise for memcpy and bcopy. + * mips.c (block_move_call): Likewise for memcpy and bcopy. + * mips.h (INITIALIZE_TRAMPOLINE): Likewise for cacheflush. * c-common.c (WCHAR_TYPE_SIZE): Add a default definition. @@ -3424,8 +3378,7 @@ Mon Dec 18 18:40:34 1995 Jim Wilson instead of DECL_EXTERNAL to identify declarations. * svr4.h (ASM_IDENTIFY_GCC): Don't output stab here. - (ASM_IDENTIFY_GCC_AFTER_SOURCE): Output stab here instead of - above. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Output stab here instead of above. * stmt.c (expand_asm_operands): Handle numeric constraints in with the default case. @@ -3442,9 +3395,8 @@ Mon Dec 18 16:39:41 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) Mon Dec 18 16:22:46 1995 Michael Meissner - * rs6000.h (ASM_GENERATE_INTERNAL_LABEL): Put a leading '*' - in the label string so as to not confuse dbxout.c which believes - it can skip the leading character of the string. + * rs6000.h (ASM_GENERATE_INTERNAL_LABEL): Put leading '*' in label + string so as to not confuse dbxout.c. Mon Dec 18 09:44:56 1995 Mike Stump @@ -3452,10 +3404,7 @@ Mon Dec 18 09:44:56 1995 Mike Stump defaulting cleanup actions. * tree.c (save_tree_status, restore_tree_status): Save and restore - temporary_firstobj, so that in progress objects that live on the - temporary obstack are not reallocated, if we save and restore the - tree status in their lifetime. - + temporary_firstobj. Mon Dec 18 07:49:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -3465,7 +3414,7 @@ Mon Dec 18 07:49:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) Sun Dec 17 12:14:37 1995 Jeffrey A. Law * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Don't surround section names - with '$'. That confuses collect2. + with '$'; that confuses collect2. (ASM_OUTPUT_SECTION_NAME): Likewise. * sched.c (canon_rtx): Recursively look for equivalences; @@ -3517,43 +3466,34 @@ Sun Dec 17 06:57:02 1995 Paul Eggert Simplify include file names so that they are more likely to match. E.g. simplify "./a//b" to "a/b". Represent directories with simplified prefixes, e.g. replace "./a//b" with "a/b/", and "." with "". - (absolute_filename): New function. (do_include): Use it. (read_name_map): Likewise; this makes things more consistent for DOS. - (main, do_include, open_include_file): -M output now contains operands of -imacros and -include. - (skip_to_end_of_comment): When copying a // comment, don't try to change it to a /* comment. (rescan, skip_if_group, skip_to_end_of_comment, macarg1): Tune. - (rescan, skip_if_group, skip_to_end_of_comment, macarg1): If warn_comments is nonzero, warn if backslash-newline appears in a // comment. Simplify method for finding /* /* */ comment. (skip_if_group): Optionally warn if /* /* */ appears between # and a directive inside a skipped if group. (macarg): Optionally warn if /* /* */ appears in a macro argument. - (strncat, VMS_strncat, vms_ino_t, ino_t): Remove. (INCLUDE_LEN_FUDGE): Add 2 if VMS, for trailing ".h". (INO_T_EQ, INO_T_HASH): New macros. - (struct file_buf): New member `inc'. (expand_to_temp_buffer): Initialize it. - (struct file_name_list): New member `inc'. (struct file_name_list): New member `st'. c_system_include_path is now 1 if not 0. fname is now an array, not a pointer. (struct include_file): New members `next_ino', `deps_output', `st'. Remove members `inode' and `dev'; they are now in `st'. - (INCLUDE_HASHSIZE): Rename from INCLUDE_HASH_SIZE. (include_hashtab): Rename from include_hash_table. (include_ino_hashtab): New variable. - (main): Store file status in struct stat, not in long and int pieces. Use base_name to strip prefixes from file names. When printing directory prefixes, omit trailing / and print "" as ".". @@ -3561,7 +3501,6 @@ Sun Dec 17 06:57:02 1995 Paul Eggert (main, path_include): Regularize operands of -include, -imacros, -isystem, -iwithprefix, and -iwithprefixbefore. Regularize default include directories. - (do_include): Allocate dsp with alloca, since fname is now dynamically allocated. Use -3 to represent a never-opened file descriptor. @@ -3579,35 +3518,27 @@ Sun Dec 17 06:57:02 1995 Paul Eggert Fatal error if fstat fails. Use new deps_output member to avoid printing dependencies twice. (bypass_hashtab): New variable. - (do_include, open_control_file, record_control_macro): New convention: control_macro is "" if the file was imported or had #pragma once. (pragma_once_marker): Remove. - (redundant_include_p, include_hash, lookup_include, lookup_import, add_import, file_size_and_mode): Remove; subsumed by open_include_file. (skip_redundant_dir_prefix): Remove; subsumed by simplify_filename. - (is_system_include, read_name_map, remap_include_file): Assume arg is a directory prefix. - (base_name, simplify_filename, remap_include_file, lookup_ino_include, new_include_prefix): New functions. - (open_include_file): New arguments `importing' and `pinc'. Move filename mapping into new remap_include_file function. First try to find file by name in include_hashtab; if that doesn't work, open and fstat it and try to find it by inode and dev in include_ino_hashtab. - (finclude): Get file status from inc->st instead of invoking fstat. Store inc into fp->inc so that record_control_macro doesn't need to do a table lookup. (finclude, record_control_macro): Accept struct include_file * instead of char * to identify include file. All callers changed. - (check_precompiled): Get file status from new argument `st'. - (do_pragma): Output at most one warning about #pragma implementation. Always return 0 instead of returning garbage sometimes. (do_pragma, hack_vms_include_specification): @@ -3776,7 +3707,7 @@ Thu Dec 14 18:08:59 1995 Torbjorn Granlund Thu Dec 14 17:22:14 1995 Richard Earnshaw (rearnsha@armltd.co.uk) - * arm/arm.c (output_move_double): Extract DFmode constants using + * arm.c (output_move_double): Extract DFmode constants using REAL_VALUE_TO_TARGET_DOUBLE. Thu Dec 14 15:05:13 1995 Doug Evans @@ -3807,11 +3738,9 @@ Wed Dec 13 19:05:47 1995 Alan Modra (alan@spri.levels.unisa.edu.au) Wed Dec 13 15:40:30 1995 Mike Stump - * function.c (identify_blocks): Start with a chain of BLOCKs to - match the rest of the backend (dbxout.c), instead of just one - BLOCK. - (reorder_blocks): Ditto. - (all_blocks): Ditto. + * function.c (identify_blocks): Start with chain of BLOCKs to match + rest of backend (dbxout.c), instead of just one BLOCK. + (reorder_blocks, all_blocks): Likewise. * stmt.c (find_loop_tree_blocks): Pass the toplevel list of blocks, not just the first subblock. @@ -3838,8 +3767,8 @@ Wed Dec 13 15:02:39 1995 Ian Lance Taylor * c-lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols == DBX_DEBUG, call dbxout_start_new_source_file and dbxout_resume_previous_source_file when appropriate. - * config/sparc/sunos4.h (DBX_USE_BINCL): Define. - * config/svr4.h (DBX_USE_BINCL): Define. + * sparc/sunos4.h (DBX_USE_BINCL): Define. + * svr4.h (DBX_USE_BINCL): Define. Wed Dec 13 06:52:40 1995 Michael Meissner @@ -3859,7 +3788,7 @@ Tue Dec 12 15:37:48 1995 David Edelsohn Tue Dec 12 13:58:57 1995 Doug Evans - * h8300/t-h8300 (MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support. + * t-h8300 (MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support. Sun Dec 10 18:51:21 1995 Torbjorn Granlund @@ -3890,7 +3819,7 @@ Sat Dec 9 18:05:03 1995 Jim Wilson Fri Dec 8 19:17:30 1995 Mike Meissner - * rs6000/rs6000.c (input_operand): Allow any integer constant, not + * rs6000.c (input_operand): Allow any integer constant, not just integers that fit in 1 instruction. Fri Dec 8 10:45:07 1995 Richard Earnshaw (rearnsha@armltd.co.uk) @@ -4043,8 +3972,7 @@ Mon Dec 4 22:17:37 1995 Jason Merrill Mon Dec 4 21:30:37 1995 Jim Wilson - * sh/sh.c (shiftcosts): For SH3, max cost of arithmetic right - shift is 3. + * sh.c (shiftcosts): For SH3, max cost of arithmetic right shift is 3. (expand_ashiftrt): For SH3, if shift cost is more than 3, then call gen_ashrsi3_d to use shad instruction. @@ -4059,8 +3987,7 @@ Mon Dec 4 15:28:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) Mon Dec 4 12:59:33 1995 Ian Lance Taylor - * config/sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use -fPIC - unconditionally, since binutils 2.6 supports it. + * sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use -fPIC unconditionally. Sun Dec 3 20:55:43 1995 Jeffrey A. Law @@ -4079,19 +4006,19 @@ Sat Dec 2 22:19:16 1995 Jeffrey A. Law (law@cygnus.com) Sat Dec 2 07:52:46 1995 Michael Meissner - * rs6000/rs6000.md (movsi): Don't split large constants in the + * rs6000.md (movsi): Don't split large constants in the movsi pattern, let the define_split split it later as needed. Fri Dec 1 16:00:42 1995 Brendan Kehoe - * sparc/sparc.c (output_double_int): Handle CODE_LABEL's if v9. + * sparc.c (output_double_int): Handle CODE_LABEL's if v9. Fri Dec 1 09:13:23 1995 Michael Meissner - * m68k/m68k.md (decrement_and_branch_until_zero): Split into a + * m68k.md (decrement_and_branch_until_zero): Split into a define_expand and an anonymous define_insn. - * fx80/fx80.md (decrement_and_branch_until_zero): Ditto. - * m88k/m88k.md (decrement_and_branch_until_zero): Ditto. + * fx80.md (decrement_and_branch_until_zero): Ditto. + * m88k.md (decrement_and_branch_until_zero): Ditto. Thu Nov 30 15:02:16 1995 Jim Wilson @@ -4102,14 +4029,14 @@ Thu Nov 30 15:02:16 1995 Jim Wilson (RELAX_BIT, TARGET_RELAX): New macros. (TARGET_SWITCHES): Add -mrelax. - * sh/sh.c (insn-attr.h): Include. + * sh.c (insn-attr.h): Include. (pragma_nosave_low_regs): New global variable. (calc_live_regs): If SH3 and pragma_nosave_low_regs, then don't save registers r0 through r7 for interrupt functions. (function_epilogue): Clear pragma_nosave_low_regs. (handle_pragma): Set pragma_nosave_low_regs if see pragma for it. - * sh/sh.h (FUNCTION_PROFILER): Use trap #33 instead of trap #5. + * sh.h (FUNCTION_PROFILER): Use trap #33 instead of trap #5. Put additional .align before trapa instruction. Thu Nov 30 14:45:13 1995 Doug Evans @@ -4172,7 +4099,7 @@ Thu Nov 30 12:27:22 1995 Michael Meissner anymore. (STRIP_NAME_ENCODING): Undef. - * rs6000/rs6000.c (rs6000_save_toc_p, rs6000_abi): New globals. + * rs6000.c (rs6000_save_toc_p, rs6000_abi): New globals. (rs6000_override_options): Add 602, 603e, and 620 support. (count_register_operand): New function to return true if operand is the count register. @@ -4210,10 +4137,9 @@ Thu Nov 30 12:27:22 1995 Michael Meissner common trampoline support for all ABI's. (rs6000_initialize_trampoline): Ditto. - * rs6000/rs6000.h (TARGET_{WINDOWS_NT,AIX,MACOS}): Define. + * rs6000.h (TARGET_{WINDOWS_NT,AIX,MACOS}): Define. (processor_type): Add 602. - (PROCESSOR_COMMON): Assume the current processor is a 604, not a - 601. + (PROCESSOR_COMMON): Assume current processor is a 604, not a 601. (SUBTARGET_OPTIONS): Define if not defined. (TARGET_OPTIONS): Include SUBTARGET_OPTIONS. (COUNT_REGISTER_REGNUM): Define as 66. @@ -4231,16 +4157,15 @@ Thu Nov 30 12:27:22 1995 Michael Meissner (MACHINE_issue_rate): Define. (function decls): Add new function decls from rs6000.c. - * rs6000/rs6000.md (cpu attribute): Add 602. + * rs6000.md (cpu attribute): Add 602. (function units): Update to match reality better. (calls through pointer): Rework to support Windows NT. (movsi): Add Windows NT support. (movstrsi): Remove match_operand predicates, since expand_block_move does the checking. (sync_isync): Delete. - (icbi, dcbst, sync, isync): New insns to generate the named - instruction for making trampolines on eabi/V.4 properly flush the - caches. + (icbi, dcbst, sync, isync): New insns to generate named instruction + for making trampolines on eabi/V.4 properly flush the caches. (decrement_and_branch_on_count): Rename from decrement_and_branchsi. Add update of count in insn pattern. @@ -4503,3 +4428,5683 @@ Sun Nov 26 14:47:42 1995 Richard Kenner * Version 2.7.2 released. + * function.c (fixup_var_refs_1): Make pseudo for DEST + in PROMOTED_MODE unless in a SUBREG. + + * cse.c (insert): Don't put a REG into qty_const. + + * msdos/top.sed: Change version to 2.7.2. + * winnt/config-nt.sed: Likewise. + +Sun Nov 26 14:41:49 1995 Douglas Rupp (drupp@cs.washington.edu) + + * Makefile.in (stamp-objlist): Change .o to $objext. + + * alpha/win-nt.h (CPP_PREDEFINES): Set __unaligned and __stdcall + to null. + (ASM_SPEC): Add a translation for -g to -Zi. + * winnt/ld.c (main): Don't pass -g to link. + * winnt/oldnames.c: Reformat and add some new functions for gnat1. + * winnt/win-nt.h (LINK_SPEC): Pass -g to ld.exe. + Increase default stack size. + * configure ({alpha-dec,i386-ibm}-winnt3.5): Add oldnames.o + to extra_objs. + * libgcc2.c (trampoline): Add getpagesize and mprotect for WINNT. + +Sun Nov 26 14:25:26 1995 Uwe Seimet (seimet@chemie.uni-kl.de) + + * atari.h (FUNCTION_VALUE): Deleted; incorrect. + +Sun Nov 26 14:23:03 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fixincludes (curses.h): Allow space or tab after bool keyword, + instead of tab or tab. + +Sun Nov 26 14:14:11 1995 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) + + * 1750a.md (pattern for HImode PSHM): Corrected. + (trunchiqi2, zero_extendqihi2, extendhftqf2): Corrected. + (pattern for movhi of CONST_INT to REG): Corrected. + (divmodqi pattern for DISN): Corrected. + (all shift patterns): Corrected. + + * 1750a.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Corrected. + (ASM_OUTPUT_[datatype]): Corrected datalbl[].size computation + for output of arrays. + +Sun Nov 26 14:08:57 1995 Dave Love + + * mips/iris5.h (NO_IMPLICIT_EXTERN_C): Define this again so + that unistd.h doesn't get badly `fixed' for C++. libg++ will now + build with this definition. + +Sun Nov 26 14:02:43 1995 Robert E. Brown (brown@grettir.bibliotech.com) + + * configure: Better workaround for Nextstep bug. + +Sun Nov 26 13:55:07 1995 Torbjorn Granlund + + * rs6000.md (load_multiple matcher): Fix typo in opcode. + +Sun Nov 26 13:51:08 1995 Lee Iverson + + * final.c (final_start_function): Move call to sdbout_begin_function + back to final_scan_insn on MIPS systems so parameter descriptions are + recognized. + +Sun Nov 26 13:43:06 1995 DJ Delorie (dj@delorie.com) + + * msdos/top.sed: Don't insert "go32". + +Sun Nov 26 12:08:23 1995 Jim Wilson + + * combine.c (nonzero_bits, case REG): Put POINTERS_EXTEND_UNSIGNED + code before stack pointer code. Return nonzero at end of stack + pointer code. + + * sparc.h (PRINT_OPERAND_ADDRESS): Handle CONST inside PLUS. + + * Makefile.in (cppalloc.o): Add a rule to build it. + + * alpha.c (alpha_emit_set_const): Don't output SImode sequences + that rely on invisible overflow. Sign extend new when SImode. + Don't recur if new == c. Don't allow shift outside mode. Make + logical right shift be unsigned. + +Sun Nov 26 11:37:50 1995 Arne H. Juul (arnej@idt.unit.no) + + * Makefile.in (compare*): Add "|| true" to avoid spurious + failure messages from some versions of make. + +Sun Nov 26 11:20:09 1995 Dmitry K. Butskoy (buc@stu.spb.su) + + * expr.c (truthvalue_conversion): Add declaration. + +Sun Nov 12 18:09:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Version 2.7.1 released. + + * function.c (put_reg_into_stack): New arg volatile_p. + (put_var_into_stack): Call with new arg. + +Sat Nov 11 08:25:34 1995 Jim Wilson + + * reload.c (output.h): Include it. + * Makefile.in (reload.o): Add dependence on output.h. + +Thu Nov 9 11:24:20 1995 Jim Wilson + + * mips.h (HARD_REGNO_NREGS): If FP_REG_P, always use UNITS_PER_FPREG + to calculate number of words needed. + +Thu Nov 9 11:04:50 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.md (cmphf): Addd Base Reg with Offset address mode (LB,STB,..) + (movqi,movhi,movhf,addqi3,addhf3,subqi3,subhf3,mulqihi3): Likewise. + (mulhf3,divhf3,andqi3,iorqi3): Likewise. + (define_peephole): Remove the Base mode peepholes. Replace the + special addqi define_insn for "LIM Ra,sym,Rb" by a define_peephole. + (ashlqi3): Took out futile 0th alternative. + (lshrqi3, lshrhi3, ashrqi3, ahsrhi3): Correct case of non-constant + shift count. + + * 1750a.h (REG_ALLOC_ORDER): Define. + (REGNO_OK_FOR_BASE_P): Include stack pointer in test against + reg_renumber[REGNO]. + (ASM_OUTPUT_DESTRUCTOR): Remove bogus assembler comment. + +Thu Nov 9 11:01:33 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case ARRAY_REF): Properly convert types + of index, size, and multiplication. + +Wed Nov 8 09:00:22 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.md (mov*cc_{,soft_}insn): Use match_operator to test the + comparison and check that the condition code register is used. + +Wed Nov 8 08:49:35 1995 Michael Meissner + + * rs6000/sysv4.h (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Undef before + including svr4.h. + +Tue Nov 7 10:58:12 1995 Torbjorn Granlund + + * m68k.md (subxf3): Properly name pattern. + +Tue Nov 7 10:53:09 1995 Michael Meissner + + * libgcc2.c (__{C,D}TOR_LIST): For AIX, initialize these arrays to + 0,0, just like NeXT to avoid a warning message from the AIX 4.1 + linker. + +Tue Nov 7 09:58:34 1995 John F. Carr + + * cppexp.c (cpp_lex): Correctly parse character constants. + +Tue Nov 7 09:52:15 1995 Jason Merrill + + * rs6000.h (ASM_OUTPUT_{DES,CONS}TRUCTOR): Define. + +Mon Nov 6 10:27:15 1995 Doug Evans + + * combine.c (force_to_mode): Fix typo. + +Sun Nov 5 18:37:02 1995 Torbjorn Granlund + + * m68k.md (cmpxf): Don't call force_const_mem, it looses for PIC; + get predicates right instead. Get rid of separate DEFINE_EXPAND. + (addxf3, subxf3, mulxf3, divxf3): Likewise. + (All XFmode patterns): Delete `F' and `G' constraints. + (absxf2, negxf2): Delete spurious condition on TARGET_FPA. + +Sun Nov 5 11:05:44 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fixincludes (malloc.h): Fix return type of {m,re}alloc. + +Sun Nov 5 11:02:26 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * cse.c (invalidate): For a pseudo register, do a loop to + invalidate all table entries, irrespective of mode. + +Sun Nov 5 10:57:43 1995 Richard Kenner + + * combine.c (force_to_mode): Put in last change properly. + +Sun Nov 5 10:53:49 1995 Jeffrey A Law (law@cygnus.com) + + * pa.h (CONDITIONAL_REGISTER_USAGE): Make sure FP regs + get disabled regardless of PA1.0 vs PA1.1 code generation + when TARGET_SOFT_FLOAT or TARGET_DISABLE_FPREGS is on. + +Sun Nov 5 10:49:43 1995 Doug Evans + + * i960.c (emit_move_sequence): Add a scratch register to + multi-reg stores. + (i960_output_move_{double,quad}): New functions. + (i960_print_operand): Handle new operand types E, F. + * i960.md (movdi matchers): Rewrite. + (store_unaligned_di_reg): New pattern. + (movti matchers): Rewrite. + (store_unaligned_ti_reg): New pattern. + +Sun Nov 5 10:45:24 1995 Ian Lance Taylor (ian@cygnus.com) + + * mips.h (MULTILIB_DEFAULTS): Define. + * mips/elf64.h, mips/iris6.h (MULTILIB_DEFAULTS): Define. + +Sun Nov 5 10:41:48 1995 Jim Wilson + + * reload.c (push_reload): Delete abort for RELOAD_OTHER case added + in last change. + * reload1.c (emit_reload_insns): For RELOAD_OTHER output reloads, + output the reload insns in descending order of reloads. + + * sh.md (mulsidi3-1, mulsidi3, umulsidi3-1, umulsidi3): Enable. + (smulsi3_highpart-1, smulsi3_highpart): New patterns. + (umulsi3_highpart-1, umulsi3_highpart): Likewise. + (movdi-1): Add r/x constraint. + * t-sh (MULTILIB_OPTIONS): Add m2. + (MULTILIB_DIRNAMES): Add m2. + (MULTILIB_MATCHES): Define. + + * sparc.h (RTX_COSTS, case MULT): Check for TARGET_SPARCLITE. + + * abi64.h, elf64.h (CPP_SPEC): Add -EB and -EL support. + +Sat Nov 4 10:36:26 1995 Jim Wilson + + * sh.md (casesi_worker): Change constraint from = to +. + + * svr4.h (ASM_IDENTIFY_GCC_AFTER_SOURCE): Delete. + (ASM_IDENTIFY_GCC): Output stab here. + +Sat Nov 4 10:32:37 1995 John Carr + + * cpplib.c (finclude): Set current input pointer when input + is not a regular file. + + * cppmain.c: Define progname, required by cpplib. + +Sun Oct 29 07:48:36 1995 Michael Meissner + + * xcoffout.h (DBX_FINISH_SYMBOL): Deal with names created via + the __asm__ construct that start with a leading '*'. + * xcoffout.c (xcoff_declare_function): Likewise. + +Sun Oct 29 07:45:41 1995 Jim Wilson + + * stupid.c (stupid_mark_refs): Handle SUBREG of pseudo-reg in a + SET_DEST same as we handle a pseudo-reg in a SET_DEST. + +Sun Oct 29 07:43:15 1995 Pat Rankin + + * libgcc2.c (L_eh: __unwind_function): Implement for VAX. + * vax.h (RETURN_ADDRESS_OFFSET, RETURN_ADDR_RTX): Define. + +Sun Oct 29 12:39:08 1995 Richard Kenner a + + * i386/sol2.h (CPP_PREDEFINES): Add -D__SVR4. + +Sun Oct 29 07:14:36 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * reload.c (find_equiv_reg): Check for nonsaving setjmp. + +Fri Oct 27 15:15:56 1995 Jim Wilson + + * Makefile.in (out_object_file): Depend on TREE_H. + +Fri Oct 27 06:42:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (call_operand): Only allow reg 27 on NT too. + * alpha.md (call_value_nt, call_nt): Force non-SYMBOL_REF + into reg 27, just like for OSF. + + * rs6000.c (struct asm_option): Changed from struct option. + (expand_block_move_mem): Remove erroneously-added line. + + * expr.c (clear_storage): SIZE is now rtx, not int. + (store_constructor): Call clear_storage with rtx. + (get_inner_reference): Convert index to precision of + sizetype, not POINTER_SIZE. + (expand_expr, case ARRAY_REF): Likewise. + * expr.h (clear_storage): Second arg is rtx, not int. + +Fri Oct 27 05:45:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * combine.c (force_to_mode, case ASHIFTRT): Properly handle + mask wider than HOST_WIDE_INT. + + * c-decl.c (pushdecl): Don't test TREE_PUBLIC when deciding whether + to register a duplicate decl in the current block. + +Thu Oct 26 21:55:39 1995 Jason Merrill + + * calls.c (expand_call): Don't trust the callee to copy a + TREE_ADDRESSABLE type. + * function.c (assign_parms): Likewise. + +Thu Oct 26 19:25:05 1995 Mike Stump + + * libgcc2.c (__unwind_function): Provide a default definition for + implementations that don't yet have a function unwinder. + +Thu Oct 26 18:08:19 1995 Paul Eggert + + * cccp.c (handle_directive): Don't treat newline as white + space when coalescing white space around a backslash-newline. + +Thu Oct 26 17:57:34 1995 Ian Lance Taylor + + * mips-tdump.c (enum st): Define st_Struct, st_Union, and st_Enum. + (st_to_string): Handle them. + (type_to_string): Add fdp argument; pass it to emit_aggregate. + (print_symbol): Add fdp argument; pass it to type_to_string. + Handle st_Struct, st_Union, and st_Enum. + (emit_aggregate): Add fdp argument. Handle opaque types. Map + through RFD entries. + (print_file_desc): Pass FDR to print_symbol. + (main): Pass null FDR to type_to_string. + +Thu Oct 26 08:07:10 1995 Michael Meissner + + * configure (powerpc-ibm-aix[456789]*): Use rs6000/t-newas, + not rs6000/t-rs6000. + (rs6000-ibm-aix3.2.[456789]*): Likewise. + (rs6000-ibm-aix[456789]*): Likewise. + + * rs6000/t-newas: Copy from t-rs6000. + * t-rs6000: Don't build -mcpu=common multilib variants of libgcc.a. + + * rs6000.md (load_multiple insn): If address register is among regs, + don't load it with a lwsi instruction, which is undefined on PowerPC. + +Thu Oct 26 08:01:32 1995 Jim Wilson + + * dwarfout.c (output_compile_unit_die): Handle language_string + of "GNU F77". + + * reload.c (find_reloads_address): When check for out of range constant + plus register, accept any hard register instead of just fp, ap, sp. + + * combine.c (distribute_notes): For Oct 19 change, add additional + check to verify that place has a valid INSN_CUID. + + * sparc/t-vxsparc (LIBGCC1_TEST): Define. + + * sh.md (negdi2): Use TARGET_LITTLE_ENDIAN. + + * combine.c (force_to_mode, case ASHIFTRT): Verify mode bitsize is + within HOST_BITS_PER_WIDE_INT before shifting by it. + + * final.c (final_scan_insn): When recur for instruction in delay slot, + add loop around recursive call in case the instruction gets split. + +Thu Oct 26 07:28:45 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * genrecog.c (write_tree_1): Avoid emitting '-2147483648'. + + * jump.c (duplicate_loop_exit_test): Return 0 if found + a NOTE_INSN_LOOP_CONT. + +Tue Oct 24 15:30:14 1995 Jeffrey A Law + + * calls.c (expand_call): Make sure valreg is at least + a full word. + +Sun Oct 22 19:35:41 1995 Jim Wilson + + * sh.h (INIT_SECTION_ASM_OP): Delete. + (HAVE_ATEXIT): Define. + +Sun Oct 22 07:46:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * libgcc2.c (__fixuns[xds]fsi): #undef MIN and MAX before #include + of limits.h. + + * pa.c (pa_adjust_cost): Use pa_cpu, not pa_cpu_attr. + +Sun Oct 22 07:38:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * alpha.h (CONST_OK_FOR_LETTER_P): Use 'U' for unsigned constants. + * alpha.c (alpha_emit_set_const): Likewise. + * mips.c (gen_int_relational): Likewise. + +Sun Oct 22 07:14:35 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386.c (i386_return_pops_args): Don't need a FUNDECL to + check for type attributes in FUNTYPE. + +Sat Oct 21 18:17:42 1995 Jim Wilson + + * sh.md (define_delay): Don't accept any instruction for an annulled + slot, only accept those for which in_delay_slot is yes. + * sh.c (find_barrier): When hi_const returns true, increment count_si + by two if found_si is true. + Always use get_attr_length to compute length of instructions. + If count_hi or count_si out of range at end, need two PREV_INSN calls + not one. + When create new label, set LABEL_NUSES to 1. + (reg_unused_after): Ifdef out code for handling labels. + (prepare_scc_operands): New local variable mode. Set it from + sh_compare_op0 or sh_compare_op1. Use it instead of SImode in + force_reg calls. + + * optabs.c (expand_float): Emit missing barrier after unconditional + jump. + +Sat Oct 21 14:16:46 1995 Torbjorn Granlund + + * alpha.md (cmpdf): Make conditional on TARGET_FP. + +Fri Oct 20 19:11:12 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * combine.c (distribute_notes): Delete instructions without + side effect that set a subreg of an unused register. + + * m68k.h (PREFERRED_RELOAD_CLASS): Check for !G constants + for DATA_OR_FP_REGS also. + +Fri Oct 20 18:57:10 1995 Ian Lance Taylor + + * genmultilib: Output negations of unused alternatives, even if + one of the alternatives is selected. + +Fri Oct 20 18:48:50 1995 Jeff Law (law@hurl.cygnus.com) + + * integrate.c (output_inline_function): Turn on flag_no_inline + to avoid function integration once we begin writing deferred + output functions. + +Fri Oct 20 18:46:33 1995 Michael Meissner + + * rs6000.c (float_conv_temp): Delete global variable. + (stack_temps): New static array to hold stack temps. + (offsettable_mem_operand): Delete function. + (offsettable_addr_operand, rs6000_stack_temp): New functions. + (output_epilog): Zero stack_temps. + + * rs6000.h (offsettable_addr_operand): Declare instead of + offsettable_mem_operand. + (PREDICATE_CODES): Use offsettable_addr_operand. + (float_conv_temp): Delete variable. + + * rs6000.md (move_to_float insns): Change move_to_float so + that it doesn't have a clobber of the memory address, and instead + passes the stack temp's memory address as one of the unspec args. + (fix_truncdfsi2): Use rs6000_stack_temp to allocate the temp. + (multiply, shift insns): Fix all cases of multiply and shift insns so + that the right mnemonics are used for -mcpu=common with both + -m{old,new}-mnemonics. + +Fri Oct 20 17:58:19 1995 Jim Wilson + + * expr.c (safe_from_p, case RTL_EXPR): Return 0 if RTL_EXPR_SEQUENCE + exists. Delete code to return 0 if exp_rtl is zero. + + * function.c (init_function_start): Don't call init_insn_lengths here. + * toplev.c (rest_of_compilation): Call it here. + +Thu Oct 19 19:19:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-common.c (check_format_info): Make test for null pointer + more general. + +Thu Oct 19 18:56:16 1995 Satoshi Adachi (adachi@wisdom.aa.ap.titech.ac.jp) + + * fixincludes (stdlib.h): Be more general in edit to change + declaration of {c,m,re}alloc. + +Thu Oct 19 18:48:53 1995 Torbjorn Granlund + + * libgcc2.c (__udiv_w_sdiv): If we don't have sdiv_qrnnd, define + dummy variant of __udiv_w_sdiv. + +Thu Oct 19 18:45:21 1995 Jim Wilson + + * alpha.h (ASM_SPEC): If GNU as is the default, then pass -g to + the assembler if -malpha-as. If GNU as is not the default, then pass + -g to the assembler is not -mgas. + + * combine.c (distribute_notes): When search for new place to put + REG_DEAD note, call distribute_links if this new place is between + i2 and i3, and i2 uses the register. + +Thu Oct 19 18:41:36 1995 Michael Meissner + + * rs6000.md (float{,uns}sidf2): Rewrite to break the conversion + process into several general insns. + (move_to_float): New insns to move 2 integer regs into a float register + through memory, taking endianess into account. Make sure that the + floating temporary is a valid address. Use one temporary for all + floats converted. + (fix_truncdfsi2): Take endianess into account. + + * rs6000.c ({low_32_bit,offsettable_mem}_operand): The function + low_32_bit_operand is now unused, delete it. New function + offsettable_mem_operand to determine if a memory address is + offsettable. + * rs6000.h ({low_32_bit,offsettable_mem}_operand): Ditto. + (PREDICATE_CODES): Ditto. + + * rs6000.{c,h} (float_conv_temp): New global. + * rs6000.c (output_epilog): Zero out float_conv_temp. + + * Makefile.in (libgcc{1,2}.a): Allow LIB{1,2}FUNCS_EXTRA files to + end in .S as well as .c and .asm. + +Wed Oct 18 17:56:45 1995 Jose Alonso (sidinf@fpsp.fapesp.br) + + * c-typeck.c (parser_build_binary_op): Warn about x^y==z, etc. + +Mon Oct 9 12:38:06 1995 Michael Meissner + + * protoize.c (reverse_def_dec_list): Silence compiler warnings. + +Mon Oct 9 12:35:54 1995 Andrew Cagney + + * ginclude/va-ppc.h (va_arg): Deal with long longs that would be + passed in the 7th register, and are passed in the stack instead. + +Fri Oct 6 13:47:10 1995 Jim Wilson + + * alpha.h (ASM_SPEC): Add -g. + +Fri Oct 6 13:42:50 1995 Richard Kenner + + * alpha.h (alpha_{arg,auto}_offset): Make extern. + +Fri Oct 6 13:24:43 1995 Michael Meissner + + * rs6000.h (RETURN_ADDRESS_OFFSET): Correct previous change. + +Fri Oct 6 13:14:43 1995 Doug Evans + + * rtlanal.c (reg_set_last): Fix call to reg_set_between_p. + +Tue Oct 3 12:31:38 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stor-layout.c (layout_type, case ARRAY_TYPE): Strip MAX_EXPR + from upper bound when computing length if it just protects against + negative length. + + * expr.c (emit_move_insn_1): When doing multi-word move, show + output is clobbered. + +Tue Oct 3 12:26:07 1995 Jim Wilson + + * cse.c (set_nonvarying_address_components, case AND): Add *pend to + end. Add constant to start instead of subtracting it. + +Tue Oct 3 12:23:28 1995 Torbjorn Granlund + + * combine.c (simplify_rtx): In code that attempts to simplify + conditional expressions, if the result is an NE around another + comparison, return the original expression. + + * longlong.h (mips umul_ppmm): Use `l' and `h' constraints; + remove mflo and mfhi instructions. + +Tue Oct 3 12:21:29 1995 Michael Meissner + + * ginclude/va-ppc.h (va_start, stdarg case): Call + __builtin_next_arg, and ignore the result, so that the compiler + can report the proper error, if the second argument is not the + last argument. + +Tue Oct 3 12:02:51 1995 Kohtala Marko + + * function.c (assign_stack_temp): Adjust full_size field of + temp_slot when splitting an unused slot. + +Tue Oct 3 11:51:59 1995 Mike Stump + + * expr.c (expand_builtin_return_addr): Break out functionality + from expand_builtin. + (expand_builtin): Call expand_builtin_return_addr. + * rs6000.h (RETURN_ADDR_RTX): Remove call to copy_to_reg. + Offset to return address is 4 when !TARGET_64BIT and v4_call_p, + 8 otherwise. + * sparc.h (RETURN_ADDR_RTX): Remove call to copy_to_reg. + * alpha.h (RETURN_ADDR_RTX): New definition. + +Sun Oct 1 21:23:30 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * tree.c (staticp, case INDIRECT_EXPR): Disable case. + + * expr.c (expand_expr, case COMPONENT_REF): If getting component + of union of variable size, propagate TARGET. + +Fri Sep 29 07:48:09 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (store_expr): When storing promoted value, don't return + MEM if address contains target. + +Thu Sep 28 14:30:03 1995 Paul Eggert + + * cccp.c (rescan): Expand `#if foo && #bar' without a bogus + complaint about preprocessor directives within macro args. + Expand `foo' in `foo#bar' without requiring a space before `#'. + +Thu Sep 28 14:24:26 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (anonymous DImode shift patterns setting cc0): Turned + off due to reload problems. + +Thu Sep 28 14:05:22 1995 Niklas Hallqvist (niklas@appli.se) + + * Makefile.in (USER_H): Move up so can override. + (INSTALL_ASSERT_H): New definition. + (install-headers): Use it. + (stmp-int-hdrs): Handle USER_H being empty. + * config/x-netbsd (INSTALL_ASSERT_H): Define as empty. + + * i386/netbsd.h (WCHAR_{TYPE,UNSIGNED,TYPE_SIZE}): Now int. + * m68k/netbsd.h, ns32k/netbsd.h, sparc/netbsd.h: Likewise. + * vax/netbsd.h: Likewise. + (SIZE_TYPE): Use unsigned int. + + * m68k.c (output_scc_di): Swap operands when needed. + * m68k.h (LEGITIMATE_PIC_OPERAND): Allow SYMBOL_REF_FLAG symref. + * m68k.md: Make both assembler syntaxes do the same for PIC calls. + +Tue Sep 26 16:51:44 1995 Michael Meissner + + * mips.c (override_options): Don't allow anything but integers to + go in the HI/LO registers. + +Tue Sep 26 16:36:18 1995 John F. Carr + + * c-common.c (check_format_info): Don't warn about format type + mismatch if the argument is an ERROR_MARK. + +Mon Sep 25 17:50:50 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * stor-layout.c (put_pending_sizes): New function. + * tree.h (put_pending_sizes): Add declaration. + * tree.c (save_expr): Return original for ERROR_MARK. + +Fri Sep 22 19:20:01 1995 Jeff Law (law@hurl.cygnus.com) + + * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Strip off + all NOP exprs from the source and destination nodes, then + set MEM_IN_STRUCT_P. + +Fri Sep 22 18:50:31 1995 Michael Meissner + + * rs6000/eabi.h (ASM_OUTPUT_INT): Test for whether the integer + being output is also a constant so &sym - &sym2 is not fixed up. + +Fri Sep 22 18:49:07 1995 Peter Flass (FLASS@LBDRSCS.BITNET) + + * i370.md (cmpsi): Add missing constraints to operand 1. + +Fri Sep 22 18:27:33 1995 Torbjorn Granlund + + * i386.h (CONST_OK_FOR_LETTER_P): Make `N' match range 0..255 + for `outb' instruction. + + * pyr.h (PRINT_OPERAND): Handle code `R' for REG. + * longlong.h (pyr umul_ppmm): Use it. + +Fri Sep 22 18:24:38 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in (enumlist): Propagate error_mark_node. + + * c-aux-info.c (gen_type): Handle ERROR_MARK. + + * alpha.md (movdi): Avoid memory sharing problem when in reload. + +Wed Sep 20 14:27:09 1995 Peter Flass + + * mvs.h (FUNCTION_PROLOGUE): Maintain savearea forward chain + per MVS standards. + +Wed Sep 20 14:20:52 1995 Torbjorn Granlund + + * pyr.md (cmphi recognizer): Make condition match constraints. + (cmpqi recognizer): Likewise. + +Wed Sep 20 12:42:59 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * integrate.c (expand_inline_function): Do copy something setting + the result register if it is setting it to itself and has a REG_NOTE. + + * integrate.c (set_decl_{origin_self,abstract_flags}): Treat + a DECL_INITIAL of error_mark_node the same as one of NULL_TREE. + +Tue Sep 19 19:30:18 1995 Dave Pitts (dpitts@nyx.cs.du.edu) + + * i370.md (cmphi, movhi, movstricthi, extendhisi2): Correct generation + of short integer (Halfword) + ({add,sub,mul,and,ior,xor}hi3): Likewise. + * i370/mvs.h (MACROPROLOGUE): New macro. + (FUNCTION_{PRO,EPI}LOGUE): Added ability to use IBM supplied function + prologue macros. + (FUNCTION_PROLOGUE): Corrected function "in-line" prologue alignment + problems. + (ASM_DECLARE_FUNCTION_NAME): Changed alignment to FullWord. + (ASM_OUTPUT_{SHORT,ASCII}): Reworked. + +Tue Sep 19 19:22:15 1995 Douglas Rupp (drupp@cs.washington.edu) + + * winnt/win-nt.h: Renamed from winnt/win-nt.h. + (LINK_SPEC): Add -noinhibit-exec. + * {alpha,i386}/win-nt.h: Renamed from {alpha,i386}/winnt.h. + Include winnt/win-nt.h, not winnt/winnt.h. + * winnt/oldnames.c: New file. + * winnt/headers.mak (fixinc-nt.obj): Fix typo. + * winnt/config-nt.bat: Change winnt.h to win-nt.h. + * i386/config-nt.sed: Likewise. + * configure ({alpha,i386}-*-winnt3*): Likewise. + +Mon Sep 18 14:00:45 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Added R2 and R0_1. + (REG_CLASS_FROM_LETTER): New letters 't' and 'z'. + (EXTRA_CONSTRAINT): New letter 'Q'. + +Sun Sep 17 12:39:22 1995 Jeff Law (law@snake.cs.utah.edu) + + * pa.h (ASM_DECLARE_FUNCTION_NAME): If a parameter's type + has TYPE_NEEDS_CONSTRUCTING on, then it's passed by invisible + reference. + +Sat Sep 16 17:42:33 1995 Jim Wilson + + * loop.c (find_and_verify_loops): Fix error in last change. + +Sat Sep 16 08:38:22 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.h (GO_IF_LEGITIMATE_ADDRESS): Disallow SYMBOL_REF for + current function. + + * cse.c (recorded_label_ref): New variable. + (insert): Set instead of cse_jumps_altered. + (cse_main): Initialize it and return 1 if nonzero at end. + +Fri Sep 15 18:26:49 1995 Torbjorn Granlund (tege@matematik.su.se) + + * fold-const (div_and_round_double): Change `carry', `quo_est', + and `scale' from plain int to `unsigned HOST_WIDE_INT'. + +Fri Sep 15 18:24:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (insert): Set cse_jumps_altered when inserting a LABEL_REF. + +Fri Sep 15 17:29:41 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.c (b_mode_operand): New function. + (print_operand): Added code 'Q'. + +Fri Sep 15 17:27:23 1995 Jim Wilson + + * loop.c (find_and_verify_loops): When moving exit blocks out of + the loop, verify that the target of P is within the current loop. + + * reorg.c (fill_slots_from_thread): Update thread if it is split. + +Fri Sep 15 17:06:51 1995 Michael Meissner + + * rs6000.md (decrement_and_branchsi and related insns): Don't use + a "2" to select a register preference for operand 1 if operand 2 + hasn't been seen yet. + Add appropriate clobbers in decrement_and_branchsi. + Add patterns where the pc/label_ref are interchanged. + + * Makefile.in (gnucompare, stmp-multilib-sub): Remove extra . in + front of $(objext). + + * rs6000.c (output_toc): Align DF constants if STRICT_ALIGNMENT. + + * config/fp-bit.c (FLO_union_type): Add words field if double + precision to get at the separate words. + (FLO_union_type, pack_d, unpack_d): Use FLOAT_BIT_ORDER_MISMATCH + to determine when the bitfields need to be reversed, and + FLOAT_WORD_ORDER_MISMATCH when the words need to be reversed. + +Fri Sep 15 16:41:43 1995 Jeff Law (law@snake.cs.utah.edu) + + * reorg.c (fill_simple_delay_slots): When filling insn's delay slot + with JUMP_INSN, don't assume it immediately follows insn on + unfilled slots obstack. + + * Makefile.in (caller-save.o): Depend on insn-codes.h. + +Thu Sep 14 17:41:49 1995 Jim Meyering (meyering@comco.com) + + * protoize.c (do_cleaning): Don't blank out backslash-escaped + newlines in double quoted strings. + +Thu Sep 14 16:20:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * emit-rtl.c (gen_lowpart): If gen_lowpart_common fails + for a REG, load it into a pseudo and try again. + +Thu Sep 14 14:15:16 1995 Stan Cox (coxs@dg-rtp.dg.com) + + * m88k.h (VERSION_INFO1): Removed BCS reference. + * m88k/dgux.h (ASM_SPEC, *_LEGEND): + Added -mno-legend option. -mstandard no longer implies that legend + legend information not be produced. + (LINK_SPEC): Removed -z text + +Tue Sep 12 19:05:39 1995 Jim Wilson + + * cccp.c (is_system_include): Call skip_redundant_dir_prefix. + +Tue Sep 12 18:58:21 1995 John Carr + + * sparc.md: Change `*return "string"' to "string" in patterns. + +Tue Sep 12 18:48:47 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * function.c (put_var_into_stack): For CONCAT case, order of + placement depends on FRAME_GROWS_DOWNWARD, not STACK_GROWS_DOWNWARD. + +Tue Sep 12 18:34:10 1995 Doug Evans + + * va-sparc.h (v9 varargs va_start): Handle __builtin_va_alist + being stack argument. + + * sparc.h (STATIC_CHAIN_REGNUM): Use %g5 for sparc64. + (TRAMPOLINE_TEMPLATE): Rewrite for sparc64. + (TRAMPOLINE_SIZE): Is 40 for sparc64. + * sparc.c (sparc64_initialize_trampoline): Rewrite. + +Tue Sep 12 18:30:22 1995 Douglas Rupp (drupp@cs.washington.edu) + + * cp/Make-lang.in (cc1plus) : Removed unnecessary $(exeext). + + * configure: Added code to handle gcc_extra_objs. + (alpha-winnt): Changed xmake_file to winnt/x-winnt. + Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe. + (i386-winnt): Changed xmake_file to winnt/x-winnt. + Added extra_gcc_objs=spawnv.o; changed extra_programs to ld.exe. + * configure.bat: Changed to used common winnt/config-nt.bat. + * Makefile.in: Changed various .o's to .$(objext)'s + (specs): Removed unnecessary $(exeext). + (EXTRA_GCC_OBJS): New variable. + (clean): Removed $(LIB2FUNCS_EXTRA) + * objc/Makefile: Changed archive command for libobjc.a to use $? + for objects. + + * alpha/x-winnt, i386/x-winnt: Deleted. + * alpha/config-nt.bat, i386/config-nt.bat: Deleted. + * alpha/config-nt.sed, i386/config-nt.sed: Moved architecture + independent commands to config/winnt/config-nt.sed. + * alpha/winnt.h: Added -D_M_ALPHA to CPP_PREDEFINES. + Changed LIB_SPEC to be compatible with Gnu ld for NT. + * i386/winnt.h: Added -D_cdecl=__attribute__((__cdecl__)). + Change LIB_SPEC to be compatible with Gnu ld for NT. + * winnt/config-nt.bat, winnt/config-nt.sed: New files. + * winnt/dirent.{c,h}, winnt/fixinc-nt.c, winnt/headers.mak: New files. + * winnt/ld.c: Changed precedence of libraries to look for + libfoo.lib before libfoo.a + Changed to work like Gnu ld for NT. + * winnt/libgcc.mak, winnt/mklibgcc.c: New files. + * winnt/spawnv.c: Changed spawn function entry points to __spawn* + instead of spawn*. + * winnt/x-winnt: New file. + * fixinc-nt.sed: New file. + * fixinc.winnt: Rewritten to use fixinc-nt.sed. + + * gcc.c: Remove fix_argv kludge. + +Tue Sep 12 13:24:17 1995 Michael Meissner + + * rs6000.md (power subdi3 pattern): Fix pattern to have 5 + alternatives, and correct 4th alternative to match reality. + + * rs6000.md (adddi3, subdi3, negdi2): Add constraints so output reg + does not overlap one reg with one of the inputs. + +Tue Sep 12 13:09:48 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.c (output_scc_di): Fixed for non-SGS_CMP_ORDER syntax. + + * collect2.c (scan_libraries): Cast lsyms' alloca to LDSYM*. + +Tue Sep 12 13:04:12 1995 Niklas Hallqvist (niklas@appli.se) + + * stmt.c (expand_start_stmt_expr): Do stack adjust in right place. + + * stdarg.h (__gnuc_va_list): Make char * for NetBSD. + +Tue Sep 12 12:44:46 1995 Jason Merrill + + * ginclude/va-ppc.h (va_arg): Reorganize to avoid BIND_EXPRs of + aggregate or array type. + +Tue Sep 12 12:42:27 1995 Ian Lance Taylor + + * fixincludes: Fix HP/UX for g++ -pedantic-errors. + + * fixincludes (curses.h): typedef bool need not take up entire line. + +Mon Sep 11 19:05:42 1995 Stan Cox (coxs@dg-rtp.dg.com) + + * c-typeck.c (digest_init): Don't recursively call digest_init + when in traditional mode if the type is invalid. + +Mon Sep 11 18:58:26 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.md: Added DLB/DSTB peepholes for HFmode. + Corrected mnemonics for HImode DSTB peephole. + +Mon Sep 11 18:48:06 1995 Michael Meissner + + * config/fp-bit.c (FLO_union_type): Remove bitfields to set sign, + exponent, and mantissa, and add value_raw field, which is an + integer of the appropriate type. If _DEBUG_BITFLOAT is defined, + provide little and big endian bitfields. If the macro + FLOAT_BIT_ORDER_MISMATCH is defined, use explicit bitfields. + (pack_d, unpack_d): Switch to use value_raw and explicit shifts + and masks so that we don't have to worry about whether the target + is big or little endian unless FLOAT_BIT_ORDER_MISMATCH is + defined. If single precision floating point, rename to pack_f and + unpack_f, so there is no confusion in the debugger. + + * rs6000.h (rs6000_abi): New enumeration to describe which + ABI we're conforming to. + (rs6000_stack): Use abi enum, not AIX vs. V.4 boolean. + (ASM_OUTPUT_OPTIONS): New macro to print output options in .s file. + (ASM_FILE_START): Use it. + (output_options,rs6000_float_const): Declare new functions. + + * rs6000.c (output_option{,s}): New functions to write -f, -m, + and -W options to the asm file. + (rs6000_float_const): New function to generate floating point + constants portably used in signed,unsigned -> double conversions. + (rs6000_stack_info,debug_stack_info): Use ABI enumeration instead + of AIX vs. V.4 boolean. + + * rs6000.md (float{,uns}sidf2): Call rs6000_float_const to + portably build the proper floating point constant for conversions. + (movdi): Properly handle movdi of CONST_{INT,DOUBLE} on little + endian systems. + + * rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Define to be 0/1 + depending on the target endianess. + (ASM_FILE_START): Define, to call output_options in addition to + output_file_directive. + (TRAMPOLINE_SIZE): Correct size to match code. + + * rs6000/eabi{,le}sim.h (CPP_SPEC): Define the correct endian + macro for varargs/stdargs use. + +Mon Sep 11 18:41:58 1995 Jim Wilson + + * c-decl.c (redeclaration_error_message): For TYPE_DECLs, return 0 + if TYPE_MAIN_VARIANT of old type is same as new type. + +Mon Sep 11 17:39:35 1995 Rob Ryan (robr@cmu.edu) + + * xcoffout.c (xcoff_inlining): New variable, used in place of + xcoff_current_include_file when determining whether to use + absolute line numbers. + (xcoffout_source_file): Switched to using xcoff_inlining to + determine when to emit .bi/.ei directives. + +Mon Sep 11 16:55:06 1995 Torbjorn Granlund + + * m68k.md (cmpdi): Change patterns to allocate scratch register at + RTL generation time. + (tstdi): Likewise. + +Sun Sep 3 09:03:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (size_binop): Don't pass 1 to NOTRUNC. + +Thu Aug 31 19:27:00 1995 Roland McGrath + + * libgcc2.c: Include longlong.h. + [L_udivdi3 || L_divdi3 || L_umoddi3 || L_moddi3] (__udivmoddi4): + Define this `static inline' when defining these, so they all + remain leaf functions. + +Thu Aug 31 18:38:21 1995 Paul Eggert + + * c-parse.in (ends_in_label): New %union member. + (stmts, stmt_or_label): Use new member to avoid lexical lookahead hack. + (lineno_stmt_or_labels): New rule. + (lineno_stmt_or_label, stmt_or_label): Yield nonzero if it ends + in a label. + +Thu Aug 31 08:31:40 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (canon_hash, CONST_DOUBLE): Hash integer and real + differently. + * varasm.c (struct rtx_const): Add new field DI to union. + (decode_rtx_const, case CONST_DOUBLE): Use to hash CONST_DOUBLE + representing an integer. + + * va-alpha.h (__gnuc_va_list): Make __offset an int. + * alpha.c (alpha_builtin_saveregs): Properly compute address + of __offset both both OSF and WINNT. + + * xm-alpha.h (sbrk): Don't define here. + * gmon.c (sbrk): Define here for __alpha. + * toplev.c (sbrk): Likewise. + * mips-tfile.c (malloc, calloc, realloc): Don't define for anybody. + + * reload.c (push_reload): Add case for output reload of a SUBREG + of a hard reg when output mode is invalid for that mode. + In both that case and existing case for in, don't remove SUBREG. + * reload1.c (emit_reload_insns): Emit RELOAD_OTHER output reloads last. + +Tue Aug 29 19:16:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-common.c (decl_attribute, case A_PACKED): Check is_type first. + (decl_attribute, case A_T_UNION): Likewise. + Don't access TYPE_FIELDS if DECL is zero. + * c-decl.c (finish_struct): If transparent_union attribute + specified, validate it once we finish laying the union out. + +Mon Aug 28 05:58:03 1995 Paul Eggert + + * arm.c (arm_gen_movstrqi): Remove unused variable const_sxteen. + + * bi-lexer.c (buffer, inpoint): Remove unused variables. + + * i370/mvs.h, i370/mvs370.c (mvs_label_emitted): Renamed + from mvs_label_emited. + + * msdos/configur.bat: Fix misspelling of `maintainer-clean'. + +Sat Aug 26 06:57:17 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload.c (push_secondary_reload): If X is a paradoxical SUBREG, + get mode and thing to reload from inside. + * reload1.c (emit_reload_insns): Do nothing for SUBREG whose + operand is unused subsequently. + In secondary reload case, if paradoxical SUBREG for output, reload + thing inside SUBREG, just like gen_reload. + +Fri Aug 25 19:26:53 1995 Paul Eggert + + * c-typeck.c (set_init_label): Don't die if an entire + brace-pair level is superfluous in the containing level. + +Fri Aug 25 19:22:46 1995 Michael Meissner + + * configure (powerpc{,le}-eabisim): Add support for a new target + that works under the PSIM simulator. + * rs6000/eabisim.h, rs6000/eabilesim.h, rs6000/t-eabisim: New files. + + * rs6000/eabi.h (STRICT_ALIGNMENT): If little endian, always set + strict alignment to 1. + +Fri Aug 25 19:22:23 1995 David Edelsohn + + * rs6000.md ({add,sub,mulsi}di3): Support both endian possibilities. + (negdi2): Likewise. + +Fri Aug 25 19:10:41 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * 1750a.md: Added peephole definitions for Load/Store Base insns + and eliminating redundant load in an equivalent store/load sequence. + +Fri Aug 25 18:33:27 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * toplev.c (report_error_function): Don't attempt to use input + file stack to identify nesting of #include's if file name oflocation + diagnosed is not same as input_filename. + +Fri Aug 25 07:31:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * integrate.c (output_inline_function): Switch to function obstack. + +Mon Aug 21 13:29:54 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) + + * i386.c (arithmetic_comparison_operator): New function. + (print_operand): Take into account that overflow flag is not + set the same as after a compare instruction. + * i386.md (decrement_and_branch_until_zero): Use + arithmetic_comparison_operator to decide if there is comparison + suitable to be expressed by condition code from an arithmetic op. + +Mon Aug 21 13:26:13 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (adddi3, subdi3): "&" added to clobber's constraints. + +Mon Aug 21 12:11:14 1995 Jim Wilson + + * t-sparclite (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): Define. + + * sh.md (movdi-1, movdf-1): Make conditional on reload_completed, + delete conditions checking for pseudo registers and Q addresses. + Add code to handle SUBREG. + + * local-alloc.c (wipe_dead_reg): Make a register mentioned in a + REG_INC note die after the instruction. + + * m68k.md: For all dbra pattern, change constraint from 'g' to 'd*g'. + + * Makefile.in: (underscore.c): Rename rule to stamp-under, and + touch stamp-under at the end. Add new rule for underscore.c that + depends on stamp-under. + + * sh.c (reg_unused_after): For a SEQUENCE, make sure all insns are + safe before returning 1. + + * sh.h (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN): Define. + + * sh.c (output_stack_adjust): Add new argument reg. Use it instead + of stack_pointer_rtx. + (sh_expand_prologue, sh_expand_epilogue): Pass new argument to + output_stack_adjust. + +Sat Aug 19 17:34:15 1995 Jim Wilson + + * sparc/gmon-sol2.c (_mcount): Define. + * sparc/sol2.h (STARTFILE_SPEC, ENDFILE_SPEC): Delete superfluous + -pg tests. + (LINK_SPEC): Add libp directories to -Y when -pg. + + * unroll.c (calculate_giv_inc): Handle increment computed by ASHIFT. + +Sat Aug 19 17:28:56 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (subdi3): Should not be commutative. + (one_cmpldi2): Fixed typo with register operand. + +Sat Aug 19 17:20:43 1995 Michael Meissner + + * rs6000.c (output_prolog): Fixup code to set stack pointer + if stack size > 32k. + * rs6000.md (sync_isync): Renamed from sync; added an isync insn + after the sync to properly deal with PowerPC's with split I/D caches. + * sysv4.h (INITIALIZE_TRAMPOLINE): Sync function now named sync_isync. + +Sat Aug 19 17:07:09 1995 Doug Evans + + * h8300.h (STATIC_CHAIN_REGNUM): Use r3. + (REGISTER_NAMES): Print r7 as sp. + (ADDITIONAL_REGISTER_NAMES): Recognize r7. + (ASM_OUTPUT_ALIGN): Alignment is power of 2. + * h8300.md (fancy_btst,fancy_btst1): Branch target must be + operand 0 for length attribute to work. + +Sat Aug 19 16:43:11 1995 Paul Franklin + + * assert.h: Declare __eprintf with attribute noreturn. + +Sat Aug 19 16:40:12 1995 Jason Merrill + + * stddef.h: Don't define wchar_t if __cplusplus is defined. + +Tue Aug 15 18:01:01 1995 Paul Eggert + + * cccp.c (warning_with_line): Fix typo in declaration when + !HAVE_VPRINTF and defined (__STDC__). + +Tue Aug 15 17:57:54 1995 Stephen L Moshier + + * real.c (ediv, emul): Set sign bit of IEEE -0.0 result. + +Tue Aug 15 17:49:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (safe_from_p): Only safe if EXP is variable-size and X + is BLKmode. + + * stmt.c (fixup_gotos): When some fixups done, reset to point + to next instead of zeroing TREE_VALUE, which may be shared. + +Mon Aug 14 09:15:45 1995 Doug Evans + + * m68k/m68kemb.h (STARTFILE_SPEC): Define as empty. + +Mon Aug 14 09:08:57 1995 Pat Rankin + + * vax.c (vms_check_external): Update `pending_head' properly + when the first list element is removed. + +Mon Aug 14 09:01:32 1995 Jeffrey A. Law + + * pa.md (call expanders): Emit a blockage insn after restoring + %r19 when generating PIC. + +Sun Aug 13 21:58:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * toplev.c (main): Change text of unsupported -g option warning. + +Sun Aug 13 21:47:57 1995 Andrew McCallum + + * objc/selector.c (sel_get_any_typed_uid): New function. + * objc/objc-api.h (sel_get_any_typed_uid): Declare new function. + +Sun Aug 13 21:43:17 1995 John Carr + + * c-typeck.c (c_expand_asm_operands): Check for read-only output + operand where the variable is read-only but the type is not. + +Sun Aug 13 21:16:12 1995 David Edelsohn + + * rs6000.c (direct_return): Epilogue required if CR saved. + +Sun Aug 13 19:09:25 1995 Jeff Law (law@snake.cs.utah.edu) + + * configure (hppa1.?-hp-hpux10): Recognize and treat just like hpux9. + +Sun Aug 13 19:07:23 1995 Doug Evans + + * i960.md (movdi matchers): Fix src/dest order in unaligned + reg->reg case. + +Sun Aug 13 18:49:01 1995 DJ Delorie + + * i386/xm-dos.h (HAVE_STRERROR): New definition. + + * msdos/configur.bat: Add missing carriage return. + +Sun Aug 13 18:40:55 1995 Andrew Cagney + + * Makefile.in (USER_H): Add va-ppc.h. + +Sun Aug 13 18:36:17 1995 M. Warner Losh + + * stmt.c (expand_asm_operands): Type '0'..'4' operands may + allow regs, so move them to the default case. + +Sun Aug 13 18:32:35 1995 Paul Eggert + + * cccp.c (warning_with_line): New function. + (trigraph_pcp): Use it, to avoid reporting line number. + (vwarning_with_line): Don't report line number if zero. + +Sun Aug 13 18:23:08 1995 Jason Merrill + + * toplev.c (vmessage): Support four arguments. + +Sun Aug 13 18:19:51 1995 Michael Meissner + + * ginclude/stdarg.h: Add ppc svr4 calling sequence support. + * ginclude/varargs.h: Likewise. + * ginclude/va-ppc.h: New file. + +Sun Aug 13 18:05:20 1995 Michael Gschwind + + * configure (pdp-*-*): Add support for t-pdp11. + * t-pdp11: New file. + * Makefile.in (LIBGCC2_CFLAGS): Add TARGET_LIBGCC2_CFLAGS. + +Sun Aug 13 14:50:58 1995 Jim Wilson + + * final.c (final_start_function): Always call sdbout_begin_function + and xcoffout_begin_function, even if no line number info. + + * mips/abi64.h (SETUP_INCOMING_VARARGS): In if statement, only + subtract one for stdarg. Don't subtract PRETEND_SIZE from + argument pointer when calculating stack address. + * mips.h (INITIAL_ELIMINATION_OFFSET): For 64 bit ABI, subtract + current_function_pretend_args_size when converting from argument + pointer. + * va-mips.h (va_start): For stdarg, delete separate define for + 64 bit ABI. For varargs, don't subtract 64, and only add -8 when + all argument registers are used. + + * gcc.c (main): When concat gcc_exec_prefix and + standard_startfile_prefix, put machine_suffix in the middle. + + * iris6.h (INIT_SECTION_ASM_OP): Don't define. + (LD_INIT_SWITCH, LD_FINI_SWITCH, HAS_INIT_SECTION): Don't undef. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Ifdef out. + * configure (mips-sgi-irix6, mips-sgi-irix5cross64): Define + use_collect2 to yes. + + * combine.c (move_deaths): When have a multi-reg hard register, + if don't find a note, then recur for each individual hard register. + + * cse.c (set_nonvarying_address_components): Handle addresses + which are the sum of two constant pseudo regs. + (cse_rtx_addr_varies_p): Likewise. + + * Makefile.in (gfloat.h): Add a - before the rm command. + + * loop.c (find_and_verify_loops): Set dest_loop only if + JUMP_LABEL (insn) is non-zero. + +Mon Jul 31 14:31:53 1995 Ian Lance Taylor + + * fixincludes: Avoid clobbering VxWorks drv/netif/if_med.h file. + +Sat Jul 29 16:21:42 1995 Jason Merrill + + * collect2.c: (XCOFF_SCAN_LIBS): Define if OBJECT_FORMAT_COFF and + XCOFF_DEBUGGING_FORMAT. + (SCAN_LIBRARIES): Also define if XCOFF_SCAN_LIBS. + +Sat Jul 29 16:19:42 1995 Stuart D. Gathman + + * collect2.c (scan_libraries): Implement for AIX. + +Sat Jul 29 09:59:33 1995 Michael Gschwind + + * configure: (pdp11-*-bsd) New target. + * 2bsd.h: New file. + + * pdp11.c (output_move_double): Handle CONST_INT parameters properly. + * pdp11.h (RTX_COSTS): Fill in missing default values. + * pdp11.md (truncdfsf2, extendsfdf2, floatsidf2, fix_truncdfsi2): + Allow register parameters, required by gcc to generate correct code. + * xm-pdp11.h: Include tm.h. + +Sat Jul 29 09:55:17 1995 Andreas Schwab + + * configure (m68k-*-linux*aout*, m68k-*-linux*): New targets. + * m68k/linux-aout.h, m68k/linux.h, m68k/t-linux, m68k/xm-linux.h: New. + * m68k.md [USE_GAS]: Output `jbsr' instead of `jsr' for normal + function calls and `bsr.l' instead of `bsr' for pic function calls. + +Sat Jul 29 09:44:13 1995 Jim Wilson + + * sh.h (CAN_DEBUG_WITHOUT_FP): Comment out. + + * reload.c (find_reloads_address_1, case PLUS): When handle SUBREG, + add SUBREG_WORD offset to SUBREG_REG register number. + (find_reloads_address_1, case SUBREG): If a pseudo register inside + a SUBREG is larger than the class, then reload the entire SUBREG. + * sh.h (SUBREG_OK_FOR_INDEX_P): New macro. + (INDEX_REGISTER_RTX_P): Use it. + +Sat Jul 29 09:33:19 1995 Doug Evans + + * mips/netbsd.h (CPP_SPEC): Fix typo. + + * configure (a29k-*-vxworks*): Define extra_parts for crt{begin,end}.o. + * t-a29k, t-a29kbase, t-vx29k ({,CROSS_}LIBGCC1): Define as empty. + +Sat Jul 29 09:15:17 1995 Jeffrey A. Law + + * pa/lib2funcs.asm (gcc_plt_call): Rewrite to avoid the need + for being called by _sr4export. Inline expand $$dyncall to + avoid the need for long-call and PIC support. + +Sat Jul 29 07:30:04 1995 Oliver Kellogg (Oliver.Kellogg@space.otn.dasa.de) + + * ms1750.inc (ucim.m, ucr.m, uc.m): New. + * 1750a.md (cmpqi): Account for unsigned comparisons. + (rotrqi3, rotrhi3): Reworked. + * 1750a.c (notice_update_cc): INCM and DECM set condition codes. + (unsigned_comparison_operator, next_cc_user_is_unsigned): New fcns. + * 1750a.h (FUNCTION_EPILOGUE): Local variables freed from SP, not FP. + (ASM_OUTPUT_BYTE): Make distinct from ASM_OUTPUT_CHAR. + (ASM_OUTPUT_CONSTRUCTOR): Add FILE arg to assemble_name. + +Fri Jul 28 09:40:07 1995 Jeffrey A. Law + + * pa.h (DO_GLOBAL_DTORS_BODY): Use an asm statement to keep optimizer + from deleting an assignment it believes dead. + +Fri Jul 28 08:47:51 1995 Jim Wilson + + * unroll.c (unroll_loop): When preconditioning, output code to + execute loop once if initial value is greater than or equal to final + value. + + * configure (lang_specs_files, lang_options_files): Add $srcdir to + file names when adding them to these variables. + + * c-typeck.c (pointer_int_sum): Don't distribute if intop is unsigned + and not the same size as ptrop. + + * function.c (assign_stack_temp): When split a slot, set base_offset + and full_size in the newly created slot. + (combine_temp_slots): Update full_size when slots are combined. + + * sh.c (reg_unused_after): New function. + * sh.md (define_peephole): Add peepholes to use r0+rN addressing mode + for some address reloads. + + * final.c (final_start_function): If SDB_DEBUG, call + sdbout_begin_function. If XCOFF_DEBUG, call xcoffout_begin_function + instead of xcoffout_output_first_source_line. + (final_scan_insn): Don't call sdbout_begin_function or + xcoffout_begin_function. + * xcoffout.c (xcoffout_output_first_source_line): Delete. + (xcoffout_begin_function): Call dbxout_parms and + ASM_OUTPUT_SOURCE_LINE. + + * va-mips.h: Change every occurance of #if __mips>=3 to + #ifdef __mips64. + * mips/abi64.h (CPP_SPEC): Output -D__mips64 when -mips3, or -mips4, + or -mgp64. Output -U__mips64 when -mgp32. + * mips/dec-bsd.h, mips/elf64.h, mips/iris3.h: Likewise. + * mips/iris5.h, mips/mips.h, mips/netbsd.h, mips/osfrose.h: Likewise. + + * i960.c (i960_function_epilogue): Don't clear g14 for functions with + an argument block. + (i960_output_reg_insn): Likewise. + (i960_output_call_insn): Clear g14 for functions wtih an argument + block. + +Fri Jul 28 08:43:52 1995 Doug Evans + + * i960.c (i960_arg_size_and_align): Correct alignment of XFmode + values in library calls. + * i960.md (movdi matchers): Support odd numbered regs. + +Fri Jul 28 08:37:25 1995 Michael Gschwind + + * pdp11.md (divhi3, modhi3, divmodhi4): Rewrite. + +Wed Jul 26 10:15:52 1995 Hallvard B Furuseth (h.b.furuseth@usit.uio.no) + + * collect2.c (end_file): Fix typo in error message text. + +Wed Jul 26 09:22:22 1995 Jeff Law (law@snake.cs.utah.edu) + + * xm-pa.h (USE_C_ALLOCA): Always define. + * xm-pahpux.h (USE_C_ALLOCA): Likewise. + + * x-pa (CC): Remove useless definition. + * xm-pa.h (HAVE_STRERROR): Define. + (__BSD_NET2__): Define. + +Wed Jul 26 09:10:25 1995 Jason Merrill + + * expr.c (preexpand_calls): Don't look past a CLEANUP_POINT_EXPR. + +Wed Jul 26 08:43:42 1995 Jim Wilson + + * cse.c (cse_insn): When do special handling for (set REG0 REG1), + must delete REG_EQUAL note from insn if it mentions REG0. + + * loop.c (find_and_verify_loops): When moving blocks of code, verify + that the just destination is not in an inner nested loop. + (mark_loop_jump): Don't mark label as loop exit if it jumps to + an inner nested loop. + +Wed Jul 26 08:40:31 1995 Paul Eggert + + * cccp.c (do_include, read_name_map): Omit leading "./" and + trailing "/" when it makes sense. + (skip_redundant_dir_prefix): New function. + +Wed Jul 26 08:36:41 1995 Michael Meissner + + * stmt.c (emit_nop): Do not emit a nop if there is a single + insn before a label or at the start of a function. + +Wed Jul 26 08:21:21 1995 Doug Evans + + * Makefile.in (gfloat.h): Delete previous copy before updating. + +Wed Jul 26 08:18:29 1995 Roland McGrath + + * Makefile.in (STAGESTUFF): Add stamp-crtS. + (crtbeginS.o, crtendS.o, stamp-crtS): New rules; just like + crtbegin.o et al, but compiled using -fPIC. + * configure (*-*-gnu*): Add crtbeginS.o and crtendS.o to $extra_parts. + +Wed Jul 26 08:11:52 1995 Michael Gschwind + + * pdp11.md: Fixed typos ('bhos' -> 'bhis'). + +Wed Jul 26 08:05:41 1995 Jim Wilson + + * hp320.h, m68k.h, m68kv4.h (LEGITIMATE_PIC_OPERAND_P): Reject + CONST_DOUBLE with MEM with invalid pic address. + * reload1.c (real.h): Include it. + * Makefile.in (reload1.o): Depends on real.h. + +Wed Jul 26 07:58:22 1995 Ian Lance Taylor + + * gcc.c (MULTILIB_DIRS): Provide default if not defined. + (multilib_defaults): New static variable. + (default_arg): New static function. + (set_multilib_dir): Ignore default arguments. + (print_multilib_info): Ignore entries which use default arguments. + +Tue Jul 25 10:06:09 1995 Michael Meissner + + * rs6000.md (allocate_stack): Don't copy the LR register to + the new stack end. + * rs6000.c (rs6000_stack_info): Correctly store the LR in + the caller's frame, not the current frame, for V.4 calls. + * rs6000/eabi.asm (_save*, _rest*): Provide all mandated V.4 save + and restore functions, except for the save*_g functions which + return the GOT address. + +Fri Jul 21 14:24:25 1995 Michael Meissner + + * rs6000/eabi.h (__eabi): Load up r13 to be the small data + pointer, unless -mrelocatable. + + * rs6000/aix3newas.h (LINK_SPEC): Import machine independent + functions if -mcpu=common. + * rs6000/milli.exp: Import file referenced in aix3newas.h. + + * rs6000/eabi.asm (__eabi): Support for fixing up user initialized + pointers when -mrelocatable is used. + * rs6000/eabi.h (ASM_OUTPUT_INT): Record any pointers initialized + by the user if -mrelocatable, to be fixed up by __eabi. + (CONST_SECTION_ASM_OP): If -mrelocatable, put read-only stuff in .data, + not .rodata, to allow user initialized pointers to be updated by __eabi. + + * rs6000.h (TARGET_SWITCHES): Add -mdebug-{stack,arg}. + (TARGET_{ELF,NO_TOC,TOC}): Add defaults for non system V. + (rs6000_stack): New structure to describe stack layout. + (RS6000_{REG_SAVE,SAVE_AREA,VARARGS_*}): New macros used to + support both AIX and V.4 calling sequences. + (FP_ARG_*, GP_ARG_*): Ditto. + (FP_SAVE_INLINE): Ditto. + (STARTING_FRAME_OFFSET): Modify to support both AIX and V.4 + calling sequences. + (FIRST_PARM_OFFSET): Ditto. + (REG_PARM_STACK_SPACE): Ditto. + (STACK_POINTER_OFFSET): Ditto. + (FUNCTION_ARG_REGNO_P): Ditto. + ({,INIT_}CUMULATIVE_ARGS): Ditto. + (LEGITIMATE_LO_SUM_ADDRESS_P): Ditto. + (FUNCTION_ARG{,_ADVANCE,PARTIAL_NREGS,PASS_BY_REFERENCE}): Ditto. + (SETUP_INCOMING_VARARGS): Ditto. + (EXPAND_BUILTIN_SAVEREGS): Ditto. + (CAN_ELIMINATE): Ditto. + (INITIAL_ELIMINATION_OFFSET): Ditto. + (LEGITIMATE_CONSTANT_POOL_{BASE,ADDRESS}_P): Ditto. + (GO_IF_{LEGITIMATE_ADDRESS,MODE_DEPENDENT_ADDRESS}): Ditto. + (LEGITIMIZE_ADDRESS): Ditto. + (CONST_COSTS): Ditto. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto. + (ASM_OUTPUT_REG_{PUSH,POP}): Use reg_names to print registers. + (function declarations): Add new rs6000.c function declarations, + and delete decls of deleted functions. + (SHIFT_COUNT_TRUNCATED): Parenthesize the expression. + + * rs6000.c (init_cumulative_args): New function to support AIX + and V.4 calling sequences. + (function_arg{,_advance,partial_nregs,pass_by_reference}): Ditto. + (setup_incoming_varargs): Ditto. + (expand_builtin_saveregs): Ditto. + (rs6000_stack_info): Ditto. + (debug_stack_info): Ditto. + (direct_return): Changes to support AIX and V.4 calling sequences. + (first_reg_to_save): Ditto. + (svr4_traceback): Ditto. + (output_{prolog,epilog}): Ditto. + (print_operand): Use reg_names to print registers. Add support + for V.4 HIGH/LO_SUM address modes. + (must_save_cr): Function deleted, in rewrite of AIX/V.4 calling + sequence support. + (rs6000_sa_size): Ditto. + (rs6000_pushes_stack): Ditto. + (output_toc): Add abort if no toc. + + * rs6000.md (call insns): Add a new argument to flag a V.4 + function needs to set bit 6 of the CR. + (elf_{low,high}): New V.4 functions to create addresses via HIGH + and LO_SUM patterns. + (movsi): Use elf_{low,high} if appropriate. + (mov{si,di}_update): Name these patterns for allocate_stack. + (allocate_stack): Support for V.4 stack layout. + (sync): New pattern for V.4 trampolines to issue the sync + instruction. + + * rs6000/sysv4.h (TARGET_SWTICHES): Add -mcall-{aix,sysv}, and + -mprototype. Remove separate flag bit for -mno-toc. + (SUBTARGET_OVERRIDE_OPTIONS): Don't test for -mno-toc. + (FP_ARG_*): Adjust for V.4 calling sequences. + (RS6000_*): Ditto. + (FP_SAVE_INLINE): Ditto. + (toc_section): Eliminate use of AIX style full TOC. + (TRAMPOLINE_{TEMPLATE,SIZE}): Redefine for V.4 support. + (INITIALIZE_TRAMPOLINE): Ditto. + + * rs6000/eabi.h (CPP_SPEC): Define _CALL_SYSV or _CALL_AIX, + depending on whether -mcall-sysv or -mcall-aix was used. + * rs6000/eabile.h (CPP_SPEC): Ditto. + * rs6000/sysv4le.h (CPP_SPEC): Ditto. + + * rs6000/t-eabigas (MULTILIB_{OPTIONS,DIRNAMES}): Delete no-toc + libraries, explicit big endian libraries. + * rs6000/t-ppcgas (MULTILIB_{OPTIONS,DIRNAMES}): Ditto. + + * rs6000/t-eabiaix: New file for eabi, using -mcall-aix as the + default. + * rs6000/eabiaix.h: Ditto. + + * rs6000/t-eabilegas: New file for eabi on little endian systems. + * rs6000/t-ppclegas: New file for V.4 on little endian systems. + + * rs6000/t-rs6000 (MULTILIB_{OPTIONS,DIRNAMES}): Build libgcc.a + for -mcpu=common. + + * configure (powerpc-*-eabiaix): New configuration for defaulting + to old-style AIX calling sequence. + (powerpcle*): Use new t-{eabi,ppc}legas files, to avoid building + explicit little endian multilib libraries. + +Fri Jul 21 13:23:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * toplev.c (main): Don't define sbrk #ifdef __alpha__. + +Tue Jul 18 19:23:44 1995 Paul Eggert + + * cccp.c (do_include): Prefix -H output lines with spaces, not dots. + (output_dots): Remove. + + * cccp.c (main): cplusplus_comments now defaults to 1. + But clear it if -traditional or the new option -lang-c89 is given. + * gcc.c (default_compilers, cpp): Specify -lang-c89 if -ansi is given. + This turns off C++ comment recognition. + +Tue Jul 18 19:16:38 1995 Jim Wilson + + * va-sparc.h (va_arg): Add support for 128 bit long double type. + +Tue Jul 18 19:11:18 1995 Jorn Rennecke (amylaar@meolyon.hanse.de) + + * c-common.c (decl_attributes, case A_ALIGNED): Handle is_type + case properly. + +Tue Jul 18 19:03:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (fold, case CONVERT_EXPR): Don't merge conversions + if outer is to handle a type with differing precision. + +Mon Jul 17 14:37:35 1995 Pat Rankin (rankin@eql.caltech.edu) + + * vax/vms.h (HAVE_ATEXIT): Define. + (DO_GLOBAL_CTORS_BODY): Don't call atexit; let __do_global_ctors do it. + * vax/xm-vms.h (HAVE_VPRINTF): Define. + +Mon Jul 17 06:41:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-typeck.c ({unsigned,signed}_type): Handle intXX_type_node types. + + * xm-alpha.h (sbrk): Add declaration. + + * convert.c (convert_to_integer): If TYPE is a enumeral type or + if its precision is not the same as the size of its mode, + convert in two steps. + + * m68k.md (tstdi, cmpdi): Use match_scratch, not match_operand. + +Fri Jul 14 19:23:42 1995 Andreas Schwab + + * c-decl.c (field_decl_cmp): Rewritten to make sure that a null + name always sorts low against other names. + * c-typeck.c (lookup_field): Change name comparison to match what + field_decl_cmp does. + +Fri Jul 14 18:46:24 1995 Michael Meissner + + * rs6000.md (movsi): Convert a CONST_DOUBLE into a CONST_INT of + the low part. + +Fri Jul 14 18:30:52 1995 Doug Evans + + * toplev.c (main): Reword dwarf/c++/-g warning. + +Fri Jul 14 18:19:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.h (NO_DEFER_POP): Remove last change. + * expr.c (stor_expr): Force stack adjust before NO_DEFER_POP. + (expand_expr, case COND_EXPR): Likewise. + * stmt.c (expand_start_stmt_expr): Likewise. + +Fri Jul 14 07:58:35 1995 Jim Wilson + + * function.c (struct temp_slot): New fields base_offset, full_size. + (assign_stack_temp): For !FRAME_GROWS_DOWNWARD, set p->size to size. + Set new fields base_offset and full_size. + (combine_temp_slots): Use new fields base_offset and full_size instead + of slot and size. + + * loop.c (loop_number_exit_count): New global variable. + (loop_optimize): Allocate space for it. + (find_and_verify_loops, mark_loop_jump): Set it. + (strength_reduce, check_dbra_loop): Use loop_number_exit_count + instead of loop_number_exit_labels. + * loop.h (loop_number_exit_count): Declare it. + * unroll.c (find_splittable_{regs,givs}, final_[bg]iv_value): Use + loop_number_exit_count instead of loop_number_exit_labels. + (reg_dead_after_loop): Check loop_number_exit_count, and fail + if the count doesn't match loop_number_exit_labels. + + * cse.c (cse_insn): Ifdef out code that pre-truncates src_folded. + + * sparc.md (sethi_di_sp64): Return null string at end. + + * function.h (struct function): Add stdarg field. + * function.c (current_function_stdarg): New global variable. + (push_function_context_to): Save it. + (pop_function_context_from): Restore it. + (assign_parms): Set it. + (init_function_start): Clear it. + * output.h (current_function_stdarg): Declare it. + * i960.md: Modify all patterns which handle stores to memory to also + check current_function_varargs and current_function_stdarg. + + * reorg.c (fill_simple_delay_slots): When trying to take instruction + from after the branch, don't continue past target label. Local + variables passed_label and target_uses are no longer necessary. + +Thu Jul 13 19:30:04 1995 Jeff Law (law@snake.cs.utah.edu) + + * pa.c (output_bb): Fix error in long backwards branch with + nullified delay slot. + +Thu Jul 13 19:26:13 1995 Jim Wilson + + * expmed.c (SHIFT_COUNT_TRUNCATED): Use #ifdef not #if. + +Mon Jul 10 20:16:44 1995 Paul Eggert + + * cccp.c (rescan): Don't address outside of array when + preprocessing C++ comments. + +Mon Jul 10 20:05:46 1995 Michael Meissner + + * rs6000.c (expand_block_move): Remove #if 0 conditionals + against using larger block moves. + + * t-rs6000 (EXTRA_PARTS): Copy milli.exp to release dir. + (milli.exp): Copy to build dir from machine dependend dir. + +Mon Jul 10 20:03:29 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.md (matcher for (shiftable_op (cond-exp) (reg))): If + shiftable_op is minus, then subtract from zero when cond fails. + +Mon Jul 10 19:58:26 1995 John F. Carr + + * sparc.h (SELECT_SECTION): Use TREE_CODE_CLASS instead of directly + referencing tree_code_type. + +Mon Jul 10 19:54:31 1995 Jim Wilson + + * protoize.c (reverse_def_dec_list): Delete const qualifiers from + local variables, and delete casts which were casting away const. + +Mon Jul 10 19:14:39 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-lang.c (finish_file): Add missing parm to start_function call. + + * jump.c (jump_optimize): Pass outer_code arg to rtx_cost. + + * varasm.c (assemble_name, bc_assemble_integer): Call + bc_emit_labelref with proper args. + + * function.c (setjmp_args_warning): Remove bogus arg. + +Mon Jul 10 18:20:54 1995 Fergus Henderson (fjh@cs.mu.oz.au) + + * gcc.c (p{fatal,error}_with_name, perror_exec): Quote filename. + +Mon Jul 10 18:12:51 1995 Gran Uddeborg (uddeborg@carmen.se) + + * i386/iscdbx.h (STARTFILE_SPEC): Handle -Xp. + +Wed Jul 5 02:42:17 1995 Per Bothner (bothner@spiff.gnu.ai.mit.edu) + + * cpphash.h (enum node_type): Remove unneeded and non-standard + forward declaration. + +Sat Jul 1 20:15:39 1995 Jim Wilson + + * mips/t-mips, mips/t-mips-gas (MULTILIB_*, LIBGCC, INSTALL_LIBGCC): + Delete. + + * sparc/sol2.h (LINK_SPEC): Revert March 16 change. Do not add -R + for each -L. + + * collect2.c (libcompare): Verify that file name extensions are valid. + Put files with invalid extensions last in the sort. + + * integrate.c (integrate_decl_tree): Set DECL_ABTRACT_ORIGIN before + pushdecl call for local variables. + +Sat Jul 1 08:13:38 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * cpplib.c (output_line_command): If not emitting #line directives + delay returning until after adjust_position has been called. + + * arm.md (mov{si,sf,df}cc): Call gen_compare_reg to generate + the condition code register. + +Sat Jul 1 06:55:09 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (decode_field_reference): New parm PAND_MASK. + (unextend): New parm MASK. + (fold_truthop): Pass new parms to decode_field_reference and unextend. + + * va-alpha.h (__va_tsize): Use __extension__ to avoid warning + on use of `long long'. + + * expr.h (NO_DEFER_POP): Do any pending stack adjusts. + + * recog.c (register_operand): Disallow subreg of reg not allowed to + change size. + +Thu Jun 29 05:51:57 1995 Jeff Law (law@snake.cs.utah.edu) + + * pa.md (reload addsi3): New pattern to avoid reload lossage + with register eliminations. + + * pa.c (output_cbranch): When checking for a jump to the given + insn's delay slot, handle the case where JUMP_LABEL for the + given insn does not point to the first label in a series of + labels. + (output_bb, output_dbra, output_movb): Likewise. + +Wed Jun 28 18:04:56 1995 Jeff Law (law@snake.cs.utah.edu) + + * pa.h (PIC_OFFEST_TABLE_REGNUM_SAVED): Define to %r4. + (CONDITIONAL_REGISTER_USAGE): Make it fixed when compiling + PIC code. + (INIT_EXPANDERS): Delete. + * pa.c (hppa_save_pic_table_rtx): Delete variable. + (hppa_expand_prologue): For PIC generation, copy the PIC + register into a fixed callee register at the end of the + prologue of non-leaf functions. + * pa.md (call expanders): Reload the PIC register from the + fixed callee saved register. Don't try to save the PIC + register before the call. + +Wed Jun 28 18:01:14 1995 Stan Cox (coxs@dg-rtp.dg.com) + + * m88k/dguxbcs.h (ASM_SPEC): Removed -h flag. + * m88k/dgux.h (ASM_SPEC): Likewise. + +Wed Jun 28 17:01:58 1995 David Edelsohn + + * rs6000.c (processor_target_table): Remove CPU name synonyms. + * rs6000.h (CPP_SPEC): Likewise. + * rs6000/sysv4.h (CPP_SPEC): Likewise. + (ASM_SPEC): Likewise. + * rs6000/sysv4le.h (CPP_SPEC): Likewise. + * rs6000/eabile.h (CPP_SPEC): Likewise. + * rs6000/powerpc.h (CPP_SPEC): Likewise. + (ASM_SPEC): Set assembler target according to compiler target. + * rs6000/aix3newas.h (CPP_SPEC): Likewise. + (ASM_SPEC): Likewise. + * rs6000/aix41.h (CPP_SPEC): Likewise. + (ASM_SPEC): Likewise. + +Wed Jun 28 16:25:53 1995 Gran Uddeborg (uddeborg@carmen.se) + + * i386/x-isc3 (INSTALL_HEADERS_DIR): Delete; done by configure. + +Wed Jun 28 16:10:47 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * xm-rs6000.h (alloca): Extern decl added for non-GNU compiler. + +Wed Jun 28 11:31:30 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cpplib.c (progname): Remove definition from here. + + * final.c (final_scan_insn): Fix error in last change. + + * rtlanal.c (reg_set_p_1): Now static; add extra parm. + + * stmt.c: Delete redundant forward decls. + (expand_anon_union_decl): Correctly call expand_decl. + + * toplev.c (strip_off_ending): Strip off any ending; don't + pretend we know what valid endings are. + + * svr4.h (ASM_OUTPUT_SECTION_NAME): Don't crash if DECL is null. + + * rs6000.md ({load,store}_multiple): Don't use indirect_operand + in define_insn; use explicit MEM of register_operand instead. + +Tue Jun 27 11:42:56 1995 Stephen L Moshier + + * i386/i386.c (print_operand, case `J'): Use jns for GE and js for + LT. + +Tue Jun 27 07:58:55 1995 Jason Merrill + + * expr.c (expand_expr, TARGET_EXPR): Only use original_target + if !ignore. + +Tue Jun 27 07:27:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (fold_truthop): Commute unextend and convert on + l_const and r_const. + + * c-common.c (decl_attributes, case A_CONSTRUCTOR, A_DESTRUCTOR): + Set TREE_USED. + + * final.c (final_scan_insn): Don't call alter_cond unless + condition is on cc0. + + * stmt.c (expand_asm_operands): Handle input operands that may not + be in a register. + +Mon Jun 26 19:23:05 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm/lib1funcs.asm (L_dvmd_tls): Renamed from L_divmodsi_tools. + * arm/t-semi (LIB1ASMFUNCS): Rename _dvmd_tls from _divmodsi_tools. + +Mon Jun 26 19:18:06 1995 Jim Wilson + + * unroll.c (find_splittable_regs): When completely unrolling loop, + check for non-invariant initial biv values. + +Mon Jun 26 19:13:54 1995 Gran Uddeborg + + * configure (i[345]86-*-isc*): Fix misspelled "rfile" to "ifile". + +Mon Jun 26 18:58:22 1995 Mike Stump + + * expr.c (expand_expr, case COND_EXPR): Protect the condition from + being evaluated more than once. + (do_jump, case TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR): Likewise. + +Mon Jun 26 18:52:36 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fixincludes (string.h): Fix return value for mem{ccpy,chr,cpy,set} + and str{len,spn,cspn} on sysV68. + +Mon Jun 26 06:54:50 1995 Michael Meissner (meissner@cygnus.com) + + * i386/osfrose.h (LONG_DOUBLE_TYPE_SIZE): Go back to making long + double == double. + +Thu Jun 22 19:14:41 1995 Pat Rankin (rankin@eql.caltech.edu) + + * make-cc1.com (if DO_LINK): Skip c-parse.* processing when + only relinking. + (gas_message): Update to reflect current version, and give + a different message if/when no version of gas is found.xo + +Thu Jun 22 18:52:37 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm/lib1funcs.asm (___modsi3): Correctly set SIGN register for + modulo involving negative numbers. + +Thu Jun 22 18:32:27 1995 Uwe Seimet (seimet@chemie.uni-kl.de) + + * xm-atari.h (HZ): Now 100 and don't define if already defined. + +Thu Jun 22 18:26:12 1995 Jeffrey A Law (law@snake.cs.utah.edu) + + * calls.c (expand_call): Correctly handle returning BLKmode + structures in registers when the size of the structure is not + a multiple of word_size. + * stmt.c (expand_return): Likewise. + + * pa-gux7.h (LIB_SPEC): Undefine before redefining. + * pa-hpux.h (LIB_SPEC): Likewise. + * pa-hpux7.h (LIB_SPEC): Likewise. + + * genmultilib: Work around hpux8 /bin/sh case bug. + + * pa.h (LIB_SPEC): Define to avoid -lg. + +Thu Jun 22 18:19:09 1995 Jason Merrill + + * expr.c (expand_expr, TARGET_EXPR): Use original_target. + + * collect2.c (locatelib): Fix parsing of LD_LIBRARY_PATH. + +Thu Jun 22 18:15:54 1995 Paul Eggert + + * configure: Create an empty Makefile.sed first, to work + around a Nextstep 3.3 bug. + +Thu Jun 22 18:03:44 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Makefile.in (STAGESTUFF): Add stamp-crt. + (crtbegin.o, crtend.o): Now depend on stamp-crt. + (stamp-crt): New rule, to actually build crt{begin,end}.o. + + * collect2.c (main): Unlink export_file before we return. + +Thu Jun 22 14:25:56 1995 Michael Meissner (meissner@cygnus.com) + + * rs6000.h (STRIP_NAME_ENCODING): Store NAME and strlen(NAME) into + local variables; cast result of alloca to avoid compiler warnings. + +Tue Jun 20 18:25:29 1995 Douglas Rupp (drupp@cs.washington.edu) + + * alpha/config-nt.sed, i386/config-nt.sed: Edit to add + a missing $(exeext) for CCCP. + +Tue Jun 20 18:18:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * protoize.c (default_include): Use name and two ints to be + compatible with definition of INCLUDE_DEFAULTS. + +Mon Jun 19 19:24:29 1995 Ted Lemon + + * mips/netbsd.h (ASM_DECLARE_FUNCTION_NAME): Don't emit function label. + +Mon Jun 19 18:34:55 1995 Jason Merrill + + * fixincludes: Don't define wchar_t under C++. + +Mon Jun 19 17:12:41 1995 Paul Eggert + + * cccp.c (collect_expansion): Work around enum bug in vax + ultrix 4.3 pcc. + * tree.c (simple_cst_equal): Likewise. + +Mon Jun 19 16:53:00 1995 Douglas Rupp (drupp@cs.washington.edu) + + * winnt/spawnv.c: New file. + +Mon Jun 19 16:30:29 1995 Glenn Brown + + * caller-save.c (save_call_clobbered_regs): If AUTO_INC_DEC, mark + register indicated by REG_INC notes as live so they will be saved. + +Mon Jun 19 16:21:12 1995 Jeffrey A Law (law@snake.cs.utah.edu) + + * pa.h (PRINT_OPERAND_ADDRESS, case LOW_SUM): Fix logic bug + in last change. + +Mon Jun 19 14:11:49 1995 Jim Wilson + + * integrate.c (integrate_decl_tree): Only set DECL_ABSTRACT_ORIGIN + if the decl returned by pushdecl is the one we started with. + + * mips.h (current_function_name): Delete declaration. + (ASM_DECLARE_FUNCTION_NAME): Don't set current_function_name. + * gnu.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + * mips.c (current_function_decl): Delete declaration. + (function_prologue): New variable fnname. Use it instead of + current_function_name. + (function_epilogue): Likewise. + +Mon Jun 19 13:13:15 1995 Richard Kenner + + * alpha.h (ASM_OUTPUT_ASCII): Always reset line count when + starting new line. + + * scan-decls.c (scan_decls): Fix typo when resetting PREV_ID_START. + + * i386/config-nt.sed, alpha/config-nt.sed: Change version to 2.7.1. + +Mon Jun 19 13:06:14 1995 DJ Delorie (dj@delorie.com) + + * msdos/top.sed: Support new build variables. + * msdos/configur.bat: Make options.h and specs.h. + Change realclean to maintainer-clean. + +Fri Jun 16 06:54:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Version 2.7.0 Released. + + * obstack.c: Always enable this code for now. + + * alpha.c (alpha_builtin_saveregs): Use ptr_mode and conversions + when need so works for both OSF and NT. + * va-alpha.h (__va_tsize): Round to long long not long. + +Thu Jun 15 17:54:52 1995 Bdale Garbee + + * configure (a29k-*-coff): Synonym for a29k-*-udi. + +Thu Jun 15 17:51:21 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * function.c (assign_parms): Do all conversions in CONVERSION_INSNS. + +Thu Jun 15 17:36:49 1995 Michael Meissner + + * reg-stack.c (record_reg_life): Call record_reg_life_pat with 0 + for douse argument so that USE's created to mark variables within + blocks don't get marked as set. + +Thu Jun 15 06:28:15 1995 Dennis Glatting (dennisg@CyberSAFE.COM) + + * configure: Change one sed command to work around m68k-next bug. + +Wed Jun 14 22:14:39 1995 Jason Merrill + + * collect2.c (main): Don't turn off auto_export because of -g. + (main): Ignore the argument to -o. + + * alpha.h (LINK_SPEC): Don't pass -init __main anymore. + * alpha/osf12.h (LINK_SPEC): Ditto. + * mips/iris5.h (LINK_SPEC): Ditto. + + * collect2.c (main): Place o_file after an initial .o (like crt0.o). + If we have LD_INIT_SWITCH, use init and fini functions for + executables, too. Specify the unique function names. + (write_c_file_stat): Fix the case of destructors but no constructors. + Don't include the generic-named functions for executables. + (write_c_file): If we have LD_INIT_SWITCH, always use + write_c_file_stat. + + * collect2.c (main): Also add _GLOBAL__D? to export list. + + * ginclude/iso646.h: Do nothing if compiled as C++. + +Wed Jun 14 17:39:10 1995 Roland McGrath (roland@gnu.ai.mit.edu) + + * c-common.c (format_char_info, case 'm'): Set type to void. + (check_format_info): If type is void, ignore operand. + +Wed Jun 14 17:04:10 1995 Paul F. Kunz (Paul_Kunz@SLAC.Stanford.EDU) + + * expr.c (expand_builtin_apply_args): Put back original + register save and restore order. + +Wed Jun 14 16:56:22 1995 Michael Meissner + + * rs6000/eabi.h (INVOKE__main): Define, so __eabi is called after + main's arguments are saved. + + * rs6000.c (output_prolog): Don't call __eabi here, let + compiler call it after the arguments to main are saved. + (output_{prolog,epilog}): Don't use functions under V.4 to save + and restore floating point registers. + +Wed Jun 14 16:52:12 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k/mot3300.h (PCC_BITFIELD_TYPE_MATTERS): Defined. + +Wed Jun 14 16:48:53 1995 Jerry Frain (jerry@tivoli.com) + + * Makefile.in (stage[1-4]): Correctly link `as', `ld', and `collect2'. + +Wed Jun 14 05:52:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * objc-act.c (hack_method_prototype): Set DECL_CONTEXT of parms. + + * expmed.c (emit_store_flag): Always set LAST. + + * c-decl.c (start_function): New parameter for attributes. + * c-tree.h (start_function): Likewise. + * c-lang.c (finish_file): Pass extra parm to start_function. + * objc-act.c (build_module_descriptor, really_start_method): Likewise. + * c-parse.in (fndef, nested_function, notype_nested_function): + Likewise. + + * function.c (assign_parms): Use convert_to_mode instead of + gen_lowpart when converting incoming parm. + +Tue Jun 13 19:10:32 1995 Richard Kenner + + * rs6000.md (decrement_and_branch): Finish last fix; update matching + constraint. + +Tue Jun 13 18:32:51 1995 Torbjorn Granlund + + * fold-const.c (fold): When converting a COND_EXPR to an ABS_EXPR, + get the types right for ABS_EXPR to work. + +Mon Jun 12 17:09:55 1995 Michael Tiemann (tiemann@axon.cygnus.com) + + * reorg.c (fill_simple_delay_slots): Set MAYBE_NEVER according to + code of TRIAL_DELAY, not TRIAL. + +Mon Jun 12 15:02:37 1995 Doug Evans + + * configure: Restore code to make ld symlink if ! use_collect2. + + * gcc.c (link_command_spec): Undo patch of May 11. + -nostdlib implies -nostartfiles again. + * dsp16xx.h (CROSS_LINK_SPEC): Likewise. + * i386/freebsd.h (LINK_SPEC): Undo patch of May 24. + Don't pass "-e start" if nostdlib. + * i386/sun.h (LINK_SPEC): Likewise. + * m68k/sun2o4.h (LINK_SPEC): Likewise. + * m68k/sun3.h (LINK_SPEC): Likewise. + * m68k/vxm68k.h (LINK_SPEC): Likewise. + * mips/netbsd.h (LINK_SPEC): Likewise. + * config/netbsd.h (LINK_SPEC): Likewise. + * rs6000/mach.h (LINK_SPEC): Likewise. + * sparc.h (LINK_SPEC): Likewise. + * sparc/vxsparc.h (LINK_SPEC): Likewise. + + * gcc.c (link_command_spec): New argument -nodefaultlibs. + +Sun Jun 11 20:47:53 1995 Stephen L Moshier (moshier@world.std.com) + + * Makefile.in (fix-header.o): Depends on xsys-protos.h. + +Sun Jun 11 15:07:58 1995 Tim Carver (timc@ibeam.intel.com) + + * reload1.c (emit_reload_insns): Don't call HARD_REGNO_NREGS + on psuedo when clearing reg_last_reload_reg. + +Sun Jun 11 14:07:05 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md ({add,sub}di{_mem,3}): Patterns merged. + +Sun Jun 11 13:43:26 1995 Torbjorn Granlund + + * m68k.md (cmpdi matcher): Set cc_status before returning. + + * config/xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Define. + +Sun Jun 11 13:38:49 1995 Jason Merrill + + * fixincludes (math.h): Keep declaration of abs on HPUX. + +Sun Jun 11 12:31:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stor-layout.c (variable_size): Do nothing if SIZE is constant. + + * stmt.c (expand_asm_operands): See if output operand permits + register. If not, mark output addressable, call expand_operand + on it, and give error if not MEM. + + * function.c (assign_parms): Handle promotions of both + passed and nominal modes separately and insert needed conversions. + (promoted_input_arg): Return 0 if nominal and passed modes differ. + + * stmt.c (all_cases_count, case INTEGER_TYPE): Fix typo in checking + for integer bounds. + +Sat Jun 10 08:55:25 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * libgcc2.c (_floatdidf): Correctly set float sizes. + + * c-decl.c (c_decode_option, case "-Wall"): Don't set extra_warnings. + + * Makefile.in (cpplib.o, fix-header.o): Update dependencies. + (cpperror.o, cppexp.o, cpphash.o): New rules, to show .h dependencies. + +Fri Jun 9 18:06:10 1995 Doug Evans + + * cse.c (cse_basic_block): Fix test for whether block ends with a + barrier. Return next insn, not 0, if block ends in a barrier. + +Fri Jun 9 17:58:29 1995 Paul Eggert + + * fold-const.c (lshift_double): Replace `&' with `%' to fix typo. + ([lr]shift_double): Truncate shift count only if SHIFT_COUNT_TRUNCATED. + Remove unnecessary `count >= prec' test. + + * cexp.y (left_shift): Ignore integer overflow. + + * cexp.y (skip_evaluation): New variable. + (&&, ||, ?:): Increment it in unevaluated subexpressions. + (/, %, integer_overflow): Suppress diagnostics if skip_evaluation != 0. + (yyerror): Clear skip_evaluation. + +Fri Jun 9 17:49:05 1995 Torbjorn Granlund + + * m68k.md (tstdi): Rewrite. + +Fri Jun 9 17:28:55 1995 Per Bothner + + * scan-decls.c (scan_decls): Handle declarations with + multiple comma-separated declarators. + +Thu Jun 8 19:16:12 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * arm.md (mov[sd]f expands): Don't allow fp constants in pseudos + when TARGET_SOFT_FLOAT. + +Thu Jun 8 19:11:43 1995 Jim Wilson + + * expmed.c (store_split_bit_field): When adjust arg in + BYTES_BIT_ENDIAN case, use number of bits in arg for MEM operands + and BITS_PER_WORD for other operands. + (extract_fixed_bit_field): Undo last change. + + * unroll.c (verify_addresses): New function. + (find_splittable_givs): Use it instead of memory_address_p. + +Thu Jun 8 18:58:18 1995 Torbjorn Granlund + + * expmed.c (expand_divmod): Always check result of emit_store_flag. + +Thu Jun 8 12:02:34 1995 David D Zuhn (zoo@armadillo.com) + + * cpplib.c (cpp_push_buffer): Include filename in error message. + +Thu Jun 8 11:53:45 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * function.c (assign_parms): Don't call promote_mode on arg + unless PROMOTE_FUNCTION_ARGS defined. + + * rs6000.md (decrement_and_branch): Ensure label is operand 0. + + * rs6000.md (aux_truncdfsf2): New pattern. + (movsf): Use it instead of invalid SUBREG and truncdfsf2. + + * varasm.c (assemble_name): Disable warn_id_clash around + get_identifier call. + +Wed Jun 7 17:22:25 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * configure (gdb_needs_out_file_path): New variable. + (m68k-motorola-sysv): Set gdb_needs_out_file_path if not using gas. + (.gdbinit): If gdb_needs_out_file_path is set, add a 'dir' command + for $(out_file). + +Wed Jun 7 17:17:19 1995 Torbjorn Granlund + + * fold-const.c (fold): When folding `<' type nodes, make true_value + and false_value have correct types. + +Wed Jun 7 05:06:42 1995 Jason Merrill + + * collect2.c (COFF scan_prog_file): Use the AIX duplicate entry. + +Tue Jun 6 18:43:09 1995 Jeffrey A Law (law@snake.cs.utah.edu) + + * pa.h (FUNCTION_ARG_CALLEE_COPIES): Define. + +Tue Jun 6 18:21:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case PLACEHOLDER_EXPR): Consider two types + identical if their TYPE_MAIN_VARIANTs are the same. + + * c-decl.c (start_decl): Set DECL_COMMON before calling + decl_attributes. + + * a29k.c (print_operands): Cast args to bcopy to char *. + + * c-decl.c (duplicate_decls): Don't clear DECL_CONTEXT of + new decl if it is a function. + +Tue Jun 6 17:57:44 1995 Eberhard Mattes (mattes@azu.informatik.uni-stuttgart.de) + + * gcc.c (do_spec_1, case 'g'): Handle %O as suffix if MKTEMP_EACH_FILE. + +Tue Jun 6 17:53:05 1995 Michael Meissner + + * rs6000.c (expand_block_move): Update source and destination pointers + inside the loop moving the bytes, not outside. + +Tue Jun 6 14:58:37 1995 Andreas Schwab + + * m68k.h (CONDITIONAL_REGISTER_USAGE): Don't mark pic reg as fixed. + * m68k.c (finalize_pic): Emit USE insn at start and end of function. + +Tue Jun 6 13:46:57 1995 Jim Wilson + + * sh.c (print_operand): Check for annulled branches. + (output_movedouble): Handle SUBREG addresses. + (output_branch): Handle annulled branches. + (sh_expand_prologue): Correct number of saved registers for + varargs functions. + * sh.h: Add some comments. + * sh.md: Add some comments. Cleanup formatting. + (type attribute): Add pstore and call. + (return define_delay): Reorganize to make clearer. + (call/sfunc define_delay): Define. + (cbranch define_delay): Define to have annul-true delay slot. + (subsi3): Use arith_reg_operand for operand 2. + (shift patterns): Use const_int_operand instead of immediate_operand + for shift counts. + (push): Add pstore constraint case. + (movsi_i): Move t/z constraint pair to the front of the list. + (calli, call_valuei): Add "call" attribute. + +Mon Jun 5 19:23:13 1995 Jim Wilson + + * sched.c (attach_deaths): In last change, use find_reg_note instead + of find_regno_note. + +Mon Jun 5 19:17:31 1995 Tom Quiggle (quiggle@lovelace.engr.sgi.com) + + * mips/iris5.h (MACHINE_TYPE): Say "IRIX 5.x", not "5.0". + (NO_DOLLAR_IN_LABEL): Undefine. + * mips.h (sdb_begin_function_line): New declaration. + (PUT_SDB_FUNCTION_END): New definition. + +Mon Jun 5 18:56:10 1995 Michael Meissner + + * rs6000.c (expand_block_move): Don't do block moves where we clobber + fixed numbers of regs, instead move just 1-8 bytes at a time. + + * Makefile.in (STAGESTUFF): Copy files produced by -da and + -save-temps to the stage subdirectories. + +Mon Jun 5 08:18:46 1995 Torbjorn Granlund + + * combine.c (reg_dead_at_p): When scanning backwards, stop at BARRIER. + + * m68k.c (print_operand): Handle 'R' for registers. + * m68k.md (cmpdi): Rewrite to avoid bogus matching constraints. + + * optabs.c (expand_binop): In last change, don't defererence TARGET + if it is 0. + + * pa.md (movsicc): Use MATCH_DUP for operand 4 and 5. + +Mon Jun 5 08:14:56 1995 Jeffrey A Law (law@cs.utah.edu) + + * pa.c (hppa_encode_label): Allocate stuff on permanent_obstack + rather than via malloc. + + * c-common.c (decl_attributes): Fix typo in size passed to alloca. + +Mon Jun 5 08:10:55 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.md: Use "some_operand" for patterns valid only during + reload and meant to handle adding more PLUS operators during + register elimination. + +Mon Jun 5 07:31:53 1995 Stephen L Moshier (moshier@world.std.com) + + * cse.c (simplify_unary_operation, case FLOAT, UNSIGNED_FLOAT): + Truncate to requested mode. + +Sat Jun 3 22:08:51 1995 Jim Wilson + + * sched.c (attach_deaths): Don't add a REG_DEAD note if a REG_UNUSED + note is already present. + +Sat Jun 3 18:36:57 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * pa.h (hppa_builtin_saveregs): Add declaration. + +Sat Jun 3 18:11:26 1995 Jason Merrill + + * Makefile.in (scan-decls.o): Depends on cpplib.h. + +Fri Jun 2 19:23:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * optabs.c (expand_binop): Don't use non-REG TARGET in 2-word case. + +Thu Jun 1 19:30:30 1995 Tor Egge (tegge@flipper.pvv.unit.no) + + * m88k.h (RETURN_POPS_ARGS): New argument. + * m88k/dolphin.ld: Added start of comment. + +Thu Jun 1 19:12:28 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure (a29k-*-bsd*): Fix typo in last change. + +Thu Jun 1 18:51:53 1995 Jim Wilson + + * expmed.c (extract_fixed_bit_field): For REG case, compute total_bits + from mode instead of assuming BITS_PER_WORD. + +Thu Jun 1 18:34:31 1995 Michael Meissner + + * rs6000.h (FIXED_R13): Default to 0. + ({FIXED,CALL_USED}_REGISTERS): Use FIXED_R13 for register 13. + * sysv4.h (FIXED_R13): Define to be 1. + +Wed May 31 20:57:26 1995 Torbjorn Granlund + + * m68k.md ([su]mulsi3_highpart): Pass correct number of arguments to + const_uint32_operand. + * m68k.c (const_uint32_operand): Reject negative numbers. + + * expmed.c (expand_mult_highpart): Use wide_op1 for all multiplies. + (expand_divmod): Undo Nov 12 change. Instead, add special case + for division by MIN_INT in signed TRUNC_DIV_EXPR case. + +Wed May 31 20:44:21 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (one_cmpldi2): New pattern. + ({a,l}shrdi{3,_const}): Allow 63 as shift count. + +Wed May 31 14:56:31 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * varasm.c (assemble_start_function, assemble_variable): + Make sure first_global_object_name is in permanent obstack. + + * reload1.c (alter_reg): Clean up setting of RTX_UNCHANGING_P + when making a MEM. + + * reorg.c (struct resources): New field unch_memory. + (CLEAR_RESOURCES, mark_target_live_regs, dbr_schedule): Clear it. + (mark_{referenced,set}_resources, redundant_insn): Set it. + (fill_simple_delay_slots): Likewise. + (resource_conflicts_p): Test it. + + * unroll.c (copy_loop_body): Fix typo in call to sets_cc0_p. + + * integrate.c (output_inline_function): Don't call expand_function_end. + + * calls.c (prepare_call_address): Only call use_reg on + static_chain_rtx if it is a REG. + + * configure (a29k-*-bsd*): Use t-a29k. + * t-a29k: New file. + * a29k/t-a29kbare (LIBGCC1_TEST): New null definition. + * a29k/t-vx29k (LIBGCC1_TEST): Likewise. + +Wed May 31 14:17:42 1995 Jeffrey A Law (law@snake.cs.utah.edu) + + * configure (hppa*-*-bsd*): Do not run fixincludes. + (hppa*-*-osf*): Likewise. + (hppa*-*-lites*): Likewise. + + * pa.h (PRINT_OPERAND_ADDRESS): Use "RR'" rather than "R'" for + symbolic addresses. + * pa.md (symbolic HIGH patterns): Likewise. + (symbolic LO_SUM pattern): Likewise. + +Wed May 31 14:11:53 1995 Michael Meissner + + * rs6000.md (all movstri recognizers): Eliminate updating the pointers. + * rs6000.c (expand_block_move): Don't pass argument of # bytes to + increment pointers by to movstrsi expanders. + + * rs6000.c (rs6000_override_options): Fix typo with -mstring handling. + + * rs6000.h (TARGET_SWITCHES): Set MASK_STRING_SET explicitly + if -mno-string, so that it can override the processor default. + +Wed May 31 07:31:53 1995 Jason Merrill + + * c-common.c (truthvalue_conversion, BIT_AND_EXPR): Make sure that + the result has boolean_type_node. + +Tue May 30 19:03:21 1995 J.T. Conklin + + * stddef.h: Undefine _BSD_XXX_T_ if _GCC_XXX_T is defined on BSD + Net/2 derived systems. + +Tue May 30 08:17:37 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (decrement_and_branch_until_zero): Operand 0 constraint + changed from "+g" to "+d*am". + (similar anonymous HImode pattern): Likewise. + + * m68k.md (tstdi): Use tst/subx #0 instead of neg/negx. + Allow "a" and ">" for operand 0. + +Mon May 29 19:24:43 1995 Niklas Hallqvist (niklas@appli.se) + + * m68k.md (addsi_lshrsi_31): Use match_dup, not constraint "1", + for matching inputs. + +Mon May 29 12:39:58 1995 Allen Briggs + + * i386/isc.h ({STARTFILE,LIB,CPP}_SPEC): Handle -Xp like -posix. + * i386/x-isc3 (X_CFLAGS): Add -Xp. + +Mon May 29 12:28:41 1995 J.T. Conklin (jtc@cygnus.com) + + * configure (sparc-*-netbsd): Add missing asterisk at end. + +Mon May 29 08:55:48 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (recog_for_combine): New parm PADDED_SCRATCHES; set it. + (try_combine): Accumulate number of scratches and update max_scratch. + (simplify_set): Add extra parm to recog_for_combine. + + * romp.md (call): Put USE for r0 in CALL_INSN; call call_internal + to emit insn. + (call_internal): New name for anonymous call. + (call_value, call_value_internal): Likewise. + + * winnt/xm-winnt.h: Protect most definitions with #ifndef. + * alpha/xm-winnt.h: Include alpha/xm-alpha.h, then winnt/xm-winnt.h. + (POSIX): Undefine. + * xm-alpha.h: Don't include alloca.h for winnt. + +Sun May 28 18:34:01 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure: Make sed commands more uniform. + + * Makefile.in: Properly use $(srcdir) for files that have it + in their reference as a target of a rule. + (libgcc1.a): Add missing RANLIB_TEST use. + + * stmt.c (expand_computed_goto): Call do_pending_stack_adjust. + +Sun May 28 18:08:41 1995 Torbjorn Granlund + + * m68k.md (divmodhi4, udivmodhi4): Use "dmsK" for operand 2. + +Fri May 26 17:01:22 1995 Paul Eggert + + * fixincludes: Fix bogus recursive in NEWS-OS 4.0C. + +Fri May 26 08:02:14 1995 Michael Meissner (meissner@cygnus.com) + + * c-typeck.c (initializer_constant_valid_p): For the CONSTRUCTOR + case, if the type is a record, recurse, just like for unions. + +Thu May 25 07:56:14 1995 Paul Eggert + + * fixincludes: Add `sel', `tahoe', `r3000', `r4000' to the + list of pre-ANSI symbols that need to be surrounded with __ __. + Allow white space between `#' and `if' when looking for lines to patch. + + * objc/sarray.h (PRECOMPUTE_SELECTORS, struct soffset): + Use #ifdef __sparc__, not sparc. + + * m68k.md (addsi_lshrsi_31, ashldi_const, ashrdi_const, lshrdi_const): + Replace `mov' with `move'. + +Thu May 25 07:35:37 1995 Allen Briggs + + * libgcc2.c (L_eh, i386): Remove in-line comments in assembly + code--the '#' character is not valid for the SYSV as. + +Thu May 25 07:28:54 1995 Pat Rankin (rankin@eql.caltech.edu) + + * Makefile.in (BC_ALL): Restore it from May 22 change; vms uses it. + (STAGESTUFF): Use it. + +Thu May 25 07:11:56 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (alpha_emit_set_const): Don't call expand_binop for + other than add if SImode and can't create pseudos. + +Wed May 24 21:38:24 1995 Jim Wilson + + * sched.c (reemit_notes): New function. + (schedule_block): Call reemit_notes twice. Reorganize code for + handling SCHED_GROUP_P insns, so that reemit_notes works. + + * sh/sh.c (shiftcosts, genshifty_op): Add SH3 support. + * sh/sh.md (ashlsi3, lshrsi3): Add SH3 support. + (ashlsi3_d, ashrsi3_d, lshrsi3_d): New patterns for SH3. + (ashrsi2_31): Remove r/!r constraint. + +Wed May 24 17:00:47 1995 Jason Merrill + + * tree.c (type_list_equal): Call simple_cst_equal before checking + types. + +Wed May 24 16:49:49 1995 Douglas Rupp (drupp@cs.washington.edu) + + * Makefile.in (libgcc2.a): Handle case of separate srcdir. + +Wed May 24 16:22:01 1995 Paul Eggert + + * configure: Define $(MAKE) if `make' doesn't. + +Wed May 24 15:50:51 1995 Doug Evans + + * dsp16xx.h (CROSS_LINK_SPEC): ENDFILE_SPEC moved to -nostartfiles. + * i386/freebsd.h (LINK_SPEC): Don't pass "-e start" if nostartfiles + rather than nostdlib. + * i386/sun.h (LINK_SPEC): Likewise. + * m68k/sun2o4.h (LINK_SPEC): Likewise. + * m68k/sun3.h (LINK_SPEC): Likewise. + * m68k/vxm68k.h (LINK_SPEC): Likewise. + * mips/netbsd.h (LINK_SPEC): Likewise. + * config/netbsd.h (LINK_SPEC): Likewise. + * rs6000/mach.h (LINK_SPEC): Likewise. + * sparc.h (LINK_SPEC): Likewise. + * sparc/vxsparc.h (LINK_SPEC): Likewise. + + * m88k/m88k.h (FUNCTION_ARG_BOUNDARY): Use GET_MODE_BITSIZE. + +Wed May 24 15:44:04 1995 Jason Merrill + + * fold-const.c (fold): Make sure that a folded TRUTH_NOT_EXPR + retains the same type. + + * c-common.c (truthvalue_conversion): Also accept TRUTH_NOT_EXPR. + +Wed May 24 15:41:51 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cplus-dem.c (strstr, strncmp, strlen): Remove declarations. + + * tree.c (type_list_equal, simple_cst_list_equal, index_type_equal): + Check for simple_cst_equal return value of -1. + +Wed May 24 10:05:24 1995 Michael Meissner + + * libgcc1-test.c (start, _start): Provide declarations, so that + the GNU linker doesn't give a warning message about defaulting the + start address. + + * rs6000/sysv4.h (STRIP_NAME_ENCODING): Redefine back to the + original defination, rather than the defination used in rs6000.h. + (ASM_OUTPUT_SOURCE_LINE): Use STRIP_NAME_ENCODING. + * rs6000.h (STRIP_NAME_ENCODING): Skip leading '*'. + + * rs6000.h (MASK_STRING_SET, TARGET_STRING_SET): Add target + flags bit for whether -mstring was actually used. + (TARGET_SWITCHES): Add MASK_STRING to all power targets. Set + MASK_STRING_SET for -mstring and -mno-string. + (TARGET_DEFAULT): Add MASK_STRING. + + * rs6000.c (rs6000_override_options): Add MASK_STRING to + all power targets. Make an explicit -mstring/-mno-string override + the -mcpu=processor default. + + * rs6000/eabile.h (CPP_SPEC): Copy from sysvle.h to provide the + appropriate little endian defaults. + + * rs6000/sysv4.h (ASM_OUTPUT_SOURCE_LINE): Use assemble_name to + output the canonical name. + +Wed May 24 01:21:15 1995 Jason Merrill + + * rs6000.h (STRIP_NAME_ENCODING): Define. + (RS6000_OUTPUT_BASENAME): Use it. + +Tue May 23 19:54:21 1995 Doug Evans + + * gcc.c (link_command_spec): Move ENDFILE_SPEC from -nostdlib + to -nostartfiles. + +Tue May 23 17:01:50 1995 Jim Wilson + + * alpha.md (negsi2-2): Change output pattern to #. + + * mips.c (embedded_pic_offset): Output RTL to initialize + embedded_pic_fnaddr_rtx. + (mips_finalize_pic): Delete. + * mips.h (mips_finalize_pic): Delete declaration. + (FINALIZE_PIC): Delete. + (INIT_EXPANDERS): Clear embedded_pic_fnaddr_rtx. + * mips.md (get_fnaddr): Add = to output contraint. + + * sh.c (shift_amounts): Correct entry for shifts by 29. + * sh.md (sett): New pattern. + (movsi_i): Change source constraint for move to T reg to be 'z'. + + * mips/ecoff.h (STARTFILE_SPEC): Define to null string. + * mips/elfl.h, mips/elfl64.h: Correct typo in comment. + + * mips/elflorion.h, mips/elforion.h (MIPS_CPU_DEFAULT): Delete. + * mips.c (override_options): Delete #ifdef MIPS_CPU_DEFAULT code. + Add #ifdef MIPS_CPU_DEFAULT_STRING code before the first + mips_cpu_string test. + +Tue May 23 07:22:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * romp.c (hash_rtx): Avoid warning on int-to-pointer conversion. + (output_fpops): Cast args to bcopy to char *. + + * cpplib.c (initialize_builtins): Add missing parm to timestamp call. + + * Makefile.in (install-libobjc): Don't depend on libobjc.a. + + * c-parse.in: Objc shift/reduce conflicts now 48. + (parm): Use setspecs/restore here. + (parmlist_or_identifiers): Not here. + +Mon May 22 19:30:30 1995 Doug Evans + + * h8300.md (movsf_h8300h): Add missing post-inc case to constraints. + +Mon May 22 14:38:36 1995 Michael Meissner + + * rs6000.c (rs6000_override_options): Do SUBTARGET_OVERRIDE_OPTIONS + here. + * rs6000.h (OVERRIDE_OPTIONS): Not here. + + * rs6000.c (expand_block_move): Handle moves without string + instructions by generating a series of loads and stores. + (output_prolog): Support -mno-toc on V.4 and eabi systems. + + * rs6000/sysv4.h (TARGET_SWITCHES): Add -mtoc and -mno-toc. + (SUBTARGET_OVERRIDE_OPTIONS): Add some warnings for incompatible + switches. + (TOC_SECTION_FUNCTION): Make -mno-toc like -mrelocatable in that + we don't put the minimal toc pointer in the global toc section. + (LINK_SPEC): Use -oformat to set link output format, not -m. + + * rs6000/t-eabigas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build + libgcc.a variants with -mno-toc support. + * rs6000/t-ppcgas (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Ditto. + +Mon May 22 07:10:52 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cplus-dem.c (mystrstr): Replacement for strstr. + + * configure: Split up long sed command. + * Makefile.in (SYMLINK): Deleted; unused. + (oldobjext): Deleted; no longer used. + (FLAGS_TO_PASS): Include objext and exeext. + (STAGESTUFF, protoize.o, unprotoize.o): Use $(objext), not .o. + (test_protoize_simple, compare{,3}, gnucompare{,3}): Likewise. + (STAGESTUFF, specs, gcc-cross, collect2): Add missing $(exeext). + (libgcc1.null, libgcc[12].a, stage[1-4]): Likewise. + (xgcc, cc1, cc1obj, enquire): Use $@ instead of filename for -o value. + (collect2, mips-tfile, mips-tdump, gen*): Likewise. + (bi-arity, bi-opcode, bi-opname, cccp, cppmain): Likewise. + (protoize, unprotoize, gen-protos, fix-header): Likewise. + (crtbegin.o, crtend.o): Don't use -o; move output to proper + filename (using objext) instead. + (BI_ALL, BC_ALL, bytecode): Deleted; unused. + (bi-*.o, cexp.o, stamp-{proto,fixinc}): Remove unneeded $(srcdir). + (getopt{,1}.o, SYSCALLS.c.X): Likewise. + (install-driver): New target. + (install-normal): Depend on it. + (install-common): Don't depend on xgcc. + (maketest): Deleted; no longer used. + (stage[1-4]): Use name collect-ld, not real-ld. + (risky-stage[1-4]): Use stage[1-4] as dependencies; don't copy. + * alpha/config-nt.bat, i386/config-nt.bat: Make {,h,t}config.h + and tm.h by writing a single #include line. + Update way specs.h and options.h are written. + * alpha/config-nt.sed, i386/config-nt.sed: Set new variables + into Makefile. + Build winnt.obj. + Edit CCCP definition. + * alpha/x-winnt, i386/x-winnt (oldobjext): Deleted. + Add rules for .c.obj, .adb.obj, and .ads.obj. + (LIB2FUNCS_EXTRA, spawnv.o): New rules. + * i386/x-winnt (objext): Now .obj, not .o. + + * gcc.c (HAVE_OBJECT_SUFFIX): New macro. + (process_command): Convert x.o to x.foo for OBJECT_SUFFIX of ".foo". + (do_spec_1): Avoid shadow variable "i" and always use for loop var. + + * c-decl.c (finish_decl_top_level): Removed; no longer used. + * objc-act.c: Numerous formatting changes. + (NULLT): Deleted; all uses changed to NULL_TREE. + (get_{static,object}_reference, objc_add_static_instance): + Use push_obstacks instead of saving obstacks manually. + (build_{selector,class}_reference_decl): Likewise. + (build_objc_string_decl, build_protocol_reference): Likewise. + (comp_{method,proto}_with_proto): Likewise. + (create_builtin_decl, synth_module_prologue): Set DECL_ARTIFICIAL + for internal objects. + (build_{selector,class}_reference_decl, add_objc_decls): Likewise. + (generate_objc_symtab_decl, build_module_descriptor): Likewise. + (build_protocol_reference): Likewise. + (build_objc_string_decl, synch_forward_declarations): Likewise. + Delete call to end_temporary_allocation. + (generate_static_references, generate_strings): Likewise. + (build_selector_translation_table, generate_category): Likewise. + (generate_{ivars,protocol}_list, build_protocol_reference): Likewise. + (build_objc_string_object): If next_runtime, put everything in + permanent obstack. + (objc_add_static_instance): Use build_decl instead of start_decl + and finish_decl_top_level. + (build_{class_reference,objc_string}_decl): Clear DECL_CONTEXT. + (start_class): Exit with FATAL_EXIT_CODE, not 1. + (add_objc_decls): Don't set DECL_IN_SYSTEM_HEADER. + + * tree.c (valid_machine_attribute): Handle attribute on + pointer-to-function types. + +Sun May 21 17:16:37 1995 J. T. Conklin + + * mips/netbsd.h (HAVE_STRERROR): Remove. + * mips/xm-netbsd.h: New file. + * mips/t-mips-netbsd: Deleted. + * configure (mips-dec-netbsd): Use xm-netbsd.h and t-libc-ok. + +Sun May 21 17:16:37 1995 Arne H. Juul (arnej@pvv.unit.no) + + * mips/netbsd.h: Use __start as entry point. Ifdef some + paths on CROSS_COMPILE. + +Sun May 21 08:39:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in (datadef, fndef, ivar_decl, mydecls): + Restore declspec_stack since setspecs is used. + (parmlist_or_identifiers): Use setspecs before parsing parms + and restore after parsing parms. + +Sun May 21 01:04:52 1995 Jeffrey A. Law + + * pa.c (hppa_encode_label): New variable "permanent" to + where/how memory is allocated for the new label. All + callers changed. + +Sat May 20 16:53:30 1995 Mike Meissner + + * rs6000.md (insv, extz): Fail if the structure is QI or HI reg to + avoid paradoxical subreg's being created in RTL phase, which uses + SImode to load from memory if structure is later moved to stack. + +Sat May 20 06:44:59 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (udivmodhi4): Output "divu" instead of "divs". + +Sat May 20 06:11:32 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * reload.c (push_reload): Don't reload inside a SUBREG + when SUBREG_WORD is nonzero. + + * c-decl.c (shadow_tag_warned): Don't warn about useless keyword + if in system header file. + + * tree.c (simple_cst_equal): Don't look at language-specific + nodes since we don't know what's in them. + + * cpperror.c: #include config.h before any other .h file. + * collect2.c: Likewise. + + * i386/config-nt.bat: Add missing ^M on two lines. + Add case for Fortran; fix typo in Ada case. + * alpha/config-nt.bat: Add case for Fortran; fix typo in Ada case. + + * m68k/t-next (LIBGCC1, CROSS_LIBGCC1): Make not, not "libgcc1.null". + (OTHER_FIXINCLUDES_DIRS, LIMITS_H_TEST): Delete from here. + * m68k/x-next (OTHER_FIXINCLUDES_DIR, LIMITS_H_TEST): Move to here. + +Fri May 19 19:30:20 1995 Stan Cox (gcc@dg-rtp.dg.com) + + * crtstuff.c: Added reference to INIT_SECTION_PREAMBLE for systems that + do something which must be undone prior to __do_global_ctors. + +Fri May 19 19:27:08 1995 Alan Modra + + * i386/linux-aout.h (CPP_SPEC): Add defines for -fPIC. + * i386/linux-oldld.h (CPP_SPEC): Likewise. + +Fri May 19 17:46:28 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * collect2.c (strstr): Deleted. + * cplus-dem.c (strstr): Define ifndef POSIX. + +Fri May 19 11:16:51 1995 Per Bothner + + * cpplib.c (collect_expansion): Don't escape '@' inside string. + +Fri May 19 06:59:21 1995 Pat Rankin (rankin@eql.caltech.edu) + + * vmsconfig.com (process_objc_lib, configure_makefile): New routines. + (bc_all.list, ./vax.md, objc-objs.opt, objc-hdrs.list): New files + created at config time. + (bc_all.opt, ./md.): No longer created. + * make-cc1.com: Handle revised filenames from vmsconfig.com; + (DO_OBJCLIB): New variable, plus code to compile objc/*.{c,m}. + +Wed May 17 16:15:31 1995 Torbjorn Granlund + + * i960.c (i960_output_ldconst): New code for XFmode. + Also, move SFmode code to immediately after DFmode code. + (S_MODES, D_MODES): Handle XFmode. + (XF_MODES): Was TF_MODES, handle XFmode instead of TFmode. + (hard_regno_mode_ok): Replace TFmode with XFmode. + (i960_output_long_double): New function. + + * i960.h (DATA_ALIGNMENT): Define. + (ROUND_TYPE_ALIGN): Align XFmode scalars at 128 bit boundaries. + (ROUND_TYPE_SIZE): Round up the size of XFmode objects to 128 bits. + (CONST_DOUBLE_OK_FOR_LETTER_P): Use CONST0_RTX and CONST1_RTX + so that all FP modes are recognized. + (ASM_OUTPUT_LONG_DOUBLE): Define. + + * i960.md: Change all TFmode patterns to have XFmode. + (movxf recognizer, frame version): Use movt, ldt, and stt. + (movxf recognizer, non-frame version): Delete. + (extenddfxf2): Delete * before f constraint. + (extendsfxf2): Likewise. + +Wed May 17 17:53:35 1995 Jim Wilson + + * unroll.c (unroll_loop): Increment copy_start_luid if copy_start + is loop_start. + +Wed May 17 17:44:57 1995 Lee Iverson + + * fold-const.c (invert_truthvalue, case CLEANUP_POINT_EXPR): New case. + +Tue May 16 18:51:16 1995 Michael Meissner + + * rs6000/rs6000.h (TARGET_SWITCHES): Add -mstring to enable string + instructions, and -mno-string to disable them. + (MOVE_MAX): Don't test TARGET_MULTIPLE anymore. + (MAX_MOVE_MAX): Set to 8, not 16. + (expand_block_move): Add declaration. + + * rs6000/rs6000.c (expand_block_move): New function to expand + block moves when -mstring is used. + + * rs6000/rs6000.md (movti): Use TARGET_STRING, not TARGET_MULTIPLE. + (load_multiple, store_multiple): Ditto. + (string insns): Add 8, 6, 4, 2, and 1 register variants for using + the native string instructions if -mstring. + + * rs6000/sysv4.h (CPP_SPEC): If little endian, define + _LITTLE_ENDIAN and set littleendian assertion. If big endian, + define _BIG_ENDIAN and set bigendian assertion. + * rs6000/sysv4le.h (CPP_SPEC): Copy from sysv4.h, and change + default to little endian. + + * rs6000/rs6000.c (override_options): Check for -mmultiple and + -mstring on little endian systems here. + * rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't do the check + here. + +Tue May 16 18:36:41 1995 Douglas Rupp (drupp@cs.washington.edu) + + * alpha.c: Changed WINNT to _WIN32. + * alpha/config-nt.bat, i386/config-nt.bat: Added commands to + generate specs.h and options.h. + * i386/config-nt.sed: Changed link32 to link. + * winnt/ld.c (main): Removed call to free. + * configure.bat: Added line to echo usage on invalid input. + * gcc.c (fix_argv): Removed call to free. + * gcc.c, getpwd.c, protoize.c, sdbout.c: Changed WINNT to _WIN32. + * toplev.c: Likewise. + +Tue May 16 18:04:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * toplev.c (pfatal_with_name, fatal_io_error, vfatal): + Use FATAL_EXIT_CODE instead of magic number. + * cccp.c, cpplib.c, cpplib.h: Use FATAL_EXIT_CODE instead + of FAILURE_EXIT_CODE. + * fix-header.c, gen-protos.c: Likewise. + * cpperror.c, cppmain.c: Likewise. + Include config.h #ifndef EMACS. + * xm-alpha.h, xm-rs6000.h, xm-vms.h (FAILURE_EXIT_CODE): Remove. + +Tue May 16 17:46:57 1995 Adam Fedor + + * objc/archive.c (__objc_write_class): Write class version. + (__objc_write_selector, objc_{write,read}_selector): Handle null + selector. + + * objc/sarray.h (struct sarray): Make capacity size_t. + * objc/sarray.c (sarray_realloc): Make array index variables size_t. + +Tue May 16 06:59:08 1995 Paul Eggert + + * dsp16xx.c (print_operand_address): Fix misspellings in messages. + * i370/mvs.h (FUNCTION_PROFILER): Likewise. + * mips-tdump.c (type_to_string): Likewise. + * print-tree.c (print_node): Likewise. + + * protoize.c (edit_fn_definition): Fix mispelled local `have_flotsam'. + + * objc/sendmsg.c (__objc_init_install_dtable): Fix misspelling + in name of local label `already_initialized'. + + * winnt/winnt.h (STDC_VALUE): Was misspelled. + + * m68k/ccur-GAS.h (FUNCTION_BOUNDARY): Was misspelled. + + * 1750a.h (DEFAULT_PCC_STRUCT_RETURN): Was misspelled. + +Mon May 15 23:41:25 1995 Jeffrey A. Law + + * pa.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Make sure to encode section + info for all libcalls. + +Mon May 15 20:58:00 1995 Jason Merrill + + * collect2.c (strstr): Define ifndef POSIX. + + * defaults.h (SUPPORTS_WEAK): Provide default. + * aoutos.h, sparc/sunos4.h: Don't support weak symbols. + * netbsd.h, svr4.h, i386/freebsd.h, i386/osfrose.h, + m88k/m88k.h: Define ASM_WEAKEN_LABEL instead of WEAK_ASM_OP. + * c-pragma.h: Check ASM_WEAKEN_LABEL instead of WEAK_ASM_OP. + HANDLE_PRAGMA_WEAK is never defined in a tm.h file. + * c-decl.c (duplicate_decls): Propagate DECL_WEAK. + * tree.h (DECL_WEAK): New macro. + (tree_decl): Add weak_flag. + * varasm.c (assemble_start_function): Declare the symbol weak if + appropriate. + (assemble_variable): Ditto. + (assemble_alias): Ditto. Mark the decl as written. + (declare_weak): Check for weak declaration after definition. + Set DECL_WEAK. + (weak_finish): Use ASM_WEAKEN_LABEL. + * libgcc2.c: The C++ free-store management functions are weak + aliases on targets that always support them. + +Mon May 15 19:01:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure (out_object_file): New variable; put value in Makefile. + * Makefile.in (out_object_file): Use in place of aux-output.o. + + * fold-const.c (const_binop): Don't pass OVERFLOW to force_fit_type + if type is unsigned. + +Mon May 15 18:48:26 1995 Paul Eggert + + * install.sh (transformbasename): Fix misspelling. + + * tahoe.h (CHECK_FLOAT_VALUE): Fix misspelling of OVERFLOW parameter. + + * i386.h (VALID_MACHINE_{DECL,TYPE_ATTRIBUTE): Fix typo. + + * fx80.h (CHECK_FLOAT_VALUE): Fix misspelled use of parameter. + + * a29k.c (spec_reg_operand): Fix misspelling of `default:'. + +Mon May 15 18:36:41 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.md (b{eq,ne,ge,lt}0_di): Fixed for non-MOTOROLA syntax. + * m68k/xm-mot3300.h (alloca): Extern decl added for non-GNU compiler. + +Mon May 15 13:14:29 1995 Per Bothner + + * cppexp.c (cpp_reader): Test for '#' (start of assertion) *after* + skipping hspace, not before. + +Mon May 15 08:13:54 1995 Pat Rankin (rankin@eql.caltech.edu) + + * vmsconfig.com: Construct options.h and specs.h to #include + all "*/lang-{options|specs}.h" files found. + +Sun May 14 21:32:49 1995 Doug Evans + + * alpha/alpha.md (movsicc, case NE): Don't generate unrecognizable + insn. + (movdicc, case NE): Likewise. + +Sun May 14 15:44:54 1995 Jim Wilson + + * unroll.c (unroll_loop): Make local_regno have size + max_reg_before_loop. Don't do local register optimization if + copy_end has no INSN_LUID. + +Sun May 14 10:38:23 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * objc-act.c (start_method_def): Mark _self as possibly unused. + + * configure: Create specs.h and options.h from */lang-specs.h + and */lang-options.h. + Set lang_specs_files and lang_options_file variables in Makefile. + * Makefile.in (lang_{specs,options}_files): New variables. + (gcc.o): Depends on $(lang_specs_files). + (toplev.o): Depends on $(lang_options_file); merge two dep lists. + (distclean): Remove spes.h and options. + * gcc.c (default_compilers): Remove entries for Ada, C++, Chill, + and Fortran; #include specs.h instead. + * toplev.c (lang_options): Remove entries for Ada, C++, and Fortran; + include options.h instead. + +Sat May 13 23:11:21 1995 DJ Delorie + + * configure (i[345]86-go32-msdos, i[345]86-*-go32): New targets. + +Sat May 13 10:58:38 1995 Jim Wilson + + * loop.c (record_giv): When computing replaceable, use + back_branch_in_range_p instead of looking for branches to named + labels. + * loop.h (back_branch_in_range_p): Declare. + * unroll.c (back_branch_in_range_p): No longer static. + +Sat May 13 06:47:11 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (simplify_shift_count, case LSHIFTRT): Don't merge + shifts of different modes if first is any right shift. + +Sat May 13 05:39:09 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * configure (arm-semi-aout): New configuration. + * config.sub: Add support for semi-hosted ARM. + * arm/t-semi, arm/semi.h: New files. + +Fri May 12 21:51:22 1995 Doug Evans + + * flow.c (find_basic_blocks): Only perform n_basic_blocks sanity + check on first pass, and on second pass ensure it has the correct + value. + +Fri May 12 19:23:11 1995 Jim Wilson + + * c-typeck.c (build_binary_op): Warn when ~unsigned is compared + against unsigned, and type promotions result in an unexpected + answer. + +Fri May 12 19:10:21 1995 Roland McGrath + + * configure (*-*-gnu*): Always use ELF; set tm_file=${cpu_type}/gnu.h. + * config/i386/gnu.h: Contents replaced with old i386/gnuelf.h. + * config/i386/gnuelf.h: File removed. + +Fri May 12 17:29:57 1995 Ken Raeburn (raeburn@cygnus.com) + + * m68k/lb1sf68.asm (__IMMEDIATE_PREFIX__): Default to #. + (IMM): New macro. + (all code): Use IMM macro instead of hardcoding # for immediate + operands. + +Fri May 12 16:52:10 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * m68k.c (output_scc_di): New function. + (extend_operator) : Allow DImode target. + * m68k.h (HARD_REGNO_MODE_OK): Don't allow d7/a0 as DImode reg pair. + * m68k.md (tstdi, cmpdi, addsi_lshrsi_31, ashldi_extsi): New patterns. + (extendqidi2, extendhidi2, extendsidi2): Allow "general_operand" + instead of "register_operand" 0. + (adddid_sexthishl32, subdid_sexthishl32, subdi_dishl32): Likewise. + (adddi_dilshr32): Operand 0 constraint changed from "ro" to "do"; + Code generation fixed. + (adddi_mem, subdi_mem): Fixed for "<" and ">" operand 0. + (adddi3, subdi3): Operand 2 constraint changed from "ao" to "*ao" + (ashldi_sexthi, ashrdi_const32): Allow only "register_operand" + instead of "general_operand" 0. + (ash[lr]di_const, ash[lr]di3): Allow also 8 and 16 as shift count. + (subreg1ashrdi_const32): Pattern deleted. + (subreghi1ashrdi_const32, subregsi1ashrdi_const32): New pattern. + (lshrsi_31): New implementation. + (scc0_di, scc_di, beq0_di, bne0_di, bge0_di, blt0_di): New patterns. + +Fri May 12 16:50:49 1995 Jeffrey A. Law + + * pa.md (bb patterns): Fix bugs in length computation exposed by + recent branch shortening and genattrtab changes. + +Fri May 12 16:22:27 1995 Ken Raeburn + + * cccp.c (enum node_type): Add T_IMMEDIATE_PREFIX_TYPE. + (special_symbol): Handle it; emit value of IMMEDIATE_PREFIX. + (IMMEDIATE_PREFIX): Default to empty string. + (initialize_builtins): Install __IMMEDIATE_PREFIX__ builtin, + parallel to __REGISTER_PREFIX__. + +Fri May 12 14:40:03 1995 Pat Rankin (rankin@eql.caltech.edu) + + * cccp.c: #if VMS, don't define `stat' macro to be VMS_stat. + Compare enums explicitly to 0 to work around VAX C bug. + (do_include): Cast alloca's value. + + * make-cc1.com (bc_loop): Process comma-separated list rather + than space-separated one; restore .h suffix stripped by vmsconfig; + (loop1): More robust handling of directory prefix on file names. + * vmsconfig.com (TPU makefile.in): Reorganize and reformat code. + Make generated .opt files have more consistent format (all comma + separated, excess whitespace eliminated); + (additional_compiler): New routine. + (process_makefile): Use it to handle cc1plus via cp/Make-lang.in. + +Fri May 12 13:35:07 1995 Doug Evans + + * arm.h: Replace ARM_REG_PREFIX with REGISTER_PREFIX. + Replace ARM_COMMENT_CHAR with ASM_COMMENT_START. + (REGISTER_PREFIX): Define. + (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Define. + (SECONDARY_OUTPUT_RELOAD_CLASS): Handle DFmodes only if + TARGET_HARD_FLOAT. + (PREDICATE_CODES): Add soft_df_operand. + * arm.c: Replace ARM_REG_PREFIX with REGISTER_PREFIX. + Replace ARM_COMMENT_CHAR with ASM_COMMENT_START. + (arm_asm_output_label): Use USER_LABEL_PREFIX. + (soft_df_operand): New function. + * arm.md (movsicc): New pattern. + (movsfcc, movdfcc, *movsicc_insn, *movsfcc_hard_insn): Likewise. + (*movsfcc_soft_insn, *movdfcc_insn): Likewise. + (*movdf_soft_insn): Rewrite. + (movsi matcher): Fix typo in type attribute. + +Fri May 12 10:25:40 1995 Michael Meissner (meissner@cygnus.com) + + * i386.h (TARGET_RTD): Use MASK_RTD, not MASK_REGPARM. + (TARGET_SWITCHES): Add -m{,no-}align-double switch. + (TARGET_OPTIONS): Add -mregparm= switch to set number of registers + to use for passing arguments. Add -malign-loops= switch to set + the alignment for loops. Add -malign-jumps= switch to set the + alignment for code that is jumped to. Add -malign-functions= + switch to set the initial alignment of functions. + (TARGET_REGPARM): Delete, in favor of -mregparm= + (TARGET_SWITCHES): Delete -mregparm, add -mdebug-arg switches. + (RETURN_POPS_ARGS): Call i386_return_pops_args to do the real work. + (VALID_MACHINE_DECL_ATTRIBUTE): Define as function call. + (VALID_MACHINE_TYPE_ATTRIBUTE): Define as function call. + (COMP_TYPE_ATTRIBUTES): Define as function call. + (REGPARM_MAX): Maximum number of regs to use for passing arguments. + (CUMULATIVE_ARGS): Make this a structure, not an int. + (INIT_CUMULATIVE_ARGS, FUNCTION_ARG{,_ADVANCE}): Call function. + (FUNCTION_ARG_PARTIAL_NREGS): Likewise. + (MAX_CODE_ALIGN): Maximum value to align loops/jumps to. + (BIGGEST_ALIGNMENT): Return 64 if -malign-double, 32 otherwise. + (ASM_OUTPUT_ALIGN_CODE): Use value of -malign-jumps= switch. + (ASM_OUTPUT_LOOP_ALIGN): Use value of -malign-loops= switch. + (toplevel): Declare all new functions and external variables added + in i386.c. + + * i386.c (i386_regparm_string, i386_regparm): New variables + for -mregparm= switch to set the number of registers to use for + passing arguments. + (i386_align_loops_string, i386_align_loops): New variables for + -malign-loops= switch to set alignment to use for loops. + (i386_align_jumps_string, i386_align_jumps): New variables for + -malign-jumps= switch to set alignment to use for labels that are + jumped to. + (override_options): Support new switches. + (i386_valid_decl_attribute_p): New function to validate decl + specific attributes. Presently returns 0. + (i386_valid_type_attribute_p): New function to validate type + specific attributes. Recognize "stdcall", which says function + with fixed numbers of arguments is responsible for popping stack, + "cdecl", which says to use the normal C calling sequence, even if + -mrtd is used, and "regparm", which specifies the number of + registers to use for passing arguments. + (i386_comp_type_attributes): New function, to validate whether + attributes are compatible. + (i386_return_pops_args): New function, to return whether or not + the function pops its argument list or not, taking into account + -mrtd, and the stdcall/cdecl attributes. + (init_cumulative_args): Rewrite as a function, taking variable + argument functions, and regparm support into account. + (function_arg{,_advance,_partial_nreg}): Likewise. + (print_operand): Support %J, to print appropriate jump insn. + + * i386.md (decrement_and_branch_until_zero): Define pattern, + so that loops that count down to zero, don't have an unneeded + compare after the decrement. Add a general insn recognizer for + add to a value and compare against zero. + + * i386/go32.h, i386/winnt.h (VALID_MACHINE_DECL_ATTRIBUTE): + Delete, code folded into the mainline. + (RETURN_POPS_ARGS): Likewise. + + * i386/winnt.h (ENCODE_SECTION_INFO): The stdcall attribute is now + stored on the type field, rather than the decl. + + * i386/gas.h (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN): Use + i386_align_{loops,jumps} variables to do alignment. + * i386/osfrose.h, i386/svr3dbx.h: Likewise. + +Fri May 12 12:48:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stor-layout.c (layout_type, case ARRAY_TYPE): Compute length using + MAX of length and zero if sizetype signed and neither bound constant. + + * i386/gnuelf.h, i386/linux-oldld.h, i386/lynx-ng.h, i386/v3gas.h: + Use <...> in #include instead of "...". + * m68k/lynx-ng.h, sparc/lynx-ng.h: Likewise. + + * c-parse.in (myparm): Handle attributes. + * objc-act.c (unused_list): New variable. + (build_tmp_function_decl): Call push_parm_decl with new format. + (start_class): Initialize unused_list. + (start_method_def): Call push_parm_decl with new format and + mark _cmp as possibly unused. + + * combine.c (simplify_shift_const): Don't change SHIFT_MODE + for LSHIFTRT either. + + * unroll.c (unroll_loop): Don't move reg if used in copy_end and + that is a JUMP_INSN. + +Fri May 12 12:31:37 1995 Doug Evans + + * arm/lib1funcs.asm: New file. + +Fri May 12 11:52:03 1995 Kung Hsu + + * configure (a29k-*-vxworks*): New target. + * config.sub (vxworks29k): New alias. + * a29k/t-vx29k: New file. + * a29k/vx29k.h: New file. + +Fri May 12 11:17:28 1995 Jim Wilson + + * loop.c (check_dbra_loop): When reversing loop when + no_use_except_counting is false, there must be only one biv. + +Fri May 12 07:10:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * unroll.c (unroll_loop): Only use local_regno for pseudos. + + * genattrtab.c (write_test_expr, case MATCH_DUP): Use operands[N] + instead of JUMP_LABEL (which may not be set). + (walk_attr_value, case MATCH_DUP): Set must_extract. + + * c-parse.in: Adjust number of shift/reduce conflicts. + (parm): Support attributes. + * c-decl.c (push_parm_decl): Pass any attributes to decl_attributes. + +Fri May 12 00:36:26 1995 Per Bothner + + * cpplib.c (skip_quoted_string): Removed - no longer needed. + (skip_if_group): Use cpp_get_token instead of skip_quoted_string. + + * cpplib.h (struct cpp_reader): Remove start_line field. + Add multiline_string_line field. + + * cpplib.c (cpp_error_with_line, cpp_warning_with_line, + cpp_pedwarn_with_line): Take extra column number parameter. + (macroexpand, cpp_get_token): Fix reporting of unterminated strings. + (line_for_error): Removed - no longer needed. + +Fri May 12 02:21:34 1995 Jim Wilson + + * mips/svr4-t.h (MD_STARTFILE_PREFIX, MD_EXEC_PREFIX, + STARTFILE_SPEC, LINK_SPEC): Define. + * configure (mips-tandem-sysv4): Use t-mips not t-svr4. + +Thu May 11 19:18:54 1995 Per Bothner + + * cpplib.c (line_for_error): Make it work; add extra parameter. + (skip_quoted_string, cpp_get_token): Update calls to line_for_error. + (macroexpand): Remember initial line so we can report it if the + call is unterminated. Also, simplify error logic slightly. + (do_include): Cast alloca return value, to avoid pcc warning. + + * cppexp.c (parse_number): Cleanup some Cygnus crud for MPW. + +Thu May 11 21:35:23 1995 Torbjorn Granlund + + From Moshier: + * i960.c (i960_output_ldconst): Let split_double handle DImode. + (i960_print_operand): Use REAL_VALUE_TO_DECIMAL for decimal strings. + (i960_output_double, i960_output_float): Likewise; also change arg + VALUE from `double' to `REAL_VALUE_TYPE'. + +Thu May 11 21:09:25 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) + + * cpperror.c (cpp_print_containing_files): Remove some + Cygnus-local stuff. + +Thu May 11 21:06:47 1995 Doug Evans + + * gcc.c (link_command_spec): Make -nostdlib no longer imply + -nostartfiles. + +Thu May 11 18:48:57 1995 Paul Eggert + + * c-common.c (convert_and_check): Don't diagnose overflow in constant + expression merely because conversion overflowed. + +Thu May 11 18:43:59 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-decl.c (grokdeclarator): Use PARM_FLAG to see if should + make PARM_DECL. + * c-parse.in (nested_function, notype_nested_function): + Allow old-style arg definitions (use xdecls). + + * c-decl.c (finish_struct): Properly update DECL_PACKED. + +Thu May 11 15:24:15 1995 Jason Merrill + + * fold-const.c (fold): Also fold CLEANUP_POINT_EXPRs into + TRUTH_*_EXPRs and into the first operand. + (operand_equal_for_comparison_p): Also make sure the second operand + is integral. + +Thu May 11 14:22:03 1995 Ted Lemon + + * config/mips/netbsd.h: New file. + * config/mips/t-mips-netbsd: New file. + * config/mips/x-netbsd: New file. + + * configure (mips-dec-netbsd*): Add entry. + + * mips.h (LOCAL_LABEL_PREFIX, USER_LABEL_PREFIX): Define. + (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END, ASM_OUTPUT_LABEL_REF, + ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL, + ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Use them. + + * mips.c (mips_output_lineno): Use LOCAL_LABEL_PREFIX. + +Thu May 11 14:22:03 1995 Stan Cox (gcc@dg-rtp.dg.com) + + * dwarfout.c (output_decl): Don't output DIE for struct or union type + with no name or with ERROR_MARK for the fields. + +Thu May 11 06:36:34 1995 Michael Meissner (meissner@cygnus.com) + + * flow.c (mark_used_regs): If a SUBREG does not have a REG in the + SUBREG_REG position, recursively call mark_used_regs, instead of + segfaulting. + +Thu May 11 06:44:34 1995 Pat Rankin (rankin@eql.caltech.edu) + + * expr.c (do_jump, case EQ_EXPR, NE_EXPR): Fix typo for complex. + +Wed May 10 12:34:46 1995 Michael Meissner + + * configure: Add support for the little endian variant of the + PowerPC System V.4 and Eabi targets. If the GNU assembler was not + specified, don't build libgcc.a variants on the PowerPC systems + that use -mrelocatable, -mlittle, and -mbig. + + * genmultilib: For MULTILIB_MATCHES arguments, map question marks + into equal signs after spliting the left and right side of + equivalent options, to all support for options like: -mcpu=403. + + * rs6000/rs6000.md (rs6000_immed_double_const): New function that + is like immed_double_const, except that it reverses the two words + in the constant if the target is little endian. + + * rs6000/rs6000.md (floatsidf2): Use rs6000_immed_double_const, + not immed_double_const. + (floatunssidf2): Ditto. + + * rs6000/rs6000.h: Add declarations for all functions in rs6000.c. + + * rs6000/sysv4.h (TARGET_SWITCHES): Add -mlittle, -mlittle-endian, + -mbig, and -mbig-endian for bi-endian support. + (ASM_SPEC): Pass -mlittle/-mbig to the assembler if it was passed + to us. + (LINK_SPEC): If explicit little or big endian support was + requested, tell the GNU linker to use the appropriate target + format. + + * rs6000/t-eabi (MULTILIB_*): Build libgcc.a variants for software + floating point. Remove mrelocatable libgcc.a variant. + + * rs6000/t-eabigas: New file, cloned from t-eabi. Build + mrelocatable libgcc.a variant in addition to the other variants. + + * rs6000/t-ppc: New file, for PowerPC System V.4 support without + the GNU assembler. + + * rs6000/t-ppcgas: New file, for PowerPC System V.4 support with + the GNU assembler. + + * rs6000/eabile.h: New file, little endian eabi config file. + * rs6000/sysv4le.h: New file, little endian V.4 config file. + +Wed May 10 14:22:28 1995 Doug Evans + + * libgcc1-test.c (main_without__main): Renamed from `main'. + * Makefile.in (libgcc1-test): Tell the user to ignore warnings. + + * configure: Support --enable-foo, --disable-foo. + +Wed May 10 10:34:00 1995 Lee Iverson + + * unroll.c: Add declarations of static functions. + (unroll_loop): Renumber regs local to loop for each unrolled iteration. + +Wed May 10 08:27:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (alpha_set_emit_const): Cleanups to work properly + when run on 32-bit host. + + * configure: Instead of symlinking tm.h and {h,t,}config.h, + make them files that #include the proper file; pass to Makefile. + Pass out_file and md_file to Makefile instead of making symlinks. + * Makefile.in (out_file, md_file, tm_file, {build,host}_xm_file): + New symbols, to be overridden by configure. + (insn-*): Use $(md_file), not md. + (aux-output.o): Use $(out_file), not aux-output.c. + ($(MD_FILE)): Rework to use new conventions. + (gen*.o, bi-*.o): Depend on $(build_xm_file), not hconfig.h. + (scan.o, fix-header.o, scan-decls.o): Likewise. + (distclean): Adjust files removed for new convention. + +Tue May 9 19:26:42 1995 Jason Merrill + + * rs6000/rs6000.h (LIBGCC_SPEC): Do link with libgcc when -shared. + + * Makefile.in (STAGESTUFF): Add underscore.c. + (underscore.c): Rename temporary files to begin with 'tmp-' so that + they will be removed by 'make mostlyclean'. + +Tue May 9 19:19:55 1995 Mike Stump + + * toplev.c (lang_options): Add new flag -ffor-scope. + +Tue May 9 19:11:47 1995 Lee Iverson (leei@ai.sri.com) + + * objc/init.c (objc_init_statics): Fix missing part of last change. + +Tue May 9 18:25:34 1995 Richard Kenner + + * i386/gnu.h, i386/linux.h, i386/linux-aout.h, i386/lynx.h: + Use <...> in #include instead of "..." to avoid recursion. + * i386/netbsd.h, i386/xm-gnu.h, i386/xm-linux.h: Likewise. + * i386/xm-lynx.h, i386/xm-freebsd.h, i386/xm-netbsd.h: Likewise. + * m68k/lynx.h, m68k/netbsd.h, m68k/xm-lynx.h: Likewise. + * m68k/xm-netbsd.h, mips/gnu.h, ns32k/netbsd.h: Likewise. + * ns32k/xm-netbsd.h, rs6000/lynx.h, rs6000/xm-lynx.h: Likewise. + * sparc/lynx.h, sparc/netbsd.h, sparc/xm-lynx.h: Likewise. + * sparc/xm-netbsd.h, vax/netbsd.h, vax/xm-netbsd.h: Likewise. + +Tue May 9 15:52:05 1995 Michael Meissner + + * config.sub: Recognize powerpcle as the little endian varient of + the PowerPC. Recgonize ppc as a PowerPC variant, and ppcle as a + powerpcle variant. Convert pentium into i586, not i486. Add p5 + alias for i586. Map new x86 variants p6, k5, nexgen into i586 + temporarily. + +Tue May 9 15:43:27 1995 Jason Merrill + + * rs6000/rs6000.h (LINK_SPEC, LIB_SPEC): Don't mess with libg + if -shared. + * rs6000/aix41ppc.h (LINK_SPEC): Ditto. + + * rs6000/powerpc.h: Don't emit .extern directives. + +Tue May 9 14:08:09 1995 Jim Wilson + + * sh/lib1funcs.asm (__ashrsi3, __ashlsi3, __lshrsi3): Use .byte + instead of .word offsets in switch table. + +Tue May 9 11:44:47 1995 Jeremy Bettis + + * objc/sendmsg.c (__objc_send_initialize): Call superclass if object + does not implement +initialize. + +Tue May 9 02:44:16 1995 Jason Merrill + + * rs6000/xm-rs6000.h (COLLECT_EXPORT_LIST): Define if not + cross-compiling. + * rs6000/xm-mach.h: #undef COLLECT_EXPORT_LIST. + * rs6000/rs6000.h (COLLECT_SCAN_OBJECTS): Lose. + + * collect2.c (collect_exit): Unlink export_file. + (prefix_from_string): Broken out from prefix_from_env. + (prefix_from_env): Call it. + (main): Under AIX, recognize -bE: and -bexport:, and don't + automatically export everything if we see one. Otherwise, scan the + objects individually and add all their symbols to an export file to be + passed to the linker. + (write_export_file): New function. + (scan_prog_file): Ignore symbols starting with '.' + + * c-common.c (declare_hidden_char_array): Mark decl artificial. + +Mon May 8 18:13:57 1995 Adam Fedor + + * objc/init.c (_objc_load_callback): Add declaration. + (__objc_exec_class): Call _objc_load_callback after every Class + or Category is added. + * objc/objc-api.h (_objc_load_callback): Add declaration. + +Mon May 8 17:56:28 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_expr, case INDIRECT_REF): Set RTX_UNCHANGING_P + if both TREE_READONLY and TREE_STATIC set. + + * c-typeck.c (convert_for_assignment): Don't give errors about + adding const or volatile unless both sides point to functions. + +Mon May 8 11:48:23 1995 Michael Meissner + + * configure: If ../ld/Makefile, symlink ../ld/ld.new to collect-ld, + not real-ld. Don't test for $use_collect2 any more. + +Sun May 7 17:52:23 1995 Jason Merrill + + * calls.c (expand_call): Improve -Winline warnings. + +Sun May 7 17:28:27 1995 DJ Delorie (dj@delorie.com) + + * configure.bat: Use "go32" instead of "msdos" for future expansion. + + * i386/go32.h: Add support for win32's stdcall functions. + + * configure.bat: Add ^M to end of each line. + * i386/config-nt.bat, alpha/config-nt.bat: Likewise. + +Sun May 7 02:12:26 1995 Jason Merrill + + * tree.h (DECL_ARTIFICIAL): New macro. + + * function.c (expand_function_end): Don't warn about unused + anonymous or artificial parms. + +Fri May 5 18:41:22 1995 Jim Meyering (meyering@comco.com) + + * configure: Fix typo in name of "maintainer-clean". + +Fri May 5 14:58:01 1995 Jeffrey A. Law + + * pa.c (emit_move_sequence): Force problematical constants + into memory during the reload pass when generating PIC. + +Fri May 5 13:30:33 1995 Doug Evans + + * objc/NXConstStr.m: NXConstantString.h renamed to NXConststr.h. + +Fri May 5 07:10:15 1995 Stephen L Moshier (moshier@world.std.com) + + * real.c (emdnorm, toe64, etoe64): Significand of Intel long double + denormals is shifted down one bit. + +Fri May 5 07:04:12 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-typeck.c (process_init_element): Don't clear_momentary if + constructor_stack is not empty. + + * objc/Makefile (SHELL): Now /bin/sh. + + * c-typeck.c (build_binary_op): Also warn about ordered + comparison of pointer with zero if -Wall. + + * expr.c (do_jump, case EQ_EXPR, NE_EXPR): Properly compare complex. + +Thu May 4 18:01:25 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * objc/Makefile: NXConstantString renamed to NXConstStr. + * objc/NXConstStr.m: Renamed from objc/NXConstantString.m. + * objc/NXConstStr.h: Renamed from objc/NXConstantString.h. + +Thu May 4 17:38:21 1995 J.T. Conklin + + * configure (vax-*-netbsd*): New configuration. + * vax/netbsd.h, vax/xm-netbsd.h: New files. + +Thu May 4 16:39:05 1995 Jason Merrill + + * collect2.c (main): Add check for 'collect-ld', just like + 'real-ld', except that old versions won't be looking for it in the + path. Don't look for 'real-ld' in the path anymore. Sigh. + + * collect2.c: #include demangle.h and obstack.h. + (obstack_chunk_alloc): Define. + (obstack_chunk_free): Define. + (generic): Don't define. Don't use. + (main): Initialize obstacks and demangling. + + * collect2.c (dump_file): Adjust space padding in output to + maintain tabulation with Solaris ld. Don't demangle if the + environment variable COLLECT_NO_DEMANGLE is set. + + * collect2.c (main): Redirect the output of the first link and + demangle it. Don't collect static c/dtors unless USE_COLLECT2 is + defined. Null-terminate the list of objects. + (dump_file): New function. + (file_exists): New function. + (collect_exit): Renamed from my_exit. Dump and remove the temporary + ld output file. + (collect_execute): Break out from fork_execute. Support redirection. + (fork_execute): Call it. + (fatal_perror, fatal, error): Make non-static. + (xcalloc, xmalloc): Don't use generic. + (xrealloc): Define. + (collect_wait): Break out for do_wait. Just return the exit status. + (do_wait): Call it. + + * collect2.c: Check SUNOS4_SHARED_LIBRARIES using #if, not #ifdef. + + * Makefile.in (collect2): Now uses cplus-dem.o and underscore.o. + (collect2.o): Pass MAYBE_USE_COLLECT2 to compile. + (underscore.c): Rules for creation. + + * cplus-dem.c, demangle.h: Copy from libiberty. + +Thu May 4 14:12:35 1995 Jim Wilson + + * sdbout.c (plain_type): Pass additional argument to plain_type_1. + (plain_type_1): New parameter level. Increment it when making + recursive calls. Force the type to void_type_mode before starting + a 7th level of recursion. + + * sh.c (general_movsrc_operand, general_movdst_operand): Delete + references to POST_DEC and PRE_INC. + * sh.h: Clean up whitespace, comments, etc. + (TARGET_SH, RTL_BIT, DT_BIT, C_BIT, R_BIT, TARGET_DUMP_RTL, + TARGET_DUMP_R, TARGET_CDUMP): Delete. + (TARGET_SWITCHES): Delete -mR, -mc, -mr options. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete 'G' contraint. + (FUNCTION_VALUE): Simplify. + (REG_OK_FOR_PRE_POST_P, IS_INDEX): Delete. + (BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P): Rewrite to allow + SUBREGs. + (GO_IF_LEGITIMATE_INDEX): Delete unused REGNO argument. + (GO_IF_LEGITIMATE_ADDRESS): Use BASE_REGISTER_RTX_P instead of + REG_OK_FOR_PRE_POST_P. Don't accept PRE_INC or POST_DEC addresses. + (PREDICATE_CODES, PROMOTE_MODE): Define. + +Wed May 3 09:57:55 1995 Michael Meissner + + * rs6000/rs6000.md (non power abs insns): If not powerpc, use + sf/subfc instructions, not subf. + +Wed May 3 08:49:06 1995 Alan Modra + + * protoize.c (gen_aux_info_file): Use strerror #ifdef HAVE_STRERROR. + +Wed May 3 01:06:01 1995 Jeffrey A. Law + + * pa.c (output_call): Fix typo/thinko in last change. + (output_function_epilogue): Align the data section before + emitting deferred plabels. + + From Torbjorn: + * pa.c (before functions): Declare deferred_plabels and + n_deferred_plabels. + (output_call): When generating pic, don't use LP and RP. Use 32 bit + plabel instead. + (output_function_epilogue): Output plabels accumulated in output_call. + +Tue May 2 17:15:08 1995 Jeffrey A. Law + + * pa.c (hppa_expand_epilogue): Fix thinko in last change. + +Tue May 2 16:54:35 1995 Doug Evans + + * jump.c (jump_optimize, can_reach_end determination): A barrier can + follow the return insn. + +Tue May 2 12:39:55 1995 Mike Stump + + * fold-const.c (fold): Ensure that we don't alter the expression's + type when folding CLEANUP_POINT_EXPRs. + +Tue May 2 13:36:08 1995 Michael Meissner + + * expmed.c (emit_store_flag): When creating store flag + instructions from simpler parts, such as XOR, ABS, etc. do not + reuse pseudo registers if expensive optimizations, instead create new + pseudos for each insn result. + +Tue May 2 01:25:29 1995 Jeffrey A. Law + + * pa.c (hppa_expand_epilogue): Correctly handle restore of %rp + for functions with a stack size of exactly 8kbytes and no frame + pointer. + +Mon May 1 19:27:08 1995 Jim Wilson + + * sdbout.c (sdbout_one_type): Don't switch to text section if + in function with section attribute. + + * combine.c (combine_instrutions): Set subst_prev_insn to zero. + (try_combine, undo_all): Likewise. + (get_last_value): Return zero if subst_prev_insn set. + + * sparc.h (INIT_TARGET_OPTABS): Move INIT_SUBTARGET_OPTABS to end. + + * Makefile.in (install-dir): chmod a+rx all newly created directories. + + * expr.c (expand_expr, case SAVE_EXPR): Handle the case where + mode is VOIDmode. + +Fri Apr 28 15:39:38 1995 Per Bothner + + * cpplib.h (cpp_buffer): Note new escape combination "@ ". + * cpplib.c (macroexpand): Delete "@ " if stringifying. + (cpp_skip_hspace): Also skip "@ " if input buffer has_escapes. + (collect_expansion): Cleanup white-space handling. + (create_definition): Remove all leading spaces, not just first one. + (cpp_expand_to_buffer): Set has_escapes on resulting input buffer. + (macroexpand): Set output_escapes during whole function (and + specifically during calls of macarg). + (macroexpand): Set "@ " before and after expansion result. + (push_macro_expansion): Remove unneeded initial "@ ", not " ". + (cpp_get_token): Remove unneeded "@ " (not " ") at end of expansion. + (cpp_get_token): Handle "@ ". + + * cpplib.c (read_name_map): Add cpp_reader parameter. Access + map_list from former (instead of having it be static). + (open_include_file): Extra parameter (because of above changes). + (do_include, lookup_import): Update calls of open_include_file. + + * cpplib.c (do_include): Fix memory leak. + + * cpplib.c (delete_assertion): Also delete tokenlist. + (do_unassert): Don't delete tokenlist (handled by delete_assertion). + (cpp_cleanup): New function. Frees resources used by a cpp_reader. + * cpphash.c (cpp_hash_cleanup): New function. + (delete_macro): Enable commented-out code. + (file_cleanup): Free actual buffer. + + * cpplib.c (cpp_options): Add map_list. + + * cpplib.h (PARSE_GETC): Removed. Bogus and unused. + * cppmain.c (main): Remove commented-out code that used PARSE_GETC. + + * cpplib.c: Don't #include . Causes clashes + on Nextstep (when index/rindex are macros). + (cpp_grow_buffer, int_parse_file): Cast to U_CHAR*, rather than char*. + +Sun Apr 30 08:11:23 1995 Alan Modra (alan@spri.levels.unisa.edu.au) + + * stdarg.h, varargs.h (va_arg): Don't assume __va_rounded_size (char) + has the value of 4. + +Sun Apr 30 07:13:43 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * vax.h (NOTICE_UPDATE_CC): Correctly handle aob insns. + + * expr.c (expand_expr, case CONSTRUCTOR): Don't set target to + zero if more then one word. + Pass size and alignment to move_by_pieces_ninsns in bytes, not bits. + + * cse.c (cse_insn): Properly set IN_MEMORY for SET_DEST. + + * tree.c (substitute_in_expr): Preserve TREE_READONLY. + + * c-common.c (enum attrs): Add A_UNUSED. + (init_attributes): Initialize it. + (decl_attributes, case A_UNUSED): New case. + +Sat Apr 29 15:42:03 1995 Paul Eggert + + * cccp.c (do_include): Re-fix minor memory leak by using + alloca instead of xmalloc and free. + + * cccp.c (macarg): Except for reporting error, treat unterminated + macro call as if it were terminated, since `macroexpand' relies + on *argptr being filled in. + +Sat Apr 29 06:09:35 1995 Torbjorn Granlund + + * pa.c (output_mul_insn): Simplify, it is never called with + UNSIGNEDP set. + + * pa.md (divsi3, udivsi3, modsi3, umodsi3): Simplify. + (ashlsi3): Clean up indentation and commentary. + +Fri Apr 28 12:48:01 1995 Jason Merrill + + * integrate.c (expand_inline_function): Don't emit any notes until + after we've expanded the actual parameters. + +Fri Apr 28 11:51:06 1995 Stan Cox (gcc@dg-rtp.dg.com) + + * m88k/dgux.h: (ENDFILE_SPEC, LIB_SPEC) Fix crtbegin and crtend + (SELECT_RTX_SECTION) Put relocatable pic constants in data section + + * m88k/dguxbcs.h: (LIB_SPEC) Likewise + + * m88k/m88k.c: (symbolic_operand) Put relocatable pic constants in data + + * m88k/m88k.h: (FRAME_POINTER_REQUIRED) Add -momit-leaf-frame-pointer + + * m88k/m88k.md: (umulsidi3) Doesn't work for 88110 with mod/div changes + + * m88k/x-dgux: (GCC_FOR_TARGET) tdesc gets mixed up for crtbegin/crtend + +Fri Apr 28 06:36:47 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-typeck.c (pop_init_level, output_init_element): Pass + require_constant_* to digest_init. + + * alpha.c (alpha_emit_set_const): Now returns rtx and take MODE arg. + Rework to use a new pseudo for intermediate values if high opt level. + Also use expand_{bin,un}op. + * alpha.h (alpha_emit_set_const): Add declaration. + * alpha.md (mov[sd]i and splits): Change call to alpha_emit_set_const. + + * reg-stack.c (stack_result): Fix bug in last change. + +Fri Apr 28 01:08:43 1995 Doug Evans + + * objc-act.c: Update calls to start_decl, finish_struct, + pass NULLs for attributes. + +Thu Apr 27 21:13:14 1995 Doug Evans + + * sparc.md (tablejump): Only if ! TARGET_MEDANY. + (casesi): New pattern for TARGET_MEDANY case. + + * c-common.c (decl_attributes): Always continue if attribute not found. + * c-typeck.c (common_type): Call lookup_attribute instead of + value_member. + * tree.c (attribute_hash_list): New function. + (build_type_attribute_variant): Call it. + (valid_machine_attribute): Handle attributes with arguments. + (is_attribute_p): New function. + (lookup_attribute): New function. + (attribute_in_list): Deleted. + (attribute_list_contained): Check TREE_PURPOSE and TREE_VALUE. + * tree.h (valid_machine_attribute): Add prototype. + (is_attribute_p, lookup_attribute): Likewise. + * i386/winnt.h (RETURN_POPS_ARGS): Call lookup_attribute. + (ENCODE_SECTION_INFO): Likewise. + (CPP_PREDEFINES): Use __stdcall__, __cdecl__. + (VALID_MACHINE_DECL_ATTRIBUTE): Call is_attribute_p. + `args' must be NULL. + +Thu Apr 27 21:10:41 1995 David Edelsohn + + * rs6000.md (insv): New anonymous patterns to combine insert with + arbitrary ashift, ashiftrt, lshiftrt, or zero_extract. (Based on + patch from John Brooks .) + (ashlsi3): Remove extraneous operand processing. + +Thu Apr 27 18:47:24 1995 Jim Wilson + + * sh/ashlsi3.c, sh/ashrsi3.c, sh/lshrsi3.c: Delete. + * sh/lib1funcs.asm (ashiftrt_r4_*): Rewrite for efficiency. + (ashrsi3, lshrsi3, lshrsi3): Add. + * t-sh (LIB1ASMFUNCS): Add new functions. + (LIBGCC2_CFLAGS): Delete. + (LIB2FUNCS_EXTRA): Remove deleted files. + (ashlsi3.c, ashrsi3.c, lshrsi3.c): Remove rules for deleted files. + + * stmt.c (expand_return): When returning BLKmode structure, use + operand_subword instead of doing arithmetic on the register number. + Also, for structures smaller than word_mode, copy it into a word_mode + temporary and then subreg it. + + * sparc.md: Delete two define_peepholes which print `bad peephole'. + +Thu Apr 27 16:17:01 1995 Torbjorn Granlund + + * toplev.c (rest_of_compilation): Call shorten_branches even when + !optimize. + * final.c (shorten_branches): For non-optimizing compiles, break + after first pass. + +Thu Apr 27 14:22:50 1995 Michael Meissner + + * i386/linux-oldld.h: New file, that is cloned from linux-aout.h, + except that it does not pass -m i386linux to the linker. This is + to support the original GNU/Linux ld that is on most distributions. + + * configure (i[345]86-*-linux*oldld*): Use i386/linux-oldld.h as + the target file. + +Thu Apr 27 08:56:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * tree.c (valid_machine_attribute): Update last change. + +Thu Apr 27 08:06:33 1995 Philippe De Muyter (phdm@info.ucl.ac.be) + + * fix-header.c, cpplib.c: Don't include twice. + * cpplib.c (cpp_grow_buffer, init_parse_file): Cast {xmalloc,xrealloc} + for token_buffer to U_CHAR* instead of char*. + + * m68k/x-mot3300: New file. + * configure (m68k-motorola-sysv*): Use x-mot3300 instead of x-alloca. + +Thu Apr 27 07:04:09 1995 Paul Eggert + + * cccp.c (do_include): Fix minor memory leak. + + * cccp.c (struct argdata): Remove unused `comments' member. + (macarg): Don't set `comments' member. + + * cccp.c (collect_expansion): Assume leading white space + already removed. + Don't allocate unnecessary space for expansion. + + * cccp.c (deps_output): Don't generate overly long output lines. + Do not invoke self recursively with spacer == 0; this simplifies + the code a bit. + +Wed Apr 26 19:20:02 1995 Andrew McCallum + + * objc/Object.h: Changed Class * to Class in order to match NEXTSTEP + and OpenStep runtime. + * objc/Object.m, objc/Object.h, objc/archive.c, objc/class.c: Likewise. + * objc/encoding.c, objc/init.c, objc/objc-api.h, objc/objc.h: Likewise. + * objc/objects.c, objc/runtime.h, objc/selector.c: Likewise. + * objc/sendmsg.c, objc/typedstream.h: Likewise. + +Wed Apr 26 19:18:52 1995 Pieter Schoenmakers + + * objc/objc-api.h (objc_static_instances): New struct to record + static instances of a certain class. + (objc_module): New tag STATICS to point to the table of + objc_statics_instances. + + * objc/init.c (OBJC_VERSION): Version 7. + (objc_init_statics): New function. + (__objc_exec_class): Invoke objc_init_statics if needed. + + * objc/NXConstantString.m, objc/NXConstantString.h: New files. + * objc/Makefile (OBJC_O): Added bare-bones implementation of + NXConstantString. + + * objc-act.c (OBJC_VERSION): Version 7. + (build_objc_string_object): Build a full declaration if not using + the next runtime. + (objc_add_static_instance): New function. + (init_module_descriptor): Add reference to static instances table. + (build_module_descriptor): Add field for static instances table. + (get_objc_string_decl): New function. + (generate_static_references): New function. + (finish_objc): Call generate_static_references if needed. + + * c-tree.h (finish_decl_top_level): New declaration. + * c-decl.c (finish_decl_top_level): New function. + +Wed Apr 26 18:04:32 1995 Dirk Steinberg (Dirk.Steinberg@gmd.de) + + * stddef.h: Treat _MACHINE_ANSI_H_ like _ANSI_H_. + +Wed Apr 26 14:09:59 1995 Jim Wilson + + * sparc.h (NEGTF2_LIBCALL): Define. + (INIT_TARGET_OPTABS): Add support for all TFmode *_LIBCALL macros. + * optabs.c (init_optabs): Delete all uses of undocumented TImode and + TFmode *_LIBCALL macros. + + * combine.c (simplify_rtx, case TRUNCATE): Add. Use force_to_mode. + (force_to_mode, case AND): Allow some simplifications when GET_MODE (x) + has more bits than HOST_BITS_PER_WIDE_INT. + * mips/mips.md (truncdiqi2+[456]): Add patterns to simplify ZERO_EXTEND + of a TRUNCATE. + +Wed Apr 26 13:01:22 1995 Doug Evans + + * sparc.md (memop define_splits): Rewrite to not use memop. + Preserve MEM_IN_STRUCT_P, MEM_VOLATILE_P, RTX_UNCHANGING_P bits. + * sparc.c (memop): Deleted. + (splittable_symbolic_memory_operand): New function. + (splittable_immediate_memory_operand): New function. + +Wed Apr 26 12:54:26 1995 Jeffrey A. Law + + * configure: Add hppa1.1-hp-lites support. + +Wed Apr 26 08:04:46 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * sh.md (ashrsi2_31): Don't use dead_or_set_p after reload. + * pyr.md: Remove bad peepholes that improperly use dead_or_set_p. + + * function.c (expand_function_end): Warn about unused parms + if both -Wunused and -W. + + * tree.h (TYPE_PARSE_INFO): Delete unused field. + (TYPE_PACKED): Add new macro. + (struct tree_type): Delete unused field `parse_info'. + Add new field `packed_flag'. + * c-tree.h (finish_enum, finish_struct): Add ATTRIBUTES argument. + * c-common.c (init_attributes): Don't require decl for A_PACKED. + (decl_attributes, case A_PACKED): Set TYPE_PACKED for type. + * c-parse.in: Update number of shift/reduce conflicts. + (structsp): Pass attribute arg to finish_struct. + Support attributes on enums and pass to finish_enum. + * c-decl.c (finish_struct): Add ATTRIBUTES argument, call + decl_attributes and set DECL_PACKED from TYPE_PACKED. + (finish_enum): Add ATTRIBUTES argument, call decl_attributes, + and make enum narrow if TYPE_PACKED. + * print-tree.c (print_node): Print TYPE_PACKED. + + * c-decl.c (init_decl_processing): Don't give builtin__constant_p an + argument type. + * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): A pointer to a + string constant is a constant. + + * c-typeck.c (output_init_element): Constructor is not simple if + a bitfield is being assigned a non-integer. + + * c-typeck.c (push_init_level): Update constructor_depth when we + push spelling level. + +Tue Apr 25 19:50:06 1995 Jeffrey A. Law + + * pa.c (emit_move_sequence): Handle function label arithmetic for + PIC code generation too. + +Tue Apr 25 18:52:43 1995 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de) + + * reg-stack.c (current_function_returns_real): Deleted (unused). + (FP_mode_reg): Trimmed to a smaller size, less overhead. + (FP_MODE_REG): New macro over which FP_mode_reg will be accessed. + (mark_regs_pat, straighten_stack): New functions. + (reg_to_stack): Amend initialisation of FP_mode_reg. + Mark FP registers mentioned in USE insns before NOTE_INSN_FUNCTION_BEG. + (get_true_reg): Eliminate FP subreg accesses in favour of the + actual FP register in use. + (record_reg_life_pat): Make it work on SUBREGs as well. Make use of + the new mark_regs_pat function. Handle USE insns if called unnested. + (record_reg_life): Don't check for QImode again, we know that it + is there. Process CALL_INSNs like all other insns, they might `use' + some FP argument registers if register passing. + (stack_result_p): Changed in stack_result and returning an rtx. + (stack_reg_life_analysis): Take a new stackentry state argument. + Use stack_result and the rtx to mark using mark_regs_pat. This ensures + that types that need multiple FP registers are handled correctly. + Delete the no_live_regs shortcut to save space. + Use stackentry state to determine filled registers. + (replace_reg): Accept COMPLEX_FLOAT as well. + (move_for_stack_reg): Optimise away some pointer dereferencing. + (subst_stack_regs): Make sure the stack is in the right order + and of the right size for register passing. + (goto_block_pat): Make sure the stack is in the right order + to return possible multi-register values from the function. + (convert_regs): Fix comment about CALL_INSN, it's no longer valid. + Make sure the stack is of the right size and in the right order + to return possible multi-register values from the function. + + * function.c (assign_parms): If STACK_REGS is defined, generate USE + insns before the function body, thus showing which registers are filled + with parameters. + * expr.c (expand_builtin_apply_args): Likewise. + Reverse order of saving registers, more compact code for i387. + (expand_builtin_apply): Likewise. + * emit-rtl.c (gen_highpart): Add comment about broken implementation. + * i386.md (untyped_call): Make it return a complex double. + + * c-parse.in (attrib): Permit null-length argument list to attributes. + + * tree.c (valid_machine_attribute): Use new function attribute_in_list, + makes sure type_attribute_variants are reused even when attributes have + parameters. + Assign any new type to TREE_TYPE (decl). + (attribute_in_list): New function. + (attribute_list_contained): Use it. + * tree.h (attribute_in_list): New declaration. + +Tue Apr 25 18:25:53 1995 Jim Wilson + + * expr.c (struct move_by_pieces): Add to_struct and from_struct fields. + (move_by_pieces): Set to_struct and from_struct fields. + (move_by_pieces_1): Set MEM_IN_STRUCT_P of to1 and from1. + (expand_builtin, case BUILT_IN_MEMCPY): New variable type. + Set MEM_IN_STRUCT_P of src_mem and dest_mem. + + * Makefile.in (clean): Delete libgcc1-asm.a. + + * m68k/vxm68k.h (CPP_SPEC): Define. + + * c-decl.c (pushdecl): Don't test DECL_EXTERNAL when deciding whether + to register a duplicate decl in the current block. + + * cross64.h (INIT_ENVIRONMENT): Define as string not putenv call. + * gcc.c (main): Pass INIT_ENVIRONMENT to putenv. + + * stmt.c (expand_return): When returning BLKmode structure in + registers, copy it to a psuedo-reg instead of to hard registers. + +Tue Apr 25 15:14:58 1995 Michael Meissner + + * rs6000.h (LEGITIMIZE_ADDRESS): Don't create a DF address using two + regs if -msoft-float or -mcpu=403. + +Tue Apr 25 15:45:44 1995 Richard Henderson (richard@atheist.tamu.edu) + + * m68k.md (divhi3, udivhi3, modhi3, umodhi3): Deleted + these insns plus some surrounding trash. + (divmodhi4, udivmodhi4): Added these insns. + +Tue Apr 25 10:12:40 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (alpha_builtin_saveregs): Refine last change to work + for both stdarg and varargs. + + * tree.c (chain_member_purpose): Make similar to chain_member_value. + + * Makefile.in, configure: Change "realclean" to "maintainer-clean". + + * protoize.c: Removed __NetBSD__ from conditional. + Declare strerror if HAVE_STRERROR is defined; otherwise + declare sys_errlist and sys_nerr. + (my_strerror): New function. + (errno): Don't define if already defined as a macro. + + * alpha.c (current_file_function_operand): Return false if profiling. + + * expr.c (convert_move): Don't access a hard reg in an invalid + mode when doing a truncation. + + * alpha.c (add_operand): Test for exactly the constants allowed by + the constraints. + * alpha.h (CONST_OK_FOR_LETTER_P, case 'L'): Reject 0x80000000. + + * c-parse.in (initdcl, notype_initdcl): Pass attributes to + start_decl; delete call to decl_attributes. + * c-tree.h (start_decl): Two new tree parameters. + * c-decl.c (start_decl): New args for attributes; call decl_attributes. + + * c-decl.c (duplicate_decls): Don't look at TYPE_ACTUAL_ARG_TYPES + if it is not set. + + * xm-1750a.h: New file. + + * alpha.c (alpha_builtin_saveregs): Add to incoming args addr + if less than 6 named args, not less than or equal to. + +Mon Apr 24 15:25:19 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * mips-tfile.c (fatal, error): Make first arg const to avoid warning. + + * stmt.c (expand_end_bindings): Write a BARRIER after call + to abort in nonlocal handler. + + * stmt.c (expand_decl_init): Call preserve_temp_slots to keep + around any temp whose address was taken. + +Fri Apr 21 16:26:15 1995 Torbjorn Granlund + + * pa.md (call_internal_reg): Fix typos in length calculation. + (call_value_internal_reg): Likewise. + +Fri Apr 21 13:17:15 1995 Roland McGrath + + * config/gnu.h (STANDARD_INCLUDE_DIR): New macro. + * config/mips/gnu.h (STANDARD_INCLUDE_DIR): Macro moved there. + +Fri Apr 21 08:23:58 1995 Tom Quiggle (quiggle@lovelace.engr.sgi.com) + + * toplev.c (lang_options): Add -I for GNAT. + * gcc.c (default_compilers): Pass -I to gnat1. + +Fri Apr 21 07:58:06 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * tree.c (integer_all_onesp): Test to size of mode, not TYPE_PRECISION. + + * toplev.c (main): Turn on -fforce-mem for -O2. + + * fold-const.c ([lr]rotate_double): Replace; old versions were bogus. + (fold, shift and rotate): Don't call tree_int_cst_sgn on non-integer. + (fold, case LROTATE_EXPR): If constant count, convert to RROTATE_EXPR. + (fold, case RROTATE_EXPR): Sometimes commute logical op with rotate. + Delete pair of counteracting shifts. + + * combine.c (simplify_logical, case AND): If still an AND, get + new values for op0 and op1. + +Thu Apr 20 17:52:10 1995 Jim Wilson + + * sh.c: Completely rewritten. + * sh.h (FAST_BIT, CONSTLEN_2_BIT, CONSTLEN_3_BIT, CONSTLEN_0_BIT, + TARGET_FASTCODE, TARGET_CLEN3, TARGET_CLEN0, TARGET_OPTIONS): Delete. + (TARGET_SWITCHES): Delete -mclen3 and -mclen0 options. + (TARGET_DEFAULT): Is zero. + (OVERRIDE_OPTIONS): Delete code to set max_count_si and max_count_hi. + (SPECIAL_REG): New macro. + (HARD_REGNO_MODE_OK): Allow any mode in any general register. + (GO_IF_LEGITIMATE_ADDRESS): Delete constant + reg address case. + (MOVE_RATIO): Define to 2 when TARGET_SMALLCODE. + (max_si, max_hi, max_count_si, max_count_hi): Delete. + * sh.md: Delete spurious constraints from all define_expands. + (rotlsi3_1): Set T reg instead of clobbering it. + (ashrsi3): Use expand_ashiftrt instead of gen_shifty_op. + (movsi_i, movhi_i, movsf_i): Add conditions to reject patterns + needing a reload. + (movdi-2, movdf_k): Correct conditions to reject patterns needing + a reload. + ([inverse_]branch_{true,false}): Pass operands to output_branch. + (jump): Delete unnecessary braces. + (call, call_value): Don't use expand_acall. Force operand0 into + a register. + +Thu Apr 20 12:57:16 1995 Jason Merrill + + * function.c (assign_parms): Use TREE_ADDRESSABLE rather than + TYPE_NEEDS_CONSTRUCTING to decide whether a parameter needs to be + passed by invisible reference. + + * calls.c (expand_call): Ditto. Abort if we try to pre-evaluate a + parameter of TREE_ADDRESSABLE type. + +Wed Apr 19 17:50:24 1995 Torbjorn Granlund + + * pa.h (TARGET_SWITCHES): Fix typo. + +Tue Apr 18 18:06:03 1995 Per Bothner + + * expr.c (store_constructor): Use BYTES_BIG_ENDIAN rather + than BITS_BIG_ENDIAN to layout bits within bitstring. + * tree.c (get_set_constructor_bytes): Likewise. + +Tue Apr 18 17:22:46 1995 Per Bothner (bothner@wombat.gnu.ai.mit.edu) + + * config/m68k/{x-hp320,x-hp320g} (FIXPROTO_DEFINES): + Define _HPUX_SOURCE so putenv and other functions get seen. + +Tue Apr 18 03:57:35 1995 Michael Meissner (meissner@cygnus.com) + + * varasm.c (weak_decls): Make this a unique structure, instead of + a tree structure. + (handle_pragma_weak): Don't redeclare asm_out_file. Use new weak + structure to copy name and value to. Protect name and value by + copying them to the permanent obstack. + (declare_weak): Call handle_pragma_weak, instead of duplicating + the code. + (finish_weak): Rewrite to use new weak symbols list structure. + + * c-pragma.h: New file to define the c-pragma.c interfaces. + * c-pragma.c: Include it. + * varasm.c: Include it. + * c-lex.c: Include it. + * cp/lex.c: Include it. + + * varasm.c (handle_pragma_weak): No longer pass output file + stream, since weak pragmas are delayed until the end of the + compilation. + * c-pragma.c (handle_pragma_token): Call handle_pragma_weak + without file stream argument. + + * Makefile.in (varasm.o, c-lex.o, c-pragma.o): Add dependencies on + c-pragma.h. + + * config/rs6000.md (movdf): If -msoft-float, do not generate + memory to memory references, like is already done for the + -mhard-float case. Remove an extra test for -mhard-float inside + of -mhard-float code. + +Tue Apr 18 06:19:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (size_int): Arg is unsigned HOST_WIDE_INT. + * tree.h (size_int): Likewise. + +Mon Apr 17 23:36:57 1995 Jason Merrill + + * rs6000/aix41.h: Restore March 11th changes, plus + (ASM_OUTPUT_EXTERNAL): Do add [DS] or [RW], just don't emit + anything. + * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Ditto. + +Mon Apr 17 15:58:52 1995 Per Bothner + + * config/mips/x-iris (FIXPROTO_DEFINES): Add -D_LANGUAGE_C_PLUS_PLUS. + * config/mips/x-iris6: Likewise. + + * cpplib.c: Rename make_definition to cpp_define. + * cpplib.h (cpp_define): New declaration. + + * cpplib.c (special_symbol): For T_SPECLINE, calculate __LINE__ + in enclosing file buffer, not current buffer (if macro expanding). + (cpp_get_token): Fix thinko (in code for chopping unneeded space). + +Mon Apr 17 11:36:07 1995 Jim Wilson + + * abi64.h (CPP_SPECS): Define and use _ABI64 instead of + _MIPS_SIM_ABI64. + (SETUP_INCOMING_VARARGS): Set MEM_IN_STRUCT_P if big endian target. + * iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define. + + * combine.c (get_last_value): Ignore BARRIER when scanning backwards. + (move_deaths): New variables before_dead and after_dead. Set them + to instructions that have valid INSN_CUID values and use in test. + + * combine.c (subst_prev_insn): New variable. + (try_combine): Set it. + (get_last_value): Use it. + + * reload.c (find_reloads): Recompute reg_equiv_address from + reg_equiv_memory_loc before using it. + (find_reloads_toplev, make_memloc): Likewise. + + * expr.c (expand_builtin, case BUILT_IN_MEMCPY): Call force_operand + on dest_rtx before returning it. + + * function.c (instantiate_decls): Use temporary allocation if + DECL_DEFER_OUTPUT is set. + +Sat Apr 15 23:19:03 1995 Jason Merrill + + * aoutos.h (ASM_OUTPUT_DEF): Define instead of SET_ASM_OP. + * sparc/sunos4.h (ASM_OUTPUT_DEF): Ditto. + + * varasm.c (weak_finish): Don't handle aliases. + (declare_weak): Ditto. + (assemble_alias): Handle aliases. + + * c-common.c (enum attrs): Add A_ALIAS. + (init_attributes): Ditto. + (decl_attributes): Ditto. + +Sat Apr 15 13:26:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * calls.c (expand_call): Call preserve_temp_slots on temps + made for BLKmode args returned in registers. + + * pa.c (override_options): Fix typo. + +Sat Apr 15 12:11:46 1995 Brendan Kehoe + + * alpha/alpha.c (output_epilog): Initialize fp_offset to 0, and + make sure it's non-zero before we try to use it to restore the + frame pointer. + +Fri Apr 14 19:45:05 1995 Jason Merrill + + * ginclude/va-{clipper,pa,pyr,sparc,spur}.h (va_arg): Reorganize + to avoid BIND_EXPRs and COND_EXPRs of aggregate type. + +Fri Apr 14 19:31:14 1995 Roland McGrath + + * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Make the section + read-only executable "ax" if DECL is a FUNCTION_DECL; read-only + "a" (previously the case always) if DECL is TREE_READONLY; + otherwise writable "aw". + +Fri Apr 14 18:49:11 1995 Linus Torvalds + + * alpha.md (probe_stack): Probe with write, not read. + (allocate_stack): Update and correct stack probe code. + * alpha.c (output_prolog): Changed stack probe at function entry. + +Fri Apr 14 18:42:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * jump.c (delete_insn): When deleting after label, delete + a BARRIER as well. + +Fri Apr 14 14:40:48 1995 Jason Merrill + + * toplev.c (compile_file): Call weak_finish. + + * c-common.c (enum attrs): Add A_WEAK. + (init_attributes): Ditto. + (decl_attributes): Support __attribute__ ((weak)) by + calling declare_weak. + + * sparc/sunos4.h (HANDLE_PRAGMA_WEAK, WEAK_ASM_OP, SET_ASM_OP): + Define to support weak symbols with -fgnu-linker. + * aoutos.h: Ditto. + + * varasm.c (handle_pragma_weak): Add declared weak symbols to + weak_decls rather than emitting them immediately. + (declare_weak): Add the indicated declaration to weak_decls. + (weak_finish): Emit .weak directives for any weak symbols. + + * libgcc2.c: The C++ free-store management functions are weak. + +Fri Apr 14 13:00:29 1995 Michael Meissner (meissner@cygnus.com) + + * rs6000/rs6000.c (output_prolog): For eabi systems, emit main's + call to __eabi before setting up the minimal TOC used with the + -mrelocatable support. + + * rs6000/eabi.h (INVOKE__main): Don't define any more, + output_prolog will emit the call. + +Fri Apr 14 09:09:03 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * alpha.c (call_operand): Any reg is valid for NT. + (output_prologue): Never need GP for Windows/NT. + Set SYMBOL_REF_FLAG in current function decl. + +Thu Apr 13 20:19:30 1995 Jason Merrill + + * alpha/xm-alpha.h (HAVE_VPRINTF): Define. + (HAVE_PUTENV): Define. + (POSIX): Define. + +Thu Apr 13 19:57:44 1995 Doug Evans + + * emit-rtl.c (gen_sequence): If the insn has a non-null + CALL_INSN_FUNCTION_USAGE field, output it as a sequence so the + latter isn't discarded. + + * c-parse.in: Update expected conflict count. + +Thu Apr 13 08:10:20 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * configure.bat: Arg 2 is which machine (i386 or alpha). + * configure (alpha-*-winnt3*): New configuration. + * alpha.c: Don't #include stamp.h for WINNT. + (input_operand, case CONST): Allow ptr_mode and DImode. + * alpha.h (WINDOWS_NT): Provide default definition. + (ASM_OUTPUT_INT): Use output_addr_const. + (ASM_OUTPUT_ADDR_DIFF_ELT): Use .long for NT. + * alpha.md (calll, tablejump, movsi): New variants for NT. + * alpha/winnt.h, alpha/xm-winnt.h, alpha/x-winnt: New files. + * alpha/config-nt.bat, alpha/config-nt.sed: New files. + * i386/config-nt.bat: Add Ada fragments to Makefile. + * i386/config-nt.sed: Adjust for deletion of config.run in Makefile.in + Change version to 2.6.3. + Add some missing tabs. + * winnt/winnt.h (TARGET_MEM_FUNCTIONS): Define. + (LINK_SPEC): Delete "align:0x1000". + * winnt/xm-winnt.h (OBJECT_SUFFIX): Define. + * ginclude/stdarg.h, ginclude/varargs.h: Clean up code that + defines *DEFINED* symbols. + + * configure (a29k-*-sym1*): Same as a29k-*-bsd*. + * a29k.h (ASM_OUTPUT_SECTION_NAME): New macro. + +Wed Apr 12 14:36:03 1995 Jim Wilson + + * dbxout.c (dbxout_type_fields): Correct arguments to CHARS macro + in flag_minimal_debug case. + (dbxout_symbol_name): Use DECL_ASSEMBLER_NAME unconditionally. + * sdbout.c (sdbout_record_type_name): Correct indentation. + (sdbout_symbol): Use DECL_ASSEMBLER_NAME unconditionally. + (sdbout_one_type): Likewise. + +Tue Apr 11 13:24:13 1995 Per Bothner + + * fix-header.c (main): Fix loop over required_functions_list. + (fatal): Also print inc_filename. + + * cpplib.c (cpp_push_buffer): Added missing initializatuon of buf. + (cpp_file_buffer): Compare against CPP_NULL_BUFFER, not NULL. + (finclude): No longer call cpp_push_buffer - let callers do it. + (do_include): Add call to cpp_push_buffer. + (push_parse_file): Call cpp_push_buffer early, so initial + defines can use file and line from a valid cpp_buffer. + (nreverse_pending): New function. + (push_parse_file): Use nreverse_pending. + (push_parse_file): For -include files, just push them in reverse + order - we don't need to scan them now. + (cpp_error_from_errno, cpp_perror_with_name): Don't emit extra '\n'. + +Tue Apr 11 13:36:44 1995 Jim Wilson + + * configure (mips-dec-mach3): Add. + + * sh.c (shiftby_operand): Delete. + * sh.h (TARGET_SWITCHES): -m3 and -m3l also set SH2_BIT. + (OVERRIDE_OPTIONS): Don't add CPU_SH2 to CPU_SH3 when TARGET_SH3. + * sh.md (ashlsi3): Use nonmemory_operand as a predicate instead of + shiftby_operand. Don't use shiftby_operand in the output statement. + (lshrsi3): Likewise. + + * c-decl.c (poplevel): Do output inline function if + DECL_ABSTRACT_ORIGIN points to itself. + + * varasm.c (output_constant): Cast assemble_string argument to char *. + +Mon Apr 10 14:29:28 1995 Torbjorn Granlund + + * recog.c (constrain_operands, case 'E'): Make this work like + constraint character `F' when REAL_ARITHMETIC is defined. + * regclass.c (record_reg_classes, case 'E'): Likewise. + * reload.c (find_reloads, case 'E'): Likewise. + +Mon Apr 10 14:30:31 1995 Michael Meissner + + * rs6000/aix3newas.h, rs6000/aix41.h: Eliminate March 11th changes + to undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}, since this causes the + compiler not to bootstrap. + +Mon Apr 10 07:17:39 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cppalloc.c: #include config.h. + * cppexp.c: Add declarations of xmalloc and xrealloc. + (cpp_parse_expr): Cast args to bcopy to char *. + * cpphash.c: Add declaration of xmalloc. + * cpplib.c (init_parse_options, cpp_reader): Cast args to bcopy, + bcmp, and bzero to char *. + (add_import, push_parse_file, init_parse_file): Likewise. + + * c-common.c (enum attrs): New attribute, A_NOCOMMON. + (init_attribute): Initialize it. + (decl_attributes): Implement it. + * varasm.c (make_decl_rtl): Allow section attribute if -fno-common + or variable is not to be placed in common for some other reason. + + * combine.c (simplify_set): Don't move a SUBREG to dest if it + is changing the size of a hard reg in CLASS_CANNOT_CHANGE_SIZE. + + * reload.c (find_equiv_reg): If goal is a pseudo that got memory, + a store into memory makes it invalid. + * reload1.c (reload_as_needed): Call forget_old_reloads_1 on + pattern before reg elimination. + +Mon Apr 10 00:26:14 1995 Jeffrey A. Law + + * pa.c (pa_reorg): Bump label use count for each entry in an + exploded ADDR_VEC. + +Sun Apr 9 09:22:51 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * i386.md (adddi3, subdi3): Need scratch reg whenever operand 0 in + mem and operands 1 not '0'. + (subdi3): Don't treat two non-equal MEMs as non-aliasing. + +Sat Apr 8 22:53:38 1995 Jeffrey A. Law + + * pa.c (pa_reorg): Fix typo. + +Sat Apr 8 19:36:36 1995 Michael Meissner + + * rs6000/rs6000.h (SELECT_SECTION): TREE_CODE_CLASS must be called + with a tree code, not a tree value. + +Sat Apr 8 12:41:01 1995 Mike Stump + + * cpphash.c: Don't use const on compilers that don't support it. + +Sat Apr 8 16:32:22 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * expr.c (expand_increment): Handle case where INCREMENTED + has a non-trivial conversion. + +Fri Apr 7 19:33:21 1995 Phil Nelson (phil@cs.wwu.edu) + + * ns32k.h (TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): + Fix assembler syntax errors. + +Fri Apr 7 19:27:23 1995 Pat Rankin (rankin@eql.caltech.edu) + + * cccp.c (VMS_fstat, VMS_stat): New functions. + +Fri Apr 7 19:25:21 1995 Paul Eggert + + * cccp.c (collect_expansion): If traditional, set stringify + member to SHARP_TOKEN regardless of the value of + stringify_sharp_token_type. + +Fri Apr 7 07:48:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (simplify_unary_operation): #ifdef POINTERS_EXTEND_UNSIGNED, + handle sign- or zero-extending addresses. + + * optabs.c (init{,_integral,_floating,_complex}_libfuncs): + Change SUFFIX to "char" to avoid confusion with prototype. + + * explow.c (convert_memory_address): No longer static. + New arg, TO_MODE. + Do something special for SYMBOL_REF, LABEL_REF, and CONST. + (memory_address): Add extra arg to call to convert_memory_address. + * rtl.h (convert_memory_address): Add extra arg. + * expr.c (expand_expr, case ADDR_EXPR): Always call + convert_memory_address when converting; add extra arg. + * stmt.c (expand_computed_goto): Convert from ptr_mode to Pmode. + + * gcc.c (OBJECT_SUFFIX): Default now ".o", not "o". + (all specs): Remove "." before %O; use %O in a few missing cases. + * i386/os2.h (OBJECT_SUFFIX): Delete from here. + * i386/xm-os2.h (OBJECT_SUFFIX): Move to here; now has period. + + * Makefile.in (STAGESTUFF): Use $(exeext) for executables. + +Fri Apr 7 03:32:29 1995 Richard Stallman + + * config.sub: Accept -lites* as op sys. + +Thu Apr 6 23:08:50 1995 Per Bothner + + * cpplib.c (bcopy, bzero, bcmp): Remove #undefs. + * cppalloc.c (xcalloc): Re-implement using calloc, + rather than malloc+bzero. + * cpplib.c (SELF_DIR_DUMMY): New macro. + (do_include): Don't pass searchptr to finclude if it is dsp, + since that is on the stack, and would cause a dangling pointer. + If handling #include_next, recognize SELF_DIR_DUMMY. + +Fri Apr 7 00:54:24 1995 Jeffrey A. Law + + * pa.h (MACHINE_DEPENDENT_REORG): Define. + * pa.md (switch_jump): New pattern for jumps which implement + a switch table. + * pa.c (pa_reorg): New function to explode jump tables. + (pa_adjust_insn_length): Account for jumps in switch tables with + unfilled delay slots. + +Thu Apr 6 14:31:10 1995 Jason Merrill + + * c-typeck.c (build_binary_op): Don't call common_type for + uncommon pointer types. + +Wed Apr 5 13:53:17 1995 Per Bothner + + Re-write fixproto/fix-header/etc to use cpplib: + * fix-header.c: Comment out support for adding missing extern "C" + using #ifdef ADD_MISSING_EXTERN_C instead of #if 0. + * fixproto: Removed case of required functions. Instead use ... + * fix-header.c (std_include_table): ... new required-functions table. + (cpp_file_line_for_message, cpp_print_containing_files, cpp_message): + New stub functions, to intercept cpplib error message. + * fixproto: Don't call $CPP, since fix-header now incorporates cpplib. + * gen-protos.c (fatal, hashf): New functions. + (main): Use hashf, instead of hash. + * scan-decls.c (scan_decls, skip_to_closing_brace): Re-write to + take a cpp_reader* as argument, not a FILE*. + * scan.h (hash): Make parameter const. + * scan.c (hash): Removed. + * scan.c (memory_full, xmalloc, xrealloc): Removed. + Use functions from cppalloc.c instead. + * Makefile.in (gen-prtos, fix-header, stmp-fixproto): Update. + +Wed Apr 5 13:24:14 1995 Per Bothner + + * cpplib.c (cpp_get_token): If traditional, return after comment, + instead of reading more, so end-of-line can be peeked at. + * cpperror.c (cpp_file_line_for_message, cpp_message): New + functions, that do the actual printing of error messages. + (cpp_print_file_and_line, cpp_error, cpp_warning, cpp_pedwarn, + cpp_error_with_line, cpp_warning_with_line, cpp_pedwarn_with_line, + cpp_pedwarn_with_file_and_line, cpp_error_from_errno, my_strerror, + cpp_perror_with_name): Re-write to use cpp_file_line_for_message + and cpp_message, and move to cpplib.c. + +Tue Apr 4 23:35:49 1995 Roland McGrath + + * config/gnu.h (GNU_CPP_PREDEFINES): Remove -D__HURD__. + +Tue Apr 4 17:15:54 1995 Jeffrey A. Law + + * pa.h (DO_GLOBAL_DTORS_BODY): Fix pointer -> integer assignment + problem. + + * reorg.c (fill_simple_delay_slots): Don't use a JUMP_INSN + a the target of another JUMP_INSN to fill a delay slot. + +Mon Apr 3 19:03:48 1995 Torbjorn Granlund + + * cse.c (simplify_unary_operation): Sign-extend constants when + they have the most significant bit set for the target. + + * m68k.md (umulsi3_highpart): Test for CONST_INT and CONST_DOUBLE, + not CONSTANT_P. + (smulsi3_highpart): Likewise. + * m68k.c (const_uint32_operand): New function. + (const_sint32_operand): New function. + * m68k.md (const_umulsi3_highpart): Use const_uint32_operand instead + of immediate_operand for op3. Delete mode. + (const_smulsi3_highpart): Analogous change. + +Mon Apr 3 19:03:48 1995 Jim Wilson + + * cse.c (simplify_binary_operation): Sign-extend constants when + they have the most significant bit set for the target. + + * combine.c (force_to_mode, case PLUS): Sign extend masks that are + negative in OP_MODE. + (simplify_and_const_int): Sign-extend constants when they have the + most significant bit set for the target. + (merge_outer_ops): Likewise. + (simplify_shift_const): Likewise. + +Mon Apr 3 18:23:48 1995 Jason Merrill + + * toplev.c (lang_options): Add -f{no-,}repo. + +Mon Apr 3 18:13:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (nonzero_bits, case REG): Check POINTERS_EXTEND_UNSIGNED. + (num_sign_bit_copies, case REG): Likewise. + * explow.c (convert_memory_address): New function. + (memory_address): Call if it needed. + (promote_mode, case POINTER_TYPE): Use Pmode and pointer extension. + (allocate_dynamic_stack_space): Convert size from ptr_mode. + * expr.c (clear_storage, expand_assignment, store_{expr,constructor}): + Use ptr_mode instead of Pmode in some places. + (expand_expr, expand_builtin): Likewise. + (push_block, store_expr): Convert size to Pmode. + (expand_expr, case ADDR_EXPR): Convert from Pmode to ptr_mode. + +Mon Apr 3 18:00:52 1995 Jim Wilson + + * explow.c (allocate_dynamic_stack_space): Correct typo in last + change. + + * sh.c (gen_shifty_op, case ASHIFTRT): Return 0 if shift count is not + a constant. + +Mon Apr 3 12:17:10 1995 Michael Meissner (meissner@cygnus.com) + + * expmed.c (extract_bit_field): When converting a SUBREG into a + REG, if the system is big endian, adjust the bit offset + appropriately. + +Mon Apr 3 00:08:45 1995 Roland McGrath + + * config/i386/linux.h: Include "config/linux.h" instead of + "linux.h", to avoid recursion. + +Sun Apr 2 23:50:27 1995 Roland McGrath + + * config/i386/gnuelf.h: Include i386/linux.h instead of + i386/linuxelf.h. + +Sun Apr 2 17:35:10 1995 Jim Wilson + + * cse.c (simplify_relational_operation): Don't simplify A-B for + compare of A and B when the compare is unsigned. + +Sun Apr 2 08:23:38 1995 Paul Eggert + + * fixincludes (stdio.h): BSDI 2.0 changed the spelling of _VA_LIST_ + to _BSD_VA_LIST_. + +Sun Apr 2 07:57:28 1995 Richard Kenner + + * i386/xm-bsd386.h: New file. + * configure (i[345]86-*-bsd*): Add xm_file. + + * gcc.c (default_compilers): Pass -W and -w to gnat1. + + * winnt/winnt.h (STDC_VALUE): Add #undef. + * i386/winnt.h (LIB_SPEC): Likewise. + +Sun Apr 2 07:55:25 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386/winnt.h (RETURN_POPS_ARGS, ENCODE_SECTION_INFO): Call + chain_member_purpose, not chain_member_value. + (ASM_FILE_START, LIB_SPEC): Move to here. + * winnt/winnt.h (ASM_FILE_START, LIB_SPEC): Delete from here. + * tree.c (chain_member_purpose): New function. + +Sat Apr 1 12:19:14 1995 Jason Merrill + + * c-typeck.c (build_binary_op): New variable build_type controls + type given to expression when created. Set to integer_type_node for + comparison ops instead of result_type so result_type still holds type + in which comparison is done. When checking for comparison between + signed and unsigned, use result_type rather than (possibly shortened) + type of op0. Don't warn about equality comparison of signed operand + to unsigned constant that fits in signed type. + +Sat Apr 1 09:47:02 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386/winnt.h (CPP_PREDEFINES): Add definitions for __stdcall + and __cdecl. + * winnt/winnt.h (LIB_SPEC): Add OLDNAMES.LIB. + * winnt/xm-winnt.h: Remove unneeded #define's for non-ANSI functions. + * fixinc.winnt: Remove unneeded fixes relating to __stdcall. + + * objc/Makefile (SHELL): New definition. + +Sat Apr 1 08:25:26 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * cse.c (cse_insn): When emitting a BARRIER, don't put it after + a deleted insn. + + * reload.c (push_reload): Initialize secondary_{in,out}_icode. + + * gcc.c (print_multilib_info): Don't use LAST_PATH if not set. + +Sat Apr 1 08:15:59 1995 Pat Rankin (rankin@eql.caltech.edu) + + * vax.md (extv, extzv): Don't use immediate value for operand 1. + +Sat Apr 1 07:48:29 1995 Yury Shevchuk (sizif@botik.yaroslavl.su) + + * stmt.c (expand_asm_operands): Properly ignore invalid reg in clobber. + +Sat Apr 1 07:02:24 1995 Paul Eggert + + * cccp.c: General code cleanup. + Add prototypes for static functions. + Remove unnecessary casts to (char *); add casts to (U_CHAR *). + Add parentheses suggested by `gcc -Wparentheses'. + Rename local variables as suggested by `gcc -Wshadow'. + , , , : New includes. + , : Include only if defined(RLIMIT_STACK). + : Include, unless already does. + (HAVE_FCNTL_H, HAVE_STDLIB_H, HAVE_SYS_TIME_H): New symbols. + (HAVE_UNISTD_H, STDC_HEADERS, TIME_WITH_SYS_TIME): Likewise. + (__attribute__, PROTO, VA_START, PRINTF_ALIST, PRINTF_DCL): New macros. + (PRINTF_PROTO{,_1,_2,_3}, DO_PROTO): Likewise. + (bcopy, bzero, bcmp): If #defined by configuration file, use that. + If STDC_HEADERS is defined, use standard C functions. + If BSTRING is defined, or USG and VMS are not defined, use + the C library. Otherwise, use my_bcopy, my_bzero, my_bcmp. + (localtime): Remove no-longer-necessary explicit declaration. + (getenv, index, rindex): Don't declare explicitly if the + appropriate system header should declare it. + (fdopen): Remove no-longer-used declaration. + (vprintf): Define a subsitute macro if !defined(HAVE_VPRINTF). + (main): Replace `fdopen (dup (fileno (stdout)), "w"))' + with `stdout'. + (get_lintcmd, rescan, create_definition): Use bcmp instead of strncmp + when both operands are known to be free of null bytes. + (check_macro_name, compare_defs, collect_expansion): Likewise. + (do_assert, compare_token_lists, assertion_lookup, do_line): Likewise. + (skip_if_group, lookup): Likewise. + (rescan): Remove unused label `startagain'. + Abort instead of printing nonsense if the stack is corrupted + when there was an unterminated successful conditional. + (pcfinclude): Include explicit double-cast through GENERICPTR + to identify particularly egregious type puns. + (create_definition, do_define, check_macro_name): Use %.*s + printf format to avoid painful copying-and-casting. + (do_once): Return void, not (unused) int. + (do_ident, do_pragma, do_sccs): Accept extra arguments so that + all directive-handler's types match. + (do_sccs): Define only if SCCS_DIRECTIVE is defined. + (skip_if_group, dump_single_macro): Add `default: break;' to + keep -Wswitch happy. + (error, warning, error_with_line, vwarning_with_line, pedwarn): Use + stdarg/vararg/vfprintf instead of passing bogus char * args around. + (pedwarn_with_line, pedwarn_with_file_and_line, fatal): Likewise. + (verror, vwarning, verror_with_line, vwarning_with_line): New fcns. + (dump_single_macro): Abort if ap points to garbage. + (make_definition, make_undef, make_assertion): Parameter now char *. + (xmalloc, xrealloc, xcalloc, savestring, index0): Make sizes size_t + instead of unsigned; make pointer parameters GENERICPTR, not char *. + (xcalloc): Use bzero to clear memory instead of using own loop. + +Fri Mar 31 08:33:07 1995 Ken Raeburn (raeburn@wombat.gnu.ai.mit.edu) + + * longlong.h (umul_ppmm mc68000): Use %# instead of #. + +Fri Mar 31 06:37:54 1995 Michael Meissner (meissner@cygnus.com) + + * stor-layout.c (layout_decl): Implment -fpack-struct. + (layout_record): Ditto. + + * flags.h (flag_pack_struct): New flag variable. + + * toplev.c (flag_pack_struct): New flag variable. + (f_options): Add -fpack-struct support. + + * Makefile.in (stor-layout.o): Add flags.h dependency. + +Fri Mar 31 08:40:16 1995 Douglas Rupp (drupp@cs.washington.edu) + + * configure (i[345]86-*-winnt3*): Add tmake_file. + * i386/x-winnt (winnt.o): Deleted. + * i386/t-winnt: New file. + +Fri Mar 31 07:26:37 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * m68k/netbsd.h, m68k/hp3bsd44.h: Remove #include of machine/ansi.h. + + * configure (a29k-*-bsd): Set tmake_file to t-libc-ok. + + * stmt.c (expand_asm_operands): Properly handle output that can't + be directly written into. + + * c-parse.in (structsp): Correct error in last change. + * c-common.c (init_attributes): A_FORMAT is only for decls. + +Thu Mar 30 18:27:34 1995 Jason Merrill + + * libgcc2.c: Remove explicit 0-initializations of static variables. + +Thu Mar 30 18:22:39 1995 Fergus Henderson + + * c-typeck.c (internal_build_compound_expr): Warn if LHS of comma + expression has no side effects, or computes value which is not used. + * stmt.c (make warn_if_unused_value): No longer static. + * tree.h (warn_if_unused_value): Add declaration. + +Thu Mar 30 18:15:11 1995 Jim Wilson + + * combine.c (get_last_value): Revert back to use prev_nonnote_insn + instead of prev_real_insn. Modify test that ignores USE insns. + + * rs6000.h (SELECT_SECTION): Apply constant DECL_INITIAL test + only to DECLs. + + * explow.c (allocate_dynamic_stack_space): Test STACK_BOUNDARY against + BIGGEST_ALIGNMENT at run time instead of at compile time. + Give MUST_ALIGN macro a value, and test this value in if statements. + +Thu Mar 30 08:59:56 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in: Now have 27 shift/reduce conflicts. + (attribute_list): Just make chain of all attributes. + (attrib): Consistently put name as PURPOSE, args, if any, as VALUE. + (structsp): Allow attributes on any struct or union. + * c-common.c (enum attrs): New enum class. + (attrtab, attrtab_idx): New variables. + (add_attribute, init_attributes): New functions. + (decl_attributes): Major rewrite. + * tree.c (valid_machine_attribute): Now receive name and args. + +Thu Mar 30 07:20:14 1995 Paul Eggert + + * protoize.c: Use the phrase `preprocessing directive' consistently. + * cccp.c (handle_directive, do_line, skip_if_group): Likewise. + (output_line_directive): Renamed from output_line_command. + (no_line_directives): Renamed from no_line_commands. + + * cccp.c (rescan): Don't recognize preprocessing directives + within macro args. Warn if one is found. + +Thu Mar 30 06:20:36 1995 H.J. Lu (hjl@nynexst.com) + + * configure (i[345]86-*-linux*): Set xmake_file=x-linux, + tm_file=i386/linux.h, and don't set extra_parts. + (i[345]86-*-linux*aout*): New configuration. + (i[345]86-*-linuxelf): Deleted. + * config/linux{,-aout}.h, config/x-linux, config/xm-linux.h: New files. + * config/i386/linux-aout.h: New file. + * config/i386/linux.h: Extensive modifications to use ELF format + as default. + (LIB_SPEC): Don't use libc_p.a for -p. don't use libg.a + unless for -ggdb. + (LINUX_DEFAULT_ELF): Defined. + * config/i386/linuxelf.h,config/i386/x-linux: Files deleted. + * config/i386/xm-linux.h: Just include xm-i386.h and xm-linux.h. + +Wed Mar 29 19:09:36 1995 Mike Stump + + * libgcc2.c (__throw_type_match): Update to use new calling convention. + +Wed Mar 29 14:53:23 1995 Jim Wilson + + * gcc.c (process_command): Delete code modifying gcc_exec_prefix. + (main): Put it here after last use of gcc_exec_prefix. For cross + compiler, set startfile_prefixes if gcc_exec_prefix is set and + standard_startfile_prefix is a relative path. + + * combine.c (make_compound_operation, AND case): Undo July 7, 1994 + change. + + * mips/mips.md (call_internal1, call_value_internal1): Move %* from + start of assembler output to immediately before the jal. + + * mips/mips.c (function_prologue): Put SDB_DEBUGGING_INFO ifdef around + code for SDB_DEBUG support. + (mips_select_rtx_section, mips_select_section): Change rdata_section + to READONLY_DATA_SECTION and sdata_section to SMALL_DATA_SECTION. + * mips/mips.h (SMALL_DATA_SECTION): Define. + + * reorg.c (mark_referenced_resources): Make setjmp use all registers. + + * flow.c (mark_used_regs, case SUBREG): Only fall through to REG case + if operand is a REG. + + * i960/i960.h (TARGET_SWITCHES): Make -mold-align set + TARGET_FLAG_STRICT_ALIGN. + (STRICT_ALIGNMENT): Test TARGET_STRICT_ALIGN. + + * sh/sh.c (andcosts): Modify costs to match the hardware, and add + explanatory comments. + + * sparc/sol2.h (CPP_PREDEFINES): Add -D__SVR4. + +Wed Mar 29 14:30:30 1995 Michael Meissner + + * rs6000/rs6000.md (movsf): When moving to/from integer registers, + don't move floating point to memory if it is being simulated with + -msoft-float. + +Wed Mar 29 06:47:36 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-parse.in (initdcl): Only call decl_attributes once. + * c-common.c (decl_attributes): Clean up test for __mode__. + +Tue Mar 28 08:34:37 1995 John Hassey (hassey@dg-rtp.dg.com) + + * i386.md (adddi3): Don't treat two non-equal MEMs as non-aliasing. + +Tue Mar 28 08:20:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * a29k.h (CONSTANT_ADDRESS_P): Provide consistent definition. + +Tue Mar 28 07:26:41 1995 Paul Eggert + + * cccp.c (do_xifdef, do_endif): Remove unnecessary pointer comparisons. + +Mon Mar 27 20:45:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * calls.c (expand_call, store_one_arg): Don't set KEEP in calls + to assign_stack_temp. + * function.c (preserve_temp_slots): Clear ADDR_TAKEN on item + that we are preserving. + +Mon Mar 27 14:39:35 1995 Ian Lance Taylor + + * mips/mips.h (FIRST_PSEUDO_REGISTER): Increment. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Add new register. + (MD_REG_LAST): Increment. + (ST_REG_FIRST, ST_REG_LAST): Increment. + (HILO_REGNUM): Define. + (enum reg_class): Add HILO_REG. + (REG_CLASS_NAMES): Add "HILO_REG". + (REG_CLASS_CONTENTS): Add HILO_REG initializer, and adjust ST_REGS + and ALL_REGS initializers. + (SECONDARY_RELOAD_CLASS): Remove. + (SECONDARY_INPUT_RELOAD_CLASS): Define. + (SECONDARY_OUTPUT_RELOAD_CLASS): Define. + (REGISTER_MOVE_COST): Treat HILO_REG as MD_REGS. + (REGISTER_NAMES): Add initialization line. + (DEBUG_REGISTER_NAMES): Add "accum". + * mips/mips.md: For each instruction which sets HI or LO, clobber + HILO_REGNUM with (clobber (match_scratch:MODE N "=a")). Change + each explicit reference to register 66 to register 67. + (mulsidi3): Change to define_expand. + (mulsidi3_internal): New name of old mulsidi3. + (mulsidi3_64bit): New insn. + (umulsidi3): Change to define_expand. + (umulsidi3_internal): New name of old umulsidi3. + (umulsidi3_64bit): New insn. + (madddi_64bit, umaddi_64bit): New insns. + (movdi_internal2): Add case for setting HILO_REG to zero. + (reload_indi, reload_outdi): New define_expands. + (movsi_internal1, movsi_internal2): Add cases for setting MD_REGS + to zero, and for setting a general reg to HILO_REG. + (reload_outsi): New define_expand. + * mips/mips.c (mips_reg_names): Add "accum". + (mips_sw_reg_names): Likewise. + (mips_regno_to_class): Map HILO_REGNUM to HILO_REG. + (mips_move_1word): Handle moving HILO_REGNUM to a general + register. Make sure that the normal MD_REG cases aren't used for + HILO_REGNUM. Handle moving zero to a MD_REG. + (mips_move_2words): Make sure that the normal MD_REG cases aren't + used for HILO_REGNUM. Handle moving zero to a MD_REG. + (override_options): Set mips_char_to_class for 'a' and 'b'. + (mips_secondary_reload_class): Add in_p argument. Handle + HILO_REGNUM. + +Mon Mar 27 07:16:05 1995 Warner Losh + + * gcc.c: Removed __NetBSD__ from conditional. + Declare strerror if HAVE_STRERROR is defined; otherwise + declare sys_errlist and sys_nerr. + (my_strerror): New function. + +Fri Mar 24 18:08:14 1995 Jason Merrill + + * i386/linux.h (LIB_SPEC): Don't try to link with libraries we + know only exist in archive form unless -static. + +Fri Mar 24 16:12:16 1995 Doug Evans + + * Makefile.in (multilib.h): Depend on Makefile, not config.status. + +Fri Mar 24 15:01:17 1995 Michael Meissner + + * rs6000/rs6000.h (TARGET_MULTIPLE_SET): New target_flags bit that + indicates -mmultiple or -mno-multiple was explicitly passed by the + user, and not set as part of the cpu defaults. + (TARGET_SWITCHES): Set TARGET_MULTIPLE_SET bit for both -mmultiple + and -mno-multiple. + + * rs6000/rs6000.c (rs6000_override_options): If -mmultiple or + -mno-multiple was explicitly used, don't override the setting with + the processor default. + +Wed Mar 22 21:42:13 1995 Doug Evans + + * i960/i960.c (i960_function_arg_advance): Ensure all regs marked + as used if stack is also used (for va_start). + (i960_setup_incoming_varargs): Rewrite to be similar to Intel's + version, but don't allocate reg block unless necessary. + * ginclude/va-i960.h (varargs va_start): Save g14 explicitly. + Account for arguments preceding va_alist. + +Wed Mar 22 13:24:55 1995 Torbjorn Granlund + + * pa.c (singlemove_string): Handle SFmode constants again. Simplify. + (zdepi_cint_p): Make some variables HOST_WIDE_INT. + (lhs_lshift_cint_operand): Likewise. + (output_and): Likewise. + (output_ior): Likewise. + +Wed Mar 22 12:40:09 1995 Jim Wilson + + * sh.md (udivsi3): Don't clobber register 6. + (udivsi3, divsi3, mulsi3_call): Use a pseudo-reg with regclass 'z' + for output rather than hard register 0. + (block_move_real): Don't clobber registers 4 and 5. + + * mips.c (mips_select_section): Apply constant DEC_INITIAL tests + only to VAR_DECLs. + +Wed Mar 22 03:53:17 1995 Richard Stallman + + * config.sub (rm400, rm600): New machine names. + (sinix5.*, sinix): New os aliases. + (mips-siemens): Default os to sysv4. + +Mon Mar 20 21:56:47 1995 Per Bothner + + Merged Paul Eggert's patch to cccp.c of Wed Mar 8 18:21:51 1995: + * cpplib.c (do_include): Fix type typo: pcfbuflimit is char *, not int. + + Merged Doug Evans' patch to cccp.c of Mon Feb 27 17:06:47 1995: + * cpplib.c (do_include): Check for redundant file before opening in + relative path case. Don't call fstat unnecessarily. + + Merged J.T. Conklin's patch to cccp.c of Wed Feb 22 20:29:31 1995: + * cpperror.c: Removed __NetBSD__ from conditional. + + Merged Kenner's patch to cccp.c & cexp.y of Tue Sep 20 17:49:47 1994: + * cppexp.c (struct operation): Make value by HOST_WIDE_INT. + (cpp_parse_expr): Change return type to HOST_WIDE_INT. + * cpplib (eval_if_expr): Likewise. + (do_if, do_elif): Update appropriately. + * cpplib.h (cpp_parse_expr): Removed, to avoid defining HOST_WIDE_INT. + + Merged Paul Eggert's patch to cccp.c of Mon Aug 8 19:42:09 1994: + * cpplib.c (create_definition): Warn about `#define a@', since a + diagnostic is now required (see ISO TC1's addition to subclause 6.8). + Also warn about `#define is-empty(x) (!x)'. + +Tue Mar 21 00:10:50 1995 Jeffrey A. Law + + * x-pa (CC): Add "-Dbsd4_4". + +Mon Mar 20 18:40:31 1995 Per Bothner + + * toplev.c (print_error_function): New function hook. + (default_print_error_function): New function. Default value + of print_error_function. Code moved here from report_error_function. + (report_error_function): Use print_error_function hook. + +Mon Mar 20 20:27:43 1995 Doug Evans + + * cccp.c (do_xifdef): Handle c++ comments. + (do_endif): Likewise. + +Mon Mar 20 15:31:45 1995 Jason Merrill + + * configure (i386 configurations): Prepend i386/ to t-crt*. + +Mon Mar 20 07:58:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * stmt.c (fixup_gotos): Add missing call from last change. + + * objc/misc.c: Put Alpha-specific decls before #include of runtime.h. + + * alpha.h (EXTRA_SECTIONS): Write zeros first time in .rdata. + +Sat Mar 18 16:37:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * flow.c (mark_used_regs, case SUBREG): Set reg_changes_size even + for integer modes. + (mark_used_regs): Set reg_changes_size for RHS, if necessary. + * combine.c (gen_lowpart_for_combine): Set reg_changes_size, if needed. + * reload.c (push_reload): Reload a SUBREG if paradoxical and + class is CLASS_CANNOT_CHANGE_SIZE. + * reload1.c (gen_reload): Handle paradoxical SUBREGs. + * alpha.h (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS): Need GENERAL_REGS + for paradoxical SUBREG and FLOAT_REGS. + (SECONDARY_NEEDED_MODE): Use actual mode for 4 bytes or wider. + * alpha.md (movsi): Allow FP regs and add case for store of FP reg. + Remove cvtlq from MEM to FP reg case. + + * rtl.h (emit_insns_after): Add declaration. + * stmt.c (fixup_gotos): Do a cleanup for a block when it is exited + even if label if not defined yet. + + * function.c (pop_function_context): Fix error in last change; + reference old value of current_function_decl before we modify it. + +Fri Mar 17 21:57:44 1995 Jason Merrill + + * toplev.c (rest_of_compilation): Handle -Wreturn-type properly + for inlines we aren't compiling yet. + +Fri Mar 17 21:26:48 1995 Mike Stump + + * libgcc2.c (__register_exceptions): Handle empty tables. + +Fri Mar 17 11:48:31 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386/winnt.c (winnt_function_prologue): Deleted. + (gen_stdcall_suffix): New function. + +Thu Mar 16 17:36:52 1995 Jason Merrill + + * svr4.h (LINK_SPEC): If the user did not specify -h name, use the + output file name, if any. + * sparc/sol2.h (LINK_SPEC): Ditto. Also, if the user did not + specify -R path, add an -R for each -L. + + Move SunOS 4-specific assembler switches into the appropriate place. + * m68k/sun[23].h (ASM_SPEC): Add %{R} %{j} %{J} %{h} %{d2} + %{keep-local-as-symbols:-L}. + * i386/sun.h (ASM_SPEC): Add %{R} %{keep-local-as-symbols:-L}. + * sparc/sparc.h (ASM_SPEC): Ditto. + * gcc.c (default_compilers): Remove %{R} %{j} %{J} %{h} %{d2} + %{keep-local-as-symbols:-L} from assembler rules. + +Thu Mar 16 16:58:09 1995 Michael Meissner + + * rs6000/eabi-ctors.c: New file, handle C++ static constructors + and destructors without requiring anything else from a libc. + + * rs6000/t-eabi (LIB2FUNCS_EXTRA): Build eabi-ctors.c. + + * rs6000/eabi.asm: Do not load up register 2 if there is no .got + section. Jump to the __do_global_ctors function at the end of + processing to call C++ static constructors, and it will return to + __eabi's caller. Use normal volatile registers, instead of saving + and restoring registers 30 and 31. + + * rs6000/eabi.h (STARTFILE_SPEC): Define as null. + (LIB_SPEC): Ditto. + (ENDFILE_SPEC): Ditto. + (LIBGCC_SPEC): Always look for libgcc.a. + +Thu Mar 16 17:05:14 1995 Richard Kenner + + * stmt.c (warn_if_unused_value, case SAVE_EXPR): New case. + (warn_if_unused_value, case NOP_EXPR): OK if CALL_EXPR inside. + + * c-common.c (decl_attributes): Allow alignment for TYPE_DECLs. + + * Makefile.in (xsys-protos.h): Fix typo in -U operand. + +Thu Mar 16 13:49:10 1995 Per Bothner + + * cpplib.c, cpplib.h: New files - a C PreProcessor library. + * cpphash.c, cpphash.h, cppalloc.c, cpperror.c, cppexp.c: + New files - utility features used by cpplib. + * cppmain.c: New file - cpp replacement main program for cpplib. + * Makefile.in: New rules to build cppmain. + +Thu Mar 16 16:11:05 1995 Douglas Rupp (drupp@cs.washington.edu) + + * i386/winnt.h (FUNCTION_PROLOGUE, HAVE_probe, gen_probe): Deleted. + (ENCODE_SECTION_INFO, VALID_MACHINE_DECL_ATTRIBUTE): New macro. + +Thu Mar 16 15:58:24 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * combine.c (apply_distributive_law, case SUBREG): Fix typo when + checking for paradoxical SUBREG. + +Wed Mar 15 18:45:08 1995 Doug Evans + + * libgcc1-test.c: Renamed from cross-test.c. + * Makefile.in (LIBGCC1_TEST): Renamed from CROSS_TEST. + (all.cross): Delete $(ENQUIRE) dependency. + (libgcc1-test): Renamed from cross-test. + Delete unnecessary gcc-cross and $(LIBGCC) dependencies. + Link with -nostartfiles -nostdlib + `$(GCC_FOR_TARGET) --print-libgcc-file-name`. + (libgcc1-test.o): Renamed from cross-test.o. + Change gcc-cross dependency to xgcc since the latter is used. + +Wed Mar 15 13:49:21 1995 Jason Merrill + + * tree.c (save_tree_status): Now takes a tree 'context' instead of + a boolean 'toplevel' as an argument. If 'context' is not + current_function_decl, create a new obstack for the new function. + Also save inline_obstacks. + (restore_tree_status): No longer takes a second argument. Also + restore inline_obstacks. + (temporary_allocation): Clear inline_obstacks. + (permanent_allocation): Free up the obstacks in inline_obstacks. + + * function.h (struct function): New fields contains_functions and + inline_obstacks. + + * function.c (push_function_context_to): Now takes a tree + 'context' instead of a boolean 'toplevel' as an argument. + Also save current_function_contains_functions. + (push_function_context): Pass current_function_decl to it. + (pop_function_context_from): Takes 'context' instead of 'toplevel'. + Set current_function_contains_functions properly. + (pop_function_context): Pass current_function_decl to it. + +Wed Mar 15 14:53:09 1995 Michael Meissner + + * rs6000/rs6000.md (abssi2): Turn into a define_expand. If + TARGET_POWER, do old code that uses the abs instruction. If not, + do abs in three instructions, using a temporary register, which + enables generating more reasonable code for sne. Add a recognizer + for negative of the absolute value. Add define_splits for the + PowerPC. + (sne insn): Add a recognizer for sne on the PowerPc to use two + instructions, compared to the four generated using the absolute + value insn. + +Tue Mar 14 18:38:40 1995 J.T. Conklin + + * m68k.md ({add,sub,mul,div}[sdx]f3): Add new patterns for recognizing + SImode, HImode, and QImode operands. + +Mon Mar 13 18:59:36 EST 1995 David Edelsohn + + * rs6000.h (CPP_SPEC): Add PPC403. + (processor_type): Add PPC403. + (RTX_COSTS): Add PPC403. + * powerpc.h (CPP_SPEC): Add PPC403. + * sysv4.h (CPP_SPEC): Add PPC403. + * rs6000.c (processor_target_table): Add PPC403. + * rs6000.md (define_attr cpu and function units): Add PPC403. + +Mon Mar 13 14:40:23 1995 Michael Meissner + + * rs6000/rs6000.md (call, call_value insns): Do not put a nop + after a bl instruction on System V.4 and eABI. + + * rs6000/sysv.4 (SUBTARGET_SWITCHES): Add support for + -mno-traceback to suppress the V.4 traceback word. + (ASM_DECLARE_FUNCTION_NAME): Don't put out a traceback work if + -mno-traceback. + +Mon Mar 13 13:36:37 1995 Jason Merrill + + * t-svr4, i386/t-{crtpic,sol2}, m88k/t-svr4, sparc/t-sol2: + Use -fPIC, rather than -fpic, for building crtstuff. + +Sat Mar 11 17:27:08 1995 Jason Merrill + + * configure: Use aix3newas.h for AIX 3.2.4 and 5. + * rs6000/aix41.h: Undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}. + * rs6000/aix3newas.h: New file. Define ASM_SPEC to -u, and + undefine ASM_OUTPUT_EXTERNAL{,_LIBCALL}. + +Sat Mar 11 06:42:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * dbxout.c (dbxout_symbol): Properly handle decl whose DECL_NAME + points to a TYPE_DECL with a zero TYPE_NAME. + +Fri Mar 10 18:18:33 1995 Torbjorn Granlund + + * pa.h (PROMOTE_MODE): Define. + +Fri Mar 10 14:37:58 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * sdbout.c (sdbout_record_type_name): If TYPE_NAME is + a TYPE_DECL, get name from DECL_NAME. + +Fri Mar 10 14:09:26 1995 Doug Evans + + * arm/riscix.h (SUBTARGET_SWITCHES): Renamed from + ARM_EXTRA_TARGET_SWITCHES. + * arm/riscix1-1.h (SUBTARGET_SWITCHES): Likewise. + * arm.h (SUBTARGET_SWITCHES): Likewise. + (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define. + (TARGET_SWITCHES): Add -msoft-float, -mhard-float. + (BYTES_BIG_ENDIAN): Delete #ifndef/#endif. + (CONDITIONAL_REGISTER_USAGE): If -msoft-float, disable fp regs. + (FUNCTION_VALUE): R16 is return reg only if !-msoft-float. + (LIBCALL_VALUE): Likewise. + * arm.md (all fp patterns): Conditionalize on TARGET_HARD_FLOAT. + (*movsf_soft_insn, *movdf_soft_insn): New patterns. + +Fri Mar 10 13:53:46 1995 Jim Wilson + + * reorg.c (steal_delay_list_from_target): Exit at the top if the + branch in SEQ is not a single set. + + * sh.md (movdi define_split, movdf define_split): Correct indentation + and formatting. Make the condition fail if an operand is a MEM + with an auto-inc address. + + * varasm.c (copy_constant): Copy operand of ADDR_EXPR if it is a + constant. + + * mips/abi64.h (SETUP_INCOMING_VARARGS): Correct arguments to + move_block_from_reg call. + + * expr.c (expand_assignment): When offset is zero, make new MEM + before setting MEM_VOLATILE_P. + + * reload.c (find_reloads, case 'o'): Accept a fully reloaded + auto-increment address. + + * combine.c (max_uid_cuid): New static variable. + (INSN_CUID): Call abort if INSN is out of range. + (combine_instructions): Set max_uid_cuid. Set uid_cuid directly + instead of through INSN_CUID. + (get_last_value): Use prev_real_insn instead of prev_nonnote_insn. + Ignore USE insns generated by combine. + +Fri Mar 10 13:47:08 1995 Rod Barman + + * m68k/fpgnulib.c (__fixdfsi): Catch values < 0.5 in magnitude. + +Fri Mar 10 12:02:33 1995 Ian Lance Taylor + + * fixincludes: Fix `typedef struct term;' on hppa1.1-hp-hpux9. + +Fri Mar 10 05:50:11 1995 Oliver Kellogg (Oliver.Kellogg@RST13.DASA.DBMAIL.d400.de) + + * 1750a.c (sectname): Reverse Init and Normal. + (print_operand_address, case PLUS): Add case for LABEL_REF. + (print_operand_address, case LABEL_REF): Split fom SYMBOL_REF. + (print_operand_address, case CODE_LABEL): New case. + (ASM_FILE_END): Delete. + * 1750a.h (FUNCTION_EPILOGUE): Restore stack before freeing local vars. + (DEFAULT_SIGNED_CHAR): Now 1. + (DATA_SECTION_ASM_OP): Use pseudo-op for read-only data (later copied). + (JUMP_TABLES_IN_TEXT_SECTION): Define. + (ASM_OUTPUT_ASCII): Split into multiple lines if long. + (ASM_OUTPUT_{CHAR,SHORT,INT,LONG_INT}): Split up. + (ASM_OUTPUT_COMMON): Call check_section. + +Thu Mar 9 12:46:53 1995 Michael Meissner + + * rs6000.md (movsf): Do not call truncdfsf2 for non PowerPC + when expanding a store to memory and -msoft-float was used. + +Thu Mar 9 08:51:35 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * c-decl.c (start_function): Handle new parameter ATTRIBUTES. + * c-tree.h (start_function): Add new parameter. + * c-lang.c (finish_file): Pass new parm to start_function. + * objc-act.c (build_module_descriptor, really_start_method): Likewise. + * c-parse.in (fndef, nested_function): Pass prefix_attributes + to start_function. + (setspecs): Save prefix_attributes in declspec_stack. + (decl rules): Restore prefix_attributes along with current_declspecs. + (setattrs): Concatenate prefix_attributes to previous value. + * c-common.c (decl_attributes): Handle prefix and suffix attributes + the same way. + + * print-tree.c (print_node): Fix typo in printing large INTEGER_CST. + + * varasm.c (assemble_variable): Consistently use DECL_SIZE for + everything. + + * c-typeck.c (convert_for_assignment): Fix typo in testing for + pointer to function type. + + * varasm.c (record_constant_1): Handle NON_LVALUE_EXPR. + Rewrite to use switch instead of if/then/elseif/else. + +Wed Mar 8 18:21:51 1995 Paul Eggert + + * cccp.c (do_include): Fix type typo: pcfbuflimit is char *, not int. + +Wed Mar 8 17:30:29 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * fold-const.c (force_fit_type): Always propagate OVERFLOW. + + * rtl.def (INLINE_HEADER): Add new "e" field. + * rtl.h (FORCED_LABELS): New field; other fields adjusted. + (gen_inline_header_rtx): New parm FORCED_LABELS. + * emit-rtl.c (gen_inline_header): Add new parm FORCED_LABELS. + * integrate.c (initialize_for_inline, output_inline_function): + Handle FORCED_LABELS. + +Wed Mar 8 13:47:20 1995 Jason Merrill (jason@cygnus.com) + + * alpha.h (WORD_SWITCH_TAKES_ARG): Add -rpath. + (LINK_SPEC): Pass through -taso and -rpath. + * alpha/osf12.h (LINK_SPEC): Ditto. + +Wed Mar 8 09:59:56 1995 Michael Meissner + + * rs6000/eabi.asm: Rewrite so that the initialized pointers go + into the .got2 section, which allows eabi.asm to be assembled with + the -mrelocatable option. Move the data picked up from the bl + instruction to before the traceback tag. + + * rs6000/sysv4.h (CPP_SPEC): Define _RELOCATABLE if -mrelocatable + switch is used. + + * libgcc2.c (__new_handler): Don't initialize the pointer variable + with the address of __default_new_handler, which may not work in + some shared library mechanisms. + (__builtin_new): If __new_handler is NULL, call the function + __default_new_handler. + +Tue Mar 7 17:34:59 1995 Ian Lance Taylor + + * i960.h (PROCESS_PRAGMA): Define. + (ROUND_TYPE_ALIGN): Pass maximum of COMPUTED and SPECIFIED to + i960_round_align. + (ROUND_TYPE_SIZE): Delete. + * i960.c (process_pragma): Uncomment, and rewrite for gcc 2. + (i960_round_size): Delete. + (i960_round_align): Don't adjust suggested alignment downward. + Restrict alignment to value set by #pragma align. + +Tue Mar 7 12:14:46 1995 Doug Evans + + * configure (sparc64-*-elf): Add crtbegin.o, crtend.o to extra_parts. + * sparc/sp64-elf.h (TARGET_VERSION): Define. + (CPP_PREDEFINES): Delete sun, sparc, unix. Delete OS assertions. + (ASM_SPEC): Define. + (LINK_SPEC): Delete solaris stuff, this is an embedded target. + (STARTFILE_SPEC, ENDFILE_SPEC): Define. + +Mon Mar 6 17:54:01 1995 Doug Evans + + * Makefile.in (install-common): Fix typo in installation of cpp. + Likewise with gcc-cross. + +Mon Mar 6 02:29:05 1995 Jeffrey A. Law + + * pa.md (movsicc): New expander. + +Fri Mar 3 13:34:20 1995 Michael Meissner (meissner@cygnus.com) + + * rs6000/sysv4.h (ASM_SPEC): If -mrelocatable was passed to + compiler, pass it on to the assembler. + +Fri Mar 3 12:11:28 1995 Ian Lance Taylor + + * fixincludes: Add fixes for VxWorks header files. + * ginclude/stddef.h: If VxWorks typedef macros are defined, invoke + them as appropriate. + +Fri Mar 3 05:48:54 1995 Paul Eggert + + * cccp.c (dump_single_macro): Fix typo: % wasn't properly + doubled in printf formats. + +Thu Mar 2 19:44:02 1995 Jason Merrill + + * expr.c (expand_expr, CLEANUP_POINT_EXPR): Force the operand out + of memory before running cleanups. + +Thu Mar 2 19:15:24 1995 Paul Eggert + + * cccp.c (rescan): Prevent accidental token-pasting to + get !=, *=, /=, ==, or ^=. + +Thu Mar 2 15:37:13 1995 Jason Merrill + + * c-typeck.c (build_binary_op): Avoid spurious warning + comparing enumerator to unsigned variable. + +Thu Mar 2 18:18:38 1995 J.T. Conklin + + * m68k.md (sqrtsf2,sqrtdf2): Use fp precision specifiers. + +Thu Mar 2 18:09:01 1995 Stephen L Moshier (moshier@world.std.com) + + * c-lex.c (yylex, case !NOT_FLOAT): Remove previous change. + +Thu Mar 2 15:26:50 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) + + * Makefile.in (bootstrap*): Pass new STAGE_PREFIX to recursive makes. + +Wed Mar 1 14:52:16 1995 Ian Lance Taylor + + * i960/i960-coff.h (ASM_FILE_START): Define. + (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Define. + (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Define. + (INT_ASM_OP): Define. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. + * i960/vx960-coff.h (CPP_PREDEFINES): Define. + (CPP_SPEC): Define. + (CC1_SPEC): Default to -mca. + +Wed Mar 1 11:10:54 1995 Michael Meissner (meissner@cygnus.com) + + * rs6000/rs6000.c (output_prologue): Do not emit the word that + gives the PC relative location to the local GOT table for the + -mrelocatable option here. + * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Emit it here. + + * t-eabi (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Build -msoft-float + and -mrelocatable versions of the library. + + * rs6000/powerpc.h (CPP_PREDEFINES): Define the cpu and machine as + powerpc, not rs6000. + + * libgcc2.c (_unwind_function): Clone for powerpc, using the + PowerPC mnemonics. + + * rs6000/rs6000.md (uminsi3, umaxsi3): Silence warnings that + -2147483648 is too large to fit in a signed integer on 32-bit + hosts. + +Wed Mar 1 06:48:31 1995 Richard Kenner + + * fold-const.c (decode_field_reference): Don't check TREE_CODE + of EXP; let get_inner_reference decide if have reference. + Allow no bit reference if have AND_MASK. + (all_ones_mask_p): Use tree_int_cst_equal, not operand_equal_p. + (unextend): New function. + (fold_truthop): For constant cases, use new function, rework + conversion, and warn if comparison can never be true. + + * expr.c (store_expr): Do conversion in two steps for promoted lhs. + +See ChangeLog.9 for earlier changes. diff --git a/gcc/ChangeLog.11 b/gcc/ChangeLog.11 index f770cc69c78..2eccf3e2c96 100644 --- a/gcc/ChangeLog.11 +++ b/gcc/ChangeLog.11 @@ -1,6 +1,1041 @@ +Fri Dec 5 07:29:26 1997 Richard Kenner + + * Version 2.8.0 released. + +Fri Dec 5 07:24:36 1997 Richard Stallman + + * sparc/linux64.h (TARGET_VERSION): Write "GNU/Linux". + * sparc/linux.h, sparc/linux-aout.h, rs6000/linux.h: Likewise. + * m68k/linux.h, arm/linux.h, alpha/{linux,elf}.h: Likewise. + * listing: Change linux to gnu-linux. + +Fri Dec 5 06:23:22 1997 Paul Eggert + + Alter C startup code so that it doesn't invoke malloc on Solaris. + * frame.h (struct object): Decl moved here from frame.c. + * frame.c (struct object): Move decl to frame.h. + ("frame.h"): Include after , so that size_t is defined. + (__register_frame, __register_frame_table, __deregister_frame): + It's now the caller's responsibility to allocate storage for object. + * crtstuff.c (frame_dummy), collect2.c (write_c_file_stat): + Allocate initial frame object in static storage and pass its address. + * crtstuff.c (, "frame.h"): Include. + * Makefile.in ($(T)crtbegin.o, $(T)crtend.o, stamp-crtS): + Depend on defaults.h and frame.h. + + * Makefile.in (RTL_H, TREE_H): Add gansidecl.h. + (DEMANGLE_H): New macro. All dependencies on demangle.h + changed to $(DEMANGLE_H). + (RECOG_H): Likewise. + (libgcc2.a, stmp-multilib): Add dependencies on frame.h, gansidecl.h. + (collect.o): Add dependency on gansidecl.h. + (gcc.o, choose-temp.o, pexecute.o, prefix.o): Likewise. + (obstack.o, choose-temp.o, pexecute.o): Add dependency on $(CONFIG_H). + +Fri Dec 5 06:20:06 1997 Dean Deaver + + * arm.md (casesi_internal): Add USE of label. + +Fri Dec 5 05:59:44 1997 Richard Kenner + + * configure.in (sys/times.h): Check for this instead of times.h. + * cpplib.c, toplev.c: Properly test for and include sys/times.h. + +Thu Dec 4 12:30:40 1997 J"orn Rennecke + + * sh.c (final_prescan_insn): Use local label prefix when emitting + .uses pseudo-ops. + +Thu Dec 4 07:00:48 1997 Richard Earnshaw + + * arm.c (arm_finalize_pic): Use an offset of 4 when adjusting the + GOT address. + +Thu Dec 4 06:58:32 1997 Dean Deaver + + * genoutput.c (scan_operands): Treat format of "u" like "e". + +Thu Dec 4 06:28:33 1997 Richard Kenner + + * msdos/top.sed, winnt/config-nt.sed: Change version to 2.8.0. + + * stmt.c (pushcase_range): Clean up handling of "infinite" values. + +Wed Dec 3 09:03:35 1997 Bernd Schmidt + + * i386.c (notice_update_cc): Remove bogus Pentium GCC code. + +Wed Dec 3 08:46:32 1997 Paul Eggert + + * arm.h (CPP_ARCH_DEFAULT_SPEC): Fix misspelling: `TARGET_CPU_DEFUALT'. + (TARGET_SWITCHES): Fix misspelling: `no-apcs-rentrant'. + * pa.c (override_options): Fix misspelling: `compatable'. + * enquire.c (main): Fix misspelling in diagnostic: `mallocatable'. + * gcov.c (function_summary): Fix misspelling in diagnostic: `funcion'. + * objc/thr-decosf1.c (__objc_thread_id): Fix misspelling in code: + `pthread_getuniqe_np'. + + * tahoe.c (extensible_operand): Renamed from extendable_operand. + All callers changed. + * dwarf2.h (enum dwarf_discrim_list): Renamed from dwarf_descrim_list. + * dwarf2out.c: Fix misspellings in forward static function + declarations: `add_AT_setion_offset', `add_sibling_atttributes'. + * dwarfout.c: Fix misspellings in forward static function + declarations: `langauge_attribute', `geneate_new_sfname_entry'. + * stmt.c, tree.h (start_cleanup_deferral): + Renamed from start_cleanup_deferal. + (end_cleanup_deferral): Renamed from end_cleanup_deferal. + * toplev.c (rest_of_compilation): Rename local var from + inlineable to inlinable. + +Wed Dec 3 06:17:03 1997 Jason Merrill + + * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start. + +Wed Dec 3 06:06:38 1997 Jim Wilson + + * dwarf2out.c (gen_type_die, case POINTER_TYPE): See TREE_ASM_WRITTEN + before the recursive call. + +Wed Dec 3 05:57:29 1997 Richard Kenner + + * configure.in (AC_HEADER_{STDC,TIME}): Add calls. + (AC_CHECK_HEADERS): Add fcntl.h times.h, sys/times.h, + sys/resource.h, and sys/param.h. + (getenv): Check if need declaration. + * cccp.c: Remove obsolete ways of including headers and use autoconf + symbols instead. + Include gansidecl.h; remove things defined there. + See if getenv needs to be declared. + * cpplib.c: Likewise. + * cexp.y: Use autoconf symbols to select what include files are needed. + * genattrtab.c, toplev.c: Likewise. + +Tue Dec 2 21:44:25 1997 Richard Kenner + + * reload1.c (reload): Make copy of MEM before setting + req_equiv_mem if the address is a PLUS. + +Tue Dec 2 07:03:47 1997 Pat Rankin + + * vax/xm-vms.h (STDC_HEADERS, HAVE_STDLIB, HAVE_STRING): Define. + (mesg_implicit_function_declaration): New macro. + + * make-l2.com: Compile libgcc2.c with `-fexceptions' specified. + +Mon Dec 1 17:44:59 1997 Jeffrey A Law (law@cygnus.com) + + * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to + output ASCII by default; only use ASM_OUTPUT_DWARF_STRING if + flag_debug_asm is on. + (output_die, output_pubnames, output_line_info): Likewise. + +Mon Dec 1 17:15:30 1997 Philip Blundell + + * arm/linux.h (SUBTARGET_CPU_DEFAULT): Define instead + of TARGET_CPU_DEFAULT. + +Mon Dec 1 16:51:23 1997 J.J. van der Heijden + + * i386/mingw32.h (MATH_LIBRARY): Set to "-lcrtdll". + +Mon Dec 1 16:46:57 1997 Richard Kenner + + * c-aux-info.c: Add prototypes for static functions. + * c-lex.c, emit-rtl.c, rtl.c, xcoffout.c: Likewise. + + * i386.h (TARGET_SWITCHES): Add entries for "windows" and "dll". + +Mon Dec 1 16:42:20 1997 Jim Wilson + + * mips.md (fix_trunc{dfsi,sfsi,dfsi}2): Add '*' in operand 3. + +Sun Nov 30 20:25:59 1997 Richard Kenner + + * expr.c (get_inner_reference): For ARRAY_REF, if need + WITH_RECORD_EXPR, make it with the ARRAY_REF as exp. + + * expr.c (store_constructor): Use TARGET, not EXP, for + WITH_RECORD_EXPR when offset has a placeholder. + +Sun Nov 30 11:19:00 1997 J.J. van der Heijden + + * objc/Make-lang.in (libobjc.dll): Rename -dll flag to -mdll. + +Sun Nov 30 08:42:29 1997 Bruno Haible + + * stmt.c (expand_end_bindings): Cleanups and incoming gotos are + not incompatible. + +Sun Nov 30 05:45:06 1997 Michael P. Hayes + + * jump.c (jump_optimize): Use find_insert_position in two more places. + +Sat Nov 29 13:47:40 1997 Richard Kenner + + * alpha/vms.h (HAVE_STRERROR, HAVE_{LIMITS,STDDEF,TIME}_H): Define. + +Sat Nov 29 08:29:47 1997 J.J.van der Heijden + + * configure.in: Add check for kill. + * gcc.c: Define kill as raise if not HAVE_KILL. + +Sat Nov 29 06:18:08 1997 Michael P. Hayes + + * jump.c (find_insert_position): New function. + (jump_optimize): Use it when making new copy of insn after test. + +Sat Nov 29 05:54:57 1997 Douglas Rupp + + * alpha/vms.h (BIGGEST_ALIGNMENT, ENCODE_SECTION_INFO): No longer + override. + +Sat Nov 29 05:43:37 1997 Richard Kenner + + * getpwd.c (getpwd, [VMS]): Only add extra arg if VMS. + + * alpha/xm-vms.h (HAVE_VPRINTF, HAVE_PUTENV): Define. + + * cccp.c (index, rindex): Add conditional defs to strchr and strrchr.s + * cpplib.c: Likewise. + * gcov.c: Include gansidecl.h. + +Fri Nov 28 21:17:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * objc/objc-act.c: Include "output.h". + + * objc/Make-lang.in (objc-parse.o, objc-act.o): Also depend on + $(srcdir)/output.h. + + * objc/Object.m (+conformsTo:): Surround assignment with parentheses. + + * objc/archive.c, objc/class.c, objc/encoding.c: Finish prototyping. + * objc/init.c, objc/objc-act.c, objc/objc-api.h: Likewise. + * objc/runtime.h, objc/sendmsg.c: Likewise. + +Fri Nov 28 19:15:53 1997 Mark Kettenis + + * objc/thr-posix.c (__objc_mutex_allocate): Allocate + mutex type instead of assuming it fits in a void * type. + (__objc_mutex_deallocate): Free mutex type. + (__objc_mutex_lock): Pass mutex type instead of pointer to it. + (__objc_mutex_{try,un}lock): Likewise. + (__objc_condition_allocate): Allocate condition type instead + of assuming it fits in a void * type. + (__objc_condition_deallocate): Free condition type. + (__objc_condition_wait): Pass condition type instead of pointer to it. + (__objc_condition_{broadcast,signal}): Likewise. + +Fri Nov 28 17:07:25 1997 David Edelsohn + + * rs6000.c (function_arg_partial_nregs): Undo 11/26 change. + +Fri Nov 28 12:34:03 1997 Scott Christley + + * objc/Make-lang.in (runtime-info.h): Add comment in file. + + * objc/selector.c: Replace all occurences of sarray_get + with sarray_get_safe. + * objc/sendmsg.c: Likewise. + + * protoize.c (include_defaults): Add component element as in cccp.c. + * nextstep.h (INCLUDE_DEFAULTS): Add component element. + (ASM_COMMENT_START): Correct assembly comment string. + * objc/Make-lang.in (objc/{NXConstStr,Object,Protocol,linking): + Compile with GNU runtime. + +Fri Nov 28 12:27:50 1997 Ovidiu Predescu + + Generate platform information required by ObjC runtime. + * toplev.c (lang_options): New ObjC specific compiler flag. + * objc/Make-lang.in: Add target to generate runtime-info.h file. + * objc/objc-act.c (print_struct_values): New variable. + (generate_struct_by_value_array): New function. + (lang_init): Call generate_struct_by_value_array if requested. + (lang_decode_option): Check for new compiler flag.s + * objc/sendmsg.c (__objc_get_forward_imp): Check size of type + for determining proper forwarding function. + +Fri Nov 28 05:58:30 1997 Richard Kenner + + * regclass.c (record_address_regs): Use REG_OK_FOR_{INDEX,BASE}, + not the REGNO versions. + +Thu Nov 27 16:28:04 1997 Scott Snyder + + * dwarf2out.c (outout_call_frame_info): Ensure info has proper + alignment. + + * libgcc2.c (__throw): Initialize HANDLER. + +Thu Nov 27 16:23:25 1997 Kaveh R. Ghazi + + * tree.h, rtl.h: See if need declarations for free. + * tree.c, bc-optab.c: Get the declaration of free from stdlib.h. + +Thu Nov 27 07:21:54 1997 Jason Merrill + + * except.h: Add outer_context_label_stack. + * except.c: Likewise. + (expand_start_all_catch): Push the outer_context for the try block + onto outer_context_label_stack. + (expand_end_all_catch): Use it and pop it. + + * except.c (expand_start_all_catch): One more do_pending_stack_adjust. + + * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. + +Thu Nov 27 07:15:10 1997 Michael Meissner + + * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. + (print_operand{,_address}): Use SMALL_DATA_REG for register involved in + small data relocations. + + * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if + -dynamic linker is not used. + + * rs6000.md (call insns): For local calls, use @local suffix under + System V; don't use @plt under Solaris. + +Wed Nov 26 15:12:32 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. + + * toplev.c (flag_exceptions): Default value is 2. + (compile_file): If flag_exceptions still has the value 2, then + set it to 0. + +Wed Nov 26 14:58:42 1997 Michael Meissner + + * rs6000.c (output_function_profiler): Put label address in r0, and + store LR in 4(sp) for System V/eabi. + + * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16 + byte boundary, and maintain stack backchain. + + (Originally from Geoffrey Keating) + * rs6000.c (function_arg): Excess floating point arguments don't + go into GPR registers after exhausting FP registers under the + System V.4 ABI. + (function_arg_partial_nregs): Likewise. + + * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt + suffix to calls. + +Wed Nov 26 14:09:01 1997 Jason Merrill + + * dwarfout.c (output_type): If finalizing, write out nested types + of types we've already written. + + * toplev.c (main): Complain about -gdwarfn. + +Wed Nov 26 12:37:56 1997 J.J. van der Heijden + + * mingw32.h (PATH_SEPARATOR): Moved to xm-mingw32.h + * xm-mingw32.h (PATH_SEPARATOR): Moved here from mingw32.h. + + * getpwd.c (getpwd): Use VMS implementation of _WIN32 unless cygwin32. + +Wed Nov 26 12:26:44 1997 John Hassey + + * m88k/dgux.h (ASM_CPU_SPEC) : No whitespace allowed. + + * m88k.h (SUPPORTS_ONE_ONLY) : Must be svr4. + + * i386/dgux.h (ASM_OUTPUT_ALIGN): Deleted. + + * i386/dgux.c (output_file_start) : Changed ix86_isa_string + to ix86_arch_string. + + * cplus-dem.c (fancy_abort): Added. + +Wed Nov 26 06:07:50 1997 Richard Earnshaw + + * arm/coff.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_32 to defaults. + + * configure.in (arm*-*-*): Recognize --with-cpu for ARM processors. + +Wed Nov 26 05:05:36 1997 Richard Kenner + + * libgcc2.c (inhibit_libc): Define #ifdef CROSS_COMPILE. + + * mips/xm-iris6.h (malloc, realloc, calloc): No longer declare. + (USG): Define here. + (xm-iris5.h): No longer include; just include xm-mips.h. + + * mips-tfile.c (parse_def): Properly recognize bitfield and + count array dimensions. + + * protoize.c: Remove declarations of void, exit, and free. + + * i386/mingw32.h (LINK_SPEC, STARTFILE_SPEC): Change -dll to -mdll. + + * configure.in: Check for sys/file.h. + * gcc.c (sys/file.h): Include if HAVE_SYS_FILE_H. + + * configure.in: Only give error on bad --with-cpu value for target. + +Sat Nov 22 19:21:55 1997 Philippe De Muyter + + * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros. + (ASM_OUTPUT_DWARF_VALUE4): New macro. + (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is + defined. + (output_call_frame_info): Don't output forward label differences + if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined. + Substitute instead simple label and define this label later to be + difference of desired labels after they have been defined. + * m68k/mot3300.h (SET_ASM_OP): Define when not using gas. + + * gcc.c (process_command): Don't take address of function fatal when + calling lang_specific_driver. + +Sat Nov 22 17:08:03 1997 J. Kean Johnston + + * i386/sco5.h (SELECT_RTX_SECTION): Redefine to work with -fpic. + (LIBGCC_SPEC, LIB_SPEC): Link with correct libgcc.a. + (HAVE_ATEXIT): Define. + +Sat Nov 22 12:20:22 1997 Richard Earnshaw + + * arm.md (movsfcc{,_hard}_insn): Specify mode for all alternatives. + +Sat Nov 22 06:56:16 1997 Richard Kenner + + * function.c (instantiate_decl): Only ignore ADDRESSOF if arg is REG. + + * configure.in: Check for functions before checking which need decls. + (bcopy, bzero, bcmp, index, rindex): Add checks. + (vax-*-sysv*): Fix typo in setting of xm_file. + * aclocal.m4: Add conditional definitions of index and rindex. + * gansidecl.h (bcopy, bzero, bcmp, index, rindex): If don't + have one of these, define macro to use ANSI form. + * pa/xm-pahpux.h (bcopy, bzero, bcmp, rindex, index): No longer define. + * mips/xm-sysv.h, xm-m88k.h, m68k/xm-plexus.h: Likewise. + * m68k/xm-mot3300.h, m68k/xm-m68kv.h, m68k/xm-hp320.h: Likewise. + * winnt/xm-winnt.h, vax/xm-vms.h, m68k/xm-3b1.h: Likewise. + * i386/xm-os2.h, i386/xm-mingw32.h, alpha/xm-vms.h: Likewise. + * xm-svr4.h, xm-svr3.h: Likewise. + * clipper/xm-clix.h: Likewise. + (TARGET_MEM_FUNCTIONS): Define here. + * xm-linux.h (bcmp, bcopy, bzero, index, rindex): No longer undefine. + * xm-convex.h (bcopy, bzero): No longer define. + * vax/xm-vaxv.h, sparc/xm-pbd.h, mips/xm-iris{3,4,5}.h: Likewise. + * m68k/xm-crds.h, m68k/xm-altos3068.h, i386/xm-sun.h: Likewise. + * i386/xm-osf.h, i386/xm-aix.h, xm-i370.h, ns32k/xm-genix.h: Likewise. + +Sat Nov 22 06:46:26 1997 Paul Eggert + + * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c: + Don't include unless there's no . + +Fri Nov 21 06:46:50 1997 Richard Kenner + + * configure.in (i[3456]86-*-freebsd{,elf}*): Delete i386/xm-freebsd.h. + * xm-freebsd.h, i386/xm-freebsd.h: Deleted. + + * i386/xm-cygwin32.h (HAVE_RUSAGE, HAVE_FILE_H): Deleted. + * i386/xm-mingw32.h, rs6000/xm-cygwin32.h: Likewise. + + * xm-std32.h: New file, so far unused. + +Fri Nov 21 05:50:54 1997 Andreas Schwab + + * m68k.c (legitimize_pic_address): Make sure pic register marked used. + + * dwarf2out.c (output_call_frame_info): Call app_enable and + app_disable if flag_debug_asm, not if flag_verbose_asm. + +Thu Nov 20 16:37:36 1997 Richard Kenner + + * expr.c (expand_builtin_apply): Fix typo in last change. + + * expr.c (expand_assignment): If assigning to readonly field, + mark rtx as unchanging. + + * configure.in: Add checks for functions putenv, popen, and vprintf. + (i[3456]86-*-netbsd*): No longer need i386/xm-netbsd.h. + (i860-alliant-*): No longer need i860/xm-fx2800.h. + (m68k-ncr-sysv*): Use xm-svr3.h instead of m68k/xm-tower.h. + (m68k-sun-sunos*): No longer need m68k/xm-sun3.h. + (m68k-*-netbsd*): No longer need m68k/xm-netbsd.h. + (mips-dec-netbsd*): No longer need mips/xm-netbsd.h. + (ns32k-pc532-netbsd*): No longer need ns32k/xm-netbsd.h. + (sparc-*-netbsd*): No longer need sparc/xm-netbsd.h. + (vax-*-netbsd*): No longer need config/xm-netbsd.h. + * arm/xm-netbsd.h: No longer include xm-netbsd.h. + * xm-linux.h (HAVE_VPRINTF, HAVE_POPEN, HAVE_PUTENV): Deleted. + * xm-mips.h (HAVE_VPRINTF, HAVE_PUTENV): Deleted. + * i386/xm-osf.h, xm-arm.h, xm-alpha.h: Likewise. + * xm-sparc.h (HAVE_POPEN): Deleted. + * xm-sh.h (HAVE_VPRINTF): Deleted. + * mips/xm-iris4.h, mips/xm-iris5.h, xm-m88k.h: Likewise. + * m68k/xm-crds.h, m68k/xm-atari.h, m68k/xm-amix.h: Likewise. + * xm-svr3.h, xm-svr4.h, i386/xm-mingw32.h: Likewise. + * i386/xm-os2.h (HAVE_PUTENV): Deleted. + * i386/xm-dos.h, i386/xm-aix.h: Likewise. + * arm/xm-netbsd.h (HAVE_VPRINTF, HAVE_STRERROR): No longer + need undefine. + * xm-netbsd.h, i386/xm-netbsd.h, m68k/xm-netbsd.h: Deleted. + * mips/xm-netbsd.h, ns32k/xm-netbsd.h, sparc/xm-netbsd.h: Likewise. + * i860/xm-fx2800.h, m68k/xm-sun3.h, m68k/xm-tower.h: Likewise. + +Thu Nov 20 16:04:24 1997 Richard Earnshaw + + * explow.c (plus_constant_wide, case MEM): If about to call + force_const_mem, generate the rtl in a saveable obstack. + + * arm.md (movhi): Pass the full MEM to storeinthi, storehi and + storehi_bigend. + (storeinthi, storehi, storehi_bigend): Be more conservative about + when not to force a PLUS or MINUS into a REG. Use change_address + to create new MEMs. + +Wed Nov 19 15:16:04 1997 Ulrich Drepper + + * c-common.c (print_char_table): Add a and A to float formats. + (scan_char_table): Likewise. + (check_format_info): Recognize `a' as allocate flag only if used + in correct context. + +Wed Nov 19 12:56:54 1997 Andreas Schwab + + * configure.in: Fix check for . + +Tue Nov 18 19:27:01 1997 J"orn Rennecke + + * sh.md (attribute "type"): Add nil. + (movsi_ie): y/y alternative is type nil. + (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X. + (movsf_ie+1): Delete. + +Tue Nov 18 18:38:41 1997 Paul Eggert + + * cccp.c (warn_undef): Now static. + (eval_if_expression): Don't warn about undefined preprocessor symbols + in system headers. + * cexp.y (parse_c_expression): + Now takes new arg specifying whether to warn + about undefined preprocessor symbols. + (warn_undef): Now local and static; independent of warn_undef in cccp.c + (yylex): `register' -> `register int', needed for C9X. + + The following changes are only if TEST_EXP_READER is defined: + (expression_signedp): New var. + (start): Set expression_signedp to signedness of expression. + (print_unsigned_host_wide_int): New function. + (main): Use it to print value of expression, instead of hoping that + `long' is long enough. Print "u" after unsigned values. + +Tue Nov 18 18:33:30 1997 Jim Wilson + + * mips.c (save_restore_insns): If gp_offset or fp_offset are + large_int, emit two insns instead of one splitable insn. + * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset + from cfa_temp_value, use cfa_offset. Add assert checking that + cfa_reg is SP. + +Tue Nov 18 09:11:58 1997 Richard Kenner + + * fold-const.c (div_and_round_double): Return overflow for + divide-by-zero instead of aborting. + + * tree.c (substitute_in_expr, case TREE_LIST): Fix two typos. + +Tue Nov 18 05:03:52 1997 Jeffrey A Law + + * arm.c (output_move_double): Allocate 3 entries in otherops array. + +Tue Nov 18 02:41:01 1997 Paul Eggert + + * cccp.c (quote_string_for_make): New function. + (deps_output): Use it to fix bug with file name quoting in -M output. + +Mon Nov 17 13:28:33 1997 Philip Blundell + + * arm/lib1funcs.asm (__div0): Provide GNU/Linux implementation. + * arm/t-linux (LIB1ASMFUNCS): Use it. + +Mon Nov 17 09:13:59 1997 Andreas Schwab + + * function.c (purge_addressof_1): Make copy when substituting argument + of ADDRESSOF. + (fixup_var_refs_1): Likewise. + + * m68k.c: Include tree.h. + +Mon Nov 17 09:01:05 1997 Richard Kenner + + * getpwd.c (getpwd, [VMS]): Add extra arg of 0 to getcwd call. + + * alpha/vms.h ({OPTIMIZATION,OVERRIDE}_OPTIONS): Delete, for now. + * alpha/xm-vms.h (DIR_SEPARATOR, PATH_SEPARATOR): Delete. + +Mon Nov 17 08:52:45 1997 Richard Earnshaw + + * function.c (fixup_stack_1): Also fix-up refs via ARG_POINTER_REGNUM. + + * configure.in (arm-*-netbsd*): Doesn't need collect2. + +Mon Nov 17 08:50:01 1997 Stephen L Moshier + + * i386/isc.h (DWARF2_UNWIND_INFO): Define as 0. + +Mon Nov 17 08:42:28 1997 Michael P. Hayes + + * flow.c (propagate_block): Look for pre-inc/dec within PARALLEL. + +Mon Nov 17 03:14:46 1997 Paul Eggert + + * cpplib.c (file_size_and_mode): Remove. + (finclude): Don't assume long and off_t are same size or that + mode_t fits in int. + * cccp.c: (main, finclude, check_precompiled): Don't assume size_t + and off_t are same size. + * gcov.c (read_files): Don't assume off_t and unsigned are same size. + +Sun Nov 16 18:56:40 1997 Scott Christley + + * objc/objc-act.c (objc_demangle): New function. + (objc_printable_name): New function. + (init_objc): Change default function. + + * expr.c (expand_builtin_apply): Prefer nonlocal over block. + +Sun Nov 16 18:10:13 1997 Fila Kolodny + + * i370.c (i370_function_prolog): New function from i370.h. + * i370.h (FUNCTION_PROLOG): Just call i370_function_prolog. + +Sun Nov 16 08:40:35 1997 Bruno Haible + + * calls.c (expand_call, store_one_arg): Don't pass QImode arguments + to emit_library_call. + * expr.c (emit_push_insn, expand_assignment, store_expr): Likewise. + (expand_expr, expand_builtin): Likewise. + * function.c (put_var_into_stack, assign_parms): Likewise. + * alpha.c (alpha_builtin_saveregs): Likewise. + * clipper.c (clipper_builtin_saveregs): Likewise. + * m88k.c (m88k_builtin_saveregs): Likewise. + * pa.c (hppa_builtin_saveregs): Likewise. + * sparc.c (sparc_builtin_saveregs): Likewise. + +Sun Nov 16 07:39:08 1997 Paul Eggert + + * real.h (REAL_VALUES_IDENTICAL): New macro. + * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. + * fold-const.c (operand_equal_p): Don't consider -0.0 identical to 0.0. + * tree.c (simple_cst_equal): Likewise. + * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL macro. + +Sun Nov 16 07:29:12 1997 Richard Kenner + + * acconfig.h (NEED_DECLARATION_{,R}INDEX): New cases. + * configure.in: See if need declarations for index and rindex. + * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c: + Include stdlib.h, string.h, and strings.h, if they exist. + Only declare index and rindex if needed. + * collect2.c: Only declare free if needed. + + * regclass.c (record_address_regs): Refine choice of index and base + when have sum of two regs, one of which is a hard reg. + +Sun Nov 16 07:07:45 1997 Robert Lipe (robertl@dgii.com) + + * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define as in sysv4 and linux + (HAVE_ATEXIT): No longer define. This confused ELF destructors. + (DBX_DEBUGGING_INFO): Define. + +Sat Nov 15 09:55:11 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept MINUS (until reload + knows what to do with it). + +Thu Nov 13 11:07:41 1997 Michael Meissner + + * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to + pick apart floating point values, instead of using CONST_DOUBLE_LOW + and CONST_DOUBLE_HIGH. + + * rs6000.md (define_splits for DF constants): Use the appropriate + REAL_VALUE_* interface to pick apart DF floating point constants in + a machine independent fashion. + +Thu Nov 13 07:30:53 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm/netbsd.h (LINK_SPEC): Redefine -- pass -X. + + * arm.md (movsicc_insn): Add extra reload alternatives for better + register tying. + (movsfcc_hard_insn, movsfcc_soft_insn, movdfcc_insn): Likewise. + +Mon Nov 10 19:32:14 1997 Doug Evans + + * sparc.md (mov[sdt]f_const_insn): Fix condition to match what + instruction can handle. + +Mon Nov 10 03:02:19 1997 Jason Merrill + + * stmt.c (expand_decl_cleanup_no_eh): New fn. + + * except.c (expand_leftover_cleanups): do_pending_stack_adjust. + +Sun Nov 9 14:34:47 1997 David Edelsohn + + * rs6000.md (lshrdi3_power): Delete '&' from first alternative and + swap instruction order. + +Sun Nov 9 09:51:08 1997 Michael P. Hayes + + * machmode.def (QCmode, HCmode): New modes. + +Sun Nov 9 09:24:21 1997 J"orn Rennecke + + * combine.c (sets_function_arg_p): New function. + (combinable_i3pat): Check if combining with any but the first + argument register setting insn for a function call. + + * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid sheduling load from + stack slot. + +Sun Nov 9 09:17:53 1997 Richard Earnshaw (rearnsha@arm.com) + + * loop.c (strength_reduce): If initial value of BIV is equivalent to + a constant, record that as initial value. + (check_dbra_loop): Don't reverse loop if initial value isn't CONST_INT. + +Sun Nov 9 09:12:41 1997 Tristan Gingold + + * expr.c (emit_push_insn): Avoid infinite recursion + when -fcheck-memory-usage. + +Sun Nov 9 08:03:42 1997 Richard Kenner + + * cse.c (simplify_binary_operation): Fix error in last change. + +Sun Nov 9 07:56:31 1997 Pat Rankin + + * vmsconfig.com [version.opt]: Parse version string more robustly. + [@variable@]: Discard configure tokens when using Makefile.in. + [libgcc2-cxx.list]: Generate this new file for CXX_LIB2FUNCS. + [cp/input.c]: Suppress it as workaround to avoid linker warning. + [objc-parse.y]: Now lives in the objc subdirectory. + * make-cc1.com [objc-parse.{c,y}]: Ditto. + * make-cccp.com [prefix.c]: Compile additional source file. + + * cccp.c (VMS_freopen, VMS_fopen, VMS_open, VMS_fstat): Call + corresponding library routine specified via its ordinary name + rather than with a decc$ prefix. (Reverses Oct 19 change.) + + * cccp.c, cexp.y [HOST_WIDE_INT]: Manually splice long lines + of avoid backslash+newline continuation on #if directives. + +Sun Nov 9 01:54:54 1997 Jeffrey A Law (law@cygnus.com) + + * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions + are shared. + +Sat Nov 8 23:01:37 1997 Michael P. Hayes + + * cse.c (simplify_binary_operation): Don't simplify divide by zero + for targets that don't support a representation of INFINITY. + +Sat Nov 8 22:37:29 1997 Richard Earnshaw + + * Makefile.in (cse.o): Depend on expr.h. + * cse.c: Include expr.h. + (fold_rtx, case MEM): For ADDRESSOF, create new MEM. + +Sat Nov 8 19:27:56 1997 J"orn Rennecke + + * expr.c (expand_increment): When enqueing a postincrement for a MEM, + use copy_to_reg if address is not a general_operand. + +Sat Nov 8 18:39:56 1997 Jason Merrill + + * libgcc2.c (L_eh): Define __eh_pc here. + Replace __eh_type with generic pointer __eh_info. + +Sat Nov 8 07:03:47 1997 Richard Kenner + + * alpha.h (SECONDARY_OUTPUT_RELOAD_CLASS): If FLOAT_REGS, + need secondary reload for QImode and HImode even if BWX. + + * expmed.c (store_split_bit_field): Force ADDRESSOF into register. + + * cse.c (fold_rtx, case ADDRESSOF): New case (that does nothing). + + * function.c (fixup_var_refs_1, case ADDRESSSOF): Check that + new value is valid for insn. + + * stor-layout.c (get_best_mode): Refine test for field within + unit to work properly for negative positions. + + * print-rtl.c (print_inline_rtx): Save and restore sawclose and indent. + + * reload.c (find_replacement): If PLUS, MINUS, or MULT, see if + either arg contains a replacement. + +Fri Nov 7 10:22:24 1997 Jason Merrill + + * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for + linked once FDEs. + +Fri Nov 7 06:50:57 1997 Richard Kenner + + * alpha.h (FUNCTION_VALUE): Take into account promotion of pointers. + + * unroll.c (back_branch_in_range_p): Refine check for INSN at loop end. + +Wed Nov 5 18:17:50 1997 Paul Eggert + + * fixinc.svr4: Replace `__STDC__ - 0 == 1' + with `defined (__STRICT_ANSI__)'. + +Tue Nov 4 18:32:44 1997 Jim Wilson + + * mips.md (insv, extzv, extv): Add change_address call. + (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern. + * mips.c (mips_expand_epilogue): Emit blockage insn before call to + save_restore_insns if no FP and GP will be restored. + + * acconfig.h (HAVE_INTTYPES_H): Undef. + * configure.in (inttypes.h): Check for conflicts between sys/types.h + and inttypes.h, and verify that intmax_t is defined. + * mips/x-iris (CC, OPT, OLDCC): Comment out. + * mips/x-iris3: Likewise. + +Tue Nov 4 17:28:31 1997 Doug Evans + + * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. + (yylex): Record wide strings using target endianness, not host. + +Tue Nov 4 16:18:19 1997 Richard Kenner + + * Makefile.in (distdir-start): Add dependency on $(srcdir)/config.in. + +Tue Nov 4 06:14:30 1997 Paul Eggert + + * c-lex.c (yylex): Don't warn about constants like + 9223372036854775807 and 18446744073709551615U on an L32LL64 host + unless pedantic. + +Mon Nov 3 18:42:44 1997 Jim Wilson + + * i386.c (load_pic_register): Call prologue_get_pc_and_set_got. + * i386.md (prologue_{set_got,get_pc}): Add UNSPEC_VOLATILE to pattern. + (prologue_get_pc_and_set_got): New pattern. + +Mon Nov 3 13:42:21 1997 Paul Eggert + + * cccp.c, cpplib.c (compare_defs): Don't complain about arg name + respellings unless pedantic. + * cpplib.c (compare_defs): Accept pfile as new arg. + All callers changed. + +Fri Oct 31 07:10:09 1997 Jeffrey A Law (law@cygnus.com) + + * global.c (global_alloc): Free the conflict matrix after + reload has finished. + +Thu Oct 30 17:30:42 1997 Doug Evans + + * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf. + Set extra_parts. + (sparc*-*-*): Recognize --with-cpu=v9. + * sparc/elf.h: New file. + * sparc/t-elf: New file. + +Thu Oct 30 16:36:17 1997 Richard Kenner + + * stmt.c (expand_asm_operand): If error in matching constraint, + don't emit asm. + +Thu Oct 30 12:21:06 1997 J"orn Rennecke + + * va-sh.h (__va_arg_sh1): Define. + (va_arg): Use it. + SH3E doesn't use any integer registers for subsequent arguments + once a non-float value was passed in the stack. + * sh.c (machine_dependent_reorg): If optimizing, put explicit + alignment in front label for ADDR_DIFF_VEC. + * sh.h (PASS_IN_REG_P): Fix SH3E case. + (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length. + +Tue Oct 28 21:09:25 1997 Jim Wilson + + * m68k.md (btst patterns): Add 5200 support. + +1997-10-28 Brendan Kehoe + + * global.c (global_alloc): Use xmalloc instead of alloca for + CONFLICTS, since max_allocno * allocno_row_words alone can be more + than 2.5Mb sometimes. + +Tue Oct 28 15:06:44 1997 J"orn Rennecke + + * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including + svr4.h. + +Tue Oct 28 10:19:01 1997 Jason Merrill + + From Brendan: + * dwarf2out.c (output_call_frame_info): Use l1 instead of ".". + +Mon Oct 27 16:01:14 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg. + +Mon Oct 27 16:11:52 1997 J"orn Rennecke + + * sh.c (machine_dependent_reorg): When -flag_delayed_branches, + put an use_sfunc_addr before each sfunc. + * sh.md (use_sfunc_addr, dummy_jump): New insns. + (casesi): For TARGET_SH2, emit a dummy_jump after LAB. + +Mon Oct 27 11:49:43 1997 Jason Merrill + + * dwarf2.h: Remove dwarf2out prototypes. + * tree.h: And put them here. + * m68k.c, i386.c: Don't include dwarf2.h. + +Mon Oct 27 00:02:13 1997 Paul Eggert + + Remap include files with header.gcc only if user or configuration + file specifies "-remap". + + * cccp.c (remap): New var. + (main): Set it if user specifies "-remap". + (open_include_file): Remap only if `remap' is nonzero. + + * cpplib.h (struct cpp_options): New member `remap'. + * cpplib.c (cpp_options_init): Set remap to 0. + (open_include_file): Remap only if `remap' is nonzero. + (cpp_handle_options): Set remap if user specifies "-remap". + + * i386/cygwin32.h, rs6000/cygwin32.h (CPP_SPEC): Define with -remap. + +Sun Oct 26 11:41:49 1997 Jason Merrill + + * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 + bit PC-relative offset. The exception range table pointer is now in + the CIE. + * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. + (count_fdes, add_fdes, get_cie): Adjust. + (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. + + From H.J. Lu: + * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. + +Sat Oct 25 20:29:39 1997 Alexandre Oliva + + * Makefile.in (float.h-nat): If float.h is to be empty, ensure it is. + +Sat Oct 25 20:16:52 1997 Kaveh R. Ghazi + + * prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise, + use varargs.h. Wrap header with <>, not "". + +Sat Oct 25 20:10:57 1997 Robert Lipe (robertl@dgii.com) + + * i386/sco5.h (EH_FRAME_SECTION_ASM_OP{,_ELF,_COFF}): Define. + (DWARF2_UNWIND_INFO): Likewise. + (EXTRA_SECTIONS): Add in_eh. + +Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. + (TARGET_MULT_BUG): Define. + (TARGET_DEFAULT): Default to TARGET_MULT_BUG. + * mn10300.md (mulsi3): Handle TARGET_MULT_BUG. + +Fri Oct 24 15:43:57 1997 Michael Meissner + + * rs6000.c (toplevel): Move include stdio.h before config.h. + + (Patch from H.J. Lu, Aug 27, 1997) + * rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New; defined as 1. + + (Patch from Jeff Law, Oct 22, 1997) + * rs6000.c (struct machine_function): Add pic_offset_table_rtx. + (rs6000_{save,restore}_machine_status): Save/restore it. + + * rs6000.md (movsi_got_internal_mem): New pattern to work around + case where GOT value did not get a register. + (movsi_got_internal_mem splitter): Split above pattern. + + (Patch from Geoffrey Keating, Oct 21, 1997) + * rs6000.c (rs6000_stack_info): Avoid creating a stack + frame under System V ABI if we only need to save the LR. + + (Patch from Joel Sherrill, Sep 1, 1997) + * rs6000/sysv4.h (SUBTARGET_SWITCHES): Add new macro + EXTRA_SUBTARGET_SWITCHES, which defaults to nothing. + + (Patch from Geoffrey Keating, Oct 20, 1997) + * rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS{,_S}): Add -msdata=none + switch. + +Fri Oct 24 15:25:50 1997 Doug Evans + + * sparc.h (ASM_SPEC): Delete. + +Fri Oct 24 13:16:24 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200.c (indirect_memory_operand): Delete unused function. + * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'. + * mn10200.md (bset, bclr insns): Handle output in a reg too. + + * mn10300.c (symbolic_operand, legitimize_address): New functions. + * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address. + (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic. + +Thu Oct 23 08:03:59 1997 J"orn Rennecke + + * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string + for FILENAME. + +Tue Oct 21 16:18:13 1997 Paul Eggert + + * winnt/win-nt.h (CPP_SPEC): Remove reference to obsolete + option -lang-c-c++-comments. + +Tue Oct 21 10:00:20 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.md (movqi, movhi): Avoid using address registers as + destinations unless absolutely necessary. + + * mn10200.c (expand_prologue): Fix typo. + + * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed addresses. + * mn10200.md (neghi2): Provide an alternative which works if + the input and output register are the same. + + * mn10300.c (print_operand): Handle 'S'. + * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for + shift amount in last alternative + + * mn10300.c (expand_epilogue): Rework to handle register restores + in "ret" and "retf" instructions correctly. + +Tue Oct 21 07:35:19 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (insv): Avoid writing result into a paradoxical subreg. + +Tue Oct 21 07:12:28 1997 J"orn Rennecke + + * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine. + +Mon Oct 20 12:04:04 1997 Nick Clifton + + * v850.h (CPP_SPEC): Define __v850__. + (CPP_PREDEFINES): Do not define __v850__. + + * xm-v850.h: Use __v850 rather than __v850__ to identify v850 port. + Mon Oct 20 17:29:55 1997 Doug Evans - * sparc/sparc.h (SPARC_V9,SPARC_ARCH64): Delete. + * sparc.h (SPARC_V9,SPARC_ARCH64): Delete. (DEFAULT_ARCH32_P): New macro. (TARGET_ARCH{32,64}): Allow compile time or runtime selection. (enum cmodel): Declare. @@ -66,10 +1101,10 @@ Mon Oct 20 17:29:55 1997 Doug Evans * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support. (BLOCK_PROFILER): Likewise. - * sparc/sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. + * sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. (sparc_override_options): Handle code model selection. (sparc_init_expanders): Renamed from sparc64_init_expanders. - * sparc/sparc.md: TARGET_ renamed to TARGET_CM_.... + * sparc.md: TARGET_ renamed to TARGET_CM_.... TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY. (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_.... (sethi_di_fullany): Delete. @@ -476,7 +1511,7 @@ Wed Oct 15 21:34:45 1997 David Edelsohn * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for PPC601. - (umulsidi3,umulsi3_highpart): Ditto. + (umulsidi3,umulsi3_highpart): Likewise. (smulsi3_highpart_no_mq): Add !TARGET_POWER. Wed Oct 15 18:45:31 1997 Doug Evans @@ -485,8 +1520,7 @@ Wed Oct 15 18:45:31 1997 Doug Evans Wed Oct 15 17:17:33 1997 Jeffrey A Law (law@cygnus.com) - * pa.c (following_call): Fail if the CALL_INSN is an indirect - call. + * pa.c (following_call): Fail if the CALL_INSN is an indirect call. Wed Oct 1 17:52:09 1997 Douglas Rupp @@ -517,14 +1551,12 @@ Fri Sep 26 14:06:45 1997 Mike Stump Wed Sep 24 11:31:24 1997 Mike Stump * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if - we are packing a structure. This allows a structure with only - bytes to be aligned on a byte boundary and have no padding on a - m68k. + packing structure. This allows a structure with only bytes to be + aligned on a byte boundary and have no padding on a m68k. Tue Sep 30 11:00:00 1997 Brendan Kehoe - * except.c (find_exception_handler_labels): Free LABELS when we're - done. + * except.c (find_exception_handler_labels): Free LABELS when done. Tue Sep 30 10:47:33 1997 Paul Eggert @@ -770,7 +1802,7 @@ Mon Sep 22 14:04:18 1997 Richard Kenner * rtlanal.c (computed_jump_p): Fix typo in last change. - * clipper.md (movstrsi): Use change_addres instead of making new MEM. + * clipper.md (movstrsi): Use change_address instead of making new MEM. * dsp16xx.md (movstrqi): Likewise. * i370.md (movstrsi): Likewise. * i860.md (movstrsi): Likewise. @@ -873,9 +1905,7 @@ Fri Sep 19 19:43:09 1997 Jeffrey A Law (law@cygnus.com) * loop.c (strength_reduce): Fix typo. * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__. - * mips.h (alloca): Likewise. - * rs6000/xm-rs6000.h (alloca): Likewise. - * rs6000/xm-sysv4.h: Likewise. + * mips.h, xm-rs6000.h, rs6000/xm-sysv4.h: Likewise. Fri Sep 19 20:10:30 1997 Doug Evans @@ -1053,8 +2083,7 @@ Wed Sep 17 18:23:09 1997 Jeffrey A Law (law@cygnus.com) Wed Sep 17 14:17:26 1997 Paul Eggert * configure.in (AC_CHECK_HEADERS): Add inttypes.h, limits.h. - ({sparc,i[3456]86,powerpcle}-*-solaris2*): - Use fixinc.math for fixincludes. + ({sparc,i[3456]86,powerpcle}-*-solaris2*): Use fixinc.math. * fixinc.math (PWDCMD, ORIGDIR, LINKS): Remove. Remove duplicate test for missing $1. @@ -1096,8 +2125,8 @@ Wed Sep 17 15:04:19 1997 Doug Evans * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete, use sparc.h's copies. - * sparc/sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print - ascii form as well. + * sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print ascii form + as well. Wed Sep 17 14:08:20 1997 Nick Burrett @@ -1125,7 +2154,7 @@ Tue Sep 16 10:02:02 1997 Jason Merrill * integrate.c (expand_inline_function): Move expand_start_bindings after expanding the arguments. - * i386.c (ix86_prologue): Pass the SYMBOL_REF to + * i386.c (ix86_prologue): Pass SYMBOL_REF to gen_prologue_{get_pc,set_got}. * i386.md (prologue_set_got, prologue_get_pc): Adjust. @@ -1141,9 +2170,9 @@ Tue Sep 16 07:33:15 1997 Richard Kenner Tue Sep 16 00:26:52 1997 Jeffrey A Law (law@cygnus.com) - * cse.c (simplify_relational_operation): If MODE specifies a - mode wider than HOST_WIDE_INT, then the high word of a CONST_INT - is derived from the sign bit of the low word. + * cse.c (simplify_relational_operation): If MODE specifies mode wider + than HOST_WIDE_INT, high word of CONST_INT is derived from sign bit + of low word. Tue Sep 16 00:13:20 1997 Nick Clifton @@ -1655,7 +2684,7 @@ Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) Fri Sep 5 03:50:15 1997 David Edelsohn - * rs6000/rs6000.md (fma patterns): Extend previous -mno-fused-madd + * rs6000.md (fma patterns): Extend previous -mno-fused-madd patch to DFmode patterns inadvertently omitted. Thu Sep 4 20:06:02 1997 Christian Kuehnke @@ -1724,10 +2753,7 @@ Tue Sep 2 18:41:55 1997 Jeffrey A Law (law@cygnus.com) * configure.in: Check for sys_siglist declaration. * Makefile.in (libgcc2.a): Add missing "else true" clause. - (stage1-start): Likewise. - (stage2-start): Likewise. - (stage3-start): Likewise. - (stage4-start): Likewise. + (stage{1,2,3,4}-start): Likewise. * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions are relative to the next instruction, not the current instruction. @@ -3490,7 +4516,7 @@ Tue Jul 1 18:30:26 1997 Jim Wilson Tue Jul 1 11:16:41 1997 Robert Lipe - * fixinc.sco: Restore pwd aftercopy. + * fixinc.sco: Restore pwd after copy. Convert declaration of abs in math.h to prototype. Fix static functions in sys/stat.h for C++. @@ -3613,7 +4639,7 @@ Fri Jun 27 13:23:38 1997 Andrew Cagney Fri Jun 27 10:47:09 1997 Scott Christley - * Makefile.in (DLLTOOL): Define.e + * Makefile.in (DLLTOOL): Define. * objc/Make-lang.in (libobjc_entry.o, libobjc_s.a, libobjc.dll): New targets. (objc.install-normal): Install Objective-C runtime as a DLL. @@ -3945,8 +4971,7 @@ Tue Jun 10 17:40:15 1997 Jim Wilson Tue Jun 10 17:14:58 1997 Michael Meissner - * rs6000/rs6000.c (rs6000_override_options): If -mcpu=403, set - -mstrict-align as well. + * rs6000.c (rs6000_override_options): If -mcpu=403, set -mstrict-align. * rs6000/t-ppc{,gas} (MULTILIB_EXTRA_OPTS): Build libraries with -mstrict-align. @@ -4208,26 +5233,21 @@ Mon Jun 2 16:53:53 1997 Michael Meissner (struct sometimes): Make fields int sized, not short. (schedule_insns): Don't set sched_reg_n_deaths, nobody uses it. - * regclass.c (allocate_reg_info): Allocate the space for - reg_renumber, but don't set reg_renumber unless new argument - RENUMBER_P is set. If this is the first call for the function and - we need to grow space, use free/xmalloc instead of realloc since we - will be initializing the whole array. If number of registers is < - 0, just free up the space. + * regclass.c (allocate_reg_info): Allocate space for reg_renumber, + but don't set unless new argument RENUMBER_P is set. If this is first + call for function and we need to grow space, use free/xmalloc instead + of realloc since we will be initializing the whole array. If number + of registers is < 0, just free up space. (reg_scan): Update allocate_reg_info call. - * regs.h (allocate_reg_info): Change prototype. - - * flow.c (allocate_for_life_analysis): Update allocate_reg_info - call. - + * flow.c (allocate_for_life_analysis): Update allocate_reg_info call. * local-alloc.c (local_alloc): Call allocate_reg_info to allocate and initialize the reg_renumber array. - * stupid.c (stupid_life_analysis): Ditto. + * stupid.c (stupid_life_analysis): Likewise. Mon Jun 2 14:50:06 1997 Dave Miller - * sparc/sparc.md (v9 eq/ne cond move patterns): Add early clobber + * sparc.md (v9 eq/ne cond move patterns): Add early clobber constraint to destination. Fri May 30 11:00:44 1997 Michael Meissner @@ -4237,10 +5257,10 @@ Fri May 30 11:00:44 1997 Michael Meissner globally visiable. (reg_n_info): Pointer to the register information array. (reg_n_{refs,sets,deaths,calls_crossed}): Delete variables. - (reg_changes_size): Ditto. + (reg_changes_size): Likewise. (REG_N_{REFS,SETS,DEATHS,CALLS_CROSSED}): New macros to reference reg_n_info. - (REG_{CHANGES_SIZE,{FIRST,LAST,LAST_NOTE}_UID}): Ditto. + (REG_{CHANGES_SIZE,{FIRST,LAST,LAST_NOTE}_UID}): Likewise. (allocate_reg_info): Add declaration. * basic-block.h (reg_basic_block): Delete. @@ -4248,13 +5268,12 @@ Fri May 30 11:00:44 1997 Michael Meissner * caller-save.c: Change all references to the above arrays to use the corresponding macro to access the reg_n_info array. - * combine.c, cse.c, flow.c, global.c, jump.c, local-alloc.c: Ditto. - * loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Ditto. + * combine.c, cse.c, flow.c, global.c, jump.c, local-alloc.c: Likewise. + * loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Likewise. * regclass.c (allocate_reg_info): New function to allocate the reg_info array and initialize the appropriate fields. (reg_scan): Call it. - * flow.c (allocate_for_life_analysis): Call allocate_reg_info to do the actual allocation. @@ -4312,20 +5331,19 @@ Mon May 19 21:01:53 1997 Jim Wilson * m68k.c (output_move_qimode): Add coldfire support. * m68k.h (PUSH_ROUNDING): Add coldfire support. - * m68k.md (scc0_di, scc_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, + * m68k.md (scc{,0}_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu): Add coldfire support. Mon May 19 17:53:34 1997 Mike Meissner - * rs6000/rs6000.c: (rs6000_pic_func_labelno): New variable to hold - the pic label number for the function's LCL label. + * rs6000.c: (rs6000_pic_func_labelno): New variable. (rs6000_output_load_toc_table): Use it. (output_prolog): Store current value. Sun May 18 16:32:08 1997 Michael Meissner - * config/dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use the macros - ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output the line + * dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use macros + ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output line number label. Sun May 18 13:55:12 1997 John Vickers (john@rhizik.demon.co.uk) @@ -4431,8 +5449,8 @@ Thu May 15 17:19:50 1997 Mike Stump perform any actions at the start of an expcetion handler that hasn't already been done, use gen_exception_receiver to emit it. (expand_leftover_cleanups): Likewise. - * alpha/alpha.md (exception_receiver): Use it. - * pa/pa.h (exception_receiver): Use it. + * alpha.md (exception_receiver): Use it. + * pa.h (exception_receiver): Use it. Thu May 15 08:36:59 1997 Jeffrey A Law (law@cygnus.com) @@ -4469,9 +5487,8 @@ Tue May 13 14:47:40 1997 Richard Earnshaw (rearnsha@cambridge.arm.com) Mon May 12 20:42:20 1997 Mike Stump - * except.c (expand_start_all_catch): If the machine needs a - nonlocal_goto_receiver, add one at the start of the exception - handler. + * except.c (expand_start_all_catch): If need nonlocal_goto_receiver, + add one at the start of exception handler. (expand_leftover_cleanups): Likewise. Mon May 12 17:36:28 1997 Jeffrey A Law (law@cygnus.com) @@ -4577,9 +5594,8 @@ Thu May 8 13:20:20 1997 Chris Torek Wed May 7 15:43:57 1997 Mike Stump - * except.c (start_dynamic_handler): Fix so that we can use - __builtin_setjmp, and default to using __builtin_setjmp instead of - setjmp. + * except.c (start_dynamic_handler): Fix so we can use __builtin_setjmp, + and default to using __builtin_setjmp instead of setjmp. * expr.c (expand_builtin_setjmp): New routine, split out from existing inline code from expand_builtin. (expand_builtin): Split out code into expand_builtin_setjmp. @@ -4635,10 +5651,10 @@ Fri May 2 17:00:33 1997 Jason Merrill Fri May 2 15:30:16 1997 Doug Evans - * m32r/m32r.h (LIT_NAME_P): New macro. + * m32r.h (LIT_NAME_P): New macro. (SMALL_NAME_P): Use it. (ASM_OUTPUT_ALIGNED_COMMON): Don't output to scommon if -msdata=none. - * m32r/m32r.c (addr24_operand): Handle literals. + * m32r.c (addr24_operand): Handle literals. (m32r_output_function_prologue): Use IMMEDIATE_PREFIX. (m32r_output_function_epilogue): Likewise. Use shorter add insn if able. @@ -4748,7 +5764,6 @@ Tue Apr 29 12:54:14 1997 Mike Stump expand_eh_region_start_tree. (expand_dcc_cleanup): Likewise. (expand_dhc_cleanup): Likewise. - (expand_start_case): Switches introduce conditional contexts. (expand_start_case_dummy): Likewise. (expand_start_case_dummy): Likewise. @@ -4765,12 +5780,11 @@ Tue Apr 29 11:45:09 1997 Jason Merrill Mon Apr 28 09:10:19 1997 Jeffrey A Law (law@cygnus.com) - * h8300.c (push_order, pop_order): Add missing initializer - entries. + * h8300.c (push_order, pop_order): Add missing initializer entries. Fri Apr 25 19:39:43 1997 J"orn Rennecke - * h8300.c (output_adds_subs): check for adding 0. + * h8300.c (output_adds_subs): Check for adding 0. Fri Apr 25 14:52:31 1997 Jim Wilson @@ -4835,71 +5849,39 @@ Wed Apr 23 14:28:30 1997 Mike Stump * expr.h (sjthrow_libfunc): Add support for setjmp/longjmp based exception handling. - (sjpopnthrow_libfunc): Likewise. - (terminate_libfunc): Likewise. - (setjmp_libfunc): Likewise. - (longjmp_libfunc): Likewise. + ({sjpopnthrow,terminate,setjmp,longjmp}_libfunc): Likewise. (get_dynamic_handler_chain_libfunc): Likewise. * expr.c (expand_expr, case TRY_CATCH_EXPR): Likewise. - (expand_expr, case POPDCC_EXPR): Likewise. - (expand_expr, case POPDHC_EXPR): Likewise. + (expand_expr, case POPD{C,H}C_EXPR): Likewise. * stmt.c (mark_block_as_eh_region): Likewise. (mark_block_as_not_eh_region): Likewise. - (is_eh_region): Likewise. - (conditional_context): Likewise. - (expand_start_bindings): Likewise. - (expand_end_bindings): Likewise. - (expand_decl_cleanup): Likewise. - (expand_dcc_cleanup): Likewise. - (expand_dhc_cleanup): Likewise. + (is_eh_region, conditional_contex, expand_start_bindings): Likewise. + (expand_end_bindings, expand_{decl,dcc,dhc}_cleanup): Likewise. (expand_cleanups): Likewise. * tree.h (mark_block_as_eh_region): Likewise. - (mark_block_as_not_eh_region): Likewise. - (is_eh_region): Likewise. - (conditional_context): Likewise. - (expand_dhc_cleanup): Likewise. + (mark_block_as_not_eh_region, is_eh_region): Likewise. + conditional_context, expand_dhc_cleanup): Likewise. * except.c (exception_via_longjmp): Likewise. (protect_cleanup_actions_with_terminate): Likewise. - (current_function_dhc): Likewise. - (current_function_dcc): Likewise. - (add_partial_entry): Likewise. - (get_dynamic_handler_chain): Likewise. - (get_dynamic_cleanup_chain): Likewise. - (start_dynamic_cleanup): Likewise. - (start_dynamic_handler): Likewise. - (expand_eh_region_start_tree): Likewise. - (expand_eh_region_start): Likewise. - (expand_eh_region_end): Likewise. - (emit_throw): Likewise. - (expand_leftover_cleanups): Likewise. - (expand_start_all_catch): Likewise. - (expand_end_all_catch): Likewise. - (protect_with_terminate): Likewise. - (start_eh_unwinder): Likewise. - (end_eh_unwinder): Likewise. - (init_eh_for_function): Likewise. - (save_eh_status): Likewise. - (restore_eh_status): Likewise. - (exception_optimize): Likewise. - * optabs.c (sjthrow_libfunc): Likewise. - (sjpopnthrow_libfunc): Likewise. - (terminate_libfunc): Likewise. - (setjmp_libfunc): Likewise. - (longjmp_libfunc): Likewise. - (get_dynamic_handler_chain_libfunc): Likewise. + (current_function_d{h,c}c, add_partial_entry): Likewise. + (get_dynamic_{handler,cleanup}_chain): Likewise. + (start_dynamic_{cleanup, handler}): Likewise. + (expand_eh_region_start{,_tree}, expand_eh_region_end): Likewise. + (emit_throw, expand_leftover_cleanups): Likewise. + (expand_{start,end}_all_catch, protect_with_terminate): Likewise. + ({start,end}_eh_unwinder, init_eh_for_function): Likewise. + ({save,restore}_eh_status, exception_optimize): Likewise. + * optabs.c ({sjthrow,sjpopnthrow,terminate,setjmp}_libfunc): Likewise. + ({longjmp,get_dynamic_handler_chain}_libfunc): Likewise. (init_optabs): Likewise. * except.h: Likewise. * libgcc2.c (__default_terminate): Likewise. - (__terminate): Likewise. - (__get_dynamic_handler_chain): Likewise. - (__sjthrow): Likewise. + (__terminate, __get_dynamic_handler_chain, __sjthrow): Likewise. (__sjpopnthrow): Likewise. * toplev.c (f_options): Likewise. - * tree.def (TRY_CATCH_EXPR): Likewise. - (POPDHC_EXPR): Likewise. - (POPDCC_EXPR): Likewise. - * config/pa/pa.h: JMP_BUF_SIZE define. - * config/sparc/sparc.h: JMP_BUF_SIZE define. + * tree.def (TRY_CATCH_EXPR, POPDHC_EXPR, POPDCC_EXPR): Likewise. + * pa.h (JMP_BUF_SIZE): Define. + * sparc.h (JMP_BUF_SIZE): Define. * expr.h (cleanups_this_call): Transform uses of cleanups_this_call into uses of the cleanups managed by the block code @@ -4909,29 +5891,18 @@ Wed Apr 23 14:28:30 1997 Mike Stump target_temp_slot_level, conditional_code, last_unconditional_cleanup and cleanup_ptr to struct nesting to facilitate conditional cleanups. - * expr.c (cleanups_this_call): Likewise. - (init_expr): Likewise. - (save_expr_status): Likewise. - (restore_expr_status): Likewise. - (store_expr): Likewise. - (expand_expr): Likewise. - (defer_cleanups_to): Likewise. - (expand_cleanups_to): Likewise. - (do_jump, case TRUTH_ANDIF_EXPR): Likewise. - (do_jump, case TRUTH_ORIF_EXPR): Likewise. + * expr.c (cleanups_this_call, init_expr): Likewise. + ({save,restore}_expr_status, store_expr): Likewise. + (expand_expr, {defer,expand}_cleanups_to): Likewise. + (do_jump, case TRUTH_{AND,OR}IF_EXPR): Likewise. (do_jump, case COND_EXPR): Likewise. * stmt.c (struct nesting): Likewise. - (expand_return): Likewise. - (expand_start_bindings): Likewise. - (expand_end_bindings): Likewise. - (expand_cleanups): Likewise. - (start_cleanup_deferal): Likewise. - (end_cleanup_deferal): Likewise. + (expand_return, expand_start_bindings, expand_end_bindings): Likewise. + (expand_cleanups, {start,end}_cleanup_deferal): Likewise. * tree.h (start_cleanup_deferal): Likewise. (end_cleanup_deferal): Likewise. * calls.c (expand_call): Likewise. * function.h (struct function): Likewise. - * except.c (asynchronous_exceptions): Support -fasynchronous_exceptions. (can_throw): Likewise. @@ -4943,8 +5914,7 @@ Wed Apr 23 14:28:30 1997 Mike Stump * stmt.c (expand_start_target_temps): Add for convenience. (expand_end_target_temps): Likewise. - * except.c (jumpif_rtx): Likewise. - * except.c (jumpifnot_rtx): Likewise. + * except.c (jumpif{,not}_rtx): Likewise. * stmt.c: Remove all traces of empty_cleanup_list. @@ -4973,8 +5943,7 @@ Wed Apr 23 09:48:58 1997 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) Wed Apr 23 09:41:35 1997 Andreas Schwab - * reload.c (push_reload): Fix last argument of the call to - find_dummy_reload. + * reload.c (push_reload): Fix last arg of call to find_dummy_reload. Wed Apr 23 09:29:14 1997 Richard Kenner @@ -5162,8 +6131,7 @@ Sun Apr 13 18:43:16 1997 Ian Lance Taylor Sun Apr 13 17:24:48 1997 Doug Evans - * expr.c (move_block_from_reg): Try using an integral mov operation - first. + * expr.c (move_block_from_reg): Try using integral mov operation first. * calls.c (expand_call): When copying unaligned values into a register, zero out the register first rather than emitting a clobber. @@ -5384,13 +6352,13 @@ Sat Apr 5 20:17:43 1997 Michael Meissner Fri Apr 4 18:30:12 1997 Jim Wilson - * rs6000/rs6000.md (adddi3): Use non_short_cint_operand instead of + * rs6000.md (adddi3): Use non_short_cint_operand instead of non_add_cint_operand. Thu Apr 3 15:08:39 1997 Jeffrey A Law (law@cygnus.com) * mn10300.c (can_use_return_insn): Add size of fixed stack space - for function calls into the size of the frame. */ + for function calls into the size of the frame. (expand_prologue, expand_epilogue): Likewise. (initial_offset): Corresponding changes.. * mn10300.h (OUTGOING_REG_PARM_STACK_SPACE): No longer define. @@ -5477,7 +6445,6 @@ Fri Mar 28 17:46:13 1997 Jim Wilson (OBJS): Add profile.o. (STAGESTUFF): Add gcov. (profile.o, gcov.o, gcov): Add rules to build them. - (cpp.info, gcc.info, gcc.dvi): Add gcov.texi. (install-common): Install gcov. * combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT REG_NOTES. @@ -5526,9 +6493,9 @@ Thu Mar 27 16:52:52 1997 Stan Cox * i386.h (STACK_BOUNDARY): Define to always be 32. From J"orn Rennecke - * i386.md: (zero_extendhisi2+[12]): use true_regnum instead of REGNO for - operand 0. - (zero_extendqisi2+3: use reg_overlap_mentioned_p instead of REGNO + * i386.md: (zero_extendhisi2+[12]): Use true_regnum instead of + REGNO for operand 0. + (zero_extendqisi2+3): Use reg_overlap_mentioned_p instead of REGNO comparison; use true_regnum instead of REGNO for rtx generation. Wed Mar 26 12:34:21 1997 Ian Lance Taylor @@ -5591,7 +6558,7 @@ Tue Mar 25 13:20:18 1997 J.T. Conklin * m68k.md (tablejump): Use extl to explicitly sign extend index registeron TARGET_5200. - * m68k/{apollo68.h,coff.h,linux.h,mot3300.h,pbb.h} + * m68k/{apollo68.h,coff.h,linux.h,mot3300.h,pbb.h} (ASM_RETURN_CASE_JUMP): Likewise. * m68k.md (mulsi3): Changed into define_expand. Split insn into @@ -5616,8 +6583,7 @@ Tue Mar 25 13:20:18 1997 J.T. Conklin Tue Mar 25 12:18:41 1997 Richard Kenner - * Makefile.in (GCC_PASSES): Revert previous change; use - cc1$(exeext). + * Makefile.in (GCC_PASSES): Revert previous change; use cc1$(exeext). Mon Mar 24 16:12:20 1997 Doug Evans @@ -5631,7 +6597,7 @@ Mon Mar 24 16:12:20 1997 Doug Evans Mon Mar 24 15:53:15 1997 Joel Sherrill * rs6000/rtems.h: Change to a near clone of the powerpc-eabi target. - * configure (powerpc*-*-rtems): Move before Linux configuration. + * configure (powerpc*-*-rtems): Move before GNU/Linux configuration. Mon Mar 24 14:26:37 1997 Gavin Koch @@ -6043,11 +7009,7 @@ Tue Mar 4 16:38:13 1997 Brendan Kehoe * i386.c (i386_return_pops_args): Make sure FUNDECL is non-nil before we try to use it. - * i386/isc.h (RETURN_POPS_ARGS): Likewise. - * i386/next.h (RETURN_POPS_ARGS): Likewise. - * i386/sco.h (RETURN_POPS_ARGS): Likewise. - * i386/sco5.h (RETURN_POPS_ARGS): Likewise. - * i386/scodbx.h (RETURN_POPS_ARGS): Likewise. + * i386/{isc,next,sco,sco5,scodbx}.h (RETURN_POPS_ARGS): Likewise. Mon Mar 3 20:17:54 1997 Gavin Koch @@ -6086,18 +7048,15 @@ Fri Feb 28 16:08:47 1997 Michael Meissner Thu Feb 27 17:54:42 1997 Karl Heuer - * fixinc.ptx: Fix sed expression looking for in - pwd.h. + * fixinc.ptx: Fix sed expression looking for in pwd.h. Thu Feb 27 12:11:16 1997 Dennis Glatting - * fixincludes: Remove more cases of __const__ from math.h on - NeXT. + * fixincludes: Remove more cases of __const__ from math.h on NeXT. Wed Feb 26 14:52:27 1997 Michael Meissner * reload.c (debug_reload): Remove extra argument to fprintf. - * rs6000.c (output_toc): Make fprintf calls type correct. * rs6000.h (DBX_CONTIN_LENGTH): Define as 4000 to avoid AIX @@ -6251,7 +7210,7 @@ Sat Feb 15 17:25:44 1997 Andreas Schwab - * vax/vax.h (FUNCTION_PROLOGUE): Adjust size by STARTING_FRAME_OFFSET. + * vax.h (FUNCTION_PROLOGUE): Adjust size by STARTING_FRAME_OFFSET. * vax/vms.h (FUNCTION_PROLOGUE): Delete. Sat Feb 15 08:48:14 1997 Douglas B. Rupp (rupp@gnat.com) @@ -6302,9 +7261,7 @@ Wed Feb 12 15:40:20 1997 Jim Wilson Tue Feb 11 15:53:51 1997 J"orn Rennecke * sh.c (calc_live_regs): Exclude RETURN_ADDRESS_POINTER_REGNUM. - - * sh.c (calc_live_regs): Need not save MACL/MACH when not live - or in leaf function. + Need not save MACL/MACH when not live or in leaf function. Mon Feb 10 14:46:32 1997 Jeffrey A Law (law@cygnus.com) @@ -6515,10 +7472,9 @@ Fri Jan 31 15:35:08 1997 Mike Stump Fri Jan 31 17:08:11 1997 Ian Lance Taylor - * local-alloc.c (update_equiv_regs): If a register which is - equivalent to some value is only used in one place, and we can't - substitute the value for the use, then move the register assignment - to just before the use. + * local-alloc.c (update_equiv_regs): If register which is equivalent + to some value is only used in one place, and we can't substitute value + for use, move register assignment to just before use. Fri Jan 31 15:57:25 1997 Stan Cox @@ -6567,7 +7523,7 @@ Wed Jan 29 15:23:59 1997 Ian Lance Taylor * combine.c (try_combine): Clear reg_n_refs if i2dest is not mentioned in newi2pat. -Tue Jan 28 16:00:23 1997 Stan Cox (coxs@dg-rtp.dg.com) +Tue Jan 28 16:00:23 1997 Stan Cox (coxs@dg-rtp.dg.com) From Robert Lipe * i386/sco5.h (SCO_DEFAULT_ASM_COFF): Remove bytecode stuff. @@ -6588,8 +7544,8 @@ Mon Jan 27 13:32:46 1997 J"orn Rennecke Mon Jan 27 08:56:03 1997 Jeffrey A Law (law@cygnus.com) - * fixincludes: Fix incorrect forward structure declaration in - sys/time.h on hpux10.20. + * fixincludes (sys/time.h): Fix incorrect forward structure + declaration on hpux10.20. Mon Jan 27 09:05:35 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -6637,9 +7593,8 @@ Tue Jan 21 16:03:35 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) Tue Jan 21 12:16:15 1997 Doug Evans - * stor-layout.c (layout_record): Correct test for whether - field spans its unit of alignment in case where - field_size == type_align. + * stor-layout.c (layout_record): Correct test for whether field spans + its unit of alignment in case where field_size == type_align. Mon Jan 20 20:27:54 1997 Ian Lance Taylor @@ -6871,7 +7826,7 @@ Thu Jan 9 12:06:04 1997 Jim Wilson Thu Jan 9 12:06:04 1997 Stan Cox From Linus Torvalds and Mat Hostetter: - * i386.c (i386_sext16_if_const): Added to sign extend an HImode constant. + * i386.c (i386_sext16_if_const): Added to sign extend HImode constant. (i386_aligned_reg_p): Added to tell if an rtx is aligned. (i386_cc_probably_useless_p): Don't trust cc bits. * i386.h (TARGET_ZERO_EXTEND_WITH_AND): Don't do this for p6. @@ -6879,11 +7834,7 @@ Thu Jan 9 12:06:04 1997 Stan Cox (movhi+1): Use movz instead of mov on p6. (addsi3): Add 128 by subtracting -128. (zero_extendhisi2): Use SImode move if aligned. - (addhi3): Likewise. - (subhi3): Likewise. - (andhi3): Likewise. - (iorhi3): Likewise. - (xorhi3): Likewise. + ({add,sub,and,ior,xor}hi3): Likewise. Tue Jan 7 16:58:27 1997 Jason Merrill @@ -7006,7 +7957,7 @@ Fri Jan 3 06:55:09 1997 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) Thu Jan 2 08:52:51 1997 Richard Kenner * configure: Finish restoring change of default of objc threads to - "single" for Linux. + "single" for Linux-based GNU systems. Mon Dec 30 17:03:46 1996 Jeffrey A Law (law@cygnus.com) @@ -7033,7 +7984,7 @@ Mon Dec 30 14:43:51 1996 Jim Wilson * print-tree.c (print_node): Don't try to print nonexistent TYPE_ATTRIBUTES field of a decl node. -1996-12-30 Richard Stallman +Mon Dec 30 10:30:25 1996 Richard Stallman * config.sub: Handle hiuxmpp as system type. @@ -7146,14 +8097,13 @@ Thu Dec 12 20:04:55 1996 Jason Merrill * i386.h (INCOMING_RETURN_ADDR_RTX): Define. (DWARF_FRAME_RETURN_COLUMN): Define. - * dwarf2out.c (add_AT_long_long): Renamed from add_AT_double for + * dwarf2out.c (add_AT_long_long): Renamed from add_AT_double fo clarity. (print_die): Adjust. (add_AT_float): New fn. (add_const_value_attribute): Support fp values. (size_of_die): Use blocks for long_long and fp values. - (value_format): Likewise. - (output_die): Likewise. + (value_format, output_die): Likewise. (output_loc_operands): Don't support DW_OP_const8?. Thu Dec 12 19:49:09 1996 Ian Lance Taylor @@ -7164,7 +8114,7 @@ Thu Dec 12 19:49:09 1996 Ian Lance Taylor to decide whether to call output_constant_pool. (assemble_end_function): Likewise. - * calls.c: Check SMALL_REGISTER_CLASSES at run time as well as at + * calls.c: Check SMALL_REGISTER_CLASSES at run time, not just compile time. * combine.c, cse.c, function.c, jump.c, local-alloc.c: Likewise. * loop.c, reload.c, reload1.c: Likewise. @@ -7192,8 +8142,8 @@ Thu Dec 12 15:25:39 1996 Michael Meissner moving the rest to rs6000/t-ppccomm. * configure (powerpc*-*-*): For embedded and System V - configurations, add rs6000/t-ppccomm. For Linux and Solaris, use - t-ppcos. + configurations, add rs6000/t-ppccomm. + For GNU/Linux and Solaris, use t-ppcos. * ginclude/ppc-asm.h (cr*, f*): Add new macros for register names. @@ -7330,8 +8280,7 @@ Tue Dec 10 13:47:24 1996 Joern Rennecke Mon Dec 9 18:00:38 1996 Jason Merrill - * dwarf2out.c (output_uleb128): Output the value in a human-readable - comment. + * dwarf2out.c (output_uleb128): Output value in human-readable comment. (output_sleb128): Likewise. (various): Adjust. (output_call_frame_info): Only output info if it's interesting. @@ -7603,7 +8552,7 @@ Sun Nov 24 16:37:18 1996 Dave Love * configure (objc_thread_file): Set conditionally in each case so may be overidden with `--enable-objcthreads=posix'. - Change Linux default to `single'. + Change GNU/Linux default to `single'. Fri Nov 22 17:53:15 1996 Jason Merrill @@ -7667,11 +8616,10 @@ Tue Nov 19 16:50:32 1996 Michael Meissner * configure (powerpc*-{sysv,elf,eabi{,aix,sim}}): Set extra_headers to ppc-asm.h. - (powerpc*-{linux,solaris,rtems,vxworks}): Ditto. - (powerpc*-{winnt,pe,cygwin32}): Ditto. + (powerpc*-{linux,solaris,rtems,vxworks}): Likewise. + (powerpc*-{winnt,pe,cygwin32}): Likewise. - * rs6000/t-{ppc,ppcgas,solaris,winnt} (EXTRA_HEADERS): Don't set - it here. + * rs6000/t-{ppc,ppcgas,solaris,winnt} (EXTRA_HEADERS): Don't set here. Mon Nov 18 14:51:46 1996 Jason Merrill @@ -7793,8 +8741,7 @@ Fri Nov 15 12:11:28 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) * unroll.c (iteration_info): Fix code so that it knows iteration_var is a HOST_WIDE_INT, not a long. - * fold-const.c (operand_equal_p): Do real comparison with - REAL_VALUES_EQUAL. + * fold-const.c (operand_equal_p): Do comparison with REAL_VALUES_EQUAL. (make_range): Properly decide when to get TREE_TYPE of arg0. Handle EXP being an INTEGER_CST at end. (fold_range_test): Handle return of 0 from make_range. @@ -7862,9 +8809,7 @@ Tue Nov 12 17:55:10 1996 Torbjorn Granlund (TARGET_SWITCHES): Handle -mbyte. (LOAD_EXTEND_OP): When MODE is not SImode, return ZERO_EXTEND. * alpha.md (zero_extendqidi2): Handle TARGET_BYTE_OPS. - (zero_extendhidi2): Likewise. - (zero_extendqisi2): Likewise. - (zero_extendhisi2): Likewise. + (zero_extend{hidi,qisi,hisi}2): Likewise. (extendqisi2): Use extendqidi2x if TARGET_BYTE_OPS. (extendqidi2): Likewise. (extendqidi2x): New pattern. @@ -8072,12 +9017,10 @@ Mon Nov 4 10:23:46 1996 Michael Meissner * ginclude/va-ppc.h (__va_regsave_t,va_start,va_end): Wrap macro and structures inside #ifndef __VA_PPC_H__ to allow reinclusion. - * rs6000/rs6000.h (LEGITIMATE_SMALL_DATA_P): Don't allow -fpic or - TARGET_TOC. - (LEGITIMATE_LO_SUM_ADDRESS_P): Ditto. - (LEGITIMIZE_ADDRESS): Ditto. + * rs6000.h (LEGITIMATE_SMALL_DATA_P): Don't allow -fpic or TARGET_TOC. + (LEGITIMATE_LO_SUM_ADDRESS_P, LEGITIMIZE_ADDRESS): Likewise. - * rs6000/rs6000.md (movsi): Don't call elf_{high,low} if -fpic. + * rs6000.md (movsi): Don't call elf_{high,low} if -fpic. * rs6000/cygwin32.h (STARTFILE_SPEC): Eliminate empty %{}. @@ -8086,8 +9029,7 @@ Sun Nov 3 15:56:35 1996 Michael Meissner * rs6000/sysv4.h (TARGET_TOC): Plain -fpic does not require a TOC. ({MINIMAL_TOC,CONST}_SECTION_ASM_OP): -fpic should be treated like -mrelocatable in these cases. - (ASM_OUTPUT_INT): Ditto. - (ASM_OUTPUT_SECTION_NAME): Ditto. + (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise. (ASM_OUTPUT_ALIGNED_LOCAL): Use sdata_section, not sbss_section. Fri Nov 1 19:57:13 1996 Jason Merrill @@ -8171,7 +9113,7 @@ Tue Oct 29 16:21:59 1996 Michael Meissner file after reading the main specs file to allow the user to override the default. (DEFAULT_WORD_SWITCH_TAKES_ARG): Add specs to list. - (option_map): Ditto. + (option_map): Likewise. Tue Oct 29 15:49:18 1996 Jason Merrill @@ -8183,8 +9125,7 @@ Tue Oct 29 15:49:18 1996 Jason Merrill Mon Oct 28 20:09:39 1996 J"orn Rennecke - * sh.md (shl_sext_ext): Don't accept simple left/right shift - variant. + * sh.md (shl_sext_ext): Don't accept simple left/right shift variant. * sh.c (EXT_SHIFT_SIGNED): New macro. (shl_sext_kind, gen_shl_sext): try left shift - sign extend - left shift - arithmetic right shift in case 2. @@ -8196,14 +9137,12 @@ Mon Oct 28 14:55:42 1996 Jim Wilson Mon Oct 28 14:26:08 1996 Ian Lance Taylor - * mips/mips.h (RTX_COSTS): Add cases for SIGN_EXTEND and - ZERO_EXTEND. + * mips/mips.h (RTX_COSTS): Add cases for SIGN_EXTEND and ZERO_EXTEND. * m68k/lb1sf68.asm: Change # to IMM in udivsi3 __mcf5200__. * combine.c (simplify_rtx): Add some optimizations for TRUNCATE. - (expand_compound_operation): Add some optimizations for - ZERO_EXTEND. + (expand_compound_operation): Add some optimizations for ZERO_EXTEND. Mon Oct 28 14:11:20 1996 Gavin Koch @@ -8244,7 +9183,7 @@ Mon Oct 28 09:07:42 1996 J"orn Rennecke Mon Oct 28 08:38:23 1996 J"orn Rennecke - * dsp16xx.h (ASM_OUTPUT_BYTE): adjust definition to actual type of + * dsp16xx.h (ASM_OUTPUT_BYTE): Adjust definition to actual type of VALUE, which is HOST_WIDE_INT. Mon Oct 28 07:36:07 1996 Ulrich Drepper @@ -8300,7 +9239,7 @@ Sat Oct 26 12:20:35 1996 John F. Carr Sat Oct 26 11:38:01 1996 Kamil Iskra - * collect2.c (dump_file): Call fclose() for opened files. + * collect2.c (dump_file): Call fclose for opened files. Sat Oct 26 11:29:29 1996 J"orn Rennecke (amylaar@cygnus.co.uk) @@ -8374,9 +9313,8 @@ Wed Oct 23 17:46:13 1996 Pat Rankin Wed Oct 23 14:50:04 1996 Jason Merrill - * stmt.c (expand_return): Expand cleanups. Make sure we get a - pseudo-reg and provide a target in the non-BLKmode case. Get return - type of fn properly. + * stmt.c (expand_return): Expand cleanups. Make sure we get pseudo + and provide target in non-BLKmode case. Get proper return type of fn. Wed Oct 23 14:16:06 1996 Ian Lance Taylor @@ -8391,8 +9329,8 @@ Wed Oct 23 14:08:31 1996 Jim Wilson * a29k.c (a29k_makes_calls): New global variable. (compute_regstack_size, a29k_compute_reg_names): New functions. - (output_prolog): Much code moved to two new functions. Use - a29k_makes_calls instead of makes_calls. + (output_prolog): Much code moved to two new functions. + Use a29k_makes_calls instead of makes_calls. * a29k.h (ASM_DECLARE_FUNCTION_NAME): Call a29k_compute_reg_names. * calls.c (expand_call): In target code, move PARALLEL case above @@ -8438,8 +9376,7 @@ Tue Oct 22 18:32:20 1996 Jim Wilson Tue Oct 22 18:27:06 1996 Ian Lance Taylor - * config/fp-bit.c (float_to_usi): Correct thinko: avoid a negative - shift. + * config/fp-bit.c (float_to_usi): Correct thinko: avoid negative shift. (df_to_sf): Remember any discarded nonzero bits in the low order guard bit. @@ -8491,7 +9428,7 @@ Mon Oct 21 13:58:54 1996 Jim Wilson Mon Oct 21 12:28:15 1996 J"orn Rennecke - jump.c (jump_optimize): Fix bug in Oct. 14 change. + * jump.c (jump_optimize): Fix bug in Oct. 14 change. Mon Oct 21 07:59:16 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -8529,8 +9466,7 @@ Thu Oct 17 23:22:03 1996 Jason Merrill (build_abbrev_table): Use value_format. (size_of_locs): New fn. (size_of_die): Don't assume a loc needs a 2-byte length. - (value_format): Likewise. - (output_die): Likewise. + (value_format, output_die): Likewise. Thu Oct 17 14:46:14 1996 Ian Lance Taylor @@ -8645,8 +9581,7 @@ Mon Oct 14 14:19:49 1996 Jason Merrill Sat Oct 12 00:07:00 1996 Doug Evans - * fold-const.c (make_range): Handle NULL operand 0 - (like in BIND_EXPRs). + * fold-const.c (make_range): Handle NULL operand 0 like in BIND_EXPRs. Fri Oct 11 15:42:22 1996 Jason Merrill @@ -8665,22 +9600,15 @@ Fri Oct 11 14:31:10 1996 Torbjorn Granlund Fri Oct 11 12:19:21 1996 Ian Lance Taylor - * mips.h (MIPS_AS_ASM_SPEC): Define. - (SUBARGET_MIPS_AS_ASM_SPEC): Define. - (GAS_ASM_SPEC): Define. - (TARGET_ASM_SPEC): Define. - (SUBTARGET_ASM_OPTIMIZING_SPEC): Define. - (SUBTARGET_ASM_DEBUGGING_SPEC): Define. - (SUBTARGET_ASM_SPEC): Define. + * mips.h ({,SUBTARGET_}MIPS_AS_ASM_SPEC): Define. + ({GAS,TARGET,SUBTARGET}_ASM_SPEC): Define. + (SUBTARGET_ASM_{OPTIMIZING,DEBUGGING}_SPEC): Define. (ASM_SPEC): Rewrite to use above specs. - (SUBTARGET_CPP_SIZE_SPEC): Define. - (SUBTARGET_CPP_SPEC): Define. + (SUBTARGET_CPP{,_SIZE}_SPEC): Define. (CPP_SPEC): Use above specs. Don't define _LANGUAGE_C if C++ or Objective C. - (EXTRA_SPECS): Define. - (SUBTARGET_EXTRA_SPECS): Define. - * mips/dec-bsd.h (ASM_SPEC): Don't define. - (CPP_SPEC): Don't define. + ({,SUBTARGET_}EXTRA_SPECS): Define. + * mips/dec-bsd.h ({CPP,ASM}_SPEC): Don't define. * mips/dec-osf1.h (CPP_SPEC): Don't define. (SUBTARGET_CPP_SIZE_SPEC): Define. * mips/elf64.h (CPP_SPEC): Don't define. @@ -8694,19 +9622,12 @@ Fri Oct 11 12:19:21 1996 Ian Lance Taylor (SUBTARGET_ASM_OPTIMIZING_SPEC): Define. * mips/iris5.h (CPP_SPEC): Don't define. (SUBTARGET_CPP_SPEC): Define. - * mips/iris6.h (CPP_SPEC): Don't define. - (SUBTARGET_CPP_SPEC): Define. - (ASM_SPEC): Don't define. - (SUBTARGET_ASM_SPEC): Define. - (SUBARGET_MIPS_AS_ASM_SPEC): Define. - (SUBTARGET_ASM_DEBUGGING_SPEC): Define. - * mips/netbsd.h (ASM_SPEC): Don't define. - (CPP_SPEC): Don't define. - (SUBTARGET_CPP_SPEC): Define. - * mips/osfrose.h (ASM_SPEC, ASM_FINAL_SPEC): Don't define. - (CPP_SPEC): Don't define. - (SUBTARGET_CPP_SIZE_SPEC): Define. + * mips/iris6.h ({CPP,ASM}_SPEC): Don't define. + (SUBTARGET_{CPP,ASM,MIPS_AS_ASM,ASM_DEBUGGING}_SPEC): Define. + * mips/netbsd.h ({CPP,ASM}_SPEC): Don't define. (SUBTARGET_CPP_SPEC): Define. + * mips/osfrose.h ({CPP,ASM,ASM_FINAL}_SPEC): Don't define. + (SUBTARGET_CPP{,_SIZE}_SPEC): Define. * mips/sni-svr4.h (CPP_SPEC): Don't define. (SUBTARGET_CPP_SIZE_SPEC): Define. @@ -8716,22 +9637,20 @@ Thu Oct 10 17:58:49 1996 Jason Merrill (DWARF_OFFSET_SIZE): Define. * dwarf2out.c (most everywhere): Support SGI/MIPS -mabi=64 by fixing - code which assumed that pointers are 4 bytes long, parameterizing - many sizes on DWARF_OFFSET_SIZE and using DELTA instead of DELTA4, - DATA instead of DATA4, FORM_ref instead of FORM_ref4. (DWARF_ROUND, - UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_WORD_ASM_OP, - ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_DATA, DW_FORM_data, - DW_FORM_ref): New macros. + code which assumed pointers are 4 bytes long, parameterizing many + sizes on DWARF_OFFSET_SIZE and using DELTA instead of DELTA4, + DATA instead of DATA4, FORM_ref instead of FORM_ref4. + (DWARF_ROUND, UNALIGNED_DOUBLE_INT_ASM_OP): New macros. + (UNALIGNED_WORD_ASM_OP, ASM_OUTPUT_DWARF_DELTA): Likewise. + (ASM_OUTPUT_DWARF_DATA, DW_FORM_data, DW_FORM_ref): New macros. (gen_variable_die): Only equate_decl_number_to_die if decl is TREE_STATIC. (get_AT): Fix thinko. * dwarf2out.c (constant_size): New fn. - (size_of_die): Use it instead of assuming 4 bytes; - usually we only need one. + (size_of_die): Use it instead of assuming 4 bytes. (output_value_format, output_die): Likewise. - (build_abbrev_table): We need a new abbrev if the size - of the constant differs. + (build_abbrev_table): Need new abbrev if size of constant differs. (dwarf_attr_name): Add new SGI/MIPS extensions. (gen_subprogram_die): Support DW_AT_MIPS_has_inlines. (gen_inlined_subroutine_die): Likewise. @@ -8882,8 +9801,8 @@ Tue Oct 8 10:36:44 1996 Jeffrey A Law (law@cygnus.com) Mon Oct 7 19:55:02 1996 Jim Wilson * sched.c (schedule_block): Before scheduling, add code to make all - call used regs that are not fixed or global live when we see a - CALL_INSN. During scheduling, change existing code to use same test. + call used regs not fixed or global live when we see a CALL_INSN. + During scheduling, change existing code to use same test. * varasm.c (bss_section): Delete unused parameters. @@ -8894,12 +9813,11 @@ Mon Oct 7 16:24:21 1996 Jason Merrill * dwarf2out.c (*_separate_line_info_*): Parallel line number information for functions defined in sections other than .text. (size_of_line_info): Support it. - (output_line_info): Likewise. - (dwarfout_line): Likewise. + (output_line_info, dwarfout_line): Likewise. (gen_compile_unit_die): Don't add high/low_pc or stmt_list attributes here. (dwarfout_finish): Add them here if appropriate. - (remove_AT): free removed attribute properly. + (remove_AT): Free removed attribute properly. (gen_type_die): Don't assume a nested type is complete. (dwarfout_finish): Don't emit line info if it would be empty. @@ -9022,8 +9940,7 @@ Wed Oct 2 16:53:56 1996 Jason Merrill * dwarf2out.c: Undo text_end_label, add_src_coords changes. (addr_const_to_string): Fix typos. - (decl_class_context): New fn. - (get_AT_unsigned): New fn. + (decl_class_context, get_AT_unsigned): New functions. (gen_subprogram_die): Only emit src coords info for a specification if they changed. (gen_variable_die): Support DW_AT_declaration and DW_AT_specification. @@ -9037,8 +9954,7 @@ Wed Oct 2 11:22:50 1996 Jeffrey A Law (law@cygnus.com) * pa.c (hppa_legitimize_address): Rework to generate more indexed and scaled indexed addressing. * pa.md (scaled indexed store): Add define_splits to undo - pessimizations created by hppa_legitimize_address for integer - stores. + pessimizations created by hppa_legitimize_address for integer stores. * pa.c (remove_useless_addtr_insns): New function. (pa_reorg): Delete code to remove useless add,tr insns. @@ -9206,18 +10122,15 @@ Thu Sep 26 17:12:00 1996 Jim Wilson Wed Sep 25 21:22:57 1996 Jeffrey A Law (law@cygnus.com) - * h8300.h (FIRST_PSEUDO_REGISTER): Bump up by one. - (ARG_POINTER_REGNUM): Likewise. + * h8300.h (FIRST_PSEUDO_REGISTER, ARG_POINTER_REGNUM): Bump up by one. (FIXED_REGISTERS): Add entry for MAC register. - (CALL_USED_REGISTERS< REG_ALLOC_ORDER): Likewise. + (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise. (HARD_REGNO_NREGS): Handle MAC register. - (HARD_REGNO_MODE_OK< REGNO_OK_FOR_BASE_P): LIkewise. - (REGISTER_NAMES): Likewise. + (HARD_REGNO_MODE_OK, REGNO_OK_FOR_BASE_P, REGISTER_NAMES): Likewise. (enum reg_class): New MAC_REGS register class. (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Corresponding changes. - (REG_CLASS_FROM_LETTER): LIkewise. - (REGISTER_MOVE_COST): Make copies to/from the MAC register - expenseive. + (REG_CLASS_FROM_LETTER): Likewise. + (REGISTER_MOVE_COST): Make copies to/from MAC register expenseive. (CONDITIONAL_REGISTER_USAGE): Define. * h8300.md (movsi_h8300hs): Renamed from movsi_h8300h. Handle moves to/from the MAC register. @@ -9352,9 +10265,8 @@ Mon Sep 23 14:41:12 1996 J"orn Rennecke * loop.c (check_dbra_loop): Don't assume label must be second part of if_then_else in condjump. - * jump.c (jump_optimize): In no-nop move deletion, don't - test PRESERVE_DEATH_INFO_REGNO_P; instead test if optimization is - performed. + * jump.c (jump_optimize): In no-nop move deletion, don't test + PRESERVE_DEATH_INFO_REGNO_P; instead test if optimization is performed. Check for REG_UNUSED note on to-be deleted insn before searching for preceding instruction to delete note from. If PRESERVE_DEATH_INFO_REGNO_P is true for SREG, replace INSN with USE. @@ -9395,8 +10307,7 @@ Sun Sep 22 11:12:20 1996 Joern Rennecke * c-decl.c (pushdecl): Check new declaration actually conflicts before warning about implicit external vs. static declarations. - * loop.c (combine_givs): Improve combining DEST_REG giv with - its only use. + * loop.c (combine_givs): Improve combining DEST_REG giv with only use. Sun Sep 22 10:50:03 1996 Scott Christley @@ -9410,8 +10321,7 @@ Sun Sep 22 10:50:03 1996 Scott Christley * objc/init.c: Replace use of free with objc_free. * objc/misc.c (objc_malloc): Renamed from __objc_xmalloc. (objc_realloc): Renamed from __objc_realloc. - (objc_atomic_malloc): New function. - (objc_valloc): New function. + (objc_atomic_malloc, objc_valloc): New functions. (objc_calloc): Renamed from __objc_calloc. (objc_free): New function. * objc/objc-api.h (_objc_malloc): New function pointer. @@ -9512,7 +10422,7 @@ Tue Sep 17 19:42:39 1996 Doug Evans Tue Sep 17 15:47:20 1996 Ian Lance Taylor - * Add support for VR5000, and finish MIPS4 support. + * Add support for R5000, and finish MIPS4 support. * mips.h (enum processor_type): Add PROCESSOR_R5000. (gen_conditional_move): Declare. (CONDITIONAL_REGISTER_USAGE): Mark ST_REGS as fixed if not @@ -9527,16 +10437,13 @@ Tue Sep 17 15:47:20 1996 Ian Lance Taylor (RTX_COSTS): Add cases for R5000. (REGISTER_MOVE_COST): Add cases for condition code registers. (PREDICATE_CODES): Add "const_float_1_operand". - (EXTRA_CC_MODES): Remove. - (EXTRA_CC_NAMES): Remove. - (SELECT_CC_MODE): Remove. + (EXTRA_CC_{MODES,NAME}, SELECT_CC_MODE): Remove. (REGISTER_NAMES): Add entries for new condition code registers. (DEBUG_REGISTER_NAMES): Likewise. (ADDITIONAL_REGISTER_NAMES): Remove FPSW_REGNUM. * mips.md (cpu attribute): Add R5000. (function units): Add cases for the R5000. - (madd.d): Only available if TARGET_DOUBLE_FLOAT. - (msub.d, nmadd.d, nmsub.d): Likewise. + ({madd,msub,nmadd,nmsub}.d): Only available if TARGET_DOUBLE_FLOAT. (recip.d, recip.s, rsqrt.d, rsqrt.s): New define_insn patterns. (movcc): New pattern to move condition code values. (reload_incc, reload_out_cc): New define_expand patterns. @@ -9545,17 +10452,14 @@ Tue Sep 17 15:47:20 1996 Ian Lance Taylor (branch_fp_ne, branch_fp_eq): Match any condition code register. (branch_fp_ne_rev, branch_fp_eq_rev): Remove. (seq_df, slt_df, sle_df): Match any condition code register. - (sgt_df, sge_df, seq_sf, slt_sf, sle_sf): Likewise. - (sgt_sf, sge_sf): Likewise. + (sgt_df, sge_df, seq_sf, slt_sf, sle_sf, sgt_sf, sge_sf): Likewise. (sne_df, sne_sf): Remove. (FP conditional moves): Match any condition code register. - Require TARGET_HARD_FLOAT and, if appropriate, - TARGET_DOUBLE_FLOAT. + Require TARGET_HARD_FLOAT and, if appropriate, TARGET_DOUBLE_FLOAT. (movsicc): Just call gen_conditional_move. (movdicc, movsfcc, movdfcc): New define_expand patterns. * mips.c (mips_reg_names): Add condition code registers. - (mips_sw_reg_names): Likewise. - (mips_regno_to_class): Likewise. + (mips_sw_reg_names, mips_regno_to_class): Likewise. (const_float_1_operand): New function. (mips_move_1word): Treat CCmode as SImode. Handle move from ST_REG to GR_REG if mips_isa >= 4. Only permit move from GR_REG @@ -9593,14 +10497,14 @@ Mon Sep 16 22:38:55 1996 Stu Grossman (grossman@critters.cygnus.com) Mon Sep 16 13:12:27 1996 J"orn Rennecke - * sh.c (ext_shift_insns, ext_shift_amounts): new arrays. - (gen_ashift_hi, gen_shifty_hi_op, shl_and_kind): new functions. - rtx_equal_function_value_matters: declare. - (shl_and_length, shl_and_src_length, gen_shl_and): new functions. - (shl_sext_kind, shl_sext_length, gen_shl_sext): new functions. - * sh.md (ashlhi3_k, lshrhi3_m): new insn pattern. + * sh.c (ext_shift_insns, ext_shift_amounts): New arrays. + (gen_ashift_hi, gen_shifty_hi_op, shl_and_kind): New functions. + (rtx_equal_function_value_matters): Declare. + (shl_and_length, shl_and_src_length, gen_shl_and): New functions. + (shl_sext_kind, shl_sext_length, gen_shl_sext): Likewise. + * sh.md (ashlhi3_k, lshrhi3_m): New patterns. (lshrhi3, shl_sext_ext, shl_sext_sub): - new insn pattern with matching define_split. + New insn patterns with matching define_split. (and_shl_scratch): Likewise, but also with unnamed variants. Sat Sep 14 17:05:07 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -9692,8 +10596,7 @@ Thu Sep 5 14:59:47 1996 J"orn Rennecke Thu Sep 5 10:43:36 1996 Jeffrey A Law (law@cygnus.com) - * pa.md (movsi, movdi, movsf patterns): Handle - 'R' constraints as needed. + * pa.md (mov{si,di,sf}): Handle 'R' constraints as needed. Wed Sep 4 17:13:28 1996 Bob Manson @@ -9704,8 +10607,8 @@ Wed Sep 4 17:13:28 1996 Bob Manson Wed Sep 4 12:30:02 1996 Mike Stump - * except.c (emit_unwinder): Ensure that CLOBBER and USE insns come - last, if present. + * except.c (emit_unwinder): Ensure CLOBBER and USE insns come last, + if present. Tue Sep 3 12:01:43 1996 Ian Lance Taylor @@ -9787,8 +10690,7 @@ Thu Aug 22 11:39:34 1996 Michael Meissner Tue Aug 20 18:49:55 1996 Michael Meissner * rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): If -mrelocatable or - -mrelocatable-lib, don't make read-only sections, since if there - are pointers to be fixed up, the assembler complains. + -mrelocatable-lib, don't make read-only sections. Mon Aug 19 18:42:13 1996 Doug Evans @@ -9880,7 +10782,7 @@ Wed Aug 14 10:31:28 1996 Jeffrey A Law (law@cygnus.com) (output_millicode_call): Likewise. * pa.h (TARGET_FAST_INDIRECT_CALLS): Define. (TARGET_SWITCHES): Add "fast-indirect-calls". - * pa.md: Treat TARGET_FAST_INDIRECT_CALLS just like + * pa.md (TARGET_FAST_INDIRECT_CALLS): Treat just like TARGET_NO_SPACE_REGS in various call/millicode call patterns. * pa.c (print_operand): Use the right comparison operator @@ -9916,11 +10818,10 @@ Tue Aug 13 11:36:02 1996 Michael Meissner * rs6000/t-ppcgas (MULTILIB_*): Build far fewer multilib libraries. Build all libraries with -mrelocatable-lib and - -mno-eabi. Build special Linux and Solaris libraries. + -mno-eabi. Build special GNU/Linux and Solaris libraries. * rs6000/eabi{,aix,le}.h (MULTILIB_DEFAULTS): Adapt to changes in t-ppcgas. - * rs6000/(linux,sol2).h (MULTILIB_DEFAULTS): Ditto. - * rs6000/{sysv4,sysv4le} (MULTILIB_DEFAULTS): Ditto. + * rs6000/(linux,sol2,sysv4,sysv4le).h (MULTILIB_DEFAULTS): Likewise. Tue Aug 13 11:36:02 1996 Jeffrey A Law (law@cygnus.com) @@ -9957,19 +10858,16 @@ Mon Aug 12 12:30:25 1996 Michael Meissner (STAGESTUFF): Add stamp-mlib. (mostlyclean): Delete tmp-mlib.h. - * genmultilib: Take a fifth argument to add options to pass on to - all multilib builds. Restructure output so that we pass the - synonym switches and extra arguments separately, and not - exponentially slow down genmultilib. + * genmultilib: Take fifth argument for options to all multilib builds. + Restructure output so we pass synonym switches and extra arguments + separately, and not exponentially slow down genmultilib. - * gcc.c (toplevel): Rearrange multilib support so that we support - passing the synonyms separately from the normal switches. Add - support for passing additional switches to be used on all multilib - builds. Dump and restore the value of MULTILIB_DEFAULTS so that - gcc cover programs for other targets will correctly chose the - appropriate multilib directory. - (setspec,process_command,main): Ditto - (used_arg,default_arg,print_multilib_info): Ditto. + * gcc.c (toplevel): Rearrange multilib support so we support passing + synonyms separately from normal switches. Add support for passing + additional switches for all multilib builds. Dump and restore value + of MULTILIB_DEFAULTS. + (setspec, process_command, main): Likewise. + (used_arg,default_arg,print_multilib_info): Likewise. Mon Aug 12 07:46:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -10397,8 +11295,7 @@ Thu Jul 18 20:29:33 1996 Jim Wilson (DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, MIPS_DEBUGGING_INFO, DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_INFO): Delete undefs at end of file. - * mips/mips.c (function_prologue): Use FUNCTION_NAME_ALREADY_DECLARED. - (function_epilogue): Likewise. + * mips.c (function_{pro,epi}logue): Use FUNCTION_NAME_ALREADY_DECLARED. Thu Jul 18 19:24:19 1996 David Mosberger-Tang @@ -10490,7 +11387,7 @@ Fri Jul 12 17:34:01 1996 David Edelsohn Fri Jul 12 15:04:43 1996 Doug Evans - * arm/arm.h (ASM_OUTPUT_MI_THUNK): Handle fns returning structures. + * arm.h (ASM_OUTPUT_MI_THUNK): Handle fns returning structures. * ptx4.h ({ASM,LINK}_SPEC): %{V} %{v:%{!V:-V}} -> %{v:-V}. * svr4.h ({ASM,LINK}_SPEC): Likewise. @@ -10513,26 +11410,24 @@ Thu Jul 11 17:29:33 1996 Michael Meissner register in order to work with inlined functions. (rs6000_replace_regno): New function to replace a register with a new pseudo register. - (rs6000_finalize_pic): Loop through all of the insns, replacing - any GOT_TOC_REGNUM registers with a new pseudo register, and - adding the initialization of of the GOT register if it was - created. + (rs6000_finalize_pic): Loop through all insns, replacing any + GOT_TOC_REGNUM registers with new pseudo register, and adding + initialization of GOT register if it was created. (rs6000_reorg): New function to check whether the GOT_TOC register marker was removed. Thu Jul 11 10:12:50 1996 Jeffrey A Law (law@cygnus.com) - * h8300/h8300.h (OK_FOR_U): If generating H8/S code, accept + * h8300.h (OK_FOR_U): If generating H8/S code, accept SYMBOL_REF and SYMBOL_REF + CONST_INT. - * h8300/h8300.c (shift_one): Emit tabs between opcode and + * h8300.c ({shift,rotate}_one): Emit tabs between opcode and operands to be consistent with the rest of the compiler. - (rotate_one): Likewise. (shift_two, rotate_two): Define. (get_shift_alg): Accept new argument "assembler2_p" for rotate/shift by two insns. All callers changed. Rework - to generate more efficient code on the H8/300, H8/300H, and - H8/S. Try to simplify somewhat. + to generate more efficient code on the H8/300, H8/300H, and H8/S. + Try to simplify somewhat. (emit_a_shift): Use shift-by-two insns when they're available. Emit tabs between opcode and operands to be consistent with the rest of the compiler. @@ -10543,9 +11438,8 @@ Wed Jul 10 19:32:17 1996 Jim Wilson Wed Jul 10 18:56:38 1996 Ian Lance Taylor - * sh/sh.c (machine_dependent_reorg): When looking for the - instruction that sets a register in LOG_LINKS, skip the link if - REG_NOTE_KIND is not zero. + * sh.c (machine_dependent_reorg): When looking for instruction that + sets register in LOG_LINKS, skip link if REG_NOTE_KIND is not zero. Wed Jul 10 15:02:18 1996 Michael Meissner @@ -10578,13 +11472,12 @@ Tue Jul 9 15:21:27 1996 Jim Wilson Mon Jul 8 18:00:33 1996 Jim Wilson - * sh/sh.h (enum reg_class): Add new class GENERAL_FP_REGS. + * sh.h (enum reg_class): Add new class GENERAL_FP_REGS. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. * cse.c (note_mem_written): Varying structure memory access with AND address can alias scalars. - * sched.c (true_dependence, anti_dependence, output_dependence): - Likewise. + * sched.c ({true,anti,output}_dependence): Likewise. * sh.c (calc_live_regs): For pragma_interrupt case, exclude call clobbered regs that are fixed, explicitly add MACH_REG and MACL_REG. @@ -10594,18 +11487,18 @@ Mon Jul 8 18:00:33 1996 Jim Wilson * function.c (aggregate_value_p): If hard_function_value returns a non-REG, then return 0. - * mips/mips.c (function_arg): Add explicit checks for FIELD_DECLs. + * mips.c (function_arg): Add explicit checks for FIELD_DECLs. (mips_function_value): Add explicit checks for FIELD_DECLs, and save them in the array FIELDS. When returning structure with 1 float field, enclose it in a PARALLEL and set the PARALLEL mode correctly. - * mips/mips.md (call_value): Call gen_call_value_multiple_internal0 + * mips.md (call_value): Call gen_call_value_multiple_internal0 only if there are multiple return values. Strip the PARALLEL off if there there is only one return value. Mon Jul 8 16:27:33 1996 Jeffrey A. Law * First cut at support for the H8/S. - * h8300/h8300.c (h8300_init_once): Handle the H8/S (treat it + * h8300.c (h8300_init_once): Handle the H8/S (treat it like the H8/300H). (dosize, adds_subs_operand, one_insn_adds_subs_operand): Likewise. (output_adds_subs, const_costs, print_operand): Likewise. @@ -10622,10 +11515,9 @@ Mon Jul 8 16:27:33 1996 Jeffrey A. Law (UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY): Likewise. (BIGGEST_ALIGNMENT, BIGGEST_FIELD_ALIGNMENT): Likewise. (INITIALIZE_TRAMPOLINE, MOVE_MAX, Pmode): Likewise. - * h8300/h8300.md: Handle H8/S just like H8/300H + * h8300.md: Handle H8/S just like H8/300H throughout the entire file. - * h8300/t-h8300 (MULTILIB_OPTIONS): Build "-ms" libraries - too. + * t-h8300 (MULTILIB_OPTIONS): Build "-ms" libraries too. (MULTILIB_DIRNAMES): Put H8/S libraries in "h8300s" directory. * h8300/lib1funcs.asm: Emit ".h8300s" pseudo-op when generating h8300s object files. Otherwise treat the H8/S just like the H8/300H. @@ -10665,13 +11557,11 @@ Wed Jul 3 17:09:22 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) Wed Jul 3 12:52:53 1996 Jeffrey A. Law * pa.c (fmpy_operands): Define. - (combinable_fmpy): New function. - (combinable_fadd, combinable_fsub): Likewise. + (combinable_{fmpy,add,fsub}): New function. * pa.md (parallel_addb, parallel_movb): New patterns. (fmpyadd, fmpysub): New patterns. - * pa.c (fmpyaddoperands): Tighten checks. Allow SFmode. - (fmpysuboperands): Similarly. + * pa.c (fmpy{add,sub}operands): Tighten checks. Allow SFmode. Tue Jul 2 18:57:15 1996 Jeffrey A. Law @@ -10702,11 +11592,10 @@ Sat Jun 29 07:10:02 1996 Michael Meissner * rs6000.h (INIT_EXPANDERS): Define, call rs6000_init_expanders. (RS6000_VARARGS_OFFSET): fpmem area no longer next to outgoing argument area. - (STARTING_FRAME_OFFSET): Ditto. - (STACK_DYNAMIC_OFFSET): Ditto. + (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Likewise. (frame_pointer_needed): Add external declaration. (rs6000_{save,restore}_machine_status): Ditto. - (rs6000_init_expanders): Ditto. + (rs6000_init_expanders): Likewise. * rs6000.c (rs6000_{save,restore}_machine_status): New functions to save and restore the globals needed on a per function basis. @@ -10714,9 +11603,8 @@ Sat Jun 29 07:10:02 1996 Michael Meissner function basis, and set up so the above save/restore functions are called when processing nested functions. (output_epilog): Don't initialize per function globals here. - (rs6000_stack_info): Change where the fpmem save area is to below - the local variables, and not just below the outgoing argument - area. + (rs6000_stack_info): Change where fpmem save area is to below local + variables, and not just below the outgoing argument area. * rs6000.md (floatsidf2*, fix_truncdfsi2*): Rewrite conversion routines to track new location of the fpmem save area. Allocate a @@ -10739,11 +11627,8 @@ Fri Jun 28 18:37:20 1996 Stephen L Moshier * objc/thr-decosf1.c (objc_thread_id): Use pthread_getunique_np to obtain a thread ID value. (objc_mutex_allocate): Cast mutex->owner to _objc_thread_t. - (objc_mutex_deallocate): Likewise. - (objc_mutex_unlock): Likewise. - (objc_mutex_trylock): Declare thread_id as _objc_thread_t. - (objc_mutex_lock): Likewise. - (objc_mutex_unlock): Likewise. + (objc_mutex_{deallocate,unlock}): Likewise. + (objc_mutex_{try,un,}lock): Declare thread_id as _objc_thread_t. * real.c (asctoeg): `0.0eX' is zero, regardless of the exponent X. @@ -10839,17 +11724,17 @@ Thu Jun 27 18:49:35 1996 Jim Wilson Thu Jun 27 11:03:59 1996 Ian Lance Taylor - * mips/mips.h (CC1_SPEC): Put spaces between the -mips* cases. + * mips.h (CC1_SPEC): Put spaces between the -mips* cases. * mips/osfrose.h (CC1_SPEC): Likewise. - * sh/sh.c (output_branch): Don't call ADJUST_INSN_LENGTH if the - insn is inside a sequence. + * sh.c (output_branch): Don't call ADJUST_INSN_LENGTH if insn is + inside sequence. Wed Jun 26 19:09:43 1996 Jeffrey A. Law - * pa/pa.h (CMP_PSI): Delete. + * pa.h (CMP_PSI): Delete. (FUNCTION_POINTER_COMPARISON_MODE): Likewise. - * pa/pa.md (cmppsi); Delete expander. + * pa.md (cmppsi): Delete expander. (canonicalize_funcptr_for_compare): Renamed from plabel_dereference, turned into an expander + anonymous pattern. @@ -10877,10 +11762,10 @@ Tue Jun 25 12:23:54 1996 Michael Meissner Tue Jun 25 01:17:50 1996 Jeffrey A. Law - * h8300/h8300.c (function_prologue): Update "monitor" prologues. + * h8300.c (function_prologue): Update "monitor" prologues. (function_epilogue): Similarly. - * pa/pa.h (PARSE_LDD_OUTPUT): Handle dynamic libraries that are + * pa.h (PARSE_LDD_OUTPUT): Handle dynamic libraries that are loaded "statically". Mon Jun 24 19:48:36 1996 Joel Sherrill @@ -11109,7 +11994,7 @@ Mon Jun 10 14:56:14 1996 Michael Meissner Mon Jun 10 14:53:38 1996 Doug Evans - Move fork/exec/wait handling into file of its own. + * Move fork/exec/wait handling into file of its own. * pexecute.c: New file. * Makefile.in (pexecute.o): Add rule. (xgcc): Link in pexecute.o. @@ -11186,11 +12071,11 @@ Sat Jun 8 22:13:33 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) Sat Jun 8 15:13:33 1996 Jim Wilson - * mips/mips.c (override_options): Add vr4100 and vr4300 support. - * mips/mips.h (enum processor_type): Likewise. + * mips.c (override_options): Add vr4100 and vr4300 support. + * mips.h (enum processor_type): Likewise. (MASK_4300_MUL_FIX, TARGET_4300_MUL_FIX): New macros. (TARGET_SWITCHES): Add -mfix4300 option. - * mips/mips.md (cpu, memory, imuldiv, adder, mult, divide): Add + * mips.md (cpu, memory, imuldiv, adder, mult, divide): Add vr4100 and vr4300 support. (muldf3, mulsf3): Add vr4300 support. (muldf3_internal, muldf_r4300, mulsf3_internal, mulsf_r4300): New @@ -11260,10 +12145,10 @@ Fri Jun 7 20:04:40 1996 Jim Wilson * sdbout.c (gsyms.h): Include if CROSS_COMPILE is defined. (plain_type_1): Use TYPE_PRECISION instead of TYPE_SIZE. Add check for LONG_DOUBLE_TYPE_SIZE if EXTENDED_SDB_BASIC_TYPES. - * i960/i960.h (EXTENDED_SDB_BASIC_TYPES): Define. + * i960.h (EXTENDED_SDB_BASIC_TYPES): Define. (PUT_SDB_TYPE): Delete now unnecessary shifting and masking. - * i960/i960.h (i960_output_move_{double,quad}): Declare. + * i960.h (i960_output_move_{double,quad}): Declare. Fri Jun 7 19:22:09 1996 Scott Christley @@ -11345,15 +12230,15 @@ Thu Jun 6 19:47:26 1996 Jim Wilson * stmt.c (expand_value_return): Handle PARALLEL return_reg. * mips/abi64.h (TYPE_DEPENDENT_REG): Delete. - * mips/mips.c (function_arg): Return PARALLEL for structure with + * mips.c (function_arg): Return PARALLEL for structure with aligned double fields. (type_dependent_reg): Delete. (mips_function_value): Return PARALLEL for structure with two floating point fields. * mips/mips.md (call_value): Handle PARALLEL in operands[0]. (call_value_multiple_internal2): New pattern. - * pa/pa.h (FUNCTION_ARG): General PARALLEL instead of EXPR_LIST. - * rs6000/rs6000.c (init_cumulative_args): Change EXPR_LIST to PARALLEL + * pa.h (FUNCTION_ARG): General PARALLEL instead of EXPR_LIST. + * rs6000.c (init_cumulative_args): Change EXPR_LIST to PARALLEL in comments. (function_arg): Generate PARALLEL instead of EXPR_LIST. @@ -11406,10 +12291,10 @@ Thu Jun 6 13:06:54 1996 Michael Meissner Wed Jun 5 20:04:53 1996 Jim Wilson - * i960/i960.h (ROUND_TYPE_ALIGN): Add check for TYPE_PACKED. + * i960.h (ROUND_TYPE_ALIGN): Add check for TYPE_PACKED. - * sh/sh.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define. - * sh/sh.md (branch_true): Add comment about T-bit compares. + * sh.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define. + * sh.md (branch_true): Add comment about T-bit compares. Tue Jun 4 23:08:34 1996 Per Bothner @@ -11442,8 +12327,7 @@ Wed Jun 5 16:25:51 1996 Michael Meissner (LINK_OS_*_SPEC): New specs for OS specific linker switches. (SUBTARGET_EXTRA_SPECS): Add new specs. - * {sol2,sysv4}.h (LINK_SPEC): Move Solaris link into the general - link spec. + * {sol2,sysv4}.h (LINK_SPEC): Move Solaris link into general link spec. * {sysv4,sysv4le,eabile}.h (LINK_TARGET_SPEC): Only pass -oformat to the linker if the user is changing the default endian format. @@ -11563,20 +12447,20 @@ Fri May 31 15:07:49 1996 Jim Wilson ASM_OUTPUT_ALIGNED_LOCAL, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Modify. (MIPS_ABI_DEFAULT, LOCAL_LABEL_PREFIX): Define. - * mips/mips.c: Add -mabi=n32 support. + * mips.c: Add -mabi=n32 support. (mips_const_double_ok, mips_move_1word, mips_move_2words, function_arg, override_options, mips_asm_file_start, compute_frame_size, save_restore_insns, function_prologue, mips_expand_prologue, function_epilogue, mips_function_value): Modify. (mips_abi, mips_abi_string): Define - * mips/mips.h: Add -mabi=n32 support. + * mips.h: Add -mabi=n32 support. (ABI_64BIT): Delete. (TARGET_OPTIONS, INITIAL_ELIMINATION_OFFSET, GO_IF_LEGITIMATE_ADDRESS, CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT_P, LEGITIMIZE_ADDRESS, ASM_OUTPUT_ADDR_DIFF_ELT): Modify. (enum mips_abi_type, SUBTARGET_TARGET_OPTIONS): Define. (mips_abi, mips_abi_string): Declare. - * mips/mips.md (jump, tablejump_internal1, tablejump_internal2): Add + * mips.md (jump, tablejump_internal1, tablejump_internal2): Add -mabi=n32 support. * mips/t-iris6 (MULTILIB_OPTIONS): Add -mabi=n32 support. * mips/xm-irix6.h (HOST_BITS_PER_LONG): Use _MIPS_SZLONG not 64. @@ -11627,32 +12511,22 @@ Wed May 29 14:54:44 1996 Michael Meissner Tue May 28 15:21:24 1996 Michael Meissner - * rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 77. The new fpmem - register represents the memory location used for float/int - conversions. - ({FIXED,CALL_USED}_REGISTERS): Add support for the fpmem pseudo - register. - (REG_ALLOC_ORDER): Ditto. - (HARD_REGNO_{NREGS,MODE_OK}): Ditto. - (REGISTER_MOVE_COST): Ditto. - (reg_class): Ditto. - (REG_CLASS_{NAMES,CONTENTS}): Ditto. - (REGNO_REG_CLASS): Ditto. - (PREFERRED_RELOAD_CLASS): Ditto. - (CLASS_{MAX_NREGS,CANNOT_CHANGE_SIZE,MAX_NREGS}): Ditto. - (rs6000_stack): Ditto. - ({,DEBUG_}REGISTER_NAMES): Ditto. + * rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 77. + ({FIXED,CALL_USED}_REGISTERS): Add support for fpmem pseudo register. + (REG_ALLOC_ORDER, HARD_REGNO_{NREGS,MODE_OK}): Likewise. + (REGISTER_MOVE_COST, reg_class, REG_CLASS_{NAMES,CONTENTS}): Likewise. + (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise. + (CLASS_{MAX_NREGS,CANNOT_CHANGE_SIZE,MAX_NREGS}): Likewise. + (rs6000_stack, {,DEBUG_}REGISTER_NAMES): Ditto. (FPMEM_{REGNO_P,REGNUM}): New macros for fpmem register. (rs6000_fpmem_{offset,size}): New global variables. (RS6000_VARARGS_OFFSET): Fpmem temporary storage is located between outgoing arg area and varargs save area. - (STARTING_FRAME_OFFSET): Ditto. - (STACK_DYNAMIC_OFFSET): Ditto. + (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Likewise. (PREDICATE_CODES): Add fpmem_operand. ({count_register,fpmem}_operand): Add declarations. - * rs6000.c ({rs6000,alt}_reg_names): Add support for fpmem - 'register'. + * rs6000.c ({rs6000,alt}_reg_names): Add support for fpmem 'register'. (rs6000_fpmem_{offset,size}): New global variables. (fpmem_operand): Return true for fpmem registers. (gpc_reg_operand): The fpmem register is not general purpose. @@ -11661,7 +12535,7 @@ Tue May 28 15:21:24 1996 Michael Meissner (print_operand): Add 'v' operand type for the upper 16 bits of signed constants, to placate the Solaris assembler. ({rs6000,debug}_stack_info): Add support for fpmem 'register'. - (output_epilog): Ditto. + (output_epilog): Likewise. * rs6000.md (addsi3,movsi,movsf,movdi): Use %v for constants with the upper 16 bits, to get the sign correct for PowerPC Solaris. @@ -11674,10 +12548,8 @@ Tue May 28 15:21:24 1996 Michael Meissner (ASM_SPEC): Do not pass -u to the assembler. (CC1_SPEC): -mrelocatable implies -meabi. - * sol2.h (RS6000_ABI_NAME): Default ABI is Solaris, not System - V.4. - (ASM_OUTPUT_ALIGNED_LOCAL): Don't define a Solaris specific - method. + * sol2.h (RS6000_ABI_NAME): Default ABI is Solaris, not System V.4. + (ASM_OUTPUT_ALIGNED_LOCAL): Don't define Solaris specific method. Mon May 27 06:39:13 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -11724,7 +12596,7 @@ Fri May 24 12:34:22 1996 Doug Evans (asm_output_aligned_bss): Likewise. (assemble_variable): Pass DECL to ASM_OUTPUT{,_ALIGNED}_BSS. * arm/aout.h (ASM_OUTPUT_ALIGNED_BSS): Update. - * h8300/h8300.h (ASM_OUTPUT_BSS): Update. + * h8300.h (ASM_OUTPUT_BSS): Update. * i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update. * i386/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update. * m68k/coff.h (ASM_OUTPUT_ALIGNED_BSS): Update. @@ -11736,9 +12608,8 @@ Fri May 24 12:34:22 1996 Doug Evans Thu May 23 19:55:52 1996 Jim Wilson - * combine.c (set_nonzero_bits_and_sign_copies): Set - reg_sign_bit_copies to one not zero to indicate that the value - is unknown. + * combine.c (set_nonzero_bits_and_sign_copies): Set reg_sign_bit_copies + to one not zero to indicate value is unknown. Thu May 23 18:39:24 1996 J.T. Conklin @@ -11750,16 +12621,15 @@ Thu May 23 18:39:24 1996 J.T. Conklin Thu May 23 15:53:06 1996 Ian Lance Taylor - * sh/sh.md: Add new instruction types fp and fpdiv. Set new + * sh.md: Add new instruction types fp and fpdiv. Set new instruction types where appropriate. Add function unit fp. Claim that store instructions use function unit memory. Thu May 23 00:36:19 1996 Jeffrey A. Law - * h8300/h8300.h (CONSTANT_ADDRESS_P): Don't accept CONST or HIGH - on the H8/300H. - * h8300/h8300.md: Use "m" rather than "o" constraint everywhere - appropriate. Cleanup use of "i" and "n" constraints. + * h8300.h (CONSTANT_ADDRESS_P): Don't accept CONST or HIGH on H8/300H. + * h8300.md: Use "m" rather than "o" constraint everywhere appropriate. + Cleanup use of "i" and "n" constraints. Wed May 22 17:43:37 1996 Jim Wilson @@ -11790,10 +12660,9 @@ Wed May 22 08:06:42 1996 Richard Kenner Tue May 21 13:42:17 1996 Jeffrey A. Law - * h8300/h8300.md (div patterns): Rewrite. - (mod patterns): Likewise. + * h8300.md (div and mode patterns): Rewrite. - * pa/pa.c (basereg_operand): Never accept a CONST_INT. + * pa.c (basereg_operand): Never accept a CONST_INT. Tue May 21 12:26:40 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -11947,11 +12816,9 @@ Fri May 17 14:20:13 1996 Mike Stump * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++ frontend to the backend where it belongs. - * tree.c (unsave_expr): Likewise. - (unsave_expr_now): Likewise. + * tree.c (unsave_expr{,_now}): Likewise. * tree.def (UNSAVE_EXPR): Likewise. - * tree.h (unsave_expr): Likewise. - (unsave_expr_now): Likewise. + * tree.h (unsave_expr{,_now}): Likewise. Fri May 17 15:04:40 1996 Michael Meissner @@ -11965,7 +12832,7 @@ Fri May 17 13:50:55 1996 Jason Merrill Fri May 17 13:34:28 1996 Ian Lance Taylor - * config/fp-bit.c (_fpdiv_parts): Correct sign handling when + * fp-bit.c (_fpdiv_parts): Correct sign handling when dividing zero or infinity by something. Fri May 17 12:36:36 1996 Doug Evans @@ -11974,21 +12841,21 @@ Fri May 17 12:36:36 1996 Doug Evans * Makefile.in (toplev.o): Pass -DTARGET_NAME. * arm/aout.h (ASM_OUTPUT_OPTIONS): Delete. (ASM_FILE_START): Delete option output support. - * arm/arm.c (output_option, output_options, m_options): Delete. - * m88k/m88k.c (output_file_start): Delete option output support. - * m88k/m88k.h (ASM_COMMENT_START): Define. - * mips/mips.c (target_switches, print_options): Delete. + * arm.c (output_option, output_options, m_options): Delete. + * m88k.c (output_file_start): Delete option output support. + * m88k.h (ASM_COMMENT_START): Define. + * mips.c (target_switches, print_options): Delete. (mips_asm_file_start): Put output of -G,Cpu,ISA here. - * mips/mips.h (ASM_COMMENT_START): Change from "\t\t#" to " #". - * rs6000/rs6000.c (output_option, m_options, output_options): Delete. - * rs6000/rs6000.h (ASM_OUTPUT_OPTIONS): Delete. + * mips.h (ASM_COMMENT_START): Change from "\t\t#" to " #". + * rs6000.c (output_option, m_options, output_options): Delete. + * rs6000.h (ASM_OUTPUT_OPTIONS): Delete. (ASM_COMMENT_START): Define. (ASM_FILE_START): Delete option output support. * rs6000/sysv4.h (ASM_FILE_START): Likewise. * rs6000/win-nt.h (ASM_FILE_START): Likewise. Delete duplicate. - * sh/sh.c (output_option, m_options, output_options): Delete. + * sh.c (output_option, m_options, output_options): Delete. (output_file_start): Delete option output support. - * sh/sh.h (ASM_FILE_START): Likewise. + * sh.h (ASM_FILE_START): Likewise. (ASM_COMMENT_START): Define. * dwarfout.c (*): flag_verbose_asm renamed to flag_debug_asm. * flags.h (flag_debug_asm): Declare. @@ -12080,13 +12947,13 @@ Wed May 15 13:35:11 1996 Michael Meissner * rs6000.md (move_to_float): Rewrite so that it uses the register allocator to allocate the stack temp, instead of calling rs6000_stack_temp. - (fix_truncdfsi2): Ditto. + (fix_truncdfsi2): Likewise. * rs6000.c (rs6000_stack_temp): Delete, no longer used. Wed May 15 10:39:27 1996 Jeffrey A. Law - * h8300/h8300.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define. + * h8300.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define. Sat May 11 07:42:59 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -12143,53 +13010,47 @@ Thu May 9 13:31:58 1996 Michael Meissner * rs6000.c (rs6000_sdata{,_name}): Add support for finer grain control on -msdata. - (output_options): Ditto. - (small_data_operand): Ditto. - (print_operand): Ditto. - (rs6000_select_section): Ditto. + (output_options, small_data_operand, print_operand): Likewise. + (rs6000_select_section): Likewise. (rs6000_encode_section_info): Move here from sysv4.h, section names are stored as STRING nodes, not IDENTIFIER. Wed May 8 21:04:49 1996 Doug Evans * function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE. - * pa/pa.h (RETURN_IN_MEMORY): No longer test for TREE_ADDRESSABLE. + * pa.h (RETURN_IN_MEMORY): No longer test for TREE_ADDRESSABLE. Tue May 7 13:42:57 1996 Jeffrey A. Law - * h8300/h8300.c: Include obstack.h. + * h8300.c: Include obstack.h. (bit_memory_operand): New function. (print_operand): Append ":16" to a memory reference to the tiny data area. (h8300_tiny_data_p): New function. - (h8300_valid_machine_decl_attribute): Accept "tiny_data". Fix - typo. + (h8300_valid_machine_decl_attribute): Accept "tiny_data". Fix typo. (h8300_encode_label): New function. (h8300_adjust_insn_length): References to the tiny data section are two bytes shorter than normal accesses on the H8/300H. - * h8300/h8300.h (OK_FOR_U): Fix thinko. + * h8300.h (OK_FOR_U): Fix thinko. (ENCODE_SECTION_INFO): Encode info for tiny data variables. (STRIP_NAME_ENCODING): Define. - * h8300/h8300.md (movqi insn): Fix length for a constant load. - (movstrictqi): Likewise. - (movhi, movstricthi): Likewise. + * h8300.md (movqi insn): Fix length for a constant load. + (movstrictqi, movhi, movstricthi): Likewise. (memory btst patterns): Add register to the constraints to keep reload happy. - * h8300/h8300.h (OK_FOR_U): (const (plus (symbol_ref) (const_int))) - is a valid U operand if SYMBOL_REF_FLAG is set on the - SYMBOL_REF. - * h8300/h8300.md (memory btst patterns): New patterns. + * h8300.h (OK_FOR_U): (const (plus (symbol_ref) (const_int))) + is valid U operand if SYMBOL_REF_FLAG is set on SYMBOL_REF. + * h8300.md (memory btst patterns): New patterns. - * h8300/h8300.c (h8300_eightbit_data_p): Renamed from - h8300_tiny_data_p. + * h8300.c (h8300_eightbit_data_p): Renamed from h8300_tiny_data_p. (h8300_eightbit_data_p): Check for the "eightbit_data" attribute instead of "tiny_data". (h8300_valid_machine_decl_attribute): Likewise. - * h8300/h8300.h (ENCODE_SECTION_INFO): Call h8300_eightbit_data_p + * h8300.h (ENCODE_SECTION_INFO): Call h8300_eightbit_data_p instead of h8300_tiny_data_p. - * h8300/h8300.h (READONLY_DATA_SECTION): Define. + * h8300.h (READONLY_DATA_SECTION): Define. (EXTRA_SECTIONS): Add in_readonly_data. (READONLY_DATA_SECTION_ASM_OP): Define. (EXTRA_SECTION_FUNCTINOS): Add readonly_data. @@ -12375,10 +13236,9 @@ Wed May 1 13:28:32 1996 Jason Merrill Wed May 1 01:44:47 1996 Jeffrey A. Law - * h8300/h8300.c (h8300_adjust_insn_length): Adjust the cost of + * h8300.c (h8300_adjust_insn_length): Adjust the cost of shifts by small constant values. - * h8300/h8300.md: Refine comments. Remove names from many - patterns which don't need them. + * h8300.md: Remove names from many patterns which don't need them. (compare insns): Don't underestimate lengths. (andqi3 expander): Remove constrains. (andhi3): Don't underestimate length. @@ -12387,8 +13247,7 @@ Wed May 1 01:44:47 1996 Jeffrey A. Law (indirect_jump_h8300, indirect_jump_h8300h): Simplify. (shift insns): Remove useless "I" constraint. - * h8300/h8300.md (bcs type): Remove "bcs" type attribute and - all references. + * h8300.md (bcs type): Remove "bcs" type attribute and all references. (bcs insns): Delete. No longer needed. (setcc from bitfield): Rewrite to use zero_extract. Provide QImode, HImode and SImode variants. @@ -12404,10 +13263,10 @@ Tue Apr 30 17:26:30 1996 Jason Merrill Tue Apr 30 16:52:41 1996 Jeffrey A. Law - * h8300/h8300.c (one_insn_adds_subs_operand): New function. + * h8300.c (one_insn_adds_subs_operand): New function. (h8300_adjust_insn_length): New function. - * h8300/h8300.h (ADJUST_INSN_LENGTH): Define. - * h8300/h8300.md: Remove obsolete comments. + * h8300.h (ADJUST_INSN_LENGTH): Define. + * h8300.md: Remove obsolete comments. (move patterns): Tweak constraints. (tst patterns): Use "register_operand" for predicate. (adds pattern): Use one_insn_adds_subs_operand to get length @@ -12428,36 +13287,31 @@ Mon Apr 29 13:03:12 1996 Doug Evans Mon Apr 29 00:35:15 1996 Jeffrey A. Law - * h8300/h8300.c (names_small): Remove "BAD" postfix from - %r7 byte registers. + * h8300.c (names_small): Remove "BAD" postfix from %r7 byte registers. (rtx_equal_function_value_matters): Remove extra declaration. (output_simode_bld): New function. - * h8300/h8300.h (NO_FUNCTION_CSE): Do define this. Register - pressure makes cse-ing function addresses rarely a win. - (reg_class): Remove unnecessary register classes LONG_REGS, - SP_REG, SP_AND_G_REGS. - (REG_CLASS_NAMES): Corresponding changes. - (REG_CLASS_CONTENTS): Corresponding changes. + * h8300.h (NO_FUNCTION_CSE): Do define this. + (reg_class): Remove LONG_REGS, SP_REG, SP_AND_G_REGS. + (REG_CLASS_{NAMES,CONTENTS,FROM_LETTER}): Corresponding changes. (REGNO_REG_CLASS): Corresponding changes. - (REG_CLASS_FROM_LETTER): Corresponding chagnes. (output_simode_bld): Declare. - * h8300/h8300.md: Nuke comments for stuff which has been fixed. + * h8300.md: Nuke comments for stuff which has been fixed. (all patterns): Remove references to register class "a" (SP_REGS) which no longer exists. (many patterns): Accept auto-inc auto-dec addresses in more cases. (zero_extendqisi2): New pattern for the H8/300. - (zero_extendhisi2): Only use zero_extendhisi2_h8300 when not optimizing. + (zero_extendhisi2): Only use zero_extendhisi2_h8300 when not + optimizing. (extendhisi2): Only use extendhisi2_h8300 when not optimizing. (extendqisi2): New pattern for the H8/300. (bitfield related patterns): Completely rewrite. - (fancy_bclr, fancy_btst): Deleted. Redundant with new bitfield - patterns. + (fancy_bclr, fancy_btst): Deleted. (addhi3 pattern for h8300): Handle case where we can't make matching constraints (works around hard to fix reload problem). (stack_pointer_manip): Delete. (and not patterns): New combiner patterns. - * pa/pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Make sure the + * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Make sure the final $CODE$ subspace is in the $TEXT$ space. Sun Apr 28 14:52:21 1996 Jason Merrill @@ -12475,12 +13329,12 @@ Sat Apr 27 10:28:59 1996 Michael Meissner Fri Apr 26 16:10:46 1996 Doug Evans - * sparc/sparc.md (*smacsi,*smacdi,*umacdi): Fix constraint on + * sparc.md (*smacsi,*smacdi,*umacdi): Fix constraint on operand 0. Fri Apr 26 14:36:33 1996 Michael Meissner - * gcc/config/i960/t-{960bare,vxworks960} (MULTILIB*): Add + * i960/t-{960bare,vxworks960} (MULTILIB*): Add soft-float multilib support. Fri Apr 26 06:38:56 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -12539,10 +13393,9 @@ Wed Apr 24 11:12:06 1996 Michael Meissner (eabi.S): Use eabi.S, not eabi.s for eabi.asm. (crt files): Add support for Solaris crt files. - * rs6000/sol{2.h,-c0.c,-ci.asm,-cn.asm}: New files for Solaris - support. + * rs6000/sol{2.h,-c0.c,-ci.asm,-cn.asm}: New files for Solaris. - * rs6000/linux.h: New file for Linux support. + * rs6000/linux.h: New file for Linux-based GNU system support. * rs6000/eabi-ci.asm (ppc-asm.h): Include. (.got section): Correct attribute. @@ -12558,14 +13411,14 @@ Wed Apr 24 11:12:06 1996 Michael Meissner * rs6000/{eabi,sysv}.h: Move most eabi configuration stuff from eabi.h to sysv.h. - * rs6000/sysv.h (TARGET_*): Convert -mcall-xxx from a switch into - an option. Add -mcall-{solaris,linux,sysv-eabi,sysv-noeabi} - options. Add -m{,no-}eabi options to control whether we adhere to + * rs6000/sysv.h (TARGET_*): Convert -mcall-xxx from switch into option. + Add -mcall-{solaris,linux,sysv-eabi,sysv-noeabi} options. + Add -m{,no-}eabi options to control whether we adhere to the System V spec or the EABI spec. Add -m{,no-}regnames to control whether registers are printed out as %r0 instead of 0. (SUBTARGET_OVERRIDE_OPTIONS): Add support for new -mcall options. (FP_ARG_MAX_REG): Use new macros for ABI conformance. - (RS6000_REG_SAVE): Ditto. + (RS6000_REG_SAVE): Likewise. (STACK_BOUNDARY,BIGGEST_ALIGNMENT): If eabi, align to 8 byte boundary, otherwise 16 byte. (EXTRA_SECTIONS): Add .init, .fini sections. @@ -12584,19 +13437,15 @@ Wed Apr 24 11:12:06 1996 Michael Meissner * rs6000.c (rs6000_abi_name): New global for getting the results of -mcall-xxx. - (rs6000_reg_names): New global for holding the normal register - names. + (rs6000_reg_names): New global for holding the normal register names. (alt_reg_names): Alternate register names for -mregnames. (rs6000_override_options): If -mregnames, copy alt_reg_names into rs6000_reg_names. (input_operand): Recognize ABI_SOLARIS. - (small_data_operand): Ditto. - (init_cumulative_args): Ditto. - (function_arg{,_boundary,_advance,_partial_nregs}): Ditto. - (function_arg_pass_by_reference): Ditto. - (setup_incoming_varargs): Ditto. - ({rs6000,debug}_stack_info): Ditto. - (output_{prolog,epilog}): Ditto. + (small_data_operand, init_cumulative_args): Likewise. + (function_arg{,_boundary,_advance,_partial_nregs}): Likewise. + (function_arg_pass_by_reference, setup_incoming_varargs): Likewise. + ({rs6000,debug}_stack_info, output_{prolog,epilog}): Likewise. (print_operand): %$ prints '.' on Solaris, '$' elsewhere. (print_operand{,_address}): If not eabi, use @sdarel for small data references. @@ -12605,10 +13454,8 @@ Wed Apr 24 11:12:06 1996 Michael Meissner * rs6000.h (*_SPECS): Move the System V specs to svr4.h. (ABI_SOLARIS): New ABI, mostly like System V. (EXTRA_CONSTRAINT): Use ABI_SOLARIS like ABI_V4. - (RETURN_ADDRESS_OFFSET): Ditto. - (LEGITIMATE_SMALL_DATA_P): Ditto. - (RETURN_IN_MEMORY): On Solaris, small structures are returned in - registers. + (RETURN_ADDRESS_OFFSET, (LEGITIMATE_SMALL_DATA_P): Likewise. + (RETURN_IN_MEMORY): On Solaris, small structures are returned in regs. (REGISTER_NAMES): Use rs6000_reg_names array, instead of string literals. (DEBUG_REGISTER_NAMES): Define. @@ -12623,10 +13470,10 @@ Wed Apr 24 11:12:06 1996 Michael Meissner Tue Apr 23 20:02:13 1996 Doug Evans - * sparc/sparc.c (output_function_prologue): In -mbroken-saverestore + * sparc.c (output_function_prologue): In -mbroken-saverestore case, %sp = %fp - size. * sparc/t-splet (TARGET_LIBGCC2_CFLAGS): Delete. - * sparc/sparc.md (isa attribute): Add sparclet. + * sparc.md (isa attribute): Add sparclet. (*smacsi,*smacdi,*umacdi): Use match_operand, not match_dup for third arg. (*mulsidi3_sp32,const_mulsidi3,*umulsidi3_sp32,const_umulsidi3): Use @@ -12634,7 +13481,7 @@ Tue Apr 23 20:02:13 1996 Doug Evans Tue Apr 23 16:28:28 1996 Michael Meissner - * config/m68k/m68kemb.h: Add {LINK,STARTFILE,LIB,SUBTARGET}_SPEC, so + * m68k/m68kemb.h: Add {LINK,STARTFILE,LIB,SUBTARGET}_SPEC, so gcc will use libgloss for supported target boards {idp,mvme,bcc}. Tue Apr 23 16:00:28 1996 Per Bothner @@ -12643,7 +13490,7 @@ Tue Apr 23 16:00:28 1996 Per Bothner Tue Apr 23 11:21:09 1996 Stephen L Moshier (moshier@world.std.com) - * config/i386/sco5.h (BSS_SECTION_ASM_OP): Use `data' directive. + * i386/sco5.h (BSS_SECTION_ASM_OP): Use `data' directive. (ASM_OUTPUT_ALIGNED_LOCAL): Generate an `lcomm' directive. (TARGET_DEFAULT): Include TARGET_IEEE_FP. (CPP_PREDEFINES): Include Di386. @@ -12714,12 +13561,10 @@ Thu Apr 18 15:49:28 1996 Per Bothner Thu Apr 18 15:19:26 1996 Jeffrey A. Law - * h8300.md: Remove "type" attribute from all patterns - except those which have varying length branches. Eliminate - obsolete "type" attributes. Add additional comments about insn - length computation problems and further optimizations. Add - "length" and "cc" attributes to insns without them, fix a few - length computations. Remove patterns which are commented out. + * h8300.md: Remove "type" attribute from all patterns except those + which have varying length branches. Eliminate obsolete "type" + attributes. Add "length" and "cc" attributes to insns without them; + fix some length computations. Remove patterns which are commented out. * h8300.md (zero extension expanders and insns): Simplify, fix various length problems, provide optimized versions for the h8300 and h8300h. @@ -12778,10 +13623,9 @@ Tue Apr 16 18:53:05 1996 Jim Wilson Tue Apr 16 18:09:16 1996 Jeffrey A. Law - * h8300/h8300.md (andhi3): If 2nd operand is a CONST_INT that - meets the 'J' constraint, then only two bytes are needed for - this insn. Improve code generated for the h8300h when both - operands are registers. + * h8300.md (andhi3): If 2nd operand is a CONST_INT that meets 'J' + constraint, then only two bytes are needed for this insn. Improve + code generated for the h8300h when both operands are registers. (iorhi3, xorhi3): Likewise. Rework to be nearly identical to andhi3. (andsi3): If 2nd operand is a CONST_INT that meets the 'J' constraint, then only two bytes are need for this insn. @@ -13103,10 +13947,8 @@ Fri Apr 12 18:19:39 1996 Jeffrey A. Law (bcs_qiqi, bcs_hihi, bs_hiqi): Use new type and update to account for correct length computation. - * h8300/h8300.md (movhi_internal): Demand at least one operand to - be a register. - (movsi_h8300): Optimize loading certain constants. - (movsi_h8300h): Likewise. + * h8300.md (movhi_internal): Demand at least one operand to be reg. + (movsi_h8300{{,h}): Optimize loading certain constants. * h8300.h (NO_FUNCTION_CSE): Comment out. (FUNCTION_ARG_REGNO_P): Properly define for TARGET_QUICKCALL. @@ -13123,8 +13965,7 @@ Fri Apr 12 18:19:39 1996 Jeffrey A. Law operand is not a register. Update some comments. (h8300_tiny_data_p): New function. (h8300_valid_machine_decl_attribute): Handle "tiny_data" attribute. - * h8300.h (OK_FOR_U): Handle memory references into the - 8-bit area. + * h8300.h (OK_FOR_U): Handle memory references into 8-bit area. (ENCODE_SECTION_INFO): Mark SYMBOL_REFs which refer to 8-bit area. * h8300.md (many patterns): Use 'R' rather than 'X' for operands that may be memory accesses into the 8-bit area. @@ -13169,9 +14010,8 @@ Thu Apr 11 00:48:29 1996 Jeffrey A. Law but gets the sign bit right for modulo operations. (__modhi3, modsi3): Use modnorm. - * h8300/h8300.c (dosize): On the h8300h, do 4 byte adjustments - using adds and subs. - * h8300/h8300.h (LONG_LONG_TYPE_SIZE): Always make this 32bits. + * h8300.c (dosize): On h8300h, do 4 byte adjusts using adds and subs. + * h8300.h (LONG_LONG_TYPE_SIZE): Always make this 32bits. Reverses change from Apr 2, 1996. Wed Apr 10 18:39:52 1996 Doug Evans @@ -13259,8 +14099,7 @@ Mon Apr 8 13:01:37 1996 Michael Meissner (rs6000_pic_register): New variable. (output_epilog): Reset rs6000_pic_register. - * rs6000.h (rs6000_pic_register,got_operand,flag_pic): Add - declarations. + * rs6000.h (rs6000_pic_register, got_operand, flag_pic): Add decls. (PREDICATE_CODES): Add got_operand. * rs6000.md (movsi): Add support for V.4's -fpic and -FPIC. @@ -13300,7 +14139,7 @@ Thu Apr 4 12:52:11 1996 Jim Wilson Thu Apr 4 12:19:26 1996 David Mosberger-Tang - * alpha.c: Don't include stamp.h for Linux. + * alpha.c: Don't include stamp.h for Linux-based GNU systems. Thu Apr 4 12:17:08 1996 Richardg Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -13387,3 +14226,10 @@ Mon Apr 1 13:45:30 1996 Jeffrey A. Law the function vector have a length of two bytes. See ChangeLog.10 for earlier changes. + +Use a consistent time stamp format in ChangeLog entries. +Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now. + +Local Variables: +add-log-time-format: current-time-string +End: diff --git a/gcc/INSTALL b/gcc/INSTALL index 1b1a8c02537..6c0b8639ac4 100644 --- a/gcc/INSTALL +++ b/gcc/INSTALL @@ -613,8 +613,7 @@ special things you must know: `alpha-*-osf1' Systems using processors that implement the DEC Alpha architecture and are running the DEC Unix (OSF/1) operating system, for example - the DEC Alpha AXP systems. (VMS on the Alpha is not currently - supported by GNU CC.) + the DEC Alpha AXP systems.CC.) GNU CC writes a `.verstamp' directive to the assembler output file unless it is built as a cross-compiler. It gets the version to @@ -678,7 +677,7 @@ special things you must know: `arm-*-linuxaout' Any of the ARM family processors running the Linux-based GNU system with the `a.out' binary format (ELF is not yet supported). - You must use version 2.8.1.0.7 or later of the Linux binutils, + You must use version 2.8.1.0.7 or later of the GNU/Linux binutils, which you can download from `sunsite.unc.edu:/pub/Linux/GCC' and other mirror sites for Linux-based GNU systems. @@ -830,9 +829,7 @@ special things you must know: version 2.2 or later. `i386-sequent-bsd' - Go to the Berkeley universe before compiling. In addition, you - probably need to create a file named `string.h' containing just - one line: `#include '. + Go to the Berkeley universe before compiling. `i386-sequent-ptx1*' Sequent DYNIX/ptx 1.x. @@ -1184,9 +1181,7 @@ special things you must know: Emacs. `ns32k-sequent' - Go to the Berkeley universe before compiling. In addition, you - probably need to create a file named `string.h' containing just - one line: `#include '. + Go to the Berkeley universe before compiling. `ns32k-utek' UTEK ns32000 system ("merlin"). The C compiler that comes with diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 5f0acfc0198..2f1b08192b9 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -341,7 +341,7 @@ LIB1FUNCS_EXTRA = LIB2FUNCS_EXTRA = # Default float.h source to use for cross-compiler. -# This is overidden by configure. +# This is overridden by configure. CROSS_FLOAT_H=$(srcdir)/config/float-@float_format@.h # Program to convert libraries. @@ -655,10 +655,12 @@ LIB2FUNCS = _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \ # If it is, rm *.o is an easy way to do it. # CONFIG_H = $(host_xm_file) $(tm_file) CONFIG_H = -RTL_H = rtl.h rtl.def machmode.h machmode.def -TREE_H = tree.h real.h tree.def machmode.h machmode.def +RTL_H = rtl.h rtl.def gansidecl.h machmode.h machmode.def +TREE_H = tree.h real.h tree.def gansidecl.h machmode.h machmode.def BYTECODE_H = bytecode.h bc-emit.h bc-optab.h BASIC_BLOCK_H = basic-block.h bitmap.h +DEMANGLE_H = demangle.h gansidecl.h +RECOG_H = recog.h gansidecl.h # # Language makefile fragments. @@ -803,7 +805,7 @@ gfloat.h: $(FLOAT_H) # Make it empty if we can use the system float.h without changes. float.h-nat: enquire -./enquire -f > tmp-float.h - grep '#define [^_]' tmp-float.h >/dev/null || echo > tmp-float.h + grep '#define [^_]' tmp-float.h >/dev/null || true > tmp-float.h mv tmp-float.h float.h-nat # Create a dummy float.h source for a cross-compiler. @@ -973,7 +975,7 @@ libgcc2.ready: $(GCC_PASSES) $(LIBGCC2_DEPS) stmp-int-hdrs LIB2ADD = $(srcdir)/frame.c $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) libgcc2.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2ADD) \ - machmode.h longlong.h gbl-ctors.h config.status + machmode.h longlong.h frame.h gansidecl.h gbl-ctors.h config.status # Actually build it in tmplibgcc2.a, then rename at end, # so that libgcc2.a itself remains nonexistent if compilation is aborted. -rm -f tmplibgcc2.a @@ -1069,6 +1071,7 @@ stamp-mlib: $(srcdir)/genmultilib Makefile # Build multiple copies of libgcc.a, one for each target switch. stmp-multilib: $(LIBGCC1) libgcc2.c libgcc2.ready $(CONFIG_H) \ + frame.h gansidecl.h \ $(LIB2ADD) machmode.h longlong.h gbl-ctors.h config.status for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \ dir=`echo $$i | sed -e 's/;.*$$//'`; \ @@ -1137,12 +1140,14 @@ stmp-multilib-sub: # Compile two additional files that are linked with every program # linked using GCC on systems using COFF or ELF, for the sake of C++ # constructors. -$(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h +$(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \ + defaults.h frame.h gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ -finhibit-size-directive -fno-inline-functions -fno-exceptions $(CRTSTUFF_T_CFLAGS) \ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -o $(T)crtbegin$(objext) -$(T)crtend.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h +$(T)crtend.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \ + defaults.h frame.h gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ -finhibit-size-directive -fno-inline-functions -fno-exceptions $(CRTSTUFF_T_CFLAGS) \ -c $(srcdir)/crtstuff.c -DCRT_END -o $(T)crtend$(objext) @@ -1151,7 +1156,8 @@ $(T)crtend.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h # compiled using PIC for use in shared libraries. crtbeginS.o crtendS.o: stamp-crtS ; @true -stamp-crtS: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h +stamp-crtS: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \ + defaults.h frame.h gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS_S) \ -DCRT_BEGIN -finhibit-size-directive -fno-inline-functions \ -g0 -c $(srcdir)/crtstuff.c @@ -1220,14 +1226,14 @@ collect2: collect2.o tlink.o hash.o cplus-dem.o underscore.o version.o \ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ collect2.o tlink.o hash.o \ cplus-dem.o underscore.o version.o choose-temp.o $(LIBS) -collect2.o : collect2.c $(CONFIG_H) gstab.h obstack.h demangle.h +collect2.o : collect2.c $(CONFIG_H) gansidecl.h gstab.h obstack.h $(DEMANGLE_H) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DTARGET_MACHINE=\"$(target_alias)\" $(MAYBE_USE_COLLECT2) \ -c `echo $(srcdir)/collect2.c | sed 's,^\./,,'` -tlink.o: tlink.c demangle.h hash.h $(CONFIG_H) +tlink.o: tlink.c $(DEMANGLE_H) hash.h $(CONFIG_H) hash.o: hash.c hash.h -cplus-dem.o: cplus-dem.c demangle.h +cplus-dem.o: cplus-dem.c $(DEMANGLE_H) underscore.c: stamp-under ; @true @@ -1256,7 +1262,7 @@ DRIVER_DEFINES = \ -DDEFAULT_TARGET_VERSION=\"$(version)\" \ -DDEFAULT_TARGET_MACHINE=\"$(target_alias)\" \ -DTOOLDIR_BASE_PREFIX=\"$(exec_prefix)/\" -gcc.o: gcc.c $(CONFIG_H) multilib.h Makefile $(lang_specs_files) +gcc.o: gcc.c $(CONFIG_H) gansidecl.h multilib.h Makefile $(lang_specs_files) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(DRIVER_DEFINES) \ -c `echo $(srcdir)/gcc.c | sed 's,^\./,,'` @@ -1264,10 +1270,10 @@ gcc.o: gcc.c $(CONFIG_H) multilib.h Makefile $(lang_specs_files) dumpvers: dumpvers.c version.o: version.c -obstack.o: obstack.c -choose-temp.o: choose-temp.c -pexecute.o: pexecute.c -prefix.o: prefix.c $(CONFIG_H) Makefile +obstack.o: obstack.c $(CONFIG_H) +choose-temp.o: choose-temp.c $(CONFIG_H) gansidecl.h +pexecute.o: pexecute.c $(CONFIG_H) gansidecl.h +prefix.o: prefix.c $(CONFIG_H) gansidecl.h Makefile $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DPREFIX=\"$(prefix)\" \ -c `echo $(srcdir)/prefix.c | sed 's,^\./,,'` @@ -1295,26 +1301,26 @@ varasm.o : varasm.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h function.h \ output.h bytecode.h c-pragma.h function.o : function.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ insn-flags.h insn-codes.h expr.h regs.h hard-reg-set.h insn-config.h \ - recog.h output.h bytecode.h bc-emit.h + $(RECOG_H) output.h bytecode.h bc-emit.h stmt.o : stmt.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ insn-flags.h insn-config.h insn-codes.h hard-reg-set.h expr.h except.h \ - loop.h recog.h bytecode.h bc-typecd.h bc-typecd.def bc-opcode.h \ + loop.h $(RECOG_H) bytecode.h bc-typecd.h bc-typecd.def bc-opcode.h \ bc-optab.h bc-emit.h except.o : except.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ insn-flags.h insn-codes.h expr.h regs.h hard-reg-set.h insn-config.h \ - recog.h output.h except.h + $(RECOG_H) output.h except.h expr.o : expr.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h regs.h \ - insn-flags.h insn-codes.h expr.h insn-config.h recog.h output.h \ + insn-flags.h insn-codes.h expr.h insn-config.h $(RECOG_H) output.h \ typeclass.h bytecode.h bc-opcode.h bc-typecd.h bc-typecd.def bc-optab.h \ bc-emit.h modemap.def hard-reg-set.h calls.o : calls.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h expr.h insn-codes.h \ insn-flags.h regs.h expmed.o : expmed.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \ - insn-flags.h insn-config.h insn-codes.h expr.h recog.h real.h + insn-flags.h insn-config.h insn-codes.h expr.h $(RECOG_H) real.h explow.o : explow.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h hard-reg-set.h \ - insn-config.h expr.h recog.h insn-flags.h insn-codes.h + insn-config.h expr.h $(RECOG_H) insn-flags.h insn-codes.h optabs.o : optabs.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \ - insn-flags.h insn-config.h insn-codes.h expr.h recog.h reload.h + insn-flags.h insn-config.h insn-codes.h expr.h $(RECOG_H) reload.h dbxout.o : dbxout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h regs.h \ insn-config.h reload.h gstab.h xcoffout.h defaults.h output.h sdbout.o : sdbout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h except.h \ @@ -1326,7 +1332,7 @@ dwarf2out.o : dwarf2out.c $(CONFIG_H) $(TREE_H) $(RTL_H) dwarf2.h flags.h \ insn-config.h reload.h output.h defaults.h hard-reg-set.h regs.h expr.h xcoffout.o : xcoffout.c $(CONFIG_H) $(TREE_H) $(RTL_H) xcoffout.h flags.h emit-rtl.o : emit-rtl.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h except.h \ - function.h regs.h insn-config.h recog.h real.h expr.h obstack.h \ + function.h regs.h insn-config.h $(RECOG_H) real.h expr.h obstack.h \ bytecode.h bc-opcode.h bc-typecd.h bc-typecd.def bc-optab.h bc-emit.h \ bc-opname.h real.o : real.c $(CONFIG_H) $(TREE_H) @@ -1334,43 +1340,43 @@ getpwd.o : getpwd.c $(CONFIG_H) integrate.o : integrate.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h integrate.h \ insn-flags.h insn-config.h insn-codes.h expr.h real.h regs.h function.h \ - bytecode.h output.h recog.h except.h + bytecode.h output.h $(RECOG_H) except.h jump.o : jump.c $(CONFIG_H) $(RTL_H) flags.h hard-reg-set.h regs.h \ - insn-config.h insn-flags.h recog.h expr.h real.h except.h + insn-config.h insn-flags.h $(RECOG_H) expr.h real.h except.h stupid.o : stupid.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h cse.o : cse.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h real.h \ - insn-config.h recog.h + insn-config.h $(RECOG_H) expr.h profile.o : profile.c $(CONFIG_H) $(RTL_H) flags.h insn-flags.h gcov-io.h \ - tree.h output.h regs.h + $(TREE_H) output.h regs.h loop.o : loop.c $(CONFIG_H) $(RTL_H) flags.h loop.h insn-config.h \ - insn-flags.h insn-codes.h regs.h hard-reg-set.h recog.h expr.h real.h + insn-flags.h insn-codes.h regs.h hard-reg-set.h $(RECOG_H) expr.h real.h unroll.o : unroll.c $(CONFIG_H) $(RTL_H) insn-config.h integrate.h regs.h \ - recog.h flags.h expr.h loop.h + $(RECOG_H) flags.h expr.h loop.h flow.o : flow.c $(CONFIG_H) $(RTL_H) flags.h insn-config.h \ $(BASIC_BLOCK_H) regs.h hard-reg-set.h output.h combine.o : combine.c $(CONFIG_H) $(RTL_H) flags.h \ insn-config.h insn-flags.h insn-codes.h insn-attr.h regs.h expr.h \ - $(BASIC_BLOCK_H) recog.h real.h hard-reg-set.h + $(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h regclass.o : regclass.c $(CONFIG_H) $(RTL_H) hard-reg-set.h flags.h \ - $(BASIC_BLOCK_H) regs.h insn-config.h recog.h reload.h real.h bytecode.h + $(BASIC_BLOCK_H) regs.h insn-config.h $(RECOG_H) reload.h real.h bytecode.h local-alloc.o : local-alloc.c $(CONFIG_H) $(RTL_H) flags.h $(BASIC_BLOCK_H) \ - regs.h hard-reg-set.h insn-config.h recog.h output.h + regs.h hard-reg-set.h insn-config.h $(RECOG_H) output.h bitmap.o : bitmap.c $(CONFIG_H) $(RTL_H) flags.h $(BASIC_BLOCK_H) regs.h global.o : global.c $(CONFIG_H) $(RTL_H) flags.h \ $(BASIC_BLOCK_H) regs.h hard-reg-set.h insn-config.h output.h reload.o : reload.c $(CONFIG_H) $(RTL_H) flags.h output.h expr.h\ - reload.h recog.h hard-reg-set.h insn-config.h insn-codes.h regs.h real.h + reload.h $(RECOG_H) hard-reg-set.h insn-config.h insn-codes.h regs.h real.h reload1.o : reload1.c $(CONFIG_H) $(RTL_H) real.h flags.h expr.h \ reload.h regs.h hard-reg-set.h insn-config.h insn-flags.h insn-codes.h \ - $(BASIC_BLOCK_H) recog.h output.h + $(BASIC_BLOCK_H) $(RECOG_H) output.h caller-save.o : caller-save.c $(CONFIG_H) $(RTL_H) flags.h \ - regs.h hard-reg-set.h insn-codes.h insn-config.h $(BASIC_BLOCK_H) recog.h \ + regs.h hard-reg-set.h insn-codes.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) \ reload.h expr.h reorg.o : reorg.c $(CONFIG_H) $(RTL_H) conditions.h hard-reg-set.h \ - $(BASIC_BLOCK_H) regs.h insn-config.h insn-attr.h insn-flags.h recog.h \ + $(BASIC_BLOCK_H) regs.h insn-config.h insn-attr.h insn-flags.h $(RECOG_H) \ flags.h output.h alias.o : alias.c $(CONFIG_H) $(RTL_H) flags.h hard-reg-set.h regs.h \ insn-codes.h @@ -1379,10 +1385,10 @@ regmove.o : regmove.c $(CONFIG_H) $(RTL_H) insn-config.h recog.h output.h \ $(SCHED_PREFIX)sched.o : $(SCHED_PREFIX)sched.c $(CONFIG_H) $(RTL_H) $(BASIC_BLOCK_H) regs.h hard-reg-set.h \ flags.h insn-config.h insn-attr.h final.o : final.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h regs.h \ - recog.h conditions.h insn-config.h insn-attr.h except.h real.h output.h \ + $(RECOG_H) conditions.h insn-config.h insn-attr.h except.h real.h output.h \ hard-reg-set.h insn-flags.h insn-codes.h gstab.h xcoffout.h defaults.h recog.o : recog.c $(CONFIG_H) $(RTL_H) \ - regs.h recog.h hard-reg-set.h flags.h insn-config.h insn-attr.h \ + regs.h $(RECOG_H) hard-reg-set.h flags.h insn-config.h insn-attr.h \ insn-flags.h insn-codes.h real.h reg-stack.o : reg-stack.c $(CONFIG_H) $(RTL_H) $(TREE_H) \ regs.h hard-reg-set.h flags.h insn-config.h insn-flags.h @@ -1468,7 +1474,7 @@ stamp-emit : $(md_file) genemit $(srcdir)/move-if-change $(srcdir)/move-if-change tmp-emit.c insn-emit.c touch stamp-emit -insn-recog.o : insn-recog.c $(CONFIG_H) $(RTL_H) insn-config.h recog.h \ +insn-recog.o : insn-recog.c $(CONFIG_H) $(RTL_H) insn-config.h $(RECOG_H) \ real.h output.h flags.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-recog.c @@ -1479,7 +1485,7 @@ stamp-recog : $(md_file) genrecog $(srcdir)/move-if-change touch stamp-recog insn-opinit.o : insn-opinit.c $(CONFIG_H) $(RTL_H) insn-codes.h insn-flags.h \ - insn-config.h flags.h rtl.h recog.h expr.h reload.h + insn-config.h flags.h $(RECOG_H) expr.h reload.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-opinit.c insn-opinit.c: stamp-opinit ; @true @@ -1529,7 +1535,7 @@ stamp-attrtab : $(md_file) genattrtab $(srcdir)/move-if-change touch stamp-attrtab insn-output.o : insn-output.c $(CONFIG_H) $(RTL_H) regs.h real.h conditions.h \ - hard-reg-set.h insn-config.h insn-flags.h insn-attr.h output.h recog.h \ + hard-reg-set.h insn-config.h insn-flags.h insn-attr.h output.h $(RECOG_H) \ insn-codes.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-output.c @@ -2535,7 +2541,7 @@ gcc.xtar: distdir # This target exists to do the initial work before the language specific # stuff gets done. distdir-start: doc $(srcdir)/INSTALL $(srcdir)/c-parse.y $(srcdir)/c-gperf.h \ - $(srcdir)/c-parse.c $(srcdir)/cexp.c + $(srcdir)/c-parse.c $(srcdir)/cexp.c $(srcdir)/config.in @if grep -s "for version ${mainversion}" gcc.texi > /dev/null; \ then true; \ else echo "You must update the version number in \`gcc.texi'"; sleep 10;\ diff --git a/gcc/NEWS b/gcc/NEWS index 954af260f2c..b3cb770ebc6 100644 --- a/gcc/NEWS +++ b/gcc/NEWS @@ -1,31 +1,148 @@ Noteworthy changes in GCC for EGCS. -The -specs=file switch allows you to override default specs used in invoking -programs like cc1, as, etc. +A major change in this release is the addition of a framework for +exception handling, currently used by C++. Many internal changes and +optimization improvements have been made. These increase the +maintainability and portability of GCC. GCC now uses autoconf to +compute many host parameters. -Options -Wall and -Wimplicit now cause GCC to warn about implicit int -in declarations (e.g. `register i;'), since the C Standard committee -has decided to disallow this in the next revision of the standard. +The following lists changes that add new features or targets. -The following new targets are supported: +See cp/NEWS for new features of C++ in this release. - Solaris 2.5 running on UltraSPARC's. - The sparclet cpu (a.out file format). - Solaris 2.51 running on PowerPC's. - Linux running on PowerPC's. - Embedded target m32r-elf. - Embedded target arc-elf. - IRIX 6.2 running on MIPS. +New tools and features: -New features for the Hitachi H8/300(H). + The Dwarf 2 debugging information format is supported on ELF systems, and + is the default for -ggdb where available. It can also be used for C++. + The Dwarf version 1 debugging format is also permitted for C++, but + does not work well. - -malign-300 - -ms + gcov.c is provided for test coverage analysis and branch profiling + analysis is also supported; see -fprofile-arcs, -ftest-coverage, + and -fbranch-probabilities. + + Support for the Checker memory checking tool. + + New switch, -fstack-check, to check for stack overflow on systems that + don't have such built into their ABI. + + New switches, -Wundef and -Wno-undef to warn if an undefined identifier + is evaluated in an #if directive. + + Options -Wall and -Wimplicit now cause GCC to warn about implicit int + in declarations (e.g. `register i;'), since the C Standard committee + has decided to disallow this in the next revision of the standard; + -Wimplicit-function-declarations and -Wimplicit-int are subsets of + this. + + Option -Wsign-compare causes GCC to warn about comparison of signed and + unsigned values. + + Add -dI option of cccp for cxref. + +New features in configuration, installation and specs file handling: + + New option --enable-c-cpplib to configure script. + + Allow --with-cpu on configure command to specify a default CPU. + + The -specs=file switch allows you to override default specs used in + invoking programs like cc1, as, etc. + + Allow including one specs file from another and renaming a specs + variable. + + You can now relocate all GCC files with a single environment variable + or a registry entry under Windows 95 and Windows NT. + +Changes in Objective-C: + + The Objective-C Runtime Library has been made thread-safe. + + The Objective-C Runtime Library contains an interface for creating + mutexes, condition mutexes, and threads; it requires a back-end + implementation for the specific platform and/or thread package. + Currently supported are DEC/OSF1, IRIX, Mach, OS/2, POSIX, PCThreads, + Solaris, and Windows32. The --enable-threads parameter can be used + when configuring GCC to enable and select a thread back-end. + + Objective-C is now configured as separate front-end language to GCC, + making it more convenient to conditionally build it. -The -ms switch generates code for the Hitachi H8/S processor. + The internal structures of the Objective-C Runtime Library have + changed sufficiently to warrant a new version number; now version 8. + Programs compiled with an older version must be recompiled. + + The Objective-C Runtime Library can be built as a DLL on Windows 95 + and Windows NT systems. + + The Objective-C Runtime Library implements +load. + +The following new targets are supported (see also list under each +individual CPU below): + + Embedded target m32r-elf. + Embedded Hitachi Super-H using ELF. + RTEMS real-time system on various CPU targets. + ARC processor. + NEC V850 processor. + Matsushita MN10200 processor. + Matsushita MN10300 processor. + Sparc and PowerPC running on VxWorks. + Support both glibc versions 1 and 2 on Linux-based GNU systems. + +New features for DEC Alpha systems: + + Allow detailed specification of IEEE fp support: + -mieee, -mieee-with-inexact, and -mieee-conformant + -mfp-trap-mode=xxx, -mfp-round-mode=xxx, -mtrap-precision=xxx + -mcpu=xxx for CPU selection + Support scheduling parameters for EV5. + Add support for BWX, CIX, and MAX instruction set extensions. + Support Linux-based GNU systems. + Support VMS. + +Additional supported processors and systems for MIPS targets: + + MIPS4 instruction set. + R4100, R4300 and R5000 processors. + N32 and N64 ABI. + IRIX 6.2. + SNI SINIX. + +New features for Intel x86 family: + + Add scheduling parameters for Pentium and Pentium Pro. + Support stabs on Solaris-x86. + Intel x86 processors running the SCO OpenServer 5 family. + Intel x86 processors running DG/UX. + Intel x86 using Cygwin32 or Mingw32 on Windows 95 and Windows NT. + +New features for Motorola 68k family: + + Support for 68060 processor. + More consistent switches to specify processor. + Motorola 68k family running AUX. + 68040 running pSOS, ELF object files, DBX debugging. + Coldfire variant of Motorola m68k family. + +New features for the HP PA RISC: + + -mspace and m-no-space + -mlong-load-store and -mno-long-load-store + -mbig-switch -mno-big-switch + + GCC on the PA requires either gas-2.7 or the HP assembler; for best + results using GAS is highly recommended. GAS is required for -g and + exception handling support. New features for SPARC-based systems: + The ultrasparc cpu. + The sparclet cpu, supporting only a.out file format. + Sparc running SunOS 4 with the GNU assembler. + Sparc running the Linux-based GNU system. + Embedded Sparc processors running the ELF object file format. -mcpu=xxx -mtune=xxx -malign-loops=xxx @@ -33,71 +150,99 @@ New features for SPARC-based systems: -malign-functions=xxx -mimpure-text and -mno-impure-text -New features for all rs6000 and PowerPC systems: + Options -mno-v8 and -mno-sparclite are no longer supported on SPARC + targets. Options -mcypress, -mv8, -msupersparc, -msparclite, -mf930, + and -mf934 are deprecated and will be deleted in GCC 2.9. Use + -mcpu=xxx instead. - -mcpu=604e - -mcpu=801 - -mcpu=823 - -mtune=xxx - -mupdate - -mno-update - -mfused-madd - -mno-fused-madd +New features for rs6000 and PowerPC systems: -New features for PowerPC-based systems running either System V, Linux, Solaris, -or embedded systems: + Solaris 2.51 running on PowerPC's. + The Linux-based GNU system running on PowerPC's. + -mcpu=604e,602,603e,620,801,823,mpc505,821,860,power2 + -mtune=xxx + -mrelocatable-lib, m-no-relocatable-lib + -msim, -mmve, -memb + -mupdate, -mno-update + -mfused-madd, -mno-fused-madd -mregnames -meabi - -mcall-linux - -mcall-solaris - -mcall-sysv-eabi - -mcall-sysv-noeabi - -msdata - -msdata=none - -msdata=default - -msdata=sysv - -msdata=eabi - -memb - -msim - -mmvme - -myellowknife - -mads - wchar_t is now of type long, not unsigned short as per ABI. + -mcall-linux, -mcall-solaris, -mcall-sysv-eabi, -mcall-sysv-noeabi + -msdata, -msdata=none, -msdata=default, -msdata=sysv, -msdata=eabi + -memb, -msim, -mmvme + -myellowknife, -mads + wchar_t is now of type long as per the ABI, not unsigned short. -p/-pg support -mcpu=403 now implies -mstrict-align. + Implement System V profiling. + + Aix 4.1 GCC targets now default to -mcpu=common so that programs + compiled can be moved between rs6000 and powerpc based systems. A + consequence of this is that -static won't work, and that some programs + may be slightly slower. -Options -mno-v8 and -mno-sparclite are no longer supported on SPARC -targets. Options -mcypress, -mv8, -msupersparc, -msparclite, -mf930, -and -mf934 are deprecated and will be deleted in GCC 2.9. -Use -mcpu=xxx instead. + You can select the default value to use for -mcpu=xxx on rs6000 and + powerpc targets by using the --with-cpu=xxx option when configuring the + compiler. In addition, a new options, -mtune=xxx was added that + selects the machine to schedule for but does not select the + architecture level. -GCC on the PA requires either gas-2.7 or the HP assembler; for best -results using GAS is highly recommended. GAS is required for -g -and exception handling support. + Directory names used for storing the multilib libraries on System V + and embedded PowerPC systems have been shortened to work with commands + like tar that have fixed limits on pathname size. -Aix 4.1 GCC targets now default to -mcpu=common so that programs compiled can -be moved between rs6000 and powerpc based systems. A consequence of this is -that -static won't work, and that some programs may be slightly slower. +New features for the Hitachi H8/300(H): + + -malign-300 + -ms (for the Hitachi H8/S processor) + -mint32 -You can select the default value to use for -mcpu=xxx on rs6000 and powerpc -targets by using the --with-cpu=xxx option when confiuring the compiler. In -addition, a new options, -mtune=xxx was added that selects the machine to -schedule for but does not select the architecture level. +New features for the ARM: -Directory names used for storing the multilib libraries on System V and -embedded PowerPC systems have been shortened to work with commands like tar -that have fixed limits on pathname size. + -march=xxx, -mtune=xxx, -mcpu=xxx + Support interworking with Thumb code. + ARM processor with a.out object format, COFF, or AOF assembler. + ARM on "semi-hosted" platform. + ARM running NetBSD. + ARM running the Linux-based GNU system. -The DWARF 2 debugging information format is supported on ELF systems, and -is the default for -ggdb where available. +New feature for Solaris systems: -Noteworthy changes in GCC version 2.7.2: + GCC installation no longer makes a copy of system include files, + thus insulating GCC better from updates to the operating system. + +Changes in Objective-C: + + The Objective-C Runtime Library has been made thread-safe. + + The Objective-C Runtime Library contains an interface for creating + mutexes, condition mutexes, and threads; it requires a back-end + implementation for the specific platform and/or thread package. + Currently supported are DEC/OSF1, IRIX, Mach, OS/2, POSIX, PCThreads, + Solaris, and Windows32. The --enable-threads parameter can be used + when configuring GCC to enable and select a thread back-end. + + Objective-C is now configured as separate front-end language to GCC, + making it more convenient to conditionally build it. + + The internal structures of the Objective-C Runtime Library have + changed sufficiently to warrant a new version number; now version 8. + Programs compiled with an older version must be recompiled. + + The Objective-C Runtime Library can be built as a DLL on Windows 95 + and Windows NT systems. + + The Objective-C Runtime Library implements +load. + +Noteworthy changes in GCC version 2.7.2 +--------------------------------------- A few bugs have been fixed (most notably the generation of an invalid assembler opcode on some RS/6000 systems). -Noteworthy changes in GCC version 2.7.1: +Noteworthy changes in GCC version 2.7.1 +--------------------------------------- This release fixes numerous bugs (mostly minor) in GCC 2.7.0, but also contains a few new features, mostly related to specific targets. @@ -121,8 +266,9 @@ sequence used in GCC version 2.7.0. That calling sequence was based on the AIX calling sequence without function descriptors. To compile code for that older calling sequence, either configure the compiler for powerpc-*-eabiaix or use the -mcall-aix switch when compiling and linking. - -Noteworthy changes in GCC version 2.7.0: + +Noteworthy changes in GCC version 2.7.0 +--------------------------------------- GCC now works better on systems that use ".obj" and ".exe" instead of ".o" and no extension. This involved changes to the driver program, @@ -374,7 +520,7 @@ The following new configurations are supported: GNU on x86 (instead of treating it like MACH) NetBSD on Sparc and Motorola 68k AIX 4.1 on RS/6000 and PowerPC systems - Sequent DYNUX/ptx 1.x and 2.x. + Sequent DYNIX/ptx 1.x and 2.x. Both COFF and ELF configurations on AViiON without using /bin/gcc Windows/NT on x86 architecture; preliminary AT&T DSP1610 digital signal processor chips diff --git a/gcc/acconfig.h b/gcc/acconfig.h index bd2acd90894..2b6c1442c97 100644 --- a/gcc/acconfig.h +++ b/gcc/acconfig.h @@ -12,4 +12,10 @@ /* Whether free must be declared even if is included. */ #undef NEED_DECLARATION_FREE + +/* Whether index must be declared even if is included. */ +#undef NEED_DECLARATION_INDEX + +/* Whether rindex must be declared even if is included. */ +#undef NEED_DECLARATION_RINDEX @TOP@ diff --git a/gcc/aclocal.m4 b/gcc/aclocal.m4 index 1503ff885b0..d7d14a2d5e5 100644 --- a/gcc/aclocal.m4 +++ b/gcc/aclocal.m4 @@ -16,6 +16,12 @@ AC_CACHE_VAL(gcc_cv_decl_needed_$1, #endif #ifdef HAVE_UNISTD_H #include +#endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr #endif], [char *(*pfn) = (char *(*)) $1], gcc_cv_decl_needed_$1=no, gcc_cv_decl_needed_$1=yes)]) diff --git a/gcc/bc-optab.c b/gcc/bc-optab.c index 18756d56980..dd134d5f0b3 100644 --- a/gcc/bc-optab.c +++ b/gcc/bc-optab.c @@ -21,6 +21,9 @@ Boston, MA 02111-1307, USA. */ #include "config.h" #include +#ifdef HAVE_STDLIB_H +#include +#endif #include "tree.h" #include "rtl.h" #include "machmode.h" diff --git a/gcc/bitmap.h b/gcc/bitmap.h index bdedef351a7..2df648965f5 100644 --- a/gcc/bitmap.h +++ b/gcc/bitmap.h @@ -200,7 +200,7 @@ do { \ for (; ptr1_ != 0 ; ptr1_ = ptr1_->next) \ { \ /* Advance BITMAP2 to the equivalent link, using an all \ - zero element if an equavialent link doesn't exist. */ \ + zero element if an equivalent link doesn't exist. */ \ bitmap_element *tmp2_; \ \ while (ptr2_ != 0 && ptr2_->indx < ptr1_->indx) \ diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 6900324c53f..7688dd23d67 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -1758,7 +1758,7 @@ duplicate_decls (newdecl, olddecl, different_binding_level) /* Optionally warn about more than one declaration for the same name. */ if (errmsg == 0 && warn_redundant_decls && DECL_SOURCE_LINE (olddecl) != 0 - /* Dont warn about a function declaration + /* Don't warn about a function declaration followed by a definition. */ && !(TREE_CODE (newdecl) == FUNCTION_DECL && DECL_INITIAL (newdecl) != 0 && DECL_INITIAL (olddecl) == 0) diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 30a49aea43e..a1ef5362ca9 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -135,6 +135,9 @@ static int end_of_file; static int nextchar = -1; #endif +static int skip_which_space PROTO((int)); +static char *extend_token_buffer PROTO((char *)); +static int readescape PROTO((int *)); int check_newline (); /* Do not insert generated code into the source, instead, include it. @@ -330,7 +333,6 @@ yyprint (file, yychar, yylval) break; } } - /* Iff C is a carriage return, warn about it - if appropriate - and return nonzero. */ @@ -468,7 +470,6 @@ extend_token_buffer (p) return token_buffer + offset; } - #if !USE_CPPLIB #define GET_DIRECTIVE_LINE() get_directive_line (finput) @@ -1711,20 +1712,15 @@ yylex () c = GETC(); } - /* If the constant is not long long and it won't fit in an - unsigned long, or if the constant is long long and won't fit - in an unsigned long long, then warn that the constant is out - of range. */ + /* If the constant won't fit in an unsigned long long, + then warn that the constant is out of range. */ /* ??? This assumes that long long and long integer types are a multiple of 8 bits. This better than the original code though which assumed that long was exactly 32 bits and long long was exactly 64 bits. */ - if (spec_long_long) - bytes = TYPE_PRECISION (long_long_integer_type_node) / 8; - else - bytes = TYPE_PRECISION (long_integer_type_node) / 8; + bytes = TYPE_PRECISION (long_long_integer_type_node) / 8; warn = overflow; for (i = bytes; i < TOTAL_PARTS; i++) @@ -1791,7 +1787,9 @@ yylex () else if (! spec_unsigned && !spec_long_long && int_fits_type_p (yylval.ttype, long_integer_type_node)) ansi_type = long_integer_type_node; - else if (! spec_long_long) + else if (! spec_long_long + && int_fits_type_p (yylval.ttype, + long_unsigned_type_node)) ansi_type = long_unsigned_type_node; else if (! spec_unsigned && int_fits_type_p (yylval.ttype, @@ -1815,8 +1813,9 @@ yylex () warning ("width of integer constant may change on other systems with -traditional"); } - if (!flag_traditional && !int_fits_type_p (yylval.ttype, type) - && !warn) + if (pedantic && !flag_traditional && !spec_long_long && !warn + && (TYPE_PRECISION (long_integer_type_node) + < TYPE_PRECISION (type))) pedwarn ("integer constant out of range"); if (base == 10 && ! spec_unsigned && TREE_UNSIGNED (type)) diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 7be030dcd1b..135ca9b09c2 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -35,12 +35,29 @@ Boston, MA 02111-1307, USA. */ #include "flags.h" #include "output.h" +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif + /* Nonzero if we've already printed a "missing braces around initializer" message within this initializer. */ static int missing_braces_mentioned; +#ifdef NEED_DECLARATION_INDEX extern char *index (); +#endif + +#ifdef NEED_DECLARATION_RINDEX extern char *rindex (); +#endif static tree qualify_type PROTO((tree, tree)); static int comp_target_types PROTO((tree, tree)); diff --git a/gcc/calls.c b/gcc/calls.c index 2d94cb6287d..46f766bf483 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -1868,7 +1868,8 @@ expand_call (exp, target, ignore) VOIDmode, 3, structure_value_addr, ptr_mode, GEN_INT (struct_value_size), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_WO), QImode); + GEN_INT (MEMORY_USE_WO), + TYPE_MODE (integer_type_node)); if (GET_CODE (struct_value_rtx) == REG) use_reg (&call_fusage, struct_value_rtx); @@ -3579,7 +3580,8 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size, fndecl, XEXP (arg->stack, 0), ptr_mode, GEN_INT (GET_MODE_SIZE (arg->mode)), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); } } else if (arg->mode != BLKmode) diff --git a/gcc/cccp.c b/gcc/cccp.c index 3a8a07687af..5e85fcdb50d 100644 --- a/gcc/cccp.c +++ b/gcc/cccp.c @@ -16,87 +16,27 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. +Boston, MA 02111-1307, USA. */ - In other words, you are welcome to use, share and improve this program. - You are forbidden to forbid anyone else to use, share and improve - what you give them. Help stamp out software-hoarding! */ - -typedef unsigned char U_CHAR; - -#ifdef EMACS -#define NO_SHORTNAMES -#include "../src/config.h" -#ifdef open -#undef open -#undef read -#undef write -#endif /* open */ -#endif /* EMACS */ - -/* The macro EMACS is defined when cpp is distributed as part of Emacs, - for the sake of machines with limited C compilers. */ -#ifndef EMACS #include "config.h" -#endif /* not EMACS */ - -#ifndef STANDARD_INCLUDE_DIR -#define STANDARD_INCLUDE_DIR "/usr/include" -#endif - -#include "pcp.h" - -/* By default, colon separates directories in a path. */ -#ifndef PATH_SEPARATOR -#define PATH_SEPARATOR ':' -#endif - -/* By default, the suffix for object files is ".o". */ -#ifdef OBJECT_SUFFIX -#define HAVE_OBJECT_SUFFIX -#else -#define OBJECT_SUFFIX ".o" -#endif - #include #include #include #include #include -/* The following symbols should be autoconfigured: - HAVE_FCNTL_H - HAVE_SYS_TIME_H - STDC_HEADERS - TIME_WITH_SYS_TIME - In the mean time, we'll get by with approximations based - on existing GCC configuration symbols. */ - -#ifdef POSIX -# ifndef STDC_HEADERS -# define STDC_HEADERS 1 -# endif -#endif /* defined (POSIX) */ - -#if defined (POSIX) || (defined (USG) && !defined (VMS)) -# ifndef HAVE_FCNTL_H -# define HAVE_FCNTL_H 1 -# endif -#endif - -#ifndef RLIMIT_STACK +#ifdef TIME_WITH_SYS_TIME +# include # include #else -# if TIME_WITH_SYS_TIME -# include -# include +# if HAVE_SYS_TIME_H +# include # else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -# endif +# include +#endif +#endif + +#ifdef HAVE_SYS_RESOURCE_H # include #endif @@ -108,96 +48,68 @@ typedef unsigned char U_CHAR; # include #endif +#if HAVE_UNISTD_H +# include +#endif + #include #if HAVE_STDLIB_H # include -#else -char *getenv (); #endif -#if STDC_HEADERS +#ifdef HAVE_STRING_H # include -# ifndef bcmp -# define bcmp(a, b, n) memcmp (a, b, n) -# endif -# ifndef bcopy -# define bcopy(s, d, n) memcpy (d, s, n) -# endif -# ifndef bzero -# define bzero(d, n) memset (d, 0, n) -# endif -#else /* !STDC_HEADERS */ -char *index (); -char *rindex (); - -# if !defined (BSTRING) && (defined (USG) || defined (VMS)) +#else +# ifdef HAVE_STRINGS_H +# inclued +#endif +#endif -# ifndef bcmp -# define bcmp my_bcmp -static int -my_bcmp (a, b, n) - register char *a; - register char *b; - register unsigned n; -{ - while (n-- > 0) - if (*a++ != *b++) - return 1; +typedef unsigned char U_CHAR; - return 0; -} -# endif /* !defined (bcmp) */ +#include "gansidecl.h" +#include "pcp.h" -# ifndef bcopy -# define bcopy my_bcopy -static void -my_bcopy (s, d, n) - register char *s; - register char *d; - register unsigned n; -{ - while (n-- > 0) - *d++ = *s++; -} -# endif /* !defined (bcopy) */ +#ifdef NEED_DECLARATION_INDEX +extern char *index (); +#endif -# ifndef bzero -# define bzero my_bzero -static void -my_bzero (b, length) - register char *b; - register unsigned length; -{ - while (length-- > 0) - *b++ = 0; -} -# endif /* !defined (bzero) */ +#ifdef NEED_DECLARATION_RINDEX +extern char *rindex (); +#endif -# endif /* !defined (BSTRING) && (defined (USG) || defined (VMS)) */ -#endif /* ! STDC_HEADERS */ +#ifdef NEED_DECLARATION_GETENV +extern char *getenv (); +#endif #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) # define __attribute__(x) #endif -#ifndef PROTO -# if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__) -# define PROTO(ARGS) ARGS -# else -# define PROTO(ARGS) () -# endif +#ifndef STANDARD_INCLUDE_DIR +# define STANDARD_INCLUDE_DIR "/usr/include" +#endif + +/* By default, colon separates directories in a path. */ +#ifndef PATH_SEPARATOR +# define PATH_SEPARATOR ':' +#endif + +/* By default, the suffix for object files is ".o". */ +#ifdef OBJECT_SUFFIX +# define HAVE_OBJECT_SUFFIX +#else +# define OBJECT_SUFFIX ".o" #endif #if defined (__STDC__) && defined (HAVE_VPRINTF) # include -# define VA_START(va_list, var) va_start (va_list, var) # define PRINTF_ALIST(msg) char *msg, ... # define PRINTF_DCL(msg) # define PRINTF_PROTO(ARGS, m, n) PROTO (ARGS) __attribute__ ((format (__printf__, m, n))) #else # include -# define VA_START(va_list, var) va_start (va_list) # define PRINTF_ALIST(msg) msg, va_alist # define PRINTF_DCL(msg) char *msg; va_dcl # define PRINTF_PROTO(ARGS, m, n) () __attribute__ ((format (__printf__, m, n))) @@ -215,10 +127,6 @@ my_bzero (b, length) #define PRINTF_PROTO_2(ARGS) PRINTF_PROTO(ARGS, 2, 3) #define PRINTF_PROTO_3(ARGS) PRINTF_PROTO(ARGS, 3, 4) -#if HAVE_UNISTD_H -# include -#endif - /* VMS-specific definitions */ #ifdef VMS #include @@ -258,12 +166,10 @@ static void hack_vms_include_specification (); # include # define HOST_WIDE_INT intmax_t # else -# if (HOST_BITS_PER_LONG <= HOST_BITS_PER_INT \ - && HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_INT) +# if (HOST_BITS_PER_LONG <= HOST_BITS_PER_INT && HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_INT) # define HOST_WIDE_INT int # else -# if (HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_LONG \ - || ! (defined LONG_LONG_MAX || defined LLONG_MAX)) +# if (HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_LONG || ! (defined LONG_LONG_MAX || defined LLONG_MAX)) # define HOST_WIDE_INT long # else # define HOST_WIDE_INT long long @@ -288,24 +194,6 @@ static void hack_vms_include_specification (); #define INO_T_HASH(a) (a) #endif -/* Define a generic NULL if one hasn't already been defined. */ - -#ifndef NULL -#define NULL 0 -#endif - -#ifndef GENERIC_PTR -#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__) -#define GENERIC_PTR void * -#else -#define GENERIC_PTR char * -#endif -#endif - -#ifndef NULL_PTR -#define NULL_PTR ((GENERIC_PTR) 0) -#endif - #ifndef INCLUDE_LEN_FUDGE #define INCLUDE_LEN_FUDGE 0 #endif @@ -325,7 +213,7 @@ char *strerror (); char *strerror (int,...); #endif HOST_WIDE_INT parse_escape PROTO((char **, HOST_WIDE_INT)); -HOST_WIDE_INT parse_c_expression PROTO((char *)); +HOST_WIDE_INT parse_c_expression PROTO((char *, int)); #ifndef errno extern int errno; @@ -412,7 +300,7 @@ static enum {dump_none, dump_only, dump_names, dump_definitions} static int debug_output = 0; /* Nonzero means pass #include lines through to the output, - even if they are ifdeffed out. */ + even if they are ifdefed out. */ static int dump_includes; /* Nonzero indicates special processing used by the pcp program. The @@ -466,7 +354,7 @@ static int warn_trigraphs; /* Nonzero means warn if undefined identifiers are evaluated in an #if. */ -int warn_undef; +static int warn_undef; /* Nonzero means warn if #import is used. */ @@ -490,6 +378,9 @@ int c89; static int no_output; +/* Nonzero means we should look for header.gcc files that remap file names. */ +static int remap; + /* Nonzero means this file was included with a -imacros or -include command line and should not be recorded as an include file. */ @@ -1214,6 +1105,7 @@ static void make_assertion PROTO((char *, char *)); static struct file_name_list *new_include_prefix PROTO((struct file_name_list *, char *, char *, char *)); static void append_include_chain PROTO((struct file_name_list *, struct file_name_list *)); +static int quote_string_for_make PROTO((char *, char *)); static void deps_output PROTO((char *, int)); static void fatal PRINTF_PROTO_1((char *, ...)) __attribute__ ((noreturn)); @@ -1775,6 +1667,11 @@ main (argc, argv) no_precomp = 1; break; + case 'r': + if (!strcmp (argv[i], "-remap")) + remap = 1; + break; + case 'u': /* Sun compiler passes undocumented switch "-undef". Let's assume it means to inhibit the predefined symbols. */ @@ -2212,8 +2109,11 @@ main (argc, argv) } else { /* Read a file whose size we can determine in advance. For the sake of VMS, st.st_size is just an upper bound. */ - fp->buf = (U_CHAR *) xmalloc (st.st_size + 2); - fp->length = safe_read (f, (char *) fp->buf, st.st_size); + size_t s = (size_t) st.st_size; + if (s != st.st_size || s + 2 < s) + memory_full (); + fp->buf = (U_CHAR *) xmalloc (s + 2); + fp->length = safe_read (f, (char *) fp->buf, s); if (fp->length < 0) goto perror; } fp->bufp = fp->buf; @@ -4709,7 +4609,7 @@ absolute_filename (filename) Do only the simplifications allowed by Posix. It is OK to miss simplifications on non-Posix hosts, - since this merely leads to suboptimial results. */ + since this merely leads to suboptimal results. */ static size_t simplify_filename (filename) @@ -4926,7 +4826,7 @@ open_include_file (filename, searchptr, importing, pinc) U_CHAR *importing; struct include_file **pinc; { - char *fname = remap_include_file (filename, searchptr); + char *fname = remap ? remap_include_file (filename, searchptr) : filename; int fd = -2; /* Look up FNAME in include_hashtab. */ @@ -5090,12 +4990,15 @@ finclude (f, inc, op, system_header_p, dirptr) fp->dir = dirptr; if (S_ISREG (inc->st.st_mode)) { - fp->buf = (U_CHAR *) xmalloc (inc->st.st_size + 2); + size_t s = (size_t) inc->st.st_size; + if (s != inc->st.st_size || s + 2 < s) + memory_full (); + fp->buf = (U_CHAR *) xmalloc (s + 2); fp->bufp = fp->buf; - /* Read the file contents, knowing that inc->st.st_size is an upper bound + /* Read the file contents, knowing that s is an upper bound on the number of bytes we can read. */ - fp->length = safe_read (f, (char *) fp->buf, inc->st.st_size); + fp->length = safe_read (f, (char *) fp->buf, s); if (fp->length < 0) goto nope; } else if (S_ISDIR (inc->st.st_mode)) { @@ -5210,8 +5113,11 @@ check_precompiled (pcf, st, fname, limit) if (S_ISREG (st->st_mode)) { - buf = xmalloc (st->st_size + 2); - length = safe_read (pcf, buf, st->st_size); + size_t s = (size_t) st->st_size; + if (s != st->st_size || s + 2 < s) + memory_full (); + buf = xmalloc (s + 2); + length = safe_read (pcf, buf, s); if (length < 0) goto nope; } @@ -7032,7 +6938,8 @@ eval_if_expression (buf, length) delete_macro (save_defined); /* clean up special symbol */ temp_obuf.buf[temp_obuf.length] = '\n'; - value = parse_c_expression ((char *) temp_obuf.buf); + value = parse_c_expression ((char *) temp_obuf.buf, + warn_undef && !instack[indepth].system_header_p); free (temp_obuf.buf); @@ -9940,6 +9847,67 @@ append_include_chain (first, last) last_include = last; } +/* Place into DST a representation of the file named SRC that is suitable + for `make'. Do not null-terminate DST. Return its length. */ +static int +quote_string_for_make (dst, src) + char *dst; + char *src; +{ + char *p = src; + int i = 0; + for (;;) + { + char c = *p++; + switch (c) + { + case '\0': + case ' ': + case '\t': + { + /* GNU make uses a weird quoting scheme for white space. + A space or tab preceded by 2N+1 backslashes represents + N backslashes followed by space; a space or tab + preceded by 2N backslashes represents N backslashes at + the end of a file name; and backslashes in other + contexts should not be doubled. */ + char *q; + for (q = p - 1; src < q && q[-1] == '\\'; q--) + { + if (dst) + dst[i] = '\\'; + i++; + } + } + if (!c) + return i; + if (dst) + dst[i] = '\\'; + i++; + goto ordinary_char; + + case '$': + if (dst) + dst[i] = c; + i++; + /* Fall through. This can mishandle things like "$(" but + there's no easy fix. */ + default: + ordinary_char: + /* This can mishandle characters in the string "\0\n%*?[\\~"; + exactly which chars are mishandled depends on the `make' version. + We know of no portable solution for this; + even GNU make 3.76.1 doesn't solve the problem entirely. + (Also, '\0' is mishandled due to our calling conventions.) */ + if (dst) + dst[i] = c; + i++; + break; + } + } +} + + /* Add output to `deps_buffer' for the -M switch. STRING points to the text to be output. SPACER is ':' for targets, ' ' for dependencies. */ @@ -9949,9 +9917,7 @@ deps_output (string, spacer) char *string; int spacer; { - int size = strlen (string); - int i; - char *p; + int size = quote_string_for_make ((char *) 0, string); if (size == 0) return; @@ -9976,27 +9942,9 @@ deps_output (string, spacer) deps_buffer[deps_size++] = ' '; deps_column++; } - - for (i = 0; i < size; ++i) - { - if (string[i] == '$') - { - deps_buffer[deps_size++] = '$'; - deps_column++; - } - else - { - p = strchr ("~[]*?()\\ ", string[i]); - if (p != NULL) - { - deps_buffer[deps_size++] = '\\'; - deps_column++; - } - } - deps_buffer[deps_size++] = string[i]; - deps_column++; - } - + quote_string_for_make (&deps_buffer[deps_size], string); + deps_size += size; + deps_column += size; if (spacer == ':') { deps_buffer[deps_size++] = ':'; deps_column++; @@ -10272,10 +10220,11 @@ VMS_freopen (fname, type, oldfile) char *type; FILE *oldfile; { +#undef freopen /* Get back the real freopen routine. */ if (strcmp (type, "w") == 0) - return decc$freopen (fname, type, oldfile, + return freopen (fname, type, oldfile, "mbc=16", "deq=64", "fop=tef", "shr=nil"); - return decc$freopen (fname, type, oldfile, "mbc=16"); + return freopen (fname, type, oldfile, "mbc=16"); } static FILE * @@ -10283,10 +10232,11 @@ VMS_fopen (fname, type) char *fname; char *type; { +#undef fopen /* Get back the real fopen routine. */ /* The gcc-vms-1.42 distribution's header files prototype fopen with two fixed arguments, which matches ANSI's specification but not VAXCRTL's pre-ANSI implementation. This hack circumvents the mismatch problem. */ - FILE *(*vmslib_fopen)() = (FILE *(*)()) decc$fopen; + FILE *(*vmslib_fopen)() = (FILE *(*)()) fopen; if (*type == 'w') return (*vmslib_fopen) (fname, type, "mbc=32", @@ -10301,7 +10251,8 @@ VMS_open (fname, flags, prot) int flags; int prot; { - return decc$open (fname, flags, prot, "mbc=16", "deq=64", "fop=tef"); +#undef open /* Get back the real open routine. */ + return open (fname, flags, prot, "mbc=16", "deq=64", "fop=tef"); } /* more VMS hackery */ @@ -10322,13 +10273,14 @@ extern unsigned long sys$parse(), sys$search(); bad enough, but then compounding the problem by reporting the reason for failure as "normal successful completion." */ +#undef fstat /* Get back to the library version. */ static int VMS_fstat (fd, statbuf) int fd; struct stat *statbuf; { - int result = decc$fstat (fd, statbuf); + int result = fstat (fd, statbuf); if (result < 0) { diff --git a/gcc/cexp.c b/gcc/cexp.c index f7c51a7d233..9f44faae3ca 100644 --- a/gcc/cexp.c +++ b/gcc/cexp.c @@ -1,6 +1,6 @@ /* A Bison parser, made from cexp.y - by Bison version A2.5 (Andrew Consortium) + by GNU Bison version 1.25 */ #define YYBISON 1 /* Identify Bison output. */ @@ -332,7 +332,7 @@ static const short yyrline[] = { 0, #endif -#if YYDEBUG != 0 +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","INT","CHAR", "NAME","ERROR","'?'","':'","','","OR","AND","'|'","'^'","'&'","EQUAL","NOTEQUAL", @@ -588,16 +588,16 @@ int yyparse (void); #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void -__yy_memcpy (from, to, count) - char *from; +__yy_memcpy (to, from, count) char *to; + char *from; int count; { register char *f = from; @@ -613,7 +613,7 @@ __yy_memcpy (from, to, count) /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void -__yy_memcpy (char *from, char *to, int count) +__yy_memcpy (char *to, char *from, int count) { register char *f = from; register char *t = to; @@ -626,7 +626,7 @@ __yy_memcpy (char *from, char *to, int count) #endif #endif -#line 192 "/usr/share/bison.simple" +#line 196 "/usr/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -635,14 +635,20 @@ __yy_memcpy (char *from, char *to, int count) to the proper pointer type. */ #ifdef YYPARSE_PARAM +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -#else -#define YYPARSE_PARAM +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL -#endif +#endif /* not YYPARSE_PARAM */ int -yyparse(YYPARSE_PARAM) +yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; @@ -759,12 +765,12 @@ yynewstate: if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ @@ -1201,7 +1207,7 @@ case 40: break;} } /* the action file gets copied in in place of this dollarsign */ -#line 487 "/usr/share/bison.simple" +#line 498 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; diff --git a/gcc/collect2.c b/gcc/collect2.c index f18ecfe5664..de178d301b1 100644 --- a/gcc/collect2.c +++ b/gcc/collect2.c @@ -34,6 +34,18 @@ Boston, MA 02111-1307, USA. */ #include #include +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif + #define COLLECT #include "demangle.h" @@ -292,9 +304,17 @@ static void scan_libraries PROTO((char *)); char *xcalloc (); char *xmalloc (); +#ifdef NEED_DECLARATION_INDEX extern char *index (); +#endif + +#ifdef NEED_DECLARATION_RINDEX extern char *rindex (); +#endif + +#ifdef NEED_DECLARATION_FREE extern void free (); +#endif #ifdef NO_DUP2 int @@ -1760,11 +1780,22 @@ write_c_file_stat (stream, name) write_list (stream, "\t\t&", frame_tables.first); fprintf (stream, "\t0\n};\n"); - fprintf (stream, "extern void __register_frame_table (void *);\n"); + /* This must match what's in frame.h. */ + fprintf (stream, "struct object {\n"); + fprintf (stream, " void *pc_begin;\n"); + fprintf (stream, " void *pc_end;\n"); + fprintf (stream, " void *fde_begin;\n"); + fprintf (stream, " void *fde_array;\n"); + fprintf (stream, " size_t count;\n"); + fprintf (stream, " struct object *next;\n"); + fprintf (stream, "};\n"); + + fprintf (stream, "extern void __register_frame_table (void *, struct object *);\n"); fprintf (stream, "extern void __deregister_frame (void *);\n"); fprintf (stream, "static void reg_frame () {\n"); - fprintf (stream, "\t__register_frame_table (frame_table);\n"); + fprintf (stream, "\tstatic struct object ob;\n"); + fprintf (stream, "\t__register_frame_table (frame_table, &ob);\n"); fprintf (stream, "\t}\n"); fprintf (stream, "static void dereg_frame () {\n"); diff --git a/gcc/combine.c b/gcc/combine.c index 6bc921b6f8e..a96e4f76547 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1055,6 +1055,43 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc) return 1; } +/* Check if PAT is an insn - or a part of it - used to set up an + argument for a function in a hard register. */ + +static int +sets_function_arg_p (pat) + rtx pat; +{ + int i; + rtx inner_dest; + + switch (GET_CODE (pat)) + { + case INSN: + return sets_function_arg_p (PATTERN (pat)); + + case PARALLEL: + for (i = XVECLEN (pat, 0); --i >= 0;) + if (sets_function_arg_p (XVECEXP (pat, 0, i))) + return 1; + + break; + + case SET: + inner_dest = SET_DEST (pat); + while (GET_CODE (inner_dest) == STRICT_LOW_PART + || GET_CODE (inner_dest) == SUBREG + || GET_CODE (inner_dest) == ZERO_EXTRACT) + inner_dest = XEXP (inner_dest, 0); + + return (GET_CODE (inner_dest) == REG + && REGNO (inner_dest) < FIRST_PSEUDO_REGISTER + && FUNCTION_ARG_REGNO_P (REGNO (inner_dest))); + } + + return 0; +} + /* LOC is the location within I3 that contains its pattern or the component of a PARALLEL of the pattern. We validate that it is valid for combining. @@ -1150,19 +1187,28 @@ combinable_i3pat (i3, loc, i2dest, i1dest, i1_not_in_src, pi3dest_killed) if ((inner_dest != dest && (reg_overlap_mentioned_p (i2dest, inner_dest) || (i1dest && reg_overlap_mentioned_p (i1dest, inner_dest)))) + /* This is the same test done in can_combine_p except that we allow a hard register with SMALL_REGISTER_CLASSES if SRC is a - CALL operation. - Moreover, we can't test all_adjacent; we don't have to, since - this instruction will stay in place, thus we are not considering - to increase the lifetime of INNER_DEST. */ + CALL operation. Moreover, we can't test all_adjacent; we don't + have to, since this instruction will stay in place, thus we are + not considering increasing the lifetime of INNER_DEST. + + Also, if this insn sets a function argument, combining it with + something that might need a spill could clobber a previous + function argument; the all_adjacent test in can_combine_p also + checks this; here, we do a more specific test for this case. */ + || (GET_CODE (inner_dest) == REG && REGNO (inner_dest) < FIRST_PSEUDO_REGISTER && (! HARD_REGNO_MODE_OK (REGNO (inner_dest), GET_MODE (inner_dest)) || (SMALL_REGISTER_CLASSES && GET_CODE (src) != CALL && ! REG_USERVAR_P (inner_dest) - && FUNCTION_VALUE_REGNO_P (REGNO (inner_dest))))) + && (FUNCTION_VALUE_REGNO_P (REGNO (inner_dest)) + || (FUNCTION_ARG_REGNO_P (REGNO (inner_dest)) + && i3 != 0 + && sets_function_arg_p (prev_nonnote_insn (i3))))))) || (i1_not_in_src && reg_overlap_mentioned_p (i1dest, src))) return 0; @@ -7188,7 +7234,7 @@ simplify_and_const_int (x, mode, varop, constop) /* We let num_sign_bit_copies recur into nonzero_bits as that is useful. We don't let nonzero_bits recur into num_sign_bit_copies, because that is less useful. We can't allow both, because that results in exponential - run time recusion. There is a nullstone testcase that triggered + run time recursion. There is a nullstone testcase that triggered this. This macro avoids accidental uses of num_sign_bit_copies. */ #define num_sign_bit_copies() diff --git a/gcc/config.in b/gcc/config.in index 1244b76114e..9a635158ccd 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -14,18 +14,60 @@ /* Whether free must be declared even if is included. */ #undef NEED_DECLARATION_FREE +/* Whether index must be declared even if is included. */ +#undef NEED_DECLARATION_INDEX + +/* Whether rindex must be declared even if is included. */ +#undef NEED_DECLARATION_RINDEX + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + /* Define if `sys_siglist' is declared by . */ #undef SYS_SIGLIST_DECLARED +/* Define if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define if you have the bcmp function. */ +#undef HAVE_BCMP + +/* Define if you have the bcopy function. */ +#undef HAVE_BCOPY + /* Define if you have the bsearch function. */ #undef HAVE_BSEARCH +/* Define if you have the bzero function. */ +#undef HAVE_BZERO + +/* Define if you have the index function. */ +#undef HAVE_INDEX + +/* Define if you have the kill function. */ +#undef HAVE_KILL + +/* Define if you have the popen function. */ +#undef HAVE_POPEN + +/* Define if you have the putenv function. */ +#undef HAVE_PUTENV + +/* Define if you have the rindex function. */ +#undef HAVE_RINDEX + /* Define if you have the strerror function. */ #undef HAVE_STRERROR /* Define if you have the strtoul function. */ #undef HAVE_STRTOUL +/* Define if you have the vprintf function. */ +#undef HAVE_VPRINTF + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H + /* Define if you have the header file. */ #undef HAVE_LIMITS_H @@ -41,6 +83,21 @@ /* Define if you have the header file. */ #undef HAVE_STRINGS_H +/* Define if you have the header file. */ +#undef HAVE_SYS_FILE_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_RESOURCE_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIMES_H + /* Define if you have the header file. */ #undef HAVE_SYS_VARARGS_H diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 6155a1dc6a3..91c068c7dc3 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -1201,10 +1201,9 @@ alpha_adjust_cost (insn, link, dep_insn, cost) if (alpha_cpu == PROCESSOR_EV5) { - /* On EV5, "A special bypass provides an effective latency of 0 - cycles for an ICMP or ILOG insn producing the test operand of an - IBR or CMOV insn." */ - + /* And the lord DEC saith: "A special bypass provides an effective + latency of 0 cycles for an ICMP or ILOG insn producing the test + operand of an IBR or CMOV insn." */ if (recog_memoized (dep_insn) >= 0 && (get_attr_type (dep_insn) == TYPE_ICMP || get_attr_type (dep_insn) == TYPE_ILOG) @@ -1753,10 +1752,12 @@ alpha_builtin_saveregs (arglist) emit_move_insn (dest, addr); if (flag_check_memory_usage) - emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, dest, - ptr_mode, GEN_INT (GET_MODE_SIZE (ptr_mode)), + emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, + dest, ptr_mode, + GEN_INT (GET_MODE_SIZE (ptr_mode)), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); /* Store the argsize as the __va_offset member. */ dest = change_address (block, TYPE_MODE (integer_type_node), @@ -1765,12 +1766,13 @@ alpha_builtin_saveregs (arglist) emit_move_insn (dest, argsize); if (flag_check_memory_usage) - emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, dest, - ptr_mode, + emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, + dest, ptr_mode, GEN_INT (GET_MODE_SIZE (TYPE_MODE (integer_type_node))), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); /* Return the address of the va_list constructor, but don't put it in a register. Doing so would fail when not optimizing and produce worse diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h index 41a9076716c..339c4a62387 100644 --- a/gcc/config/alpha/alpha.h +++ b/gcc/config/alpha/alpha.h @@ -747,8 +747,9 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS, && (GET_CODE (SUBREG_REG (OUT)) == MEM \ || (GET_CODE (SUBREG_REG (OUT)) == REG \ && REGNO (SUBREG_REG (OUT)) >= FIRST_PSEUDO_REGISTER)))) \ - && ((((MODE) == HImode || (MODE) == QImode) && ! TARGET_BWX \ - || ((MODE) == SImode && (CLASS) == FLOAT_REGS)))) \ + && ((((MODE) == HImode || (MODE) == QImode) \ + && (! TARGET_BWX || (CLASS) == FLOAT_REGS)) \ + || ((MODE) == SImode && (CLASS) == FLOAT_REGS))) \ ? GENERAL_REGS \ : ((CLASS) == FLOAT_REGS && GET_CODE (OUT) == MEM \ && GET_CODE (XEXP (OUT, 0)) == AND) ? GENERAL_REGS \ @@ -911,8 +912,9 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS, #define FUNCTION_VALUE(VALTYPE, FUNC) \ gen_rtx (REG, \ - (INTEGRAL_TYPE_P (VALTYPE) \ - && TYPE_PRECISION (VALTYPE) < BITS_PER_WORD) \ + ((INTEGRAL_TYPE_P (VALTYPE) \ + && TYPE_PRECISION (VALTYPE) < BITS_PER_WORD) \ + || POINTER_TYPE_P (VALTYPE)) \ ? word_mode : TYPE_MODE (VALTYPE), \ ((TARGET_FPREGS \ && (TREE_CODE (VALTYPE) == REAL_TYPE \ @@ -2278,7 +2280,7 @@ do { \ #else /* In OSF/1 v3.2c, the assembler by default does not output file names which causes mips-tfile to fail. Passing -g to the assembler fixes this problem. - ??? Stricly speaking, we only need -g if the user specifies -g. Passing + ??? Strictly speaking, we need -g only if the user specifies -g. Passing it always means that we get slightly larger than necessary object files if the user does not specify -g. If we don't pass -g, then mips-tfile will need to be fixed to work in this case. Pass -O0 since some diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index 5a7218dbd4e..2e6b7b73c30 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -37,7 +37,7 @@ (const_string "iadd")) ;; The TRAP_TYPE attribute marks instructions that may generate traps -;; (which are imprecise and may need a trapb if software complention +;; (which are imprecise and may need a trapb if software completion ;; is desired). (define_attr "trap" "no,yes" (const_string "no")) diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h index 2279fb1de92..b1466ae6ba3 100644 --- a/gcc/config/alpha/elf.h +++ b/gcc/config/alpha/elf.h @@ -20,10 +20,10 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is used on Alpha platforms that use the ELF format. -Currently only Linux uses this. */ + Currently only GNU/Linux uses this. */ #undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (Alpha Linux/ELF)"); +#define TARGET_VERSION fprintf (stderr, " (Alpha GNU/Linux with ELF)"); #undef OBJECT_FORMAT_COFF #undef EXTENDED_COFF @@ -489,8 +489,8 @@ do { \ #undef PREFERRED_DEBUGGING_TYPE #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG -/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add - the Linux magical crtbegin.o file (see crtstuff.c) which +/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add + the GNU/Linux magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before entering `main'. */ @@ -500,11 +500,11 @@ do { \ %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\ crti.o%s crtbegin.o%s" -/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on - the Linux magical crtend.o file (see crtstuff.c) which +/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on + the GNU/Linux magical crtend.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before entering `main', followed by a normal - Linux "finalizer" file, `crtn.o'. */ + GNU/Linux "finalizer" file, `crtn.o'. */ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h index 9a8cc36aa72..32428df5db0 100644 --- a/gcc/config/alpha/linux.h +++ b/gcc/config/alpha/linux.h @@ -1,5 +1,5 @@ -/* Definitions of target machine for GNU compiler, for Alpha Linux, - using ECOFF. +/* Definitions of target machine for GNU compiler, for Alpha Linux-based GNU + systems using ECOFF. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Bob Manson. @@ -23,7 +23,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define TARGET_DEFAULT (3 | MASK_GAS) #undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (Linux/Alpha)"); +#define TARGET_VERSION fprintf (stderr, " (GNU/Linux/Alpha)"); #undef CPP_PREDEFINES #define CPP_PREDEFINES "\ @@ -80,8 +80,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ range and so the target is in range of something on the stack. Omitting the hint saves a bogus branch-prediction cache line load. - Linux always has an executable stack -- no need for a system call. - */ + GNU/Linux always has an executable stack -- no need for a system call. */ #undef INITIALIZE_TRAMPOLINE #define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h index 8a48a1b17e3..8b33a8d224d 100644 --- a/gcc/config/alpha/vms.h +++ b/gcc/config/alpha/vms.h @@ -89,10 +89,7 @@ Boston, MA 02111-1307, USA. */ #define POINTER_SIZE 32 #define POINTERS_EXTEND_UNSIGNED 0 -/* No data type wants to be aligned rounder than this. */ -#undef BIGGEST_ALIGNMENT -#define BIGGEST_ALIGNMENT 128 /* X Complex */ -#define MAX_OFILE_ALIGNMENT 524288 /* 8 x 2^16 by DEC Test CD40VRA */ +#define MAX_OFILE_ALIGNMENT 524288 /* 8 x 2^16 by DEC Ada Test CD40VRA */ #undef FIXED_REGISTERS #define FIXED_REGISTERS \ @@ -213,13 +210,6 @@ extern struct rtx_def *alpha_arg_info_reg_val (); + ALPHA_ARG_SIZE (MODE, TYPE, NAMED) \ ? 6 - (CUM).num_args : 0) -#undef ENCODE_SECTION_INFO -#define ENCODE_SECTION_INFO(DECL) \ -do { \ - if (TREE_CODE (DECL) == FUNCTION_DECL && ! TREE_PUBLIC (DECL)) \ - SYMBOL_REF_FLAG (XEXP (DECL_RTL (DECL), 0)) = 1; \ -} while (0) - /* Perform any needed actions needed for a function that is receiving a variable number of arguments. @@ -457,28 +447,11 @@ do { \ sprintf ((OUTPUT), "%s___%d", (NAME), (LABELNO))) #undef ASM_SPEC -#define ASM_SPEC "-nocpp %{pg}" - #undef ASM_FINAL_SPEC - -#define OPTIMIZATION_OPTIONS \ -{ \ - write_symbols = PREFERRED_DEBUGGING_TYPE; \ - debug_info_level = (enum debug_info_level) 2; \ -} - -#undef OVERRIDE_OPTIONS -#define OVERRIDE_OPTIONS \ -{ \ - if (write_symbols == NO_DEBUG) \ - debug_info_level = (enum debug_info_level) 0; \ - override_options (); \ -} - #undef LINK_SPEC -#define LINK_SPEC "%{g3:-g3} %{g0:-g0} %{shared:-shared} %{v:-v}" - #undef STARTFILE_SPEC +#define ASM_SPEC "-nocpp %{pg}" +#define LINK_SPEC "%{g3:-g3} %{g0:-g0} %{shared:-shared} %{v:-v}" /* Define the names of the division and modulus functions. */ #define DIVSI3_LIBCALL "OTS$DIV_I" diff --git a/gcc/config/alpha/xm-alpha.h b/gcc/config/alpha/xm-alpha.h index 2cf8917609b..4bf20c0a385 100644 --- a/gcc/config/alpha/xm-alpha.h +++ b/gcc/config/alpha/xm-alpha.h @@ -71,14 +71,6 @@ extern void *malloc (), *realloc (), *calloc (); #include "string.h" #endif -/* OSF/1 has vprintf. */ - -#define HAVE_VPRINTF - -/* OSF/1 has putenv. */ - -#define HAVE_PUTENV - /* OSF/1 is POSIX.1 compliant. */ #define POSIX diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index 81595854e7e..7272cc927c8 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -1118,7 +1118,7 @@ arc_output_function_prologue (file, size) if (size == 0 && gmask) abort (); - /* Allocate space for register argumenets if this is a variadic function. */ + /* Allocate space for register arguments if this is a variadic function. */ if (current_frame_info.pretend_size != 0) fprintf (file, "\tsub %s,%s,%d\n", sp_str, sp_str, current_frame_info.pretend_size); @@ -1565,7 +1565,7 @@ arc_print_operand (file, x, code) switch (code) { case '#' : - /* Conditional brances. For now these are equivalent. */ + /* Conditional branches. For now these are equivalent. */ case '*' : /* Unconditional branches. Output the appropriate delay slot suffix. */ if (!final_sequence || XVECLEN (final_sequence, 0) == 1) @@ -1971,7 +1971,7 @@ arc_final_prescan_insn (insn, opvec, noperands) if (GET_CODE (insn) != JUMP_INSN) return; - /* This jump might be paralled with a clobber of the condition codes, + /* This jump might be paralleled with a clobber of the condition codes, the jump should always come first. */ if (GET_CODE (body) == PARALLEL && XVECLEN (body, 0) > 0) body = XVECEXP (body, 0, 0); @@ -2161,7 +2161,7 @@ arc_final_prescan_insn (insn, opvec, noperands) /* Restore recog_operand. Getting the attributes of other insns can destroy this array, but final.c assumes that it remains intact - accross this call; since the insn has been recognized already we + across this call; since the insn has been recognized already we call insn_extract direct. */ insn_extract (insn); } diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index ac433374fa4..b73da5b1f37 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -1,7 +1,7 @@ /* Output routines for GCC for ARM/RISCiX. Copyright (C) 1991, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) - and Martin Simmons (@harleqn.co.uk). + and Martin Simmons (@harleqn.co.uk). More major hacks by Richard Earnshaw (rwe11@cl.cam.ac.uk) This file is part of GNU CC. @@ -176,7 +176,7 @@ static struct processors all_procs[] = {"arm600", PROCESSOR_ARM6, FL_CO_PROC | FL_MODE32 | FL_MODE26}, {"arm610", PROCESSOR_ARM6, FL_MODE32 | FL_MODE26}, {"arm7", PROCESSOR_ARM7, FL_CO_PROC | FL_MODE32 | FL_MODE26}, - /* arm7m doesn't exist on its own, only in conjuction with D, (and I), but + /* arm7m doesn't exist on its own, only in conjunction with D, (and I), but those don't alter the code, so it is sometimes known as the arm7m */ {"arm7m", PROCESSOR_ARM7, (FL_CO_PROC | FL_FAST_MULT | FL_MODE32 | FL_MODE26)}, @@ -1302,10 +1302,12 @@ arm_finalize_pic () l1 = gen_label_rtx (); global_offset_table = gen_rtx (SYMBOL_REF, Pmode, "_GLOBAL_OFFSET_TABLE_"); + /* The PC contains 'dot'+8, but the label L1 is on the next + instruction, so the offset is only 'dot'+4. */ pic_tmp = gen_rtx (CONST, VOIDmode, gen_rtx (PLUS, Pmode, gen_rtx (LABEL_REF, VOIDmode, l1), - GEN_INT (8))); + GEN_INT (4))); pic_tmp2 = gen_rtx (CONST, VOIDmode, gen_rtx (PLUS, Pmode, global_offset_table, @@ -3050,7 +3052,7 @@ gen_rotated_half_load (memref) base = XEXP (base, 0); } - /* If we aren't allowed to generate unalligned addresses, then fail. */ + /* If we aren't allowed to generate unaligned addresses, then fail. */ if (TARGET_SHORT_BY_BYTES && ((BYTES_BIG_ENDIAN ? 1 : 0) ^ ((offset & 2) == 0))) return NULL; @@ -3075,7 +3077,7 @@ select_dominance_cc_mode (op, x, y, cond_or) /* Currently we will probably get the wrong result if the individual comparisons are not simple. This also ensures that it is safe to - reverse a comparions if necessary. */ + reverse a comparison if necessary. */ if ((arm_select_cc_mode (cond1 = GET_CODE (x), XEXP (x, 0), XEXP (x, 1)) != CCmode) || (arm_select_cc_mode (cond2 = GET_CODE (y), XEXP (y, 0), XEXP (y, 1)) @@ -3191,10 +3193,10 @@ arm_select_cc_mode (op, x, y) || GET_CODE (x) == ROTATERT)) return CC_SWPmode; - /* This is a special case, that is used by combine to alow a - comarison of a shifted byte load to be split into a zero-extend + /* This is a special case that is used by combine to allow a + comparison of a shifted byte load to be split into a zero-extend followed by a comparison of the shifted integer (only valid for - equalities and unsigned inequalites. */ + equalities and unsigned inequalities). */ if (GET_MODE (x) == SImode && GET_CODE (x) == ASHIFT && GET_CODE (XEXP (x, 1)) == CONST_INT && INTVAL (XEXP (x, 1)) == 24 @@ -5940,7 +5942,7 @@ aof_data_section () /* The AOF assembler is religiously strict about declarations of imported and exported symbols, so that it is impossible to declare - a function as imported near the begining of the file, and then to + a function as imported near the beginning of the file, and then to export it later on. It is, however, possible to delay the decision until all the functions in the file have been compiled. To get around this, we maintain a list of the imports and exports, and diff --git a/gcc/config/i386/cygwin32.h b/gcc/config/i386/cygwin32.h index 864ff95ff5b..56064bee9fd 100644 --- a/gcc/config/i386/cygwin32.h +++ b/gcc/config/i386/cygwin32.h @@ -41,6 +41,9 @@ Boston, MA 02111-1307, USA. */ -D__cdecl=__attribute__((__cdecl__)) \ -Asystem(winnt) -Acpu(i386) -Amachine(i386)" +#undef CPP_SPEC +#define CPP_SPEC "-remap %(cpp_cpu) %[cpp_cpu] %{posix:-D_POSIX_SOURCE}" + /* We have to dynamic link to get to the system DLLs. All of libc, libm and the Unix stuff is in cygwin.dll. The import library is called 'libcygwin.a'. For Windows applications, include more libraries, but diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index fc10a9c9092..a4ec3b6a3f2 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -35,7 +35,6 @@ Boston, MA 02111-1307, USA. */ #include "flags.h" #include "except.h" #include "function.h" -#include "dwarf2.h" #ifdef EXTRA_CONSTRAINT /* If EXTRA_CONSTRAINT is defined, then the 'S' @@ -4841,7 +4840,7 @@ reg_mentioned_in_mem (reg, rtl) return 0; } -/* Output the approprate insns for doing strlen if not just doing repnz; scasb +/* Output the appropriate insns for doing strlen if not just doing repnz; scasb operands[0] = result, initialized with the startaddress operands[1] = alignment of the address. @@ -4896,7 +4895,7 @@ output_strlen_unroll (operands) therefore use andl rather than andb. */ output_asm_insn (AS2 (and%L1,%4,%1), xops); - /* Is aligned to 4-byte adress when zero */ + /* Is aligned to 4-byte address when zero */ output_asm_insn (AS1 (je,%l8), xops); /* Side-effect even Parity when %eax == 3 */ @@ -4916,7 +4915,7 @@ output_strlen_unroll (operands) check if is aligned to 4 - byte. */ output_asm_insn (AS2 (and%L1,%3,%1), xops); - /* Is aligned to 4-byte adress when zero */ + /* Is aligned to 4-byte address when zero */ output_asm_insn (AS1 (je,%l8), xops); } diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 105bce1ea80..9bfef4e98b2 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -207,6 +207,8 @@ extern int target_flags; { "no-debug-arg", -MASK_DEBUG_ARG }, \ { "stack-arg-probe", MASK_STACK_PROBE }, \ { "no-stack-arg-probe", -MASK_STACK_PROBE }, \ + { "windows", 0 }, \ + { "dll", 0 }, \ SUBTARGET_SWITCHES \ { "", MASK_SCHEDULE_PROLOGUE | TARGET_DEFAULT}} diff --git a/gcc/config/i386/rtems.h b/gcc/config/i386/rtems.h index ada2d9f4ff7..b31ceb9f799 100644 --- a/gcc/config/i386/rtems.h +++ b/gcc/config/i386/rtems.h @@ -1,4 +1,4 @@ -/* Definitions for rtems targetting an Intel i386 using coff. +/* Definitions for rtems targeting an Intel i386 using coff. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h index 5faa7f7f9c4..d2bb1593358 100644 --- a/gcc/config/i386/sco5.h +++ b/gcc/config/i386/sco5.h @@ -289,8 +289,8 @@ do { \ NAME whose size is SIZE bytes and alignment is ALIGN bytes. Try to use asm_output_aligned_bss to implement this macro. */ -#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ - asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) +#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ +asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) #undef ESCAPES #define ESCAPES \ @@ -694,7 +694,7 @@ dtors_section () \ #undef NO_IMPLICIT_EXTERN_C #define NO_IMPLICIT_EXTERN_C 1 -/* JKJ FIXME - examine the rammifications of RETURN_IN_MEMORY and +/* JKJ FIXME - examine the ramifications of RETURN_IN_MEMORY and RETURN_POPS_ARGS */ #undef RETURN_POPS_ARGS diff --git a/gcc/config/i386/xm-dos.h b/gcc/config/i386/xm-dos.h index e6e06f4e809..a734a81b94e 100644 --- a/gcc/config/i386/xm-dos.h +++ b/gcc/config/i386/xm-dos.h @@ -1,8 +1,5 @@ #include "i386/xm-i386.h" -/* Inhibit cccp.c's definition of putenv. */ -#define HAVE_PUTENV - /* Use semicolons to separate elements of a path. */ #define PATH_SEPARATOR ';' diff --git a/gcc/config/i386/xm-mingw32.h b/gcc/config/i386/xm-mingw32.h index 75ccd1f42ec..47356f568d1 100644 --- a/gcc/config/i386/xm-mingw32.h +++ b/gcc/config/i386/xm-mingw32.h @@ -33,20 +33,13 @@ Boston, MA 02111-1307, USA. */ #define USE_PROTOTYPES 1 #endif -#ifndef HAVE_VPRINTF -#define HAVE_VPRINTF 1 -#endif - #define NO_SYS_SIGLIST 1 -#define bcmp(a,b,c) memcmp (a,b,c) -#define bcopy(a,b,c) memcpy (b,a,c) -#define bzero(a,b) memset (a,0,b) -#define index strchr -#define rindex strrchr -#define kill(a,b) raise(b) #define link(a,b) -1 #define environ _environ /* Even though we support "/", allow "\" since everybody tests both. */ #define DIR_SEPARATOR '\\' #define EXECUTABLE_SUFFIX ".exe" + +#undef PATH_SEPARATOR +#define PATH_SEPARATOR ';' diff --git a/gcc/config/i960/rtems.h b/gcc/config/i960/rtems.h index 0c52cef5c45..714706859d9 100644 --- a/gcc/config/i960/rtems.h +++ b/gcc/config/i960/rtems.h @@ -1,4 +1,4 @@ -/* Definitions for rtems targetting an Intel i960. +/* Definitions for rtems targeting an Intel i960. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). diff --git a/gcc/config/linux.h b/gcc/config/linux.h index ba81586ae94..870bbd277fe 100644 --- a/gcc/config/linux.h +++ b/gcc/config/linux.h @@ -1,4 +1,4 @@ -/* Definitions for Linux with ELF format +/* Definitions for Linux-based GNU systems with ELF format Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. Contributed by Eric Youngdale. Modified for stabs-in-ELF by H.J. Lu. @@ -26,7 +26,7 @@ Boston, MA 02111-1307, USA. */ #undef HAVE_ATEXIT #define HAVE_ATEXIT -/* Linux uses ctype from glibc.a. I am not sure how complete it is. +/* GNU/Linux uses ctype from glibc.a. I am not sure how complete it is. For now, we play safe. It may change later. */ #if 0 @@ -59,8 +59,8 @@ Boston, MA 02111-1307, USA. */ fprintf (FILE, "\t.version\t\"01.01\"\n"); \ } while (0) -/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add - the Linux magical crtbegin.o file (see crtstuff.c) which +/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add + the GNU/Linux magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before entering `main'. */ @@ -72,11 +72,11 @@ Boston, MA 02111-1307, USA. */ %{!profile:crt1.o%s}}}} \ crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" -/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on - the Linux magical crtend.o file (see crtstuff.c) which +/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on + the GNU/Linux magical crtend.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before entering `main', followed by a normal - Linux "finalizer" file, `crtn.o'. */ + GNU/Linux "finalizer" file, `crtn.o'. */ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ @@ -94,9 +94,8 @@ Boston, MA 02111-1307, USA. */ #undef LIB_SPEC /* We no longer link with libc_p.a or libg.a by default. If you - * want to profile or debug the Linux C library, please add - * -profile or -ggdb to LDFLAGS at the link time, respectively. - */ + want to profile or debug the GNU/Linux C library, please add + -profile or -ggdb to LDFLAGS at the link time, respectively. */ #if 1 #ifdef USE_GNULIBC_1 #define LIB_SPEC \ diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h index 9ba66f7680d..837712a38c6 100644 --- a/gcc/config/m68k/linux.h +++ b/gcc/config/m68k/linux.h @@ -1,4 +1,5 @@ -/* Definitions for Motorola 68k running Linux with ELF format. +/* Definitions for Motorola 68k running Linux-based GNU systems with + ELF format. Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -30,7 +31,7 @@ Boston, MA 02111-1307, USA. */ #include /* some common stuff */ #undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (68k Linux/ELF)"); +#define TARGET_VERSION fprintf (stderr, " (68k GNU/Linux with ELF)"); /* 68020 with 68881 */ #define TARGET_DEFAULT (MASK_BITFIELD|MASK_68881|MASK_68020) @@ -135,7 +136,7 @@ Boston, MA 02111-1307, USA. */ "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \ %{m68040} %{m68060:-m68040}" -/* Provide a LINK_SPEC appropriate for Linux. Here we provide support +/* Provide a LINK_SPEC appropriate for GNU/Linux. Here we provide support for the special GCC options -static and -shared, which allow us to link things in one of these three modes by applying the appropriate combinations of options at link-time. We like to support here for diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 605369f46d2..4d958f1bea0 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -32,7 +32,7 @@ Boston, MA 02111-1307, USA. */ #include "insn-flags.h" #include "output.h" #include "insn-attr.h" -#include "dwarf2.h" +#include "tree.h" /* Needed for use_return_insn. */ #include "flags.h" @@ -1313,6 +1313,8 @@ legitimize_pic_address (orig, mode, reg) gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig)); current_function_uses_pic_offset_table = 1; + if (reload_in_progress) + regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 1; RTX_UNCHANGING_P (pic_ref) = 1; emit_move_insn (reg, pic_ref); return reg; diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index 6004aaaa803..8c9cad0b522 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -280,8 +280,8 @@ extern int target_flags; /* No data type wants to be aligned rounder than this. Most published ABIs say that ints should be aligned on 16 bit - boundries, but cpus with 32 bit busses get better performance - aligned on 32 bit boundries. Coldfires without a misalignment + boundaries, but cpus with 32 bit busses get better performance + aligned on 32 bit boundaries. Coldfires without a misalignment module require 32 bit alignment. */ #define BIGGEST_ALIGNMENT (TARGET_ALIGN_INT ? 32 : 16) @@ -378,7 +378,7 @@ extern int target_flags; and are not available for the register allocator. On the 68000, only the stack pointer is such. */ -/* fpa0 is also reserved so that it can be used to move shit back and +/* fpa0 is also reserved so that it can be used to move data back and forth between high fpa regs and everything else. */ #define FIXED_REGISTERS \ diff --git a/gcc/config/m68k/rtems.h b/gcc/config/m68k/rtems.h index 74723466c30..77c02f8e9c8 100644 --- a/gcc/config/m68k/rtems.h +++ b/gcc/config/m68k/rtems.h @@ -1,4 +1,4 @@ -/* Definitions for rtems targetting a Motorola m68k using coff. +/* Definitions for rtems targeting a Motorola m68k using coff. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). diff --git a/gcc/config/m68k/xm-mot3300.h b/gcc/config/m68k/xm-mot3300.h index 0c1ec676115..8f4c0a46bf9 100644 --- a/gcc/config/m68k/xm-mot3300.h +++ b/gcc/config/m68k/xm-mot3300.h @@ -1,6 +1,6 @@ /* Configuration for GNU C-compiler for Motorola 68000 family. SysV68 Motorola 3300 Delta Series - Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -24,13 +24,6 @@ Boston, MA 02111-1307, USA. */ #include "m68k/xm-m68k.h" -#define bcopy(a,b,c) memcpy (b,a,c) -#define bzero(a,b) memset (a,0,b) -#define bcmp(a,b,c) memcmp (a,b,c) - -#define rindex strrchr -#define index strchr - #define NO_SYS_SIGLIST /* do not use alloca from -lPW with cc, because function epilogues use %sp */ diff --git a/gcc/config/m88k/dgux.h b/gcc/config/m88k/dgux.h index 449bd1d62a9..3e4c66ea90c 100644 --- a/gcc/config/m88k/dgux.h +++ b/gcc/config/m88k/dgux.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Motorola m88100 running DG/UX. - Copyright (C) 1988, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. + Copyright (C) 1988, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@mcc.com) Currently maintained by (gcc@dg-rtp.dg.com) @@ -30,7 +30,7 @@ Boston, MA 02111-1307, USA. */ (TARGET_SVR4 ? DWARF_DEBUG : SDB_DEBUG) #ifndef VERSION_INFO2 -#define VERSION_INFO2 "$Revision: 1.1.1.1 $" +#define VERSION_INFO2 "$Revision: 1.3 $" #endif #ifndef NO_BUGS #define AS_BUG_IMMEDIATE_LABEL @@ -134,6 +134,8 @@ Boston, MA 02111-1307, USA. */ { "startfile_default", STARTFILE_DEFAULT_SPEC }, \ { "startfile_crtbegin", STARTFILE_CRTBEGIN_SPEC } +/* Keep this left justified, no white space is allowed between + the arguments to the -Wc option */ #define ASM_CPU_SPEC "\ %{v:-V}\ %{g:\ diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c index 2fd082475dd..45938a1d1e9 100644 --- a/gcc/config/m88k/m88k.c +++ b/gcc/config/m88k/m88k.c @@ -2650,13 +2650,15 @@ m88k_builtin_saveregs (arglist) emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, block, ptr_mode, GEN_INT (3 * UNITS_PER_WORD), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); if (fixed < 8) emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, dest, ptr_mode, GEN_INT (UNITS_PER_WORD * (8 - fixed)), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); } /* Return the address of the va_list constructor, but don't put it in a diff --git a/gcc/config/m88k/xm-m88k.h b/gcc/config/m88k/xm-m88k.h index aff8e5fa106..b330f5980fc 100644 --- a/gcc/config/m88k/xm-m88k.h +++ b/gcc/config/m88k/xm-m88k.h @@ -1,6 +1,6 @@ /* Configuration for GNU compiler. Motorola m88100 in an 88open OCS/BCS environment. - Copyright (C) 1988, 1989, 1990, 1991, 1993 Free Software Foundation, Inc. + Copyright (C) 1988, 89, 90, 91, 93, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -37,14 +37,6 @@ Boston, MA 02111-1307, USA. */ #define SUCCESS_EXIT_CODE 0 #define FATAL_EXIT_CODE 33 -/* Use System V memory functions. */ -#define bcopy(a,b,c) memcpy (b,a,c) -#define bzero(a,b) memset (a,0,b) -#define bcmp(a,b,c) memcmp (a,b,c) - -#define rindex strrchr -#define index strchr - /* The 88open BCS (and ABI) environment doesn't support BSD features (vfork, getrusage), so use USG. The Omron Luna/88k is BSD though. */ #ifndef luna88k @@ -54,9 +46,6 @@ Boston, MA 02111-1307, USA. */ #define NO_SYS_SIGLIST #endif -/* Define HAVE_VPRINTF if it is available on host system. */ -#define HAVE_VPRINTF - /* If not compiled with GNU C, use the C alloca */ #ifndef __GNUC__ #define USE_C_ALLOCA diff --git a/gcc/config/mips/iris6.h b/gcc/config/mips/iris6.h index e66481f30e9..5bc733cb427 100644 --- a/gcc/config/mips/iris6.h +++ b/gcc/config/mips/iris6.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Iris version 6. - Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -140,7 +140,7 @@ Boston, MA 02111-1307, USA. */ } while (0) /* Tell function_prologue in mips.c that we have already output the .ent/.end - psuedo-ops. */ + pseudo-ops. */ #define FUNCTION_NAME_ALREADY_DECLARED #undef SET_ASM_OP /* Has no equivalent. See ASM_OUTPUT_DEF below. */ diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 706a9bfe7bf..78639d46bf7 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -3687,7 +3687,7 @@ override_options () } /* This optimization requires a linker that can support a R_MIPS_LO16 - relocation which is not immediately preceeded by a R_MIPS_HI16 relocation. + relocation which is not immediately preceded by a R_MIPS_HI16 relocation. GNU ld has this support, but not all other MIPS linkers do, so we enable this optimization only if the user requests it, or if GNU ld is the standard linker for this configuration. */ diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 59b2474ef83..44ac3b943d6 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -1448,7 +1448,7 @@ do { \ On the MIPS, all general registers are one word long. Except on the R4000 with the FR bit set, the floating point uses register - pairs, with the second register not being allocatable. */ + pairs, with the second register not being allocable. */ #define HARD_REGNO_NREGS(REGNO, MODE) \ (! FP_REG_P (REGNO) \ diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 27958ca0efc..5dfbdefa012 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -255,7 +255,7 @@ (and (eq_attr "mode" "DI") (eq_attr "cpu" "r5000"))) 68 68) -;; The R4300 does *NOT* have a seperate Floating Point Unit, instead +;; The R4300 does *NOT* have a separate Floating Point Unit, instead ;; the FP hardware is part of the normal ALU circuitry. This means FP ;; instructions affect the pipe-line, and no functional unit ;; parallelism can occur on R4300 processors. To force GCC into coding diff --git a/gcc/config/mips/rtems64.h b/gcc/config/mips/rtems64.h index dd21562a47e..6433ed56498 100644 --- a/gcc/config/mips/rtems64.h +++ b/gcc/config/mips/rtems64.h @@ -1,4 +1,4 @@ -/* Definitions for rtems targetting a MIPS ORION using ecoff. +/* Definitions for rtems targeting a MIPS ORION using ecoff. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). diff --git a/gcc/config/mips/xm-mips.h b/gcc/config/mips/xm-mips.h index d8eb4b59021..e10f78e5fca 100644 --- a/gcc/config/mips/xm-mips.h +++ b/gcc/config/mips/xm-mips.h @@ -1,5 +1,5 @@ /* Configuration for GNU C-compiler for MIPS Rx000 family - Copyright (C) 1989, 1990, 1991, 1993 Free Software Foundation, Inc. + Copyright (C) 1989, 1990, 1991, 1993, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -77,8 +77,6 @@ extern char * alloca (); /* Say if we have vprintf. BSD Mips targets probably don't have vfprintf. */ #if defined(__OSF1__) || defined(__OSF__) || defined(__osf__) || defined(bsd4_4) -#define HAVE_VPRINTF -#define HAVE_PUTENV #else #define NO_STAB_H /* mips doesn't typically have stab.h */ diff --git a/gcc/config/mn10200/mn10200.c b/gcc/config/mn10200/mn10200.c index c177607fe27..5435f773c8d 100644 --- a/gcc/config/mn10200/mn10200.c +++ b/gcc/config/mn10200/mn10200.c @@ -896,7 +896,7 @@ secondary_reload_class (class, mode, in, input) && class == ADDRESS_REGS) return DATA_REGS; - /* Address register stores which are not PSImode need a scrach register. */ + /* Address register stores which are not PSImode need a scratch register. */ if (! input && GET_CODE (in) == MEM && (mode != PSImode) diff --git a/gcc/config/mn10200/mn10200.h b/gcc/config/mn10200/mn10200.h index 23818d86bf3..2c51843f574 100644 --- a/gcc/config/mn10200/mn10200.h +++ b/gcc/config/mn10200/mn10200.h @@ -1,5 +1,4 @@ -/* Definitions of target machine for GNU compiler. - Matsushita MN10200 series +/* Definitions of target machine for GNU compiler. Matsushita MN10200 series Copyright (C) 1997 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). @@ -954,7 +953,7 @@ do { char dstr[30]; \ if ((LOG) != 0) \ fprintf (FILE, "\t.align %d\n", (LOG)) -/* We don't have to worry about dbx compatability for the mn10200. */ +/* We don't have to worry about dbx compatibility for the mn10200. */ #define DEFAULT_GDB_EXTENSIONS 1 /* Use stabs debugging info by default. */ diff --git a/gcc/config/mn10200/mn10200.md b/gcc/config/mn10200/mn10200.md index 443fc8b633e..9dc753c3023 100644 --- a/gcc/config/mn10200/mn10200.md +++ b/gcc/config/mn10200/mn10200.md @@ -30,7 +30,7 @@ ;; none_0hit - insn does not affect cc but it does modify operand 0 ;; This attribute is used to keep track of when operand 0 changes. ;; See the description of NOTICE_UPDATE_CC for more info. -;; set_znv - sets z,n,v to useable values; c is unknown. +;; set_znv - sets z,n,v to usable values; c is unknown. ;; set_zn - sets z,n to usable values; v,c is unknown. ;; compare - compare instruction ;; clobber - value of cc is unknown @@ -1708,7 +1708,7 @@ ;; a few times, then truncating the value to PSImode. ;; ;; This first pattern combines the shifting & truncation operations, by -;; itself it is a win because the shifts end up occuring in PSImode instead +;; itself it is a win because the shifts end up occurring in PSImode instead ;; of SImode. However, it has the secondary effect of giving us the ;; opportunity to match patterns which allow us to remove the initial ;; extension completely, which is a big win. diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index 58220588010..d813f2c32cc 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -581,7 +581,7 @@ expand_epilogue () the stack with one instruction. ?!? Only save registers which are actually used. Reduces - stack requireents and is faster. */ + stack requirements and is faster. */ if (regs_ever_live[2] || regs_ever_live[3] || regs_ever_live[6] || regs_ever_live[7] || frame_pointer_needed) diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h index ed98a665bb8..f244990cc09 100644 --- a/gcc/config/mn10300/mn10300.h +++ b/gcc/config/mn10300/mn10300.h @@ -1,5 +1,4 @@ -/* Definitions of target machine for GNU compiler. - Matsushita MN10300 series +/* Definitions of target machine for GNU compiler. Matsushita MN10300 series Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). @@ -937,7 +936,7 @@ do { char dstr[30]; \ if ((LOG) != 0) \ fprintf (FILE, "\t.align %d\n", (LOG)) -/* We don't have to worry about dbx compatability for the mn10300. */ +/* We don't have to worry about dbx compatibility for the mn10300. */ #define DEFAULT_GDB_EXTENSIONS 1 /* Use stabs debugging info by default. */ diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md index 1547ad01323..726418fba68 100644 --- a/gcc/config/mn10300/mn10300.md +++ b/gcc/config/mn10300/mn10300.md @@ -1,4 +1,4 @@ -; GCC machine description for Matsushita MN10300 +;; GCC machine description for Matsushita MN10300 ;; Copyright (C) 1996, 1997 Free Software Foundation, Inc. ;; Contributed by Jeff Law (law@cygnus.com). @@ -30,8 +30,8 @@ ;; none_0hit - insn does not affect cc but it does modify operand 0 ;; This attribute is used to keep track of when operand 0 changes. ;; See the description of NOTICE_UPDATE_CC for more info. -;; set_znv - insn sets z,n,v to useable values; c is unusable. -;; set_zn - insn sets z,n to useable values; v,c are unuseable. +;; set_znv - insn sets z,n,v to usable values; c is unusable. +;; set_zn - insn sets z,n to usable values; v,c are unusable. ;; compare - compare instruction ;; invert -- like compare, but flags are inverted. ;; clobber - value of cc is unknown diff --git a/gcc/config/pa/pa-hpux10.h b/gcc/config/pa/pa-hpux10.h index c4b8ddd36dc..9a2af5d578c 100644 --- a/gcc/config/pa/pa-hpux10.h +++ b/gcc/config/pa/pa-hpux10.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for HP PA-RISC 1.1 - Copyright (C) 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. Contributed by Tim Moore (moore@defmacro.cs.utah.edu) This file is part of GNU CC. @@ -20,7 +20,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* We can debug dynamically linked executables on hpux9; we also want - derefercing of a NULL pointer to cause a SEGV. */ + dereferencing of a NULL pointer to cause a SEGV. */ #undef LINK_SPEC #if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & 1) #define LINK_SPEC \ diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 1d65fcb872e..eb1af93fe2f 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -126,17 +126,17 @@ override_options () if (flag_pic && (TARGET_NO_SPACE_REGS || TARGET_FAST_INDIRECT_CALLS)) { - warning ("PIC code generation is not compatable with fast indirect calls\n"); + warning ("PIC code generation is not compatible with fast indirect calls\n"); } if (flag_pic && profile_flag) { - warning ("PIC code generation is not compatable with profiling\n"); + warning ("PIC code generation is not compatible with profiling\n"); } if (TARGET_SPACE && (flag_pic || profile_flag)) { - warning ("Out of line entry/exit sequences are not compatable\n"); + warning ("Out of line entry/exit sequences are not compatible\n"); warning ("with PIC or profiling\n"); } @@ -1885,7 +1885,7 @@ find_addr_reg (addr) OPERANDS[4] is the size as a CONST_INT OPERANDS[3] is a register for temporary storage. OPERANDS[5] is the alignment safe to use, as a CONST_INT. - OPERNADS[6] is another temporary register. */ + OPERANDS[6] is another temporary register. */ char * output_block_move (operands, size_is_constant) @@ -4324,7 +4324,7 @@ hppa_builtin_saveregs (arglist) individually as scalar stores. However, other insns may later load from the same addresses for - a struture load (passing a struct to a varargs routine). + a structure load (passing a struct to a varargs routine). The alias code assumes that such aliasing can never happen, so we have to keep memory referencing insns from moving up beyond the @@ -4335,7 +4335,8 @@ hppa_builtin_saveregs (arglist) emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, dest, ptr_mode, GEN_INT (4 * UNITS_PER_WORD), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); return copy_to_reg (expand_binop (Pmode, add_optab, current_function_internal_arg_pointer, @@ -6041,7 +6042,7 @@ pa_reorg (insns) continue; /* Now generate markers for the beginning and end of the - branc table. */ + branch table. */ emit_insn_before (gen_begin_brtab (), insn); emit_insn_after (gen_end_brtab (), insn); } @@ -6098,7 +6099,7 @@ pa_combine_instructions (insns) /* This can get expensive since the basic algorithm is on the order of O(n^2) (or worse). Only do it for -O2 or higher - levels of optimizaton. */ + levels of optimization. */ if (optimize < 2) return; diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 5944448a849..c286fb9fa04 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -77,7 +77,7 @@ extern int target_flags; this option will fail miserably if the executable is dynamically linked or uses nested functions! - This is also used to trigger agressive unscaled index addressing. */ + This is also used to trigger aggressive unscaled index addressing. */ #define TARGET_NO_SPACE_REGS (target_flags & 4) /* Allow unconditional jumps in the delay slots of call instructions. */ @@ -118,7 +118,7 @@ extern int target_flags; #define TARGET_FAST_INDIRECT_CALLS (target_flags & 1024) /* Generate code with big switch statements to avoid out of range branches - occuring within the switch table. */ + occurring within the switch table. */ #define TARGET_BIG_SWITCH (target_flags & 2048) /* Macro to define tables used to set the flags. @@ -281,7 +281,7 @@ extern int target_flags; or "static /usr/lib/X11R5/libX11.sl". HPUX 10.20 also has lines like "static branch prediction ..." - so we filter that out explcitly. + so we filter that out explicitly. We also try to bound our search for libraries with marker lines. What a pain. */ diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index d1e89a1ddf1..0ed6cbd2d0e 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -5082,7 +5082,7 @@ /* Must import the magic millicode routine. */ output_asm_insn (\".IMPORT $$sh_func_adrs,MILLICODE\", NULL); - /* This is absolutely fucking amazing. + /* This is absolutely amazing. First, copy our input parameter into %r29 just in case we don't need to call $$sh_func_adrs. */ @@ -5138,7 +5138,7 @@ (const_int 0))) (const_int 32) -;; PORTABLE_RUTNIME +;; PORTABLE_RUNTIME (ne (symbol_ref "TARGET_PORTABLE_RUNTIME") (const_int 0)) (const_int 40)] diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h index 0632dce3655..10474e4d5cf 100644 --- a/gcc/config/rs6000/linux.h +++ b/gcc/config/rs6000/linux.h @@ -49,7 +49,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" #undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (PowerPC Linux)"); +#define TARGET_VERSION fprintf (stderr, " (PowerPC GNU/Linux)"); /* Define this macro as a C expression for the initializer of an array of string to tell the driver program which options are diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 464252d2005..2dbdb923538 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -19,9 +19,9 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "config.h" #include #include +#include "config.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" @@ -2140,7 +2140,7 @@ rs6000_got_register (value) } -/* Replace all occurances of register FROM with an new pseduo register in an insn X. +/* Replace all occurrences of register FROM with an new pseudo register in an insn X. Store the pseudo register used in REG. This is only safe during FINALIZE_PIC, since the registers haven't been setup yet. */ @@ -2215,7 +2215,7 @@ void rs6000_finalize_pic () { /* Loop through all of the insns, replacing the special GOT_TOC_REGNUM - with an appropriate pseduo register. If we find we need GOT/TOC, + with an appropriate pseudo register. If we find we need GOT/TOC, add the appropriate init code. */ if (flag_pic && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)) { @@ -2257,7 +2257,7 @@ rs6000_finalize_pic () } -/* Search for any occurrance of the GOT_TOC register marker that should +/* Search for any occurrence of the GOT_TOC register marker that should have been eliminated, but may have crept back in. */ void diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 3e7b932ffb2..d30af75f155 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -52,7 +52,7 @@ Boston, MA 02111-1307, USA. */ #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_cpu)" -/* Common CPP definitions used by CPP_SPEC amonst the various targets +/* Common CPP definitions used by CPP_SPEC among the various targets for handling -mcpu=xxx switches. */ #define CPP_CPU_SPEC \ "%{!mcpu*: \ @@ -101,7 +101,7 @@ Boston, MA 02111-1307, USA. */ #define CPP_SYSV_DEFAULT_SPEC "" #endif -/* Common ASM definitions used by ASM_SPEC amonst the various targets +/* Common ASM definitions used by ASM_SPEC among the various targets for handling -mcpu=xxx switches. */ #define ASM_CPU_SPEC \ "%{!mcpu*: \ @@ -242,7 +242,7 @@ extern int target_flags; if there are more than 16K unique variables/constant in a single module. This is at the cost of having 2 extra loads and one extra store per - function, and one less allocatable register. */ + function, and one less allocable register. */ #define MASK_MINIMAL_TOC 0x00000200 /* Nonzero for the 64bit model: ints, longs, and pointers are 64 bits. */ @@ -424,7 +424,7 @@ extern enum processor_type rs6000_cpu; extern char *m88k_short_data; #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } } */ -/* This is meant to be overriden in target specific files. */ +/* This is meant to be overridden in target specific files. */ #ifndef SUBTARGET_OPTIONS #define SUBTARGET_OPTIONS #endif @@ -909,7 +909,7 @@ extern int rs6000_debug_arg; /* debug argument handling */ Also, cr0 is the only condition code register that can be used in arithmetic insns, so make a separate class for it. - There is a special 'registrer' (76), which is not a register, but a + There is a special 'register' (76), which is not a register, but a placeholder for memory allocated to convert between floating point and integral types. This works around a problem where if we allocate memory with allocate_stack_{local,temp} and the function is an inline function, the diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index cf88a7a2226..8f71378244a 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -7241,7 +7241,7 @@ DONE; }") -;; If we have -mmiminal-toc, we need to reload r30 after a nonlocal goto. +;; If we have -mminimal-toc, we need to reload r30 after a nonlocal goto. (define_insn "nonlocal_goto_receiver" [(unspec_volatile [(const_int 0)] 1)] diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h index 287da251268..c00c5ad7704 100644 --- a/gcc/config/rs6000/rtems.h +++ b/gcc/config/rs6000/rtems.h @@ -1,4 +1,4 @@ -/* Definitions for rtems targetting a PowerPC using elf. +/* Definitions for rtems targeting a PowerPC using elf. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index dace38028ef..e9a88a2d15a 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -1,5 +1,5 @@ /* Target definitions for GNU compiler for PowerPC running System V.4 - Copyright (C) 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. Contributed by Cygnus Support. This file is part of GNU CC. @@ -584,7 +584,7 @@ extern void rs6000_select_rtx_section (), rs6000_select_section (); we can't check that since not every file that uses GO_IF_LEGITIMATE_ADDRESS_P includes real.h. - Unlike AIX, we don't key off of -mmininal-toc, but instead do not + Unlike AIX, we don't key off of -mminimal-toc, but instead do not allow floating point constants in the TOC if -mrelocatable. */ #undef ASM_OUTPUT_SPECIAL_POOL_ENTRY_P @@ -713,7 +713,7 @@ do { \ } \ } while (0) -/* Describe how to emit unitialized external linkage items */ +/* Describe how to emit uninitialized external linkage items */ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ do { \ ASM_GLOBALIZE_LABEL (FILE, NAME); \ @@ -1030,7 +1030,7 @@ do { \ #undef LINK_SHLIB_SPEC #ifndef NO_SHARED_LIB_SUPPORT -/* Shared libaries are default. */ +/* Shared libraries are default. */ #define LINK_SHLIB_SPEC "\ %{!static: %(link_path) %{!R*:%{L*:-R %*}}} \ %{mshlib: } \ @@ -1269,7 +1269,7 @@ do { \ #define CPP_OS_SIM_SPEC "" #endif -/* Linux support. */ +/* GNU/Linux support. */ #ifndef LIB_LINUX_SPEC #define LIB_LINUX_SPEC "%{mnewlib: --start-group -llinux -lc --end-group } %{!mnewlib: -lc }" #endif diff --git a/gcc/config/rs6000/xm-cygwin32.h b/gcc/config/rs6000/xm-cygwin32.h index 9b3c2700e99..677254b371c 100644 --- a/gcc/config/rs6000/xm-cygwin32.h +++ b/gcc/config/rs6000/xm-cygwin32.h @@ -1,6 +1,6 @@ /* Configuration for GNU C-compiler for hosting on Windows NT. using a unix style C library. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995, 1997 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/sh/rtems.h b/gcc/config/sh/rtems.h index be9d8f2a8c4..2e864ad5c29 100644 --- a/gcc/config/sh/rtems.h +++ b/gcc/config/sh/rtems.h @@ -1,4 +1,4 @@ -/* Definitions for rtems targetting a SH using elf. +/* Definitions for rtems targeting a SH using elf. Copyright (C) 1997 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 286195e5ee6..7f12528a877 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -1,5 +1,5 @@ /* Output routines for GCC for Hitachi Super-H. - Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -1919,7 +1919,7 @@ find_barrier (num_mova, mova, from) delay slot. This gives 1018. */ /* The branch will always be shortened now that the reference address for - forward branches is the sucessor address, thus we need no longer make + forward branches is the successor address, thus we need no longer make adjustments to the [sh]i_limit for -O0. */ si_limit = 1018; @@ -1937,7 +1937,7 @@ find_barrier (num_mova, mova, from) if (GET_CODE (from) == BARRIER) { found_barrier = from; - /* If we are at the end of the function, or in front of an alignemnt + /* If we are at the end of the function, or in front of an alignment instruction, we need not insert an extra alignment. We prefer this kind of barrier. */ @@ -2004,7 +2004,7 @@ find_barrier (num_mova, mova, from) /* We have just passed the barrier in front front of the ADDR_DIFF_VEC. Since the ADDR_DIFF_VEC is accessed as data, just like our pool constants, this is a good - opportunity to accomodate what we have gathered so far. + opportunity to accommodate what we have gathered so far. If we waited any longer, we could end up at a barrier in front of code, which gives worse cache usage for separated instruction / data caches. */ @@ -2286,7 +2286,7 @@ regs_used (x, is_dest) } /* Create an instruction that prevents redirection of a conditional branch - to the desitination of the JUMP with address ADDR. + to the destination of the JUMP with address ADDR. If the branch needs to be implemented as an indirect jump, try to find a scratch register for it. If NEED_BLOCK is 0, don't do anything unless we need a scratch register. @@ -2327,7 +2327,7 @@ gen_block_redirect (jump, addr, need_block) { rtx scan; /* Don't look for the stack pointer as a scratch register, - it would cause trouble if an interrupt occured. */ + it would cause trouble if an interrupt occurred. */ unsigned try = 0x7fff, used; int jump_left = flag_expensive_optimizations + 1; @@ -2385,7 +2385,7 @@ gen_block_redirect (jump, addr, need_block) /* If the immediate destination is still in range, check for possible threading with a jump beyond the delay slot insn. Don't check if we are called recursively; the jump has been or will be - checked in a different invokation then. */ + checked in a different invocation then. */ else if (optimize && need_block >= 0) { @@ -2406,7 +2406,7 @@ gen_block_redirect (jump, addr, need_block) rtx reg = gen_rtx (REG, SImode, exact_log2 (dead & -dead)); /* It would be nice if we could convert the jump into an indirect - jump / far branch right now, and thus exposing all consitituent + jump / far branch right now, and thus exposing all constituent instructions to further optimization. However, reorg uses simplejump_p to determine if there is an unconditional jump where it should try to schedule instructions from the target of the @@ -2936,7 +2936,7 @@ machine_dependent_reorg (first) } /* The following processing passes need length information. - addr_diff_vec_adjust needs to know if insn_addreses is valid. */ + addr_diff_vec_adjust needs to know if insn_addresses is valid. */ insn_addresses = 0; /* If not optimizing for space, we want extra alignment for code after @@ -3076,7 +3076,7 @@ machine_dependent_reorg (first) /* range of mova is 1020, add 4 because pc counts from address of second instruction after this one, subtract 2 in case pc is 2 byte aligned. Possible alignment needed for the ADDR_DIFF_VEC - chancles out with alignment effects of the mova itself. */ + cancels out with alignment effects of the mova itself. */ if (total > 1022) { /* Change the mova into a load, and restart scanning @@ -3278,7 +3278,7 @@ split_branches (first) the label if th lABEL_BUSES count drops to zero. There is always a jump_optimize pass that sets these values, but it proceeds to delete unreferenced code, and then if not - optimizeing, to un-delete the deleted instructions, thus + optimizing, to un-delete the deleted instructions, thus leaving labels with too low uses counts. */ if (! optimize) { @@ -3936,7 +3936,7 @@ handle_pragma (file, t) sp_switch -- specifies an alternate stack for an interrupt handler to run on. - trap_exit -- use a trapa to exit an interrupt function intead of + trap_exit -- use a trapa to exit an interrupt function instead of an rte instruction. */ int @@ -4263,7 +4263,7 @@ branch_offset (branch) while (dest_uid >= uid_align_max || ! uid_align[dest_uid]) { /* Label might be outside the insn stream, or even in a separate - insn stream, after a syntax errror. */ + insn stream, after a syntax error. */ if (! NEXT_INSN (dest)) return 0; dest = NEXT_INSN (dest), dest_uid = INSN_UID (dest); diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 5b46976a970..a3aa90253e6 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -404,7 +404,7 @@ do { \ frame pointer register can often be eliminated in favor of the stack pointer register. Secondly, the argument pointer register can always be eliminated; it is replaced with either the stack or frame pointer. - Third, there is the retuen address pointer, which can also be replaced + Third, there is the return address pointer, which can also be replaced with either the stack or the frame pointer. */ /* This is an array of structures. Each structure initializes one pair diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 42b866c2af2..ae49456a966 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -1,5 +1,5 @@ ;;- Machine description for the Hitachi SH. -;; Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1997Free Software Foundation, Inc. ;; Contributed by Steve Chamberlain (sac@cygnus.com). ;; Improved by Jim Wilson (wilson@cygnus.com). @@ -80,7 +80,7 @@ ;; cbranch conditional branch instructions ;; jump unconditional jumps ;; arith ordinary arithmetic -;; arith3 a compound insn that behaves similarily to a sequence of +;; arith3 a compound insn that behaves similarly to a sequence of ;; three insns of type arith ;; arith3b like above, but might end with a redirected branch ;; load from memory @@ -169,7 +169,7 @@ ;; between the actual call address and the function arguments. ;; ADJUST_COST can only properly handle reductions of the cost, so we ;; use a latency of three here. -;; We only do this for SImode loads of general regsiters, to make the work +;; We only do this for SImode loads of general registers, to make the work ;; for ADJUST_COST easier. (define_function_unit "memory" 1 0 (eq_attr "type" "load_si,pcload_si") @@ -563,7 +563,7 @@ ;; registers as a normal function call would. ;; The INSN_REFERENCES_ARE_DELAYED in sh.h is problematic because it -;; also has an effect on the register that holds the addres of the sfunc. +;; also has an effect on the register that holds the address of the sfunc. ;; To make this work, we have an extra dummy insns that shows the use ;; of this register for reorg. @@ -2646,7 +2646,7 @@ return \"\"; }" ;; Need a variable length for this to be processed in each shorten_branch pass. -;; The actual work is done in ADJUST_INSN_LENTH, because length attributes +;; The actual work is done in ADJUST_INSN_LENGTH, because length attributes ;; need to be (a choice of) constants. ;; We use the calculated length before ADJUST_INSN_LENGTH to ;; determine if the insn_addresses array contents are valid. @@ -2807,7 +2807,7 @@ "operands[2] = gen_reg_rtx (SImode);") ;; Recognize mov #-1/negc/neg sequence, and change it to movt/add #-1. -;; This prevents a regression that occured when we switched from xor to +;; This prevents a regression that occurred when we switched from xor to ;; mov/neg for sne. (define_split @@ -2923,7 +2923,7 @@ "" ".align %O0" ;; Need a variable length for this to be processed in each shorten_branch pass. -;; The actual work is done in ADJUST_INSN_LENTH, because length attributes +;; The actual work is done in ADJUST_INSN_LENGTH, because length attributes ;; need to be (a choice of) constants. [(set (attr "length") (if_then_else (ne (pc) (pc)) (const_int 2) (const_int 0))) @@ -3322,7 +3322,7 @@ }" [(set_attr "length" "10")]) -;; Switch back to the original stack for interrupt funtions with the +;; Switch back to the original stack for interrupt functions with the ;; sp_switch attribute. */ (define_insn "sp_switch_2" [(const_int 2)] diff --git a/gcc/config/sparc/linux-aout.h b/gcc/config/sparc/linux-aout.h index df93361835f..7075b5fbe7c 100644 --- a/gcc/config/sparc/linux-aout.h +++ b/gcc/config/sparc/linux-aout.h @@ -1,4 +1,4 @@ -/* Definitions for SPARC running Linux with a.out +/* Definitions for SPARC running Linux-based GNU systems with a.out. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Eddie C. Dost (ecd@skynet.be) @@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA. */ #undef HAVE_ATEXIT #define HAVE_ATEXIT -/* Linux uses ctype from glibc.a. I am not sure how complete it is. +/* GNU/Linux uses ctype from glibc.a. I am not sure how complete it is. For now, we play safe. It may change later. */ #if 0 @@ -55,7 +55,7 @@ Boston, MA 02111-1307, USA. */ #define STARTFILE_SPEC "%{pg:gcrt0.o%s} %{!pg:%{p:gcrt0.o%s} %{!p:crt0.o%s}} %{static:-static}" #undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (sparc Linux/a.out)"); +#define TARGET_VERSION fprintf (stderr, " (sparc GNU/Linux with a.out)"); #undef SIZE_TYPE #define SIZE_TYPE "unsigned int" @@ -84,9 +84,8 @@ Boston, MA 02111-1307, USA. */ #if 1 /* We no longer link with libc_p.a or libg.a by default. If you - * want to profile or debug the Linux C library, please add - * -lc_p or -ggdb to LDFLAGS at the link time, respectively. - */ + want to profile or debug the GNU/Linux C library, please add + -lc_p or -ggdb to LDFLAGS at the link time, respectively. */ #define LIB_SPEC \ "%{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} %{!ggdb:-lc} %{ggdb:-lg}" #else @@ -106,7 +105,7 @@ Boston, MA 02111-1307, USA. */ #if 0 /* Define for support of TFmode long double and REAL_ARITHMETIC. - Sparc ABI says that long double is 4 words. Linux does not support + Sparc ABI says that long double is 4 words. GNU/Linux does not support long double yet. */ #define LONG_DOUBLE_TYPE_SIZE 128 #endif diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h index 6f7a6ca9469..a312967ac66 100644 --- a/gcc/config/sparc/linux.h +++ b/gcc/config/sparc/linux.h @@ -1,4 +1,4 @@ -/* Definitions for SPARC running Linux with ELF +/* Definitions for SPARC running Linux-based GNU systems with ELF. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Eddie C. Dost (ecd@skynet.be) @@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */ #undef HAVE_ATEXIT #define HAVE_ATEXIT -/* Linux uses ctype from glibc.a. I am not sure how complete it is. +/* GNU/Linux uses ctype from glibc.a. I am not sure how complete it is. For now, we play safe. It may change later. */ #if 0 @@ -57,8 +57,8 @@ Boston, MA 02111-1307, USA. */ fprintf (FILE, "\t.version\t\"01.01\"\n"); \ } while (0) -/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add - the Linux magical crtbegin.o file (see crtstuff.c) which +/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add + the GNU/Linux magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before entering `main'. */ @@ -68,11 +68,11 @@ Boston, MA 02111-1307, USA. */ %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\ crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" -/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on - the Linux magical crtend.o file (see crtstuff.c) which +/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on + the GNU/Linux magical crtend.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before entering `main', followed by a normal - Linux "finalizer" file, `crtn.o'. */ + GNU/Linux "finalizer" file, `crtn.o'. */ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ @@ -88,7 +88,7 @@ Boston, MA 02111-1307, USA. */ " #undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (sparc Linux/ELF)"); +#define TARGET_VERSION fprintf (stderr, " (sparc GNU/Linux with ELF)"); #undef SIZE_TYPE #define SIZE_TYPE "unsigned int" @@ -116,9 +116,8 @@ Boston, MA 02111-1307, USA. */ #undef LIB_SPEC /* We no longer link with libc_p.a or libg.a by default. If you - * want to profile or debug the Linux C library, please add - * -lc_p or -ggdb to LDFLAGS at the link time, respectively. - */ + want to profile or debug the GNU/Linux C library, please add + -lc_p or -ggdb to LDFLAGS at the link time, respectively. */ #if 1 #ifdef USE_GNULIBC_1 #define LIB_SPEC \ @@ -136,7 +135,7 @@ Boston, MA 02111-1307, USA. */ %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}}" #endif -/* Provide a LINK_SPEC appropriate for Linux. Here we provide support +/* Provide a LINK_SPEC appropriate for GNU/Linux. Here we provide support for the special GCC options -static and -shared, which allow us to link things in one of these three modes by applying the appropriate combinations of options at link-time. We like to support here for @@ -234,7 +233,7 @@ do { \ #if 0 /* Define for support of TFmode long double and REAL_ARITHMETIC. - Sparc ABI says that long double is 4 words. Linux does not support + Sparc ABI says that long double is 4 words. GNU/Linux does not support long double yet. */ #define LONG_DOUBLE_TYPE_SIZE 128 #endif diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h index 56c2183013d..74f632bb48c 100644 --- a/gcc/config/sparc/linux64.h +++ b/gcc/config/sparc/linux64.h @@ -1,4 +1,4 @@ -/* Definitions for 64-bit SPARC running Linux with ELF +/* Definitions for 64-bit SPARC running Linux-based GNU systems with ELF. Copyright 1996, 1997 Free Software Foundation, Inc. Contributed by David S. Miller (davem@caip.rutgers.edu) @@ -52,8 +52,8 @@ Boston, MA 02111-1307, USA. */ #define LIBGCC_SPEC \ "%{!shared:-lgcc}" -/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add - the Linux magical crtbegin.o file (see crtstuff.c) which +/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add + the GNU/Linux magical crtbegin.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before entering `main'. */ @@ -63,18 +63,18 @@ Boston, MA 02111-1307, USA. */ %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\ crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" -/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on - the Linux magical crtend.o file (see crtstuff.c) which +/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on + the GNU/Linux magical crtend.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before entering `main', followed by a normal - Linux "finalizer" file, `crtn.o'. */ + GNU/Linux "finalizer" file, `crtn.o'. */ #undef ENDFILE_SPEC #define ENDFILE_SPEC \ "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" #undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (sparc64 Linux/ELF)"); +#define TARGET_VERSION fprintf (stderr, " (sparc64 GNU/Linux with ELF)"); /* A 64 bit v9 compiler with stack-bias, in a Medium/Anywhere code model environment. */ @@ -113,15 +113,14 @@ Boston, MA 02111-1307, USA. */ %{posix:-D_POSIX_SOURCE} \ " /* We no longer link with libc_p.a or libg.a by default. If you - * want to profile or debug the Linux C library, please add - * -lc_p or -ggdb to LDFLAGS at the link time, respectively. - */ + want to profile or debug the GNU/Linux C library, please add + -lc_p or -ggdb to LDFLAGS at the link time, respectively. */ #undef LIB_SPEC #define LIB_SPEC \ "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \ %{!ggdb:-lc} %{ggdb:-lg}}" -/* Provide a LINK_SPEC appropriate for Linux. Here we provide support +/* Provide a LINK_SPEC appropriate for GNU/Linux. Here we provide support for the special GCC options -static and -shared, which allow us to link things in one of these three modes by applying the appropriate combinations of options at link-time. We like to support here for diff --git a/gcc/config/sparc/rtems.h b/gcc/config/sparc/rtems.h index 6a9d92ae1da..55b7779818a 100644 --- a/gcc/config/sparc/rtems.h +++ b/gcc/config/sparc/rtems.h @@ -1,4 +1,4 @@ -/* Definitions for rtems targetting a SPARC using a.out. +/* Definitions for rtems targeting a SPARC using a.out. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index a96bbf962d6..692ba41f790 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -3334,8 +3334,8 @@ output_function_prologue (file, size, leaf_function) else if (! leaf_function && TARGET_BROKEN_SAVERESTORE) { /* We assume the environment will properly handle or otherwise avoid - trouble associated with an interrupt occuring after the `save' or - trap occuring during it. */ + trouble associated with an interrupt occurring after the `save' or + trap occurring during it. */ fprintf (file, "\tsave\n"); if (actual_fsize <= 4096) @@ -3830,7 +3830,7 @@ function_arg (cum, mode, type, named, incoming_p) /* ??? This will cause the value to be passed in the fp reg and in the stack. When a prototype exists we want to pass the value in the reg but reserve space on the stack. That's an - optimization, and is defered [for a bit]. */ + optimization, and is deferred [for a bit]. */ if ((regno - SPARC_FP_ARG_FIRST) >= SPARC_INT_ARG_MAX * 2) return gen_rtx (PARALLEL, mode, gen_rtvec (2, @@ -4246,7 +4246,8 @@ sparc_builtin_saveregs (arglist) address, ptr_mode, GEN_INT (UNITS_PER_WORD * (NPARM_REGS (word_mode) - first_reg)), - TYPE_MODE (sizetype), GEN_INT (MEMORY_USE_RW), QImode); + TYPE_MODE (sizetype), GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); return address; } diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 9d8f1a1a3b6..d839432e766 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -440,8 +440,8 @@ extern int target_flags; /* Non-zero means the cpu has broken `save' and `restore' insns, only the trivial versions work (save %g0,%g0,%g0; restore %g0,%g0,%g0). We assume the environment will properly handle or otherwise avoid - trouble associated with an interrupt occuring after the `save' or trap - occuring during it. */ + trouble associated with an interrupt occurring after the `save' or trap + occurring during it. */ #define MASK_BROKEN_SAVERESTORE 0x200000 #define TARGET_BROKEN_SAVERESTORE (target_flags & MASK_BROKEN_SAVERESTORE) @@ -1131,7 +1131,7 @@ extern int sparc_mode_class[]; It is important that SPARC_ICC_REG have class NO_REGS. Otherwise combine may try to use it to hold an SImode value. See register_operand. - ??? Should %fcc[0123] be handled similarily? + ??? Should %fcc[0123] be handled similarly? */ enum reg_class { NO_REGS, FPCC_REGS, GENERAL_REGS, FP_REGS, EXTRA_FP_REGS, diff --git a/gcc/config/sparc/xm-linux.h b/gcc/config/sparc/xm-linux.h index 9299e313029..f68f5715662 100644 --- a/gcc/config/sparc/xm-linux.h +++ b/gcc/config/sparc/xm-linux.h @@ -1,4 +1,4 @@ -/* Configuration for GCC for SPARC running Linux. +/* Configuration for GCC for SPARC running Linux-based GNU systems. Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Eddie C. Dost (ecd@skynet.be) diff --git a/gcc/config/v850/lib1funcs.asm b/gcc/config/v850/lib1funcs.asm index 3f6f2261603..100d901d136 100644 --- a/gcc/config/v850/lib1funcs.asm +++ b/gcc/config/v850/lib1funcs.asm @@ -1172,7 +1172,7 @@ __save_interrupt: .size __save_interrupt,.-__save_interrupt /* Restore saved registers, deallocate stack and return from the interrupt */ - /* Called via: jr __return_interupt */ + /* Called via: jr __return_interrupt */ .align 2 .globl __return_interrupt .type __return_interrupt,@function diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c index 564e8ee0988..0962c779145 100644 --- a/gcc/config/v850/v850.c +++ b/gcc/config/v850/v850.c @@ -448,7 +448,7 @@ print_operand (file, x, code) break; case 'S': { - /* if it's a referance to a TDA variable, use sst/sld vs. st/ld */ + /* if it's a reference to a TDA variable, use sst/sld vs. st/ld */ if (GET_CODE (x) == MEM && ep_memory_operand (x, GET_MODE (x), FALSE)) fputs ("s", file); @@ -2157,8 +2157,8 @@ pattern_is_ok_for_prologue (op, mode) return 0; /* If the register is being pushed somewhere other than the stack - space just aquired by the first operand then abandon this quest. - Note: the test is <= becuase both values are negative. */ + space just acquired by the first operand then abandon this quest. + Note: the test is <= because both values are negative. */ if (INTVAL (XEXP (plus, 1)) <= INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1))) { diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h index 6bbf6ce589e..9044f44a6d9 100644 --- a/gcc/config/v850/v850.h +++ b/gcc/config/v850/v850.h @@ -1,5 +1,4 @@ -/* Definitions of target machine for GNU compiler. - NEC V850 series +/* Definitions of target machine for GNU compiler. NEC V850 series Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). @@ -83,7 +82,7 @@ extern int target_flags; * Passing/returning of large structures probably isn't the same as GHS. We don't have enough documentation on their conventions - to be compatable. + to be compatible. * Tests of SETUP_INCOMING_VARARGS need to be made runtime checks since it depends on TARGET_GHS. */ @@ -348,7 +347,7 @@ extern struct small_memory_info small_memory[(int)SMALL_MEMORY_max]; On the 850, we make the return registers first, then all of the volatile registers, then the saved registers in reverse order to better save the - registers with an out of line function , and finnally the fixed + registers with an out of line function, and finally the fixed registers. */ #define REG_ALLOC_ORDER \ @@ -1007,7 +1006,7 @@ do { \ switch on CODE. There aren't DImode MOD, DIV or MULT operations, so call them - very expensive. Everything else is pretty much a costant cost. */ + very expensive. Everything else is pretty much a constant cost. */ #define RTX_COSTS(RTX,CODE,OUTER_CODE) \ case MOD: \ @@ -1296,7 +1295,7 @@ do { char dstr[30]; \ if ((LOG) != 0) \ fprintf (FILE, "\t.align %d\n", (LOG)) -/* We don't have to worry about dbx compatability for the v850. */ +/* We don't have to worry about dbx compatibility for the v850. */ #define DEFAULT_GDB_EXTENSIONS 1 /* Use stabs debugging info by default. */ diff --git a/gcc/config/v850/v850.md b/gcc/config/v850/v850.md index c2095f2c294..0ba10ca0cc0 100644 --- a/gcc/config/v850/v850.md +++ b/gcc/config/v850/v850.md @@ -46,7 +46,7 @@ ;; none_0hit - insn does not affect cc but it does modify operand 0 ;; This attribute is used to keep track of when operand 0 changes. ;; See the description of NOTICE_UPDATE_CC for more info. -;; set_znv - sets z,n,v to useable values; c is unknown. +;; set_znv - sets z,n,v to usable values; c is unknown. ;; set_zn - sets z,n to usable values; v,c is unknown. ;; compare - compare instruction ;; clobber - value of cc is unknown @@ -935,7 +935,7 @@ /* Shift index for the table array access. */ emit_insn (gen_ashlsi3 (reg, reg, GEN_INT (TARGET_BIG_SWITCH ? 2 : 1))); - /* Load the table address into a psuedo. */ + /* Load the table address into a pseudo. */ emit_insn (gen_movsi (tableaddress, gen_rtx (LABEL_REF, VOIDmode, operands[3]))); /* Add the table address to the index. */ @@ -1201,8 +1201,8 @@ ;; an interrupt function makes a call. ;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and ;; all of memory. This blocks insns from being moved across this point. -;; This is needed because the rest of the compiler is not reading to handle -;; insns this compilcated +;; This is needed because the rest of the compiler is not ready to handle +;; insns this complicated. (define_insn "save_all_interrupt" [(unspec_volatile [(const_int 0)] 0)] @@ -1249,8 +1249,8 @@ ;; Restore all registers saved when an interrupt function makes a call. ;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and ;; all of memory. This blocks insns from being moved across this point. -;; This is needed because the rest of the compiler is not reading to handle -;; insns this compilcated +;; This is needed because the rest of the compiler is not ready to handle +;; insns this complicated. (define_insn "restore_all_interrupt" [(unspec_volatile [(const_int 0)] 1)] diff --git a/gcc/config/xm-linux.h b/gcc/config/xm-linux.h index 4baa426979d..9a3838b7d7f 100644 --- a/gcc/config/xm-linux.h +++ b/gcc/config/xm-linux.h @@ -1,4 +1,4 @@ -/* Configuration for GCC for Intel i386 running Linux. +/* Configuration for GCC for Intel i386 running Linux-based GNU systems. Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. Contributed by H.J. Lu (hjl@nynexst.com) @@ -19,15 +19,6 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#undef HAVE_VPRINTF -#define HAVE_VPRINTF - -#undef HAVE_POPEN -#define HAVE_POPEN - -#undef HAVE_PUTENV -#define HAVE_PUTENV - #undef HAVE_ATEXIT #define HAVE_ATEXIT @@ -40,8 +31,3 @@ Boston, MA 02111-1307, USA. */ #undef BSTRING #define BSTRING -#undef bcmp -#undef bcopy -#undef bzero -#undef index -#undef rindex diff --git a/gcc/config/xm-svr4.h b/gcc/config/xm-svr4.h index 49a751d92dd..8534aaa75a1 100644 --- a/gcc/config/xm-svr4.h +++ b/gcc/config/xm-svr4.h @@ -1,5 +1,5 @@ /* Configuration for GNU C-compiler for hosts running System V Release 4 - Copyright (C) 1988 Free Software Foundation, Inc. + Copyright (C) 1988, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -18,15 +18,7 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#define bcopy(src,dst,len) memcpy ((dst),(src),(len)) -#define bzero(dst,len) memset ((dst),0,(len)) -#define bcmp(left,right,len) memcmp ((left),(right),(len)) - -#define rindex strrchr -#define index strchr - #define USG -#define HAVE_VPRINTF #define POSIX diff --git a/gcc/configure b/gcc/configure index 60a3946a78a..e2adcd2f3c7 100755 --- a/gcc/configure +++ b/gcc/configure @@ -1,7 +1,7 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.12 +# Generated automatically using autoconf version 2.12.1 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation @@ -71,6 +71,7 @@ mandir='${prefix}/man' # Initialize some other variables. subdirs= MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. ac_max_here_lines=12 @@ -354,7 +355,7 @@ EOF verbose=yes ;; -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.12" + echo "configure generated by autoconf version 2.12.1" exit 0 ;; -with-* | --with-*) @@ -715,33 +716,33 @@ esac # Make sure we can run config.sub. -if $ac_config_sub sun4 >/dev/null 2>&1; then : +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:724: checking host system type" >&5 +echo "configure:725: checking host system type" >&5 host_alias=$host case "$host_alias" in NONE) case $nonopt in NONE) - if host_alias=`$ac_config_guess`; then : + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } fi ;; *) host_alias=$nonopt ;; esac ;; esac -host=`$ac_config_sub $host_alias` +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:745: checking target system type" >&5 +echo "configure:746: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -752,14 +753,14 @@ NONE) esac ;; esac -target=`$ac_config_sub $target_alias` +target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:763: checking build system type" >&5 +echo "configure:764: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -770,7 +771,7 @@ NONE) esac ;; esac -build=`$ac_config_sub $build_alias` +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` @@ -786,7 +787,7 @@ test "$host_alias" != "$target_alias" && # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:790: checking for $ac_word" >&5 +echo "configure:791: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -815,7 +816,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:819: checking for $ac_word" >&5 +echo "configure:820: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -863,7 +864,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:867: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:868: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -873,11 +874,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -897,12 +898,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:901: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:902: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:906: checking whether we are using GNU C" >&5 +echo "configure:907: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -911,7 +912,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:915: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:916: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -926,7 +927,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:930: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:931: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -954,7 +955,7 @@ else fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:958: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:959: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -987,7 +988,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:991: checking for $ac_word" >&5 +echo "configure:992: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1018,7 +1019,7 @@ done # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1022: checking for $ac_word" >&5 +echo "configure:1023: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1051,7 +1052,7 @@ then *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:1055: checking for yywrap in -l$ac_lib" >&5 +echo "configure:1056: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1059,7 +1060,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1093,7 +1094,7 @@ fi fi echo $ac_n "checking whether ln works""... $ac_c" 1>&6 -echo "configure:1097: checking whether ln works" >&5 +echo "configure:1098: checking whether ln works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1125,7 +1126,7 @@ else fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1129: checking whether ln -s works" >&5 +echo "configure:1130: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1159,7 +1160,7 @@ fi # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1163: checking for $ac_word" >&5 +echo "configure:1164: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1190,7 +1191,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1194: checking for $ac_word" >&5 +echo "configure:1195: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1230,7 +1231,7 @@ test -n "$YACC" || YACC="yacc" # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1234: checking for a BSD compatible install" >&5 +echo "configure:1235: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1284,7 +1285,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1288: checking for $ac_word" >&5 +echo "configure:1289: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1313,7 +1314,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1317: checking for $ac_word" >&5 +echo "configure:1318: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1361,7 +1362,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1365: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1366: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1371,11 +1372,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1395,12 +1396,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1399: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1400: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1404: checking whether we are using GNU C" >&5 +echo "configure:1405: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1409,7 +1410,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1424,7 +1425,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1428: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1429: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1452,7 +1453,7 @@ else fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:1456: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:1457: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1480,7 +1481,7 @@ fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1484: checking how to run the C preprocessor" >&5 +echo "configure:1485: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1495,13 +1496,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1505: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1506: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1512,13 +1513,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1522: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1540,39 +1541,818 @@ else fi echo "$ac_t""$CPP" 1>&6 -for ac_hdr in limits.h stddef.h string.h strings.h stdlib.h time.h unistd.h varargs.h sys/varargs.h +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:1546: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1559: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +if test "$cross_compiling" = yes; then + : +else + cat > conftest.$ac_ext < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int main () { int i; for (i = 0; i < 256; i++) +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); +exit (0); } + +EOF +if { (eval echo configure:1626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +echo "configure:1650: checking whether time.h and sys/time.h may both be included" >&5 +if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +int main() { +struct tm *tp; +; return 0; } +EOF +if { (eval echo configure:1664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_time=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_time=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_header_time" 1>&6 +if test $ac_cv_header_time = yes; then + cat >> confdefs.h <<\EOF +#define TIME_WITH_SYS_TIME 1 +EOF + +fi + +for ac_hdr in limits.h stddef.h string.h strings.h stdlib.h time.h fcntl.h unistd.h sys/file.h sys/time.h sys/resource.h sys/param.h sys/times.h varargs.h sys/varargs.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1548: checking for $ac_hdr" >&5 +echo "configure:1688: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1558: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + +# Use only if it exists, +# doesn't clash with , and declares intmax_t. +echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6 +echo "configure:1728: checking for inttypes.h" >&5 +if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +int main() { +intmax_t i = -1; +; return 0; } +EOF +if { (eval echo configure:1741: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cat >> confdefs.h <&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + gcc_cv_header_inttypes_h=no +fi +rm -f conftest* +fi + +echo "$ac_t""$gcc_cv_header_inttypes_h" 1>&6 + +for ac_func in strtoul +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1762: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in bsearch +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1817: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in strerror +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1872: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in putenv +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1927: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in popen +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1982: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in vprintf +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2037: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in bcopy +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2092: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in bzero +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2147: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in bcmp +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2202: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in index +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2257: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in rindex +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2312: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" + eval "ac_cv_func_$ac_func=yes" else - echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" + eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h < only if it exists, -# doesn't clash with , and declares intmax_t. -echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6 -echo "configure:1588: checking for inttypes.h" >&5 -if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then +for ac_func in kill +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2367: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < -#include +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + int main() { -intmax_t i = -1; + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + ; return 0; } EOF -if { (eval echo configure:1601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* - cat >> confdefs.h <&5 cat conftest.$ac_ext >&5 rm -rf conftest* - gcc_cv_header_inttypes_h=no + eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi -echo "$ac_t""$gcc_cv_header_inttypes_h" 1>&6 +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + echo $ac_n "checking whether malloc must be declared""... $ac_c" 1>&6 -echo "configure:1620: checking whether malloc must be declared" >&5 +echo "configure:2421: checking whether malloc must be declared" >&5 if eval "test \"`echo '$''{'gcc_cv_decl_needed_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -1638,11 +2439,17 @@ else #ifdef HAVE_UNISTD_H #include #endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif int main() { char *(*pfn) = (char *(*)) malloc ; return 0; } EOF -if { (eval echo configure:1646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_decl_needed_malloc=no else @@ -1664,12 +2471,12 @@ EOF fi echo $ac_n "checking whether realloc must be declared""... $ac_c" 1>&6 -echo "configure:1668: checking whether realloc must be declared" >&5 +echo "configure:2475: checking whether realloc must be declared" >&5 if eval "test \"`echo '$''{'gcc_cv_decl_needed_realloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -1686,11 +2493,17 @@ else #ifdef HAVE_UNISTD_H #include #endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif int main() { char *(*pfn) = (char *(*)) realloc ; return 0; } EOF -if { (eval echo configure:1694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2507: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_decl_needed_realloc=no else @@ -1712,12 +2525,12 @@ EOF fi echo $ac_n "checking whether calloc must be declared""... $ac_c" 1>&6 -echo "configure:1716: checking whether calloc must be declared" >&5 +echo "configure:2529: checking whether calloc must be declared" >&5 if eval "test \"`echo '$''{'gcc_cv_decl_needed_calloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -1734,11 +2547,17 @@ else #ifdef HAVE_UNISTD_H #include #endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif int main() { char *(*pfn) = (char *(*)) calloc ; return 0; } EOF -if { (eval echo configure:1742: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2561: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_decl_needed_calloc=no else @@ -1760,12 +2579,12 @@ EOF fi echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6 -echo "configure:1764: checking whether free must be declared" >&5 +echo "configure:2583: checking whether free must be declared" >&5 if eval "test \"`echo '$''{'gcc_cv_decl_needed_free'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -1782,11 +2601,17 @@ else #ifdef HAVE_UNISTD_H #include #endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif int main() { char *(*pfn) = (char *(*)) free ; return 0; } EOF -if { (eval echo configure:1790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gcc_cv_decl_needed_free=no else @@ -1807,100 +2632,206 @@ EOF fi - -echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:1813: checking for sys_siglist declaration in signal.h or unistd.h" >&5 -if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then +echo $ac_n "checking whether index must be declared""... $ac_c" 1>&6 +echo "configure:2637: checking whether index must be declared" >&5 +if eval "test \"`echo '$''{'gcc_cv_decl_needed_index'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < -#include -/* NetBSD declares sys_siglist in unistd.h. */ + +#include +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif +#ifdef HAVE_STDLIB_H +#include +#endif #ifdef HAVE_UNISTD_H #include #endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif int main() { -char *msg = *(sys_siglist + 1); +char *(*pfn) = (char *(*)) index ; return 0; } EOF -if { (eval echo configure:1830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - ac_cv_decl_sys_siglist=yes + gcc_cv_decl_needed_index=no else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - ac_cv_decl_sys_siglist=no + gcc_cv_decl_needed_index=yes fi rm -f conftest* fi -echo "$ac_t""$ac_cv_decl_sys_siglist" 1>&6 -if test $ac_cv_decl_sys_siglist = yes; then - cat >> confdefs.h <<\EOF -#define SYS_SIGLIST_DECLARED 1 +echo "$ac_t""$gcc_cv_decl_needed_index" 1>&6 +if test $gcc_cv_decl_needed_index = yes; then + gcc_tr_decl=NEED_DECLARATION_`echo index | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 -echo "configure:1854: checking for $ac_func" >&5 -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then +echo $ac_n "checking whether rindex must be declared""... $ac_c" 1>&6 +echo "configure:2691: checking whether rindex must be declared" >&5 +if eval "test \"`echo '$''{'gcc_cv_decl_needed_rindex'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func(); +#include +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif int main() { +char *(*pfn) = (char *(*)) rindex +; return 0; } +EOF +if { (eval echo configure:2723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + gcc_cv_decl_needed_rindex=no +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + gcc_cv_decl_needed_rindex=yes +fi +rm -f conftest* +fi -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me +echo "$ac_t""$gcc_cv_decl_needed_rindex" 1>&6 +if test $gcc_cv_decl_needed_rindex = yes; then + gcc_tr_decl=NEED_DECLARATION_`echo rindex | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +echo "configure:2745: checking whether getenv must be declared" >&5 +if eval "test \"`echo '$''{'gcc_cv_decl_needed_getenv'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#ifdef HAVE_STRING_H +#include #else -$ac_func(); +#ifdef HAVE_STRINGS_H +#include #endif - +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +#ifndef HAVE_RINDEX +#define rindex strrchr +#endif +#ifndef HAVE_INDEX +#define index strchr +#endif +int main() { +char *(*pfn) = (char *(*)) getenv ; return 0; } EOF -if { (eval echo configure:1882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - eval "ac_cv_func_$ac_func=yes" + gcc_cv_decl_needed_getenv=no else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_$ac_func=no" + gcc_cv_decl_needed_getenv=yes fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` +echo "$ac_t""$gcc_cv_decl_needed_getenv" 1>&6 +if test $gcc_cv_decl_needed_getenv = yes; then + gcc_tr_decl=NEED_DECLARATION_`echo getenv | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <&6 +echo "configure:2800: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 else - echo "$ac_t""no" 1>&6 + cat > conftest.$ac_ext < +#include +/* NetBSD declares sys_siglist in unistd.h. */ +#ifdef HAVE_UNISTD_H +#include +#endif +int main() { +char *msg = *(sys_siglist + 1); +; return 0; } +EOF +if { (eval echo configure:2817: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_decl_sys_siglist=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_decl_sys_siglist=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_decl_sys_siglist" 1>&6 +if test $ac_cv_decl_sys_siglist = yes; then + cat >> confdefs.h <<\EOF +#define SYS_SIGLIST_DECLARED 1 +EOF + fi -done # File extensions @@ -2150,9 +3081,8 @@ for machine in $build $host $target; do tmake_file="t-netbsd arm/t-netbsd" # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math - use_collect2=yes ;; - arm-*-linux-gnuaout*) # ARM Linux + arm-*-linux-gnuaout*) # ARM GNU/Linux cpu_type=arm xm_file=arm/xm-linux.h xmake_file=x-linux @@ -2524,7 +3454,6 @@ for machine in $build $host $target; do ;; i[3456]86-*-freebsdelf*) tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h" - xm_file=i386/xm-freebsd.h # On FreeBSD, the headers are already ok, except for math.h. fixincludes=fixinc.math tmake_file=i386/t-freebsd @@ -2534,14 +3463,12 @@ for machine in $build $host $target; do ;; i[3456]86-*-freebsd*) tm_file=i386/freebsd.h - xm_file=i386/xm-freebsd.h # On FreeBSD, the headers are already ok, except for math.h. fixincludes=fixinc.math tmake_file=i386/t-freebsd ;; i[3456]86-*-netbsd*) tm_file=i386/netbsd.h - xm_file=i386/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -2572,7 +3499,7 @@ for machine in $build $host $target; do fi install_headers_dir=install-headers-cpio ;; - i[3456]86-*-linux-gnuoldld*) # Intel 80386's running Linux + i[3456]86-*-linux-gnuoldld*) # Intel 80386's running GNU/Linux xm_file=i386/xm-linux.h # with a.out format using pre BFD linkers xmake_file=x-linux-aout tmake_file="t-linux-aout i386/t-crtstuff" @@ -2580,7 +3507,7 @@ for machine in $build $host $target; do fixincludes=Makefile.in #On Linux, the headers are ok already. gnu_ld=yes ;; - i[3456]86-*-linux-gnuaout*) # Intel 80386's running Linux + i[3456]86-*-linux-gnuaout*) # Intel 80386's running GNU/Linux xm_file=i386/xm-linux.h # with a.out format xmake_file=x-linux-aout tmake_file="t-linux-aout i386/t-crtstuff" @@ -2589,9 +3516,9 @@ for machine in $build $host $target; do gnu_ld=yes ;; i[3456]86-*-linux-gnulibc1) - xm_file=i386/xm-linux.h # Intel 80386's running Linux + xm_file=i386/xm-linux.h # Intel 80386's running GNU/Linux xmake_file=x-linux # with ELF format using the - tm_file=i386/linux.h # Linux C library 5 + tm_file=i386/linux.h # GNU/Linux C library 5 tmake_file="t-linux t-linux-gnulibc1 i386/t-crtstuff" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" fixincludes=Makefile.in #On Linux, the headers are ok already. @@ -2600,9 +3527,9 @@ for machine in $build $host $target; do thread_file='single' fi ;; - i[3456]86-*-linux-gnu*) # Intel 80386's running Linux + i[3456]86-*-linux-gnu*) # Intel 80386's running GNU/Linux xm_file=i386/xm-linux.h # with ELF format using glibc 2 - xmake_file=x-linux # aka Linux C library 6 + xmake_file=x-linux # aka GNU/Linux C library 6 tm_file=i386/linux.h tmake_file="t-linux i386/t-crtstuff" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" @@ -2816,7 +3743,7 @@ for machine in $build $host $target; do ;; i860-alliant-*) # Alliant FX/2800 tm_file="${tm_file} svr4.h i860/sysv4.h i860/fx2800.h" - xm_file="${xm_file} i860/xm-fx2800.h" + xm_file="${xm_file}" xmake_file=i860/x-fx2800 tmake_file=i860/t-fx2800 extra_parts="crtbegin.o crtend.o" @@ -3020,7 +3947,7 @@ for machine in $build $host $target; do ;; m68k-ncr-sysv*) # NCR Tower 32 SVR3 tm_file=m68k/tower-as.h - xm_file=m68k/xm-tower.h + xm_file="${xm_file} xm-svr3.h" xmake_file=m68k/x-tower extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h @@ -3168,7 +4095,6 @@ for machine in $build $host $target; do else tm_file=m68k/sun3.h fi - xm_file=m68k/xm-sun3.h use_collect2=yes extra_headers=math-68881.h ;; @@ -3201,7 +4127,6 @@ for machine in $build $host $target; do ;; m68k-*-netbsd*) tm_file=m68k/netbsd.h - xm_file=m68k/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -3219,32 +4144,32 @@ for machine in $build $host $target; do extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h ;; - m68k-*-linux-gnuaout*) # Motorola m68k's running Linux + m68k-*-linux-gnuaout*) # Motorola m68k's running GNU/Linux xm_file=m68k/xm-linux.h # with a.out format xmake_file=x-linux tm_file=m68k/linux-aout.h tmake_file="t-linux-aout m68k/t-linux-aout" - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h gnu_ld=yes ;; - m68k-*-linux-gnulibc1) # Motorola m68k's running Linux + m68k-*-linux-gnulibc1) # Motorola m68k's running GNU/Linux xm_file=m68k/xm-linux.h # with ELF format using the - xmake_file=x-linux # Linux C library 5 + xmake_file=x-linux # GNU/Linux C library 5 tm_file=m68k/linux.h tmake_file="t-linux t-linux-gnulibc1 m68k/t-linux" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h gnu_ld=yes ;; - m68k-*-linux-gnu*) # Motorola m68k's running Linux + m68k-*-linux-gnu*) # Motorola m68k's running GNU/Linux xm_file=m68k/xm-linux.h # with ELF format using glibc 2 - xmake_file=x-linux # aka the Linux C library 6. + xmake_file=x-linux # aka the GNU/Linux C library 6. tm_file=m68k/linux.h tmake_file="t-linux m68k/t-linux" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h gnu_ld=yes if [ x$enable_threads = xyes ]; then @@ -3500,7 +4425,6 @@ for machine in $build $host $target; do ;; mips-dec-netbsd*) # Decstation running NetBSD tm_file=mips/netbsd.h - xm_file=mips/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -3828,7 +4752,6 @@ for machine in $build $host $target; do ;; ns32k-pc532-netbsd*) tm_file=ns32k/netbsd.h - xm_file=ns32k/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -4058,7 +4981,6 @@ for machine in $build $host $target; do ;; sparc-*-netbsd*) tm_file=sparc/netbsd.h - xm_file=sparc/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -4073,14 +4995,14 @@ for machine in $build $host $target; do #float_format=i128 float_format=i64 ;; - sparc-*-linux-gnuaout*) # Sparc's running Linux, a.out + sparc-*-linux-gnuaout*) # Sparc's running GNU/Linux, a.out xm_file="sparc/xm-sparc.h sparc/xm-linux.h" tm_file=sparc/linux-aout.h xmake_file=x-linux fixincludes=Makefile.in #On Linux, the headers are ok already. gnu_ld=yes ;; - sparc-*-linux-gnulibc1*) # Sparc's running Linux, libc5 + sparc-*-linux-gnulibc1*) # Sparc's running GNU/Linux, libc5 xm_file="sparc/xm-sparc.h sparc/xm-linux.h" xmake_file=x-linux tm_file=sparc/linux.h @@ -4089,7 +5011,7 @@ for machine in $build $host $target; do fixincludes=Makefile.in #On Linux, the headers are ok already. gnu_ld=yes ;; - sparc-*-linux-gnu*) # Sparc's running Linux, libc6 + sparc-*-linux-gnu*) # Sparc's running GNU/Linux, libc6 xm_file="sparc/xm-sparc.h sparc/xm-linux.h" xmake_file=x-linux tm_file=sparc/linux.h @@ -4180,12 +5102,12 @@ for machine in $build $host $target; do tm_file=sparc/sp64-elf.h extra_parts="crtbegin.o crtend.o" ;; - sparc64-*-linux*) # 64-bit Sparc's running Linux + sparc64-*-linux*) # 64-bit Sparc's running GNU/Linux tmake_file=sparc/t-sp64 xm_file="sparc/xm-sp64.h sparc/xm-linux.h" tm_file=sparc/linux64.h xmake_file=x-linux - fixincludes=Makefile.in # On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. gnu_ld=yes ;; # This hasn't been upgraded to GCC 2. @@ -4215,12 +5137,11 @@ for machine in $build $host $target; do ;; vax-*-sysv*) # vaxen running system V tm_file="${tm_file} vax/vaxv.h" - xm_file="${tm_file} vax/xm-vaxv.h" + xm_file="${xm_file} vax/xm-vaxv.h" float_format=vax ;; vax-*-netbsd*) tm_file="${tm_file} netbsd.h vax/netbsd.h" - xm_file="${xm_file} xm-netbsd.h" # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -4319,6 +5240,37 @@ for machine in $build $host $target; do fi fi ;; + arm*-*-*) + case "x$with_cpu" in + x) + # The most generic + target_cpu_default2="TARGET_CPU_generic" + ;; + + # Distinguish cores, and major variants + # arm7m doesn't exist, but D & I don't affect code + xarm23678 | xarm250 | xarm67010 \ + | xarm7m | xarm7dm | xarm7dmi | xarm7tdmi \ + | xarm7100 | xarm7500 | xarm7500fe | xarm810 \ + | xstrongarm | xstrongarm110) + target_cpu_default2="TARGET_CPU_$with_cpu" + ;; + + xyes | xno) + echo "--with-cpu must be passed a value" 1>&2 + exit 1 + ;; + + *) + if [ x$pass2done = xyes ] + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi + ;; + esac + ;; + mips*-*-ecoff* | mips*-*-elf*) if [ x$gas = xyes ] then @@ -4354,8 +5306,11 @@ for machine in $build $host $target; do ;; *) - echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 - exit 1 + if [ x$pass2done = xyes ] + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi ;; esac ;; @@ -4368,8 +5323,11 @@ for machine in $build $host $target; do target_cpu_default2="TARGET_CPU_$with_cpu" ;; *) - echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 - exit 1 + if [ x$pass2done = xyes ] + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi ;; esac ;; @@ -4946,7 +5904,7 @@ EOF # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | - case `(ac_space=' '; set) 2>&1` in + case `(ac_space=' '; set) 2>&1 | grep ac_space` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). @@ -5013,7 +5971,7 @@ do echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.12" + echo "$CONFIG_STATUS generated by autoconf version 2.12.1" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; @@ -5032,6 +5990,7 @@ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF $ac_vpsub $extrasub +s%@SHELL@%$SHELL%g s%@CFLAGS@%$CFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g diff --git a/gcc/configure.in b/gcc/configure.in index 73636b7dee6..90875936339 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -143,7 +143,9 @@ EGCS_PROG_INSTALL AC_PROG_CC AC_PROG_MAKE_SET -AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h unistd.h varargs.h sys/varargs.h) +AC_HEADER_STDC +AC_HEADER_TIME +AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h fcntl.h unistd.h sys/file.h sys/time.h sys/resource.h sys/param.h sys/times.h varargs.h sys/varargs.h) # Use only if it exists, # doesn't clash with , and declares intmax_t. @@ -158,15 +160,29 @@ AC_CACHE_VAL(gcc_cv_header_inttypes_h, gcc_cv_header_inttypes_h=no)]) AC_MSG_RESULT($gcc_cv_header_inttypes_h) +AC_CHECK_FUNCS(strtoul) +AC_CHECK_FUNCS(bsearch) +AC_CHECK_FUNCS(strerror) +AC_CHECK_FUNCS(putenv) +AC_CHECK_FUNCS(popen) +AC_CHECK_FUNCS(vprintf) +AC_CHECK_FUNCS(bcopy) +AC_CHECK_FUNCS(bzero) +AC_CHECK_FUNCS(bcmp) +AC_CHECK_FUNCS(index) +AC_CHECK_FUNCS(rindex) +AC_CHECK_FUNCS(kill) + GCC_NEED_DECLARATION(malloc) GCC_NEED_DECLARATION(realloc) GCC_NEED_DECLARATION(calloc) GCC_NEED_DECLARATION(free) +GCC_NEED_DECLARATION(index) +GCC_NEED_DECLARATION(rindex) +GCC_NEED_DECLARATION(getenv) AC_DECL_SYS_SIGLIST -AC_CHECK_FUNCS(strerror strtoul bsearch) - # File extensions manext='.1' objext='.o' @@ -414,9 +430,8 @@ for machine in $build $host $target; do tmake_file="t-netbsd arm/t-netbsd" # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math - use_collect2=yes ;; - arm-*-linux-gnuaout*) # ARM Linux + arm-*-linux-gnuaout*) # ARM GNU/Linux cpu_type=arm xm_file=arm/xm-linux.h xmake_file=x-linux @@ -788,7 +803,6 @@ for machine in $build $host $target; do ;; i[[3456]]86-*-freebsdelf*) tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h" - xm_file=i386/xm-freebsd.h # On FreeBSD, the headers are already ok, except for math.h. fixincludes=fixinc.math tmake_file=i386/t-freebsd @@ -798,14 +812,12 @@ for machine in $build $host $target; do ;; i[[3456]]86-*-freebsd*) tm_file=i386/freebsd.h - xm_file=i386/xm-freebsd.h # On FreeBSD, the headers are already ok, except for math.h. fixincludes=fixinc.math tmake_file=i386/t-freebsd ;; i[[3456]]86-*-netbsd*) tm_file=i386/netbsd.h - xm_file=i386/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -836,7 +848,7 @@ for machine in $build $host $target; do fi install_headers_dir=install-headers-cpio ;; - i[[3456]]86-*-linux-gnuoldld*) # Intel 80386's running Linux + i[[3456]]86-*-linux-gnuoldld*) # Intel 80386's running GNU/Linux xm_file=i386/xm-linux.h # with a.out format using pre BFD linkers xmake_file=x-linux-aout tmake_file="t-linux-aout i386/t-crtstuff" @@ -844,7 +856,7 @@ for machine in $build $host $target; do fixincludes=Makefile.in #On Linux, the headers are ok already. gnu_ld=yes ;; - i[[3456]]86-*-linux-gnuaout*) # Intel 80386's running Linux + i[[3456]]86-*-linux-gnuaout*) # Intel 80386's running GNU/Linux xm_file=i386/xm-linux.h # with a.out format xmake_file=x-linux-aout tmake_file="t-linux-aout i386/t-crtstuff" @@ -853,9 +865,9 @@ for machine in $build $host $target; do gnu_ld=yes ;; i[[3456]]86-*-linux-gnulibc1) - xm_file=i386/xm-linux.h # Intel 80386's running Linux + xm_file=i386/xm-linux.h # Intel 80386's running GNU/Linux xmake_file=x-linux # with ELF format using the - tm_file=i386/linux.h # Linux C library 5 + tm_file=i386/linux.h # GNU/Linux C library 5 tmake_file="t-linux t-linux-gnulibc1 i386/t-crtstuff" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" fixincludes=Makefile.in #On Linux, the headers are ok already. @@ -864,9 +876,9 @@ for machine in $build $host $target; do thread_file='single' fi ;; - i[[3456]]86-*-linux-gnu*) # Intel 80386's running Linux + i[[3456]]86-*-linux-gnu*) # Intel 80386's running GNU/Linux xm_file=i386/xm-linux.h # with ELF format using glibc 2 - xmake_file=x-linux # aka Linux C library 6 + xmake_file=x-linux # aka GNU/Linux C library 6 tm_file=i386/linux.h tmake_file="t-linux i386/t-crtstuff" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" @@ -1080,7 +1092,7 @@ for machine in $build $host $target; do ;; i860-alliant-*) # Alliant FX/2800 tm_file="${tm_file} svr4.h i860/sysv4.h i860/fx2800.h" - xm_file="${xm_file} i860/xm-fx2800.h" + xm_file="${xm_file}" xmake_file=i860/x-fx2800 tmake_file=i860/t-fx2800 extra_parts="crtbegin.o crtend.o" @@ -1284,7 +1296,7 @@ for machine in $build $host $target; do ;; m68k-ncr-sysv*) # NCR Tower 32 SVR3 tm_file=m68k/tower-as.h - xm_file=m68k/xm-tower.h + xm_file="${xm_file} xm-svr3.h" xmake_file=m68k/x-tower extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h @@ -1432,7 +1444,6 @@ for machine in $build $host $target; do else tm_file=m68k/sun3.h fi - xm_file=m68k/xm-sun3.h use_collect2=yes extra_headers=math-68881.h ;; @@ -1465,7 +1476,6 @@ for machine in $build $host $target; do ;; m68k-*-netbsd*) tm_file=m68k/netbsd.h - xm_file=m68k/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -1483,32 +1493,32 @@ for machine in $build $host $target; do extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h ;; - m68k-*-linux-gnuaout*) # Motorola m68k's running Linux + m68k-*-linux-gnuaout*) # Motorola m68k's running GNU/Linux xm_file=m68k/xm-linux.h # with a.out format xmake_file=x-linux tm_file=m68k/linux-aout.h tmake_file="t-linux-aout m68k/t-linux-aout" - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h gnu_ld=yes ;; - m68k-*-linux-gnulibc1) # Motorola m68k's running Linux + m68k-*-linux-gnulibc1) # Motorola m68k's running GNU/Linux xm_file=m68k/xm-linux.h # with ELF format using the - xmake_file=x-linux # Linux C library 5 + xmake_file=x-linux # GNU/Linux C library 5 tm_file=m68k/linux.h tmake_file="t-linux t-linux-gnulibc1 m68k/t-linux" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h gnu_ld=yes ;; - m68k-*-linux-gnu*) # Motorola m68k's running Linux + m68k-*-linux-gnu*) # Motorola m68k's running GNU/Linux xm_file=m68k/xm-linux.h # with ELF format using glibc 2 - xmake_file=x-linux # aka the Linux C library 6. + xmake_file=x-linux # aka the GNU/Linux C library 6. tm_file=m68k/linux.h tmake_file="t-linux m68k/t-linux" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h gnu_ld=yes if [[ x$enable_threads = xyes ]]; then @@ -1764,7 +1774,6 @@ for machine in $build $host $target; do ;; mips-dec-netbsd*) # Decstation running NetBSD tm_file=mips/netbsd.h - xm_file=mips/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -2092,7 +2101,6 @@ for machine in $build $host $target; do ;; ns32k-pc532-netbsd*) tm_file=ns32k/netbsd.h - xm_file=ns32k/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -2322,7 +2330,6 @@ for machine in $build $host $target; do ;; sparc-*-netbsd*) tm_file=sparc/netbsd.h - xm_file=sparc/xm-netbsd.h # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -2337,14 +2344,14 @@ for machine in $build $host $target; do #float_format=i128 float_format=i64 ;; - sparc-*-linux-gnuaout*) # Sparc's running Linux, a.out + sparc-*-linux-gnuaout*) # Sparc's running GNU/Linux, a.out xm_file="sparc/xm-sparc.h sparc/xm-linux.h" tm_file=sparc/linux-aout.h xmake_file=x-linux fixincludes=Makefile.in #On Linux, the headers are ok already. gnu_ld=yes ;; - sparc-*-linux-gnulibc1*) # Sparc's running Linux, libc5 + sparc-*-linux-gnulibc1*) # Sparc's running GNU/Linux, libc5 xm_file="sparc/xm-sparc.h sparc/xm-linux.h" xmake_file=x-linux tm_file=sparc/linux.h @@ -2353,7 +2360,7 @@ for machine in $build $host $target; do fixincludes=Makefile.in #On Linux, the headers are ok already. gnu_ld=yes ;; - sparc-*-linux-gnu*) # Sparc's running Linux, libc6 + sparc-*-linux-gnu*) # Sparc's running GNU/Linux, libc6 xm_file="sparc/xm-sparc.h sparc/xm-linux.h" xmake_file=x-linux tm_file=sparc/linux.h @@ -2444,12 +2451,12 @@ for machine in $build $host $target; do tm_file=sparc/sp64-elf.h extra_parts="crtbegin.o crtend.o" ;; - sparc64-*-linux*) # 64-bit Sparc's running Linux + sparc64-*-linux*) # 64-bit Sparc's running GNU/Linux tmake_file=sparc/t-sp64 xm_file="sparc/xm-sp64.h sparc/xm-linux.h" tm_file=sparc/linux64.h xmake_file=x-linux - fixincludes=Makefile.in # On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. gnu_ld=yes ;; # This hasn't been upgraded to GCC 2. @@ -2479,12 +2486,11 @@ for machine in $build $host $target; do ;; vax-*-sysv*) # vaxen running system V tm_file="${tm_file} vax/vaxv.h" - xm_file="${tm_file} vax/xm-vaxv.h" + xm_file="${xm_file} vax/xm-vaxv.h" float_format=vax ;; vax-*-netbsd*) tm_file="${tm_file} netbsd.h vax/netbsd.h" - xm_file="${xm_file} xm-netbsd.h" # On NetBSD, the headers are already okay, except for math.h. fixincludes=fixinc.math tmake_file=t-netbsd @@ -2583,6 +2589,37 @@ for machine in $build $host $target; do fi fi ;; + arm*-*-*) + case "x$with_cpu" in + x) + # The most generic + target_cpu_default2="TARGET_CPU_generic" + ;; + + # Distinguish cores, and major variants + # arm7m doesn't exist, but D & I don't affect code + xarm[23678] | xarm250 | xarm[67][01]0 \ + | xarm7m | xarm7dm | xarm7dmi | xarm7tdmi \ + | xarm7100 | xarm7500 | xarm7500fe | xarm810 \ + | xstrongarm | xstrongarm110) + target_cpu_default2="TARGET_CPU_$with_cpu" + ;; + + xyes | xno) + echo "--with-cpu must be passed a value" 1>&2 + exit 1 + ;; + + *) + if [[ x$pass2done = xyes ]] + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi + ;; + esac + ;; + mips*-*-ecoff* | mips*-*-elf*) if [[ x$gas = xyes ]] then @@ -2618,8 +2655,11 @@ for machine in $build $host $target; do ;; *) - echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 - exit 1 + if [[ x$pass2done = xyes ]] + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi ;; esac ;; @@ -2632,8 +2672,11 @@ for machine in $build $host $target; do target_cpu_default2="TARGET_CPU_$with_cpu" ;; *) - echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 - exit 1 + if [[ x$pass2done = xyes ]] + then + echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2 + exit 1 + fi ;; esac ;; diff --git a/gcc/configure.lang b/gcc/configure.lang index 5ac35a03571..6932f8fa4f6 100644 --- a/gcc/configure.lang +++ b/gcc/configure.lang @@ -1,6 +1,6 @@ # configure.lang for GNU CC # This script is run by configure for configuration of language -# subdirectories which conform to the old GCC configure mechansim +# subdirectories which conform to the old GCC configure mechanism # for such subdirectories. # Copyright (C) 1997 Free Software Foundation, Inc. diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 12017a78aa6..5c988a22da4 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -37,6 +37,13 @@ Wed Dec 3 11:44:52 1997 Jason Merrill * tree.c, cp-tree.h (get_target_expr): New fn. +Wed Dec 3 08:47:27 1997 Paul Eggert + + * pt.c (check_explicit_specialization): Fix misspelling in + diagnostic: `preceeded'. + * typeck.c (get_delta_difference): Fix misspelling in diagnostic: + `conversiona'. + 1997-12-02 Mark Mitchell * pt.c (determine_explicit_specialization): Avoid an internal @@ -63,6 +70,11 @@ Fri Nov 28 01:58:14 1997 Jason Merrill * pt.c (check_explicit_specialization): Complain about using a template-id for a non-specialization. +Fri Nov 28 12:35:19 1997 Scott Christley + + * repo.c: Prototype rindex only if needed. + * xref.c: Likewise. + Fri Nov 28 01:56:35 1997 Bruno Haible * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. @@ -101,6 +113,11 @@ Wed Nov 26 20:28:49 1997 Jason Merrill * except.c (expand_throw): Call mark_used on the destructor. +Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com) + + * lex.c (lang_init): Enable flag_exceptions by default if no + command line switch was specified. + 1997-11-26 Mark Mitchell * pt.c (unify): Handle `void' template parameters in diff --git a/gcc/cp/ChangeLog.egcs b/gcc/cp/ChangeLog.egcs index 3185f28c6b4..ddefd5c52fe 100644 --- a/gcc/cp/ChangeLog.egcs +++ b/gcc/cp/ChangeLog.egcs @@ -1,8 +1,3 @@ -Wed Oct 22 18:56:31 1997 Jeffrey A Law (law@cygnus.com) - - * lex.c (lang_init): Enable flag_exceptions by default if no - command line switch was specified. - Wed Sep 10 16:39:26 1997 Jim Wilson * Make-lang.in (LN, LN_S): New macros, use where appropriate. diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index 362398ac3aa..3580a2bf876 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -92,8 +92,8 @@ g++.o: $(CONFIG_H) multilib.h config.status $(lang_specs_files) g++.c # Create the compiler driver for g++. g++$(exeext): g++.o g++spec.o version.o choose-temp.o pexecute.o prefix.o $(LIBDEPS) $(EXTRA_GCC_OBJS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ g++.o g++spec.o prefix.o version.o \ - choose-temp.o pexecute.o $(EXTRA_GCC_OBJS) $(LIBS) + $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ g++.o g++spec.o prefix.o \ + version.o choose-temp.o pexecute.o $(EXTRA_GCC_OBJS) $(LIBS) # Create a version of the g++ driver which calls the cross-compiler. g++-cross$(exeext): g++$(exeext) diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 9eb619094f1..b26979a20e7 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -1,5 +1,5 @@ /* Functions related to building classes and their related objects. - Copyright (C) 1987, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. + Copyright (C) 1987, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. @@ -72,7 +72,7 @@ struct class_level int unused; }; -/* The currect_class_ptr is the pointer to the current class. +/* The current_class_ptr is the pointer to the current class. current_class_ref is the actual current class. */ tree current_class_ptr, current_class_ref; diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 23307e9a906..4bcb79c6420 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -1,5 +1,5 @@ /* Process declarations and variables for C compiler. - Copyright (C) 1988, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. + Copyright (C) 1988, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. @@ -2307,7 +2307,7 @@ decls_match (newdecl, olddecl) tree oldargs = DECL_TEMPLATE_PARMS (olddecl); int i; - /* Run through all the levels of template parmaters, checking + /* Run through all the levels of template parameters, checking that they match. */ while (newargs && oldargs) { @@ -6422,7 +6422,7 @@ cp_finish_decl (decl, init, asmspec_tree, need_pop, flags) /* If we have installed this as the canonical typedef for this type, and that type has not been defined yet, delay emitting - the debug informaion for it, as we will emit it later. */ + the debug information for it, as we will emit it later. */ if (TYPE_MAIN_DECL (TREE_TYPE (decl)) == decl && TYPE_SIZE (TREE_TYPE (decl)) == NULL_TREE) TYPE_DECL_SUPPRESS_DEBUG (decl) = 1; @@ -7859,7 +7859,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist) name = IDENTIFIER_POINTER (dname); } if (! IDENTIFIER_OPNAME_P (dname) - /* Linux headers use '__op'. Arrgh. */ + /* GNU/Linux headers use '__op'. Arrgh. */ || IDENTIFIER_TYPENAME_P (dname) && ! TREE_TYPE (dname)) name = IDENTIFIER_POINTER (dname); else @@ -12144,7 +12144,7 @@ finish_function (lineno, call_poplevel, nested) poplevel (2, 0, 0); /* XXX change to 1 */ /* Back to the top of destructor. */ - /* Dont execute destructor code if `this' is NULL. */ + /* Don't execute destructor code if `this' is NULL. */ start_sequence (); diff --git a/gcc/cp/except.c b/gcc/cp/except.c index 194c17d5e7f..cb170210922 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -1,5 +1,5 @@ /* Handle exceptional things in C++. - Copyright (C) 1989, 92-95, 1996 Free Software Foundation, Inc. + Copyright (C) 1989, 92-96, 1997 Free Software Foundation, Inc. Contributed by Michael Tiemann Rewritten by Mike Stump , based upon an initial re-implementation courtesy Tad Hunt. @@ -1109,7 +1109,7 @@ start_anon_func () interface_unknown = 1; params = void_list_node; - /* tcf stands for throw clean funciton. */ + /* tcf stands for throw clean function. */ sprintf (name, "__tcf_%d", counter++); t = make_call_declarator (get_identifier (name), params, NULL_TREE, NULL_TREE); diff --git a/gcc/cp/g++FAQ.texi b/gcc/cp/g++FAQ.texi index 09c812bc585..f0064f346b1 100644 --- a/gcc/cp/g++FAQ.texi +++ b/gcc/cp/g++FAQ.texi @@ -401,7 +401,7 @@ places Eberhard Mattes did the EMX port. His address is mattes@@azu.informatik.uni-stuttgart.de. -Read the FAQ file included with the distribution before harrassing the author. +Read the FAQ file included with the distribution before harassing the author. @cindex Apple support @cindex Macintosh support @@ -1901,7 +1901,7 @@ still be true when 2.8.0 is released. As of version 2.7.0, g++ has exception support on most but not all platforms (no support on MIPS-based platforms yet), but -it doesn't work right if optimizaton is enabled, which means the +it doesn't work right if optimization is enabled, which means the exception implementation is still not really ready for production use. diff --git a/gcc/cp/gxxint.texi b/gcc/cp/gxxint.texi index 975512ca557..5f7346561c5 100644 --- a/gcc/cp/gxxint.texi +++ b/gcc/cp/gxxint.texi @@ -1425,7 +1425,7 @@ Major disadvantages when enabling exceptions are: @itemize @bullet @item Code that uses caller saved registers, can't, when flow can be -transfered into that code from an exception handler. In high performace +transferred into that code from an exception handler. In high performance code this should not usually be true, so the effects should be minimal. @end itemize @@ -1478,7 +1478,7 @@ This can be passed in many ways, currently a tree is used. Another possibility would be insns for the handler, or a label that denotes a handler. I have a feeling insns might be the the best way to pass it. Semantics are, if an exception is thrown inside the region, control is -transfered unconditionally to the handler. If control passes through +transferred unconditionally to the handler. If control passes through the handler, then the backend is to rethrow the exception, in the context of the end of the original region. The handler is protected by the conventional mechanisms; it is the frontend's responsibility to diff --git a/gcc/cp/init.c b/gcc/cp/init.c index b275a3a7c12..2ad20ffb9b3 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -1,5 +1,5 @@ /* Handle initialization things in C++. - Copyright (C) 1987, 89, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. + Copyright (C) 1987, 89, 92-96, 1997 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index d45fe673bc9..f634b213505 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -1,5 +1,5 @@ /* Separate lexical analyzer for GNU C++. - Copyright (C) 1987, 89, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. + Copyright (C) 1987, 89, 92-96, 1997 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. diff --git a/gcc/cp/parse.c b/gcc/cp/parse.c index 96b0fe9fe31..35b39ac9eda 100644 --- a/gcc/cp/parse.c +++ b/gcc/cp/parse.c @@ -194,11 +194,11 @@ extern tree combine_strings PROTO((tree)); -#define YYFINAL 1529 +#define YYFINAL 1531 #define YYFLAG -32768 #define YYNTBASE 114 -#define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 376) +#define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 377) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -264,140 +264,141 @@ static const short yyprhs[] = { 0, 691, 694, 698, 703, 705, 708, 714, 716, 720, 724, 728, 732, 736, 740, 744, 748, 752, 756, 760, 764, 768, 772, 776, 780, 784, 788, 792, 798, 802, 806, - 808, 811, 815, 817, 819, 821, 823, 825, 830, 834, - 839, 843, 849, 855, 861, 863, 865, 867, 869, 872, - 875, 879, 884, 889, 891, 893, 895, 899, 901, 903, - 905, 907, 911, 915, 919, 920, 925, 930, 933, 938, - 941, 944, 946, 951, 953, 961, 969, 977, 985, 990, - 995, 998, 1001, 1003, 1008, 1011, 1014, 1020, 1024, 1027, - 1030, 1036, 1040, 1046, 1050, 1055, 1062, 1065, 1067, 1070, - 1072, 1075, 1077, 1079, 1081, 1084, 1085, 1088, 1091, 1095, - 1099, 1103, 1106, 1109, 1112, 1114, 1116, 1118, 1121, 1124, - 1127, 1130, 1132, 1134, 1136, 1138, 1141, 1144, 1148, 1152, - 1156, 1161, 1163, 1166, 1169, 1172, 1174, 1176, 1178, 1181, - 1184, 1187, 1189, 1191, 1194, 1197, 1201, 1203, 1206, 1208, - 1210, 1212, 1217, 1222, 1227, 1232, 1234, 1236, 1238, 1240, - 1244, 1246, 1250, 1252, 1256, 1257, 1262, 1263, 1270, 1274, - 1275, 1282, 1286, 1287, 1294, 1298, 1299, 1306, 1310, 1311, - 1313, 1315, 1318, 1325, 1327, 1331, 1332, 1334, 1339, 1346, - 1351, 1353, 1355, 1357, 1359, 1361, 1365, 1366, 1369, 1371, - 1374, 1378, 1383, 1385, 1387, 1391, 1396, 1403, 1407, 1413, - 1415, 1420, 1424, 1428, 1429, 1433, 1437, 1441, 1442, 1445, - 1448, 1449, 1457, 1462, 1463, 1470, 1474, 1477, 1480, 1483, - 1484, 1485, 1486, 1497, 1499, 1500, 1502, 1503, 1505, 1507, - 1510, 1513, 1516, 1519, 1522, 1525, 1529, 1534, 1538, 1541, - 1545, 1546, 1548, 1552, 1555, 1558, 1560, 1562, 1563, 1566, - 1570, 1572, 1577, 1579, 1583, 1585, 1587, 1592, 1597, 1600, - 1603, 1607, 1611, 1613, 1614, 1616, 1619, 1624, 1628, 1630, - 1633, 1636, 1639, 1642, 1645, 1648, 1651, 1653, 1656, 1659, - 1662, 1667, 1672, 1675, 1677, 1683, 1688, 1690, 1693, 1694, - 1696, 1700, 1701, 1703, 1707, 1709, 1711, 1713, 1715, 1720, - 1725, 1730, 1735, 1740, 1744, 1749, 1754, 1759, 1764, 1768, - 1770, 1774, 1776, 1780, 1783, 1785, 1792, 1793, 1796, 1798, - 1801, 1802, 1805, 1810, 1815, 1818, 1823, 1827, 1831, 1834, - 1837, 1841, 1843, 1845, 1848, 1850, 1852, 1855, 1858, 1863, - 1868, 1872, 1876, 1879, 1881, 1885, 1889, 1892, 1895, 1899, - 1901, 1905, 1909, 1912, 1915, 1919, 1921, 1926, 1930, 1935, - 1939, 1941, 1944, 1947, 1950, 1953, 1956, 1958, 1961, 1966, - 1971, 1974, 1976, 1978, 1980, 1982, 1985, 1988, 1991, 1994, - 1997, 1999, 2002, 2005, 2007, 2010, 2013, 2016, 2019, 2022, - 2025, 2028, 2031, 2033, 2036, 2039, 2043, 2045, 2049, 2052, - 2056, 2059, 2062, 2066, 2068, 2072, 2077, 2081, 2084, 2087, - 2089, 2093, 2096, 2099, 2101, 2104, 2108, 2110, 2114, 2116, - 2123, 2128, 2133, 2137, 2143, 2147, 2151, 2155, 2158, 2160, - 2162, 2165, 2168, 2171, 2172, 2173, 2174, 2176, 2178, 2181, - 2185, 2187, 2190, 2191, 2197, 2198, 2199, 2206, 2208, 2209, - 2214, 2216, 2218, 2220, 2223, 2224, 2225, 2232, 2234, 2235, - 2236, 2244, 2245, 2246, 2254, 2255, 2256, 2257, 2258, 2273, - 2274, 2275, 2285, 2286, 2292, 2293, 2301, 2302, 2307, 2310, - 2313, 2316, 2320, 2327, 2336, 2347, 2360, 2365, 2369, 2372, - 2375, 2377, 2379, 2380, 2381, 2388, 2389, 2390, 2396, 2398, - 2401, 2402, 2403, 2404, 2413, 2415, 2417, 2421, 2425, 2428, - 2431, 2434, 2437, 2440, 2442, 2445, 2446, 2448, 2449, 2451, - 2453, 2454, 2456, 2458, 2462, 2467, 2469, 2473, 2474, 2476, - 2478, 2480, 2483, 2486, 2489, 2491, 2493, 2496, 2499, 2502, - 2505, 2506, 2510, 2512, 2514, 2516, 2519, 2522, 2525, 2530, - 2533, 2536, 2539, 2542, 2545, 2548, 2550, 2553, 2555, 2558, - 2560, 2562, 2563, 2564, 2566, 2567, 2572, 2575, 2577, 2579, - 2583, 2584, 2588, 2592, 2596, 2598, 2601, 2604, 2607, 2610, - 2613, 2616, 2619, 2622, 2625, 2628, 2631, 2634, 2637, 2640, - 2643, 2646, 2649, 2652, 2655, 2658, 2661, 2664, 2667, 2671, - 2674, 2677, 2680, 2683, 2687, 2690, 2693, 2698, 2703, 2707 + 808, 811, 815, 817, 819, 821, 823, 825, 826, 832, + 837, 843, 848, 854, 860, 866, 868, 870, 872, 874, + 877, 880, 884, 889, 894, 896, 898, 900, 904, 906, + 908, 910, 912, 916, 920, 924, 925, 930, 935, 938, + 943, 946, 949, 951, 956, 958, 966, 974, 982, 990, + 995, 1000, 1003, 1006, 1008, 1013, 1016, 1019, 1025, 1029, + 1032, 1035, 1041, 1045, 1051, 1055, 1060, 1067, 1070, 1072, + 1075, 1077, 1080, 1082, 1084, 1086, 1089, 1090, 1093, 1096, + 1100, 1104, 1108, 1111, 1114, 1117, 1119, 1121, 1123, 1126, + 1129, 1132, 1135, 1137, 1139, 1141, 1143, 1146, 1149, 1153, + 1157, 1161, 1166, 1168, 1171, 1174, 1177, 1179, 1181, 1183, + 1186, 1189, 1192, 1194, 1196, 1199, 1202, 1206, 1208, 1211, + 1213, 1215, 1217, 1222, 1227, 1232, 1237, 1239, 1241, 1243, + 1245, 1249, 1251, 1255, 1257, 1261, 1262, 1267, 1268, 1275, + 1279, 1280, 1287, 1291, 1292, 1299, 1303, 1304, 1311, 1315, + 1316, 1318, 1320, 1323, 1330, 1332, 1336, 1337, 1339, 1344, + 1351, 1356, 1358, 1360, 1362, 1364, 1366, 1370, 1371, 1374, + 1376, 1379, 1383, 1388, 1390, 1392, 1396, 1401, 1408, 1412, + 1418, 1420, 1425, 1429, 1433, 1434, 1438, 1442, 1446, 1447, + 1450, 1453, 1454, 1462, 1467, 1468, 1475, 1479, 1482, 1485, + 1488, 1489, 1490, 1491, 1502, 1504, 1505, 1507, 1508, 1510, + 1512, 1515, 1518, 1521, 1524, 1527, 1530, 1534, 1539, 1543, + 1546, 1550, 1551, 1553, 1557, 1560, 1563, 1565, 1567, 1568, + 1571, 1575, 1577, 1582, 1584, 1588, 1590, 1592, 1597, 1602, + 1605, 1608, 1612, 1616, 1618, 1619, 1621, 1624, 1629, 1633, + 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1658, 1661, + 1664, 1667, 1672, 1677, 1680, 1682, 1688, 1693, 1695, 1698, + 1699, 1701, 1705, 1706, 1708, 1712, 1714, 1716, 1718, 1720, + 1725, 1730, 1735, 1740, 1745, 1749, 1754, 1759, 1764, 1769, + 1773, 1775, 1779, 1781, 1785, 1788, 1790, 1797, 1798, 1801, + 1803, 1806, 1807, 1810, 1815, 1820, 1823, 1828, 1832, 1836, + 1839, 1842, 1846, 1848, 1850, 1853, 1855, 1857, 1860, 1863, + 1868, 1873, 1877, 1881, 1884, 1886, 1890, 1894, 1897, 1900, + 1904, 1906, 1910, 1914, 1917, 1920, 1924, 1926, 1931, 1935, + 1940, 1944, 1946, 1949, 1952, 1955, 1958, 1961, 1963, 1966, + 1971, 1976, 1979, 1981, 1983, 1985, 1987, 1990, 1993, 1996, + 1999, 2002, 2004, 2007, 2010, 2012, 2015, 2018, 2021, 2024, + 2027, 2030, 2033, 2036, 2038, 2041, 2044, 2048, 2050, 2054, + 2057, 2061, 2064, 2067, 2071, 2073, 2077, 2082, 2086, 2089, + 2092, 2094, 2098, 2101, 2104, 2106, 2109, 2113, 2115, 2119, + 2121, 2128, 2133, 2138, 2142, 2148, 2152, 2156, 2160, 2163, + 2165, 2167, 2170, 2173, 2176, 2177, 2178, 2179, 2181, 2183, + 2186, 2190, 2192, 2195, 2196, 2202, 2203, 2204, 2211, 2213, + 2214, 2219, 2221, 2223, 2225, 2228, 2229, 2230, 2237, 2239, + 2240, 2241, 2249, 2250, 2251, 2259, 2260, 2261, 2262, 2263, + 2278, 2279, 2280, 2290, 2291, 2297, 2298, 2306, 2307, 2312, + 2315, 2318, 2321, 2325, 2332, 2341, 2352, 2365, 2370, 2374, + 2377, 2380, 2382, 2384, 2385, 2386, 2393, 2394, 2395, 2401, + 2403, 2406, 2407, 2408, 2409, 2418, 2420, 2422, 2426, 2430, + 2433, 2436, 2439, 2442, 2445, 2447, 2450, 2451, 2453, 2454, + 2456, 2458, 2459, 2461, 2463, 2467, 2472, 2474, 2478, 2479, + 2481, 2483, 2485, 2488, 2491, 2494, 2496, 2498, 2501, 2504, + 2507, 2510, 2511, 2515, 2517, 2519, 2521, 2524, 2527, 2530, + 2535, 2538, 2541, 2544, 2547, 2550, 2553, 2555, 2558, 2560, + 2563, 2565, 2567, 2568, 2569, 2571, 2572, 2577, 2580, 2582, + 2584, 2588, 2589, 2593, 2597, 2601, 2603, 2606, 2609, 2612, + 2615, 2618, 2621, 2624, 2627, 2630, 2633, 2636, 2639, 2642, + 2645, 2648, 2651, 2654, 2657, 2660, 2663, 2666, 2669, 2672, + 2676, 2679, 2682, 2685, 2688, 2692, 2695, 2698, 2703, 2708, + 2712 }; static const short yyrhs[] = { -1, 115, 0, 0, 116, 122, 0, 115, 122, 0, 115, 0, 0, 0, 0, 33, 0, 27, 0, 28, 0, 0, 123, 124, 0, 140, 139, 0, 136, 0, 135, - 0, 121, 94, 194, 110, 61, 0, 129, 59, 117, + 0, 121, 94, 195, 110, 61, 0, 129, 59, 117, 111, 0, 129, 118, 140, 119, 139, 0, 129, 118, 136, 119, 0, 0, 45, 155, 59, 125, 117, 111, 0, 0, 45, 59, 126, 117, 111, 0, 45, 155, 65, 128, 61, 0, 127, 61, 0, 47, 45, 128, - 61, 0, 120, 124, 0, 47, 287, 0, 47, 300, - 287, 0, 47, 300, 185, 0, 185, 0, 287, 0, - 300, 287, 0, 300, 185, 0, 100, 0, 129, 100, + 61, 0, 120, 124, 0, 47, 288, 0, 47, 301, + 288, 0, 47, 301, 186, 0, 186, 0, 288, 0, + 301, 288, 0, 301, 186, 0, 100, 0, 129, 100, 0, 0, 49, 75, 131, 132, 76, 0, 49, 75, - 76, 0, 134, 0, 132, 60, 134, 0, 244, 0, - 244, 155, 0, 46, 0, 46, 155, 0, 133, 0, - 133, 65, 200, 0, 367, 0, 367, 65, 181, 0, - 130, 124, 0, 130, 1, 0, 211, 61, 0, 204, - 210, 61, 0, 201, 209, 61, 0, 204, 61, 0, - 158, 61, 0, 201, 61, 0, 1, 61, 0, 1, - 111, 0, 61, 0, 195, 0, 151, 0, 0, 150, + 76, 0, 134, 0, 132, 60, 134, 0, 245, 0, + 245, 155, 0, 46, 0, 46, 155, 0, 133, 0, + 133, 65, 201, 0, 368, 0, 368, 65, 181, 0, + 130, 124, 0, 130, 1, 0, 212, 61, 0, 205, + 211, 61, 0, 202, 210, 61, 0, 205, 61, 0, + 158, 61, 0, 202, 61, 0, 1, 61, 0, 1, + 111, 0, 61, 0, 196, 0, 151, 0, 0, 150, 0, 150, 61, 0, 0, 109, 0, 146, 138, 137, - 312, 0, 146, 138, 337, 0, 146, 138, 1, 0, - 0, 292, 5, 94, 142, 358, 110, 274, 370, 0, - 292, 5, 48, 274, 370, 0, 0, 300, 292, 5, - 94, 143, 358, 110, 274, 370, 0, 300, 292, 5, - 48, 274, 370, 0, 0, 292, 160, 94, 144, 358, - 110, 274, 370, 0, 292, 160, 48, 274, 370, 0, - 0, 300, 292, 160, 94, 145, 358, 110, 274, 370, - 0, 300, 292, 160, 48, 274, 370, 0, 201, 198, - 0, 204, 284, 0, 284, 0, 204, 141, 0, 141, - 0, 5, 94, 358, 110, 274, 370, 0, 5, 48, - 274, 370, 0, 160, 94, 358, 110, 274, 370, 0, - 160, 48, 274, 370, 0, 204, 147, 0, 147, 0, - 201, 198, 0, 204, 284, 0, 284, 0, 204, 141, + 313, 0, 146, 138, 338, 0, 146, 138, 1, 0, + 0, 293, 5, 94, 142, 359, 110, 275, 371, 0, + 293, 5, 48, 275, 371, 0, 0, 301, 293, 5, + 94, 143, 359, 110, 275, 371, 0, 301, 293, 5, + 48, 275, 371, 0, 0, 293, 160, 94, 144, 359, + 110, 275, 371, 0, 293, 160, 48, 275, 371, 0, + 0, 301, 293, 160, 94, 145, 359, 110, 275, 371, + 0, 301, 293, 160, 48, 275, 371, 0, 202, 199, + 0, 205, 285, 0, 285, 0, 205, 141, 0, 141, + 0, 5, 94, 359, 110, 275, 371, 0, 5, 48, + 275, 371, 0, 160, 94, 359, 110, 275, 371, 0, + 160, 48, 275, 371, 0, 205, 147, 0, 147, 0, + 202, 199, 0, 205, 285, 0, 285, 0, 205, 141, 0, 141, 0, 130, 148, 0, 25, 3, 0, 149, - 228, 0, 149, 94, 175, 110, 0, 149, 48, 0, + 229, 0, 149, 94, 175, 110, 0, 149, 48, 0, 63, 152, 153, 0, 0, 0, 154, 0, 153, 60, 154, 0, 153, 1, 0, 94, 175, 110, 0, 48, - 0, 156, 94, 175, 110, 0, 156, 48, 0, 280, - 94, 175, 110, 0, 280, 48, 0, 294, 94, 175, - 110, 0, 294, 48, 0, 3, 0, 4, 0, 5, + 0, 156, 94, 175, 110, 0, 156, 48, 0, 281, + 94, 175, 110, 0, 281, 48, 0, 295, 94, 175, + 110, 0, 295, 48, 0, 3, 0, 4, 0, 5, 0, 57, 0, 58, 0, 3, 0, 57, 0, 58, - 0, 106, 0, 105, 0, 107, 0, 49, 207, 61, - 0, 49, 201, 198, 0, 49, 284, 0, 49, 141, - 0, 7, 49, 207, 61, 0, 7, 49, 201, 198, - 0, 7, 49, 284, 0, 7, 49, 141, 0, 57, + 0, 106, 0, 105, 0, 107, 0, 49, 208, 61, + 0, 49, 202, 199, 0, 49, 285, 0, 49, 141, + 0, 7, 49, 208, 61, 0, 7, 49, 202, 199, + 0, 7, 49, 285, 0, 7, 49, 141, 0, 57, 75, 162, 161, 0, 57, 75, 161, 0, 4, 75, 162, 161, 0, 4, 75, 161, 0, 160, 0, 5, 75, 162, 161, 0, 5, 75, 161, 0, 76, 0, - 78, 0, 163, 0, 162, 60, 163, 0, 200, 0, + 78, 0, 163, 0, 162, 60, 163, 0, 201, 0, 181, 0, 80, 0, 79, 0, 87, 0, 88, 0, 112, 0, 174, 0, 181, 0, 48, 0, 94, 165, 110, 0, 48, 0, 94, 169, 110, 0, 0, 169, - 0, 1, 0, 0, 348, 198, 212, 221, 65, 170, - 229, 0, 165, 0, 111, 0, 309, 305, 111, 0, - 309, 305, 1, 111, 0, 309, 1, 111, 0, 0, - 59, 173, 171, 0, 321, 0, 181, 60, 181, 0, + 0, 1, 0, 0, 349, 199, 213, 222, 65, 170, + 230, 0, 165, 0, 111, 0, 310, 306, 111, 0, + 310, 306, 1, 111, 0, 310, 1, 111, 0, 0, + 59, 173, 171, 0, 322, 0, 181, 60, 181, 0, 181, 60, 1, 0, 174, 60, 181, 0, 174, 60, - 1, 0, 181, 0, 174, 0, 189, 0, 120, 180, + 1, 0, 181, 0, 174, 0, 190, 0, 120, 180, 0, 81, 180, 0, 71, 180, 0, 89, 180, 0, 164, 180, 0, 68, 155, 0, 13, 176, 0, 13, - 94, 200, 110, 0, 30, 176, 0, 30, 94, 200, - 110, 0, 191, 273, 0, 191, 273, 178, 0, 191, - 177, 273, 0, 191, 177, 273, 178, 0, 191, 94, - 200, 110, 0, 191, 94, 200, 110, 178, 0, 191, - 177, 94, 200, 110, 0, 191, 177, 94, 200, 110, - 178, 0, 192, 180, 0, 192, 95, 113, 180, 0, - 192, 95, 165, 113, 180, 0, 35, 180, 0, 36, + 94, 201, 110, 0, 30, 176, 0, 30, 94, 201, + 110, 0, 192, 274, 0, 192, 274, 178, 0, 192, + 177, 274, 0, 192, 177, 274, 178, 0, 192, 94, + 201, 110, 0, 192, 94, 201, 110, 178, 0, 192, + 177, 94, 201, 110, 0, 192, 177, 94, 201, 110, + 178, 0, 193, 180, 0, 193, 95, 113, 180, 0, + 193, 95, 165, 113, 180, 0, 35, 180, 0, 36, 180, 0, 94, 175, 110, 0, 59, 175, 111, 0, - 94, 175, 110, 0, 48, 0, 94, 207, 110, 0, - 65, 229, 0, 94, 200, 110, 0, 179, 94, 200, - 110, 0, 176, 0, 179, 176, 0, 179, 59, 230, - 242, 111, 0, 180, 0, 181, 84, 181, 0, 181, + 94, 175, 110, 0, 48, 0, 94, 208, 110, 0, + 65, 230, 0, 94, 201, 110, 0, 179, 94, 201, + 110, 0, 176, 0, 179, 176, 0, 179, 59, 231, + 243, 111, 0, 180, 0, 181, 84, 181, 0, 181, 85, 181, 0, 181, 79, 181, 0, 181, 80, 181, 0, 181, 81, 181, 0, 181, 82, 181, 0, 181, 83, 181, 0, 181, 77, 181, 0, 181, 78, 181, @@ -405,198 +406,199 @@ static const short yyrhs[] = { -1, 76, 181, 0, 181, 73, 181, 0, 181, 72, 181, 0, 181, 71, 181, 0, 181, 69, 181, 0, 181, 70, 181, 0, 181, 68, 181, 0, 181, 67, 181, - 0, 181, 66, 353, 63, 181, 0, 181, 65, 181, + 0, 181, 66, 354, 63, 181, 0, 181, 65, 181, 0, 181, 64, 181, 0, 62, 0, 62, 181, 0, - 89, 368, 155, 0, 183, 0, 375, 0, 3, 0, - 57, 0, 58, 0, 6, 75, 162, 161, 0, 6, - 75, 161, 0, 375, 75, 162, 161, 0, 375, 75, - 161, 0, 49, 155, 75, 162, 161, 0, 49, 6, - 75, 162, 161, 0, 49, 375, 75, 162, 161, 0, - 182, 0, 4, 0, 5, 0, 182, 0, 81, 186, - 0, 71, 186, 0, 94, 186, 110, 0, 3, 75, - 162, 161, 0, 58, 75, 162, 161, 0, 286, 0, - 182, 0, 187, 0, 94, 186, 110, 0, 182, 0, - 10, 0, 193, 0, 194, 0, 94, 165, 110, 0, - 94, 186, 110, 0, 94, 1, 110, 0, 0, 94, - 190, 313, 110, 0, 189, 94, 175, 110, 0, 189, - 48, 0, 189, 95, 165, 113, 0, 189, 87, 0, - 189, 88, 0, 41, 0, 9, 94, 175, 110, 0, - 290, 0, 51, 75, 200, 76, 94, 165, 110, 0, - 52, 75, 200, 76, 94, 165, 110, 0, 53, 75, - 200, 76, 94, 165, 110, 0, 54, 75, 200, 76, - 94, 165, 110, 0, 50, 94, 165, 110, 0, 50, - 94, 200, 110, 0, 300, 3, 0, 300, 375, 0, - 289, 0, 289, 94, 175, 110, 0, 289, 48, 0, - 196, 184, 0, 196, 184, 94, 175, 110, 0, 196, - 184, 48, 0, 196, 185, 0, 196, 289, 0, 196, - 185, 94, 175, 110, 0, 196, 185, 48, 0, 196, - 289, 94, 175, 110, 0, 196, 289, 48, 0, 196, - 89, 8, 48, 0, 196, 8, 55, 89, 8, 48, - 0, 196, 1, 0, 40, 0, 300, 40, 0, 39, - 0, 300, 192, 0, 43, 0, 44, 0, 11, 0, - 194, 11, 0, 0, 189, 93, 0, 189, 92, 0, - 207, 209, 61, 0, 201, 209, 61, 0, 204, 210, - 61, 0, 201, 61, 0, 204, 61, 0, 120, 197, - 0, 279, 0, 284, 0, 48, 0, 199, 48, 0, - 205, 303, 0, 275, 303, 0, 207, 303, 0, 205, - 0, 275, 0, 205, 0, 202, 0, 204, 207, 0, - 207, 203, 0, 207, 206, 203, 0, 204, 207, 203, - 0, 204, 207, 206, 0, 204, 207, 206, 203, 0, - 7, 0, 203, 208, 0, 203, 7, 0, 203, 222, - 0, 222, 0, 275, 0, 7, 0, 204, 9, 0, - 204, 7, 0, 204, 222, 0, 222, 0, 207, 0, - 275, 207, 0, 207, 206, 0, 275, 207, 206, 0, - 208, 0, 206, 208, 0, 236, 0, 8, 0, 281, - 0, 29, 94, 165, 110, 0, 29, 94, 200, 110, - 0, 31, 94, 165, 110, 0, 31, 94, 200, 110, - 0, 8, 0, 9, 0, 236, 0, 213, 0, 209, - 60, 215, 0, 217, 0, 210, 60, 215, 0, 219, - 0, 211, 60, 215, 0, 0, 121, 94, 194, 110, - 0, 0, 198, 212, 221, 65, 214, 229, 0, 198, - 212, 221, 0, 0, 198, 212, 221, 65, 216, 229, - 0, 198, 212, 221, 0, 0, 284, 212, 221, 65, - 218, 229, 0, 284, 212, 221, 0, 0, 284, 212, - 221, 65, 220, 229, 0, 284, 212, 221, 0, 0, - 222, 0, 223, 0, 222, 223, 0, 32, 94, 94, - 224, 110, 110, 0, 225, 0, 224, 60, 225, 0, - 0, 226, 0, 226, 94, 3, 110, 0, 226, 94, - 3, 60, 175, 110, 0, 226, 94, 175, 110, 0, - 155, 0, 7, 0, 8, 0, 9, 0, 155, 0, - 227, 60, 155, 0, 0, 65, 229, 0, 181, 0, - 59, 111, 0, 59, 230, 111, 0, 59, 230, 60, - 111, 0, 1, 0, 229, 0, 230, 60, 229, 0, - 95, 181, 113, 229, 0, 230, 60, 21, 181, 63, - 229, 0, 155, 63, 229, 0, 230, 60, 155, 63, - 229, 0, 99, 0, 231, 138, 137, 312, 0, 231, - 138, 337, 0, 231, 138, 1, 0, 0, 233, 232, - 139, 0, 104, 181, 109, 0, 104, 1, 109, 0, - 0, 235, 234, 0, 235, 1, 0, 0, 14, 155, - 59, 237, 271, 243, 111, 0, 14, 155, 59, 111, - 0, 0, 14, 59, 238, 271, 243, 111, 0, 14, - 59, 111, 0, 14, 155, 0, 14, 298, 0, 46, - 294, 0, 0, 0, 0, 251, 257, 239, 259, 111, - 221, 240, 235, 241, 233, 0, 251, 0, 0, 60, - 0, 0, 60, 0, 37, 0, 244, 7, 0, 244, - 8, 0, 244, 9, 0, 244, 37, 0, 244, 155, - 0, 244, 157, 0, 244, 292, 155, 0, 244, 300, - 292, 155, 0, 244, 300, 155, 0, 244, 159, 0, - 244, 292, 159, 0, 0, 245, 0, 246, 248, 252, - 0, 247, 252, 0, 244, 59, 0, 250, 0, 249, - 0, 0, 63, 368, 0, 63, 368, 253, 0, 254, - 0, 253, 60, 368, 254, 0, 255, 0, 256, 368, - 255, 0, 294, 0, 280, 0, 31, 94, 165, 110, - 0, 31, 94, 200, 110, 0, 38, 368, 0, 7, - 368, 0, 256, 38, 368, 0, 256, 7, 368, 0, - 59, 0, 0, 258, 0, 258, 260, 0, 259, 38, - 63, 260, 0, 259, 38, 63, 0, 261, 0, 260, - 261, 0, 262, 61, 0, 262, 111, 0, 148, 63, - 0, 148, 96, 0, 148, 25, 0, 148, 59, 0, - 61, 0, 120, 261, 0, 201, 263, 0, 204, 264, - 0, 284, 212, 221, 228, 0, 141, 212, 221, 228, - 0, 63, 181, 0, 1, 0, 204, 147, 212, 221, - 228, 0, 147, 212, 221, 228, 0, 127, 0, 130, - 262, 0, 0, 265, 0, 263, 60, 266, 0, 0, - 268, 0, 264, 60, 270, 0, 267, 0, 268, 0, - 269, 0, 270, 0, 279, 212, 221, 228, 0, 4, - 63, 181, 221, 0, 284, 212, 221, 228, 0, 141, - 212, 221, 228, 0, 3, 63, 181, 221, 0, 63, - 181, 221, 0, 279, 212, 221, 228, 0, 4, 63, - 181, 221, 0, 284, 212, 221, 228, 0, 3, 63, - 181, 221, 0, 63, 181, 221, 0, 272, 0, 271, - 60, 272, 0, 155, 0, 155, 65, 181, 0, 348, - 301, 0, 348, 0, 94, 200, 110, 95, 165, 113, - 0, 0, 274, 9, 0, 9, 0, 275, 9, 0, - 0, 276, 165, 0, 276, 94, 175, 110, 0, 276, - 94, 358, 110, 0, 276, 48, 0, 276, 94, 1, - 110, 0, 81, 275, 279, 0, 71, 275, 279, 0, - 81, 279, 0, 71, 279, 0, 299, 274, 279, 0, - 283, 0, 291, 0, 300, 291, 0, 280, 0, 282, - 0, 300, 282, 0, 292, 291, 0, 283, 278, 274, - 370, 0, 283, 95, 277, 113, 0, 283, 95, 113, - 0, 94, 279, 110, 0, 292, 291, 0, 291, 0, - 81, 275, 284, 0, 71, 275, 284, 0, 81, 284, - 0, 71, 284, 0, 299, 274, 284, 0, 188, 0, - 81, 275, 284, 0, 71, 275, 284, 0, 81, 285, - 0, 71, 285, 0, 299, 274, 284, 0, 286, 0, - 188, 278, 274, 370, 0, 94, 285, 110, 0, 188, - 95, 277, 113, 0, 188, 95, 113, 0, 288, 0, - 292, 187, 0, 292, 185, 0, 292, 184, 0, 292, - 182, 0, 292, 184, 0, 288, 0, 300, 288, 0, - 207, 94, 175, 110, 0, 207, 94, 186, 110, 0, - 207, 199, 0, 4, 0, 5, 0, 159, 0, 293, - 0, 292, 293, 0, 4, 55, 0, 5, 55, 0, - 58, 55, 0, 159, 55, 0, 295, 0, 300, 295, - 0, 296, 155, 0, 297, 0, 296, 297, 0, 4, - 55, 0, 5, 55, 0, 159, 55, 0, 57, 55, - 0, 3, 55, 0, 58, 55, 0, 300, 291, 0, - 282, 0, 300, 282, 0, 292, 81, 0, 300, 292, - 81, 0, 55, 0, 81, 274, 301, 0, 81, 274, - 0, 71, 274, 301, 0, 71, 274, 0, 299, 274, - 0, 299, 274, 301, 0, 302, 0, 95, 165, 113, - 0, 302, 95, 277, 113, 0, 81, 275, 303, 0, - 81, 303, 0, 81, 275, 0, 81, 0, 71, 275, - 303, 0, 71, 303, 0, 71, 275, 0, 71, 0, - 299, 274, 0, 299, 274, 303, 0, 304, 0, 94, - 303, 110, 0, 91, 0, 304, 94, 358, 110, 274, - 370, 0, 304, 48, 274, 370, 0, 304, 95, 277, - 113, 0, 304, 95, 113, 0, 94, 359, 110, 274, - 370, 0, 179, 274, 370, 0, 199, 274, 370, 0, - 95, 277, 113, 0, 95, 113, 0, 320, 0, 306, - 0, 305, 320, 0, 305, 306, 0, 1, 61, 0, - 0, 0, 0, 310, 0, 311, 0, 310, 311, 0, - 34, 227, 61, 0, 313, 0, 1, 313, 0, 0, - 59, 314, 307, 171, 308, 0, 0, 0, 15, 316, - 307, 167, 317, 318, 0, 313, 0, 0, 307, 319, - 321, 308, 0, 313, 0, 321, 0, 197, 0, 165, - 61, 0, 0, 0, 315, 16, 322, 318, 323, 308, - 0, 315, 0, 0, 0, 17, 324, 307, 167, 325, - 172, 308, 0, 0, 0, 18, 326, 318, 17, 327, - 166, 61, 0, 0, 0, 0, 0, 19, 328, 94, - 351, 329, 307, 168, 61, 330, 353, 110, 331, 172, - 308, 0, 0, 0, 20, 307, 94, 169, 110, 332, - 318, 333, 308, 0, 0, 21, 181, 63, 334, 320, - 0, 0, 21, 181, 12, 181, 63, 335, 320, 0, - 0, 22, 63, 336, 320, 0, 23, 61, 0, 24, - 61, 0, 25, 61, 0, 25, 165, 61, 0, 121, - 352, 94, 194, 110, 61, 0, 121, 352, 94, 194, - 63, 354, 110, 61, 0, 121, 352, 94, 194, 63, - 354, 63, 354, 110, 61, 0, 121, 352, 94, 194, - 63, 354, 63, 354, 63, 357, 110, 61, 0, 26, - 81, 165, 61, 0, 26, 155, 61, 0, 350, 320, - 0, 350, 111, 0, 61, 0, 340, 0, 0, 0, - 96, 338, 137, 313, 339, 343, 0, 0, 0, 96, - 341, 313, 342, 343, 0, 344, 0, 343, 344, 0, - 0, 0, 0, 97, 345, 307, 349, 346, 313, 347, - 308, 0, 205, 0, 275, 0, 94, 12, 110, 0, - 94, 367, 110, 0, 3, 63, 0, 57, 63, 0, - 4, 63, 0, 5, 63, 0, 353, 61, 0, 197, - 0, 59, 171, 0, 0, 9, 0, 0, 165, 0, - 1, 0, 0, 355, 0, 356, 0, 355, 60, 356, - 0, 11, 94, 165, 110, 0, 11, 0, 357, 60, - 11, 0, 0, 359, 0, 200, 0, 363, 0, 364, - 12, 0, 363, 12, 0, 200, 12, 0, 12, 0, - 98, 0, 363, 98, 0, 200, 98, 0, 363, 63, - 0, 200, 63, 0, 0, 65, 361, 362, 0, 103, - 0, 229, 0, 365, 0, 367, 360, 0, 364, 366, - 0, 364, 369, 0, 364, 369, 65, 229, 0, 363, - 60, 0, 200, 60, 0, 202, 198, 0, 205, 198, - 0, 207, 198, 0, 202, 303, 0, 202, 0, 204, - 284, 0, 367, 0, 367, 360, 0, 365, 0, 200, - 0, 0, 0, 284, 0, 0, 62, 94, 372, 110, - 0, 62, 48, 0, 200, 0, 371, 0, 372, 60, - 371, 0, 0, 81, 274, 373, 0, 71, 274, 373, - 0, 299, 274, 373, 0, 42, 0, 374, 81, 0, - 374, 82, 0, 374, 83, 0, 374, 79, 0, 374, - 80, 0, 374, 71, 0, 374, 69, 0, 374, 70, - 0, 374, 89, 0, 374, 60, 0, 374, 74, 0, - 374, 75, 0, 374, 76, 0, 374, 73, 0, 374, - 64, 0, 374, 65, 0, 374, 77, 0, 374, 78, - 0, 374, 87, 0, 374, 88, 0, 374, 68, 0, - 374, 67, 0, 374, 112, 0, 374, 66, 63, 0, - 374, 72, 0, 374, 92, 0, 374, 84, 0, 374, - 48, 0, 374, 95, 113, 0, 374, 40, 0, 374, - 39, 0, 374, 40, 95, 113, 0, 374, 39, 95, - 113, 0, 374, 348, 373, 0, 374, 1, 0 + 89, 369, 155, 0, 184, 0, 376, 0, 3, 0, + 57, 0, 58, 0, 0, 6, 75, 183, 162, 161, + 0, 6, 75, 183, 161, 0, 376, 75, 183, 162, + 161, 0, 376, 75, 183, 161, 0, 49, 155, 75, + 162, 161, 0, 49, 6, 75, 162, 161, 0, 49, + 376, 75, 162, 161, 0, 182, 0, 4, 0, 5, + 0, 182, 0, 81, 187, 0, 71, 187, 0, 94, + 187, 110, 0, 3, 75, 162, 161, 0, 58, 75, + 162, 161, 0, 287, 0, 182, 0, 188, 0, 94, + 187, 110, 0, 182, 0, 10, 0, 194, 0, 195, + 0, 94, 165, 110, 0, 94, 187, 110, 0, 94, + 1, 110, 0, 0, 94, 191, 314, 110, 0, 190, + 94, 175, 110, 0, 190, 48, 0, 190, 95, 165, + 113, 0, 190, 87, 0, 190, 88, 0, 41, 0, + 9, 94, 175, 110, 0, 291, 0, 51, 75, 201, + 76, 94, 165, 110, 0, 52, 75, 201, 76, 94, + 165, 110, 0, 53, 75, 201, 76, 94, 165, 110, + 0, 54, 75, 201, 76, 94, 165, 110, 0, 50, + 94, 165, 110, 0, 50, 94, 201, 110, 0, 301, + 3, 0, 301, 376, 0, 290, 0, 290, 94, 175, + 110, 0, 290, 48, 0, 197, 185, 0, 197, 185, + 94, 175, 110, 0, 197, 185, 48, 0, 197, 186, + 0, 197, 290, 0, 197, 186, 94, 175, 110, 0, + 197, 186, 48, 0, 197, 290, 94, 175, 110, 0, + 197, 290, 48, 0, 197, 89, 8, 48, 0, 197, + 8, 55, 89, 8, 48, 0, 197, 1, 0, 40, + 0, 301, 40, 0, 39, 0, 301, 193, 0, 43, + 0, 44, 0, 11, 0, 195, 11, 0, 0, 190, + 93, 0, 190, 92, 0, 208, 210, 61, 0, 202, + 210, 61, 0, 205, 211, 61, 0, 202, 61, 0, + 205, 61, 0, 120, 198, 0, 280, 0, 285, 0, + 48, 0, 200, 48, 0, 206, 304, 0, 276, 304, + 0, 208, 304, 0, 206, 0, 276, 0, 206, 0, + 203, 0, 205, 208, 0, 208, 204, 0, 208, 207, + 204, 0, 205, 208, 204, 0, 205, 208, 207, 0, + 205, 208, 207, 204, 0, 7, 0, 204, 209, 0, + 204, 7, 0, 204, 223, 0, 223, 0, 276, 0, + 7, 0, 205, 9, 0, 205, 7, 0, 205, 223, + 0, 223, 0, 208, 0, 276, 208, 0, 208, 207, + 0, 276, 208, 207, 0, 209, 0, 207, 209, 0, + 237, 0, 8, 0, 282, 0, 29, 94, 165, 110, + 0, 29, 94, 201, 110, 0, 31, 94, 165, 110, + 0, 31, 94, 201, 110, 0, 8, 0, 9, 0, + 237, 0, 214, 0, 210, 60, 216, 0, 218, 0, + 211, 60, 216, 0, 220, 0, 212, 60, 216, 0, + 0, 121, 94, 195, 110, 0, 0, 199, 213, 222, + 65, 215, 230, 0, 199, 213, 222, 0, 0, 199, + 213, 222, 65, 217, 230, 0, 199, 213, 222, 0, + 0, 285, 213, 222, 65, 219, 230, 0, 285, 213, + 222, 0, 0, 285, 213, 222, 65, 221, 230, 0, + 285, 213, 222, 0, 0, 223, 0, 224, 0, 223, + 224, 0, 32, 94, 94, 225, 110, 110, 0, 226, + 0, 225, 60, 226, 0, 0, 227, 0, 227, 94, + 3, 110, 0, 227, 94, 3, 60, 175, 110, 0, + 227, 94, 175, 110, 0, 155, 0, 7, 0, 8, + 0, 9, 0, 155, 0, 228, 60, 155, 0, 0, + 65, 230, 0, 181, 0, 59, 111, 0, 59, 231, + 111, 0, 59, 231, 60, 111, 0, 1, 0, 230, + 0, 231, 60, 230, 0, 95, 181, 113, 230, 0, + 231, 60, 21, 181, 63, 230, 0, 155, 63, 230, + 0, 231, 60, 155, 63, 230, 0, 99, 0, 232, + 138, 137, 313, 0, 232, 138, 338, 0, 232, 138, + 1, 0, 0, 234, 233, 139, 0, 104, 181, 109, + 0, 104, 1, 109, 0, 0, 236, 235, 0, 236, + 1, 0, 0, 14, 155, 59, 238, 272, 244, 111, + 0, 14, 155, 59, 111, 0, 0, 14, 59, 239, + 272, 244, 111, 0, 14, 59, 111, 0, 14, 155, + 0, 14, 299, 0, 46, 295, 0, 0, 0, 0, + 252, 258, 240, 260, 111, 222, 241, 236, 242, 234, + 0, 252, 0, 0, 60, 0, 0, 60, 0, 37, + 0, 245, 7, 0, 245, 8, 0, 245, 9, 0, + 245, 37, 0, 245, 155, 0, 245, 157, 0, 245, + 293, 155, 0, 245, 301, 293, 155, 0, 245, 301, + 155, 0, 245, 159, 0, 245, 293, 159, 0, 0, + 246, 0, 247, 249, 253, 0, 248, 253, 0, 245, + 59, 0, 251, 0, 250, 0, 0, 63, 369, 0, + 63, 369, 254, 0, 255, 0, 254, 60, 369, 255, + 0, 256, 0, 257, 369, 256, 0, 295, 0, 281, + 0, 31, 94, 165, 110, 0, 31, 94, 201, 110, + 0, 38, 369, 0, 7, 369, 0, 257, 38, 369, + 0, 257, 7, 369, 0, 59, 0, 0, 259, 0, + 259, 261, 0, 260, 38, 63, 261, 0, 260, 38, + 63, 0, 262, 0, 261, 262, 0, 263, 61, 0, + 263, 111, 0, 148, 63, 0, 148, 96, 0, 148, + 25, 0, 148, 59, 0, 61, 0, 120, 262, 0, + 202, 264, 0, 205, 265, 0, 285, 213, 222, 229, + 0, 141, 213, 222, 229, 0, 63, 181, 0, 1, + 0, 205, 147, 213, 222, 229, 0, 147, 213, 222, + 229, 0, 127, 0, 130, 263, 0, 0, 266, 0, + 264, 60, 267, 0, 0, 269, 0, 265, 60, 271, + 0, 268, 0, 269, 0, 270, 0, 271, 0, 280, + 213, 222, 229, 0, 4, 63, 181, 222, 0, 285, + 213, 222, 229, 0, 141, 213, 222, 229, 0, 3, + 63, 181, 222, 0, 63, 181, 222, 0, 280, 213, + 222, 229, 0, 4, 63, 181, 222, 0, 285, 213, + 222, 229, 0, 3, 63, 181, 222, 0, 63, 181, + 222, 0, 273, 0, 272, 60, 273, 0, 155, 0, + 155, 65, 181, 0, 349, 302, 0, 349, 0, 94, + 201, 110, 95, 165, 113, 0, 0, 275, 9, 0, + 9, 0, 276, 9, 0, 0, 277, 165, 0, 277, + 94, 175, 110, 0, 277, 94, 359, 110, 0, 277, + 48, 0, 277, 94, 1, 110, 0, 81, 276, 280, + 0, 71, 276, 280, 0, 81, 280, 0, 71, 280, + 0, 300, 275, 280, 0, 284, 0, 292, 0, 301, + 292, 0, 281, 0, 283, 0, 301, 283, 0, 293, + 292, 0, 284, 279, 275, 371, 0, 284, 95, 278, + 113, 0, 284, 95, 113, 0, 94, 280, 110, 0, + 293, 292, 0, 292, 0, 81, 276, 285, 0, 71, + 276, 285, 0, 81, 285, 0, 71, 285, 0, 300, + 275, 285, 0, 189, 0, 81, 276, 285, 0, 71, + 276, 285, 0, 81, 286, 0, 71, 286, 0, 300, + 275, 285, 0, 287, 0, 189, 279, 275, 371, 0, + 94, 286, 110, 0, 189, 95, 278, 113, 0, 189, + 95, 113, 0, 289, 0, 293, 188, 0, 293, 186, + 0, 293, 185, 0, 293, 182, 0, 293, 185, 0, + 289, 0, 301, 289, 0, 208, 94, 175, 110, 0, + 208, 94, 187, 110, 0, 208, 200, 0, 4, 0, + 5, 0, 159, 0, 294, 0, 293, 294, 0, 4, + 55, 0, 5, 55, 0, 58, 55, 0, 159, 55, + 0, 296, 0, 301, 296, 0, 297, 155, 0, 298, + 0, 297, 298, 0, 4, 55, 0, 5, 55, 0, + 159, 55, 0, 57, 55, 0, 3, 55, 0, 58, + 55, 0, 301, 292, 0, 283, 0, 301, 283, 0, + 293, 81, 0, 301, 293, 81, 0, 55, 0, 81, + 275, 302, 0, 81, 275, 0, 71, 275, 302, 0, + 71, 275, 0, 300, 275, 0, 300, 275, 302, 0, + 303, 0, 95, 165, 113, 0, 303, 95, 278, 113, + 0, 81, 276, 304, 0, 81, 304, 0, 81, 276, + 0, 81, 0, 71, 276, 304, 0, 71, 304, 0, + 71, 276, 0, 71, 0, 300, 275, 0, 300, 275, + 304, 0, 305, 0, 94, 304, 110, 0, 91, 0, + 305, 94, 359, 110, 275, 371, 0, 305, 48, 275, + 371, 0, 305, 95, 278, 113, 0, 305, 95, 113, + 0, 94, 360, 110, 275, 371, 0, 179, 275, 371, + 0, 200, 275, 371, 0, 95, 278, 113, 0, 95, + 113, 0, 321, 0, 307, 0, 306, 321, 0, 306, + 307, 0, 1, 61, 0, 0, 0, 0, 311, 0, + 312, 0, 311, 312, 0, 34, 228, 61, 0, 314, + 0, 1, 314, 0, 0, 59, 315, 308, 171, 309, + 0, 0, 0, 15, 317, 308, 167, 318, 319, 0, + 314, 0, 0, 308, 320, 322, 309, 0, 314, 0, + 322, 0, 198, 0, 165, 61, 0, 0, 0, 316, + 16, 323, 319, 324, 309, 0, 316, 0, 0, 0, + 17, 325, 308, 167, 326, 172, 309, 0, 0, 0, + 18, 327, 319, 17, 328, 166, 61, 0, 0, 0, + 0, 0, 19, 329, 94, 352, 330, 308, 168, 61, + 331, 354, 110, 332, 172, 309, 0, 0, 0, 20, + 308, 94, 169, 110, 333, 319, 334, 309, 0, 0, + 21, 181, 63, 335, 321, 0, 0, 21, 181, 12, + 181, 63, 336, 321, 0, 0, 22, 63, 337, 321, + 0, 23, 61, 0, 24, 61, 0, 25, 61, 0, + 25, 165, 61, 0, 121, 353, 94, 195, 110, 61, + 0, 121, 353, 94, 195, 63, 355, 110, 61, 0, + 121, 353, 94, 195, 63, 355, 63, 355, 110, 61, + 0, 121, 353, 94, 195, 63, 355, 63, 355, 63, + 358, 110, 61, 0, 26, 81, 165, 61, 0, 26, + 155, 61, 0, 351, 321, 0, 351, 111, 0, 61, + 0, 341, 0, 0, 0, 96, 339, 137, 314, 340, + 344, 0, 0, 0, 96, 342, 314, 343, 344, 0, + 345, 0, 344, 345, 0, 0, 0, 0, 97, 346, + 308, 350, 347, 314, 348, 309, 0, 206, 0, 276, + 0, 94, 12, 110, 0, 94, 368, 110, 0, 3, + 63, 0, 57, 63, 0, 4, 63, 0, 5, 63, + 0, 354, 61, 0, 198, 0, 59, 171, 0, 0, + 9, 0, 0, 165, 0, 1, 0, 0, 356, 0, + 357, 0, 356, 60, 357, 0, 11, 94, 165, 110, + 0, 11, 0, 358, 60, 11, 0, 0, 360, 0, + 201, 0, 364, 0, 365, 12, 0, 364, 12, 0, + 201, 12, 0, 12, 0, 98, 0, 364, 98, 0, + 201, 98, 0, 364, 63, 0, 201, 63, 0, 0, + 65, 362, 363, 0, 103, 0, 230, 0, 366, 0, + 368, 361, 0, 365, 367, 0, 365, 370, 0, 365, + 370, 65, 230, 0, 364, 60, 0, 201, 60, 0, + 203, 199, 0, 206, 199, 0, 208, 199, 0, 203, + 304, 0, 203, 0, 205, 285, 0, 368, 0, 368, + 361, 0, 366, 0, 201, 0, 0, 0, 285, 0, + 0, 62, 94, 373, 110, 0, 62, 48, 0, 201, + 0, 372, 0, 373, 60, 372, 0, 0, 81, 275, + 374, 0, 71, 275, 374, 0, 300, 275, 374, 0, + 42, 0, 375, 81, 0, 375, 82, 0, 375, 83, + 0, 375, 79, 0, 375, 80, 0, 375, 71, 0, + 375, 69, 0, 375, 70, 0, 375, 89, 0, 375, + 60, 0, 375, 74, 0, 375, 75, 0, 375, 76, + 0, 375, 73, 0, 375, 64, 0, 375, 65, 0, + 375, 77, 0, 375, 78, 0, 375, 87, 0, 375, + 88, 0, 375, 68, 0, 375, 67, 0, 375, 112, + 0, 375, 66, 63, 0, 375, 72, 0, 375, 92, + 0, 375, 84, 0, 375, 48, 0, 375, 95, 113, + 0, 375, 40, 0, 375, 39, 0, 375, 40, 95, + 113, 0, 375, 39, 95, 113, 0, 375, 349, 374, + 0, 375, 1, 0 }; #endif @@ -627,65 +629,66 @@ static const short yyrline[] = { 0, 1179, 1188, 1194, 1201, 1203, 1205, 1218, 1221, 1223, 1225, 1227, 1229, 1231, 1233, 1235, 1237, 1239, 1241, 1243, 1245, 1247, 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1265, 1267, - 1269, 1286, 1289, 1290, 1291, 1292, 1293, 1296, 1299, 1301, - 1304, 1309, 1312, 1314, 1318, 1320, 1321, 1324, 1326, 1328, - 1330, 1334, 1337, 1341, 1343, 1344, 1345, 1349, 1357, 1358, - 1359, 1367, 1375, 1383, 1385, 1393, 1414, 1421, 1428, 1430, - 1439, 1444, 1467, 1511, 1512, 1516, 1520, 1524, 1528, 1530, - 1534, 1536, 1544, 1546, 1551, 1557, 1561, 1566, 1571, 1573, - 1578, 1593, 1608, 1619, 1631, 1639, 1648, 1692, 1695, 1699, - 1702, 1706, 1709, 1714, 1716, 1720, 1733, 1736, 1743, 1750, - 1755, 1757, 1762, 1764, 1771, 1773, 1777, 1781, 1787, 1791, - 1794, 1797, 1800, 1810, 1812, 1815, 1819, 1822, 1825, 1828, - 1831, 1837, 1843, 1845, 1850, 1852, 1861, 1864, 1866, 1869, - 1875, 1877, 1887, 1891, 1894, 1897, 1902, 1905, 1913, 1915, - 1917, 1919, 1922, 1925, 1940, 1959, 1962, 1964, 1967, 1969, - 1972, 1974, 1977, 1979, 1982, 1985, 1989, 2008, 2010, 2030, - 2036, 2037, 2043, 2052, 2054, 2064, 2073, 2075, 2087, 2090, - 2094, 2097, 2101, 2106, 2109, 2113, 2116, 2118, 2120, 2122, - 2129, 2131, 2132, 2133, 2137, 2140, 2144, 2147, 2153, 2155, - 2158, 2161, 2164, 2170, 2173, 2176, 2178, 2180, 2182, 2186, - 2192, 2200, 2202, 2206, 2208, 2213, 2216, 2219, 2221, 2223, - 2227, 2231, 2236, 2240, 2243, 2248, 2252, 2255, 2258, 2262, - 2264, 2299, 2305, 2311, 2323, 2325, 2328, 2330, 2335, 2337, - 2339, 2341, 2343, 2347, 2352, 2357, 2363, 2368, 2373, 2375, - 2379, 2384, 2387, 2394, 2422, 2428, 2430, 2433, 2436, 2438, - 2442, 2444, 2448, 2474, 2503, 2506, 2507, 2528, 2551, 2553, - 2557, 2583, 2592, 2675, 2682, 2685, 2693, 2704, 2713, 2717, - 2732, 2735, 2740, 2742, 2744, 2746, 2748, 2750, 2755, 2761, - 2763, 2766, 2769, 2771, 2782, 2787, 2790, 2792, 2816, 2819, - 2820, 2831, 2834, 2835, 2846, 2848, 2851, 2853, 2856, 2863, - 2871, 2878, 2884, 2890, 2898, 2902, 2907, 2911, 2914, 2923, - 2925, 2929, 2932, 2937, 2941, 2946, 2956, 2959, 2963, 2967, - 2975, 2980, 2986, 2989, 2991, 2993, 2999, 3002, 3004, 3006, - 3008, 3012, 3015, 3033, 3043, 3045, 3046, 3050, 3055, 3058, - 3060, 3062, 3064, 3068, 3074, 3077, 3079, 3081, 3083, 3087, - 3090, 3093, 3095, 3097, 3099, 3103, 3106, 3109, 3111, 3113, - 3115, 3122, 3133, 3137, 3142, 3146, 3151, 3153, 3157, 3160, - 3162, 3166, 3168, 3169, 3172, 3174, 3180, 3195, 3201, 3207, - 3221, 3223, 3227, 3239, 3245, 3256, 3263, 3269, 3271, 3272, - 3273, 3281, 3290, 3291, 3295, 3298, 3304, 3310, 3313, 3315, - 3317, 3319, 3323, 3327, 3331, 3334, 3339, 3342, 3344, 3346, - 3348, 3350, 3352, 3354, 3356, 3360, 3364, 3368, 3372, 3373, - 3375, 3377, 3379, 3381, 3383, 3385, 3387, 3389, 3397, 3399, - 3400, 3401, 3404, 3412, 3417, 3424, 3426, 3431, 3433, 3436, - 3450, 3453, 3456, 3465, 3477, 3488, 3508, 3518, 3521, 3529, - 3541, 3544, 3547, 3550, 3566, 3569, 3580, 3581, 3585, 3600, - 3619, 3631, 3645, 3659, 3672, 3691, 3709, 3728, 3736, 3757, - 3775, 3788, 3789, 3792, 3792, 3795, 3795, 3798, 3798, 3804, - 3810, 3813, 3818, 3825, 3834, 3843, 3852, 3860, 3873, 3875, - 3879, 3881, 3884, 3891, 3894, 3902, 3918, 3929, 3941, 3943, - 3946, 3956, 3966, 3977, 3979, 3981, 3984, 4001, 4007, 4015, - 4017, 4019, 4023, 4026, 4027, 4035, 4039, 4043, 4046, 4047, - 4053, 4056, 4059, 4061, 4065, 4070, 4073, 4083, 4088, 4089, - 4097, 4103, 4108, 4112, 4117, 4121, 4125, 4129, 4134, 4145, - 4159, 4163, 4166, 4168, 4172, 4176, 4179, 4182, 4184, 4188, - 4190, 4197, 4204, 4207, 4210, 4214, 4218, 4224, 4228, 4233, - 4235, 4238, 4243, 4249, 4259, 4262, 4264, 4268, 4273, 4275, - 4282, 4285, 4287, 4289, 4295, 4300, 4303, 4305, 4307, 4309, - 4311, 4313, 4315, 4317, 4319, 4321, 4323, 4325, 4327, 4329, - 4331, 4333, 4335, 4337, 4339, 4341, 4343, 4345, 4347, 4349, - 4351, 4353, 4355, 4357, 4359, 4361, 4363, 4365, 4368, 4370 + 1269, 1286, 1289, 1290, 1291, 1292, 1293, 1296, 1299, 1302, + 1304, 1306, 1310, 1313, 1315, 1319, 1321, 1322, 1325, 1327, + 1329, 1331, 1335, 1338, 1342, 1344, 1345, 1346, 1350, 1358, + 1359, 1360, 1368, 1376, 1384, 1386, 1394, 1415, 1422, 1429, + 1431, 1440, 1445, 1468, 1512, 1513, 1517, 1521, 1525, 1529, + 1531, 1535, 1537, 1545, 1547, 1552, 1558, 1562, 1567, 1572, + 1574, 1579, 1594, 1609, 1620, 1632, 1640, 1649, 1693, 1696, + 1700, 1703, 1707, 1710, 1715, 1717, 1721, 1734, 1737, 1744, + 1751, 1756, 1758, 1763, 1765, 1772, 1774, 1778, 1782, 1788, + 1792, 1795, 1798, 1801, 1811, 1813, 1816, 1820, 1823, 1826, + 1829, 1832, 1838, 1844, 1846, 1851, 1853, 1862, 1865, 1867, + 1870, 1876, 1878, 1888, 1892, 1895, 1898, 1903, 1906, 1914, + 1916, 1918, 1920, 1923, 1926, 1941, 1960, 1963, 1965, 1968, + 1970, 1973, 1975, 1978, 1980, 1983, 1986, 1990, 2009, 2011, + 2031, 2037, 2038, 2044, 2053, 2055, 2065, 2074, 2076, 2088, + 2091, 2095, 2098, 2102, 2107, 2110, 2114, 2117, 2119, 2121, + 2123, 2130, 2132, 2133, 2134, 2138, 2141, 2145, 2148, 2154, + 2156, 2159, 2162, 2165, 2171, 2174, 2177, 2179, 2181, 2183, + 2187, 2193, 2201, 2203, 2207, 2209, 2214, 2217, 2220, 2222, + 2224, 2228, 2232, 2237, 2241, 2244, 2249, 2253, 2256, 2259, + 2263, 2265, 2300, 2306, 2312, 2324, 2326, 2329, 2331, 2336, + 2338, 2340, 2342, 2344, 2348, 2353, 2358, 2364, 2369, 2374, + 2376, 2380, 2385, 2388, 2395, 2423, 2429, 2431, 2434, 2437, + 2439, 2443, 2445, 2449, 2475, 2504, 2507, 2508, 2529, 2552, + 2554, 2558, 2584, 2593, 2676, 2683, 2686, 2694, 2705, 2714, + 2718, 2733, 2736, 2741, 2743, 2745, 2747, 2749, 2751, 2756, + 2762, 2764, 2767, 2770, 2772, 2783, 2788, 2791, 2793, 2817, + 2820, 2821, 2832, 2835, 2836, 2847, 2849, 2852, 2854, 2857, + 2864, 2872, 2879, 2885, 2891, 2899, 2903, 2908, 2912, 2915, + 2924, 2926, 2930, 2933, 2938, 2942, 2947, 2957, 2960, 2964, + 2968, 2976, 2981, 2987, 2990, 2992, 2994, 3000, 3003, 3005, + 3007, 3009, 3013, 3016, 3034, 3044, 3046, 3047, 3051, 3056, + 3059, 3061, 3063, 3065, 3069, 3075, 3078, 3080, 3082, 3084, + 3088, 3091, 3094, 3096, 3098, 3100, 3104, 3107, 3110, 3112, + 3114, 3116, 3123, 3134, 3138, 3143, 3147, 3152, 3154, 3158, + 3161, 3163, 3167, 3169, 3170, 3173, 3175, 3181, 3196, 3202, + 3208, 3222, 3224, 3228, 3240, 3246, 3257, 3264, 3270, 3272, + 3273, 3274, 3282, 3291, 3292, 3296, 3299, 3305, 3311, 3314, + 3316, 3318, 3320, 3324, 3328, 3332, 3335, 3340, 3343, 3345, + 3347, 3349, 3351, 3353, 3355, 3357, 3361, 3365, 3369, 3373, + 3374, 3376, 3378, 3380, 3382, 3384, 3386, 3388, 3390, 3398, + 3400, 3401, 3402, 3405, 3413, 3418, 3425, 3427, 3432, 3434, + 3437, 3451, 3454, 3457, 3466, 3478, 3489, 3509, 3519, 3522, + 3530, 3542, 3545, 3548, 3551, 3567, 3570, 3581, 3582, 3586, + 3601, 3620, 3632, 3646, 3660, 3673, 3692, 3710, 3729, 3737, + 3758, 3776, 3789, 3790, 3793, 3793, 3796, 3796, 3799, 3799, + 3805, 3811, 3814, 3819, 3826, 3835, 3844, 3853, 3861, 3874, + 3876, 3880, 3882, 3885, 3892, 3895, 3903, 3919, 3930, 3942, + 3944, 3947, 3957, 3967, 3978, 3980, 3982, 3985, 4002, 4008, + 4016, 4018, 4020, 4024, 4027, 4028, 4036, 4040, 4044, 4047, + 4048, 4054, 4057, 4060, 4062, 4066, 4071, 4074, 4084, 4089, + 4090, 4098, 4104, 4109, 4113, 4118, 4122, 4126, 4130, 4135, + 4146, 4160, 4164, 4167, 4169, 4173, 4177, 4180, 4183, 4185, + 4189, 4191, 4198, 4205, 4208, 4211, 4215, 4219, 4225, 4229, + 4234, 4236, 4239, 4244, 4250, 4260, 4263, 4265, 4269, 4274, + 4276, 4283, 4286, 4288, 4290, 4296, 4301, 4304, 4306, 4308, + 4310, 4312, 4314, 4316, 4318, 4320, 4322, 4324, 4326, 4328, + 4330, 4332, 4334, 4336, 4338, 4340, 4342, 4344, 4346, 4348, + 4350, 4352, 4354, 4356, 4358, 4360, 4362, 4364, 4366, 4369, + 4371 }; #endif @@ -718,7 +721,7 @@ static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER" "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond", "condition","@10","compstmtend","already_scoped_stmt","@11","nontrivial_exprlist", "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl", -"cast_expr","expr_no_commas","notype_unqualified_id","template_id","object_template_id", +"cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id", "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator", "primary","@12","new","delete","boolean.literal","string","nodecls","object", "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1", @@ -782,65 +785,66 @@ static const short yyr1[] = { 0, 178, 179, 179, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 182, 182, 182, 182, 182, 182, 183, 183, 183, - 183, 184, 184, 184, 185, 185, 185, 186, 186, 186, - 186, 187, 187, 188, 188, 188, 188, 189, 189, 189, - 189, 189, 189, 189, 190, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 191, 191, 192, - 192, 193, 193, 194, 194, 195, 196, 196, 197, 197, - 197, 197, 197, 197, 198, 198, 199, 199, 200, 200, - 200, 200, 200, 201, 201, 202, 202, 202, 202, 202, - 202, 203, 203, 203, 203, 203, 204, 204, 204, 204, - 204, 204, 205, 205, 205, 205, 206, 206, 207, 207, - 207, 207, 207, 207, 207, 208, 208, 208, 209, 209, - 210, 210, 211, 211, 212, 212, 214, 213, 213, 216, - 215, 215, 218, 217, 217, 220, 219, 219, 221, 221, - 222, 222, 223, 224, 224, 225, 225, 225, 225, 225, - 226, 226, 226, 226, 227, 227, 228, 228, 229, 229, - 229, 229, 229, 230, 230, 230, 230, 230, 230, 231, - 232, 232, 232, 233, 233, 234, 234, 235, 235, 235, - 237, 236, 236, 238, 236, 236, 236, 236, 236, 239, - 240, 241, 236, 236, 242, 242, 243, 243, 244, 244, - 244, 244, 244, 245, 246, 247, 247, 247, 247, 247, - 248, 249, 249, 249, 250, 251, 251, 252, 252, 252, - 253, 253, 254, 254, 255, 255, 255, 255, 256, 256, - 256, 256, 257, 258, 259, 259, 259, 259, 260, 260, - 261, 261, 261, 261, 261, 261, 261, 261, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 263, 263, - 263, 264, 264, 264, 265, 265, 266, 266, 267, 267, - 268, 268, 268, 268, 269, 269, 270, 270, 270, 271, - 271, 272, 272, 273, 273, 273, 274, 274, 275, 275, - 276, 277, 278, 278, 278, 278, 279, 279, 279, 279, - 279, 279, 280, 280, 281, 281, 281, 282, 283, 283, - 283, 283, 283, 283, 284, 284, 284, 284, 284, 284, - 285, 285, 285, 285, 285, 285, 286, 286, 286, 286, - 286, 286, 287, 287, 288, 288, 289, 289, 290, 290, - 290, 291, 291, 291, 292, 292, 293, 293, 293, 293, - 294, 294, 295, 296, 296, 297, 297, 297, 297, 297, - 297, 298, 298, 298, 299, 299, 300, 301, 301, 301, - 301, 301, 301, 301, 302, 302, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 303, 304, 304, 304, + 181, 182, 182, 182, 182, 182, 182, 183, 184, 184, + 184, 184, 185, 185, 185, 186, 186, 186, 187, 187, + 187, 187, 188, 188, 189, 189, 189, 189, 190, 190, + 190, 190, 190, 190, 190, 191, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 192, 192, + 193, 193, 194, 194, 195, 195, 196, 197, 197, 198, + 198, 198, 198, 198, 198, 199, 199, 200, 200, 201, + 201, 201, 201, 201, 202, 202, 203, 203, 203, 203, + 203, 203, 204, 204, 204, 204, 204, 205, 205, 205, + 205, 205, 205, 206, 206, 206, 206, 207, 207, 208, + 208, 208, 208, 208, 208, 208, 209, 209, 209, 210, + 210, 211, 211, 212, 212, 213, 213, 215, 214, 214, + 217, 216, 216, 219, 218, 218, 221, 220, 220, 222, + 222, 223, 223, 224, 225, 225, 226, 226, 226, 226, + 226, 227, 227, 227, 227, 228, 228, 229, 229, 230, + 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, + 232, 233, 233, 233, 234, 234, 235, 235, 236, 236, + 236, 238, 237, 237, 239, 237, 237, 237, 237, 237, + 240, 241, 242, 237, 237, 243, 243, 244, 244, 245, + 245, 245, 245, 245, 246, 247, 248, 248, 248, 248, + 248, 249, 250, 250, 250, 251, 252, 252, 253, 253, + 253, 254, 254, 255, 255, 256, 256, 256, 256, 257, + 257, 257, 257, 258, 259, 260, 260, 260, 260, 261, + 261, 262, 262, 262, 262, 262, 262, 262, 262, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 264, + 264, 264, 265, 265, 265, 266, 266, 267, 267, 268, + 268, 269, 269, 269, 269, 270, 270, 271, 271, 271, + 272, 272, 273, 273, 274, 274, 274, 275, 275, 276, + 276, 277, 278, 279, 279, 279, 279, 280, 280, 280, + 280, 280, 280, 281, 281, 282, 282, 282, 283, 284, + 284, 284, 284, 284, 284, 285, 285, 285, 285, 285, + 285, 286, 286, 286, 286, 286, 286, 287, 287, 287, + 287, 287, 287, 288, 288, 289, 289, 290, 290, 291, + 291, 291, 292, 292, 292, 293, 293, 294, 294, 294, + 294, 295, 295, 296, 297, 297, 298, 298, 298, 298, + 298, 298, 299, 299, 299, 300, 300, 301, 302, 302, + 302, 302, 302, 302, 302, 303, 303, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, 305, - 305, 305, 306, 307, 308, 309, 309, 310, 310, 311, - 312, 312, 314, 313, 316, 317, 315, 318, 319, 318, - 320, 320, 321, 321, 322, 323, 321, 321, 324, 325, - 321, 326, 327, 321, 328, 329, 330, 331, 321, 332, - 333, 321, 334, 321, 335, 321, 336, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 338, 339, 337, 341, 342, 340, 343, 343, - 345, 346, 347, 344, 348, 348, 349, 349, 350, 350, - 350, 350, 351, 351, 351, 352, 352, 353, 353, 353, - 354, 354, 355, 355, 356, 357, 357, 358, 358, 358, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 361, 360, 362, 362, 363, 363, 363, 363, 363, 364, - 364, 365, 365, 365, 365, 365, 365, 366, 366, 367, - 367, 368, 369, 369, 370, 370, 370, 371, 372, 372, - 373, 373, 373, 373, 374, 375, 375, 375, 375, 375, - 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, - 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, - 375, 375, 375, 375, 375, 375, 375, 375, 375, 375 + 305, 305, 305, 305, 305, 305, 305, 305, 305, 306, + 306, 306, 306, 307, 308, 309, 310, 310, 311, 311, + 312, 313, 313, 315, 314, 317, 318, 316, 319, 320, + 319, 321, 321, 322, 322, 323, 324, 322, 322, 325, + 326, 322, 327, 328, 322, 329, 330, 331, 332, 322, + 333, 334, 322, 335, 322, 336, 322, 337, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 339, 340, 338, 342, 343, 341, 344, + 344, 346, 347, 348, 345, 349, 349, 350, 350, 351, + 351, 351, 351, 352, 352, 352, 353, 353, 354, 354, + 354, 355, 355, 356, 356, 357, 358, 358, 359, 359, + 359, 360, 360, 360, 360, 360, 360, 360, 360, 360, + 360, 362, 361, 363, 363, 364, 364, 364, 364, 364, + 365, 365, 366, 366, 366, 366, 366, 366, 367, 367, + 368, 368, 369, 370, 370, 371, 371, 371, 372, 373, + 373, 374, 374, 374, 374, 375, 376, 376, 376, 376, + 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, + 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, + 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, + 376 }; static const short yyr2[] = { 0, @@ -868,1370 +872,1434 @@ static const short yyr2[] = { 0, 2, 3, 4, 1, 2, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, - 2, 3, 1, 1, 1, 1, 1, 4, 3, 4, - 3, 5, 5, 5, 1, 1, 1, 1, 2, 2, - 3, 4, 4, 1, 1, 1, 3, 1, 1, 1, - 1, 3, 3, 3, 0, 4, 4, 2, 4, 2, - 2, 1, 4, 1, 7, 7, 7, 7, 4, 4, - 2, 2, 1, 4, 2, 2, 5, 3, 2, 2, - 5, 3, 5, 3, 4, 6, 2, 1, 2, 1, - 2, 1, 1, 1, 2, 0, 2, 2, 3, 3, - 3, 2, 2, 2, 1, 1, 1, 2, 2, 2, - 2, 1, 1, 1, 1, 2, 2, 3, 3, 3, - 4, 1, 2, 2, 2, 1, 1, 1, 2, 2, - 2, 1, 1, 2, 2, 3, 1, 2, 1, 1, - 1, 4, 4, 4, 4, 1, 1, 1, 1, 3, - 1, 3, 1, 3, 0, 4, 0, 6, 3, 0, - 6, 3, 0, 6, 3, 0, 6, 3, 0, 1, - 1, 2, 6, 1, 3, 0, 1, 4, 6, 4, - 1, 1, 1, 1, 1, 3, 0, 2, 1, 2, - 3, 4, 1, 1, 3, 4, 6, 3, 5, 1, - 4, 3, 3, 0, 3, 3, 3, 0, 2, 2, - 0, 7, 4, 0, 6, 3, 2, 2, 2, 0, - 0, 0, 10, 1, 0, 1, 0, 1, 1, 2, - 2, 2, 2, 2, 2, 3, 4, 3, 2, 3, - 0, 1, 3, 2, 2, 1, 1, 0, 2, 3, - 1, 4, 1, 3, 1, 1, 4, 4, 2, 2, - 3, 3, 1, 0, 1, 2, 4, 3, 1, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, - 4, 4, 2, 1, 5, 4, 1, 2, 0, 1, - 3, 0, 1, 3, 1, 1, 1, 1, 4, 4, - 4, 4, 4, 3, 4, 4, 4, 4, 3, 1, - 3, 1, 3, 2, 1, 6, 0, 2, 1, 2, - 0, 2, 4, 4, 2, 4, 3, 3, 2, 2, - 3, 1, 1, 2, 1, 1, 2, 2, 4, 4, - 3, 3, 2, 1, 3, 3, 2, 2, 3, 1, - 3, 3, 2, 2, 3, 1, 4, 3, 4, 3, - 1, 2, 2, 2, 2, 2, 1, 2, 4, 4, - 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 2, 3, 1, 3, 2, 3, - 2, 2, 3, 1, 3, 4, 3, 2, 2, 1, - 3, 2, 2, 1, 2, 3, 1, 3, 1, 6, - 4, 4, 3, 5, 3, 3, 3, 2, 1, 1, - 2, 2, 2, 0, 0, 0, 1, 1, 2, 3, - 1, 2, 0, 5, 0, 0, 6, 1, 0, 4, - 1, 1, 1, 2, 0, 0, 6, 1, 0, 0, - 7, 0, 0, 7, 0, 0, 0, 0, 14, 0, - 0, 9, 0, 5, 0, 7, 0, 4, 2, 2, - 2, 3, 6, 8, 10, 12, 4, 3, 2, 2, - 1, 1, 0, 0, 6, 0, 0, 5, 1, 2, - 0, 0, 0, 8, 1, 1, 3, 3, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 0, 1, 1, - 0, 1, 1, 3, 4, 1, 3, 0, 1, 1, - 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, - 0, 3, 1, 1, 1, 2, 2, 2, 4, 2, - 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, - 1, 0, 0, 1, 0, 4, 2, 1, 1, 3, - 0, 3, 3, 3, 1, 2, 2, 2, 2, 2, + 2, 3, 1, 1, 1, 1, 1, 0, 5, 4, + 5, 4, 5, 5, 5, 1, 1, 1, 1, 2, + 2, 3, 4, 4, 1, 1, 1, 3, 1, 1, + 1, 1, 3, 3, 3, 0, 4, 4, 2, 4, + 2, 2, 1, 4, 1, 7, 7, 7, 7, 4, + 4, 2, 2, 1, 4, 2, 2, 5, 3, 2, + 2, 5, 3, 5, 3, 4, 6, 2, 1, 2, + 1, 2, 1, 1, 1, 2, 0, 2, 2, 3, + 3, 3, 2, 2, 2, 1, 1, 1, 2, 2, + 2, 2, 1, 1, 1, 1, 2, 2, 3, 3, + 3, 4, 1, 2, 2, 2, 1, 1, 1, 2, + 2, 2, 1, 1, 2, 2, 3, 1, 2, 1, + 1, 1, 4, 4, 4, 4, 1, 1, 1, 1, + 3, 1, 3, 1, 3, 0, 4, 0, 6, 3, + 0, 6, 3, 0, 6, 3, 0, 6, 3, 0, + 1, 1, 2, 6, 1, 3, 0, 1, 4, 6, + 4, 1, 1, 1, 1, 1, 3, 0, 2, 1, + 2, 3, 4, 1, 1, 3, 4, 6, 3, 5, + 1, 4, 3, 3, 0, 3, 3, 3, 0, 2, + 2, 0, 7, 4, 0, 6, 3, 2, 2, 2, + 0, 0, 0, 10, 1, 0, 1, 0, 1, 1, + 2, 2, 2, 2, 2, 2, 3, 4, 3, 2, + 3, 0, 1, 3, 2, 2, 1, 1, 0, 2, + 3, 1, 4, 1, 3, 1, 1, 4, 4, 2, + 2, 3, 3, 1, 0, 1, 2, 4, 3, 1, + 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, + 2, 4, 4, 2, 1, 5, 4, 1, 2, 0, + 1, 3, 0, 1, 3, 1, 1, 1, 1, 4, + 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, + 1, 3, 1, 3, 2, 1, 6, 0, 2, 1, + 2, 0, 2, 4, 4, 2, 4, 3, 3, 2, + 2, 3, 1, 1, 2, 1, 1, 2, 2, 4, + 4, 3, 3, 2, 1, 3, 3, 2, 2, 3, + 1, 3, 3, 2, 2, 3, 1, 4, 3, 4, + 3, 1, 2, 2, 2, 2, 2, 1, 2, 4, + 4, 2, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 2, 3, 1, 3, 2, + 3, 2, 2, 3, 1, 3, 4, 3, 2, 2, + 1, 3, 2, 2, 1, 2, 3, 1, 3, 1, + 6, 4, 4, 3, 5, 3, 3, 3, 2, 1, + 1, 2, 2, 2, 0, 0, 0, 1, 1, 2, + 3, 1, 2, 0, 5, 0, 0, 6, 1, 0, + 4, 1, 1, 1, 2, 0, 0, 6, 1, 0, + 0, 7, 0, 0, 7, 0, 0, 0, 0, 14, + 0, 0, 9, 0, 5, 0, 7, 0, 4, 2, + 2, 2, 3, 6, 8, 10, 12, 4, 3, 2, + 2, 1, 1, 0, 0, 6, 0, 0, 5, 1, + 2, 0, 0, 0, 8, 1, 1, 3, 3, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 0, 1, + 1, 0, 1, 1, 3, 4, 1, 3, 0, 1, + 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, + 2, 0, 3, 1, 1, 1, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, + 1, 1, 0, 0, 1, 0, 4, 2, 1, 1, + 3, 0, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, - 2, 2, 2, 3, 2, 2, 4, 4, 3, 2 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 3, 2, 2, 4, 4, 3, + 2 }; static const short yydefact[] = { 3, - 13, 13, 5, 0, 4, 0, 245, 592, 593, 0, - 348, 360, 539, 0, 11, 12, 0, 0, 0, 10, - 449, 795, 0, 0, 0, 0, 617, 246, 247, 62, - 0, 0, 782, 0, 37, 0, 0, 14, 0, 8, - 0, 17, 16, 68, 89, 65, 0, 594, 143, 265, - 243, 266, 570, 0, 335, 0, 334, 353, 0, 373, - 352, 391, 359, 0, 462, 461, 468, 467, 466, 444, - 347, 555, 361, 556, 87, 264, 581, 553, 0, 595, - 537, 0, 0, 244, 60, 61, 0, 597, 0, 598, - 0, 0, 0, 120, 121, 122, 123, 124, 434, 437, - 0, 613, 0, 438, 0, 0, 0, 0, 121, 122, + 13, 13, 5, 0, 4, 0, 245, 593, 594, 0, + 349, 361, 540, 0, 11, 12, 0, 0, 0, 10, + 450, 796, 0, 0, 0, 0, 618, 246, 247, 62, + 0, 0, 783, 0, 37, 0, 0, 14, 0, 8, + 0, 17, 16, 68, 89, 65, 0, 595, 143, 266, + 243, 267, 571, 0, 336, 0, 335, 354, 0, 374, + 353, 392, 360, 0, 463, 462, 469, 468, 467, 445, + 348, 556, 362, 557, 87, 265, 582, 554, 0, 596, + 538, 0, 0, 244, 60, 61, 0, 598, 0, 599, + 0, 248, 0, 120, 121, 122, 123, 124, 435, 438, + 0, 614, 0, 439, 0, 0, 0, 0, 121, 122, 123, 124, 24, 0, 0, 0, 0, 0, 0, 0, - 439, 601, 0, 604, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 348, 39, 134, 0, 0, 353, 133, - 0, 599, 0, 0, 568, 0, 0, 0, 567, 0, - 0, 0, 0, 265, 0, 541, 0, 264, 537, 29, + 440, 602, 0, 605, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 349, 39, 134, 0, 0, 354, 133, + 0, 600, 0, 0, 569, 0, 0, 0, 568, 0, + 0, 0, 0, 266, 0, 542, 0, 265, 538, 29, 0, 27, 3, 38, 0, 53, 52, 69, 15, 0, - 0, 407, 66, 58, 600, 541, 0, 537, 59, 0, - 0, 0, 85, 0, 369, 325, 552, 326, 564, 0, - 537, 350, 349, 57, 88, 336, 0, 371, 351, 86, - 342, 366, 367, 337, 355, 357, 346, 368, 0, 54, - 392, 450, 451, 452, 453, 465, 129, 128, 130, 454, - 455, 459, 0, 0, 468, 782, 464, 483, 440, 540, - 354, 0, 0, 389, 593, 0, 615, 143, 585, 586, - 582, 558, 596, 0, 557, 554, 0, 830, 826, 825, - 823, 805, 810, 811, 0, 817, 816, 802, 803, 801, - 820, 809, 806, 807, 808, 812, 813, 799, 800, 796, - 797, 798, 822, 814, 815, 804, 821, 0, 818, 725, - 353, 726, 791, 0, 245, 539, 269, 314, 0, 0, - 0, 0, 310, 308, 282, 312, 313, 0, 0, 0, + 0, 408, 66, 58, 601, 542, 0, 538, 59, 0, + 0, 0, 85, 0, 370, 326, 553, 327, 565, 0, + 538, 351, 350, 57, 88, 337, 0, 372, 352, 86, + 343, 367, 368, 338, 356, 358, 347, 369, 0, 54, + 393, 451, 452, 453, 454, 466, 129, 128, 130, 455, + 456, 460, 0, 0, 469, 783, 465, 484, 441, 541, + 355, 0, 0, 390, 594, 0, 616, 143, 586, 587, + 583, 559, 597, 0, 558, 555, 0, 831, 827, 826, + 824, 806, 811, 812, 0, 818, 817, 803, 804, 802, + 821, 810, 807, 808, 809, 813, 814, 800, 801, 797, + 798, 799, 823, 815, 816, 805, 822, 0, 819, 726, + 354, 727, 792, 248, 245, 540, 270, 315, 0, 0, + 0, 0, 311, 309, 283, 313, 314, 0, 0, 0, 0, 0, 247, 240, 0, 0, 153, 152, 0, 154, 155, 0, 0, 156, 0, 0, 148, 0, 214, 0, - 217, 151, 268, 182, 0, 0, 270, 271, 0, 150, - 332, 353, 333, 587, 293, 284, 0, 0, 146, 147, - 142, 0, 145, 0, 249, 0, 138, 0, 353, 137, - 436, 0, 431, 614, 612, 0, 157, 158, 0, 0, - 0, 396, 3, 22, 0, 610, 606, 607, 609, 611, - 608, 120, 121, 122, 123, 124, 603, 605, 602, 256, - 257, 0, 255, 33, 34, 0, 584, 583, 32, 31, - 41, 0, 132, 131, 140, 0, 0, 566, 0, 565, - 242, 260, 0, 574, 259, 0, 573, 0, 267, 578, - 0, 0, 13, 0, 0, 9, 9, 102, 72, 107, - 713, 0, 64, 63, 71, 105, 0, 0, 103, 67, - 580, 0, 0, 545, 0, 785, 0, 550, 0, 549, - 0, 0, 0, 0, 537, 389, 0, 56, 541, 537, - 563, 0, 339, 340, 0, 55, 389, 344, 343, 345, - 338, 358, 375, 374, 456, 460, 458, 0, 463, 469, - 484, 356, 0, 388, 390, 537, 73, 0, 0, 0, - 537, 79, 538, 569, 593, 616, 143, 0, 0, 819, - 824, 355, 537, 537, 0, 537, 829, 251, 0, 0, - 0, 0, 189, 0, 0, 191, 204, 205, 0, 0, - 0, 0, 0, 241, 188, 185, 184, 186, 0, 0, - 0, 0, 0, 268, 0, 0, 0, 183, 0, 262, - 187, 0, 0, 215, 0, 0, 0, 0, 0, 0, + 217, 151, 269, 182, 0, 0, 271, 272, 0, 150, + 333, 354, 334, 588, 294, 285, 0, 0, 146, 147, + 142, 0, 145, 0, 0, 138, 0, 354, 137, 437, + 0, 432, 615, 613, 0, 157, 158, 0, 0, 0, + 397, 3, 22, 0, 611, 607, 608, 610, 612, 609, + 120, 121, 122, 123, 124, 604, 606, 603, 257, 258, + 0, 256, 33, 34, 0, 585, 584, 32, 31, 41, + 0, 132, 131, 140, 0, 0, 567, 0, 566, 242, + 261, 0, 575, 260, 0, 574, 0, 268, 579, 0, + 0, 13, 0, 0, 9, 9, 102, 72, 107, 714, + 0, 64, 63, 71, 105, 0, 0, 103, 67, 581, + 0, 0, 546, 0, 786, 0, 551, 0, 550, 0, + 0, 0, 0, 538, 390, 0, 56, 542, 538, 564, + 0, 340, 341, 0, 55, 390, 345, 344, 346, 339, + 359, 376, 375, 457, 461, 459, 0, 464, 470, 485, + 357, 0, 389, 391, 538, 73, 0, 0, 0, 538, + 79, 539, 570, 594, 617, 143, 0, 0, 820, 825, + 356, 538, 538, 0, 538, 830, 0, 0, 0, 0, + 189, 0, 0, 191, 204, 205, 0, 0, 0, 0, + 0, 241, 188, 185, 184, 186, 0, 0, 0, 0, + 0, 269, 0, 0, 0, 183, 0, 263, 187, 0, + 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 278, 280, 281, 318, - 317, 0, 0, 0, 0, 0, 193, 535, 0, 201, - 315, 307, 0, 782, 296, 299, 300, 0, 0, 327, - 634, 630, 639, 0, 541, 537, 537, 537, 329, 637, - 0, 591, 331, 0, 0, 330, 295, 0, 291, 309, - 311, 588, 0, 292, 141, 144, 248, 136, 135, 532, - 447, 530, 433, 0, 362, 0, 0, 363, 364, 365, - 402, 403, 404, 401, 0, 394, 397, 0, 3, 0, - 28, 36, 35, 46, 0, 48, 42, 781, 776, 0, - 332, 353, 44, 333, 780, 50, 139, 263, 572, 571, - 267, 575, 0, 19, 21, 68, 108, 316, 0, 663, - 70, 661, 413, 0, 409, 408, 181, 0, 180, 542, - 579, 0, 755, 756, 0, 750, 353, 0, 749, 751, - 783, 765, 0, 0, 577, 548, 547, 0, 0, 562, - 0, 379, 370, 561, 0, 785, 551, 341, 372, 385, - 389, 457, 592, 593, 782, 0, 782, 594, 470, 471, - 473, 782, 476, 475, 0, 0, 0, 0, 386, 785, - 748, 0, 0, 0, 785, 748, 537, 76, 537, 82, - 828, 827, 791, 791, 791, 250, 0, 0, 0, 591, - 0, 0, 0, 0, 353, 0, 0, 0, 274, 0, - 272, 273, 0, 212, 149, 245, 592, 593, 246, 247, - 0, 0, 414, 445, 0, 239, 238, 740, 739, 0, + 0, 0, 0, 0, 279, 281, 282, 319, 318, 0, + 0, 0, 0, 0, 193, 536, 0, 201, 316, 308, + 0, 783, 297, 300, 301, 0, 0, 328, 635, 631, + 640, 0, 542, 538, 538, 538, 330, 638, 0, 592, + 332, 0, 0, 331, 296, 0, 292, 310, 312, 589, + 0, 293, 141, 144, 250, 0, 136, 135, 533, 448, + 531, 434, 0, 363, 0, 0, 364, 365, 366, 403, + 404, 405, 402, 0, 395, 398, 0, 3, 0, 28, + 36, 35, 46, 0, 48, 42, 782, 777, 0, 333, + 354, 44, 334, 781, 50, 139, 264, 573, 572, 268, + 576, 0, 19, 21, 68, 108, 317, 0, 664, 70, + 662, 414, 0, 410, 409, 181, 0, 180, 543, 580, + 0, 756, 757, 0, 751, 354, 0, 750, 752, 784, + 766, 0, 0, 578, 549, 548, 0, 0, 563, 0, + 380, 371, 562, 0, 786, 552, 342, 373, 386, 390, + 458, 593, 594, 783, 0, 783, 595, 471, 472, 474, + 783, 477, 476, 0, 0, 0, 0, 387, 786, 749, + 0, 0, 0, 786, 749, 538, 76, 538, 82, 829, + 828, 792, 792, 792, 252, 0, 0, 0, 0, 592, + 0, 0, 0, 0, 354, 0, 0, 0, 275, 0, + 273, 274, 0, 212, 149, 245, 593, 594, 246, 247, + 0, 0, 415, 446, 0, 239, 238, 741, 740, 0, 236, 235, 233, 234, 232, 231, 230, 227, 228, 229, 225, 226, 220, 221, 222, 223, 224, 218, 219, 0, 0, 0, 0, 0, 0, 195, 209, 0, 0, 194, - 537, 537, 0, 537, 534, 624, 0, 0, 0, 0, - 298, 0, 302, 0, 304, 0, 633, 632, 629, 628, - 781, 0, 0, 648, 0, 0, 785, 328, 785, 635, - 537, 748, 541, 634, 630, 0, 0, 537, 0, 0, - 0, 0, 0, 0, 448, 0, 447, 179, 178, 177, - 176, 396, 0, 0, 25, 0, 26, 47, 0, 40, - 0, 634, 630, 0, 772, 537, 775, 777, 0, 773, - 774, 454, 0, 18, 20, 125, 113, 126, 127, 0, - 106, 109, 0, 0, 0, 0, 662, 654, 410, 0, - 104, 546, 543, 754, 771, 760, 758, 0, 544, 753, - 770, 759, 757, 752, 784, 767, 778, 768, 761, 766, - 787, 0, 377, 560, 559, 383, 382, 480, 0, 479, - 782, 782, 782, 0, 504, 593, 0, 0, 497, 0, - 0, 507, 0, 100, 95, 0, 143, 509, 512, 0, - 489, 0, 98, 0, 389, 376, 0, 75, 0, 0, - 0, 0, 81, 0, 785, 748, 785, 748, 793, 792, - 794, 283, 190, 192, 289, 290, 0, 0, 0, 0, - 273, 276, 0, 0, 0, 0, 213, 0, 277, 279, - 207, 206, 197, 0, 196, 211, 0, 0, 621, 619, - 0, 622, 541, 202, 0, 0, 305, 0, 0, 0, - 631, 627, 638, 537, 647, 645, 646, 636, 785, 0, - 643, 0, 589, 590, 0, 294, 533, 531, 435, 0, - 395, 393, 245, 0, 23, 43, 49, 633, 629, 634, - 630, 0, 553, 0, 537, 635, 51, 0, 111, 0, - 115, 0, 117, 0, 119, 0, 714, 656, 0, 411, - 634, 630, 0, 268, 0, 587, 779, 0, 0, 788, - 789, 0, 0, 0, 380, 0, 0, 0, 482, 481, - 474, 537, 748, 503, 498, 101, 508, 389, 389, 495, - 496, 493, 494, 537, 748, 245, 592, 0, 375, 96, - 499, 510, 515, 516, 375, 375, 0, 0, 375, 94, - 500, 513, 375, 490, 491, 492, 389, 0, 441, 387, - 537, 253, 252, 254, 537, 78, 0, 84, 0, 0, - 0, 0, 0, 0, 418, 0, 0, 415, 216, 237, - 0, 198, 199, 208, 210, 620, 618, 625, 623, 0, - 203, 0, 297, 301, 303, 785, 641, 537, 642, 432, - 0, 398, 400, 633, 629, 558, 635, 112, 110, 0, - 0, 0, 0, 0, 169, 655, 0, 657, 658, 412, - 0, 590, 769, 763, 764, 762, 0, 786, 378, 384, - 0, 477, 478, 472, 785, 0, 407, 407, 785, 0, - 0, 0, 389, 389, 0, 389, 389, 0, 389, 0, - 407, 0, 428, 785, 785, 537, 537, 0, 0, 0, - 0, 416, 0, 0, 0, 200, 626, 306, 644, 785, - 0, 114, 116, 118, 721, 715, 719, 405, 0, 664, - 0, 245, 592, 593, 665, 679, 682, 685, 654, 0, - 0, 0, 0, 0, 0, 246, 711, 716, 0, 736, - 0, 673, 0, 0, 353, 0, 650, 671, 678, 649, - 672, 712, 0, 659, 273, 790, 381, 91, 537, 502, - 506, 93, 537, 389, 389, 524, 407, 245, 592, 0, - 511, 517, 518, 375, 375, 407, 407, 0, 407, 514, - 501, 0, 74, 80, 785, 785, 285, 286, 287, 288, - 0, 419, 536, 640, 399, 654, 720, 0, 660, 653, - 172, 729, 731, 732, 654, 654, 654, 0, 0, 0, - 697, 699, 700, 701, 0, 0, 0, 730, 0, 324, - 737, 0, 674, 322, 375, 0, 323, 0, 375, 0, - 0, 0, 170, 652, 651, 675, 710, 709, 785, 785, - 523, 520, 522, 0, 0, 389, 389, 389, 519, 521, - 505, 430, 0, 429, 424, 77, 83, 417, 0, 406, - 0, 0, 669, 668, 0, 0, 0, 0, 693, 0, - 702, 0, 708, 717, 0, 320, 321, 0, 0, 0, - 319, 171, 654, 90, 92, 389, 389, 529, 407, 407, - 0, 0, 443, 0, 722, 161, 0, 666, 680, 0, - 683, 656, 734, 686, 0, 168, 0, 353, 0, 0, - 0, 698, 707, 0, 0, 676, 528, 526, 525, 527, - 427, 426, 420, 65, 68, 0, 0, 0, 0, 654, - 0, 655, 0, 735, 654, 733, 690, 375, 695, 694, - 718, 741, 0, 655, 0, 425, 727, 728, 723, 162, - 667, 173, 655, 175, 670, 159, 0, 0, 0, 654, - 389, 0, 0, 0, 742, 743, 703, 677, 423, 0, - 422, 655, 656, 681, 0, 684, 165, 0, 164, 691, - 0, 696, 0, 741, 0, 0, 421, 724, 174, 160, - 687, 655, 166, 0, 0, 704, 744, 0, 692, 0, - 745, 0, 0, 0, 167, 746, 0, 705, 688, 0, - 0, 0, 747, 706, 655, 689, 0, 0, 0 + 538, 538, 0, 538, 535, 625, 0, 0, 0, 0, + 299, 0, 303, 0, 305, 0, 634, 633, 630, 629, + 782, 0, 0, 649, 0, 0, 786, 329, 786, 636, + 538, 749, 542, 635, 631, 0, 0, 538, 0, 0, + 0, 0, 0, 249, 0, 449, 0, 448, 179, 178, + 177, 176, 397, 0, 0, 25, 0, 26, 47, 0, + 40, 0, 635, 631, 0, 773, 538, 776, 778, 0, + 774, 775, 455, 0, 18, 20, 125, 113, 126, 127, + 0, 106, 109, 0, 0, 0, 0, 663, 655, 411, + 0, 104, 547, 544, 755, 772, 761, 759, 0, 545, + 754, 771, 760, 758, 753, 785, 768, 779, 769, 762, + 767, 788, 0, 378, 561, 560, 384, 383, 481, 0, + 480, 783, 783, 783, 0, 505, 594, 0, 0, 498, + 0, 0, 508, 0, 100, 95, 0, 143, 510, 513, + 0, 490, 0, 98, 0, 390, 377, 0, 75, 0, + 0, 0, 0, 81, 0, 786, 749, 786, 749, 794, + 793, 795, 251, 284, 190, 192, 290, 291, 0, 0, + 0, 0, 274, 277, 0, 0, 0, 0, 213, 0, + 278, 280, 207, 206, 197, 0, 196, 211, 0, 0, + 622, 620, 0, 623, 542, 202, 0, 0, 306, 0, + 0, 0, 632, 628, 639, 538, 648, 646, 647, 637, + 786, 0, 644, 0, 590, 591, 0, 295, 534, 532, + 436, 0, 396, 394, 245, 0, 23, 43, 49, 634, + 630, 635, 631, 0, 554, 0, 538, 636, 51, 0, + 111, 0, 115, 0, 117, 0, 119, 0, 715, 657, + 0, 412, 635, 631, 0, 269, 0, 588, 780, 0, + 0, 789, 790, 0, 0, 0, 381, 0, 0, 0, + 483, 482, 475, 538, 749, 504, 499, 101, 509, 390, + 390, 496, 497, 494, 495, 538, 749, 245, 593, 0, + 376, 96, 500, 511, 516, 517, 376, 376, 0, 0, + 376, 94, 501, 514, 376, 491, 492, 493, 390, 0, + 442, 388, 538, 254, 253, 255, 538, 78, 0, 84, + 0, 0, 0, 0, 0, 0, 419, 0, 0, 416, + 216, 237, 0, 198, 199, 208, 210, 621, 619, 626, + 624, 0, 203, 0, 298, 302, 304, 786, 642, 538, + 643, 433, 0, 399, 401, 634, 630, 559, 636, 112, + 110, 0, 0, 0, 0, 0, 169, 656, 0, 658, + 659, 413, 0, 591, 770, 764, 765, 763, 0, 787, + 379, 385, 0, 478, 479, 473, 786, 0, 408, 408, + 786, 0, 0, 0, 390, 390, 0, 390, 390, 0, + 390, 0, 408, 0, 429, 786, 786, 538, 538, 0, + 0, 0, 0, 417, 0, 0, 0, 200, 627, 307, + 645, 786, 0, 114, 116, 118, 722, 716, 720, 406, + 0, 665, 0, 245, 593, 594, 666, 680, 683, 686, + 655, 0, 0, 0, 0, 0, 0, 246, 712, 717, + 0, 737, 0, 674, 0, 0, 354, 0, 651, 672, + 679, 650, 673, 713, 0, 660, 274, 791, 382, 91, + 538, 503, 507, 93, 538, 390, 390, 525, 408, 245, + 593, 0, 512, 518, 519, 376, 376, 408, 408, 0, + 408, 515, 502, 0, 74, 80, 786, 786, 286, 287, + 288, 289, 0, 420, 537, 641, 400, 655, 721, 0, + 661, 654, 172, 730, 732, 733, 655, 655, 655, 0, + 0, 0, 698, 700, 701, 702, 0, 0, 0, 731, + 0, 325, 738, 0, 675, 323, 376, 0, 324, 0, + 376, 0, 0, 0, 170, 653, 652, 676, 711, 710, + 786, 786, 524, 521, 523, 0, 0, 390, 390, 390, + 520, 522, 506, 431, 0, 430, 425, 77, 83, 418, + 0, 407, 0, 0, 670, 669, 0, 0, 0, 0, + 694, 0, 703, 0, 709, 718, 0, 321, 322, 0, + 0, 0, 320, 171, 655, 90, 92, 390, 390, 530, + 408, 408, 0, 0, 444, 0, 723, 161, 0, 667, + 681, 0, 684, 657, 735, 687, 0, 168, 0, 354, + 0, 0, 0, 699, 708, 0, 0, 677, 529, 527, + 526, 528, 428, 427, 421, 65, 68, 0, 0, 0, + 0, 655, 0, 656, 0, 736, 655, 734, 691, 376, + 696, 695, 719, 742, 0, 656, 0, 426, 728, 729, + 724, 162, 668, 173, 656, 175, 671, 159, 0, 0, + 0, 655, 390, 0, 0, 0, 743, 744, 704, 678, + 424, 0, 423, 656, 657, 682, 0, 685, 165, 0, + 164, 692, 0, 697, 0, 742, 0, 0, 422, 725, + 174, 160, 688, 656, 166, 0, 0, 705, 745, 0, + 693, 0, 746, 0, 0, 0, 167, 747, 0, 706, + 689, 0, 0, 0, 748, 707, 656, 690, 0, 0, + 0 }; -static const short yydefgoto[] = { 1527, - 413, 2, 414, 165, 655, 315, 233, 3, 4, 38, - 629, 363, 932, 382, 40, 933, 392, 635, 636, 637, - 42, 43, 422, 171, 169, 44, 934, 721, 956, 726, - 958, 46, 935, 936, 172, 173, 423, 657, 881, 882, - 610, 883, 221, 47, 48, 49, 341, 316, 317, 318, - 1251, 1468, 1408, 1488, 1417, 1510, 1166, 1463, 1483, 357, - 837, 319, 566, 800, 320, 321, 358, 323, 51, 240, - 384, 402, 52, 53, 324, 526, 325, 326, 327, 328, - 424, 329, 1252, 463, 587, 330, 1253, 55, 204, 640, - 331, 205, 504, 206, 184, 197, 59, 446, 185, 1063, - 464, 1181, 198, 1064, 60, 947, 474, 61, 62, 625, - 626, 627, 1229, 429, 763, 764, 1434, 1435, 1403, 1364, - 1292, 63, 614, 352, 471, 1203, 1365, 976, 846, 64, - 65, 66, 67, 225, 68, 69, 70, 227, 709, 710, - 711, 712, 229, 716, 717, 940, 941, 942, 1091, 1101, - 1092, 1281, 1093, 1094, 1282, 1283, 611, 612, 567, 827, - 333, 432, 433, 178, 186, 72, 73, 74, 187, 188, - 157, 76, 131, 334, 335, 336, 78, 337, 80, 714, - 122, 123, 124, 104, 81, 338, 805, 806, 822, 590, - 1256, 1257, 1373, 1230, 1167, 1168, 1169, 661, 1258, 888, - 1259, 1315, 1440, 1375, 1410, 1260, 1261, 1393, 1454, 1316, - 1441, 1317, 1443, 1318, 1445, 1508, 1522, 1470, 1502, 1421, - 1472, 1380, 425, 658, 1163, 1262, 1329, 1424, 1226, 1227, - 1306, 1438, 1482, 1419, 1405, 1263, 1414, 1332, 770, 1474, - 1475, 1476, 1517, 678, 679, 910, 1059, 1176, 680, 681, - 682, 906, 683, 150, 908, 685, 1061, 1062, 497, 83, - 84 +static const short yydefgoto[] = { 1529, + 412, 2, 413, 165, 654, 315, 233, 3, 4, 38, + 628, 362, 933, 381, 40, 934, 391, 634, 635, 636, + 42, 43, 421, 171, 169, 44, 935, 720, 957, 725, + 959, 46, 936, 937, 172, 173, 422, 656, 882, 883, + 609, 884, 221, 47, 48, 49, 341, 316, 317, 318, + 1253, 1470, 1410, 1490, 1419, 1512, 1168, 1465, 1485, 356, + 837, 319, 564, 800, 320, 321, 357, 323, 345, 51, + 240, 383, 401, 52, 53, 324, 524, 325, 326, 327, + 328, 423, 329, 1254, 462, 585, 330, 1255, 55, 204, + 639, 331, 205, 502, 206, 184, 197, 59, 445, 185, + 1065, 463, 1183, 198, 1066, 60, 948, 473, 61, 62, + 624, 625, 626, 1231, 428, 763, 764, 1436, 1437, 1405, + 1366, 1294, 63, 613, 351, 470, 1205, 1367, 978, 847, + 64, 65, 66, 67, 225, 68, 69, 70, 227, 708, + 709, 710, 711, 229, 715, 716, 941, 942, 943, 1093, + 1103, 1094, 1283, 1095, 1096, 1284, 1285, 610, 611, 565, + 827, 333, 431, 432, 178, 186, 72, 73, 74, 187, + 188, 157, 76, 131, 334, 335, 336, 78, 337, 80, + 713, 122, 123, 124, 104, 81, 338, 805, 806, 822, + 588, 1258, 1259, 1375, 1232, 1169, 1170, 1171, 660, 1260, + 889, 1261, 1317, 1442, 1377, 1412, 1262, 1263, 1395, 1456, + 1318, 1443, 1319, 1445, 1320, 1447, 1510, 1524, 1472, 1504, + 1423, 1474, 1382, 424, 657, 1165, 1264, 1331, 1426, 1228, + 1229, 1308, 1440, 1484, 1421, 1407, 1265, 1416, 1334, 770, + 1476, 1477, 1478, 1519, 677, 678, 911, 1061, 1178, 679, + 680, 681, 907, 682, 150, 909, 684, 1063, 1064, 496, + 83, 84 }; -static const short yypact[] = { 114, - 129,-32768,-32768, 10013,-32768, 40, 57, 45, 73, 68, - 155,-32768,-32768, 1229,-32768,-32768, 202, 239, 260,-32768, --32768,-32768, 1097, 1036, 915, 10243,-32768, 264, 168,-32768, - 2214, 2214,-32768, 2014,-32768, 10013, 323,-32768, 317, 182, - 10072,-32768,-32768, 311,-32768, 398, 366, 389,-32768,-32768, --32768,-32768, 246, 3367,-32768, 4571,-32768, 975, 284,-32768, - 414,-32768,-32768, 1604,-32768,-32768, 415,-32768,-32768, 438, - 10673,-32768,-32768,-32768, 1694,-32768,-32768,-32768, 2132,-32768, --32768, 609, 7413, 377,-32768,-32768, 8981,-32768, 8529,-32768, - 8529, 8529, 10450,-32768, 45, 73, 264, 447, 408, 467, - 389,-32768, 609,-32768, 609, 8981, 8981, 450,-32768,-32768, --32768,-32768,-32768, 207, 528, 419, 503, 556, 537, 578, --32768,-32768, 814,-32768, 1121, 45, 73, 508, 264, 447, --32768, 1164, 1000,-32768, 495,-32768, 5263, 5847, 1894,-32768, - 8529,-32768, 8981, 4134,-32768, 2240, 649, 4134,-32768, 1259, - 4258, 4258, 2014, 531, 552, 570, 559, 562,-32768,-32768, - 670,-32768, 573,-32768, 5005, 40,-32768,-32768,-32768, 694, - 130, 370, 642,-32768,-32768, 610, 212,-32768,-32768, 4314, - 4314, 5429, 1694, 399,-32768,-32768, 256,-32768,-32768, 2528, --32768,-32768,-32768,-32768,-32768, 975, 492,-32768, 414, 1694, --32768,-32768,-32768, 1501, 975,-32768, 414,-32768, 5263,-32768, +static const short yypact[] = { 115, + 150,-32768,-32768, 5678,-32768, 106, 44, 53, 174, 89, + 199,-32768,-32768, 1304,-32768,-32768, 129, 180, 190,-32768, +-32768,-32768, 1099, 807, 855, 3485,-32768, 186, 474,-32768, + 1489, 1489,-32768, 4751,-32768, 5678, 203,-32768, 249, 465, + 10095,-32768,-32768, 260,-32768, 333, 327, 342,-32768,-32768, +-32768,-32768, 268, 1815,-32768, 10288,-32768, 1834, 274,-32768, + 406,-32768,-32768, 1655,-32768,-32768, 410,-32768,-32768, 382, + 5305,-32768,-32768,-32768, 1207,-32768,-32768,-32768, 1129,-32768, +-32768, 370, 7424, 446,-32768,-32768, 9063,-32768, 8611,-32768, + 8611,-32768, 10500,-32768, 53, 174, 186, 484, 439, 494, + 342,-32768, 370,-32768, 370, 9063, 9063, 472,-32768,-32768, +-32768,-32768,-32768, 88, 513, 535, 554, 588, 522, 546, +-32768,-32768, 1016,-32768, 1186, 53, 174, 576, 186, 484, +-32768, 1300, 376,-32768, 539,-32768, 4762, 4510, 768,-32768, + 8611,-32768, 9063, 2096,-32768, 1432, 814, 2096,-32768, 1297, + 2644, 2644, 4751, 544, 596, 614, 602, 641,-32768,-32768, + 744,-32768, 653,-32768, 2623, 106,-32768,-32768,-32768, 791, + 112, 292, 708,-32768,-32768, 688, 36,-32768,-32768, 2737, + 2737, 4824, 1207, 564,-32768,-32768, 341,-32768,-32768, 1644, +-32768,-32768,-32768,-32768,-32768, 1834, 718,-32768, 406, 1207, +-32768,-32768,-32768, 2048, 1834,-32768, 406,-32768, 4762,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 389, 1289, 1289, 415,-32768,-32768,-32768,-32768,-32768, - 767, 609, 627, 414, 441, 1133,-32768, 338,-32768,-32768, --32768,-32768,-32768, 4666,-32768,-32768, 231,-32768, 632, 645, --32768,-32768,-32768,-32768, 674,-32768,-32768,-32768,-32768,-32768, +-32768, 342, 1322, 1322, 410,-32768,-32768,-32768,-32768,-32768, + 843, 370, 705, 406, 463, 1059,-32768, 159,-32768,-32768, +-32768,-32768,-32768, 2835,-32768,-32768, 338,-32768, 730, 746, +-32768,-32768,-32768,-32768, 740,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 620,-32768,-32768, - 767, 10673, 820, 8529,-32768, 668,-32768,-32768, 9596, 9683, - 9770, 9770,-32768,-32768,-32768,-32768,-32768, 679, 704, 708, - 714, 719, 447, 9068, 1259, 9770,-32768,-32768, 9770,-32768, --32768, 9770, 6885,-32768, 9770, 270,-32768, 9770,-32768, 9155, --32768, 10546,-32768, 1405, 3136, 9242,-32768, 786, 1307,-32768, - 752, 3651, 3496,-32768, 360,-32768, 1295, 2118,-32768,-32768, --32768, 270,-32768, 270,-32768, 270,-32768, 5263, 1999,-32768, --32768, 1259, 697,-32768,-32768, 693, 745, 10765, 705, 716, - 724, 1784, 573,-32768, 508,-32768,-32768,-32768,-32768,-32768, --32768, 528, 419, 503, 556, 537,-32768,-32768,-32768, 45, - 73, 784,-32768,-32768,-32768, 1000,-32768,-32768,-32768,-32768, --32768, 10666,-32768,-32768,-32768, 270, 270,-32768, 536,-32768, --32768,-32768, 4134,-32768,-32768, 4134,-32768, 732,-32768,-32768, - 4666, 36, 741, 748, 10450,-32768,-32768,-32768,-32768,-32768, --32768, 124,-32768,-32768,-32768,-32768, 6977, 9068,-32768,-32768, --32768, 9068, 750,-32768, 6213, 103, 4770,-32768, 4770,-32768, - 4797, 4797, 5429, 757,-32768, 414, 5263,-32768, 761,-32768, --32768, 5108, 1501, 975, 5263,-32768, 414,-32768,-32768, 414, - 1501,-32768, 673,-32768,-32768, 389,-32768, 1289,-32768, 1596, --32768, 767, 670, 762, 414,-32768,-32768, 801, 807, 809, --32768,-32768,-32768,-32768, 580,-32768, 374, 772, 775,-32768, --32768, 767,-32768,-32768, 551,-32768,-32768,-32768, 270, 9068, - 668, 6885,-32768, 451, 6885,-32768,-32768,-32768, 8981, 10680, - 10680, 10680, 10680, 10833,-32768,-32768,-32768,-32768, 782, 9857, - 9857, 6885, 785, 531, 789, 841, 795,-32768, 8981,-32768, --32768, 6694, 6885,-32768, 9068, 9068, 7069, 9068, 9068, 9068, - 9068, 9068, 9068, 9068, 9068, 9068, 9068, 9068, 9068, 9068, - 9068, 9068, 9068, 9068, 9068, 9068,-32768,-32768,-32768,-32768, --32768, 9068, 9068, 9068, 8981, 4897, 439, 876, 7777,-32768, --32768,-32768, 859, 914, 491, 516, 525, 1537, 649,-32768, - 1863, 1863,-32768, 2957, 813, 834, 882,-32768,-32768, 269, - 8337, 648,-32768, 730, 609,-32768,-32768, 9068,-32768,-32768, --32768,-32768, 200,-32768,-32768,-32768,-32768,-32768,-32768, 872, - 881,-32768,-32768, 1259,-32768, 7506, 7598,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 78,-32768, 849, 835, 573, 884, --32768,-32768,-32768, 1058, 187, 885,-32768,-32768, 3026, 10506, - 3026, 10131, 1604, 5167,-32768, 886,-32768,-32768,-32768,-32768, - 848,-32768, 898,-32768,-32768, 311, 322, 903, 841,-32768, --32768,-32768,-32768, 6415, 10833,-32768, 745, 866, 10765,-32768, --32768, 867,-32768,-32768, 869, 188, 10187, 870,-32768, 245, - 10299, 922, 923, 526,-32768,-32768,-32768, 4770, 4770,-32768, - 5108, 926,-32768,-32768, 883, 103,-32768, 1501,-32768, 933, - 414,-32768, 419, 503,-32768, 906,-32768, 578, 942,-32768, --32768, 220,-32768,-32768, 1330, 3254, 58, 66,-32768, 103, - 1767, 8981, 8981, 8981, 103, 1767,-32768,-32768,-32768,-32768, --32768,-32768, 618, 618, 618,-32768, 899, 904, 9335, 882, - 905, 913, 917, 948, 4231, 955, 958, 961,-32768, 934, --32768,-32768, 941,-32768,-32768, 980, 684, 717, 286, 201, - 9068, 990,-32768, 994, 945, 10833, 10833,-32768,-32768, 993, - 3688, 4340, 3916, 4445, 4416, 2273, 2982, 2009, 2009, 2009, - 1064, 1064, 1243, 1243, 664, 664, 664,-32768,-32768, 950, - 957, 962, 966, 967, 10680, 439,-32768, 6977, 9068,-32768, --32768,-32768, 9068,-32768,-32768, 977, 9770, 971, 1010, 1031, --32768, 9068,-32768, 9068,-32768, 9068, 3128,-32768, 3128,-32768, - 205, 995, 999,-32768, 1007, 10680, 103,-32768, 103, 3833, --32768, 1767, 1008, 8616, 8616, 6002, 1013, 9155, 1017, 3489, - 2118, 773, 1018, 9068, 1259, 992, 881,-32768, 10833,-32768, - 10833, 1784, 1021, 9422,-32768, 1029,-32768,-32768, 10666,-32768, - 10680, 2070, 2070, 3775,-32768,-32768,-32768,-32768, 2528,-32768, --32768, 59, 9068,-32768,-32768, 528,-32768, 556, 537, 9068, - 1069,-32768, 553, 591, 611, 841,-32768,-32768,-32768, 31, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 8433,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 923, 1076,-32768,-32768, --32768, 10680,-32768,-32768,-32768,-32768, 1085,-32768, 8981,-32768, --32768,-32768,-32768, 1404,-32768, 608, 1191, 1082,-32768, 9068, - 5357,-32768, 3428, 291, 291, 365, 622, 1689, 10344, 5508, --32768, 110, 291, 1095, 414,-32768, 6977,-32768, 1049, 270, - 270, 270,-32768, 1051, 103, 1767, 103, 1767,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1070, 1072, 1077, 1078, - 848,-32768, 10697, 6977, 6510, 1073,-32768, 9068,-32768,-32768, --32768,-32768, 388, 1071,-32768,-32768, 1083, 42, 633, 633, - 1074, 633,-32768,-32768, 9770, 1175,-32768, 1087, 1089, 1093, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 103, 1099, --32768, 1092,-32768,-32768, 3635,-32768, 10833,-32768,-32768, 1096, --32768,-32768, 142, 1100,-32768,-32768,-32768, 2358, 2358, 2480, - 2480, 3775,-32768, 2528,-32768, 2623, 10546, 1102,-32768, 322, --32768, 9068,-32768, 9068,-32768, 9068,-32768, 64, 6602,-32768, - 8709, 8709, 6098, 305, 1106, 356,-32768, 6977, 6789,-32768, --32768, 151, 6977, 6977,-32768, 1108, 1109, 1596,-32768,-32768, --32768,-32768, 1767, 10833,-32768,-32768,-32768, 414, 414,-32768, --32768,-32768,-32768,-32768, 1767, 297, 727, 9068, 673,-32768, - 1160,-32768,-32768,-32768, 181, 879, 2132, 649, 936, 291, - 1163,-32768, 1055,-32768,-32768,-32768, 414, 5635,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1115,-32768, 1119, 9068, - 9068, 9068, 9068, 6977,-32768, 9068, 1168,-32768,-32768, 10833, - 9068,-32768, 388,-32768,-32768,-32768,-32768,-32768,-32768, 1122, --32768, 1189,-32768,-32768,-32768, 103,-32768,-32768,-32768,-32768, - 9068,-32768,-32768, 2358, 2358,-32768, 2623,-32768,-32768, 1129, - 1130, 1132, 1147, 1259,-32768,-32768, 5908, 1217,-32768,-32768, - 1144, 1610,-32768,-32768,-32768,-32768, 10680,-32768,-32768,-32768, - 6977,-32768,-32768,-32768, 103, 1145, 1192, 1192, 103, 1146, - 9068, 9068, 10675, 414, 3067, 414, 414, 780, 414, 4911, - 1192, 7846,-32768, 103, 103,-32768,-32768, 1157, 1166, 1167, - 1170,-32768, 10788, 6977, 1161,-32768,-32768,-32768,-32768, 103, - 1171,-32768,-32768,-32768,-32768, 1147,-32768,-32768, 692,-32768, - 158, 1207, 766, 781,-32768,-32768,-32768,-32768,-32768, 9068, - 1226, 1234, 1235, 8802, 518, 428,-32768,-32768, 8894, 1296, - 1245,-32768, 5246, 10405, 10551, 5754,-32768,-32768, 1288,-32768, --32768,-32768, 7941,-32768, 436,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 10675, 10675,-32768, 1192, 605, 893, 9068, --32768,-32768,-32768, 673, 673, 1192, 1192, 580, 1192,-32768, --32768, 4001,-32768,-32768, 103, 103,-32768,-32768,-32768,-32768, - 6977,-32768,-32768,-32768,-32768,-32768,-32768, 1259,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 841, 1213, 1215, 10584, --32768,-32768,-32768,-32768, 1253, 9068, 1261,-32768, 841,-32768, --32768, 1236,-32768,-32768, 673, 707,-32768, 779, 673, 9509, - 788, 164,-32768,-32768,-32768,-32768,-32768,-32768, 103, 103, --32768,-32768,-32768, 9068, 9068, 10675, 414, 414,-32768,-32768, --32768,-32768, 7690,-32768,-32768,-32768,-32768,-32768, 1237,-32768, - 638, 638,-32768,-32768, 1321, 6323, 8981, 9068,-32768, 8051, --32768, 1281,-32768,-32768, 670,-32768,-32768, 9944, 9944, 7161, --32768,-32768, 841,-32768,-32768, 10675, 10675,-32768, 1192, 1192, - 1239, 10719, 1246, 5696,-32768,-32768, 8981,-32768,-32768, 8243, --32768, 64,-32768,-32768, 1290,-32768, 1240, 373, 5263, 10811, - 8051,-32768,-32768, 1147, 44,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 398, 311, 1244, 1247, 841, 1251, 841, - 8147,-32768, 647,-32768,-32768,-32768,-32768, 673,-32768,-32768, - 1147, 1352, 1305,-32768, 132,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 9068, 1306, 7253, 841, - 414, 8051, 1275, 257, 1310,-32768,-32768,-32768,-32768, 124, --32768,-32768, 64,-32768, 1264,-32768,-32768, 1314,-32768,-32768, - 1312,-32768, 9068, 1352, 1332, 1352,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1272, 274,-32768,-32768, 7345,-32768, 6977, --32768, 1380, 1333, 1285,-32768,-32768, 171,-32768,-32768, 1386, - 1340, 8147,-32768,-32768,-32768,-32768, 1412, 1413,-32768 +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 714,-32768,-32768, + 843, 5305, 490,-32768,-32768, 750,-32768,-32768, 9678, 9765, + 9852, 9852,-32768,-32768,-32768,-32768,-32768, 756, 780, 792, + 799, 806, 484, 9150, 1297, 9852,-32768,-32768, 9852,-32768, +-32768, 9852, 6988,-32768, 9852, 632,-32768, 9852,-32768, 9237, +-32768, 10551,-32768, 1032, 2854, 9324,-32768, 877, 644,-32768, + 782, 2401, 5056,-32768, 173,-32768, 1931, 2142,-32768,-32768, +-32768, 632,-32768, 632, 8611,-32768, 4762, 1997,-32768,-32768, + 1297, 774,-32768,-32768, 786, 863, 10700, 825, 831, 834, + 1942, 653,-32768, 576,-32768,-32768,-32768,-32768,-32768,-32768, + 513, 535, 554, 588, 522,-32768,-32768,-32768, 53, 174, + 871,-32768,-32768,-32768, 376,-32768,-32768,-32768,-32768,-32768, + 5364,-32768,-32768,-32768, 632, 632,-32768, 473,-32768,-32768, +-32768, 2096,-32768,-32768, 2096,-32768, 841,-32768,-32768, 2835, + 69, 845, 846, 10500,-32768,-32768,-32768,-32768,-32768,-32768, + 119,-32768,-32768,-32768,-32768, 7080, 9150,-32768,-32768,-32768, + 9150, 847,-32768, 6316, 98, 3264,-32768, 3264,-32768, 4260, + 4260, 4824, 849,-32768, 406, 4762,-32768, 848,-32768,-32768, + 4649, 2048, 1834, 4762,-32768, 406,-32768,-32768, 406, 2048, +-32768, 874,-32768,-32768, 342,-32768, 1322,-32768, 1673,-32768, + 843, 744, 900, 406,-32768,-32768, 892, 894, 895,-32768, +-32768,-32768,-32768, 489,-32768, 237, 858, 861,-32768,-32768, + 843,-32768,-32768, 667,-32768,-32768, 8611, 9150, 750, 6988, +-32768, 271, 6988,-32768,-32768,-32768, 9063, 5611, 5611, 5611, + 5611, 10768,-32768,-32768,-32768,-32768, 866, 9939, 9939, 6988, + 867, 544, 869, 921, 875,-32768, 9063,-32768,-32768, 6797, + 6988,-32768, 9150, 9150, 5550, 9150, 9150, 9150, 9150, 9150, + 9150, 9150, 9150, 9150, 9150, 9150, 9150, 9150, 9150, 9150, + 9150, 9150, 9150, 9150,-32768,-32768,-32768,-32768,-32768, 9150, + 9150, 9150, 9063, 5016, 493, 1042, 7788,-32768,-32768,-32768, + 931, 976, 358, 372, 392, 2061, 814,-32768, 1648, 1648, +-32768, 3217, 876, 893, 944,-32768,-32768, 363, 8419, 361, +-32768, 686, 370,-32768,-32768, 9150,-32768,-32768,-32768,-32768, + 86,-32768,-32768,-32768,-32768, 632,-32768,-32768, 934, 946, +-32768,-32768, 1297,-32768, 7517, 7609,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 134,-32768, 909, 883, 653, 948,-32768, +-32768,-32768, 1050, 176, 950,-32768,-32768, 726, 10556, 726, + 4026, 1655, 3637,-32768, 951,-32768,-32768,-32768,-32768, 908, +-32768, 962,-32768,-32768, 260, 478, 965, 921,-32768,-32768, +-32768,-32768, 6518, 10768,-32768, 863, 915, 10700,-32768,-32768, + 919,-32768,-32768, 922, 263, 5440, 923,-32768, 170, 10349, + 971, 972, 431,-32768,-32768,-32768, 3264, 3264,-32768, 4649, + 977,-32768,-32768, 936, 98,-32768, 2048,-32768, 991, 406, +-32768, 535, 554,-32768, 963,-32768, 546, 998,-32768,-32768, + 365,-32768,-32768, 1334, 2508, 54, 80,-32768, 98, 1779, + 9063, 9063, 9063, 98, 1779,-32768,-32768,-32768,-32768,-32768, +-32768, 1530, 1530, 1530,-32768, 632, 959, 960, 9417, 944, + 969, 975, 981, 1010, 4541, 1014, 1017, 1018,-32768, 985, +-32768,-32768, 986,-32768,-32768, 1035, 695, 697, 61, 335, + 9150, 1047,-32768, 1052, 1004, 10768, 10768,-32768,-32768, 1065, + 4859, 3372, 4889, 5136, 4165, 3092, 2981, 1994, 1994, 1994, + 1514, 1514, 1283, 1283, 822, 822, 822,-32768,-32768, 1005, + 1009, 1019, 1028, 1030, 5611, 493,-32768, 7080, 9150,-32768, +-32768,-32768, 9150,-32768,-32768, 1034, 9852, 1033, 1054, 1097, +-32768, 9150,-32768, 9150,-32768, 9150, 2121,-32768, 2121,-32768, + 82, 1037, 1043,-32768, 1046, 5611, 98,-32768, 98, 3667, +-32768, 1779, 1048, 8698, 8698, 6110, 1057, 9237, 1066, 1826, + 2142, 699, 1072,-32768, 9150, 1297, 1049, 946,-32768, 10768, +-32768, 10768, 1942, 1074, 9504,-32768, 1051,-32768,-32768, 5364, +-32768, 5611, 3067, 3067, 10156,-32768,-32768,-32768,-32768, 1644, +-32768,-32768, 766, 9150,-32768,-32768, 513,-32768, 588, 522, + 9150, 1104,-32768, 440, 526, 538, 921,-32768,-32768,-32768, + 140,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 8515,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 972, 1120,-32768, +-32768,-32768, 5611,-32768,-32768,-32768,-32768, 1123,-32768, 9063, +-32768,-32768,-32768,-32768, 1713,-32768, 619, 888, 1117,-32768, + 9150, 10227,-32768, 4267, 594, 594, 113, 552, 2934, 10394, + 3809,-32768, 149, 594, 1135, 406,-32768, 7080,-32768, 1092, + 632, 632, 632,-32768, 1094, 98, 1779, 98, 1779,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1113, 1115, + 1125, 1126, 908,-32768, 10632, 7080, 6613, 1100,-32768, 9150, +-32768,-32768,-32768,-32768, 272, 1112,-32768,-32768, 1121, 38, + 943, 943, 1101, 943,-32768,-32768, 9852, 1213,-32768, 1136, + 1138, 1139,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 98, 1140,-32768, 1114,-32768,-32768, 1859,-32768, 10768,-32768, +-32768, 1122,-32768,-32768, 153, 1141,-32768,-32768,-32768, 3247, + 3247, 3416, 3416, 10156,-32768, 1644,-32768, 3929, 10551, 1143, +-32768, 478,-32768, 9150,-32768, 9150,-32768, 9150,-32768, 78, + 6705,-32768, 8791, 8791, 6220, 177, 1145, 282,-32768, 7080, + 6892,-32768,-32768, 166, 7080, 7080,-32768, 1153, 1155, 1673, +-32768,-32768,-32768,-32768, 1779, 10768,-32768,-32768,-32768, 406, + 406,-32768,-32768,-32768,-32768,-32768, 1779, 427, 698, 9150, + 874,-32768, 1165,-32768,-32768,-32768, 492, 548, 1129, 814, + 899, 594, 1185,-32768, 980,-32768,-32768,-32768, 406, 7857, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1159,-32768, + 1160, 9150, 9150, 9150, 9150, 7080,-32768, 9150, 1208,-32768, +-32768, 10768, 9150,-32768, 272,-32768,-32768,-32768,-32768,-32768, +-32768, 1162,-32768, 1228,-32768,-32768,-32768, 98,-32768,-32768, +-32768,-32768, 9150,-32768,-32768, 3247, 3247,-32768, 3929,-32768, +-32768, 1169, 1171, 1176, 1194, 1297,-32768,-32768, 6000, 1259, +-32768,-32768, 1184, 1250,-32768,-32768,-32768,-32768, 5611,-32768, +-32768,-32768, 7080,-32768,-32768,-32768, 98, 1202, 1230, 1230, + 98, 1204, 9150, 9150, 10610, 406, 3045, 406, 406, 732, + 406, 4404, 1230, 7928,-32768, 98, 98,-32768,-32768, 1210, + 1211, 1218, 1219,-32768, 10723, 7080, 1183,-32768,-32768,-32768, +-32768, 98, 1223,-32768,-32768,-32768,-32768, 1194,-32768,-32768, + 854,-32768, 189, 1260, 733, 761,-32768,-32768,-32768,-32768, +-32768, 9150, 1271, 1275, 1279, 8884, 684, 606,-32768,-32768, + 8976, 1332, 1285,-32768, 4742, 10455, 3697, 5887,-32768,-32768, + 1331,-32768,-32768,-32768, 8023,-32768, 306,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 10610, 10610,-32768, 1230, 659, + 856, 9150,-32768,-32768,-32768, 874, 874, 1230, 1230, 489, + 1230,-32768,-32768, 5749,-32768,-32768, 98, 98,-32768,-32768, +-32768,-32768, 7080,-32768,-32768,-32768,-32768,-32768,-32768, 1297, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 921, 1256, + 1262, 10588,-32768,-32768,-32768,-32768, 1312, 9150, 1316,-32768, + 921,-32768,-32768, 1288,-32768,-32768, 874, 857,-32768, 860, + 874, 9591, 878, 201,-32768,-32768,-32768,-32768,-32768,-32768, + 98, 98,-32768,-32768,-32768, 9150, 9150, 10610, 406, 406, +-32768,-32768,-32768,-32768, 7701,-32768,-32768,-32768,-32768,-32768, + 1301,-32768, 557, 557,-32768,-32768, 1377, 6426, 9063, 9150, +-32768, 8133,-32768, 1335,-32768,-32768, 744,-32768,-32768, 10026, + 10026, 7172,-32768,-32768, 921,-32768,-32768, 10610, 10610,-32768, + 1230, 1230, 1290, 10654, 1298, 4177,-32768,-32768, 9063,-32768, +-32768, 8325,-32768, 78,-32768,-32768, 1339,-32768, 1291, 233, + 4762, 10746, 8133,-32768,-32768, 1194, 60,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 333, 260, 1305, 1307, 921, + 1308, 921, 8229,-32768, 589,-32768,-32768,-32768,-32768, 874, +-32768,-32768, 1194, 1412, 1365,-32768, 132,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 9150, 1366, + 7264, 921, 406, 8133, 1336, 58, 1373,-32768,-32768,-32768, +-32768, 119,-32768,-32768, 78,-32768, 1324,-32768,-32768, 1380, +-32768,-32768, 1382,-32768, 9150, 1412, 1384, 1412,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 1340, 121,-32768,-32768, 7356, +-32768, 7080,-32768, 1441, 1392, 1344,-32768,-32768, 167,-32768, +-32768, 1445, 1400, 8229,-32768,-32768,-32768,-32768, 1462, 1463, +-32768 }; static const short yypgoto[] = {-32768, - 1415,-32768, -329,-32768, 1001, 9, 10, 1414,-32768, 69, --32768,-32768, 226, 1056,-32768, 393,-32768,-32768,-32768, 565, --32768, 1260, -657, -8, -649, 1262, 136,-32768,-32768,-32768, --32768,-32768, 489, 496,-32768,-32768,-32768,-32768,-32768, 394, - 219,-32768,-32768,-32768, 5249, 77, 146, -30, 907,-32768, - 1490,-32768, 61,-32768, -1303,-32768, -1330, -83,-32768, 1186, - -230, -249,-32768, -767, 3615, 83, 1019, 3530,-32768, -97, - -79, 15, -49, 288,-32768,-32768,-32768, -313,-32768, -157, --32768,-32768, -1173, -51, -330, 1866, 119, 808, -163, 22, - 80, -188, -4, -96, -917, 186,-32768, -70,-32768,-32768, - -176,-32768,-32768,-32768,-32768,-32768, 845, 540, 11,-32768, - 590,-32768,-32768, -1107, -415, 794,-32768,-32768,-32768,-32768, --32768, -47,-32768,-32768,-32768,-32768,-32768,-32768, 598, -374, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 1223,-32768, 381, - 542,-32768,-32768,-32768,-32768, 344, -904, 534,-32768,-32768, --32768,-32768,-32768, 530,-32768, 273, 856, 629, 910, 2154, - 34, 3, -421, 1291, 1443, -461,-32768, 17,-32768, 2697, - -128, 328, -55, 4100, 1148,-32768, 4430, 1823, 2703, -5, - -110,-32768, 1357,-32768, 4154, 2763, -422,-32768, 4073,-32768, --32768, 227, -868, -1069,-32768,-32768, 318, 8, -348,-32768, --32768,-32768,-32768, -1246,-32768, -1199, -1315,-32768,-32768,-32768, + 1466,-32768, -329,-32768, 1053, 32, -1, 1469,-32768, 679, +-32768,-32768, 314, 1108,-32768, 637,-32768,-32768,-32768, 608, +-32768, 1311, -648, 42, -645, 1314, 73,-32768,-32768,-32768, +-32768,-32768, 540, 549,-32768,-32768,-32768,-32768,-32768, 444, + 33,-32768,-32768,-32768, 5142, 56, 198, -65, 961,-32768, + 1278,-32768, 117,-32768, -1316,-32768, -1333, -23,-32768, 1111, + 1325, -269,-32768, -767, 2378, -72, 1083, 3472, 1227,-32768, + -74, -90, 929, -64, 162,-32768,-32768,-32768, -313,-32768, + -155,-32768,-32768, -1190, -49, -328, 4271, 70, 1329, -142, + 8, 118, -183, -4, -100, -949, 246,-32768, -57,-32768, +-32768, 184,-32768,-32768,-32768,-32768,-32768, 378, 208, -30, +-32768, 650,-32768,-32768, -987, -381, 844,-32768,-32768,-32768, +-32768,-32768, 1,-32768,-32768,-32768,-32768,-32768,-32768, 664, + -363,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1289,-32768, + 445, 591,-32768,-32768,-32768,-32768, 409, -879, 592,-32768, +-32768,-32768,-32768,-32768, 582,-32768, 323, 916, 682, 973, + 1860, 34, 37, -425, 1346, 4299, -458,-32768, 13,-32768, + 4544, -150, 298, -78, 3985, 1214,-32768, 4046, 1888, 299, + -16, -106,-32768, 1413,-32768, 3613, 2750, -146,-32768, 2540, +-32768,-32768, 284, -848, -1120,-32768,-32768, 379, 66, -259, +-32768,-32768,-32768,-32768, -1285,-32768, -1201, -1312,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 41,-32768,-32768,-32768,-32768,-32768, 67, -1205, --32768,-32768,-32768, -66,-32768,-32768,-32768,-32768, -1307, 1, --32768, 6,-32768, -682, -371, 597,-32768,-32768,-32768,-32768, - -386,-32768, -382, -158,-32768, 978, 330,-32768, 176,-32768, - -220 +-32768,-32768,-32768, 83,-32768,-32768,-32768,-32768,-32768, 124, + -1159,-32768,-32768,-32768, -66,-32768,-32768,-32768,-32768, -1306, + 55,-32768, 57,-32768, -574, -543, 649,-32768,-32768,-32768, +-32768, -384,-32768, -375, -196,-32768, 1284, 380,-32768, -270, +-32768, -222 }; -#define YYLAST 10918 +#define YYLAST 10853 static const short yytable[] = { 58, - 886, 592, 183, 412, 234, 645, 875, 454, 713, 646, - 208, 666, 36, 37, 379, 480, 283, 643, 121, 1048, - 1307, 139, 404, 407, 601, 56, 1075, 695, 985, 241, - 102, 58, 453, 628, 387, 1104, 58, 71, 949, 503, - 506, 461, 472, 954, 36, 37, 571, 138, 155, 36, - 37, 196, 388, 389, 571, 177, 1345, 56, 342, 71, - 344, 346, 56, 1348, 144, 148, 231, 470, 1415, 71, - 534, 211, 385, 662, 71, 1330, 571, 390, 281, 1270, - 1271, 1444, 332, 57, 332, 393, 332, 332, 349, 580, - 1049, 208, 492, 1291, 1442, 944, 241, 1164, 245, 88, - 85, 332, 332, 1439, 160, 57, 1452, 459, 462, 167, - 396, 483, 397, -1, 138, 57, 282, 604, -45, 89, - 57, 354, 54, -45, 659, 1464, 71, 90, -2, 457, - 419, 87, 1479, 196, -45, 739, 332, 852, 332, 45, - 241, 1050, 92, 492, 137, 653, 1426, 91, 208, 1010, - 86, 1135, 1499, 1453, 54, 238, 208, 208, 177, 54, - 58, 136, 280, 825, 684, 1489, 405, 408, 945, 1353, - 1105, 45, 57, 740, 1165, 946, 45, 753, 1359, 1360, - 1422, 1361, 660, 208, 403, 406, 56, 853, -316, 177, - -316, 195, 420, 1461, 420, 884, 155, 668, 71, 894, - 1514, 1151, 1413, 93, 675, -325, 1464, 15, 16, 211, - 1177, 348, 823, 437, 439, 1132, 894, 211, 1310, 823, - 1106, 1450, 142, 1490, 1310, 421, 922, 421, 347, 39, - 1520, 575, 100, 208, 8, 485, 343, 345, 293, -325, - 163, 114, 143, -325, 57, 1307, 859, 895, 245, 576, - 896, 1152, -781, 499, 27, 142, 900, 923, 568, 434, - 1178, 39, 860, -124, 895, 364, 39, 896, 1311, 737, - 693, 365, 1492, 1117, 1392, 1119, -325, 231, 699, 332, - 1521, 164, 220, 54, 208, 897, 395, 129, 130, 601, - 698, 1429, 1430, -541, 645, 106, 608, 1104, 907, 856, - 45, 208, 897, -541, 901, 435, 632, 902, 332, 385, - 887, 486, 404, 407, 754, 718, 831, 15, 16, 1494, - 281, 156, -375, 487, 876, 703, 704, 525, 231, 529, - 633, 790, 107, 792, 793, 1336, 1512, 1341, 141, -541, - 176, 377, 903, 209, 210, 339, 592, 340, -123, -541, - 449, -375, -265, 108, 245, -375, 459, 462, 282, 1191, - 141, 158, 832, 833, 459, 1216, 1495, 843, 401, 877, - 1319, 87, 1465, 507, 508, 462, 27, 162, 878, 879, - 202, 203, 986, 1513, 1478, 481, 14, 642, 516, 1080, - 1186, 517, 701, 1484, 518, 462, 41, 528, -265, -265, - 531, -375, 1190, -581, 280, 208, 208, 597, 570, 21, - 139, 1012, 1498, 208, -258, 880, 161, 426, 24, 168, - 580, 729, 170, 1081, 208, 644, 174, 1082, 41, 498, - 677, 482, 1509, 41, 427, 797, 138, 1369, 156, 156, - 156, 465, 467, 175, 208, 19, 1371, 1372, 71, -581, - -581, 284, 798, 598, 479, 1526, 405, 408, 447, 448, - 1083, 530, 713, 428, 823, -581, 739, 730, 644, 156, - 211, 641, 645, 367, 688, 689, 646, 226, 158, 158, - 158, 799, 1131, -267, 643, 211, 797, 605, 476, 606, - 1328, 607, 823, 89, 57, 90, 228, 332, 580, 568, - 332, 142, 141, 798, 332, 745, 745, 745, 745, 158, - 285, 380, 381, 10, 641, 91, 525, 332, 351, 525, - 94, 109, 110, 515, 332, 353, 823, 601, 332, -267, - -267, 1110, 799, 137, 477, 405, 750, 1047, 811, 126, - 127, 647, 648, 362, 739, -261, 918, 525, 920, 22, - 136, 455, 456, 924, 126, 127, 492, 368, 1125, 1128, - 332, 281, 27, 813, 28, 303, 1136, 1137, 987, 1139, - 391, 1140, 815, 911, 111, 112, 1469, 91, 884, 642, - 624, 998, 366, 999, 812, 1000, 677, 865, 534, 870, - 871, 370, 129, 130, 208, 199, 33, 207, 1326, 282, - 1041, 459, 516, 517, 379, 839, 713, 129, 130, 814, - 369, 245, 8, 9, 817, 819, 486, 644, 816, 912, - 604, 126, 127, 1024, 644, 871, 483, 727, 121, 208, - 141, 237, 371, 1128, 90, 196, 126, 127, 1043, 231, - -258, 483, 1173, 1175, 736, 280, 1042, 1179, 1180, 1038, - 208, 885, 126, 127, 91, 1072, -537, 740, 1045, -537, - 823, 409, 90, 641, 176, 129, 130, 1354, 410, 1084, - 641, -576, 27, 728, 129, 130, 642, 199, 207, 87, - 288, 823, 91, -7, 1044, 1406, 702, 27, 493, 129, - 130, 950, 951, 952, 1466, 828, 418, 208, 494, 15, - 16, 1073, 430, 801, 1046, 129, 130, -537, 1212, -537, - -537, 58, -537, 802, 644, 1085, 642, 332, 332, 332, - 473, 642, 431, -537, 931, -537, 488, 803, 156, 156, - 156, 1407, 491, 8, 9, 207, 490, 939, 88, 489, - 1467, -537, -537, 460, 207, -537, -121, 555, 556, 71, - 762, 1308, 1309, 839, 644, 126, 127, -537, 89, 644, - 641, 500, 1068, 1069, 1070, 1267, 447, 1386, 158, 158, - 158, 90, 509, 475, 202, 203, 8, 9, 510, -122, - 14, 88, 511, 126, 1288, 1456, 129, 130, 512, 1192, - 745, 91, 937, 513, 988, 57, 571, 1480, 1302, 580, - 641, 89, 615, 21, 616, 641, 27, 613, 129, 130, - 237, 1160, 24, 1161, 618, 1162, 372, 373, 374, 241, - 88, 745, 581, 126, 127, 619, 719, 642, 1313, 129, - 130, 677, 582, 620, 938, 90, 129, 130, 455, 1387, - 89, 651, 583, 1314, 631, 584, 585, 447, 1391, 405, - 750, -6, 858, 486, 642, 91, 745, 245, 654, 642, - 486, 872, 671, 1078, 1079, 644, 690, 817, 819, 644, - 375, 376, 1107, 694, 27, 722, 129, 130, 155, 126, - 127, 723, 762, 724, 731, 1368, 1090, 732, 207, 994, - 493, 749, 644, 677, 751, 1028, 1029, 644, 752, 660, - 494, 404, 407, -326, 754, 15, 16, 745, 959, 960, - 961, 641, 1055, 809, 332, 641, 516, 517, 126, 127, - 1221, 810, 404, 407, 740, 824, 58, 826, 58, 828, - 27, 644, 129, 130, 196, 58, 844, -326, 641, 931, - 845, -326, 854, 641, 857, 855, 801, 88, 931, 861, - 873, 642, 939, 642, 939, 1355, 802, -261, 874, 128, - -99, 939, 15, 16, 71, 420, 71, 89, 1374, 27, - 803, 129, 130, 71, -326, 891, 892, 641, 893, 899, - 1384, 201, 202, 203, 241, 475, -780, 909, 14, 644, - 913, 644, 460, 207, -99, 914, 475, 916, -99, 919, - 460, 921, 285, 380, 381, 10, 19, 937, 962, 937, - 57, 21, 57, 963, 964, 937, 937, 645, 1194, 57, - 24, 1437, 965, 967, 1196, 1197, 966, 642, 1194, 1199, - 968, -99, 1197, 969, 885, 641, 970, 641, 115, 116, - 117, 22, -120, 971, 1374, 405, 408, 241, 677, 938, - 972, 938, 974, 975, 977, 978, 28, 303, 938, 979, - 372, 373, 374, 1154, 1155, 644, 405, 1171, 642, 980, - 624, 993, 981, 1089, 1099, 982, 983, 1141, 997, -97, - 642, 15, 16, 995, 1154, 1155, 644, 740, 33, 1459, - 27, 1374, 118, 119, 1515, 1112, 1113, 1114, 996, 94, - 109, 110, 1019, 58, 1003, 322, 644, 322, 1004, 322, - 322, 641, 27, -97, 375, 376, 931, -97, 644, 1005, - 1011, 1374, 1013, 115, 116, 117, 1014, 1016, 1040, 939, - 1022, 662, 641, 516, 517, 94, 109, 110, 478, 1025, - 1058, 71, 550, 551, 552, 553, 554, 555, 556, 1065, - -97, 156, 641, 111, 112, 113, 135, 1108, 1111, 322, - 1115, 322, 1255, 1120, 641, 1121, 285, 380, 381, 10, - 1122, 1123, 745, 238, 22, 1249, 1250, 118, 119, 199, - 1133, 207, 1142, 1129, 937, 156, 1138, 57, 1254, 111, - 112, 158, 1134, 1127, 126, 127, 1143, 58, 1144, 639, - 71, 1335, 1145, 1335, 1149, 22, 1150, 208, 1148, 1153, - 931, 1158, 236, 1357, 1358, 1172, 207, 1182, 1183, 1195, - 28, 303, 1200, 939, 1206, 158, 938, 1425, 1207, 492, - 1214, 94, 95, 96, 1217, 71, 1218, 460, 1222, 1223, - 475, 1224, 639, 1225, 1255, 27, 57, 129, 130, 196, - 1164, 1255, 33, 1265, 1269, 1273, 427, 1249, 1255, 404, - 407, 94, 109, 110, 1249, 1250, 1297, 1127, 457, 1312, - 1254, 1249, 1250, 1303, 487, 1298, 1299, 1254, 937, 1300, - 1305, 57, 71, 27, 1254, 97, 98, 99, 1321, 71, - 692, 94, 95, 96, 1322, 1323, 71, 285, 8, 9, - 10, 700, 322, 1346, 1331, 1333, 1376, 572, 1377, 285, - 380, 381, 10, 1381, 573, 111, 112, 156, 156, 156, - 938, 1383, 514, 552, 553, 554, 555, 556, 57, 1385, - 1404, 528, 115, 703, 704, 57, 22, 1411, 156, 156, - 156, 1423, 57, 236, 1433, 97, 98, 1431, 22, 1447, - 1446, 28, 303, 1457, 1055, 236, 1458, 158, 158, 158, - 1460, 27, 1473, 28, 303, 1477, 1486, 1448, 1493, 1496, - 208, 1255, 1418, 1500, 1501, 1255, 1503, 1471, 158, 158, - 158, 1511, 1228, 33, 1249, 332, 118, 119, 1249, 1250, - 1516, 639, 1506, 1518, 1519, 574, 1523, 1254, 639, 642, - 1524, 1254, 1418, 405, 1171, 1255, 115, 703, 704, 71, - 282, 1528, 1529, 71, 1, 5, 1255, 656, 1249, 1250, - 630, 688, 689, 1026, 416, 1455, 417, 1100, 1076, 1249, - 1250, 1254, 1409, 1159, 706, 755, 1255, 644, 1525, 1338, - 282, 1021, 1254, 71, 1020, 665, 669, 469, 1184, 1249, - 1250, 1202, 557, 669, 71, 57, 280, 890, 27, 57, - 118, 119, 1254, 1327, 1418, 1071, 1077, 1255, 1102, 847, - 516, 517, 1290, 1018, 71, 796, 577, 450, 199, 378, - 1249, 1250, 1344, 641, 475, 1264, 280, 1497, 639, 57, - 1451, 558, 559, 1254, 1505, 1481, 560, 561, 562, 563, - 57, 1507, 282, 1057, 0, 71, 1266, 458, 202, 203, - 0, 0, 0, 0, 14, 0, 0, 1255, 669, 0, - 57, 0, 0, 0, 0, 0, 1370, 0, 639, 0, - 1249, 1250, 19, 639, 0, 0, 0, 21, 0, 285, - 126, 127, 10, 1254, 0, 917, 24, 322, 280, 0, - 665, 57, 0, 766, 767, 71, 771, 772, 773, 774, - 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, - 785, 786, 787, 788, 789, 0, 0, 0, 22, 0, - 669, 0, 669, 669, 0, 236, 0, 0, 0, 0, - 0, 0, 0, 28, 303, 356, 360, 0, 115, 703, - 704, 57, 705, 0, 0, 0, 94, 95, 96, 669, - 212, 213, 214, 667, 0, 0, 669, 475, 475, 0, - 667, -267, 438, 440, 444, 33, 706, 156, 0, 0, - 0, 0, 0, 707, 849, 851, -267, -267, 0, 639, - 215, -267, 0, 639, 0, 0, 475, 0, 0, 0, - 27, 0, 118, 119, 0, 0, 0, -267, 27, 0, - 97, 98, 216, 0, 0, 0, 639, 158, 0, -267, - -267, 639, -267, 915, -267, 156, 156, 156, 0, 0, - 0, 0, 665, 0, 0, 667, 0, 0, 0, 0, - 0, 1086, 1087, 9, 10, 0, 0, 948, 0, 0, - 0, 0, 953, -267, -267, 639, 0, -267, 217, 218, - 219, 0, 0, 0, 0, 158, 158, 158, 0, -267, - 15, 16, 0, 0, 0, -375, 0, 0, 0, 0, - 22, 0, 475, 475, 0, 475, 475, 0, 475, 0, - 322, 322, 322, 27, 0, 28, 29, 667, 0, 667, - 667, 1088, 0, -375, -375, 0, 0, 669, -375, 180, - 0, 0, 0, 639, 0, 639, 0, 0, 0, 181, - 8, 9, 0, 134, 12, 13, 667, 33, 673, 973, - 14, 0, 182, 667, 0, 0, 94, 109, 110, 1109, - 621, 622, 623, 199, 207, 17, 0, 18, 19, 0, - 0, 0, 523, 21, 1006, 0, 1007, 0, 0, 0, - 0, 0, 24, 475, 475, 0, 665, 669, 0, 0, - 0, 27, 0, 129, 130, 0, 79, 0, 0, 0, - 669, 0, 669, 0, 669, 0, 103, 0, 0, 639, - 111, 112, 0, 0, 0, 0, 0, 132, 79, 0, - 0, 0, 0, 146, 146, 0, 146, 0, 79, 0, - 639, 0, 1017, 79, 674, 0, 126, 127, 0, 0, - 0, 13, 669, 0, 0, 0, 190, 0, 79, 686, - 639, 687, 0, 438, 440, 444, 223, 0, 0, 0, - 0, 1037, 639, 103, 697, 475, 475, 475, 669, 0, - 201, 202, 203, 0, 247, 103, 0, 14, 0, 0, - 580, 0, 0, 0, 0, 79, 669, 27, 0, 129, - 130, 670, 1187, 1188, 667, 19, 0, 103, 0, 0, - 21, 0, 1116, 581, 1118, 475, 475, 0, 0, 24, - 0, 0, 0, 582, 0, 0, 0, 0, 1074, 0, - 132, 1201, 0, 583, 394, 132, 584, 585, 0, 190, - 103, 0, 0, 0, 0, 665, 146, 0, 0, 399, - 146, 359, 361, 146, 146, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 667, 0, 1147, 79, 0, 0, - 0, 523, 665, 665, 523, 0, 1130, 667, 742, 667, - 0, 667, 190, 190, 190, 201, 202, 203, 0, 0, - 475, 523, 14, 0, 0, 0, 7, 126, 127, 10, - 0, 0, 523, 0, 0, 0, 769, 0, 0, 0, - 19, 190, 0, 0, 0, 21, 0, 1276, 1277, 667, - 1286, 1287, 0, 1289, 24, 0, 468, 0, 0, 0, - 0, 0, 791, 0, 103, 22, 0, 0, 808, 609, - 669, 0, 669, 0, 669, 667, 146, 665, 27, 0, - 28, 29, 7, 8, 9, 10, 665, 665, 13, 0, - 0, 665, 665, 667, 151, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 152, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 103, 495, 1193, 153, 0, 0, - 0, 22, 0, 0, 0, 0, 0, 580, 1351, 1352, - 599, 8, 9, 1219, 27, 0, 28, 29, 0, 0, - 686, 687, 0, 697, 7, 8, 235, 10, 0, 0, - 862, 0, 665, 0, 1213, 0, 0, 103, 0, 0, - 863, 578, 0, 495, 495, 594, 293, 600, 33, 22, - 583, 0, 1268, 864, 585, 0, 1272, 0, 0, 669, - 190, 0, 27, 22, 129, 130, 0, 0, 527, 0, - 236, 1293, 1294, 0, 0, 0, 0, 132, 28, 29, - 0, 0, 0, 0, 0, 0, 0, 1304, 0, 665, - 1398, 1399, 1400, 0, 0, 0, 0, 0, 132, 1274, - 1275, 639, 237, 0, 103, 0, 7, 126, 127, 10, - 33, 0, 13, 0, 0, 146, 0, 667, 146, 667, - 0, 667, 665, 146, 244, 0, 0, 79, 0, 0, - 1427, 1428, 7, 126, 127, 10, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 22, 0, 638, 1320, 190, - 0, 190, 0, 190, 190, 190, 0, 0, 27, 190, - 28, 29, 1366, 1367, 190, 0, 0, 190, 0, 0, - 0, 22, 0, 0, 31, 0, 0, 0, 236, 0, - 0, 0, 991, 0, 32, 0, 28, 29, 1356, 0, - 676, 0, 33, 0, 438, 440, 444, 34, 0, 0, - 0, 0, 411, 0, 0, 1491, 0, 0, 0, 665, - 237, 0, 0, 0, 0, 523, 1394, 1395, 33, 0, - 0, 436, 103, 103, 103, 103, 667, 0, 0, 0, - 444, 0, 0, 0, 452, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 669, 0, - 7, 8, 9, 10, 0, 0, 230, 738, 0, 0, - 741, 0, 1396, 1397, 743, 744, 746, 747, 748, 0, - 1095, 1402, 0, 0, 0, 0, 0, 527, 103, 0, - 495, 0, 0, 0, 0, 0, 1420, 0, 765, 22, - 0, 578, 0, 495, 495, 580, 594, 0, 1066, 0, - 0, 0, 27, 840, 28, 29, 0, 842, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 862, 0, - 794, 0, 0, 0, 0, 0, 0, 0, 863, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 583, 821, - 0, 864, 585, 0, 0, 0, 821, 0, 0, 0, - 0, 190, 869, 190, 190, 223, 594, 0, 0, 0, - 686, 687, 438, 440, 444, 0, 0, 0, 697, 0, - 0, 0, 7, 8, 9, 10, 0, 0, 13, 0, - 0, 0, 0, 438, 440, 444, 0, 0, 0, 190, - 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, - 190, 190, 0, 190, 0, 0, 0, 0, 0, 0, - 0, 22, 0, 0, 0, 667, 0, 580, 665, 0, - 7, 8, 9, 10, 27, 0, 28, 29, 79, 0, - 0, 0, 523, 103, 0, 0, 638, 0, 103, 0, - 1030, 0, 0, 0, 0, 495, 495, 495, 0, 0, - 1031, 0, 0, 0, 0, 0, 0, 495, 33, 22, - 583, 0, 0, 1032, 585, 0, 236, 0, 0, 0, - 0, 0, 0, 0, 28, 29, 676, 0, 0, 0, - 0, 676, 0, 0, 0, 0, 686, 687, 691, 697, - 0, 0, 0, 696, 0, 0, 0, 0, 237, 1208, - 1209, 1210, 1211, 0, 0, 0, 33, 103, 0, 0, - 1215, 0, 0, 0, 0, 7, 8, 9, 10, 720, - 0, 483, 0, 0, 725, 0, 0, 1284, 0, 495, - 0, 495, 0, 0, 0, 0, 733, 734, 103, 735, - 0, 0, 495, 0, 103, 0, 840, 840, 840, 0, - 984, 0, 0, 1015, 22, 0, 0, 0, 0, 0, - 580, 0, 0, 0, 0, 0, 0, 27, 0, 28, - 29, 103, 0, 103, 190, 190, 1034, 0, 0, 0, - 0, 765, 0, 862, 0, 0, 0, 676, 0, 0, - 75, 821, 0, 863, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 583, 0, 0, 864, 585, 0, 0, - 1034, 0, 140, 0, 638, 0, 1027, 145, 149, 821, - 0, 0, 75, 1325, 103, 0, 0, 75, 0, 0, - 829, 830, 0, 0, 0, 829, 0, 0, 0, 132, - 0, 0, 200, 79, 0, 79, 0, 0, 0, 0, - 1097, 79, 79, 821, 0, 0, 82, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 105, 1060, 103, 0, - 103, 243, 444, 0, 1067, 0, 125, 133, 82, 350, - 0, 0, 0, 147, 147, 0, 147, 0, 82, 0, - 0, 0, 0, 82, 0, 243, 0, 0, 0, 0, - 0, 495, 495, 0, 495, 1382, 147, 0, 82, 0, - 0, 676, 0, 676, 0, 0, 224, 0, 0, 0, - 438, 440, 444, 232, 243, 0, 0, 0, 0, 0, - 398, 0, 0, 0, 400, 232, 0, 0, 243, 0, - 190, 190, 190, 190, 1034, 82, 0, 0, 190, 0, - 0, 75, 0, 0, 0, 769, 1416, 0, 0, 0, - 0, 0, 0, 1034, 1034, 1034, 145, 149, 0, 523, - 955, 0, 957, 0, 0, 0, 0, 0, 0, 0, - 386, 0, 243, 0, 0, 103, 1416, 821, 0, 147, - 232, 0, 0, 0, 0, 0, 147, 103, 0, 0, - 147, 0, 0, 147, 147, 147, 0, 0, 821, 0, - 1198, 0, 0, 0, 0, 243, 0, 82, 0, 0, - 79, 0, 0, 0, 0, 0, 0, 0, 676, 0, - 484, 0, 147, 147, 147, 0, 0, 0, 0, 243, - 676, 0, 0, 0, 989, 990, 1485, 992, 1416, 0, - 8, 9, 0, 134, 12, 13, 0, 0, 673, 0, - 14, 147, 0, 0, 0, 0, 190, 190, 0, 190, - 0, 0, 1504, 0, 1009, 17, 0, 18, 19, 0, - 0, 0, 0, 21, 0, 0, 0, 769, 0, 103, - 0, 0, 24, 0, 580, 0, 147, 0, 0, 0, - 0, 27, 0, 129, 130, 0, 0, 190, 0, 1036, - 0, 0, 146, 0, 79, 0, 0, 581, 7, 8, - 9, 10, 0, 0, 0, 0, 0, 582, 0, 243, - 0, 0, 1060, 0, 232, 147, 0, 583, 0, 0, - 584, 585, 0, 0, 674, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 22, 0, 1278, - 1279, 9, 10, 580, 0, 190, 869, 190, 0, 0, - 27, 0, 28, 29, 0, 0, 0, 232, 0, 0, - 0, 579, 0, 147, 147, 595, 862, 0, 0, 649, - 603, 243, 650, 0, 0, 0, 863, 652, 22, 0, - 147, 140, 0, 0, 33, 0, 583, 0, 0, 864, - 585, 27, 0, 28, 29, 0, 0, 386, 0, 1280, - 0, 126, 127, 398, 0, 400, 230, 180, 0, 8, - 9, 0, 0, 12, 13, 0, 0, 181, 484, 14, - 0, 0, 0, 0, 232, 33, 0, 1146, 0, 0, - 182, 0, 1034, 0, 17, 147, 18, 0, 147, 0, - 243, 0, 21, 147, 0, 580, 0, 82, 0, 0, - 0, 24, 27, 0, 129, 130, 0, 0, 1157, 0, - 27, 0, 129, 130, 564, 0, 0, 243, 581, 147, - 0, 147, 0, 147, 147, 147, 0, 0, 582, 147, - 1034, 1034, 1034, 0, 147, 0, 0, 147, 583, 0, - 0, 584, 585, 0, 0, 1185, 103, 0, 0, 565, - 0, 0, 715, 0, 0, 0, 0, 1189, 0, 0, + 403, 406, 37, 590, 183, 411, 644, 121, 887, 876, + 712, 56, 453, 479, 241, 645, 283, 234, 378, 501, + 504, 139, 694, 342, 599, 344, 102, 642, 987, 469, + 211, 58, 627, 138, 37, 36, 58, 71, 823, 37, + 1050, 387, 388, 56, 665, 823, 100, 471, 56, 384, + 532, 196, 1077, 452, 389, 114, 1347, 386, 208, 71, + 1332, 1106, 460, 1350, 144, 148, 231, 36, 1309, 71, + 569, 1417, 36, 54, 71, 395, 45, 396, 281, 569, + 1446, 241, 332, 433, 332, 578, 332, 392, 348, 177, + 569, 945, 1441, 895, 245, 137, 220, 491, 136, 1444, + 138, 332, 332, 458, 461, 54, 482, 88, 45, 1428, + 54, 1166, 418, 45, -1, 602, 282, 353, 87, 658, + 1496, 57, 1454, -123, 293, 241, 71, 89, 195, 434, + 1466, 739, 1481, 196, 238, 141, 332, 1082, 332, 208, + 27, 896, 456, 57, 897, 950, 363, 1137, 491, -2, + 955, 1501, 364, 57, 1491, 376, 1463, 825, 57, 683, + 58, 661, 347, 92, 946, 346, 85, 1497, 211, 1455, + -317, 1083, 56, 740, 419, 1084, 211, 659, 652, 898, + 1424, 901, 400, 1514, 402, 405, 1492, 1415, 1167, 947, + -317, 754, 177, 853, 419, 156, 208, 885, 71, 1051, + 280, 1272, 1273, 1516, 208, 208, 480, 420, 1085, 1107, + 57, 1466, 1153, 436, 438, 1293, 86, 1134, 505, 506, + 595, 1452, 106, 177, -266, 1179, 1522, 420, 90, 902, + 1515, 208, 903, 514, 54, 860, 515, 45, 574, 516, + 202, 203, 526, 854, 245, 529, 14, 93, 91, 1312, + 1052, 861, 481, 568, 573, 464, 466, 1012, 566, 1108, + 141, 1312, 1154, 199, 753, 207, 596, 904, 478, 21, + -266, -266, 1494, 107, 895, 1180, 1523, 231, 24, 606, + 578, 208, 57, 108, 728, 384, -259, 599, 343, 403, + 406, 1355, 823, 1309, 631, 644, 161, 607, 857, 1313, + 1361, 1362, 486, 1363, 908, 1338, 632, 1343, 332, 162, + 697, 1394, 156, 156, 156, -542, 717, 39, 578, 797, + 281, 823, 896, 1467, 1106, 897, 739, -782, 231, -582, + 729, 158, 208, 209, 210, 1480, 798, 513, 394, 425, + 332, 8, 484, 156, 1486, 199, 207, 590, 208, 39, + 245, 458, 461, -268, 39, 823, 426, 170, 282, 458, + 898, -542, 176, 1500, 739, 799, 1133, 1218, 168, -538, + 461, 923, -538, 8, 9, -582, -582, 243, 285, 379, + 380, 10, 1119, 1511, 1121, 427, 641, 174, -542, 142, + 461, -582, 1321, 623, 129, 130, 175, -124, 888, -268, + -268, 243, 924, 207, 700, 811, 1528, 1014, 828, 139, + 831, 459, 207, 1431, 1432, -262, 988, 22, 485, 813, + -538, 138, -538, -538, 643, -538, 129, 130, 211, 676, + 243, 736, 28, 303, -542, 448, -538, 19, -538, 815, + 228, 474, 280, 211, 243, 514, 515, 71, 158, 158, + 158, 812, 208, 208, -538, -538, 832, 833, -538, 1371, + 208, 960, 961, 962, 33, 814, 712, 643, 1373, 1374, + -538, 208, 226, 687, 688, 644, 126, 127, 912, 158, + 877, 702, 703, 137, 645, 816, 136, 1043, 243, 1193, + 823, 208, 332, 126, 127, 332, 642, 566, 332, 701, + 1188, 87, 332, 745, 745, 745, 745, 919, 640, 921, + 475, 823, 1192, 528, 925, 332, -326, 90, 15, 16, + 284, 243, 332, 163, 913, 878, 332, 599, 142, 129, + 130, 57, 27, 1044, 879, 880, 726, 91, 142, 603, + 797, 604, 605, 90, 27, 243, 129, 130, 143, 350, + -326, 640, 352, 485, -326, 207, 476, 798, 332, 281, + 492, 491, 762, 91, 164, 361, 1112, 365, 532, 1142, + 493, 881, -327, 1045, 15, 16, 369, 641, 285, 379, + 380, 10, 727, 885, 676, 1047, 799, -326, 866, 366, + 871, 872, 646, 647, 1127, 1130, 458, 282, 1471, 1086, + 370, 156, 156, 156, 1408, 245, -327, 378, 367, 89, + -327, 712, 817, 819, 390, 643, 121, 22, 602, 1046, + 15, 16, 643, 446, 447, -376, 872, 1049, 91, 692, + 27, 1048, 28, 303, 196, 243, 1468, 698, 231, 886, + 41, 208, 368, -327, 570, 1087, 285, 379, 380, 10, + 1409, 571, 474, -259, -376, 951, 952, 953, -376, 459, + 207, 740, 141, 474, 33, 859, 1074, 459, 1330, 1130, + 126, 127, 41, 90, 873, 641, 208, 41, 1175, 1177, + 141, 280, 1469, 1181, 1182, 22, 94, 109, 110, 8, + 9, 527, 236, 91, 735, 762, 243, 208, 27, 640, + 28, 303, 8, 9, -376, 408, 640, 339, 176, 340, + 58, 409, 1075, 643, 160, 641, 332, 332, 332, 167, + 641, 1356, 940, 129, 130, 1070, 1071, 1072, 7, 8, + 9, 10, 572, 87, 996, 126, 1290, 158, 158, 158, + 111, 112, 129, 130, 1214, 208, 932, 237, 71, 88, + -577, 90, 88, 643, 288, 129, 130, -121, 643, -122, + 1194, 514, 515, -7, 1328, 243, 237, 22, 429, 89, + 938, 91, 89, 578, 201, 202, 203, 454, 455, 485, + 27, 14, 28, 29, 939, 126, 127, 88, 129, 130, + 745, 1458, 243, 417, 990, 1315, 863, 640, 472, 19, + 430, 1269, 489, 844, 21, 241, 864, 89, 1482, 115, + 116, 117, 485, 24, 33, 90, 581, 126, 127, 865, + 583, 745, 691, 1316, 487, -45, 490, 641, 393, 578, + -45, 676, 57, 699, 1304, 91, 27, 640, 129, 130, + 488, -45, 640, 498, 1138, 1139, 199, 1141, 207, 507, + 202, 203, 579, 245, 508, 641, 14, 745, 126, 127, + 641, 27, 580, 118, 119, 643, 509, 817, 819, 643, + 129, 130, 581, 510, 243, 582, 583, 1080, 1081, 21, + 511, 403, 406, 207, 612, 623, 1109, 569, 24, 1092, + 243, 126, 127, 643, 676, 614, 1030, 1031, 643, 128, + 15, 16, 403, 406, 459, 553, 554, 474, 745, 27, + 88, 129, 130, 1310, 1311, 332, 446, 1388, 1357, 454, + 1389, 1370, 615, -99, 1143, 15, 16, 58, 740, 58, + 89, 630, 643, 963, 617, 196, 58, 446, 1393, 940, + 618, 940, 27, 619, 129, 130, 126, 127, 940, 640, + 650, 482, 641, 640, 641, -6, 653, -99, 689, 670, + 693, -99, 155, 932, 718, 71, 721, 71, 722, 723, + 730, 241, 932, 731, 71, 749, 751, 640, 752, 659, + 514, 515, 640, 810, 754, 809, 826, 938, 824, 938, + 643, 828, 643, 856, -99, 938, 938, 27, 845, 129, + 130, 939, 855, 939, -97, 846, 15, 16, 858, 1129, + 939, 1091, 1101, 801, 862, 874, 640, -262, 371, 372, + 373, 644, 875, 802, 892, 886, 156, 419, 893, 641, + 1439, 894, 900, 1196, 241, -781, 910, 803, -97, 1198, + 1199, 914, -97, 1196, 1201, 126, 127, 1199, 915, 57, + 676, 57, 371, 372, 373, 917, 920, 922, 57, 1376, + 156, 94, 109, 110, 477, 1156, 1157, 643, 964, 965, + 641, 1386, 374, 375, 640, -97, 640, 918, 966, 555, + 404, 407, 641, 1129, 967, 969, 1156, 1157, 643, 970, + 968, 740, 971, 972, 973, 974, 27, -120, 129, 130, + 22, 94, 109, 110, 27, 58, 374, 375, 643, 976, + 155, 977, 801, 979, 981, 111, 112, 940, 556, 557, + 643, 982, 802, 558, 559, 560, 561, 980, 995, 983, + 1517, 7, 8, 235, 10, 1376, 803, 984, 243, 985, + 243, 932, 998, 71, 999, 997, 1005, 199, 1114, 1115, + 1116, 640, 1006, 474, 238, 111, 112, 113, 1007, 1021, + 1013, 1027, 158, 1042, 1257, 938, 1015, 1252, 243, 322, + 22, 322, 640, 322, 745, 1016, 1256, 236, 526, 939, + 1461, 1018, 1376, 1024, 1060, 28, 29, 1067, 115, 116, + 117, 135, 640, 156, 156, 156, 158, 1110, 1230, 58, + 1251, 1113, 71, 1117, 640, 1337, 1122, 1337, 1123, 237, + 1131, 940, 1376, 1140, 156, 156, 156, 33, 1124, 1125, + 1144, 1135, 661, 322, 1197, 322, 1151, 57, 1359, 1360, + 1136, 1427, 1152, 15, 16, 932, 491, 71, -376, 403, + 406, 523, 118, 119, 1202, 1145, 1257, 1146, 1147, 1150, + 1155, 196, 1160, 1257, 1174, 486, 1252, 208, 1256, 938, + 1257, -268, 1184, 1252, 1185, 1256, -376, -376, 1208, 1209, + 1216, -376, 1256, 939, 1219, 1220, -268, -268, 1224, 1329, + 1225, -268, 1251, 456, 71, 1226, 57, 474, 474, 1251, + 1227, 71, 1166, 1267, 426, 1305, 1251, -268, 71, 94, + 109, 110, 285, 379, 380, 10, 94, 95, 96, -268, + -268, 1271, -268, 1275, -268, 243, 474, 514, 515, 1299, + 1300, 57, 1314, 1111, 94, 95, 96, 1301, 1302, 158, + 158, 158, 1307, 1323, 243, 1324, 115, 702, 703, 1325, + 1333, 22, 1372, -268, -268, 1335, 1348, -268, 236, 1378, + 158, 158, 158, 111, 112, 1379, 28, 303, 27, -268, + 97, 98, 99, 550, 551, 552, 553, 554, 57, 404, + 407, 1450, 1383, 1257, 1420, 57, 1385, 1257, 97, 98, + 1252, 1387, 57, 355, 359, 1256, 512, 332, 33, 1256, + 118, 119, 1473, 1413, 1406, 1425, 1435, 243, 1433, 1448, + 1449, 641, 474, 474, 1420, 474, 474, 1257, 474, 1251, + 1252, 71, 282, 1251, 1459, 71, 1460, 1462, 1257, 1256, + 208, 1252, 1475, 687, 688, 1479, 1488, 322, 523, 1495, + 1256, 523, 1498, 1502, 7, 126, 127, 10, 1257, 643, + 1503, 1252, 282, 1251, 1508, 71, 1505, 404, 750, 1513, + 1256, 1518, 1520, 1521, 1251, 1525, 71, 1189, 1190, 523, + 1526, 1530, 1531, 199, 207, 1, 1420, 1028, 655, 1257, + 5, 629, 1252, 22, 1251, 415, 71, 1457, 416, 1102, + 236, 1256, 1078, 474, 474, 1161, 1203, 755, 28, 29, + 1411, 7, 126, 127, 10, 57, 280, 13, 243, 57, + 1527, 1340, 1023, 156, 282, 1251, 891, 71, 664, 668, + 497, 1022, 237, 468, 1186, 1073, 668, 839, 1204, 1257, + 33, 1104, 1252, 640, 1292, 1079, 280, 1020, 848, 57, + 22, 1256, 449, 126, 127, 377, 796, 666, 482, 1483, + 57, 1346, 575, 27, 666, 28, 29, 1499, 1266, 1453, + 1507, 156, 156, 156, 1509, 1251, 1059, 71, 1268, 31, + 57, 0, 0, 0, 0, 474, 474, 474, 0, 32, + 0, 0, 1278, 1279, 0, 1288, 1289, 33, 1291, 322, + 668, 0, 34, 0, 27, 0, 129, 130, 280, 0, + 521, 57, 548, 549, 550, 551, 552, 553, 554, 0, + 492, 0, 0, 0, 0, 474, 474, 0, 666, 322, + 493, 0, 664, 0, 0, 766, 767, 0, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 0, 0, 158, + 0, 57, 668, 0, 668, 668, 7, 8, 9, 10, + 0, 126, 127, 1353, 1354, 0, 13, 94, 95, 96, + 0, 212, 213, 214, 0, 0, 0, 839, 0, 0, + 666, 668, 666, 666, 0, 115, 702, 703, 668, 704, + 474, 0, 0, 0, 0, 22, 0, 158, 158, 158, + 0, 215, 236, 0, 0, 578, 0, 850, 852, 666, + 28, 29, 27, 705, 129, 130, 666, 0, 669, 27, + 706, 97, 98, 216, 0, 115, 702, 703, 579, 638, + 0, 0, 0, 0, 237, 0, 0, 27, 580, 118, + 119, 0, 33, 0, 0, 1400, 1401, 1402, 581, 0, + 0, 582, 583, 705, 0, 664, 0, 0, 0, 0, + 0, 667, 0, 0, 0, 0, 0, 0, 674, 217, + 218, 219, 638, 404, 750, 0, 0, 27, 0, 118, + 119, 0, 0, 0, 0, 1429, 1430, 521, 0, 0, + 521, 0, 8, 9, 742, 134, 12, 13, 0, 0, + 672, 0, 14, 155, 0, 0, 0, 521, 0, 0, + 0, 0, 0, 322, 322, 322, 0, 17, 521, 18, + 19, 0, 769, 0, 0, 21, 0, 7, 8, 9, + 10, 668, 737, 0, 24, 0, 0, 1057, 285, 8, + 9, 10, 0, 27, 0, 129, 130, 0, 791, 0, + 201, 202, 203, 975, 808, 0, 0, 14, 0, 666, + 1493, 0, 0, 0, 0, 0, 22, 0, 0, 0, + 0, 285, 8, 9, 10, 19, 0, 22, 0, 27, + 21, 28, 29, 0, 236, 179, 673, 0, 0, 24, + 664, 668, 28, 303, 790, 180, 792, 793, 0, 0, + 0, 79, 0, 0, 668, 181, 668, 0, 668, 0, + 22, 103, 0, 33, 0, 0, 237, 236, 182, 666, + 638, 0, 132, 79, 33, 28, 303, 638, 146, 146, + 843, 146, 666, 79, 666, 0, 666, 1019, 79, 0, + 0, 0, 0, 285, 8, 9, 10, 668, 0, 485, + 244, 190, 0, 79, 94, 109, 110, 33, 620, 621, + 622, 223, 0, 0, 0, 0, 1039, 0, 103, 0, + 0, 404, 407, 668, 0, 666, 0, 0, 0, 247, + 103, 0, 22, 0, 0, 0, 0, 0, 916, 236, + 79, 668, 404, 1173, 0, 0, 0, 28, 303, 0, + 0, 666, 103, 0, 0, 0, 0, 0, 111, 112, + 0, 0, 949, 201, 202, 203, 0, 954, 638, 666, + 14, 0, 0, 1076, 0, 132, 0, 0, 410, 33, + 132, 0, 0, 0, 190, 103, 0, 0, 19, 0, + 664, 146, 0, 21, 398, 146, 0, 435, 146, 146, + 146, 0, 24, 0, 0, 0, 0, 0, 638, 0, + 451, 0, 79, 638, 457, 202, 203, 608, 664, 664, + 0, 14, 1132, 285, 126, 127, 10, 190, 190, 190, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 19, + 993, 0, 0, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 0, 0, 190, 0, 7, 126, + 127, 10, 22, 0, 230, 0, 0, 0, 0, 236, + 1008, 467, 1009, 521, 0, 0, 0, 28, 303, 103, + 0, 0, 0, 989, 126, 127, 668, 0, 668, 230, + 668, 146, 0, 664, 0, 0, 1000, 22, 1001, 0, + 1002, 0, 664, 664, 597, 8, 9, 664, 664, 33, + 27, 0, 28, 29, 666, 0, 666, 0, 666, 0, + 638, 0, 0, 0, 638, 0, 31, 0, 578, 103, + 494, 0, 1195, 0, 0, 27, 32, 129, 130, 1026, + 293, 598, 0, 22, 33, 0, 0, 0, 638, 34, + 0, 579, 0, 638, 0, 0, 27, 1068, 129, 130, + 0, 580, 0, 0, 0, 1040, 0, 0, 664, 0, + 1215, 581, 103, 0, 582, 583, 576, 0, 494, 494, + 592, 0, 0, 0, 0, 0, 0, 638, 0, 0, + 0, 0, 0, 0, 190, 668, 0, 0, 0, 1118, + 0, 1120, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 666, 0, 664, 0, 0, 0, 0, + 1057, 0, 132, 0, 0, 1276, 1277, 0, 103, 0, + 0, 0, 0, 0, 0, 638, 0, 638, 0, 146, + 0, 0, 146, 0, 1149, 0, 0, 146, 664, 0, + 0, 79, 0, 690, 0, 0, 0, 0, 695, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, + 1173, 0, 0, 190, 1322, 190, 0, 190, 190, 190, + 0, 0, 521, 190, 719, 0, 0, 0, 190, 724, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 925, 527, 7, 8, 926, 10, - 134, 12, 13, 0, 1204, 0, 0, 14, 1205, 638, - 0, 0, 232, 232, 232, 232, 0, 0, 0, 0, - 243, 0, 17, 0, 18, 19, 20, 0, 0, 0, - 21, -485, 0, 0, 0, 22, 243, 0, 0, 24, - 927, 1220, 928, 0, 0, 0, 0, 0, 27, 0, - 28, 29, 0, 0, 929, 0, 930, 0, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 232, 0, - 147, 0, 0, 0, 32, 0, 868, 0, 0, 0, - 0, 0, 33, 147, 147, 0, 595, 34, 0, 0, - 0, 0, 0, 841, 0, 0, 0, 0, 0, 1295, - 1296, 0, 0, 0, -485, 603, 0, 0, 0, 7, - 8, 9, 10, 0, 0, 0, 0, 905, 0, 0, - 0, 0, 0, 0, 649, 650, 0, 652, 0, 0, - 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, - 0, 147, 595, 147, 147, 224, 595, 0, 22, 0, - 0, 0, 943, 0, 0, 0, 0, 0, 0, 715, - 0, 27, 1349, 28, 29, 0, 1350, 179, 925, 0, - 7, 8, 926, 10, 134, 12, 13, 180, 0, 147, - 0, 14, 0, 595, 0, 0, 0, 181, 0, 0, - 147, 147, 0, 147, 0, 33, 17, 0, 18, 19, - 182, 0, 0, 0, 21, 0, 0, 0, 0, 22, - 0, 0, 0, 24, 927, 0, 928, 0, 82, 0, - 0, 0, 27, 232, 28, 29, 0, 0, 232, 0, - 930, 285, 8, 9, 10, 147, 147, 147, 31, 8, - 9, 0, 0, 12, 230, 0, 0, 147, 32, 14, - 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, - 0, 34, 0, 0, 17, 0, 18, 0, 0, 0, - 22, 0, 21, 50, 0, 0, 0, 236, 0, 0, - 0, 24, 243, 580, 243, 28, 303, 0, 0, 0, - 27, 0, 129, 130, 0, 50, 0, 232, 145, 149, - 50, 50, 0, 154, 0, 50, 581, 0, 0, 237, - 50, 243, 0, 0, 0, 0, 582, 33, 0, 147, - 0, 147, 0, 50, 0, 50, 583, 0, 232, 584, - 585, 0, 147, 0, 232, 0, 841, 841, 841, 0, - 0, 0, 0, 603, 0, 0, 0, 0, 239, 0, + 0, 732, 733, 0, 734, 0, 0, 0, 0, 0, + 0, 0, 638, 0, 1358, 0, 0, 0, 1162, 0, + 1163, 0, 1164, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 638, 0, 664, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 103, 103, 103, 1210, + 1211, 1212, 1213, 638, 126, 127, 0, 0, 202, 203, + 1217, 0, 0, 0, 14, 638, 0, 0, 0, 0, + 0, 0, 0, 0, 668, 0, 0, 0, 0, 0, + 0, 1221, 0, 0, 0, 0, 0, 21, 1398, 1399, + 0, 0, 0, 0, 829, 830, 24, 1404, 578, 829, + 0, 103, 666, 494, 0, 27, 0, 129, 130, 0, + 0, 0, 1422, 0, 576, 0, 494, 494, 0, 592, + 1270, 579, 0, 0, 1274, 0, 840, 1223, 0, 0, + 842, 580, 0, 0, 0, 0, 0, 0, 0, 1295, + 1296, 581, 0, 0, 589, 583, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1306, 0, 0, 926, 0, + 7, 8, 927, 10, 134, 12, 13, 0, 0, 0, + 0, 14, 0, 1327, 0, 190, 870, 190, 190, 223, + 592, 0, 0, 0, 0, 0, 17, 0, 18, 19, + 20, 0, 0, 0, 21, -486, 0, 0, 0, 22, + 0, 0, 0, 24, 928, 0, 929, 0, 0, 0, + 0, 0, 27, 190, 28, 29, 0, 870, 930, 0, + 931, 0, 0, 0, 190, 190, 0, 190, 31, 0, + 1368, 1369, 0, 0, 0, 956, 0, 958, 32, 0, + 0, 0, 0, 0, 664, 0, 33, 0, 0, 0, + 0, 34, 79, 0, 0, 1384, 0, 103, 0, 0, + 0, 0, 103, 0, 0, 0, 0, 0, -486, 494, + 494, 494, 0, 6, 0, 7, 8, 9, 10, 11, + 12, 13, 494, 0, 1396, 1397, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 126, 127, 10, + 0, 17, 13, 18, 19, 769, 1418, 0, 0, 21, + 991, 992, 0, 994, 22, 0, 0, 0, 24, 521, + 0, 414, 0, 0, 0, 0, 0, 27, 0, 28, + 29, 0, 103, 30, 0, 22, 1418, 0, 0, 0, + 1011, 0, 0, 31, 0, 0, 0, 0, 27, 0, + 28, 29, 0, 32, 494, 0, 494, 0, 584, 584, + 584, 33, 0, 103, 151, 0, 34, 494, 0, 103, + 0, 840, 840, 840, 152, 0, 1038, 0, 1017, 0, + 0, 0, 33, 0, 638, 0, 0, 153, 0, 7, + 8, 9, 10, 0, 0, 13, 1487, 103, 1418, 103, + 190, 190, 1036, 82, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, + 0, 0, 1506, 125, 133, 82, 0, 0, 22, 0, + 147, 147, 0, 147, 0, 82, 1036, 769, 0, 0, + 82, 27, 0, 28, 29, 0, 0, 0, 0, 0, + 103, 0, 0, 147, 0, 82, 0, 180, 0, 0, + 0, 0, 0, 224, 0, 132, 0, 181, 0, 79, + 232, 79, 0, 0, 0, 33, 1099, 79, 79, 0, + 182, 0, 232, 0, 0, 0, 0, 7, 126, 127, + 10, 0, 82, 482, 103, 0, 103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, + 0, 12, 13, 0, 0, 1148, 0, 14, 0, 0, + 587, 591, 594, 0, 0, 0, 22, 385, 494, 494, + 0, 494, 17, 0, 18, 0, 147, 232, 0, 27, + 21, 28, 29, 147, 0, 0, 1159, 147, 0, 24, + 147, 147, 147, 0, 0, 31, 0, 0, 27, 0, + 129, 130, 562, 0, 82, 32, 0, 190, 190, 190, + 190, 1036, 0, 33, 0, 190, 0, 0, 34, 147, + 147, 147, 0, 1187, 0, 0, 1088, 1089, 9, 10, + 1036, 1036, 1036, 0, 0, 1191, 0, 563, 0, 0, + 0, 0, 0, 0, 0, 0, 584, 584, 147, 584, + 0, 0, 103, 0, 0, 0, 838, 0, 0, 0, + 0, 0, 1206, 0, 103, 22, 1207, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1200, 27, 0, + 28, 29, 0, 147, 0, 0, 1090, 79, 0, 0, + 0, 0, 0, 0, 180, 0, 0, 0, 0, 1222, + 0, 0, 0, 0, 181, 584, 0, 584, 584, 0, + 584, 0, 33, 0, 0, 0, 0, 182, 0, 0, + 0, 232, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 190, 190, 0, 190, 1280, 1281, 9, + 10, 0, 0, 584, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 103, 1297, 1298, 7, + 8, 9, 10, 0, 232, 13, 0, 0, 577, 0, + 147, 147, 593, 0, 190, 0, 22, 601, 0, 146, + 0, 79, 0, 0, 0, 0, 147, 0, 0, 27, + 0, 28, 29, 0, 0, 0, 0, 1282, 22, 0, + 0, 0, 0, 385, 578, 180, 0, 0, 818, 820, + 0, 27, 584, 28, 29, 181, 0, 0, 0, 0, + 1351, 0, 0, 33, 1352, 0, 0, 863, 182, 0, + 232, 0, 190, 870, 190, 0, 0, 864, 0, 0, + 0, 147, 0, 0, 147, 33, 0, 581, 0, 147, + 865, 583, 0, 82, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 868, 0, 587, + 591, 0, 594, 0, 0, 147, 0, 147, 0, 147, + 147, 147, 0, 0, 584, 147, 584, 0, 0, 0, + 147, 0, 0, 147, 0, 0, 0, 584, 0, 0, + 0, 838, 838, 838, 0, 591, 0, 0, 714, 0, + 8, 9, 0, 134, 12, 13, 0, 0, 672, 1036, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 584, 584, 584, 0, 0, 17, 0, 18, 19, 7, + 8, 9, 10, 21, 0, 230, 0, 232, 232, 232, + 232, 0, 24, 0, 578, 0, 7, 8, 9, 10, + 0, 27, 230, 129, 130, 0, 838, 1036, 1036, 1036, + 0, 0, 0, 0, 591, 0, 0, 579, 22, 0, + 0, 0, 0, 103, 578, 0, 0, 580, 0, 0, + 0, 27, 0, 28, 29, 22, 0, 581, 190, 0, + 582, 583, 0, 232, 673, 147, 0, 863, 27, 0, + 28, 29, 0, 0, 0, 0, 0, 864, 147, 147, + 0, 593, 0, 0, 180, 33, 0, 581, 841, 0, + 865, 583, 0, 0, 181, 0, 0, 0, 0, 0, + 601, 0, 33, 0, 0, 0, 1003, 182, 1004, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, + 0, 0, 0, 818, 820, 0, 0, 0, 0, 0, + 0, 0, 125, 0, 0, 0, 0, 147, 593, 147, + 147, 224, 593, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 818, 820, 0, 714, 0, 584, 584, 584, + 584, 584, 0, 0, 0, 584, 0, 0, 7, 8, + 9, 10, 0, 0, 13, 147, 0, 0, 0, 593, + 838, 838, 838, 0, 0, 0, 147, 147, 0, 147, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 22, 0, 0, + 0, 0, 0, 578, 82, 0, 0, 0, 0, 232, + 27, 0, 28, 29, 232, 50, 0, 0, 0, 0, + 0, 147, 147, 147, 0, 0, 1032, 7, 8, 9, + 10, 134, 12, 13, 147, 0, 1033, 50, 14, 0, + 0, 0, 50, 50, 33, 154, 581, 50, 0, 1034, + 583, 0, 50, 17, 0, 18, 19, 0, 0, 0, + 0, 21, 0, 0, 0, 50, 22, 50, 0, 0, + 24, 0, 0, 584, 584, 0, 584, 0, 0, 27, + 0, 28, 29, 0, 232, 0, 0, 0, 0, 0, + 239, 0, 0, 0, 0, 31, 0, 0, 0, 135, + 0, 0, 0, 0, 50, 32, 147, 0, 147, 1003, + 1004, 818, 820, 33, 0, 232, 0, 1010, 34, 147, + 0, 232, 0, 841, 841, 841, 0, 0, 0, 0, + 601, 0, 818, 820, 0, 0, 0, 0, 0, 382, + 0, 0, 0, 382, 382, 0, 0, 0, 50, 232, + 0, 232, 147, 147, 593, 50, 0, 239, 0, 50, + 0, 0, 154, 154, 154, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, -348, + 8, 9, -348, -348, 12, 230, 159, 0, 841, 0, + 14, 50, 50, 154, 0, 0, 0, 0, 0, 0, + 0, 239, 232, 0, 0, 17, 191, 18, -348, 0, + 126, 127, 0, 21, 714, 482, 0, 133, -348, 0, + 50, 82, 24, 82, 578, 0, 0, 0, 1100, 82, + 82, 27, 0, 129, 130, 1003, 1004, 0, 1010, 7, + 8, 9, 10, 201, 202, 203, 232, 579, 232, 0, + 14, 0, 0, 0, 578, 50, 0, 580, 0, 0, + 0, 27, 0, 129, 130, -348, 0, 581, 19, 0, + 582, 583, 0, 21, 0, 0, 0, 579, 22, 0, + 147, 147, 24, 147, 578, 0, 0, 580, 0, 191, + 0, 27, 0, 28, 29, 0, 0, 581, 0, 0, + 582, 583, 0, 159, 159, 159, 0, 180, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 181, 0, 147, + 147, 147, 147, 593, 522, 33, 0, 147, 0, 0, + 1342, 714, 191, 191, 444, 0, 0, 0, 0, 0, + 382, 0, 841, 841, 841, 0, 0, 0, 239, 926, + 0, 7, 8, 927, 10, 134, 12, 13, 50, 714, + 0, 191, 14, 0, 232, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 382, 232, 17, 0, 18, + 19, 20, 0, 0, 0, 21, -487, 0, 0, 0, + 22, 0, 0, 0, 24, 928, 382, 929, 0, 82, + 0, 0, 0, 27, 0, 28, 29, 0, 0, 930, + 0, 931, 0, 50, 0, 0, 50, 0, 0, 31, + 0, 50, 0, 0, 0, 50, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 495, 0, 33, 0, 0, + 0, 0, 34, 0, 0, 147, 147, 50, 147, 50, + 0, 154, 154, 154, 0, 0, 0, 50, 0, -487, + 0, 0, 50, 0, 0, 50, 0, 0, 232, 0, + 0, 7, 8, 9, 10, 0, 0, 482, 0, 0, + 0, 0, 0, 586, 586, 586, 147, 0, 0, 0, + 0, 147, 0, 82, 0, 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 232, 50, 232, 147, 147, 595, 943, 0, 943, - 0, 0, 0, 0, 1096, 1103, 943, 285, 8, 9, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 127, 0, 383, 202, 203, - 841, 383, 383, 0, 14, 0, 50, 0, 0, 0, - 0, 0, 0, 50, 232, 239, 22, 50, 0, 0, - 154, 154, 154, 236, 0, 0, 715, 21, 0, 133, - 0, 28, 303, 82, 50, 82, 24, 0, 580, 0, - 1098, 82, 82, 0, 0, 27, 0, 129, 130, 50, - 50, 154, 0, 0, 0, 486, 0, 243, 232, 239, - 232, 581, 0, 33, 398, 400, 0, 0, 0, 0, - 0, 582, 484, 0, 0, 0, 243, 0, 50, 0, - 0, 583, 0, 0, 591, 585, 0, 0, 0, 0, - 0, 147, 147, 0, 147, 539, 540, 541, 542, 543, + 22, 522, 0, 0, 522, 0, 578, 0, 0, 0, + 0, 0, 0, 27, 0, 28, 29, 0, 77, 522, + 522, 522, 0, 0, 0, 0, 0, 0, 0, 863, + 0, 0, 522, 0, 147, 593, 147, 0, 0, 864, + 77, 0, 0, 0, 0, 77, 77, 33, 77, 581, + 77, 0, 865, 583, 0, 77, 0, 0, 7, 8, + 9, 10, 201, 202, 203, 0, 0, 0, 77, 14, + 77, 0, 0, 0, 0, 0, 0, 239, 191, 0, + 191, 0, 444, 444, 444, 0, 0, 19, 191, 0, + 522, 0, 21, 191, 0, 0, 191, 22, 0, 0, + 0, 24, 0, 578, 0, 0, 0, 77, 0, 0, + 27, 0, 28, 29, 0, 0, 0, 0, 0, 0, + 0, 841, 0, 0, 0, 0, 863, 0, 0, 189, + 0, 0, 0, 0, 0, 0, 864, 0, 0, 50, + 50, 50, 50, 0, 33, 0, 581, 0, 0, 865, + 583, 77, 0, 0, 242, 0, 0, 246, 77, 0, + 0, 0, 77, 0, 0, 77, 77, 77, 0, 841, + 841, 841, 0, 0, 0, 0, 0, 50, 242, 77, + 354, 50, 0, 0, 0, 232, 0, 0, 50, 50, + 0, 50, 0, 0, 77, 77, 77, 0, 0, 0, + 147, 0, 0, 0, 0, 0, 0, 0, 804, 0, + 8, 9, 189, 134, 12, 13, 50, 0, 1438, 0, + 14, 586, 586, 77, 586, 0, 0, 0, 0, 0, + 0, 586, 0, 0, 0, 17, 0, 18, 19, 0, + 522, 0, 0, 21, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 189, 189, 189, 77, 0, + 0, 27, 0, 129, 130, 450, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 867, 0, 867, 867, 189, 586, 0, 0, 0, 0, + 0, 0, 7, 8, 9, 10, 0, 926, 13, 7, + 8, 927, 10, 134, 12, 13, 0, 246, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 867, 0, + 0, 0, 242, 0, 0, 17, 0, 18, 19, 191, + 191, 22, 191, 21, 0, 522, 522, 522, 22, 0, + 0, 239, 24, 928, 27, 929, 28, 29, 0, 0, + 0, 27, 600, 28, 29, 0, 0, 0, 0, 931, + 440, 77, 0, 0, 50, 50, 154, 31, 0, 0, + 441, 239, 0, 0, 495, 495, 495, 32, 33, 0, + 0, 0, 0, 442, 0, 33, 0, 586, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1056, 0, 0, 0, 0, 0, 358, 360, 0, 0, + 0, 0, 242, 246, 0, 0, 77, 0, 0, 77, + 0, 0, 189, 0, 77, 0, 0, 0, 77, 0, + 0, 0, 0, 50, 0, 50, 1280, 126, 127, 10, + 50, 50, 50, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 77, 0, 77, 77, 77, 0, 0, 586, + 77, 586, 0, 0, 0, 77, 0, 0, 77, 0, + 0, 0, 586, 0, 0, 22, 586, 586, 586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, + 28, 29, 0, 0, 0, 0, 1282, 0, 0, 0, + 0, 0, 0, 0, 31, 867, 867, 1037, 437, 439, + 443, 189, 0, 189, 32, 189, 189, 189, 239, 0, + 0, 189, 33, 0, 0, 0, 189, 34, 0, 189, + 0, 50, 50, 154, 154, 154, 0, 239, 0, 50, + 0, 1037, 0, 8, 9, 0, 192, 12, 193, 0, + 0, 0, 0, 14, 1056, 1056, 1056, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 18, 19, 0, 0, 126, 127, 21, 75, 202, 203, + 0, 191, 0, 0, 14, 24, 0, 0, 0, 0, + 0, 600, 0, 0, 27, 0, 129, 130, 0, 140, + 239, 0, 0, 0, 145, 149, 0, 21, 0, 75, + 0, 50, 0, 525, 75, 0, 24, 0, 578, 0, + 0, 0, 0, 0, 0, 27, 0, 129, 130, 200, + 0, 0, 0, 804, 804, 0, 804, 0, 0, 0, + 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 580, 77, 77, 77, 77, 0, 50, 50, 0, + 50, 581, 0, 0, 582, 583, 349, 242, 246, 0, + 0, 0, 867, 867, 1037, 1037, 1037, 0, 0, 0, + 867, 7, 8, 9, 10, 0, 0, 482, 0, 0, + 77, 637, 0, 0, 77, 1037, 1037, 1037, 50, 0, + 0, 77, 77, 50, 77, 50, 0, 0, 0, 0, + 0, 0, 0, 189, 0, 189, 189, 397, 0, 0, + 22, 399, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 0, 0, 27, 675, 28, 29, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, + 0, 189, 0, 145, 149, 0, 50, 50, 50, 181, + 0, 0, 189, 189, 685, 189, 686, 33, 437, 439, + 443, 0, 182, 0, 7, 8, 9, 10, 0, 696, + 0, 0, 0, 7, 126, 127, 10, 0, 0, 246, + 0, 0, 0, 0, 7, 8, 9, 10, 867, 867, + 738, 867, 0, 741, 0, 0, 0, 743, 744, 746, + 747, 748, 0, 22, 0, 0, 0, 483, 0, 0, + 525, 0, 22, 0, 0, 0, 27, 0, 28, 29, + 0, 765, 1336, 22, 0, 27, 0, 28, 29, 191, + 0, 0, 180, 1056, 0, 0, 27, 0, 28, 29, + 0, 151, 181, 0, 0, 600, 7, 8, 9, 10, + 33, 152, 180, 794, 0, 182, 0, 0, 0, 33, + 0, 0, 181, 0, 153, 0, 0, 77, 77, 77, + 33, 0, 821, 0, 0, 182, 0, 0, 0, 821, + 0, 1056, 1056, 1056, 0, 22, 0, 191, 0, 191, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, + 28, 29, 0, 1058, 0, 242, 246, 242, 0, 0, + 0, 0, 50, 0, 440, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 441, 0, 0, 0, 189, 189, + 1035, 0, 33, 0, 0, 242, 77, 442, 77, 0, + 0, 0, 0, 77, 77, 77, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 1035, 648, 0, 0, 649, 0, + 637, 0, 0, 651, 444, 0, 0, 140, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 0, 0, 0, 0, 0, 397, + 0, 399, 0, 0, 189, 685, 686, 0, 696, 0, + 675, 0, 0, 0, 483, 675, 0, 0, 0, 0, + 0, 0, 444, 444, 444, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 77, 77, 77, 77, 8, + 9, 0, 77, 12, 13, 0, 0, 0, 0, 14, + 0, 0, 0, 191, 0, 0, 0, 1058, 1058, 1058, + 0, 0, 0, 0, 17, 0, 18, 0, 0, 0, + 0, 0, 21, 0, 0, 0, 0, 0, 0, 8, + 9, 24, 242, 12, 230, 986, 0, 0, 0, 14, + 27, 0, 129, 130, 0, 189, 189, 189, 189, 1035, + 0, 1158, 0, 189, 17, 0, 18, 0, 0, 0, + 0, 0, 21, 0, 77, 0, 765, 0, 1035, 1035, + 1035, 24, 675, 578, 0, 0, 821, 0, 0, 795, + 27, 0, 129, 130, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, + 637, 0, 1029, 0, 0, 821, 580, 0, 0, 0, + 77, 77, 0, 77, 450, 0, 581, 0, 0, 582, + 583, 0, 0, 0, 0, 101, 0, 0, 0, 0, + 0, 437, 439, 443, 0, 120, 101, 0, 0, 821, + 0, 0, 101, 101, 0, 101, 0, 0, 0, 0, + 0, 77, 869, 1062, 0, 0, 77, 0, 77, 0, + 1069, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 189, 189, 0, 189, 222, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 50, 0, 0, 0, 7, 8, 9, - 10, 134, 12, 13, 0, 0, 673, 0, 14, 0, - 147, 147, 147, 147, 595, 0, 0, 0, 147, 243, - 0, 0, 715, 17, 943, 18, 19, 0, 0, 0, - 0, 21, 0, 841, 841, 841, 22, 0, 0, 0, - 24, 0, 580, 0, 0, 0, 0, 0, 0, 27, - 715, 28, 29, 0, 0, 232, 126, 127, 0, 0, - 0, 483, 524, 0, 0, 1030, 0, 232, 0, 0, - 649, 650, 0, 652, 0, 1031, 0, 0, 383, 0, - 0, 0, 0, 33, 0, 583, 239, 0, 1032, 585, - 82, 0, 674, 0, 0, 0, 0, 50, 0, 0, - 580, 0, 0, 0, 0, 0, 0, 27, 0, 129, - 130, 1285, 0, 0, 383, 0, 1285, 0, 943, 0, - 243, 0, 0, 581, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 582, 0, 383, 147, 147, 0, 147, - 0, 0, 0, 583, 0, 0, 584, 585, 0, 0, - 0, 0, 50, 0, 0, 50, 0, 0, 0, 232, - 50, 0, 0, 0, 50, 586, 586, 586, 0, 0, - 1339, 0, 0, 0, 0, 0, 0, 147, 0, 0, - 0, 0, 147, 0, 82, 0, 50, 0, 50, 0, - 154, 154, 154, 0, 0, 0, 50, 0, 0, 0, - 0, 50, 0, 0, 50, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 1362, 0, -442, -442, -442, -442, -442, -442, -442, - 0, 0, -442, 0, -442, 147, 595, 147, 0, 0, - 0, 0, 0, 0, 0, -442, 0, -442, -442, 0, - 0, 524, -442, 0, 524, 0, 0, -442, 0, 0, - 0, 0, -442, 0, 0, 0, -442, 0, -442, 524, - 524, 524, 0, 0, 0, -442, 0, -442, -442, -442, - -442, -442, 524, -442, -442, -442, -442, -442, -442, -442, - -442, -442, -442, -442, -442, -442, -442, -442, -442, -442, - -442, -442, -442, -442, -442, -442, 0, -442, -442, -442, - 0, -442, -442, -442, -442, -442, -442, 0, -442, -442, - 0, 0, 841, 77, 1363, 0, 0, 239, 0, -442, - -442, -442, 0, -442, 0, 0, 0, 0, 0, 0, - 524, 0, 0, 0, 0, 77, 0, 0, 0, 0, - 77, 77, 0, 77, 0, 77, 7, 126, 127, 10, - 77, 0, 230, 0, 0, 0, 0, 0, 0, 0, - 841, 841, 841, 77, 0, 77, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 232, 0, 50, 50, - 50, 50, 0, 0, 0, 22, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 0, 0, 159, 27, 0, - 28, 29, 77, 0, 0, 586, 586, 0, 586, 0, - 0, 0, 0, 0, 31, 838, 50, 191, 0, 0, - 50, 0, 0, 0, 32, 0, 0, 50, 50, 0, - 50, 0, 33, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 0, 0, 126, 127, 77, 0, 202, 203, - 0, 0, 0, 77, 14, 50, 0, 77, 0, 0, - 77, 77, 77, 586, 0, 586, 586, 0, 586, 0, - 7, 126, 127, 10, 77, 0, 13, 21, 524, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 580, 77, - 77, 77, 0, 0, 0, 27, 0, 129, 130, 0, - 191, 586, 0, 0, 0, 0, 0, 0, 0, 22, - 0, 581, 0, 0, 159, 159, 159, 0, 77, 0, - 0, 582, 27, 0, 28, 29, 7, 8, 9, 10, - 0, 583, 13, 0, 584, 585, 0, 0, 151, 0, - 0, 0, 0, 191, 191, 445, 0, 0, 152, 0, - 0, 0, 0, 77, 0, 0, 33, 0, 0, 0, - 0, 153, 0, 0, 0, 22, 0, 0, 0, 586, - 0, 0, 191, 524, 524, 524, 0, 0, 27, 239, - 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, - 0, 50, 50, 154, 181, 0, 0, 0, 239, 0, - 0, 0, 33, 589, 593, 596, 0, 182, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 0, 0, 1054, 0, 0, - 0, 586, 0, 586, 0, 0, 496, 602, 0, 0, - 0, 0, 0, 0, 586, 0, 0, 77, 838, 838, - 838, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 50, 0, 0, 0, 0, 50, 50, 50, - 0, 0, 0, 0, 0, 0, 586, 586, 586, 0, - 0, 0, 0, 189, 588, 588, 588, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 191, 77, 0, 0, 77, 0, 0, 242, 0, - 77, 246, 838, 0, 77, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 0, 0, 242, 0, 355, 0, 77, 0, 77, 0, - 77, 77, 77, 0, 239, 0, 77, 0, 0, 0, - 0, 77, 0, 0, 77, 0, 0, 50, 50, 154, - 154, 154, 0, 239, 0, 50, 189, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 10, 192, 12, 193, - 1054, 1054, 1054, 0, 14, 0, 0, 0, 0, 0, - 191, 0, 191, 0, 445, 445, 445, 0, 0, 17, - 191, 18, 19, 0, 0, 191, 0, 21, 191, 189, - 189, 189, 22, 0, 0, 0, 24, 0, 0, 451, - 0, 0, 0, 0, 0, 27, 239, 28, 29, 0, - 0, 194, 0, 0, 0, 0, 0, 50, 189, 0, - 0, 31, 586, 586, 586, 586, 586, 0, 0, 0, - 586, 32, 0, 818, 820, 0, 0, 0, 0, 33, - 0, 246, 0, 0, 34, 838, 838, 838, 7, 126, - 127, 10, 0, 0, 483, 0, 242, 0, 602, 0, - 0, 0, 0, 50, 50, 0, 50, 0, 0, 0, + 554, 0, 0, 906, 0, 0, 0, 675, 0, 675, + 648, 649, 0, 651, 0, 0, 0, 1097, 0, 77, + 77, 77, 189, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 944, 0, + 0, 0, 0, 0, 120, 0, 120, 0, 0, 101, + 0, 0, 0, 101, 101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 101, 0, 101, 101, 101, + 0, 0, 101, 101, 101, 0, 0, 0, 0, 0, + 189, 0, 189, 0, 821, 0, 0, 0, 8, 9, + 0, 0, 12, 230, 0, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 821, 1058, 0, 685, 686, + 437, 439, 443, 17, 0, 18, 696, 0, 0, 0, + 0, 21, 0, 0, 0, 675, 0, 0, 0, 0, + 24, 437, 439, 443, 0, 0, 0, 675, 0, 27, + 0, 129, 130, 0, 465, 101, 0, 8, 9, 0, + 134, 12, 13, 0, 1058, 1058, 1058, 14, 0, 0, + 0, 0, 0, 0, 0, 101, 0, 1035, 0, 0, + 0, 0, 17, 0, 18, 19, 0, 0, 0, 0, + 21, 0, 0, 0, 0, 77, 145, 149, 0, 633, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, + 129, 130, 0, 0, 101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1035, 1035, 1035, 0, 0, + 0, 0, 7, 8, 9, 10, 201, 202, 203, 1062, + 0, 0, 0, 14, 685, 686, 0, 696, 0, 0, + 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, + 101, 19, 101, 101, 0, 944, 21, 944, 0, 0, + 0, 22, 1098, 1105, 944, 24, 0, 578, 0, 0, + 0, 0, 0, 0, 27, 1286, 28, 29, 0, 0, + 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, + 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 864, 0, 0, 0, 0, 0, 101, 0, 33, 0, + 581, 0, 0, 899, 583, 0, 0, 0, 0, 101, + 0, 0, 0, 101, 0, 0, 101, 0, 0, 0, + 768, 101, 285, 8, 9, 10, 0, 12, 499, 287, + 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 397, 399, 0, 0, 0, 17, 290, + 18, 483, 20, 0, 291, 292, 21, 0, 293, 294, + 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, + 299, 300, 301, 302, 27, 0, 28, 303, 101, 0, + 707, 304, -739, 0, 8, 9, 0, 305, 12, 13, + 306, 0, 0, 0, 14, 0, 0, 0, 307, 308, + 309, 0, 0, 0, 0, 101, 310, 311, 312, 17, + 443, 18, 0, 313, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 944, 0, 0, 24, 0, 0, 0, + 0, 314, 525, 0, 0, 27, 0, 129, 130, 0, + 0, 0, 0, 0, 0, 0, 637, 0, 6, 0, + 7, 8, 9, 10, 11, 12, 13, 0, 437, 439, + 443, 14, 0, 0, 0, 0, 0, 0, 0, 648, + 649, 0, 651, 0, 15, 16, 17, 101, 18, 19, + 20, 0, 0, 0, 21, 0, 0, 101, 101, 22, + 101, 101, 23, 24, 25, 0, 26, 0, 0, 0, + 0, 0, 27, 0, 28, 29, 0, 0, 30, 0, + 1287, 0, 0, 0, 0, 1287, 0, 944, 31, 1364, + 0, -443, -443, -443, -443, -443, -443, -443, 32, 0, + -443, 0, -443, 0, 0, 0, 33, 0, 0, 0, + 0, 34, 0, -443, 120, -443, -443, 35, 0, 0, + -443, 0, 0, 222, 0, -443, 0, 0, 0, 0, + -443, 0, 0, 0, -443, 0, -443, 707, 0, 1341, + 0, 0, 0, -443, 0, -443, -443, -443, -443, -443, + 0, -443, -443, -443, -443, -443, -443, -443, -443, -443, + -443, -443, -443, -443, -443, -443, -443, -443, -443, -443, + -443, -443, -443, -443, 0, -443, -443, -443, 0, -443, + -443, -443, -443, -443, -443, 0, -443, -443, 0, 0, + 0, 0, 1365, 0, 0, 707, 0, -443, -443, -443, + 0, -443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 101, 101, 101, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 101, 1344, 0, 1234, + 1235, 1236, 10, 134, 12, 286, 287, 288, 0, 289, + 14, 1237, 0, 1238, 1239, 1240, 1241, 1242, 1243, 1244, + 1245, 1246, 1247, 15, 16, 17, 290, 18, 19, 20, + 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, + 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, + 302, 27, 0, 1248, 303, 659, 0, 1249, 304, 0, + 0, 0, 0, 0, 305, 0, 0, 306, 101, 0, + 101, 0, 0, 0, 0, 307, 308, 309, 0, 0, + 0, 101, 0, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 1250, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1345, 314, 0, + 1233, 0, 1234, 1235, 1236, 10, 134, 12, 286, 287, + 288, 0, 289, 14, 1237, 0, 1238, 1239, 1240, 1241, + 1242, 1243, 1244, 1245, 1246, 1247, 15, 16, 17, 290, + 18, 19, 20, 0, 291, 292, 21, 0, 293, 294, + 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, + 299, 300, 301, 302, 27, 0, 1248, 303, 659, 0, + 1249, 304, 0, 0, 0, 0, 707, 305, 0, 101, + 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, + 309, 0, 0, 0, 0, 0, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, - 0, 867, 0, 589, 593, 0, 596, 0, 0, 0, - 27, 804, 28, 29, 50, 0, 0, 0, 0, 50, - 0, 50, 0, 0, 588, 588, 31, 588, 77, 77, - 77, 77, 0, 0, 588, 0, 32, 0, 0, 593, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 242, 246, 586, 586, - 0, 586, 7, 8, 9, 10, 77, 189, 230, 0, - 77, 0, 50, 50, 50, 0, 0, 77, 77, 0, - 77, 0, 866, 0, 866, 866, 0, 588, 0, 7, - 8, 9, 10, 0, 0, 13, 0, 0, 0, 0, - 0, 22, 0, 0, 0, 77, 0, 593, 0, 0, - 0, 0, 0, 0, 27, 0, 28, 29, 0, 0, - 866, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 180, 191, 191, 0, 191, 0, 0, 0, 0, 0, - 181, 27, 0, 28, 29, 0, 0, 0, 33, 0, - 0, 0, 0, 182, 0, 0, 189, 441, 189, 1054, - 189, 189, 189, 0, 0, 0, 189, 442, 0, 0, - 0, 189, 0, 0, 189, 33, 496, 496, 496, 1001, - 443, 1002, 0, 0, 0, 0, 0, 0, 588, 0, - 8, 9, 1008, 0, 12, 13, 818, 820, 0, 0, - 14, 0, 0, 1278, 126, 127, 10, 1054, 1054, 1054, - 0, 0, 0, 0, 0, 17, 0, 18, 0, 0, - 0, 0, 0, 21, 818, 820, 0, 0, 0, 0, - 602, 0, 24, 0, 0, 0, 0, 0, 50, 0, - 0, 27, 22, 129, 130, 0, 0, 0, 0, 0, - 0, 77, 77, 77, 0, 27, 0, 28, 29, 0, - 588, 0, 588, 1280, 0, 0, 0, 0, 0, 0, - 0, 31, 0, 588, 0, 0, 0, 588, 588, 588, - 795, 32, 0, 0, 0, 0, 0, 1056, 0, 33, - 0, 0, 0, 0, 34, 6, 0, 7, 8, 9, - 10, 11, 12, 13, 0, 866, 866, 1035, 14, 0, - 0, 0, 0, 242, 246, 0, 0, 0, 0, 0, - 77, 0, 77, 17, 0, 18, 19, 77, 77, 77, - 0, 21, 0, 0, 0, 0, 22, 0, 0, 0, - 24, 1035, 0, 415, 0, 0, 0, 0, 0, 27, - 0, 28, 29, 0, 0, 30, 0, 0, 189, 0, - 189, 189, 0, 0, 0, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, - 0, 191, 0, 33, 0, 0, 0, 0, 34, 0, - 1001, 1002, 818, 820, 0, 0, 189, 0, 1008, 0, - 7, 8, 9, 10, 0, 0, 483, 189, 189, 0, - 189, 0, 0, 818, 820, 0, 0, 77, 77, 77, - 77, 77, 0, 0, 0, 77, 0, 0, 0, 0, - 0, 0, 804, 804, 246, 804, 0, 0, 0, 22, - 1056, 1056, 1056, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 0, 28, 29, 0, 0, 0, -347, - 8, 9, -347, -347, 12, 230, 0, 0, 180, 0, - 14, 866, 866, 1035, 1035, 1035, 0, 0, 181, 866, - 0, 0, 0, 0, 0, 17, 33, 18, -347, 0, - 0, 182, 0, 21, 1035, 1035, 1035, 77, -347, 0, - 0, 0, 24, 0, 580, 0, 0, 0, 0, 0, - 0, 27, 0, 129, 130, 0, 1001, 1002, 0, 1008, - 0, 0, 0, 0, 0, 0, 0, 581, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 582, 7, 8, - 9, 10, 0, 77, 77, -347, 77, 583, 0, 0, - 584, 585, 101, 0, 0, 7, 8, 9, 10, 242, - 246, 242, 120, 101, 0, 0, 0, 0, 0, 101, - 101, 0, 101, 0, 0, 0, 0, 22, 0, 0, - 0, 189, 189, 1033, 77, 0, 0, 0, 242, 77, - 27, 77, 28, 29, 22, 0, 1334, 866, 866, 0, - 866, 0, 222, 0, 0, 0, 180, 27, 0, 28, - 29, 0, 0, 0, 0, 0, 181, 1033, 0, 0, - 0, 0, 0, 180, 33, 0, 0, 0, 0, 182, - 0, 0, 0, 181, 0, 0, 0, 0, 191, 0, - 0, 33, 77, 77, 77, 0, 182, 925, 0, 7, - 8, 926, 10, 134, 12, 13, 0, 189, 0, 0, - 14, 120, 0, 120, 0, 0, 101, 0, 0, 0, - 101, 101, 0, 0, 0, 17, 0, 18, 19, 20, - 0, 0, 101, 21, 101, 101, 101, 0, 22, 101, - 101, 101, 24, 927, 0, 928, 191, 0, 191, 0, - 0, 27, 0, 28, 29, 0, 0, 929, 0, 930, - 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 7, 8, 9, 10, 0, 0, 32, 0, 1056, - 0, 0, 0, 0, 242, 33, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 189, 189, 189, - 189, 1033, 0, 1156, 0, 189, 0, 0, 0, 0, - 22, 466, 101, 0, 0, 0, 0, 0, 0, 0, - 1033, 1033, 1033, 27, 0, 28, 29, 1056, 1056, 1056, - 0, 0, 101, 445, 0, 0, 0, 0, 0, 441, - 0, 0, 0, 0, 0, 0, 0, 0, 925, 442, - 7, 8, 926, 10, 134, 12, 13, 33, 77, 0, - 0, 14, 443, 0, 0, 0, 451, 0, 0, 0, - 0, 101, 0, 0, 0, 0, 17, 0, 18, 19, - 20, 445, 445, 445, 21, -486, 0, 0, 0, 22, - 0, 0, 0, 24, 927, 0, 928, 0, 0, 0, - 0, 0, 27, 0, 28, 29, 0, 0, 929, 0, - 930, 0, 191, 0, 0, 0, 0, 101, 31, 101, - 101, 0, 0, 189, 189, 0, 189, 0, 32, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 101, 0, 0, 0, 0, -486, 0, - 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 101, 925, 0, 7, 8, 926, - 10, 134, 12, 13, 0, 0, 0, 101, 14, 0, - 0, 101, 0, 0, 101, 0, 0, 0, 0, 101, - 0, 0, 0, 17, 0, 18, 19, 20, 0, 0, - 0, 21, -488, 0, 0, 0, 22, 0, 0, 0, - 24, 927, 189, 928, 189, 0, 0, 0, 0, 27, - 0, 28, 29, 0, 0, 929, 0, 930, 0, 8, - 9, 0, 134, 12, 13, 31, 0, 1436, 0, 14, - 0, 0, 0, 0, 0, 32, 101, 0, 708, 0, - 0, 0, 0, 33, 17, 0, 18, 19, 34, 0, - 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 24, 0, 101, 0, -488, 0, 0, 0, 0, - 27, 0, 129, 130, 1342, 0, 1232, 1233, 1234, 10, - 134, 12, 286, 287, 288, 0, 289, 14, 1235, 1033, - 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, - 15, 16, 17, 290, 18, 19, 20, 0, 291, 292, - 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, - 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, - 1246, 303, 660, 0, 1247, 304, 101, 1033, 1033, 1033, - 0, 305, 0, 0, 306, 0, 101, 101, 0, 101, - 101, 0, 307, 308, 309, 0, 0, 0, 0, 0, - 310, 311, 312, 0, 0, 0, 0, 313, 189, 1248, - 8, 9, 0, 192, 12, 193, 0, 0, 0, 0, - 14, 0, 0, 0, 1343, 314, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 18, 19, 0, - 0, 0, 120, 21, 0, 0, 0, 0, 0, 0, - 0, 222, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 0, 129, 130, 708, 0, 0, 1231, 0, - 1232, 1233, 1234, 10, 134, 12, 286, 287, 288, 0, - 289, 14, 1235, 0, 1236, 1237, 1238, 1239, 1240, 1241, - 1242, 1243, 1244, 1245, 15, 16, 17, 290, 18, 19, + 517, 314, 285, 8, 9, 10, 134, 12, 286, 287, + 288, 672, 289, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 101, 101, 0, 101, 0, 0, 17, 290, + 18, 19, 20, 0, 291, 292, 21, 0, 293, 294, + 295, 22, 296, 297, 0, 24, 0, 578, 0, 298, + 299, 300, 301, 302, 27, 0, 28, 303, -276, 0, + 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, + 834, 0, 0, 707, 0, 0, 0, 0, 307, 308, + 835, 0, 0, 0, 0, 0, 310, 311, 312, 0, + 581, 0, 0, 836, 583, 0, 0, 673, 0, 0, + 0, 707, 0, 0, 0, 0, 0, 0, 0, 0, + 517, 314, 7, 8, 9, 10, 134, 12, 286, 287, + 288, 672, 289, 14, 0, 0, 0, 0, 0, 0, + 0, 101, 0, 0, 0, 0, 0, 0, 17, 290, + 18, 19, 20, 0, 291, 292, 21, 0, 293, 294, + 295, 22, 296, 297, 0, 24, 0, 578, 0, 298, + 299, 300, 301, 302, 27, 0, 28, 29, -276, 0, + 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, + 1053, 0, 0, 0, 0, 0, 0, 0, 307, 308, + 1054, 0, 0, 0, 0, 0, 310, 311, 312, 0, + 581, 0, 0, 1055, 583, 0, 671, 673, 285, 8, + 9, 10, 134, 12, 286, 287, 288, 672, 289, 14, + 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 101, 0, 101, 17, 290, 18, 19, 20, 0, + 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, + 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, + 27, 0, 28, 303, 0, 0, 0, 304, 0, 0, + 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, + 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, + 0, 0, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 673, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -749, 768, 314, 285, 8, + 9, 10, 134, 12, 286, 287, 288, 0, 289, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 290, 18, 19, 20, 0, + 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, + 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, + 27, 0, 28, 303, 1414, 0, -739, 304, 0, 0, + 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, + 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, + 0, 0, 310, 311, 312, 0, 0, 0, 662, 313, + 756, 757, 758, 10, 0, 12, 499, 287, 288, 0, + 289, 14, 0, 0, 0, 0, 0, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, - 301, 302, 27, 708, 1246, 303, 660, 0, 1247, 304, + 301, 302, 27, 0, 759, 760, 663, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, - 0, 101, 101, 101, 0, 0, 307, 308, 309, 0, - 0, 0, 0, 101, 310, 311, 312, 0, 0, 0, - 0, 313, 519, 1248, 285, 8, 9, 10, 134, 12, - 286, 287, 288, 673, 289, 14, 0, 0, 0, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 290, 18, 19, 20, 0, 291, 292, 21, 0, - 293, 294, 295, 22, 296, 297, 0, 24, 0, 580, - 0, 298, 299, 300, 301, 302, 27, 0, 28, 303, - -275, 0, 0, 304, 0, 101, 0, 101, 0, 305, - 0, 0, 834, 0, 0, 0, 0, 0, 101, 0, - 307, 308, 835, 0, 0, 0, 0, 0, 310, 311, - 312, 0, 583, 0, 0, 836, 585, 0, 519, 674, - 7, 8, 9, 10, 134, 12, 286, 287, 288, 673, - 289, 14, 0, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 290, 18, 19, - 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, - 296, 297, 0, 24, 0, 580, 0, 298, 299, 300, - 301, 302, 27, 0, 28, 29, -275, 0, 0, 304, - 0, 0, 0, 0, 0, 305, 0, 0, 1051, 0, - 0, 0, 708, 0, 0, 101, 307, 308, 1052, 0, - 0, 0, 0, 0, 310, 311, 312, 0, 583, 0, - 0, 1053, 585, 0, 0, 674, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, - 0, 0, 0, 672, 0, 285, 8, 9, 10, 134, - 12, 286, 287, 288, 673, 289, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 101, 101, 0, - 101, 17, 290, 18, 19, 20, 0, 291, 292, 21, - 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, - 0, 0, 298, 299, 300, 301, 302, 27, 0, 28, - 303, 0, 0, 0, 304, 0, 0, 0, 0, 0, - 305, 0, 0, 306, 0, 0, 0, 0, 708, 0, - 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, - 674, 0, 0, 0, 0, 0, 708, 0, 0, 0, - 0, 0, -748, 768, 314, 285, 8, 9, 10, 134, - 12, 286, 287, 288, 0, 289, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, - 0, 17, 290, 18, 19, 20, 0, 291, 292, 21, + 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, + 0, 0, 0, 0, 310, 311, 312, 0, 0, 0, + 0, 313, 761, 662, 0, 756, 757, 758, 10, 0, + 12, 499, 287, 288, 0, 289, 14, 0, 890, 314, + 0, 0, 0, 1128, 0, 0, 0, 0, 0, 0, + 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, - 0, 0, 298, 299, 300, 301, 302, 27, 0, 28, - 303, 1412, 0, -738, 304, 0, 0, 0, 0, 0, + 0, 0, 298, 299, 300, 301, 302, 27, 0, 759, + 760, 663, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, - 311, 312, 0, 0, 0, 663, 313, 756, 757, 758, - 10, 0, 12, 501, 287, 288, 0, 289, 14, 0, - 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 290, 18, 101, 20, 101, 291, + 311, 312, 0, 0, 0, 662, 313, 756, 757, 758, + 10, 0, 12, 499, 287, 288, 0, 289, 14, 0, + 0, 0, 0, -447, 314, 1128, 0, 0, 0, 0, + 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, - 0, 759, 760, 664, 0, 0, 304, 0, 0, 0, + 0, 759, 760, 663, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, - 0, 310, 311, 312, 0, 0, 0, 0, 313, 761, - 663, 0, 756, 757, 758, 10, 0, 12, 501, 287, - 288, 0, 289, 14, 0, 889, 314, 0, 0, 0, - 1126, 0, 0, 0, 0, 0, 0, 0, 17, 290, + 0, 310, 311, 312, 0, 0, 0, 662, 313, 756, + 757, 758, 10, 0, 12, 499, 287, 288, 0, 289, + 14, 0, 0, 0, 0, 1172, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, + 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, + 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, + 302, 27, 0, 759, 760, 663, 0, 0, 304, 0, + 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, + 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, + 0, 0, 0, 310, 311, 312, 0, 0, 0, 0, + 313, 761, 662, 0, 285, 8, 9, 10, 0, 12, + 499, 287, 288, 0, 289, 14, 0, 0, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, + 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, + 0, 298, 299, 300, 301, 302, 27, 0, 28, 303, + 663, 0, 0, 304, 0, 0, 0, 0, 0, 305, + 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, + 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, + 312, 0, 0, 0, 0, 313, 0, 0, 517, 0, + 285, 8, 9, 10, 1176, 12, 286, 287, 288, 0, + 289, 14, 0, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, + 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, + 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, + 301, 302, 27, 0, 28, 303, -276, 0, 0, 304, + 0, 0, 0, 0, 0, 305, 0, 0, 518, 0, + 0, 0, 0, 0, 0, 0, 307, 308, 519, 0, + 0, 0, 0, 0, 310, 311, 312, 0, 0, 0, + 662, 520, 285, 8, 9, 10, 0, 12, 499, 287, + 288, 0, 289, 14, 0, 0, 0, 0, 0, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, - 299, 300, 301, 302, 27, 0, 759, 760, 664, 0, + 299, 300, 301, 302, 27, 0, 28, 303, 663, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, 0, - 0, 0, 663, 313, 756, 757, 758, 10, 0, 12, - 501, 287, 288, 0, 289, 14, 0, 0, 0, 0, - -446, 314, 1126, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 517, 313, 7, 8, 9, 10, 0, 12, + 286, 287, 288, 0, 289, 14, 0, 0, 0, 0, + 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, - 0, 298, 299, 300, 301, 302, 27, 0, 759, 760, - 664, 0, 0, 304, 0, 0, 0, 0, 0, 305, - 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, - 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, - 312, 0, 0, 0, 663, 313, 756, 757, 758, 10, - 0, 12, 501, 287, 288, 0, 289, 14, 0, 0, - 0, 0, 1170, 314, 0, 0, 0, 0, 0, 0, + 0, 298, 299, 300, 301, 302, 27, 0, 28, 29, + -276, 0, 0, 304, 0, 0, 0, 0, 0, 305, + 0, 0, 1390, 0, 0, 0, 0, 0, 0, 0, + 307, 308, 1391, 0, 0, 0, 0, 0, 310, 311, + 312, 0, 0, 0, 1489, 1392, 285, 8, 9, 10, + 0, 12, 286, 287, 288, 0, 289, 14, 0, 0, + 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, - 759, 760, 664, 0, 0, 304, 0, 0, 0, 0, + 28, 303, 0, 0, -163, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, - 310, 311, 312, 0, 0, 0, 0, 313, 761, 663, - 0, 285, 8, 9, 10, 0, 12, 501, 287, 288, - 0, 289, 14, 0, 0, 314, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, - 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, - 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, - 300, 301, 302, 27, 0, 28, 303, 664, 0, 0, - 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, - 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, - 0, 0, 0, 0, 0, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 0, 519, 0, 285, 8, 9, - 10, 1174, 12, 286, 287, 288, 0, 289, 14, 0, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, - 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, - 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, - 0, 28, 303, -275, 0, 0, 304, 0, 0, 0, - 0, 0, 305, 0, 0, 520, 0, 0, 0, 0, - 0, 0, 0, 307, 308, 521, 0, 0, 0, 0, - 0, 310, 311, 312, 0, 0, 0, 663, 522, 285, - 8, 9, 10, 0, 12, 501, 287, 288, 0, 289, - 14, 0, 0, 0, 0, 0, 314, 0, 0, 0, + 310, 311, 312, 0, 0, 0, 768, 313, 285, 8, + 9, 10, 0, 12, 499, 287, 288, 0, 289, 14, + 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, + 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, + 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, + 27, 0, 28, 303, 0, 0, 0, 304, 0, 0, + 0, 0, 0, 305, 248, 0, 306, 8, 9, 0, + 0, 12, 13, 0, 307, 308, 309, 14, 0, 0, + 0, 0, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 17, 0, 18, 0, 0, 0, 0, 0, + 21, 0, 249, 250, 0, -739, 0, 314, 0, 24, + 0, 251, 0, 0, 0, 0, 0, 0, 27, 0, + 129, 130, 0, 252, 0, 0, 0, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, + 274, 275, 276, 0, 0, 277, 0, 849, 278, 285, + 8, 9, 10, 0, 12, 499, 287, 288, 0, 289, + 14, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, - 302, 27, 0, 28, 303, 664, 0, 0, 304, 0, + 302, 27, 0, 28, 303, 0, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, - 0, 0, 0, 310, 311, 312, 0, 0, 0, 768, - 313, 285, 8, 9, 10, 0, 12, 501, 287, 288, + 0, 0, 0, 310, 311, 312, 0, 0, 0, 851, + 313, 285, 8, 9, 10, 0, 12, 499, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, 28, 303, 0, 0, 0, - 304, -738, 0, 0, 0, 0, 305, 0, 0, 306, + 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, 0, 0, - 0, 519, 313, 7, 8, 9, 10, 0, 12, 286, + 0, 1403, 313, 285, 8, 9, 10, 0, 12, 499, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, - 298, 299, 300, 301, 302, 27, 0, 28, 29, -275, + 298, 299, 300, 301, 302, 27, 0, 28, 303, 0, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, - 0, 1388, 0, 0, 0, 0, 0, 0, 0, 307, - 308, 1389, 0, 0, 0, 0, 0, 310, 311, 312, - 0, 0, 0, 1487, 1390, 285, 8, 9, 10, 0, - 12, 286, 287, 288, 0, 289, 14, 0, 0, 0, - 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, + 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, + 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, + 285, 8, 9, 10, 313, 12, 499, 287, 288, 0, + 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, + 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, + 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, + 301, 302, 27, 0, 28, 303, 0, 0, 0, 304, + 0, 0, 0, 0, 0, 305, 0, 926, 306, 7, + 8, 927, 10, 134, 12, 13, 307, 308, 309, 0, + 14, 0, 0, 0, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 0, 0, 21, -489, 0, 0, 0, 22, 314, + 807, 0, 24, 928, 0, 929, 0, 0, 0, 0, + 0, 27, 0, 28, 29, 0, 0, 930, 0, 931, + 0, 0, 0, 0, 0, 0, 0, 31, 926, 0, + 7, 8, 927, 10, 134, 12, 13, 32, 0, 0, + 0, 14, 0, 0, 0, 33, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 17, 0, 18, 19, + 20, 0, 0, 0, 21, -488, 0, -489, 0, 22, + 0, 0, 0, 24, 928, 0, 929, 0, 0, 0, + 0, 0, 27, 0, 28, 29, 0, 0, 930, 0, + 931, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 34, 0, 0, 0, 1234, 1235, 1236, 10, 134, + 12, 286, 287, 288, 0, 289, 14, 1237, -488, 1238, + 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 15, + 16, 17, 290, 18, 19, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, - 0, 0, 298, 299, 300, 301, 302, 27, 0, 28, - 303, 0, 0, -163, 304, 0, 0, 0, 0, 0, + 0, 0, 298, 299, 300, 301, 302, 27, 0, 1248, + 303, 659, 0, 1249, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, - 311, 312, 0, 0, 0, 768, 313, 285, 8, 9, - 10, 0, 12, 501, 287, 288, 0, 289, 14, 0, - 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, + 311, 312, 0, 0, 0, 0, 313, 0, 1250, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1349, 314, 1234, 1235, 1236, 10, 134, + 12, 286, 287, 288, 0, 289, 14, 1237, 0, 1238, + 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 15, + 16, 17, 290, 18, 19, 20, 0, 291, 292, 21, + 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, + 0, 0, 298, 299, 300, 301, 302, 27, 0, 1248, + 303, 659, 0, 1249, 304, 0, 0, 0, 0, 0, + 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, + 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 1250, 0, + 0, 1234, 1235, 1236, 10, 134, 12, 286, 287, 288, + 0, 289, 14, 1237, 314, 1238, 1239, 1240, 1241, 1242, + 1243, 1244, 1245, 1246, 1247, 15, 16, 17, 290, 18, + 19, 20, 0, 291, 292, 21, 0, 293, 294, 295, + 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, + 300, 301, 302, 27, 0, 1248, 303, 1464, 0, 1249, + 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, + 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, + 0, 0, 0, 0, 0, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 1250, 0, 0, 1234, 1235, 1236, + 10, 134, 12, 286, 287, 288, 0, 289, 14, 1237, + 314, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, + 1247, 15, 16, 17, 290, 18, 19, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, - 0, 28, 303, 0, 0, 0, 304, 0, 0, 0, - 0, 0, 305, 248, 0, 306, 8, 9, 0, 0, - 12, 13, 0, 307, 308, 309, 14, 0, 0, 0, + 0, 1248, 303, 0, 0, 1249, 304, 0, 0, 0, + 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, + 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 0, 17, 0, 18, 0, 0, 0, 0, 0, 21, - 0, 249, 250, 0, -738, 0, 314, 0, 24, 0, - 251, 0, 0, 0, 0, 0, 0, 27, 0, 129, - 130, 0, 252, 0, 0, 0, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, - 275, 276, 0, 0, 277, 0, 848, 278, 285, 8, - 9, 10, 0, 12, 501, 287, 288, 0, 289, 14, - 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, + 1250, 285, 8, 9, 10, 134, 12, 286, 287, 288, + 672, 289, 14, 0, 0, 0, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, + 19, 20, 0, 291, 292, 21, 0, 293, 294, 295, + 22, 296, 297, 0, 24, 0, 578, 0, 298, 299, + 300, 301, 302, 27, 0, 28, 303, 0, 0, 0, + 304, 0, 0, 0, 0, 0, 305, 0, 0, 834, + 0, 0, 0, 0, 0, 0, 0, 307, 308, 835, + 0, 0, 0, 0, 0, 310, 311, 312, 0, 581, + 0, 0, 836, 583, 0, 0, 673, 7, 8, 9, + 10, 134, 12, 286, 287, 288, 672, 289, 14, 0, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 290, 18, 19, 20, 0, 291, + 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, + 24, 0, 578, 0, 298, 299, 300, 301, 302, 27, + 0, 28, 29, 0, 0, 0, 304, 0, 0, 0, + 0, 0, 305, 0, 0, 1053, 0, 0, 0, 0, + 0, 0, 0, 307, 308, 1054, 0, 0, 0, 0, + 0, 310, 311, 312, 0, 581, 0, 0, 1055, 583, + 0, 0, 673, 285, 8, 9, 10, 0, 12, 286, + 287, 288, 0, 289, 14, 0, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, + 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, + 298, 299, 300, 301, 302, 27, 0, 28, 303, 0, + 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, + 0, 306, 0, 0, 0, 0, 339, 0, 340, 307, + 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, + 285, 8, 9, 10, 313, 12, 286, 287, 288, 0, + 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, + 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, + 296, 297, 0, 24, 0, 578, 0, 298, 299, 300, + 301, 302, 27, 0, 28, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 305, 0, 0, 834, 0, + 0, 0, 0, 0, 0, 0, 307, 308, 835, 0, + 0, 0, 0, 0, 310, 311, 312, 0, 581, 0, + 0, 836, 583, 7, 8, 9, 10, 0, 12, 286, + 287, 288, 0, 289, 14, 0, 0, 0, 0, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, + 294, 295, 22, 296, 297, 0, 24, 0, 578, 0, + 298, 299, 300, 301, 302, 27, 0, 28, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, + 0, 1053, 0, 0, 0, 0, 0, 0, 0, 307, + 308, 1054, 0, 0, 0, 0, 0, 310, 311, 312, + 0, 581, 0, 0, 1055, 583, 285, 8, 9, 10, + 0, 12, 499, 287, 288, 0, 289, 14, 0, 0, + 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, + 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, + 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, + 28, 303, 0, 0, 1326, 304, 0, 0, 0, 0, + 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, + 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, + 310, 311, 312, 0, 0, 0, 0, 313, 285, 8, + 9, 10, 134, 12, 286, 287, 288, 0, 289, 14, + 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 290, 18, 19, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, - 27, 0, 28, 303, 0, 0, 0, 304, 0, 0, + 27, 0, 28, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, - 0, 0, 310, 311, 312, 0, 0, 0, 850, 313, - 285, 8, 9, 10, 0, 12, 501, 287, 288, 0, - 289, 14, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 290, 18, 0, - 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, - 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, - 301, 302, 27, 0, 28, 303, 0, 0, 0, 304, - 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, - 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, - 0, 0, 0, 0, 310, 311, 312, 0, 0, 0, - 1401, 313, 285, 8, 9, 10, 0, 12, 501, 287, - 288, 0, 289, 14, 0, 0, 0, 0, 0, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 290, + 0, 0, 310, 311, 312, 285, 8, 9, 10, 313, + 12, 286, 287, 288, 0, 289, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, + 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, + 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, + 0, 0, 298, 299, 300, 301, 302, 27, 0, 28, + 303, 0, 0, 0, 304, 0, 0, 0, 0, 0, + 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, + 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, + 311, 312, 285, 8, 9, 10, 313, 12, 499, 287, + 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, 28, 303, 0, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, 285, - 8, 9, 10, 313, 12, 501, 287, 288, 0, 289, + 8, 9, 10, 313, 12, 499, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, - 302, 27, 0, 28, 303, 0, 0, 0, 304, 0, - 0, 0, 0, 0, 305, 0, 925, 306, 7, 8, - 926, 10, 134, 12, 13, 307, 308, 309, 0, 14, - 0, 0, 0, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 0, 0, 17, 0, 18, 19, 20, 0, - 0, 0, 21, -487, 0, 0, 0, 22, 314, 807, - 0, 24, 927, 0, 928, 0, 0, 0, 0, 0, - 27, 0, 28, 29, 0, 0, 929, 0, 930, 0, - 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 34, - 0, 0, 0, 1232, 1233, 1234, 10, 134, 12, 286, - 287, 288, 0, 289, 14, 1235, -487, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1243, 1244, 1245, 15, 16, 17, - 290, 18, 19, 20, 0, 291, 292, 21, 0, 293, - 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, - 298, 299, 300, 301, 302, 27, 0, 1246, 303, 660, - 0, 1247, 304, 0, 0, 0, 0, 0, 305, 0, - 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, - 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 1248, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1347, 314, 1232, 1233, 1234, 10, 134, 12, 286, - 287, 288, 0, 289, 14, 1235, 0, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1243, 1244, 1245, 15, 16, 17, - 290, 18, 19, 20, 0, 291, 292, 21, 0, 293, - 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, - 298, 299, 300, 301, 302, 27, 0, 1246, 303, 660, - 0, 1247, 304, 0, 0, 0, 0, 0, 305, 0, - 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, - 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 1248, 0, 0, 1232, - 1233, 1234, 10, 134, 12, 286, 287, 288, 0, 289, - 14, 1235, 314, 1236, 1237, 1238, 1239, 1240, 1241, 1242, - 1243, 1244, 1245, 15, 16, 17, 290, 18, 19, 20, - 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, - 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, - 302, 27, 0, 1246, 303, 1462, 0, 1247, 304, 0, + 302, 27, 0, 28, 303, 530, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, - 0, 0, 0, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 1248, 0, 0, 1232, 1233, 1234, 10, 134, - 12, 286, 287, 288, 0, 289, 14, 1235, 314, 1236, - 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 15, - 16, 17, 290, 18, 19, 20, 0, 291, 292, 21, - 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, - 0, 0, 298, 299, 300, 301, 302, 27, 0, 1246, - 303, 0, 0, 1247, 304, 0, 0, 0, 0, 0, - 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, - 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 1248, 285, - 8, 9, 10, 134, 12, 286, 287, 288, 673, 289, - 14, 0, 0, 0, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 290, 18, 19, 20, + 0, 0, 0, 310, 311, 312, 285, 8, 9, 10, + 531, 12, 499, 287, 288, 0, 289, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, + 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, + 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, + 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, + 28, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, + 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, + 310, 311, 312, 0, 0, 0, 0, 313, 567, 285, + 8, 9, 10, 0, 12, 499, 287, 288, 0, 289, + 14, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, - 297, 0, 24, 0, 580, 0, 298, 299, 300, 301, + 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, 28, 303, 0, 0, 0, 304, 0, - 0, 0, 0, 0, 305, 0, 0, 834, 0, 0, - 0, 0, 0, 0, 0, 307, 308, 835, 0, 0, - 0, 0, 0, 310, 311, 312, 0, 583, 0, 0, - 836, 585, 0, 0, 674, 7, 8, 9, 10, 134, - 12, 286, 287, 288, 673, 289, 14, 0, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 290, 18, 19, 20, 0, 291, 292, 21, - 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, - 580, 0, 298, 299, 300, 301, 302, 27, 0, 28, - 29, 0, 0, 0, 304, 0, 0, 0, 0, 0, - 305, 0, 0, 1051, 0, 0, 0, 0, 0, 0, - 0, 307, 308, 1052, 0, 0, 0, 0, 0, 310, - 311, 312, 0, 583, 0, 0, 1053, 585, 0, 0, - 674, 285, 8, 9, 10, 0, 12, 286, 287, 288, - 0, 289, 14, 0, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, - 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, - 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, - 300, 301, 302, 27, 0, 28, 303, 0, 0, 0, - 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, - 0, 0, 0, 0, 339, 0, 340, 307, 308, 309, - 0, 0, 0, 0, 0, 310, 311, 312, 285, 8, - 9, 10, 313, 12, 286, 287, 288, 0, 289, 14, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, - 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, - 0, 24, 0, 580, 0, 298, 299, 300, 301, 302, - 27, 0, 28, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 305, 0, 0, 834, 0, 0, 0, - 0, 0, 0, 0, 307, 308, 835, 0, 0, 0, - 0, 0, 310, 311, 312, 0, 583, 0, 0, 836, - 585, 7, 8, 9, 10, 0, 12, 286, 287, 288, - 0, 289, 14, 0, 0, 0, 0, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 290, 18, - 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, - 22, 296, 297, 0, 24, 0, 580, 0, 298, 299, - 300, 301, 302, 27, 0, 28, 29, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 305, 0, 0, 1051, - 0, 0, 0, 0, 0, 0, 0, 307, 308, 1052, - 0, 0, 0, 0, 0, 310, 311, 312, 0, 583, - 0, 0, 1053, 585, 285, 8, 9, 10, 0, 12, - 501, 287, 288, 0, 289, 14, 0, 0, 0, 0, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, - 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, - 0, 298, 299, 300, 301, 302, 27, 0, 28, 303, - 0, 0, 1324, 304, 0, 0, 0, 0, 0, 305, - 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, - 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, - 312, 0, 0, 0, 0, 313, 285, 8, 9, 10, - 134, 12, 286, 287, 288, 0, 289, 14, 0, 0, - 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 290, 18, 19, 20, 0, 291, 292, + 0, 0, 0, 0, 305, 0, 0, 518, 0, 0, + 0, 0, 0, 0, 0, 307, 308, 519, 0, 0, + 0, 0, 0, 310, 311, 312, 1025, 8, 9, 10, + 520, 12, 499, 287, 288, 0, 289, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, + 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, - 28, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 303, 0, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, - 310, 311, 312, 285, 8, 9, 10, 313, 12, 286, + 310, 311, 312, 7, 8, 9, 10, 313, 12, 499, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, - 298, 299, 300, 301, 302, 27, 0, 28, 303, 0, + 298, 299, 300, 301, 302, 27, 0, 28, 29, 0, 0, 0, 304, 0, 0, 0, 0, 0, 305, 0, - 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, - 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, - 285, 8, 9, 10, 313, 12, 501, 287, 288, 0, + 0, 1390, 0, 0, 0, 0, 0, 0, 0, 307, + 308, 1391, 0, 0, 0, 0, 0, 310, 311, 312, + 285, 8, 9, 10, 1392, 12, 499, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, - 301, 302, 27, 0, 28, 303, 0, 0, 0, 304, + 301, 302, 27, 0, 28, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, 312, 285, 8, 9, - 10, 313, 12, 501, 287, 288, 0, 289, 14, 0, + 10, 500, 12, 499, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, - 0, 28, 303, 532, 0, 0, 0, 0, 0, 0, + 0, 28, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, - 0, 310, 311, 312, 285, 8, 9, 10, 533, 12, - 501, 287, 288, 0, 289, 14, 0, 0, 0, 0, + 0, 310, 311, 312, 285, 8, 9, 10, 503, 12, + 499, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, @@ -2239,120 +2307,64 @@ static const short yytable[] = { 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, - 312, 0, 0, 0, 0, 313, 569, 285, 8, 9, - 10, 0, 12, 501, 287, 288, 0, 289, 14, 0, - 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, - 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, - 24, 0, 0, 0, 298, 299, 300, 301, 302, 27, - 0, 28, 303, 0, 0, 0, 304, 0, 0, 0, - 0, 0, 305, 0, 0, 520, 0, 0, 0, 0, - 0, 0, 0, 307, 308, 521, 0, 0, 0, 0, - 0, 310, 311, 312, 1023, 8, 9, 10, 522, 12, - 501, 287, 288, 0, 289, 14, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, - 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, - 0, 298, 299, 300, 301, 302, 27, 0, 28, 303, - 0, 0, 0, 304, 0, 0, 0, 0, 0, 305, - 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, - 307, 308, 309, 0, 0, 0, 0, 0, 310, 311, - 312, 7, 8, 9, 10, 313, 12, 501, 287, 288, + 312, 285, 8, 9, 10, 313, 12, 499, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, - 300, 301, 302, 27, 0, 28, 29, 0, 0, 0, - 304, 0, 0, 0, 0, 0, 305, 0, 0, 1388, - 0, 0, 0, 0, 0, 0, 0, 307, 308, 1389, - 0, 0, 0, 0, 0, 310, 311, 312, 285, 8, - 9, 10, 1390, 12, 501, 287, 288, 0, 289, 14, + 300, 301, 302, 27, 0, 28, 303, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 305, 0, 0, 518, + 0, 0, 0, 0, 0, 0, 0, 307, 308, 519, + 0, 0, 0, 0, 0, 310, 311, 312, 7, 8, + 9, 10, 520, 12, 286, 287, 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, 302, - 27, 0, 28, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 305, 0, 0, 306, 0, 0, 0, - 0, 0, 0, 0, 307, 308, 309, 0, 0, 0, - 0, 0, 310, 311, 312, 285, 8, 9, 10, 502, - 12, 501, 287, 288, 0, 289, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 17, 290, 18, 0, 20, 0, 291, 292, 21, - 0, 293, 294, 295, 22, 296, 297, 0, 24, 0, - 0, 0, 298, 299, 300, 301, 302, 27, 0, 28, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 305, 0, 0, 306, 0, 0, 0, 0, 0, 0, - 0, 307, 308, 309, 0, 0, 0, 0, 0, 310, - 311, 312, 285, 8, 9, 10, 505, 12, 501, 287, - 288, 0, 289, 14, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 314, 0, 0, 0, 17, 290, - 18, 0, 20, 0, 291, 292, 21, 0, 293, 294, - 295, 22, 296, 297, 0, 24, 0, 0, 0, 298, - 299, 300, 301, 302, 27, 0, 28, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, - 306, 0, 0, 0, 0, 0, 0, 0, 307, 308, - 309, 0, 0, 0, 0, 0, 310, 311, 312, 285, - 8, 9, 10, 313, 12, 501, 287, 288, 0, 289, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 314, 0, 0, 0, 17, 290, 18, 0, 20, - 0, 291, 292, 21, 0, 293, 294, 295, 22, 296, - 297, 0, 24, 0, 0, 0, 298, 299, 300, 301, - 302, 27, 0, 28, 303, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 305, 0, 0, 520, 0, 0, - 0, 0, 0, 0, 0, 307, 308, 521, 0, 0, - 0, 0, 0, 310, 311, 312, 7, 8, 9, 10, - 522, 12, 286, 287, 288, 0, 289, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, - 0, 0, 17, 290, 18, 0, 20, 0, 291, 292, - 21, 0, 293, 294, 295, 22, 296, 297, 0, 24, - 0, 0, 0, 298, 299, 300, 301, 302, 27, 0, - 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 305, 0, 6, 1388, 7, 8, 9, 10, 11, - 12, 13, 307, 308, 1389, 0, 14, 0, 0, 0, - 310, 311, 312, 0, 0, 0, 0, 1390, 0, 15, - 16, 17, 0, 18, 19, 20, 0, 0, 0, 21, - 0, 0, 0, 0, 22, 314, 0, 23, 24, 25, - 0, 26, 0, 0, 0, 0, 0, 27, 0, 28, - 29, 0, 166, 30, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 31, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 32, 0, 0, 0, 0, 15, 16, - 17, 33, 18, 19, 20, 0, 34, 0, 21, 0, - 0, 0, 35, 22, 0, 0, 23, 24, 25, 0, - 26, 0, 0, 0, 0, 0, 27, 0, 28, 29, - 0, 0, 30, 7, 8, 9, 10, 201, 202, 203, - 0, 0, 31, 0, 14, 0, 0, 0, 0, 0, - 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 19, 0, 0, 34, 0, 21, 0, 0, - 0, 35, 22, 0, 0, 0, 24, 0, 580, 0, - 0, 0, 0, 0, 0, 27, 0, 28, 29, 7, - 8, 9, 10, 201, 202, 203, 0, 0, 0, 0, - 14, 862, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 863, 0, 0, 0, 0, 0, 0, 19, 33, - 0, 583, 0, 21, 864, 585, 0, 0, 22, 0, - 0, 0, 24, 0, 580, 0, 0, 0, 0, 0, - 0, 27, 0, 28, 29, 7, 8, 9, 10, 134, - 12, 13, 0, 0, 0, 0, 14, 862, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 863, 0, 0, - 0, 17, 0, 18, 19, 33, 0, 583, 0, 21, - 898, 585, 0, 0, 22, 0, 0, 0, 24, 0, - 0, 0, 0, 0, 0, 0, 0, 27, 0, 28, - 29, 7, 8, 9, 10, 134, 12, 13, 0, 0, - 904, 0, 14, 31, 0, 0, 0, 135, 0, 0, - 0, 0, 0, 32, 0, 0, 0, 17, 0, 18, - 19, 33, 0, 0, 0, 21, 34, 0, 0, 0, - 22, 0, 0, 0, 24, 0, 1086, 8, 926, 10, + 27, 0, 28, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 305, 0, 166, 1390, 7, 8, 9, + 10, 11, 12, 13, 307, 308, 1391, 0, 14, 0, + 0, 0, 310, 311, 312, 0, 0, 0, 0, 1392, + 0, 15, 16, 17, 0, 18, 19, 20, 0, 0, + 0, 21, 0, 0, 0, 0, 22, 314, 0, 23, + 24, 25, 0, 26, 0, 0, 0, 0, 0, 27, + 0, 28, 29, 0, 0, 30, 0, 0, 7, 8, + 9, 10, 134, 12, 13, 31, 0, 672, 0, 14, + 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, + 0, 0, 0, 33, 17, 0, 18, 19, 34, 0, + 0, 0, 21, 0, 35, 0, 0, 22, 0, 0, + 0, 24, 0, 578, 0, 0, 0, 0, 0, 0, + 27, 0, 28, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1032, 926, 0, 7, + 8, 927, 10, 134, 12, 13, 1033, 0, 0, 0, + 14, 0, 0, 0, 33, 0, 581, 0, 0, 1034, + 583, 0, 0, 673, 0, 17, 0, 18, 19, 20, + 0, 0, 0, 21, 0, 0, 0, 0, 22, 0, + 0, 0, 24, 928, 0, 929, 0, 0, 0, 0, + 0, 27, 0, 28, 29, 0, 0, 930, 0, 931, + 7, 8, 9, 10, 192, 12, 193, 31, 0, 0, + 0, 14, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 33, 17, 0, 18, 19, + 34, 0, 0, 0, 21, 0, 0, 0, 0, 22, + 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, + 0, 0, 27, 0, 28, 29, 0, 0, 194, 0, + 0, 7, 8, 9, 10, 134, 12, 13, 31, 0, + 905, 0, 14, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 33, 17, 0, 18, + 19, 34, 0, 0, 0, 21, 0, 0, 0, 0, + 22, 0, 0, 0, 24, 0, 1088, 8, 927, 10, 192, 12, 193, 27, 0, 28, 29, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 17, 0, 18, 19, 0, 0, 0, 32, 21, 0, 0, 0, 0, 22, 0, 33, 0, 24, 0, 0, 34, 0, 0, 0, 0, 0, 27, 0, - 28, 29, 0, 0, 0, 0, 1088, 7, 8, 9, + 28, 29, 0, 0, 0, 0, 1090, 7, 8, 9, 10, 192, 12, 193, 31, 0, 0, 0, 14, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 33, 17, 0, 18, 19, 34, 0, 0, 0, 21, 0, 0, 0, 0, 22, 0, 0, 0, 24, 0, 7, 8, 9, 10, 134, 12, 13, 27, - 0, 28, 29, 14, 0, 1337, 0, 0, 0, 0, + 0, 28, 29, 14, 0, 1339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 17, 0, 18, 19, 0, 0, 0, 32, 21, 0, 0, 0, 0, 22, 0, 33, 0, 24, 0, 0, 34, 0, @@ -2360,701 +2372,747 @@ static const short yytable[] = { 58, 9, 10, 192, 12, 193, 0, 0, 0, 0, 14, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 17, 0, 18, 19, 33, 0, - 0, 0, 21, 34, 0, 0, 0, 22, 0, 0, - 0, 24, 0, 7, 8, 9, 10, 201, 202, 203, - 27, 0, 28, 29, 14, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, - 0, 0, 19, 0, 0, 0, 32, 21, 0, 0, - 0, 0, 22, 0, 33, 1378, 24, 0, 580, 34, - 0, 0, 0, 0, 0, 27, 0, 28, 29, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 180, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 181, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 0, 1340, 0, 1379, 535, 536, 537, + 0, 0, 21, 34, 0, 0, 0, 22, 0, 1380, + 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 28, 29, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 31, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 32, 0, 0, 0, + 0, 19, 0, 0, 33, 0, 0, 0, 0, 34, + 1381, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 8, - 9, 0, 134, 12, 13, 0, 8, 9, 0, 14, - 12, 230, 0, 8, 9, 0, 14, 12, 13, 0, - 0, 0, 0, 14, 17, 0, 18, 19, 0, 0, - 0, 17, 21, 18, 0, 0, 19, 0, 17, 21, - 18, 634, 0, 0, 0, 0, 21, 0, 24, 0, - 27, 0, 129, 130, 0, 24, 0, 27, 0, 129, - 130, 0, 0, 0, 27, 0, 129, 130, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 0, 0, 0, 0, 0, 1124, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 617, 0, 0, 1432, 535, 536, + 548, 549, 550, 551, 552, 553, 554, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, + 0, 0, 0, 0, 1126, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, + 0, 0, 1434, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 1303, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 1301, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 547, 548, 549, 550, 551, 552, 553, 554, 1451, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 1449, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556 + 554, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554 }; static const short yycheck[] = { 4, - 658, 332, 54, 161, 75, 392, 656, 196, 470, 392, - 58, 427, 4, 4, 125, 236, 83, 392, 24, 888, - 1226, 26, 151, 152, 338, 4, 931, 449, 796, 79, - 14, 36, 196, 363, 132, 940, 41, 4, 721, 289, - 290, 205, 231, 726, 36, 36, 11, 26, 34, 41, - 41, 56, 132, 133, 11, 53, 1256, 36, 89, 26, - 91, 92, 41, 1263, 31, 32, 71, 226, 1376, 36, - 320, 61, 128, 422, 41, 1249, 11, 133, 83, 1187, - 1188, 1412, 87, 4, 89, 137, 91, 92, 93, 48, - 60, 139, 281, 1201, 1410, 38, 146, 34, 82, 55, - 61, 106, 107, 1407, 36, 26, 63, 204, 205, 41, - 141, 9, 143, 0, 93, 36, 83, 338, 60, 75, - 41, 105, 4, 65, 1, 1441, 93, 55, 0, 200, - 1, 75, 1, 138, 76, 94, 141, 60, 143, 4, - 190, 111, 75, 332, 26, 110, 1393, 75, 196, 832, - 111, 110, 1483, 110, 36, 79, 204, 205, 156, 41, - 165, 26, 83, 585, 62, 1469, 152, 153, 111, 1277, - 61, 36, 93, 504, 111, 110, 41, 526, 1286, 1287, - 1380, 1289, 59, 231, 151, 152, 165, 110, 59, 187, - 59, 56, 63, 1440, 63, 657, 182, 428, 165, 12, - 1508, 60, 1376, 49, 435, 25, 1522, 27, 28, 199, - 60, 93, 584, 180, 181, 983, 12, 207, 61, 591, - 111, 1421, 55, 1470, 61, 96, 7, 96, 93, 4, - 60, 329, 14, 281, 4, 5, 91, 92, 39, 59, - 59, 23, 75, 63, 165, 1451, 60, 60, 232, 329, - 63, 110, 65, 284, 55, 55, 12, 38, 325, 48, - 110, 36, 76, 63, 60, 59, 41, 63, 111, 500, - 447, 65, 1472, 956, 111, 958, 96, 282, 455, 284, - 110, 100, 64, 165, 332, 98, 141, 57, 58, 603, - 454, 1399, 1400, 48, 681, 94, 348, 1202, 681, 629, - 165, 349, 98, 48, 60, 94, 386, 63, 313, 365, - 659, 81, 441, 442, 110, 473, 48, 27, 28, 63, - 325, 34, 32, 247, 3, 4, 5, 313, 333, 60, - 386, 562, 94, 564, 565, 1253, 63, 1255, 75, 94, - 95, 123, 98, 60, 61, 76, 677, 78, 63, 94, - 95, 61, 48, 94, 338, 65, 453, 454, 325, 63, - 75, 34, 94, 95, 461, 1133, 110, 598, 150, 48, - 1239, 75, 1442, 291, 292, 472, 55, 61, 57, 58, - 8, 9, 798, 110, 1454, 48, 14, 392, 306, 25, - 1073, 309, 463, 1463, 312, 492, 4, 315, 94, 95, - 318, 111, 1085, 48, 325, 453, 454, 48, 326, 37, - 415, 833, 1482, 461, 110, 94, 94, 48, 46, 109, - 48, 48, 25, 59, 472, 392, 61, 63, 36, 284, - 435, 94, 1502, 41, 65, 48, 415, 1306, 151, 152, - 153, 223, 224, 55, 492, 32, 1315, 1316, 415, 94, - 95, 75, 65, 94, 236, 1525, 442, 443, 60, 61, - 96, 316, 924, 94, 836, 110, 94, 94, 435, 182, - 460, 392, 859, 55, 441, 442, 859, 63, 151, 152, - 153, 94, 95, 48, 859, 475, 48, 342, 48, 344, - 63, 346, 864, 75, 415, 55, 59, 502, 48, 566, - 505, 55, 75, 65, 509, 510, 511, 512, 513, 182, - 3, 4, 5, 6, 435, 75, 502, 522, 111, 505, - 3, 4, 5, 305, 529, 59, 898, 841, 533, 94, - 95, 947, 94, 415, 94, 521, 522, 886, 48, 4, - 5, 396, 397, 94, 94, 110, 705, 533, 707, 42, - 415, 60, 61, 712, 4, 5, 745, 55, 974, 975, - 565, 566, 55, 48, 57, 58, 989, 990, 799, 992, - 76, 993, 48, 48, 57, 58, 1445, 75, 1040, 584, - 362, 812, 55, 814, 94, 816, 591, 639, 838, 641, - 642, 55, 57, 58, 642, 56, 89, 58, 81, 566, - 48, 698, 520, 521, 715, 591, 1068, 57, 58, 94, - 55, 595, 4, 5, 581, 582, 81, 584, 94, 94, - 841, 4, 5, 854, 591, 677, 9, 48, 634, 677, - 75, 81, 55, 1049, 55, 640, 4, 5, 48, 644, - 110, 9, 1058, 1059, 499, 566, 94, 1063, 1064, 880, - 698, 657, 4, 5, 75, 48, 9, 988, 48, 12, - 1032, 110, 55, 584, 95, 57, 58, 63, 110, 48, - 591, 110, 55, 94, 57, 58, 681, 138, 139, 75, - 11, 1053, 75, 111, 94, 48, 468, 55, 71, 57, - 58, 722, 723, 724, 48, 48, 3, 745, 81, 27, - 28, 94, 61, 71, 94, 57, 58, 60, 1124, 62, - 63, 716, 65, 81, 681, 94, 721, 722, 723, 724, - 94, 726, 113, 76, 716, 78, 95, 95, 441, 442, - 443, 94, 113, 4, 5, 196, 63, 716, 55, 95, - 94, 94, 95, 204, 205, 98, 63, 84, 85, 716, - 532, 60, 61, 739, 721, 4, 5, 110, 75, 726, - 681, 94, 921, 922, 923, 1181, 60, 61, 441, 442, - 443, 55, 94, 234, 8, 9, 4, 5, 75, 63, - 14, 55, 75, 4, 5, 1435, 57, 58, 75, 63, - 795, 75, 716, 75, 799, 716, 11, 1455, 1214, 48, - 721, 75, 110, 37, 60, 726, 55, 111, 57, 58, - 81, 1042, 46, 1044, 110, 1046, 3, 4, 5, 869, - 55, 826, 71, 4, 5, 110, 65, 832, 63, 57, - 58, 836, 81, 110, 716, 55, 57, 58, 60, 61, - 75, 110, 91, 63, 61, 94, 95, 60, 61, 835, - 836, 111, 634, 81, 859, 75, 861, 841, 111, 864, - 81, 643, 113, 934, 935, 832, 110, 834, 835, 836, - 57, 58, 943, 113, 55, 75, 57, 58, 864, 4, - 5, 75, 664, 75, 113, 1301, 938, 113, 349, 807, - 71, 110, 859, 898, 110, 862, 863, 864, 110, 59, - 81, 1030, 1031, 25, 110, 27, 28, 912, 733, 734, - 735, 832, 898, 55, 919, 836, 834, 835, 4, 5, - 1151, 8, 1051, 1052, 1255, 113, 931, 94, 933, 48, - 55, 898, 57, 58, 939, 940, 65, 59, 859, 931, - 60, 63, 94, 864, 61, 111, 71, 55, 940, 65, - 65, 956, 931, 958, 933, 63, 81, 110, 61, 45, - 25, 940, 27, 28, 931, 63, 933, 75, 1317, 55, - 95, 57, 58, 940, 96, 110, 110, 898, 110, 110, - 1329, 7, 8, 9, 1034, 446, 65, 65, 14, 956, - 65, 958, 453, 454, 59, 113, 457, 65, 63, 94, - 461, 60, 3, 4, 5, 6, 32, 931, 110, 933, - 931, 37, 933, 110, 110, 939, 940, 1404, 1089, 940, - 46, 1404, 110, 76, 1095, 1096, 110, 1032, 1099, 1100, - 76, 96, 1103, 76, 1040, 956, 76, 958, 3, 4, - 5, 42, 63, 110, 1393, 1031, 1032, 1097, 1053, 931, - 110, 933, 63, 60, 110, 63, 57, 58, 940, 110, - 3, 4, 5, 1030, 1031, 1032, 1052, 1053, 1073, 113, - 852, 95, 111, 938, 939, 110, 110, 995, 48, 25, - 1085, 27, 28, 113, 1051, 1052, 1053, 1418, 89, 1438, - 55, 1440, 57, 58, 1510, 950, 951, 952, 89, 3, - 4, 5, 111, 1108, 110, 87, 1073, 89, 110, 91, - 92, 1032, 55, 59, 57, 58, 1108, 63, 1085, 113, - 113, 1470, 110, 3, 4, 5, 110, 110, 60, 1108, - 110, 1480, 1053, 1051, 1052, 3, 4, 5, 6, 111, - 65, 1108, 79, 80, 81, 82, 83, 84, 85, 65, - 96, 864, 1073, 57, 58, 59, 75, 63, 110, 141, - 110, 143, 1167, 94, 1085, 94, 3, 4, 5, 6, - 94, 94, 1177, 1097, 42, 1167, 1167, 57, 58, 640, - 110, 642, 8, 111, 1108, 898, 113, 1108, 1167, 57, - 58, 864, 110, 975, 4, 5, 110, 1202, 110, 392, - 1167, 1253, 110, 1255, 113, 42, 111, 1255, 110, 110, - 1202, 110, 49, 1284, 1285, 110, 677, 110, 110, 60, - 57, 58, 60, 1202, 110, 898, 1108, 1385, 110, 1418, - 63, 3, 4, 5, 113, 1202, 48, 698, 110, 110, - 701, 110, 435, 97, 1249, 55, 1167, 57, 58, 1254, - 34, 1256, 89, 110, 110, 110, 65, 1249, 1263, 1388, - 1389, 3, 4, 5, 1256, 1256, 110, 1049, 1339, 63, - 1249, 1263, 1263, 113, 1198, 110, 110, 1256, 1202, 110, - 110, 1202, 1249, 55, 1263, 57, 58, 59, 63, 1256, - 446, 3, 4, 5, 61, 61, 1263, 3, 4, 5, - 6, 457, 284, 16, 9, 61, 94, 1, 94, 3, - 4, 5, 6, 61, 8, 57, 58, 1030, 1031, 1032, - 1202, 61, 304, 81, 82, 83, 84, 85, 1249, 94, - 94, 1249, 3, 4, 5, 1256, 42, 17, 1051, 1052, - 1053, 61, 1263, 49, 99, 57, 58, 109, 42, 110, - 61, 57, 58, 110, 1340, 49, 110, 1030, 1031, 1032, - 110, 55, 11, 57, 58, 61, 61, 1419, 94, 60, - 1418, 1376, 1377, 110, 61, 1380, 65, 1448, 1051, 1052, - 1053, 110, 1164, 89, 1376, 1390, 57, 58, 1380, 1380, - 11, 584, 61, 61, 110, 89, 11, 1376, 591, 1404, - 61, 1380, 1407, 1389, 1390, 1410, 3, 4, 5, 1376, - 1377, 0, 0, 1380, 0, 2, 1421, 417, 1410, 1410, - 365, 1388, 1389, 859, 165, 1434, 165, 939, 933, 1421, - 1421, 1410, 1372, 1040, 31, 529, 1441, 1404, 1522, 1254, - 1407, 852, 1421, 1410, 847, 427, 428, 225, 1068, 1441, - 1441, 1108, 48, 435, 1421, 1376, 1377, 664, 55, 1380, - 57, 58, 1441, 1245, 1469, 924, 933, 1472, 939, 614, - 1388, 1389, 1200, 845, 1441, 566, 329, 187, 939, 123, - 1472, 1472, 1256, 1404, 945, 1168, 1407, 1480, 681, 1410, - 1424, 87, 88, 1472, 1494, 1455, 92, 93, 94, 95, - 1421, 1496, 1469, 907, -1, 1472, 1177, 7, 8, 9, - -1, -1, -1, -1, 14, -1, -1, 1522, 500, -1, - 1441, -1, -1, -1, -1, -1, 1308, -1, 721, -1, - 1522, 1522, 32, 726, -1, -1, -1, 37, -1, 3, - 4, 5, 6, 1522, -1, 701, 46, 529, 1469, -1, - 532, 1472, -1, 535, 536, 1522, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, -1, -1, -1, 42, -1, - 562, -1, 564, 565, -1, 49, -1, -1, -1, -1, - -1, -1, -1, 57, 58, 106, 107, -1, 3, 4, - 5, 1522, 7, -1, -1, -1, 3, 4, 5, 591, - 7, 8, 9, 428, -1, -1, 598, 1078, 1079, -1, - 435, 12, 180, 181, 182, 89, 31, 1340, -1, -1, - -1, -1, -1, 38, 616, 617, 27, 28, -1, 832, - 37, 32, -1, 836, -1, -1, 1107, -1, -1, -1, - 55, -1, 57, 58, -1, -1, -1, 48, 55, -1, - 57, 58, 59, -1, -1, -1, 859, 1340, -1, 60, - 61, 864, 63, 696, 65, 1388, 1389, 1390, -1, -1, - -1, -1, 664, -1, -1, 500, -1, -1, -1, -1, - -1, 3, 4, 5, 6, -1, -1, 720, -1, -1, - -1, -1, 725, 94, 95, 898, -1, 98, 105, 106, - 107, -1, -1, -1, -1, 1388, 1389, 1390, -1, 110, - 27, 28, -1, -1, -1, 32, -1, -1, -1, -1, - 42, -1, 1193, 1194, -1, 1196, 1197, -1, 1199, -1, - 722, 723, 724, 55, -1, 57, 58, 562, -1, 564, - 565, 63, -1, 60, 61, -1, -1, 739, 65, 71, - -1, -1, -1, 956, -1, 958, -1, -1, -1, 81, - 4, 5, -1, 7, 8, 9, 591, 89, 12, 761, - 14, -1, 94, 598, -1, -1, 3, 4, 5, 945, - 7, 8, 9, 1254, 1255, 29, -1, 31, 32, -1, - -1, -1, 313, 37, 827, -1, 829, -1, -1, -1, - -1, -1, 46, 1274, 1275, -1, 798, 799, -1, -1, - -1, 55, -1, 57, 58, -1, 4, -1, -1, -1, - 812, -1, 814, -1, 816, -1, 14, -1, -1, 1032, - 57, 58, -1, -1, -1, -1, -1, 25, 26, -1, - -1, -1, -1, 31, 32, -1, 34, -1, 36, -1, - 1053, -1, 844, 41, 98, -1, 4, 5, -1, -1, - -1, 9, 854, -1, -1, -1, 54, -1, 56, 437, - 1073, 439, -1, 441, 442, 443, 64, -1, -1, -1, - -1, 873, 1085, 71, 452, 1356, 1357, 1358, 880, -1, - 7, 8, 9, -1, 82, 83, -1, 14, -1, -1, - 48, -1, -1, -1, -1, 93, 898, 55, -1, 57, - 58, 432, 1078, 1079, 739, 32, -1, 105, -1, -1, - 37, -1, 955, 71, 957, 1396, 1397, -1, -1, 46, - -1, -1, -1, 81, -1, -1, -1, -1, 930, -1, - 128, 1107, -1, 91, 61, 133, 94, 95, -1, 137, - 138, -1, -1, -1, -1, 947, 144, -1, -1, 147, - 148, 106, 107, 151, 152, 153, -1, -1, -1, -1, - -1, -1, -1, -1, 799, -1, 1009, 165, -1, -1, - -1, 502, 974, 975, 505, -1, 978, 812, 509, 814, - -1, 816, 180, 181, 182, 7, 8, 9, -1, -1, - 1471, 522, 14, -1, -1, -1, 3, 4, 5, 6, - -1, -1, 533, -1, -1, -1, 537, -1, -1, -1, - 32, 209, -1, -1, -1, 37, -1, 1193, 1194, 854, - 1196, 1197, -1, 1199, 46, -1, 224, -1, -1, -1, - -1, -1, 563, -1, 232, 42, -1, -1, 569, 61, - 1042, -1, 1044, -1, 1046, 880, 244, 1049, 55, -1, - 57, 58, 3, 4, 5, 6, 1058, 1059, 9, -1, - -1, 1063, 1064, 898, 71, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 81, -1, -1, -1, -1, -1, - -1, -1, 89, -1, 282, 283, 1088, 94, -1, -1, - -1, 42, -1, -1, -1, -1, -1, 48, 1274, 1275, - 3, 4, 5, 1146, 55, -1, 57, 58, -1, -1, - 688, 689, -1, 691, 3, 4, 5, 6, -1, -1, - 71, -1, 1124, -1, 1126, -1, -1, 325, -1, -1, - 81, 329, -1, 331, 332, 333, 39, 40, 89, 42, - 91, -1, 1185, 94, 95, -1, 1189, -1, -1, 1151, - 348, -1, 55, 42, 57, 58, -1, -1, 313, -1, - 49, 1204, 1205, -1, -1, -1, -1, 365, 57, 58, - -1, -1, -1, -1, -1, -1, -1, 1220, -1, 1181, - 1356, 1357, 1358, -1, -1, -1, -1, -1, 386, 1191, - 1192, 1404, 81, -1, 392, -1, 3, 4, 5, 6, - 89, -1, 9, -1, -1, 403, -1, 1042, 406, 1044, - -1, 1046, 1214, 411, 81, -1, -1, 415, -1, -1, - 1396, 1397, 3, 4, 5, 6, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 42, -1, 392, 1240, 437, - -1, 439, -1, 441, 442, 443, -1, -1, 55, 447, - 57, 58, 1295, 1296, 452, -1, -1, 455, -1, -1, - -1, 42, -1, -1, 71, -1, -1, -1, 49, -1, - -1, -1, 803, -1, 81, -1, 57, 58, 1280, -1, - 435, -1, 89, -1, 862, 863, 864, 94, -1, -1, - -1, -1, 159, -1, -1, 1471, -1, -1, -1, 1301, - 81, -1, -1, -1, -1, 836, 1349, 1350, 89, -1, - -1, 178, 510, 511, 512, 513, 1151, -1, -1, -1, - 898, -1, -1, -1, 191, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 1340, -1, - 3, 4, 5, 6, -1, -1, 9, 502, -1, -1, - 505, -1, 1354, 1355, 509, 510, 511, 512, 513, -1, - 938, 1363, -1, -1, -1, -1, -1, 522, 566, -1, - 568, -1, -1, -1, -1, -1, 1378, -1, 533, 42, - -1, 579, -1, 581, 582, 48, 584, -1, 919, -1, - -1, -1, 55, 591, 57, 58, -1, 595, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, - 565, -1, -1, -1, -1, -1, -1, -1, 81, -1, - -1, -1, -1, -1, -1, -1, 89, -1, 91, 584, - -1, 94, 95, -1, -1, -1, 591, -1, -1, -1, - -1, 639, 640, 641, 642, 643, 644, -1, -1, -1, - 1028, 1029, 1030, 1031, 1032, -1, -1, -1, 1036, -1, - -1, -1, 3, 4, 5, 6, -1, -1, 9, -1, - -1, -1, -1, 1051, 1052, 1053, -1, -1, -1, 677, - -1, -1, -1, 681, -1, -1, -1, -1, -1, -1, - 688, 689, -1, 691, -1, -1, -1, -1, -1, -1, - -1, 42, -1, -1, -1, 1340, -1, 48, 1510, -1, - 3, 4, 5, 6, 55, -1, 57, 58, 716, -1, - -1, -1, 1053, 721, -1, -1, 681, -1, 726, -1, - 71, -1, -1, -1, -1, 733, 734, 735, -1, -1, - 81, -1, -1, -1, -1, -1, -1, 745, 89, 42, - 91, -1, -1, 94, 95, -1, 49, -1, -1, -1, - -1, -1, -1, -1, 57, 58, 721, -1, -1, -1, - -1, 726, -1, -1, -1, -1, 1154, 1155, 445, 1157, - -1, -1, -1, 450, -1, -1, -1, -1, 81, 1120, - 1121, 1122, 1123, -1, -1, -1, 89, 795, -1, -1, - 1131, -1, -1, -1, -1, 3, 4, 5, 6, 476, - -1, 9, -1, -1, 481, -1, -1, 1195, -1, 817, - -1, 819, -1, -1, -1, -1, 493, 494, 826, 496, - -1, -1, 830, -1, 832, -1, 834, 835, 836, -1, - 795, -1, -1, 841, 42, -1, -1, -1, -1, -1, - 48, -1, -1, -1, -1, -1, -1, 55, -1, 57, - 58, 859, -1, 861, 862, 863, 864, -1, -1, -1, - -1, 826, -1, 71, -1, -1, -1, 832, -1, -1, - 4, 836, -1, 81, -1, -1, -1, -1, -1, -1, - -1, 89, -1, 91, -1, -1, 94, 95, -1, -1, - 898, -1, 26, -1, 859, -1, 861, 31, 32, 864, - -1, -1, 36, 1244, 912, -1, -1, 41, -1, -1, - 587, 588, -1, -1, -1, 592, -1, -1, -1, 927, - -1, -1, 56, 931, -1, 933, -1, -1, -1, -1, - 938, 939, 940, 898, -1, -1, 4, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 14, 912, 956, -1, - 958, 79, 1340, -1, 919, -1, 24, 25, 26, 93, - -1, -1, -1, 31, 32, -1, 34, -1, 36, -1, - -1, -1, -1, 41, -1, 103, -1, -1, -1, -1, - -1, 989, 990, -1, 992, 1326, 54, -1, 56, -1, - -1, 956, -1, 958, -1, -1, 64, -1, -1, -1, - 1388, 1389, 1390, 71, 132, -1, -1, -1, -1, -1, - 144, -1, -1, -1, 148, 83, -1, -1, 146, -1, - 1028, 1029, 1030, 1031, 1032, 93, -1, -1, 1036, -1, - -1, 165, -1, -1, -1, 1376, 1377, -1, -1, -1, - -1, -1, -1, 1051, 1052, 1053, 180, 181, -1, 1390, - 727, -1, 729, -1, -1, -1, -1, -1, -1, -1, - 128, -1, 190, -1, -1, 1073, 1407, 1032, -1, 137, - 138, -1, -1, -1, -1, -1, 144, 1085, -1, -1, - 148, -1, -1, 151, 152, 153, -1, -1, 1053, -1, - 1098, -1, -1, -1, -1, 223, -1, 165, -1, -1, - 1108, -1, -1, -1, -1, -1, -1, -1, 1073, -1, - 244, -1, 180, 181, 182, -1, -1, -1, -1, 247, - 1085, -1, -1, -1, 801, 802, 1467, 804, 1469, -1, - 4, 5, -1, 7, 8, 9, -1, -1, 12, -1, - 14, 209, -1, -1, -1, -1, 1154, 1155, -1, 1157, - -1, -1, 1493, -1, 831, 29, -1, 31, 32, -1, - -1, -1, -1, 37, -1, -1, -1, 1508, -1, 1177, - -1, -1, 46, -1, 48, -1, 244, -1, -1, -1, - -1, 55, -1, 57, 58, -1, -1, 1195, -1, 866, - -1, -1, 1200, -1, 1202, -1, -1, 71, 3, 4, - 5, 6, -1, -1, -1, -1, -1, 81, -1, 337, - -1, -1, 1177, -1, 282, 283, -1, 91, -1, -1, - 94, 95, -1, -1, 98, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 42, -1, 3, - 4, 5, 6, 48, -1, 1253, 1254, 1255, -1, -1, - 55, -1, 57, 58, -1, -1, -1, 325, -1, -1, - -1, 329, -1, 331, 332, 333, 71, -1, -1, 403, - 338, 399, 406, -1, -1, -1, 81, 411, 42, -1, - 348, 415, -1, -1, 89, -1, 91, -1, -1, 94, - 95, 55, -1, 57, 58, -1, -1, 365, -1, 63, - -1, 4, 5, 437, -1, 439, 9, 71, -1, 4, - 5, -1, -1, 8, 9, -1, -1, 81, 452, 14, - -1, -1, -1, -1, 392, 89, -1, 1004, -1, -1, - 94, -1, 1340, -1, 29, 403, 31, -1, 406, -1, - 468, -1, 37, 411, -1, 48, -1, 415, -1, -1, - -1, 46, 55, -1, 57, 58, -1, -1, 1035, -1, - 55, -1, 57, 58, 59, -1, -1, 495, 71, 437, - -1, 439, -1, 441, 442, 443, -1, -1, 81, 447, - 1388, 1389, 1390, -1, 452, -1, -1, 455, 91, -1, - -1, 94, 95, -1, -1, 1072, 1404, -1, -1, 94, - -1, -1, 470, -1, -1, -1, -1, 1084, -1, -1, - -1, 1419, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1, 1390, 3, 4, 5, 6, - 7, 8, 9, -1, 1111, -1, -1, 14, 1115, 1404, - -1, -1, 510, 511, 512, 513, -1, -1, -1, -1, - 578, -1, 29, -1, 31, 32, 33, -1, -1, -1, - 37, 38, -1, -1, -1, 42, 594, -1, -1, 46, - 47, 1148, 49, -1, -1, -1, -1, -1, 55, -1, - 57, 58, -1, -1, 61, -1, 63, -1, -1, -1, - -1, -1, -1, -1, 71, -1, -1, -1, 566, -1, - 568, -1, -1, -1, 81, -1, 640, -1, -1, -1, - -1, -1, 89, 581, 582, -1, 584, 94, -1, -1, - -1, -1, -1, 591, -1, -1, -1, -1, -1, 1206, - 1207, -1, -1, -1, 111, 603, -1, -1, -1, 3, - 4, 5, 6, -1, -1, -1, -1, 681, -1, -1, - -1, -1, -1, -1, 688, 689, -1, 691, -1, -1, - -1, -1, -1, -1, -1, -1, 634, -1, -1, -1, - -1, 639, 640, 641, 642, 643, 644, -1, 42, -1, - -1, -1, 716, -1, -1, -1, -1, -1, -1, 657, - -1, 55, 1269, 57, 58, -1, 1273, 61, 1, -1, - 3, 4, 5, 6, 7, 8, 9, 71, -1, 677, - -1, 14, -1, 681, -1, -1, -1, 81, -1, -1, - 688, 689, -1, 691, -1, 89, 29, -1, 31, 32, - 94, -1, -1, -1, 37, -1, -1, -1, -1, 42, - -1, -1, -1, 46, 47, -1, 49, -1, 716, -1, - -1, -1, 55, 721, 57, 58, -1, -1, 726, -1, - 63, 3, 4, 5, 6, 733, 734, 735, 71, 4, - 5, -1, -1, 8, 9, -1, -1, 745, 81, 14, - -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, - -1, 94, -1, -1, 29, -1, 31, -1, -1, -1, - 42, -1, 37, 4, -1, -1, -1, 49, -1, -1, - -1, 46, 840, 48, 842, 57, 58, -1, -1, -1, - 55, -1, 57, 58, -1, 26, -1, 795, 862, 863, - 31, 32, -1, 34, -1, 36, 71, -1, -1, 81, - 41, 869, -1, -1, -1, -1, 81, 89, -1, 817, - -1, 819, -1, 54, -1, 56, 91, -1, 826, 94, - 95, -1, 830, -1, 832, -1, 834, 835, 836, -1, - -1, -1, -1, 841, -1, -1, -1, -1, 79, -1, + 151, 152, 4, 332, 54, 161, 391, 24, 657, 655, + 469, 4, 196, 236, 79, 391, 83, 75, 125, 289, + 290, 26, 448, 89, 338, 91, 14, 391, 796, 226, + 61, 36, 362, 26, 36, 4, 41, 4, 582, 41, + 889, 132, 133, 36, 426, 589, 14, 231, 41, 128, + 320, 56, 932, 196, 133, 23, 1258, 132, 58, 26, + 1251, 941, 205, 1265, 31, 32, 71, 36, 1228, 36, + 11, 1378, 41, 4, 41, 141, 4, 143, 83, 11, + 1414, 146, 87, 48, 89, 48, 91, 137, 93, 53, + 11, 38, 1409, 12, 82, 26, 64, 281, 26, 1412, + 93, 106, 107, 204, 205, 36, 9, 55, 36, 1395, + 41, 34, 1, 41, 0, 338, 83, 105, 75, 1, + 63, 4, 63, 63, 39, 190, 93, 75, 56, 94, + 1443, 94, 1, 138, 79, 75, 141, 25, 143, 139, + 55, 60, 200, 26, 63, 720, 59, 110, 332, 0, + 725, 1485, 65, 36, 1471, 123, 1442, 583, 41, 62, + 165, 421, 93, 75, 111, 93, 61, 110, 199, 110, + 59, 59, 165, 502, 63, 63, 207, 59, 110, 98, + 1382, 12, 150, 63, 151, 152, 1472, 1378, 111, 110, + 59, 110, 156, 60, 63, 34, 196, 656, 165, 60, + 83, 1189, 1190, 1510, 204, 205, 48, 96, 96, 61, + 93, 1524, 60, 180, 181, 1203, 111, 985, 291, 292, + 48, 1423, 94, 187, 48, 60, 60, 96, 55, 60, + 110, 231, 63, 306, 165, 60, 309, 165, 329, 312, + 8, 9, 315, 110, 232, 318, 14, 49, 75, 61, + 111, 76, 94, 326, 329, 223, 224, 832, 325, 111, + 75, 61, 110, 56, 524, 58, 94, 98, 236, 37, + 94, 95, 1474, 94, 12, 110, 110, 282, 46, 345, + 48, 281, 165, 94, 48, 364, 110, 601, 91, 440, + 441, 1279, 836, 1453, 385, 680, 94, 347, 628, 111, + 1288, 1289, 247, 1291, 680, 1255, 385, 1257, 313, 61, + 453, 111, 151, 152, 153, 48, 472, 4, 48, 48, + 325, 865, 60, 1444, 1204, 63, 94, 65, 333, 48, + 94, 34, 332, 60, 61, 1456, 65, 305, 141, 48, + 345, 4, 5, 182, 1465, 138, 139, 676, 348, 36, + 338, 452, 453, 48, 41, 899, 65, 25, 325, 460, + 98, 94, 95, 1484, 94, 94, 95, 1135, 109, 9, + 471, 7, 12, 4, 5, 94, 95, 79, 3, 4, + 5, 6, 957, 1504, 959, 94, 391, 61, 48, 55, + 491, 110, 1241, 361, 57, 58, 55, 63, 658, 94, + 95, 103, 38, 196, 462, 48, 1527, 833, 48, 414, + 48, 204, 205, 1401, 1402, 110, 798, 42, 81, 48, + 60, 414, 62, 63, 391, 65, 57, 58, 459, 434, + 132, 497, 57, 58, 94, 95, 76, 32, 78, 48, + 59, 234, 325, 474, 146, 518, 519, 414, 151, 152, + 153, 94, 452, 453, 94, 95, 94, 95, 98, 1308, + 460, 732, 733, 734, 89, 94, 925, 434, 1317, 1318, + 110, 471, 63, 440, 441, 860, 4, 5, 48, 182, + 3, 4, 5, 414, 860, 94, 414, 48, 190, 63, + 1034, 491, 497, 4, 5, 500, 860, 564, 503, 467, + 1075, 75, 507, 508, 509, 510, 511, 704, 391, 706, + 48, 1055, 1087, 316, 711, 520, 25, 55, 27, 28, + 75, 223, 527, 59, 94, 48, 531, 841, 55, 57, + 58, 414, 55, 94, 57, 58, 48, 75, 55, 342, + 48, 344, 345, 55, 55, 247, 57, 58, 75, 111, + 59, 434, 59, 81, 63, 348, 94, 65, 563, 564, + 71, 745, 530, 75, 100, 94, 948, 55, 838, 995, + 81, 94, 25, 48, 27, 28, 55, 582, 3, 4, + 5, 6, 94, 1042, 589, 48, 94, 96, 638, 55, + 640, 641, 395, 396, 976, 977, 697, 564, 1447, 48, + 55, 440, 441, 442, 48, 593, 59, 714, 55, 75, + 63, 1070, 579, 580, 76, 582, 633, 42, 841, 94, + 27, 28, 589, 60, 61, 32, 676, 887, 75, 446, + 55, 94, 57, 58, 639, 337, 48, 454, 643, 656, + 4, 641, 55, 96, 1, 94, 3, 4, 5, 6, + 94, 8, 445, 110, 61, 721, 722, 723, 65, 452, + 453, 990, 75, 456, 89, 633, 48, 460, 63, 1051, + 4, 5, 36, 55, 642, 680, 676, 41, 1060, 1061, + 75, 564, 94, 1065, 1066, 42, 3, 4, 5, 4, + 5, 60, 49, 75, 497, 663, 398, 697, 55, 582, + 57, 58, 4, 5, 111, 110, 589, 76, 95, 78, + 715, 110, 94, 680, 36, 720, 721, 722, 723, 41, + 725, 63, 715, 57, 58, 922, 923, 924, 3, 4, + 5, 6, 89, 75, 807, 4, 5, 440, 441, 442, + 57, 58, 57, 58, 1126, 745, 715, 81, 715, 55, + 110, 55, 55, 720, 11, 57, 58, 63, 725, 63, + 63, 834, 835, 111, 81, 467, 81, 42, 61, 75, + 715, 75, 75, 48, 7, 8, 9, 60, 61, 81, + 55, 14, 57, 58, 715, 4, 5, 55, 57, 58, + 795, 1437, 494, 3, 799, 63, 71, 680, 94, 32, + 113, 1183, 63, 606, 37, 870, 81, 75, 1457, 3, + 4, 5, 81, 46, 89, 55, 91, 4, 5, 94, + 95, 826, 445, 63, 95, 60, 113, 832, 61, 48, + 65, 836, 715, 456, 1216, 75, 55, 720, 57, 58, + 95, 76, 725, 94, 991, 992, 639, 994, 641, 94, + 8, 9, 71, 841, 75, 860, 14, 862, 4, 5, + 865, 55, 81, 57, 58, 832, 75, 834, 835, 836, + 57, 58, 91, 75, 576, 94, 95, 935, 936, 37, + 75, 1032, 1033, 676, 111, 853, 944, 11, 46, 939, + 592, 4, 5, 860, 899, 110, 863, 864, 865, 45, + 27, 28, 1053, 1054, 697, 84, 85, 700, 913, 55, + 55, 57, 58, 60, 61, 920, 60, 61, 63, 60, + 61, 1303, 60, 25, 997, 27, 28, 932, 1257, 934, + 75, 61, 899, 736, 110, 940, 941, 60, 61, 932, + 110, 934, 55, 110, 57, 58, 4, 5, 941, 832, + 110, 9, 957, 836, 959, 111, 111, 59, 110, 113, + 113, 63, 34, 932, 65, 932, 75, 934, 75, 75, + 113, 1036, 941, 113, 941, 110, 110, 860, 110, 59, + 1053, 1054, 865, 8, 110, 55, 94, 932, 113, 934, + 957, 48, 959, 111, 96, 940, 941, 55, 65, 57, + 58, 932, 94, 934, 25, 60, 27, 28, 61, 977, + 941, 939, 940, 71, 65, 65, 899, 110, 3, 4, + 5, 1406, 61, 81, 110, 1042, 865, 63, 110, 1034, + 1406, 110, 110, 1091, 1099, 65, 65, 95, 59, 1097, + 1098, 65, 63, 1101, 1102, 4, 5, 1105, 113, 932, + 1055, 934, 3, 4, 5, 65, 94, 60, 941, 1319, + 899, 3, 4, 5, 6, 1032, 1033, 1034, 110, 110, + 1075, 1331, 57, 58, 957, 96, 959, 700, 110, 48, + 152, 153, 1087, 1051, 110, 76, 1053, 1054, 1055, 76, + 110, 1420, 76, 76, 110, 110, 55, 63, 57, 58, + 42, 3, 4, 5, 55, 1110, 57, 58, 1075, 63, + 182, 60, 71, 110, 110, 57, 58, 1110, 87, 88, + 1087, 113, 81, 92, 93, 94, 95, 63, 95, 111, + 1512, 3, 4, 5, 6, 1395, 95, 110, 840, 110, + 842, 1110, 89, 1110, 48, 113, 110, 940, 951, 952, + 953, 1034, 110, 946, 1099, 57, 58, 59, 113, 111, + 113, 111, 865, 60, 1169, 1110, 110, 1169, 870, 87, + 42, 89, 1055, 91, 1179, 110, 1169, 49, 1251, 1110, + 1440, 110, 1442, 110, 65, 57, 58, 65, 3, 4, + 5, 75, 1075, 1032, 1033, 1034, 899, 63, 1166, 1204, + 1169, 110, 1169, 110, 1087, 1255, 94, 1257, 94, 81, + 111, 1204, 1472, 113, 1053, 1054, 1055, 89, 94, 94, + 8, 110, 1482, 141, 60, 143, 113, 1110, 1286, 1287, + 110, 1387, 111, 27, 28, 1204, 1420, 1204, 32, 1390, + 1391, 313, 57, 58, 60, 110, 1251, 110, 110, 110, + 110, 1256, 110, 1258, 110, 1200, 1258, 1257, 1251, 1204, + 1265, 12, 110, 1265, 110, 1258, 60, 61, 110, 110, + 63, 65, 1265, 1204, 113, 48, 27, 28, 110, 1247, + 110, 32, 1251, 1341, 1251, 110, 1169, 1080, 1081, 1258, + 97, 1258, 34, 110, 65, 113, 1265, 48, 1265, 3, + 4, 5, 3, 4, 5, 6, 3, 4, 5, 60, + 61, 110, 63, 110, 65, 1017, 1109, 1390, 1391, 110, + 110, 1204, 63, 946, 3, 4, 5, 110, 110, 1032, + 1033, 1034, 110, 63, 1036, 61, 3, 4, 5, 61, + 9, 42, 1310, 94, 95, 61, 16, 98, 49, 94, + 1053, 1054, 1055, 57, 58, 94, 57, 58, 55, 110, + 57, 58, 59, 81, 82, 83, 84, 85, 1251, 441, + 442, 1421, 61, 1378, 1379, 1258, 61, 1382, 57, 58, + 1382, 94, 1265, 106, 107, 1378, 304, 1392, 89, 1382, + 57, 58, 1450, 17, 94, 61, 99, 1099, 109, 61, + 110, 1406, 1195, 1196, 1409, 1198, 1199, 1412, 1201, 1378, + 1412, 1378, 1379, 1382, 110, 1382, 110, 110, 1423, 1412, + 1420, 1423, 11, 1390, 1391, 61, 61, 345, 500, 94, + 1423, 503, 60, 110, 3, 4, 5, 6, 1443, 1406, + 61, 1443, 1409, 1412, 61, 1412, 65, 519, 520, 110, + 1443, 11, 61, 110, 1423, 11, 1423, 1080, 1081, 531, + 61, 0, 0, 1256, 1257, 0, 1471, 860, 416, 1474, + 2, 364, 1474, 42, 1443, 165, 1443, 1436, 165, 940, + 49, 1474, 934, 1276, 1277, 1042, 1109, 527, 57, 58, + 1374, 3, 4, 5, 6, 1378, 1379, 9, 1200, 1382, + 1524, 1256, 853, 1342, 1471, 1474, 663, 1474, 426, 427, + 284, 848, 81, 225, 1070, 925, 434, 589, 1110, 1524, + 89, 940, 1524, 1406, 1202, 934, 1409, 846, 613, 1412, + 42, 1524, 187, 4, 5, 123, 564, 427, 9, 1457, + 1423, 1258, 329, 55, 434, 57, 58, 1482, 1170, 1426, + 1496, 1390, 1391, 1392, 1498, 1524, 908, 1524, 1179, 71, + 1443, -1, -1, -1, -1, 1358, 1359, 1360, -1, 81, + -1, -1, 1195, 1196, -1, 1198, 1199, 89, 1201, 497, + 498, -1, 94, -1, 55, -1, 57, 58, 1471, -1, + 313, 1474, 79, 80, 81, 82, 83, 84, 85, -1, + 71, -1, -1, -1, -1, 1398, 1399, -1, 498, 527, + 81, -1, 530, -1, -1, 533, 534, -1, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, -1, -1, 1342, + -1, 1524, 560, -1, 562, 563, 3, 4, 5, 6, + -1, 4, 5, 1276, 1277, -1, 9, 3, 4, 5, + -1, 7, 8, 9, -1, -1, -1, 739, -1, -1, + 560, 589, 562, 563, -1, 3, 4, 5, 596, 7, + 1473, -1, -1, -1, -1, 42, -1, 1390, 1391, 1392, + -1, 37, 49, -1, -1, 48, -1, 615, 616, 589, + 57, 58, 55, 31, 57, 58, 596, -1, 431, 55, + 38, 57, 58, 59, -1, 3, 4, 5, 71, 391, + -1, -1, -1, -1, 81, -1, -1, 55, 81, 57, + 58, -1, 89, -1, -1, 1358, 1359, 1360, 91, -1, + -1, 94, 95, 31, -1, 663, -1, -1, -1, -1, + -1, 427, -1, -1, -1, -1, -1, -1, 434, 105, + 106, 107, 434, 835, 836, -1, -1, 55, -1, 57, + 58, -1, -1, -1, -1, 1398, 1399, 500, -1, -1, + 503, -1, 4, 5, 507, 7, 8, 9, -1, -1, + 12, -1, 14, 865, -1, -1, -1, 520, -1, -1, + -1, -1, -1, 721, 722, 723, -1, 29, 531, 31, + 32, -1, 535, -1, -1, 37, -1, 3, 4, 5, + 6, 739, 498, -1, 46, -1, -1, 899, 3, 4, + 5, 6, -1, 55, -1, 57, 58, -1, 561, -1, + 7, 8, 9, 761, 567, -1, -1, 14, -1, 739, + 1473, -1, -1, -1, -1, -1, 42, -1, -1, -1, + -1, 3, 4, 5, 6, 32, -1, 42, -1, 55, + 37, 57, 58, -1, 49, 61, 98, -1, -1, 46, + 798, 799, 57, 58, 560, 71, 562, 563, -1, -1, + -1, 4, -1, -1, 812, 81, 814, -1, 816, -1, + 42, 14, -1, 89, -1, -1, 81, 49, 94, 799, + 582, -1, 25, 26, 89, 57, 58, 589, 31, 32, + 596, 34, 812, 36, 814, -1, 816, 845, 41, -1, + -1, -1, -1, 3, 4, 5, 6, 855, -1, 81, + 81, 54, -1, 56, 3, 4, 5, 89, 7, 8, + 9, 64, -1, -1, -1, -1, 874, -1, 71, -1, + -1, 1033, 1034, 881, -1, 855, -1, -1, -1, 82, + 83, -1, 42, -1, -1, -1, -1, -1, 695, 49, + 93, 899, 1054, 1055, -1, -1, -1, 57, 58, -1, + -1, 881, 105, -1, -1, -1, -1, -1, 57, 58, + -1, -1, 719, 7, 8, 9, -1, 724, 680, 899, + 14, -1, -1, 931, -1, 128, -1, -1, 159, 89, + 133, -1, -1, -1, 137, 138, -1, -1, 32, -1, + 948, 144, -1, 37, 147, 148, -1, 178, 151, 152, + 153, -1, 46, -1, -1, -1, -1, -1, 720, -1, + 191, -1, 165, 725, 7, 8, 9, 61, 976, 977, + -1, 14, 980, 3, 4, 5, 6, 180, 181, 182, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 32, + 803, -1, -1, -1, 37, -1, -1, -1, -1, -1, + -1, -1, -1, 46, -1, -1, 209, -1, 3, 4, + 5, 6, 42, -1, 9, -1, -1, -1, -1, 49, + 827, 224, 829, 836, -1, -1, -1, 57, 58, 232, + -1, -1, -1, 799, 4, 5, 1044, -1, 1046, 9, + 1048, 244, -1, 1051, -1, -1, 812, 42, 814, -1, + 816, -1, 1060, 1061, 3, 4, 5, 1065, 1066, 89, + 55, -1, 57, 58, 1044, -1, 1046, -1, 1048, -1, + 832, -1, -1, -1, 836, -1, 71, -1, 48, 282, + 283, -1, 1090, -1, -1, 55, 81, 57, 58, 855, + 39, 40, -1, 42, 89, -1, -1, -1, 860, 94, + -1, 71, -1, 865, -1, -1, 55, 920, 57, 58, + -1, 81, -1, -1, -1, 881, -1, -1, 1126, -1, + 1128, 91, 325, -1, 94, 95, 329, -1, 331, 332, + 333, -1, -1, -1, -1, -1, -1, 899, -1, -1, + -1, -1, -1, -1, 347, 1153, -1, -1, -1, 956, + -1, 958, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 364, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1153, -1, 1183, -1, -1, -1, -1, + 1342, -1, 385, -1, -1, 1193, 1194, -1, 391, -1, + -1, -1, -1, -1, -1, 957, -1, 959, -1, 402, + -1, -1, 405, -1, 1011, -1, -1, 410, 1216, -1, + -1, 414, -1, 444, -1, -1, -1, -1, 449, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1391, + 1392, -1, -1, 436, 1242, 438, -1, 440, 441, 442, + -1, -1, 1055, 446, 475, -1, -1, -1, 451, 480, + -1, 454, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 492, 493, -1, 495, -1, -1, -1, -1, -1, + -1, -1, 1034, -1, 1282, -1, -1, -1, 1044, -1, + 1046, -1, 1048, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1055, -1, 1303, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 508, 509, 510, 511, 1122, + 1123, 1124, 1125, 1075, 4, 5, -1, -1, 8, 9, + 1133, -1, -1, -1, 14, 1087, -1, -1, -1, -1, + -1, -1, -1, -1, 1342, -1, -1, -1, -1, -1, + -1, 1148, -1, -1, -1, -1, -1, 37, 1356, 1357, + -1, -1, -1, -1, 585, 586, 46, 1365, 48, 590, + -1, 564, 1342, 566, -1, 55, -1, 57, 58, -1, + -1, -1, 1380, -1, 577, -1, 579, 580, -1, 582, + 1187, 71, -1, -1, 1191, -1, 589, 1153, -1, -1, + 593, 81, -1, -1, -1, -1, -1, -1, -1, 1206, + 1207, 91, -1, -1, 94, 95, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1222, -1, -1, 1, -1, + 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, + -1, 14, -1, 1246, -1, 638, 639, 640, 641, 642, + 643, -1, -1, -1, -1, -1, 29, -1, 31, 32, + 33, -1, -1, -1, 37, 38, -1, -1, -1, 42, + -1, -1, -1, 46, 47, -1, 49, -1, -1, -1, + -1, -1, 55, 676, 57, 58, -1, 680, 61, -1, + 63, -1, -1, -1, 687, 688, -1, 690, 71, -1, + 1297, 1298, -1, -1, -1, 726, -1, 728, 81, -1, + -1, -1, -1, -1, 1512, -1, 89, -1, -1, -1, + -1, 94, 715, -1, -1, 1328, -1, 720, -1, -1, + -1, -1, 725, -1, -1, -1, -1, -1, 111, 732, + 733, 734, -1, 1, -1, 3, 4, 5, 6, 7, + 8, 9, 745, -1, 1351, 1352, 14, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, + -1, 29, 9, 31, 32, 1378, 1379, -1, -1, 37, + 801, 802, -1, 804, 42, -1, -1, -1, 46, 1392, + -1, 49, -1, -1, -1, -1, -1, 55, -1, 57, + 58, -1, 795, 61, -1, 42, 1409, -1, -1, -1, + 831, -1, -1, 71, -1, -1, -1, -1, 55, -1, + 57, 58, -1, 81, 817, -1, 819, -1, 331, 332, + 333, 89, -1, 826, 71, -1, 94, 830, -1, 832, + -1, 834, 835, 836, 81, -1, 867, -1, 841, -1, + -1, -1, 89, -1, 1406, -1, -1, 94, -1, 3, + 4, 5, 6, -1, -1, 9, 1469, 860, 1471, 862, + 863, 864, 865, 4, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, + -1, -1, 1495, 24, 25, 26, -1, -1, 42, -1, + 31, 32, -1, 34, -1, 36, 899, 1510, -1, -1, + 41, 55, -1, 57, 58, -1, -1, -1, -1, -1, + 913, -1, -1, 54, -1, 56, -1, 71, -1, -1, + -1, -1, -1, 64, -1, 928, -1, 81, -1, 932, + 71, 934, -1, -1, -1, 89, 939, 940, 941, -1, + 94, -1, 83, -1, -1, -1, -1, 3, 4, 5, + 6, -1, 93, 9, 957, -1, 959, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4, 5, -1, + -1, 8, 9, -1, -1, 1006, -1, 14, -1, -1, + 331, 332, 333, -1, -1, -1, 42, 128, 991, 992, + -1, 994, 29, -1, 31, -1, 137, 138, -1, 55, + 37, 57, 58, 144, -1, -1, 1037, 148, -1, 46, + 151, 152, 153, -1, -1, 71, -1, -1, 55, -1, + 57, 58, 59, -1, 165, 81, -1, 1030, 1031, 1032, + 1033, 1034, -1, 89, -1, 1038, -1, -1, 94, 180, + 181, 182, -1, 1074, -1, -1, 3, 4, 5, 6, + 1053, 1054, 1055, -1, -1, 1086, -1, 94, -1, -1, + -1, -1, -1, -1, -1, -1, 579, 580, 209, 582, + -1, -1, 1075, -1, -1, -1, 589, -1, -1, -1, + -1, -1, 1113, -1, 1087, 42, 1117, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1100, 55, -1, + 57, 58, -1, 244, -1, -1, 63, 1110, -1, -1, + -1, -1, -1, -1, 71, -1, -1, -1, -1, 1150, + -1, -1, -1, -1, 81, 638, -1, 640, 641, -1, + 643, -1, 89, -1, -1, -1, -1, 94, -1, -1, + -1, 282, 283, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1156, 1157, -1, 1159, 3, 4, 5, + 6, -1, -1, 676, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 1179, 1208, 1209, 3, + 4, 5, 6, -1, 325, 9, -1, -1, 329, -1, + 331, 332, 333, -1, 1197, -1, 42, 338, -1, 1202, + -1, 1204, -1, -1, -1, -1, 347, -1, -1, 55, + -1, 57, 58, -1, -1, -1, -1, 63, 42, -1, + -1, -1, -1, 364, 48, 71, -1, -1, 579, 580, + -1, 55, 745, 57, 58, 81, -1, -1, -1, -1, + 1271, -1, -1, 89, 1275, -1, -1, 71, 94, -1, + 391, -1, 1255, 1256, 1257, -1, -1, 81, -1, -1, + -1, 402, -1, -1, 405, 89, -1, 91, -1, 410, + 94, 95, -1, 414, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 638, -1, 640, + 641, -1, 643, -1, -1, 436, -1, 438, -1, 440, + 441, 442, -1, -1, 817, 446, 819, -1, -1, -1, + 451, -1, -1, 454, -1, -1, -1, 830, -1, -1, + -1, 834, 835, 836, -1, 676, -1, -1, 469, -1, + 4, 5, -1, 7, 8, 9, -1, -1, 12, 1342, + 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 863, 864, 865, -1, -1, 29, -1, 31, 32, 3, + 4, 5, 6, 37, -1, 9, -1, 508, 509, 510, + 511, -1, 46, -1, 48, -1, 3, 4, 5, 6, + -1, 55, 9, 57, 58, -1, 899, 1390, 1391, 1392, + -1, -1, -1, -1, 745, -1, -1, 71, 42, -1, + -1, -1, -1, 1406, 48, -1, -1, 81, -1, -1, + -1, 55, -1, 57, 58, 42, -1, 91, 1421, -1, + 94, 95, -1, 564, 98, 566, -1, 71, 55, -1, + 57, 58, -1, -1, -1, -1, -1, 81, 579, 580, + -1, 582, -1, -1, 71, 89, -1, 91, 589, -1, + 94, 95, -1, -1, 81, -1, -1, -1, -1, -1, + 601, -1, 89, -1, -1, -1, 817, 94, 819, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 830, + -1, -1, -1, 834, 835, -1, -1, -1, -1, -1, + -1, -1, 633, -1, -1, -1, -1, 638, 639, 640, + 641, 642, 643, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 863, 864, -1, 656, -1, 1030, 1031, 1032, + 1033, 1034, -1, -1, -1, 1038, -1, -1, 3, 4, + 5, 6, -1, -1, 9, 676, -1, -1, -1, 680, + 1053, 1054, 1055, -1, -1, -1, 687, 688, -1, 690, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 42, -1, -1, + -1, -1, -1, 48, 715, -1, -1, -1, -1, 720, + 55, -1, 57, 58, 725, 4, -1, -1, -1, -1, + -1, 732, 733, 734, -1, -1, 71, 3, 4, 5, + 6, 7, 8, 9, 745, -1, 81, 26, 14, -1, + -1, -1, 31, 32, 89, 34, 91, 36, -1, 94, + 95, -1, 41, 29, -1, 31, 32, -1, -1, -1, + -1, 37, -1, -1, -1, 54, 42, 56, -1, -1, + 46, -1, -1, 1156, 1157, -1, 1159, -1, -1, 55, + -1, 57, 58, -1, 795, -1, -1, -1, -1, -1, + 79, -1, -1, -1, -1, 71, -1, -1, -1, 75, + -1, -1, -1, -1, 93, 81, 817, -1, 819, 1030, + 1031, 1032, 1033, 89, -1, 826, -1, 1038, 94, 830, + -1, 832, -1, 834, 835, 836, -1, -1, -1, -1, + 841, -1, 1053, 1054, -1, -1, -1, -1, -1, 128, + -1, -1, -1, 132, 133, -1, -1, -1, 137, 860, + -1, 862, 863, 864, 865, 144, -1, 146, -1, 148, + -1, -1, 151, 152, 153, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 165, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 34, -1, 899, -1, + 14, 180, 181, 182, -1, -1, -1, -1, -1, -1, + -1, 190, 913, -1, -1, 29, 54, 31, 32, -1, + 4, 5, -1, 37, 925, 9, -1, 928, 42, -1, + 209, 932, 46, 934, 48, -1, -1, -1, 939, 940, + 941, 55, -1, 57, 58, 1156, 1157, -1, 1159, 3, + 4, 5, 6, 7, 8, 9, 957, 71, 959, -1, + 14, -1, -1, -1, 48, 244, -1, 81, -1, -1, + -1, 55, -1, 57, 58, 89, -1, 91, 32, -1, + 94, 95, -1, 37, -1, -1, -1, 71, 42, -1, + 991, 992, 46, 994, 48, -1, -1, 81, -1, 137, + -1, 55, -1, 57, 58, -1, -1, 91, -1, -1, + 94, 95, -1, 151, 152, 153, -1, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 81, -1, 1030, + 1031, 1032, 1033, 1034, 313, 89, -1, 1038, -1, -1, + 94, 1042, 180, 181, 182, -1, -1, -1, -1, -1, + 329, -1, 1053, 1054, 1055, -1, -1, -1, 337, 1, + -1, 3, 4, 5, 6, 7, 8, 9, 347, 1070, + -1, 209, 14, -1, 1075, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 364, 1087, 29, -1, 31, + 32, 33, -1, -1, -1, 37, 38, -1, -1, -1, + 42, -1, -1, -1, 46, 47, 385, 49, -1, 1110, + -1, -1, -1, 55, -1, 57, 58, -1, -1, 61, + -1, 63, -1, 402, -1, -1, 405, -1, -1, 71, + -1, 410, -1, -1, -1, 414, -1, -1, -1, 81, + -1, -1, -1, -1, -1, 283, -1, 89, -1, -1, + -1, -1, 94, -1, -1, 1156, 1157, 436, 1159, 438, + -1, 440, 441, 442, -1, -1, -1, 446, -1, 111, + -1, -1, 451, -1, -1, 454, -1, -1, 1179, -1, + -1, 3, 4, 5, 6, -1, -1, 9, -1, -1, + -1, -1, -1, 331, 332, 333, 1197, -1, -1, -1, + -1, 1202, -1, 1204, -1, -1, -1, -1, -1, 347, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 859, 93, 861, 862, 863, 864, 931, -1, 933, - -1, -1, -1, -1, 938, 939, 940, 3, 4, 5, - 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4, 5, -1, 128, 8, 9, - 898, 132, 133, -1, 14, -1, 137, -1, -1, -1, - -1, -1, -1, 144, 912, 146, 42, 148, -1, -1, - 151, 152, 153, 49, -1, -1, 924, 37, -1, 927, - -1, 57, 58, 931, 165, 933, 46, -1, 48, -1, - 938, 939, 940, -1, -1, 55, -1, 57, 58, 180, - 181, 182, -1, -1, -1, 81, -1, 1015, 956, 190, - 958, 71, -1, 89, 1028, 1029, -1, -1, -1, -1, - -1, 81, 1036, -1, -1, -1, 1034, -1, 209, -1, - -1, 91, -1, -1, 94, 95, -1, -1, -1, -1, - -1, 989, 990, -1, 992, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 244, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, -1, -1, 12, -1, 14, -1, - 1028, 1029, 1030, 1031, 1032, -1, -1, -1, 1036, 1097, - -1, -1, 1040, 29, 1108, 31, 32, -1, -1, -1, - -1, 37, -1, 1051, 1052, 1053, 42, -1, -1, -1, - 46, -1, 48, -1, -1, -1, -1, -1, -1, 55, - 1068, 57, 58, -1, -1, 1073, 4, 5, -1, -1, - -1, 9, 313, -1, -1, 71, -1, 1085, -1, -1, - 1154, 1155, -1, 1157, -1, 81, -1, -1, 329, -1, - -1, -1, -1, 89, -1, 91, 337, -1, 94, 95, - 1108, -1, 98, -1, -1, -1, -1, 348, -1, -1, - 48, -1, -1, -1, -1, -1, -1, 55, -1, 57, - 58, 1195, -1, -1, 365, -1, 1200, -1, 1202, -1, - 1198, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 81, -1, 386, 1154, 1155, -1, 1157, - -1, -1, -1, 91, -1, -1, 94, 95, -1, -1, - -1, -1, 403, -1, -1, 406, -1, -1, -1, 1177, - 411, -1, -1, -1, 415, 331, 332, 333, -1, -1, - 1254, -1, -1, -1, -1, -1, -1, 1195, -1, -1, - -1, -1, 1200, -1, 1202, -1, 437, -1, 439, -1, - 441, 442, 443, -1, -1, -1, 447, -1, -1, -1, - -1, 452, -1, -1, 455, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 1, -1, 3, 4, 5, 6, 7, 8, 9, - -1, -1, 12, -1, 14, 1253, 1254, 1255, -1, -1, - -1, -1, -1, -1, -1, 25, -1, 27, 28, -1, - -1, 502, 32, -1, 505, -1, -1, 37, -1, -1, - -1, -1, 42, -1, -1, -1, 46, -1, 48, 520, - 521, 522, -1, -1, -1, 55, -1, 57, 58, 59, - 60, 61, 533, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, - -1, 91, 92, 93, 94, 95, 96, -1, 98, 99, - -1, -1, 1340, 4, 104, -1, -1, 578, -1, 109, - 110, 111, -1, 113, -1, -1, -1, -1, -1, -1, - 591, -1, -1, -1, -1, 26, -1, -1, -1, -1, - 31, 32, -1, 34, -1, 36, 3, 4, 5, 6, - 41, -1, 9, -1, -1, -1, -1, -1, -1, -1, - 1388, 1389, 1390, 54, -1, 56, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1404, -1, 639, 640, - 641, 642, -1, -1, -1, 42, -1, -1, -1, -1, - -1, 1419, -1, -1, -1, -1, -1, 34, 55, -1, - 57, 58, 93, -1, -1, 581, 582, -1, 584, -1, - -1, -1, -1, -1, 71, 591, 677, 54, -1, -1, - 681, -1, -1, -1, 81, -1, -1, 688, 689, -1, - 691, -1, 89, -1, -1, -1, -1, 94, -1, -1, - -1, -1, -1, -1, 4, 5, 137, -1, 8, 9, - -1, -1, -1, 144, 14, 716, -1, 148, -1, -1, - 151, 152, 153, 639, -1, 641, 642, -1, 644, -1, - 3, 4, 5, 6, 165, -1, 9, 37, 739, -1, - -1, -1, -1, -1, -1, -1, 46, -1, 48, 180, - 181, 182, -1, -1, -1, 55, -1, 57, 58, -1, - 137, 677, -1, -1, -1, -1, -1, -1, -1, 42, - -1, 71, -1, -1, 151, 152, 153, -1, 209, -1, - -1, 81, 55, -1, 57, 58, 3, 4, 5, 6, - -1, 91, 9, -1, 94, 95, -1, -1, 71, -1, - -1, -1, -1, 180, 181, 182, -1, -1, 81, -1, - -1, -1, -1, 244, -1, -1, 89, -1, -1, -1, - -1, 94, -1, -1, -1, 42, -1, -1, -1, 745, - -1, -1, 209, 834, 835, 836, -1, -1, 55, 840, - 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, - -1, 862, 863, 864, 81, -1, -1, -1, 869, -1, - -1, -1, 89, 331, 332, 333, -1, 94, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, -1, 898, -1, -1, - -1, 817, -1, 819, -1, -1, 283, 338, -1, -1, - -1, -1, -1, -1, 830, -1, -1, 348, 834, 835, - 836, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 931, -1, 933, -1, -1, -1, -1, 938, 939, 940, - -1, -1, -1, -1, -1, -1, 862, 863, 864, -1, - -1, -1, -1, 54, 331, 332, 333, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 348, 403, -1, -1, 406, -1, -1, 79, -1, - 411, 82, 898, -1, 415, 71, 72, 73, 74, 75, + 42, 500, -1, -1, 503, -1, 48, -1, -1, -1, + -1, -1, -1, 55, -1, 57, 58, -1, 4, 518, + 519, 520, -1, -1, -1, -1, -1, -1, -1, 71, + -1, -1, 531, -1, 1255, 1256, 1257, -1, -1, 81, + 26, -1, -1, -1, -1, 31, 32, 89, 34, 91, + 36, -1, 94, 95, -1, 41, -1, -1, 3, 4, + 5, 6, 7, 8, 9, -1, -1, -1, 54, 14, + 56, -1, -1, -1, -1, -1, -1, 576, 436, -1, + 438, -1, 440, 441, 442, -1, -1, 32, 446, -1, + 589, -1, 37, 451, -1, -1, 454, 42, -1, -1, + -1, 46, -1, 48, -1, -1, -1, 93, -1, -1, + 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, + -1, 1342, -1, -1, -1, -1, 71, -1, -1, 54, + -1, -1, -1, -1, -1, -1, 81, -1, -1, 638, + 639, 640, 641, -1, 89, -1, 91, -1, -1, 94, + 95, 137, -1, -1, 79, -1, -1, 82, 144, -1, + -1, -1, 148, -1, -1, 151, 152, 153, -1, 1390, + 1391, 1392, -1, -1, -1, -1, -1, 676, 103, 165, + 105, 680, -1, -1, -1, 1406, -1, -1, 687, 688, + -1, 690, -1, -1, 180, 181, 182, -1, -1, -1, + 1421, -1, -1, -1, -1, -1, -1, -1, 566, -1, + 4, 5, 137, 7, 8, 9, 715, -1, 12, -1, + 14, 579, 580, 209, 582, -1, -1, -1, -1, -1, + -1, 589, -1, -1, -1, 29, -1, 31, 32, -1, + 739, -1, -1, 37, -1, -1, -1, -1, -1, -1, + -1, -1, 46, -1, -1, 180, 181, 182, 244, -1, + -1, 55, -1, 57, 58, 190, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - -1, -1, 103, -1, 105, -1, 437, -1, 439, -1, - 441, 442, 443, -1, 1015, -1, 447, -1, -1, -1, - -1, 452, -1, -1, 455, -1, -1, 1028, 1029, 1030, - 1031, 1032, -1, 1034, -1, 1036, 137, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 1051, 1052, 1053, -1, 14, -1, -1, -1, -1, -1, - 437, -1, 439, -1, 441, 442, 443, -1, -1, 29, - 447, 31, 32, -1, -1, 452, -1, 37, 455, 180, - 181, 182, 42, -1, -1, -1, 46, -1, -1, 190, - -1, -1, -1, -1, -1, 55, 1097, 57, 58, -1, - -1, 61, -1, -1, -1, -1, -1, 1108, 209, -1, - -1, 71, 1028, 1029, 1030, 1031, 1032, -1, -1, -1, - 1036, 81, -1, 581, 582, -1, -1, -1, -1, 89, - -1, 232, -1, -1, 94, 1051, 1052, 1053, 3, 4, - 5, 6, -1, -1, 9, -1, 247, -1, 579, -1, - -1, -1, -1, 1154, 1155, -1, 1157, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, - -1, 639, -1, 641, 642, -1, 644, -1, -1, -1, - 55, 568, 57, 58, 1195, -1, -1, -1, -1, 1200, - -1, 1202, -1, -1, 581, 582, 71, 584, 639, 640, - 641, 642, -1, -1, 591, -1, 81, -1, -1, 677, - -1, -1, -1, -1, 89, -1, -1, -1, -1, 94, - -1, -1, -1, -1, -1, -1, 337, 338, 1154, 1155, - -1, 1157, 3, 4, 5, 6, 677, 348, 9, -1, - 681, -1, 1253, 1254, 1255, -1, -1, 688, 689, -1, - 691, -1, 639, -1, 641, 642, -1, 644, -1, 3, - 4, 5, 6, -1, -1, 9, -1, -1, -1, -1, - -1, 42, -1, -1, -1, 716, -1, 745, -1, -1, - -1, -1, -1, -1, 55, -1, 57, 58, -1, -1, - 677, -1, -1, -1, -1, -1, -1, -1, 42, -1, - 71, 688, 689, -1, 691, -1, -1, -1, -1, -1, - 81, 55, -1, 57, 58, -1, -1, -1, 89, -1, - -1, -1, -1, 94, -1, -1, 437, 71, 439, 1340, - 441, 442, 443, -1, -1, -1, 447, 81, -1, -1, - -1, 452, -1, -1, 455, 89, 733, 734, 735, 817, - 94, 819, -1, -1, -1, -1, -1, -1, 745, -1, - 4, 5, 830, -1, 8, 9, 834, 835, -1, -1, - 14, -1, -1, 3, 4, 5, 6, 1388, 1389, 1390, - -1, -1, -1, -1, -1, 29, -1, 31, -1, -1, - -1, -1, -1, 37, 862, 863, -1, -1, -1, -1, - 841, -1, 46, -1, -1, -1, -1, -1, 1419, -1, - -1, 55, 42, 57, 58, -1, -1, -1, -1, -1, - -1, 862, 863, 864, -1, 55, -1, 57, 58, -1, - 817, -1, 819, 63, -1, -1, -1, -1, -1, -1, - -1, 71, -1, 830, -1, -1, -1, 834, 835, 836, - 94, 81, -1, -1, -1, -1, -1, 898, -1, 89, - -1, -1, -1, -1, 94, 1, -1, 3, 4, 5, - 6, 7, 8, 9, -1, 862, 863, 864, 14, -1, - -1, -1, -1, 594, 595, -1, -1, -1, -1, -1, - 931, -1, 933, 29, -1, 31, 32, 938, 939, 940, - -1, 37, -1, -1, -1, -1, 42, -1, -1, -1, - 46, 898, -1, 49, -1, -1, -1, -1, -1, 55, - -1, 57, 58, -1, -1, 61, -1, -1, 639, -1, - 641, 642, -1, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, - -1, 938, -1, 89, -1, -1, -1, -1, 94, -1, - 1028, 1029, 1030, 1031, -1, -1, 677, -1, 1036, -1, - 3, 4, 5, 6, -1, -1, 9, 688, 689, -1, - 691, -1, -1, 1051, 1052, -1, -1, 1028, 1029, 1030, - 1031, 1032, -1, -1, -1, 1036, -1, -1, -1, -1, - -1, -1, 989, 990, 715, 992, -1, -1, -1, 42, - 1051, 1052, 1053, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, 57, 58, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, -1, -1, 71, -1, - 14, 1028, 1029, 1030, 1031, 1032, -1, -1, 81, 1036, - -1, -1, -1, -1, -1, 29, 89, 31, 32, -1, - -1, 94, -1, 37, 1051, 1052, 1053, 1108, 42, -1, - -1, -1, 46, -1, 48, -1, -1, -1, -1, -1, - -1, 55, -1, 57, 58, -1, 1154, 1155, -1, 1157, - -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 3, 4, - 5, 6, -1, 1154, 1155, 89, 1157, 91, -1, -1, - 94, 95, 14, -1, -1, 3, 4, 5, 6, 840, - 841, 842, 24, 25, -1, -1, -1, -1, -1, 31, - 32, -1, 34, -1, -1, -1, -1, 42, -1, -1, - -1, 862, 863, 864, 1195, -1, -1, -1, 869, 1200, - 55, 1202, 57, 58, 42, -1, 61, 1154, 1155, -1, - 1157, -1, 64, -1, -1, -1, 71, 55, -1, 57, - 58, -1, -1, -1, -1, -1, 81, 898, -1, -1, - -1, -1, -1, 71, 89, -1, -1, -1, -1, 94, - -1, -1, -1, 81, -1, -1, -1, -1, 1195, -1, - -1, 89, 1253, 1254, 1255, -1, 94, 1, -1, 3, - 4, 5, 6, 7, 8, 9, -1, 938, -1, -1, - 14, 123, -1, 125, -1, -1, 128, -1, -1, -1, - 132, 133, -1, -1, -1, 29, -1, 31, 32, 33, - -1, -1, 144, 37, 146, 147, 148, -1, 42, 151, - 152, 153, 46, 47, -1, 49, 1253, -1, 1255, -1, - -1, 55, -1, 57, 58, -1, -1, 61, -1, 63, - -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, - -1, 3, 4, 5, 6, -1, -1, 81, -1, 1340, - -1, -1, -1, -1, 1015, 89, -1, -1, -1, -1, - 94, -1, -1, -1, -1, -1, -1, 1028, 1029, 1030, - 1031, 1032, -1, 1034, -1, 1036, -1, -1, -1, -1, - 42, 223, 224, -1, -1, -1, -1, -1, -1, -1, - 1051, 1052, 1053, 55, -1, 57, 58, 1388, 1389, 1390, - -1, -1, 244, 1340, -1, -1, -1, -1, -1, 71, - -1, -1, -1, -1, -1, -1, -1, -1, 1, 81, - 3, 4, 5, 6, 7, 8, 9, 89, 1419, -1, - -1, 14, 94, -1, -1, -1, 1097, -1, -1, -1, - -1, 283, -1, -1, -1, -1, 29, -1, 31, 32, - 33, 1388, 1389, 1390, 37, 38, -1, -1, -1, 42, - -1, -1, -1, 46, 47, -1, 49, -1, -1, -1, + 638, -1, 640, 641, 209, 643, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, -1, 1, 9, 3, + 4, 5, 6, 7, 8, 9, -1, 232, -1, -1, + 14, -1, -1, -1, -1, -1, -1, -1, 676, -1, + -1, -1, 247, -1, -1, 29, -1, 31, 32, 687, + 688, 42, 690, 37, -1, 834, 835, 836, 42, -1, + -1, 840, 46, 47, 55, 49, 57, 58, -1, -1, + -1, 55, 338, 57, 58, -1, -1, -1, -1, 63, + 71, 347, -1, -1, 863, 864, 865, 71, -1, -1, + 81, 870, -1, -1, 732, 733, 734, 81, 89, -1, + -1, -1, -1, 94, -1, 89, -1, 745, -1, -1, + 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 899, -1, -1, -1, -1, -1, 106, 107, -1, -1, + -1, -1, 337, 338, -1, -1, 402, -1, -1, 405, + -1, -1, 347, -1, 410, -1, -1, -1, 414, -1, + -1, -1, -1, 932, -1, 934, 3, 4, 5, 6, + 939, 940, 941, -1, -1, -1, -1, -1, -1, -1, + 436, -1, 438, -1, 440, 441, 442, -1, -1, 817, + 446, 819, -1, -1, -1, 451, -1, -1, 454, -1, + -1, -1, 830, -1, -1, 42, 834, 835, 836, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, + 57, 58, -1, -1, -1, -1, 63, -1, -1, -1, + -1, -1, -1, -1, 71, 863, 864, 865, 180, 181, + 182, 436, -1, 438, 81, 440, 441, 442, 1017, -1, + -1, 446, 89, -1, -1, -1, 451, 94, -1, 454, + -1, 1030, 1031, 1032, 1033, 1034, -1, 1036, -1, 1038, + -1, 899, -1, 4, 5, -1, 7, 8, 9, -1, + -1, -1, -1, 14, 1053, 1054, 1055, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, + 31, 32, -1, -1, 4, 5, 37, 4, 8, 9, + -1, 939, -1, -1, 14, 46, -1, -1, -1, -1, + -1, 577, -1, -1, 55, -1, 57, 58, -1, 26, + 1099, -1, -1, -1, 31, 32, -1, 37, -1, 36, + -1, 1110, -1, 313, 41, -1, 46, -1, 48, -1, + -1, -1, -1, -1, -1, 55, -1, 57, 58, 56, + -1, -1, -1, 991, 992, -1, 994, -1, -1, -1, + -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 81, 638, 639, 640, 641, -1, 1156, 1157, -1, + 1159, 91, -1, -1, 94, 95, 93, 592, 593, -1, + -1, -1, 1030, 1031, 1032, 1033, 1034, -1, -1, -1, + 1038, 3, 4, 5, 6, -1, -1, 9, -1, -1, + 676, 391, -1, -1, 680, 1053, 1054, 1055, 1197, -1, + -1, 687, 688, 1202, 690, 1204, -1, -1, -1, -1, + -1, -1, -1, 638, -1, 640, 641, 144, -1, -1, + 42, 148, -1, -1, -1, -1, -1, -1, -1, 715, + -1, -1, -1, 55, 434, 57, 58, -1, 165, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, + -1, 676, -1, 180, 181, -1, 1255, 1256, 1257, 81, + -1, -1, 687, 688, 436, 690, 438, 89, 440, 441, + 442, -1, 94, -1, 3, 4, 5, 6, -1, 451, + -1, -1, -1, 3, 4, 5, 6, -1, -1, 714, + -1, -1, -1, -1, 3, 4, 5, 6, 1156, 1157, + 500, 1159, -1, 503, -1, -1, -1, 507, 508, 509, + 510, 511, -1, 42, -1, -1, -1, 244, -1, -1, + 520, -1, 42, -1, -1, -1, 55, -1, 57, 58, + -1, 531, 61, 42, -1, 55, -1, 57, 58, 1197, + -1, -1, 71, 1342, -1, -1, 55, -1, 57, 58, + -1, 71, 81, -1, -1, 841, 3, 4, 5, 6, + 89, 81, 71, 563, -1, 94, -1, -1, -1, 89, + -1, -1, 81, -1, 94, -1, -1, 863, 864, 865, + 89, -1, 582, -1, -1, 94, -1, -1, -1, 589, + -1, 1390, 1391, 1392, -1, 42, -1, 1255, -1, 1257, + -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, + 57, 58, -1, 899, -1, 840, 841, 842, -1, -1, + -1, -1, 1421, -1, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 81, -1, -1, -1, 863, 864, + 865, -1, 89, -1, -1, 870, 932, 94, 934, -1, + -1, -1, -1, 939, 940, 941, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 899, 402, -1, -1, 405, -1, + 680, -1, -1, 410, 1342, -1, -1, 414, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, -1, -1, -1, -1, 436, + -1, 438, -1, -1, 939, 687, 688, -1, 690, -1, + 720, -1, -1, -1, 451, 725, -1, -1, -1, -1, + -1, -1, 1390, 1391, 1392, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1030, 1031, 1032, 1033, 1034, 4, + 5, -1, 1038, 8, 9, -1, -1, -1, -1, 14, + -1, -1, -1, 1421, -1, -1, -1, 1053, 1054, 1055, + -1, -1, -1, -1, 29, -1, 31, -1, -1, -1, + -1, -1, 37, -1, -1, -1, -1, -1, -1, 4, + 5, 46, 1017, 8, 9, 795, -1, -1, -1, 14, + 55, -1, 57, 58, -1, 1030, 1031, 1032, 1033, 1034, + -1, 1036, -1, 1038, 29, -1, 31, -1, -1, -1, + -1, -1, 37, -1, 1110, -1, 826, -1, 1053, 1054, + 1055, 46, 832, 48, -1, -1, 836, -1, -1, 94, + 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, + 860, -1, 862, -1, -1, 865, 81, -1, -1, -1, + 1156, 1157, -1, 1159, 1099, -1, 91, -1, -1, 94, + 95, -1, -1, -1, -1, 14, -1, -1, -1, -1, + -1, 863, 864, 865, -1, 24, 25, -1, -1, 899, + -1, -1, 31, 32, -1, 34, -1, -1, -1, -1, + -1, 1197, 639, 913, -1, -1, 1202, -1, 1204, -1, + 920, -1, -1, -1, -1, -1, -1, 899, -1, -1, + -1, 1156, 1157, -1, 1159, 64, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, -1, 680, -1, -1, -1, 957, -1, 959, + 687, 688, -1, 690, -1, -1, -1, 939, -1, 1255, + 1256, 1257, 1197, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 715, -1, + -1, -1, -1, -1, 123, -1, 125, -1, -1, 128, + -1, -1, -1, 132, 133, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 144, -1, 146, 147, 148, + -1, -1, 151, 152, 153, -1, -1, -1, -1, -1, + 1255, -1, 1257, -1, 1034, -1, -1, -1, 4, 5, + -1, -1, 8, 9, -1, -1, -1, -1, 14, -1, + -1, -1, -1, -1, -1, 1055, 1342, -1, 1030, 1031, + 1032, 1033, 1034, 29, -1, 31, 1038, -1, -1, -1, + -1, 37, -1, -1, -1, 1075, -1, -1, -1, -1, + 46, 1053, 1054, 1055, -1, -1, -1, 1087, -1, 55, + -1, 57, 58, -1, 223, 224, -1, 4, 5, -1, + 7, 8, 9, -1, 1390, 1391, 1392, 14, -1, -1, + -1, -1, -1, -1, -1, 244, -1, 1342, -1, -1, + -1, -1, 29, -1, 31, 32, -1, -1, -1, -1, + 37, -1, -1, -1, -1, 1421, 863, 864, -1, 46, + -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, + 57, 58, -1, -1, 283, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1390, 1391, 1392, -1, -1, + -1, -1, 3, 4, 5, 6, 7, 8, 9, 1179, + -1, -1, -1, 14, 1156, 1157, -1, 1159, -1, -1, + -1, -1, -1, -1, -1, -1, 1421, -1, -1, -1, + 329, 32, 331, 332, -1, 932, 37, 934, -1, -1, + -1, 42, 939, 940, 941, 46, -1, 48, -1, -1, + -1, -1, -1, -1, 55, 1197, 57, 58, -1, -1, + -1, -1, -1, -1, -1, 364, -1, -1, -1, -1, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 81, -1, -1, -1, -1, -1, 385, -1, 89, -1, + 91, -1, -1, 94, 95, -1, -1, -1, -1, 398, + -1, -1, -1, 402, -1, -1, 405, -1, -1, -1, + 1, 410, 3, 4, 5, 6, -1, 8, 9, 10, + 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1030, 1031, -1, -1, -1, 29, 30, + 31, 1038, 33, -1, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, + 51, 52, 53, 54, 55, -1, 57, 58, 467, -1, + 469, 62, 63, -1, 4, 5, -1, 68, 8, 9, + 71, -1, -1, -1, 14, -1, -1, -1, 79, 80, + 81, -1, -1, -1, -1, 494, 87, 88, 89, 29, + 1342, 31, -1, 94, -1, -1, -1, 37, -1, -1, + -1, -1, -1, 1110, -1, -1, 46, -1, -1, -1, + -1, 112, 1392, -1, -1, 55, -1, 57, 58, -1, + -1, -1, -1, -1, -1, -1, 1406, -1, 1, -1, + 3, 4, 5, 6, 7, 8, 9, -1, 1390, 1391, + 1392, 14, -1, -1, -1, -1, -1, -1, -1, 1156, + 1157, -1, 1159, -1, 27, 28, 29, 566, 31, 32, + 33, -1, -1, -1, 37, -1, -1, 576, 577, 42, + 579, 580, 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, 55, -1, 57, 58, -1, -1, 61, -1, - 63, -1, 1419, -1, -1, -1, -1, 329, 71, 331, - 332, -1, -1, 1154, 1155, -1, 1157, -1, 81, -1, - -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, - -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 365, -1, -1, -1, -1, 111, -1, - -1, -1, -1, -1, 1195, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 386, 1, -1, 3, 4, 5, - 6, 7, 8, 9, -1, -1, -1, 399, 14, -1, - -1, 403, -1, -1, 406, -1, -1, -1, -1, 411, - -1, -1, -1, 29, -1, 31, 32, 33, -1, -1, - -1, 37, 38, -1, -1, -1, 42, -1, -1, -1, - 46, 47, 1253, 49, 1255, -1, -1, -1, -1, 55, - -1, 57, 58, -1, -1, 61, -1, 63, -1, 4, - 5, -1, 7, 8, 9, 71, -1, 12, -1, 14, - -1, -1, -1, -1, -1, 81, 468, -1, 470, -1, - -1, -1, -1, 89, 29, -1, 31, 32, 94, -1, - -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, - -1, 46, -1, 495, -1, 111, -1, -1, -1, -1, - 55, -1, 57, 58, 1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, 13, 14, 15, 1340, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, -1, 61, 62, 568, 1388, 1389, 1390, - -1, 68, -1, -1, 71, -1, 578, 579, -1, 581, - 582, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, -1, 94, 1419, 96, - 4, 5, -1, 7, 8, 9, -1, -1, -1, -1, - 14, -1, -1, -1, 111, 112, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 29, -1, 31, 32, -1, - -1, -1, 634, 37, -1, -1, -1, -1, -1, -1, - -1, 643, 46, -1, -1, -1, -1, -1, -1, -1, - -1, 55, -1, 57, 58, 657, -1, -1, 1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, 715, 57, 58, 59, -1, 61, 62, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, 733, 734, 735, -1, -1, 79, 80, 81, -1, - -1, -1, -1, 745, 87, 88, 89, -1, -1, -1, - -1, 94, 1, 96, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, -1, -1, -1, 112, + 1197, -1, -1, -1, -1, 1202, -1, 1204, 71, 1, + -1, 3, 4, 5, 6, 7, 8, 9, 81, -1, + 12, -1, 14, -1, -1, -1, 89, -1, -1, -1, + -1, 94, -1, 25, 633, 27, 28, 100, -1, -1, + 32, -1, -1, 642, -1, 37, -1, -1, -1, -1, + 42, -1, -1, -1, 46, -1, 48, 656, -1, 1256, + -1, -1, -1, 55, -1, 57, 58, 59, 60, 61, + -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, -1, 91, + 92, 93, 94, 95, 96, -1, 98, 99, -1, -1, + -1, -1, 104, -1, -1, 714, -1, 109, 110, 111, + -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 732, 733, 734, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 745, 1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, + 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, + 54, 55, -1, 57, 58, 59, -1, 61, 62, -1, + -1, -1, -1, -1, 68, -1, -1, 71, 817, -1, + 819, -1, -1, -1, -1, 79, 80, 81, -1, -1, + -1, 830, -1, 87, 88, 89, -1, -1, -1, -1, + 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, 112, -1, + 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, -1, 13, 14, 15, -1, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, + 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, + 61, 62, -1, -1, -1, -1, 925, 68, -1, 928, + 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, + 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, + -1, -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, 48, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, -1, 62, -1, 817, -1, 819, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, 830, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, 91, -1, -1, 94, 95, -1, 1, 98, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, -1, 112, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, + 1, 112, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, + -1, -1, 991, 992, -1, 994, -1, -1, 29, 30, + 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, -1, 46, -1, 48, -1, 50, + 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, + -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, + 71, -1, -1, 1042, -1, -1, -1, -1, 79, 80, + 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, + 91, -1, -1, 94, 95, -1, -1, 98, -1, -1, + -1, 1070, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 112, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, + -1, 1100, -1, -1, -1, -1, -1, -1, 29, 30, + 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, -1, 46, -1, 48, -1, 50, + 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, + -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, + 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, + 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, + 91, -1, -1, 94, 95, -1, 1, 98, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1200, -1, 1202, 29, 30, 31, 32, 33, -1, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, + 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, + -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, + -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, + -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, + -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 110, 1, 112, 3, 4, + 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, + 55, -1, 57, 58, 59, -1, 61, 62, -1, -1, + -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, + -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, + -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, + 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, + 13, 14, -1, -1, -1, -1, -1, 112, -1, -1, + -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, 48, -1, 50, 51, 52, + 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, 924, -1, -1, 927, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, 91, -1, - -1, 94, 95, -1, -1, 98, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, - -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 989, 990, -1, - 992, 29, 30, 31, 32, 33, -1, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, 1040, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, -1, -1, -1, 94, -1, -1, -1, - 98, -1, -1, -1, -1, -1, 1068, -1, -1, -1, - -1, -1, 110, 1, 112, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1098, -1, -1, -1, - -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, + -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, + -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, + -1, 94, 95, 1, -1, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, 13, 14, -1, 111, 112, + -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, + -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, 59, -1, 61, 62, -1, -1, -1, -1, -1, + 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, - -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, - -1, -1, -1, 29, 30, 31, 1198, 33, 1200, 35, + -1, -1, -1, 111, 112, 21, -1, -1, -1, -1, + -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, -1, -1, -1, -1, 94, 95, - 1, -1, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, 13, 14, -1, 111, 112, -1, -1, -1, - 21, -1, -1, -1, -1, -1, -1, -1, 29, 30, + -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, + 14, -1, -1, -1, -1, 111, 112, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, + -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, + 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, + -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, 87, 88, 89, -1, -1, -1, -1, + 94, 95, 1, -1, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, 13, 14, -1, -1, 112, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, + -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, + 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, + -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, + 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, + 89, -1, -1, -1, -1, 94, -1, -1, 1, -1, + 3, 4, 5, 6, 103, 8, 9, 10, 11, -1, + 13, 14, -1, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, + 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, + 53, 54, 55, -1, 57, 58, 59, -1, -1, 62, + -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, + -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, + -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, + 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, + 11, -1, 13, 14, -1, -1, -1, -1, -1, 112, + -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, @@ -3063,7 +3121,7 @@ static const short yycheck[] = { 4, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - 111, 112, 21, -1, -1, -1, -1, -1, -1, -1, + -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, @@ -3072,39 +3130,36 @@ static const short yycheck[] = { 4, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, + 57, 58, -1, -1, 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, -1, 94, 95, 1, - -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, 13, 14, -1, -1, 112, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, - -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, - 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, 59, -1, -1, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, - -1, -1, 94, -1, -1, 1, -1, 3, 4, 5, - 6, 103, 8, 9, 10, 11, -1, 13, 14, -1, - 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, - 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, - 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, + 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, + 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, + -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, + 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, + -1, -1, -1, 68, 1, -1, 71, 4, 5, -1, + -1, 8, 9, -1, 79, 80, 81, 14, -1, -1, + -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, + -1, -1, 29, -1, 31, -1, -1, -1, -1, -1, + 37, -1, 39, 40, -1, 110, -1, 112, -1, 46, + -1, 48, -1, -1, -1, -1, -1, -1, 55, -1, + 57, 58, -1, 60, -1, -1, -1, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, + 87, 88, 89, -1, -1, 92, -1, 1, 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, - 14, -1, -1, -1, -1, -1, 112, -1, -1, -1, + 14, -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, + 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, @@ -3114,7 +3169,7 @@ static const short yycheck[] = { 4, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, - 62, 63, -1, -1, -1, -1, 68, -1, -1, 71, + 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, @@ -3122,57 +3177,149 @@ static const short yycheck[] = { 4, 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, + 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, - 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, - -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, - -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, + 3, 4, 5, 6, 94, 8, 9, 10, 11, -1, + 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 112, -1, -1, -1, 29, 30, 31, -1, + 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, + 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, + -1, -1, -1, -1, -1, 68, -1, 1, 71, 3, + 4, 5, 6, 7, 8, 9, 79, 80, 81, -1, + 14, -1, -1, -1, 87, 88, 89, -1, -1, -1, + -1, 94, -1, -1, -1, 29, -1, 31, 32, 33, + -1, -1, -1, 37, 38, -1, -1, -1, 42, 112, + 113, -1, 46, 47, -1, 49, -1, -1, -1, -1, + -1, 55, -1, 57, 58, -1, -1, 61, -1, 63, + -1, -1, -1, -1, -1, -1, -1, 71, 1, -1, + 3, 4, 5, 6, 7, 8, 9, 81, -1, -1, + -1, 14, -1, -1, -1, 89, -1, -1, -1, -1, + 94, -1, -1, -1, -1, -1, 29, -1, 31, 32, + 33, -1, -1, -1, 37, 38, -1, 111, -1, 42, + -1, -1, -1, 46, 47, -1, 49, -1, -1, -1, + -1, -1, 55, -1, 57, 58, -1, -1, 61, -1, + 63, -1, -1, -1, -1, -1, -1, -1, 71, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, + -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, + -1, 94, -1, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, 13, 14, 15, 111, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, 61, 62, -1, -1, -1, -1, -1, + 58, 59, -1, 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, - 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, - -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, - -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, + 88, 89, -1, -1, -1, -1, 94, -1, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, 112, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, 13, 14, 15, -1, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, -1, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, + -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, + 58, 59, -1, 61, 62, -1, -1, -1, -1, -1, + 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, + 88, 89, -1, -1, -1, -1, 94, -1, 96, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, 13, 14, 15, 112, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, + 52, 53, 54, 55, -1, 57, 58, 59, -1, 61, + 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, + -1, -1, 94, -1, 96, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, + 112, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, - -1, -1, 68, 1, -1, 71, 4, 5, -1, -1, - 8, 9, -1, 79, 80, 81, 14, -1, -1, -1, + -1, 57, 58, -1, -1, 61, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, -1, - -1, 29, -1, 31, -1, -1, -1, -1, -1, 37, - -1, 39, 40, -1, 110, -1, 112, -1, 46, -1, - 48, -1, -1, -1, -1, -1, -1, 55, -1, 57, - 58, -1, 60, -1, -1, -1, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, - 88, 89, -1, -1, 92, -1, 1, 95, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, + 96, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, -1, -1, -1, 112, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, + 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, -1, 46, -1, 48, -1, 50, 51, + 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, + 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, 87, 88, 89, -1, 91, + -1, -1, 94, 95, -1, -1, 98, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, + 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, 48, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, -1, 91, -1, -1, 94, 95, + -1, -1, 98, 3, 4, 5, 6, -1, 8, 9, + 10, 11, -1, 13, 14, -1, 112, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, + 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, + 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, + -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, + -1, 71, -1, -1, -1, -1, 76, -1, 78, 79, + 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, + 3, 4, 5, 6, 94, 8, 9, 10, 11, -1, + 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 112, -1, -1, -1, 29, 30, 31, -1, + 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, -1, 46, -1, 48, -1, 50, 51, 52, + 53, 54, 55, -1, 57, 58, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, + -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, + -1, -1, -1, -1, 87, 88, 89, -1, 91, -1, + -1, 94, 95, 3, 4, 5, 6, -1, 8, 9, + 10, 11, -1, 13, 14, -1, -1, -1, -1, 112, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, + 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, -1, 46, -1, 48, -1, + 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, + -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, + 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, + -1, 91, -1, -1, 94, 95, 3, 4, 5, 6, + -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, + -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, + -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, + 57, 58, -1, -1, 61, 62, -1, -1, -1, -1, + -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, + -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, + 87, 88, 89, -1, -1, -1, -1, 94, 3, 4, + 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, + -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, + 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, - 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, - 13, 14, -1, -1, -1, -1, -1, 112, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, - 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, - 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, -1, 112, - -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, + -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, + 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, + -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, + -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, + 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, + 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, + 88, 89, 3, 4, 5, 6, 94, 8, 9, 10, + 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, @@ -3184,119 +3331,34 @@ static const short yycheck[] = { 4, -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, - -1, -1, -1, -1, 68, -1, 1, 71, 3, 4, - 5, 6, 7, 8, 9, 79, 80, 81, -1, 14, - -1, -1, -1, 87, 88, 89, -1, -1, -1, -1, - 94, -1, -1, -1, 29, -1, 31, 32, 33, -1, - -1, -1, 37, 38, -1, -1, -1, 42, 112, 113, - -1, 46, 47, -1, 49, -1, -1, -1, -1, -1, - 55, -1, 57, 58, -1, -1, 61, -1, 63, -1, - -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, - -1, -1, -1, -1, 89, -1, -1, -1, -1, 94, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, 13, 14, 15, 111, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, - 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, - -1, 61, 62, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, -1, -1, 94, -1, 96, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 111, 112, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, 13, 14, 15, -1, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, - 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, - 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, - -1, 61, 62, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, - -1, -1, -1, -1, 94, -1, 96, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, - 14, 15, 112, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, - 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, 59, -1, 61, 62, -1, + 54, 55, -1, 57, 58, 59, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 87, 88, 89, -1, -1, -1, -1, - 94, -1, 96, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, 13, 14, 15, 112, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, -1, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, 61, 62, -1, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, -1, -1, -1, 94, -1, 96, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, -1, -1, -1, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, + -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, + 94, 8, 9, 10, 11, -1, 13, 14, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, + -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, + -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, + 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, + -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, + 87, 88, 89, -1, -1, -1, -1, 94, 95, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, + 14, -1, -1, -1, -1, 112, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, - 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, + 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 87, 88, 89, -1, 91, -1, -1, - 94, 95, -1, -1, 98, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, -1, 112, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - 48, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, 91, -1, -1, 94, 95, -1, -1, - 98, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, 13, 14, -1, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, - -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, - 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, 76, -1, 78, 79, 80, 81, - -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, - 5, 6, 94, 8, 9, 10, 11, -1, 13, 14, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, 48, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, 91, -1, -1, 94, - 95, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, 13, 14, -1, -1, -1, -1, 112, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, - -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, - 42, 43, 44, -1, 46, -1, 48, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, 87, 88, 89, -1, 91, - -1, -1, 94, 95, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, 61, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, -1, 94, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, + -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, + 94, 8, 9, 10, 11, -1, 13, 14, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, + -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, + 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, 9, @@ -3313,7 +3375,7 @@ static const short yycheck[] = { 4, -1, -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, + 53, 54, 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, @@ -3322,7 +3384,7 @@ static const short yycheck[] = { 4, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, 59, -1, -1, -1, -1, -1, -1, + -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, @@ -3334,31 +3396,13 @@ static const short yycheck[] = { 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, -1, 94, 95, 3, 4, 5, - 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, - -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, - 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, - 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, - -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, + -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, 8, 9, 10, 11, -1, 13, 14, @@ -3367,74 +3411,36 @@ static const short yycheck[] = { 4, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, 3, 4, 5, 6, 94, - 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, - -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, - -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, - -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, 3, 4, 5, 6, 94, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 112, -1, -1, -1, 29, 30, - 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, - 4, 5, 6, 94, 8, 9, 10, 11, -1, 13, - 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, - -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, - 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, - 54, 55, -1, 57, 58, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, - 94, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, - -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 68, -1, 1, 71, 3, 4, 5, 6, 7, - 8, 9, 79, 80, 81, -1, 14, -1, -1, -1, - 87, 88, 89, -1, -1, -1, -1, 94, -1, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, 37, - -1, -1, -1, -1, 42, 112, -1, 45, 46, 47, - -1, 49, -1, -1, -1, -1, -1, 55, -1, 57, - 58, -1, 1, 61, 3, 4, 5, 6, 7, 8, - 9, -1, -1, 71, -1, 14, -1, -1, -1, -1, - -1, -1, -1, 81, -1, -1, -1, -1, 27, 28, - 29, 89, 31, 32, 33, -1, 94, -1, 37, -1, - -1, -1, 100, 42, -1, -1, 45, 46, 47, -1, - 49, -1, -1, -1, -1, -1, 55, -1, 57, 58, - -1, -1, 61, 3, 4, 5, 6, 7, 8, 9, - -1, -1, 71, -1, 14, -1, -1, -1, -1, -1, - -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, - 89, -1, 32, -1, -1, 94, -1, 37, -1, -1, - -1, 100, 42, -1, -1, -1, 46, -1, 48, -1, - -1, -1, -1, -1, -1, 55, -1, 57, 58, 3, - 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, - 14, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 81, -1, -1, -1, -1, -1, -1, 32, 89, - -1, 91, -1, 37, 94, 95, -1, -1, 42, -1, - -1, -1, 46, -1, 48, -1, -1, -1, -1, -1, - -1, 55, -1, 57, 58, 3, 4, 5, 6, 7, - 8, 9, -1, -1, -1, -1, 14, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, - -1, 29, -1, 31, 32, 89, -1, 91, -1, 37, - 94, 95, -1, -1, 42, -1, -1, -1, 46, -1, - -1, -1, -1, -1, -1, -1, -1, 55, -1, 57, - 58, 3, 4, 5, 6, 7, 8, 9, -1, -1, - 12, -1, 14, 71, -1, -1, -1, 75, -1, -1, - -1, -1, -1, 81, -1, -1, -1, 29, -1, 31, - 32, 89, -1, -1, -1, 37, 94, -1, -1, -1, + -1, -1, -1, 68, -1, 1, 71, 3, 4, 5, + 6, 7, 8, 9, 79, 80, 81, -1, 14, -1, + -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, + -1, 27, 28, 29, -1, 31, 32, 33, -1, -1, + -1, 37, -1, -1, -1, -1, 42, 112, -1, 45, + 46, 47, -1, 49, -1, -1, -1, -1, -1, 55, + -1, 57, 58, -1, -1, 61, -1, -1, 3, 4, + 5, 6, 7, 8, 9, 71, -1, 12, -1, 14, + -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, + -1, -1, -1, 89, 29, -1, 31, 32, 94, -1, + -1, -1, 37, -1, 100, -1, -1, 42, -1, -1, + -1, 46, -1, 48, -1, -1, -1, -1, -1, -1, + 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 71, 1, -1, 3, + 4, 5, 6, 7, 8, 9, 81, -1, -1, -1, + 14, -1, -1, -1, 89, -1, 91, -1, -1, 94, + 95, -1, -1, 98, -1, 29, -1, 31, 32, 33, + -1, -1, -1, 37, -1, -1, -1, -1, 42, -1, + -1, -1, 46, 47, -1, 49, -1, -1, -1, -1, + -1, 55, -1, 57, 58, -1, -1, 61, -1, 63, + 3, 4, 5, 6, 7, 8, 9, 71, -1, -1, + -1, 14, -1, -1, -1, -1, -1, 81, -1, -1, + -1, -1, -1, -1, -1, 89, 29, -1, 31, 32, + 94, -1, -1, -1, 37, -1, -1, -1, -1, 42, + -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, + -1, -1, 55, -1, 57, 58, -1, -1, 61, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 71, -1, + 12, -1, 14, -1, -1, -1, -1, -1, 81, -1, + -1, -1, -1, -1, -1, -1, 89, 29, -1, 31, + 32, 94, -1, -1, -1, 37, -1, -1, -1, -1, 42, -1, -1, -1, 46, -1, 3, 4, 5, 6, 7, 8, 9, 55, -1, 57, 58, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, @@ -3455,47 +3461,36 @@ static const short yycheck[] = { 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 14, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, 29, -1, 31, 32, 89, -1, - -1, -1, 37, 94, -1, -1, -1, 42, -1, -1, - -1, 46, -1, 3, 4, 5, 6, 7, 8, 9, - 55, -1, 57, 58, 14, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, - -1, -1, 32, -1, -1, -1, 81, 37, -1, -1, - -1, -1, 42, -1, 89, 12, 46, -1, 48, 94, - -1, -1, -1, -1, -1, 55, -1, 57, 58, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 71, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 81, -1, -1, -1, -1, -1, -1, -1, 89, - -1, -1, -1, -1, 94, -1, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 4, - 5, -1, 7, 8, 9, -1, 4, 5, -1, 14, - 8, 9, -1, 4, 5, -1, 14, 8, 9, -1, - -1, -1, -1, 14, 29, -1, 31, 32, -1, -1, - -1, 29, 37, 31, -1, -1, 32, -1, 29, 37, - 31, 46, -1, -1, -1, -1, 37, -1, 46, -1, - 55, -1, 57, 58, -1, 46, -1, 55, -1, 57, - 58, -1, -1, -1, 55, -1, 57, 58, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, -1, -1, -1, -1, 113, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, 109, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, -1, 37, 94, -1, -1, -1, 42, -1, 12, + -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, + 55, -1, 57, 58, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 71, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 81, -1, -1, -1, + -1, 32, -1, -1, 89, -1, -1, -1, -1, 94, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 64, 65, 66, 67, + 83, 84, 85, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + -1, -1, -1, -1, 113, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 109, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85 + 78, 79, 80, 81, 82, 83, 84, 85, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" +#line 3 "/usr/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -3688,7 +3683,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/usr/lib/bison.simple" +#line 196 "/usr/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -5119,61 +5114,63 @@ case 242: { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 248: -#line 1298 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; +#line 1297 "parse.y" +{ yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ; break;} case 249: -#line 1300 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, NULL_TREE); ; +#line 1301 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 250: -#line 1302 "parse.y" -{ yyval.ttype = lookup_template_function - (do_identifier (yyvsp[-3].ttype, 1), yyvsp[-1].ttype); ; +#line 1303 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-1].ttype, NULL_TREE); ; break;} case 251: #line 1305 "parse.y" -{ yyval.ttype = lookup_template_function - (do_identifier (yyvsp[-2].ttype, 1), NULL_TREE); ; +{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 252: -#line 1311 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; +#line 1307 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-1].ttype, NULL_TREE); ; break;} case 253: -#line 1313 "parse.y" -{ yyval.ttype = lookup_template_function (DECL_NAME (yyvsp[-3].ttype), yyvsp[-1].ttype); ; +#line 1312 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 254: -#line 1315 "parse.y" -{ yyval.ttype = lookup_template_function (DECL_NAME (yyvsp[-3].ttype), yyvsp[-1].ttype); ; +#line 1314 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} -case 259: -#line 1327 "parse.y" -{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ; +case 255: +#line 1316 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 260: -#line 1329 "parse.y" -{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ; +#line 1328 "parse.y" +{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ; break;} case 261: -#line 1331 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; +#line 1330 "parse.y" +{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 262: -#line 1336 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; +#line 1332 "parse.y" +{ yyval.ttype = yyvsp[-1].ttype; ; break;} case 263: -#line 1338 "parse.y" +#line 1337 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} -case 267: -#line 1346 "parse.y" -{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ; +case 264: +#line 1339 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 268: -#line 1351 "parse.y" +#line 1347 "parse.y" +{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ; + break;} +case 269: +#line 1352 "parse.y" { if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR) yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0)); @@ -5181,8 +5178,8 @@ case 268: yyval.ttype = do_identifier (yyval.ttype, 1); ; break;} -case 271: -#line 1360 "parse.y" +case 272: +#line 1361 "parse.y" { if (processing_template_decl) push_obstacks (&permanent_obstack, &permanent_obstack); @@ -5191,8 +5188,8 @@ case 271: pop_obstacks (); ; break;} -case 272: -#line 1368 "parse.y" +case 273: +#line 1369 "parse.y" { char class; yyval.ttype = yyvsp[-1].ttype; class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); @@ -5201,8 +5198,8 @@ case 272: /* This inhibits warnings in truthvalue_conversion. */ C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} -case 273: -#line 1376 "parse.y" +case 274: +#line 1377 "parse.y" { char class; yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype); class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); @@ -5211,12 +5208,12 @@ case 273: /* This inhibits warnings in truthvalue_conversion. */ C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} -case 274: -#line 1384 "parse.y" +case 275: +#line 1385 "parse.y" { yyval.ttype = error_mark_node; ; break;} -case 275: -#line 1386 "parse.y" +case 276: +#line 1387 "parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); @@ -5225,8 +5222,8 @@ case 275: keep_next_level (); yyval.ttype = expand_start_stmt_expr (); ; break;} -case 276: -#line 1394 "parse.y" +case 277: +#line 1395 "parse.y" { tree rtl_exp; if (pedantic) pedwarn ("ANSI C++ forbids braced-groups within expressions"); @@ -5248,8 +5245,8 @@ case 276: yyval.ttype = yyvsp[-1].ttype; ; break;} -case 277: -#line 1415 "parse.y" +case 278: +#line 1416 "parse.y" { yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref); if (TREE_CODE (yyval.ttype) == CALL_EXPR @@ -5257,8 +5254,8 @@ case 277: yyval.ttype = require_complete_type (yyval.ttype); ; break;} -case 278: -#line 1422 "parse.y" +case 279: +#line 1423 "parse.y" { yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref); if (TREE_CODE (yyval.ttype) == CALL_EXPR @@ -5266,12 +5263,12 @@ case 278: yyval.ttype = require_complete_type (yyval.ttype); ; break;} -case 279: -#line 1429 "parse.y" +case 280: +#line 1430 "parse.y" { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ; break;} -case 280: -#line 1431 "parse.y" +case 281: +#line 1432 "parse.y" { /* If we get an OFFSET_REF, turn it into what it really means (e.g., a COMPONENT_REF). This way if we've got, say, a reference to a static member that's being operated @@ -5281,14 +5278,14 @@ case 280: yyval.ttype = resolve_offset_ref (yyval.ttype); yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ; break;} -case 281: -#line 1440 "parse.y" +case 282: +#line 1441 "parse.y" { if (TREE_CODE (yyval.ttype) == OFFSET_REF) yyval.ttype = resolve_offset_ref (yyval.ttype); yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ; break;} -case 282: -#line 1445 "parse.y" +case 283: +#line 1446 "parse.y" { if (current_class_ptr) { #ifdef WARNING_ABOUT_CCD @@ -5312,8 +5309,8 @@ case 282: } ; break;} -case 283: -#line 1468 "parse.y" +case 284: +#line 1469 "parse.y" { tree type; tree id = yyval.ttype; @@ -5358,46 +5355,46 @@ case 283: } ; break;} -case 285: -#line 1513 "parse.y" +case 286: +#line 1514 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("dynamic_cast", yyvsp[-4].ftype); yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ; break;} -case 286: -#line 1517 "parse.y" +case 287: +#line 1518 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("static_cast", yyvsp[-4].ftype); yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ; break;} -case 287: -#line 1521 "parse.y" +case 288: +#line 1522 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype); yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ; break;} -case 288: -#line 1525 "parse.y" +case 289: +#line 1526 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("const_cast", yyvsp[-4].ftype); yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ; break;} -case 289: -#line 1529 "parse.y" +case 290: +#line 1530 "parse.y" { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ; break;} -case 290: -#line 1531 "parse.y" +case 291: +#line 1532 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); check_for_new_type ("typeid", yyvsp[-1].ftype); yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ; break;} -case 291: -#line 1535 "parse.y" +case 292: +#line 1536 "parse.y" { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ; break;} -case 292: -#line 1537 "parse.y" +case 293: +#line 1538 "parse.y" { got_scope = NULL_TREE; if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) @@ -5406,58 +5403,58 @@ case 292: yyval.ttype = yyvsp[0].ttype; ; break;} -case 293: -#line 1545 "parse.y" +case 294: +#line 1546 "parse.y" { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ; break;} -case 294: -#line 1547 "parse.y" +case 295: +#line 1548 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE); else yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ; break;} -case 295: -#line 1552 "parse.y" +case 296: +#line 1553 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype), NULL_TREE, NULL_TREE); else yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ; break;} -case 296: -#line 1558 "parse.y" +case 297: +#line 1559 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} -case 297: -#line 1562 "parse.y" +case 298: +#line 1563 "parse.y" { yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, LOOKUP_NORMAL); ; break;} -case 298: -#line 1567 "parse.y" +case 299: +#line 1568 "parse.y" { yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE, LOOKUP_NORMAL); ; break;} -case 299: -#line 1572 "parse.y" +case 300: +#line 1573 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} -case 300: -#line 1574 "parse.y" +case 301: +#line 1575 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype)); else yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ; break;} -case 301: -#line 1579 "parse.y" +case 302: +#line 1580 "parse.y" { #if 0 /* This is a future direction of this code, but because @@ -5473,8 +5470,8 @@ case 301: #endif ; break;} -case 302: -#line 1594 "parse.y" +case 303: +#line 1595 "parse.y" { #if 0 /* This is a future direction of this code, but because @@ -5490,8 +5487,8 @@ case 302: #endif ; break;} -case 303: -#line 1609 "parse.y" +case 304: +#line 1610 "parse.y" { if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype))) { @@ -5503,8 +5500,8 @@ case 303: yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} -case 304: -#line 1620 "parse.y" +case 305: +#line 1621 "parse.y" { if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype))) { @@ -5516,8 +5513,8 @@ case 304: yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE); ; break;} -case 305: -#line 1632 "parse.y" +case 306: +#line 1633 "parse.y" { if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype) && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) @@ -5526,8 +5523,8 @@ case 305: yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype); ; break;} -case 306: -#line 1640 "parse.y" +case 307: +#line 1641 "parse.y" { if (yyvsp[-4].ttype != yyvsp[-1].ttype) cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype); @@ -5537,42 +5534,42 @@ case 306: yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype); ; break;} -case 307: -#line 1649 "parse.y" +case 308: +#line 1650 "parse.y" { yyval.ttype = error_mark_node; ; break;} -case 308: -#line 1694 "parse.y" +case 309: +#line 1695 "parse.y" { yyval.itype = 0; ; break;} -case 309: -#line 1696 "parse.y" +case 310: +#line 1697 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} -case 310: -#line 1701 "parse.y" +case 311: +#line 1702 "parse.y" { yyval.itype = 0; ; break;} -case 311: -#line 1703 "parse.y" +case 312: +#line 1704 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} -case 312: -#line 1708 "parse.y" +case 313: +#line 1709 "parse.y" { yyval.ttype = boolean_true_node; ; break;} -case 313: -#line 1710 "parse.y" +case 314: +#line 1711 "parse.y" { yyval.ttype = boolean_false_node; ; break;} -case 315: -#line 1717 "parse.y" +case 316: +#line 1718 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} -case 316: -#line 1722 "parse.y" +case 317: +#line 1723 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); @@ -5583,220 +5580,220 @@ case 316: keep_next_level (); ; break;} -case 317: -#line 1735 "parse.y" +case 318: +#line 1736 "parse.y" { got_object = TREE_TYPE (yyval.ttype); ; break;} -case 318: -#line 1737 "parse.y" +case 319: +#line 1738 "parse.y" { yyval.ttype = build_x_arrow (yyval.ttype); got_object = TREE_TYPE (yyval.ttype); ; break;} -case 319: -#line 1745 "parse.y" +case 320: +#line 1746 "parse.y" { resume_momentary (yyvsp[-1].itype); if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t))) note_got_semicolon (yyvsp[-2].ftype.t); ; break;} -case 320: -#line 1751 "parse.y" +case 321: +#line 1752 "parse.y" { resume_momentary (yyvsp[-1].itype); note_list_got_semicolon (yyvsp[-2].ftype.t); ; break;} -case 321: -#line 1756 "parse.y" +case 322: +#line 1757 "parse.y" { resume_momentary (yyvsp[-1].itype); ; break;} -case 322: -#line 1758 "parse.y" +case 323: +#line 1759 "parse.y" { shadow_tag (yyvsp[-1].ftype.t); note_list_got_semicolon (yyvsp[-1].ftype.t); ; break;} -case 323: -#line 1763 "parse.y" +case 324: +#line 1764 "parse.y" { warning ("empty declaration"); ; break;} -case 324: -#line 1765 "parse.y" +case 325: +#line 1766 "parse.y" { pedantic = yyvsp[-1].itype; ; break;} -case 327: -#line 1779 "parse.y" +case 328: +#line 1780 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (), NULL_TREE, NULL_TREE); ; break;} -case 328: -#line 1782 "parse.y" +case 329: +#line 1783 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE, NULL_TREE); ; break;} -case 329: -#line 1789 "parse.y" +case 330: +#line 1790 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 330: -#line 1792 "parse.y" +case 331: +#line 1793 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 331: -#line 1795 "parse.y" +case 332: +#line 1796 "parse.y" { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 332: -#line 1798 "parse.y" +case 333: +#line 1799 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 333: -#line 1801 "parse.y" +case 334: +#line 1802 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 336: -#line 1817 "parse.y" +case 337: +#line 1818 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 337: -#line 1820 "parse.y" +case 338: +#line 1821 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 338: -#line 1823 "parse.y" +case 339: +#line 1824 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} -case 339: -#line 1826 "parse.y" +case 340: +#line 1827 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 340: -#line 1829 "parse.y" +case 341: +#line 1830 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 341: -#line 1832 "parse.y" +case 342: +#line 1833 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} -case 342: -#line 1839 "parse.y" +case 343: +#line 1840 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyval.ttype)); yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; break;} -case 343: -#line 1844 "parse.y" +case 344: +#line 1845 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ; break;} -case 344: -#line 1846 "parse.y" +case 345: +#line 1847 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} -case 345: -#line 1851 "parse.y" +case 346: +#line 1852 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} -case 346: -#line 1853 "parse.y" +case 347: +#line 1854 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} -case 347: -#line 1863 "parse.y" +case 348: +#line 1864 "parse.y" { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ; break;} -case 348: -#line 1865 "parse.y" +case 349: +#line 1866 "parse.y" { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ; break;} -case 349: -#line 1867 "parse.y" +case 350: +#line 1868 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} -case 350: -#line 1870 "parse.y" +case 351: +#line 1871 "parse.y" { if (extra_warnings && TREE_STATIC (yyval.ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} -case 351: -#line 1876 "parse.y" +case 352: +#line 1877 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} -case 352: -#line 1878 "parse.y" +case 353: +#line 1879 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} -case 353: -#line 1889 "parse.y" +case 354: +#line 1890 "parse.y" { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 354: -#line 1892 "parse.y" +case 355: +#line 1893 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 355: -#line 1895 "parse.y" +case 356: +#line 1896 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 356: -#line 1898 "parse.y" +case 357: +#line 1899 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} -case 357: -#line 1904 "parse.y" +case 358: +#line 1905 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} -case 358: -#line 1906 "parse.y" +case 359: +#line 1907 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ; break;} -case 360: -#line 1916 "parse.y" -{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; - break;} case 361: -#line 1918 "parse.y" +#line 1917 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 362: -#line 1920 "parse.y" +#line 1919 "parse.y" +{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; + break;} +case 363: +#line 1921 "parse.y" { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; ; break;} -case 363: -#line 1923 "parse.y" +case 364: +#line 1924 "parse.y" { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; ; break;} -case 364: -#line 1926 "parse.y" +case 365: +#line 1927 "parse.y" { tree type = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; @@ -5812,8 +5809,8 @@ case 364: } ; break;} -case 365: -#line 1941 "parse.y" +case 366: +#line 1942 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; @@ -5829,24 +5826,24 @@ case 365: } ; break;} -case 366: -#line 1961 "parse.y" +case 367: +#line 1962 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} -case 367: -#line 1963 "parse.y" +case 368: +#line 1964 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} -case 375: -#line 1984 "parse.y" +case 376: +#line 1985 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 376: -#line 1986 "parse.y" +case 377: +#line 1987 "parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} -case 377: -#line 1991 "parse.y" +case 378: +#line 1992 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); if (current_declspecs @@ -5863,13 +5860,13 @@ case 377: yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ; break;} -case 378: -#line 2008 "parse.y" +case 379: +#line 2009 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); yyval.itype = yyvsp[-2].itype; ; break;} -case 379: -#line 2011 "parse.y" +case 380: +#line 2012 "parse.y" { tree d; split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs, &prefix_attributes); @@ -5888,36 +5885,36 @@ case 379: cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes); cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} -case 380: -#line 2032 "parse.y" +case 381: +#line 2033 "parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ; break;} -case 381: -#line 2036 "parse.y" +case 382: +#line 2037 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ; break;} -case 382: -#line 2038 "parse.y" +case 383: +#line 2039 "parse.y" { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} -case 383: -#line 2045 "parse.y" +case 384: +#line 2046 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ; break;} -case 384: -#line 2052 "parse.y" +case 385: +#line 2053 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); yyval.itype = yyvsp[-2].itype; ; break;} -case 385: -#line 2055 "parse.y" +case 386: +#line 2056 "parse.y" { tree d; split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs, &prefix_attributes); @@ -5926,21 +5923,21 @@ case 385: cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes); cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} -case 386: -#line 2066 "parse.y" +case 387: +#line 2067 "parse.y" { current_declspecs = NULL_TREE; prefix_attributes = NULL_TREE; yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ; break;} -case 387: -#line 2073 "parse.y" +case 388: +#line 2074 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); yyval.itype = yyvsp[-2].itype; ; break;} -case 388: -#line 2076 "parse.y" +case 389: +#line 2077 "parse.y" { tree d; current_declspecs = NULL_TREE; prefix_attributes = NULL_TREE; @@ -5949,121 +5946,121 @@ case 388: cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes); cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} -case 389: -#line 2089 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} case 390: -#line 2091 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; +#line 2090 "parse.y" +{ yyval.ttype = NULL_TREE; ; break;} case 391: -#line 2096 "parse.y" +#line 2092 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 392: -#line 2098 "parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; +#line 2097 "parse.y" +{ yyval.ttype = yyvsp[0].ttype; ; break;} case 393: -#line 2103 "parse.y" -{ yyval.ttype = yyvsp[-2].ttype; ; +#line 2099 "parse.y" +{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 394: -#line 2108 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; +#line 2104 "parse.y" +{ yyval.ttype = yyvsp[-2].ttype; ; break;} case 395: -#line 2110 "parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; +#line 2109 "parse.y" +{ yyval.ttype = yyvsp[0].ttype; ; break;} case 396: -#line 2115 "parse.y" -{ yyval.ttype = NULL_TREE; ; +#line 2111 "parse.y" +{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 397: -#line 2117 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; +#line 2116 "parse.y" +{ yyval.ttype = NULL_TREE; ; break;} case 398: -#line 2119 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; +#line 2118 "parse.y" +{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} case 399: -#line 2121 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; +#line 2120 "parse.y" +{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} case 400: -#line 2123 "parse.y" +#line 2122 "parse.y" +{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; + break;} +case 401: +#line 2124 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} -case 405: -#line 2139 "parse.y" +case 406: +#line 2140 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} -case 406: -#line 2141 "parse.y" +case 407: +#line 2142 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} -case 407: -#line 2146 "parse.y" +case 408: +#line 2147 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 408: -#line 2148 "parse.y" +case 409: +#line 2149 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 410: -#line 2156 "parse.y" +case 411: +#line 2157 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} -case 411: -#line 2159 "parse.y" +case 412: +#line 2160 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} -case 412: -#line 2162 "parse.y" +case 413: +#line 2163 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} -case 413: -#line 2165 "parse.y" +case 414: +#line 2166 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 414: -#line 2172 "parse.y" +case 415: +#line 2173 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} -case 415: -#line 2174 "parse.y" +case 416: +#line 2175 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} -case 416: -#line 2177 "parse.y" +case 417: +#line 2178 "parse.y" { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} -case 417: -#line 2179 "parse.y" +case 418: +#line 2180 "parse.y" { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; break;} -case 418: -#line 2181 "parse.y" +case 419: +#line 2182 "parse.y" { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ; break;} -case 419: -#line 2183 "parse.y" +case 420: +#line 2184 "parse.y" { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; break;} -case 420: -#line 2188 "parse.y" +case 421: +#line 2189 "parse.y" { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype), NULL_TREE, 1); reinit_parse_for_function (); ; break;} -case 421: -#line 2194 "parse.y" +case 422: +#line 2195 "parse.y" { int nested = (hack_decl_function_context (current_function_decl) != NULL_TREE); @@ -6071,87 +6068,87 @@ case 421: process_next_inline (yyvsp[-3].ttype); ; break;} -case 422: -#line 2201 "parse.y" +case 423: +#line 2202 "parse.y" { process_next_inline (yyvsp[-2].ttype); ; break;} -case 423: -#line 2203 "parse.y" +case 424: +#line 2204 "parse.y" { process_next_inline (yyvsp[-2].ttype); ; break;} -case 426: -#line 2215 "parse.y" +case 427: +#line 2216 "parse.y" { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} -case 427: -#line 2217 "parse.y" +case 428: +#line 2218 "parse.y" { replace_defarg (yyvsp[-2].ttype, error_mark_node); ; break;} -case 429: -#line 2222 "parse.y" -{ do_pending_defargs (); ; - break;} case 430: -#line 2224 "parse.y" +#line 2223 "parse.y" { do_pending_defargs (); ; break;} case 431: -#line 2229 "parse.y" +#line 2225 "parse.y" +{ do_pending_defargs (); ; + break;} +case 432: +#line 2230 "parse.y" { yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_enum (yyvsp[-1].ttype); ; break;} -case 432: -#line 2232 "parse.y" +case 433: +#line 2233 "parse.y" { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); yyval.ftype.new_type_flag = 1; resume_momentary ((int) yyvsp[-4].itype); check_for_missing_semicolon (yyvsp[-3].ttype); ; break;} -case 433: -#line 2237 "parse.y" +case 434: +#line 2238 "parse.y" { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE); yyval.ftype.new_type_flag = 1; check_for_missing_semicolon (yyval.ftype.t); ; break;} -case 434: -#line 2241 "parse.y" +case 435: +#line 2242 "parse.y" { yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_enum (make_anon_name ()); ; break;} -case 435: -#line 2244 "parse.y" +case 436: +#line 2245 "parse.y" { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); resume_momentary ((int) yyvsp[-5].itype); check_for_missing_semicolon (yyvsp[-3].ttype); yyval.ftype.new_type_flag = 1; ; break;} -case 436: -#line 2249 "parse.y" +case 437: +#line 2250 "parse.y" { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE); yyval.ftype.new_type_flag = 1; check_for_missing_semicolon (yyval.ftype.t); ; break;} -case 437: -#line 2253 "parse.y" +case 438: +#line 2254 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); yyval.ftype.new_type_flag = 0; ; break;} -case 438: -#line 2256 "parse.y" +case 439: +#line 2257 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); yyval.ftype.new_type_flag = 0; ; break;} -case 439: -#line 2259 "parse.y" +case 440: +#line 2260 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} -case 440: -#line 2263 "parse.y" +case 441: +#line 2264 "parse.y" { reset_specialization(); ; break;} -case 441: -#line 2265 "parse.y" +case 442: +#line 2266 "parse.y" { int semi; tree id; @@ -6186,16 +6183,16 @@ case 441: do_pending_defargs (); ; break;} -case 442: -#line 2299 "parse.y" +case 443: +#line 2300 "parse.y" { if (pending_inlines && current_scope () == current_function_decl) do_pending_inlines (); ; break;} -case 443: -#line 2305 "parse.y" +case 444: +#line 2306 "parse.y" { yyval.ftype.t = yyvsp[-3].ttype; yyval.ftype.new_type_flag = 1; @@ -6203,8 +6200,8 @@ case 443: clear_inline_text_obstack (); ; break;} -case 444: -#line 2312 "parse.y" +case 445: +#line 2313 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; @@ -6215,82 +6212,82 @@ case 444: yyval.ftype.t); ; break;} -case 448: -#line 2331 "parse.y" +case 449: +#line 2332 "parse.y" { if (pedantic && !in_system_header) pedwarn ("comma at end of enumerator list"); ; break;} -case 450: -#line 2338 "parse.y" -{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; - break;} case 451: -#line 2340 "parse.y" -{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; +#line 2339 "parse.y" +{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 452: -#line 2342 "parse.y" -{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; +#line 2341 "parse.y" +{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 453: -#line 2344 "parse.y" -{ error ("no body nor ';' separates two class, struct or union declarations"); ; +#line 2343 "parse.y" +{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 454: -#line 2349 "parse.y" -{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; +#line 2345 "parse.y" +{ error ("no body nor ';' separates two class, struct or union declarations"); ; break;} case 455: -#line 2354 "parse.y" +#line 2350 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 456: -#line 2359 "parse.y" +#line 2355 "parse.y" +{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; + break;} +case 457: +#line 2360 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 457: -#line 2364 "parse.y" +case 458: +#line 2365 "parse.y" { current_aggr = yyvsp[-3].ttype; yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 458: -#line 2369 "parse.y" +case 459: +#line 2370 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); ; break;} -case 459: -#line 2374 "parse.y" -{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; - break;} case 460: -#line 2376 "parse.y" +#line 2375 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 461: -#line 2381 "parse.y" -{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ; +#line 2377 "parse.y" +{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 462: -#line 2386 "parse.y" -{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ; +#line 2382 "parse.y" +{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ; break;} case 463: -#line 2389 "parse.y" +#line 2387 "parse.y" +{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ; + break;} +case 464: +#line 2390 "parse.y" { yyval.ttype = yyvsp[-1].ttype; if (yyvsp[0].ttype) xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 464: -#line 2395 "parse.y" +case 465: +#line 2396 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); if (TREE_INT_CST_LOW (current_aggr) == union_type @@ -6317,29 +6314,29 @@ case 464: } ; break;} -case 465: -#line 2424 "parse.y" +case 466: +#line 2425 "parse.y" { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0); yyungetc ('{', 1); ; break;} -case 468: -#line 2435 "parse.y" +case 469: +#line 2436 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 469: -#line 2437 "parse.y" +case 470: +#line 2438 "parse.y" { yyungetc(':', 1); yyval.ttype = NULL_TREE; ; break;} -case 470: -#line 2439 "parse.y" +case 471: +#line 2440 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 472: -#line 2445 "parse.y" +case 473: +#line 2446 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} -case 473: -#line 2450 "parse.y" +case 474: +#line 2451 "parse.y" { tree type = TREE_TYPE (yyvsp[0].ttype); if (! is_aggr_type (type, 1)) @@ -6365,8 +6362,8 @@ case 473: yyval.ttype = build_tree_list (access_default_node, type); ; break;} -case 474: -#line 2475 "parse.y" +case 475: +#line 2476 "parse.y" { tree type = TREE_TYPE (yyvsp[0].ttype); if (current_aggr == signature_type_node) @@ -6394,12 +6391,12 @@ case 474: yyval.ttype = build_tree_list (yyval.ttype, type); ; break;} -case 475: -#line 2505 "parse.y" +case 476: +#line 2506 "parse.y" { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ; break;} -case 477: -#line 2508 "parse.y" +case 478: +#line 2509 "parse.y" { if (current_aggr == signature_type_node) { @@ -6421,8 +6418,8 @@ case 477: } ; break;} -case 478: -#line 2529 "parse.y" +case 479: +#line 2530 "parse.y" { if (current_aggr == signature_type_node) { @@ -6444,14 +6441,14 @@ case 478: } ; break;} -case 480: -#line 2554 "parse.y" +case 481: +#line 2555 "parse.y" { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL]) sorry ("non-virtual access"); yyval.ttype = access_default_virtual_node; ; break;} -case 481: -#line 2558 "parse.y" +case 482: +#line 2559 "parse.y" { int err = 0; if (yyvsp[-1].ttype == access_protected_node) { @@ -6478,8 +6475,8 @@ case 481: } ; break;} -case 482: -#line 2584 "parse.y" +case 483: +#line 2585 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) sorry ("non-virtual access"); if (yyval.ttype == access_public_node) @@ -6487,8 +6484,8 @@ case 482: else if (yyval.ttype == access_private_node) yyval.ttype = access_private_virtual_node; ; break;} -case 483: -#line 2594 "parse.y" +case 484: +#line 2595 "parse.y" { tree t = yyvsp[-1].ttype; push_obstacks_nochange (); end_temporary_allocation (); @@ -6569,18 +6566,18 @@ case 483: #endif ; break;} -case 484: -#line 2677 "parse.y" +case 485: +#line 2678 "parse.y" { yyval.ttype = build_self_reference (); ; break;} -case 485: -#line 2684 "parse.y" +case 486: +#line 2685 "parse.y" { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ; break;} -case 486: -#line 2686 "parse.y" +case 487: +#line 2687 "parse.y" { if (current_aggr == signature_type_node) yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype); @@ -6589,8 +6586,8 @@ case 486: if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype); ; break;} -case 487: -#line 2694 "parse.y" +case 488: +#line 2695 "parse.y" { tree visspec = yyvsp[-2].ttype; @@ -6602,20 +6599,20 @@ case 487: yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype)); ; break;} -case 488: -#line 2705 "parse.y" +case 489: +#line 2706 "parse.y" { if (current_aggr == signature_type_node) error ("access specifier not allowed in signature"); ; break;} -case 489: -#line 2715 "parse.y" +case 490: +#line 2716 "parse.y" { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ; break;} -case 490: -#line 2718 "parse.y" +case 491: +#line 2719 "parse.y" { /* In pushdecl, we created a reverse list of names in this binding level. Make sure that the chain of what we're trying to add isn't the item itself @@ -6629,84 +6626,84 @@ case 490: } ; break;} -case 491: -#line 2734 "parse.y" +case 492: +#line 2735 "parse.y" { ; break;} -case 492: -#line 2736 "parse.y" +case 493: +#line 2737 "parse.y" { error ("missing ';' before right brace"); yyungetc ('}', 0); ; break;} -case 493: -#line 2741 "parse.y" -{ yyval.ttype = finish_method (yyval.ttype); ; - break;} case 494: -#line 2743 "parse.y" +#line 2742 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 495: -#line 2745 "parse.y" +#line 2744 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 496: -#line 2747 "parse.y" +#line 2746 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 497: -#line 2749 "parse.y" -{ yyval.ttype = NULL_TREE; ; +#line 2748 "parse.y" +{ yyval.ttype = finish_method (yyval.ttype); ; break;} case 498: -#line 2751 "parse.y" +#line 2750 "parse.y" +{ yyval.ttype = NULL_TREE; ; + break;} +case 499: +#line 2752 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} -case 499: -#line 2760 "parse.y" +case 500: +#line 2761 "parse.y" { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 500: -#line 2762 "parse.y" +case 501: +#line 2763 "parse.y" { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 501: -#line 2764 "parse.y" +case 502: +#line 2765 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} -case 502: -#line 2767 "parse.y" +case 503: +#line 2768 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} -case 503: -#line 2770 "parse.y" +case 504: +#line 2771 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} -case 504: -#line 2772 "parse.y" +case 505: +#line 2773 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 505: -#line 2783 "parse.y" +case 506: +#line 2784 "parse.y" { tree specs, attrs; split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs); yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, attrs)); ; break;} -case 506: -#line 2788 "parse.y" +case 507: +#line 2789 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} -case 507: -#line 2791 "parse.y" +case 508: +#line 2792 "parse.y" { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; break;} -case 508: -#line 2793 "parse.y" +case 509: +#line 2794 "parse.y" { if (yyvsp[-1].ttype) end_template_decl (); @@ -6728,12 +6725,12 @@ case 508: } ; break;} -case 509: -#line 2818 "parse.y" +case 510: +#line 2819 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 511: -#line 2821 "parse.y" +case 512: +#line 2822 "parse.y" { /* In this context, void_type_node encodes friends. They have been recorded elsewhere. */ @@ -6743,12 +6740,12 @@ case 511: yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} -case 512: -#line 2833 "parse.y" +case 513: +#line 2834 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 514: -#line 2836 "parse.y" +case 515: +#line 2837 "parse.y" { /* In this context, void_type_node encodes friends. They have been recorded elsewhere. */ @@ -6758,103 +6755,103 @@ case 514: yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} -case 519: -#line 2858 "parse.y" +case 520: +#line 2859 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} -case 520: -#line 2864 "parse.y" +case 521: +#line 2865 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} -case 521: -#line 2873 "parse.y" +case 522: +#line 2874 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} -case 522: -#line 2879 "parse.y" +case 523: +#line 2880 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} -case 523: -#line 2885 "parse.y" +case 524: +#line 2886 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} -case 524: -#line 2891 "parse.y" +case 525: +#line 2892 "parse.y" { split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-3].ttype = current_declspecs; yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} -case 525: -#line 2900 "parse.y" +case 526: +#line 2901 "parse.y" { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} -case 526: -#line 2903 "parse.y" +case 527: +#line 2904 "parse.y" { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} -case 527: -#line 2909 "parse.y" +case 528: +#line 2910 "parse.y" { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} -case 528: -#line 2912 "parse.y" +case 529: +#line 2913 "parse.y" { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} -case 529: -#line 2915 "parse.y" +case 530: +#line 2916 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} -case 531: -#line 2926 "parse.y" +case 532: +#line 2927 "parse.y" { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} -case 532: -#line 2931 "parse.y" +case 533: +#line 2932 "parse.y" { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ; break;} -case 533: -#line 2933 "parse.y" +case 534: +#line 2934 "parse.y" { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ; break;} -case 534: -#line 2939 "parse.y" +case 535: +#line 2940 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 535: -#line 2942 "parse.y" +case 536: +#line 2943 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 536: -#line 2947 "parse.y" +case 537: +#line 2948 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new"); @@ -6863,72 +6860,72 @@ case 536: yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag; ; break;} -case 537: -#line 2958 "parse.y" +case 538: +#line 2959 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 538: -#line 2960 "parse.y" +case 539: +#line 2961 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} -case 539: -#line 2965 "parse.y" +case 540: +#line 2966 "parse.y" { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} -case 540: -#line 2968 "parse.y" +case 541: +#line 2969 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 541: -#line 2977 "parse.y" -{ yyval.itype = suspend_momentary (); ; - break;} case 542: -#line 2982 "parse.y" -{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ; +#line 2978 "parse.y" +{ yyval.itype = suspend_momentary (); ; break;} case 543: -#line 2988 "parse.y" -{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; +#line 2983 "parse.y" +{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ; break;} case 544: -#line 2990 "parse.y" +#line 2989 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 545: -#line 2992 "parse.y" -{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ; +#line 2991 "parse.y" +{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 546: -#line 2994 "parse.y" -{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ; +#line 2993 "parse.y" +{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ; break;} case 547: -#line 3001 "parse.y" -{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; +#line 2995 "parse.y" +{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ; break;} case 548: -#line 3003 "parse.y" -{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; +#line 3002 "parse.y" +{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 549: -#line 3005 "parse.y" -{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; +#line 3004 "parse.y" +{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 550: -#line 3007 "parse.y" -{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; +#line 3006 "parse.y" +{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 551: -#line 3009 "parse.y" +#line 3008 "parse.y" +{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; + break;} +case 552: +#line 3010 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} -case 553: -#line 3017 "parse.y" +case 554: +#line 3018 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) { @@ -6946,8 +6943,8 @@ case 553: yyval.ttype = yyvsp[0].ttype; ; break;} -case 554: -#line 3034 "parse.y" +case 555: +#line 3035 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); @@ -6956,98 +6953,98 @@ case 554: got_scope = NULL_TREE; ; break;} -case 557: -#line 3047 "parse.y" +case 558: +#line 3048 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 558: -#line 3052 "parse.y" +case 559: +#line 3053 "parse.y" { yyval.ttype = get_type_decl (yyvsp[0].ttype); ; break;} -case 559: -#line 3057 "parse.y" +case 560: +#line 3058 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 560: -#line 3059 "parse.y" +case 561: +#line 3060 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} -case 561: -#line 3061 "parse.y" +case 562: +#line 3062 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} -case 562: -#line 3063 "parse.y" +case 563: +#line 3064 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} -case 563: -#line 3065 "parse.y" +case 564: +#line 3066 "parse.y" { push_nested_class (yyvsp[-1].ttype, 3); yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; break;} -case 565: -#line 3076 "parse.y" +case 566: +#line 3077 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 566: -#line 3078 "parse.y" +case 567: +#line 3079 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 567: -#line 3080 "parse.y" +case 568: +#line 3081 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} -case 568: -#line 3082 "parse.y" +case 569: +#line 3083 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} -case 569: -#line 3084 "parse.y" +case 570: +#line 3085 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} -case 571: -#line 3092 "parse.y" +case 572: +#line 3093 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 572: -#line 3094 "parse.y" +case 573: +#line 3095 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 573: -#line 3096 "parse.y" +case 574: +#line 3097 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} -case 574: -#line 3098 "parse.y" +case 575: +#line 3099 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} -case 575: -#line 3100 "parse.y" +case 576: +#line 3101 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} -case 577: -#line 3108 "parse.y" +case 578: +#line 3109 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 578: -#line 3110 "parse.y" +case 579: +#line 3111 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} -case 579: -#line 3112 "parse.y" +case 580: +#line 3113 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} -case 580: -#line 3114 "parse.y" +case 581: +#line 3115 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} -case 581: -#line 3116 "parse.y" +case 582: +#line 3117 "parse.y" { if (OP0 (yyval.ttype) != current_class_type) { push_nested_class (OP0 (yyval.ttype), 3); @@ -7055,8 +7052,8 @@ case 581: } ; break;} -case 582: -#line 3123 "parse.y" +case 583: +#line 3124 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); if (yyvsp[-1].ttype != current_class_type) @@ -7066,48 +7063,48 @@ case 582: } ; break;} -case 583: -#line 3135 "parse.y" +case 584: +#line 3136 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} -case 584: -#line 3138 "parse.y" +case 585: +#line 3139 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 585: -#line 3144 "parse.y" +case 586: +#line 3145 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} -case 586: -#line 3147 "parse.y" +case 587: +#line 3148 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 588: -#line 3154 "parse.y" +case 589: +#line 3155 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 589: -#line 3159 "parse.y" +case 590: +#line 3160 "parse.y" { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} -case 590: -#line 3161 "parse.y" +case 591: +#line 3162 "parse.y" { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} -case 591: -#line 3163 "parse.y" +case 592: +#line 3164 "parse.y" { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 596: -#line 3175 "parse.y" +case 597: +#line 3176 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 597: -#line 3182 "parse.y" +case 598: +#line 3183 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) { @@ -7122,32 +7119,32 @@ case 597: got_scope = yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} -case 598: -#line 3196 "parse.y" +case 599: +#line 3197 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} -case 599: -#line 3202 "parse.y" +case 600: +#line 3203 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype; ; break;} -case 600: -#line 3208 "parse.y" +case 601: +#line 3209 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; break;} -case 602: -#line 3224 "parse.y" +case 603: +#line 3225 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 603: -#line 3229 "parse.y" +case 604: +#line 3230 "parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); @@ -7157,15 +7154,15 @@ case 603: yyval.ttype = yyvsp[0].ttype; ; break;} -case 604: -#line 3241 "parse.y" +case 605: +#line 3242 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); ; break;} -case 605: -#line 3246 "parse.y" +case 606: +#line 3247 "parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); @@ -7175,36 +7172,36 @@ case 605: yyval.ttype = yyvsp[0].ttype; ; break;} -case 606: -#line 3258 "parse.y" +case 607: +#line 3259 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} -case 607: -#line 3264 "parse.y" +case 608: +#line 3265 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} -case 608: -#line 3270 "parse.y" +case 609: +#line 3271 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} -case 611: -#line 3274 "parse.y" +case 612: +#line 3275 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype; ; break;} -case 612: -#line 3283 "parse.y" +case 613: +#line 3284 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); @@ -7213,157 +7210,157 @@ case 612: got_scope = NULL_TREE; ; break;} -case 614: -#line 3292 "parse.y" +case 615: +#line 3293 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 615: -#line 3297 "parse.y" +case 616: +#line 3298 "parse.y" { got_scope = NULL_TREE; ; break;} -case 616: -#line 3299 "parse.y" +case 617: +#line 3300 "parse.y" { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; break;} -case 617: -#line 3306 "parse.y" +case 618: +#line 3307 "parse.y" { got_scope = void_type_node; ; break;} -case 618: -#line 3312 "parse.y" +case 619: +#line 3313 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 619: -#line 3314 "parse.y" +case 620: +#line 3315 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} -case 620: -#line 3316 "parse.y" +case 621: +#line 3317 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 621: -#line 3318 "parse.y" +case 622: +#line 3319 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} -case 622: -#line 3320 "parse.y" +case 623: +#line 3321 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} -case 623: -#line 3324 "parse.y" +case 624: +#line 3325 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} -case 625: -#line 3333 "parse.y" +case 626: +#line 3334 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} -case 626: -#line 3335 "parse.y" +case 627: +#line 3336 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} -case 627: -#line 3341 "parse.y" +case 628: +#line 3342 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 628: -#line 3343 "parse.y" +case 629: +#line 3344 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} -case 629: -#line 3345 "parse.y" +case 630: +#line 3346 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} -case 630: -#line 3347 "parse.y" +case 631: +#line 3348 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; break;} -case 631: -#line 3349 "parse.y" +case 632: +#line 3350 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} -case 632: -#line 3351 "parse.y" +case 633: +#line 3352 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} -case 633: -#line 3353 "parse.y" +case 634: +#line 3354 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} -case 634: -#line 3355 "parse.y" +case 635: +#line 3356 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; break;} -case 635: -#line 3357 "parse.y" +case 636: +#line 3358 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} -case 636: -#line 3361 "parse.y" +case 637: +#line 3362 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} -case 638: -#line 3370 "parse.y" +case 639: +#line 3371 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} -case 640: -#line 3374 "parse.y" -{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} case 641: -#line 3376 "parse.y" -{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; +#line 3375 "parse.y" +{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 642: -#line 3378 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; +#line 3377 "parse.y" +{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 643: -#line 3380 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; +#line 3379 "parse.y" +{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 644: -#line 3382 "parse.y" -{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; +#line 3381 "parse.y" +{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 645: -#line 3384 "parse.y" -{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; +#line 3383 "parse.y" +{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 646: -#line 3386 "parse.y" +#line 3385 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 647: -#line 3388 "parse.y" -{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; +#line 3387 "parse.y" +{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 648: -#line 3390 "parse.y" +#line 3389 "parse.y" +{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; + break;} +case 649: +#line 3391 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} -case 654: -#line 3414 "parse.y" +case 655: +#line 3415 "parse.y" { do_pushlevel (); ; break;} -case 655: -#line 3419 "parse.y" +case 656: +#line 3420 "parse.y" { yyval.ttype = do_poplevel (); ; break;} -case 657: -#line 3427 "parse.y" +case 658: +#line 3428 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids label declarations"); ; break;} -case 660: -#line 3438 "parse.y" +case 661: +#line 3439 "parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { @@ -7373,12 +7370,12 @@ case 660: } ; break;} -case 661: -#line 3452 "parse.y" +case 662: +#line 3453 "parse.y" {; break;} -case 663: -#line 3458 "parse.y" +case 664: +#line 3459 "parse.y" { if (processing_template_decl) { @@ -7387,8 +7384,8 @@ case 663: } ; break;} -case 664: -#line 3466 "parse.y" +case 665: +#line 3467 "parse.y" { if (processing_template_decl) { @@ -7399,8 +7396,8 @@ case 664: yyval.ttype = yyvsp[0].ttype; ; break;} -case 665: -#line 3479 "parse.y" +case 666: +#line 3480 "parse.y" { if (processing_template_decl) { @@ -7411,8 +7408,8 @@ case 665: cond_stmt_keyword = "if"; ; break;} -case 666: -#line 3489 "parse.y" +case 667: +#line 3490 "parse.y" { if (processing_template_decl) { @@ -7432,8 +7429,8 @@ case 666: } ; break;} -case 667: -#line 3508 "parse.y" +case 668: +#line 3509 "parse.y" { if (processing_template_decl) { @@ -7443,12 +7440,12 @@ case 667: } ; break;} -case 668: -#line 3520 "parse.y" +case 669: +#line 3521 "parse.y" { finish_stmt (); ; break;} -case 669: -#line 3522 "parse.y" +case 670: +#line 3523 "parse.y" { if (processing_template_decl) { @@ -7457,8 +7454,8 @@ case 669: } ; break;} -case 670: -#line 3530 "parse.y" +case 671: +#line 3531 "parse.y" { if (processing_template_decl) { @@ -7469,16 +7466,16 @@ case 670: yyval.ttype = yyvsp[0].ttype; ; break;} -case 671: -#line 3543 "parse.y" +case 672: +#line 3544 "parse.y" { finish_stmt (); ; break;} -case 673: -#line 3549 "parse.y" +case 674: +#line 3550 "parse.y" { finish_stmt (); ; break;} -case 674: -#line 3551 "parse.y" +case 675: +#line 3552 "parse.y" { tree expr = yyvsp[-1].ttype; if (! processing_template_decl) @@ -7495,12 +7492,12 @@ case 674: clear_momentary (); finish_stmt (); ; break;} -case 675: -#line 3567 "parse.y" +case 676: +#line 3568 "parse.y" { if (! processing_template_decl) expand_start_else (); ; break;} -case 676: -#line 3569 "parse.y" +case 677: +#line 3570 "parse.y" { if (processing_template_decl) { @@ -7512,18 +7509,18 @@ case 676: expand_end_cond (); ; break;} -case 677: -#line 3580 "parse.y" +case 678: +#line 3581 "parse.y" { finish_stmt (); ; break;} -case 678: -#line 3582 "parse.y" +case 679: +#line 3583 "parse.y" { if (! processing_template_decl) expand_end_cond (); do_poplevel (); finish_stmt (); ; break;} -case 679: -#line 3586 "parse.y" +case 680: +#line 3587 "parse.y" { if (processing_template_decl) { @@ -7539,8 +7536,8 @@ case 679: cond_stmt_keyword = "while"; ; break;} -case 680: -#line 3601 "parse.y" +case 681: +#line 3602 "parse.y" { if (processing_template_decl) { @@ -7560,8 +7557,8 @@ case 680: } ; break;} -case 681: -#line 3620 "parse.y" +case 682: +#line 3621 "parse.y" { if (processing_template_decl) { @@ -7574,8 +7571,8 @@ case 681: finish_stmt (); ; break;} -case 682: -#line 3632 "parse.y" +case 683: +#line 3633 "parse.y" { if (processing_template_decl) { @@ -7590,8 +7587,8 @@ case 682: } ; break;} -case 683: -#line 3646 "parse.y" +case 684: +#line 3647 "parse.y" { if (processing_template_decl) { @@ -7606,8 +7603,8 @@ case 683: } ; break;} -case 684: -#line 3660 "parse.y" +case 685: +#line 3661 "parse.y" { if (processing_template_decl) TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype; @@ -7621,8 +7618,8 @@ case 684: finish_stmt (); ; break;} -case 685: -#line 3673 "parse.y" +case 686: +#line 3674 "parse.y" { if (processing_template_decl) { yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, @@ -7642,8 +7639,8 @@ case 685: } ; break;} -case 686: -#line 3692 "parse.y" +case 687: +#line 3693 "parse.y" { if (processing_template_decl) { @@ -7662,8 +7659,8 @@ case 686: } ; break;} -case 687: -#line 3710 "parse.y" +case 688: +#line 3711 "parse.y" { if (processing_template_decl) { @@ -7683,16 +7680,16 @@ case 687: } ; break;} -case 688: -#line 3731 "parse.y" +case 689: +#line 3732 "parse.y" { if (processing_template_decl) TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype; push_momentary (); ; break;} -case 689: -#line 3737 "parse.y" +case 690: +#line 3738 "parse.y" { if (processing_template_decl) { @@ -7714,8 +7711,8 @@ case 689: } finish_stmt (); ; break;} -case 690: -#line 3758 "parse.y" +case 691: +#line 3759 "parse.y" { if (processing_template_decl) { @@ -7733,8 +7730,8 @@ case 690: push_momentary (); ; break;} -case 691: -#line 3775 "parse.y" +case 692: +#line 3776 "parse.y" { if (processing_template_decl) { @@ -7748,60 +7745,60 @@ case 691: pop_switch (); ; break;} -case 692: -#line 3788 "parse.y" +case 693: +#line 3789 "parse.y" { finish_stmt (); ; break;} -case 693: -#line 3790 "parse.y" +case 694: +#line 3791 "parse.y" { do_case (yyvsp[-1].ttype, NULL_TREE); ; break;} -case 695: -#line 3793 "parse.y" +case 696: +#line 3794 "parse.y" { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} -case 697: -#line 3796 "parse.y" +case 698: +#line 3797 "parse.y" { do_case (NULL_TREE, NULL_TREE); ; break;} -case 699: -#line 3799 "parse.y" +case 700: +#line 3800 "parse.y" { emit_line_note (input_filename, lineno); if (processing_template_decl) add_tree (build_min_nt (BREAK_STMT)); else if ( ! expand_exit_something ()) error ("break statement not within loop or switch"); ; break;} -case 700: -#line 3805 "parse.y" +case 701: +#line 3806 "parse.y" { emit_line_note (input_filename, lineno); if (processing_template_decl) add_tree (build_min_nt (CONTINUE_STMT)); else if (! expand_continue_loop (0)) error ("continue statement not within a loop"); ; break;} -case 701: -#line 3811 "parse.y" +case 702: +#line 3812 "parse.y" { emit_line_note (input_filename, lineno); c_expand_return (NULL_TREE); ; break;} -case 702: -#line 3814 "parse.y" +case 703: +#line 3815 "parse.y" { emit_line_note (input_filename, lineno); c_expand_return (yyvsp[-1].ttype); finish_stmt (); ; break;} -case 703: -#line 3819 "parse.y" +case 704: +#line 3820 "parse.y" { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); emit_line_note (input_filename, lineno); expand_asm (yyvsp[-2].ttype); finish_stmt (); ; break;} -case 704: -#line 3826 "parse.y" +case 705: +#line 3827 "parse.y" { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype); emit_line_note (input_filename, lineno); c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, @@ -7810,8 +7807,8 @@ case 704: finish_stmt (); ; break;} -case 705: -#line 3835 "parse.y" +case 706: +#line 3836 "parse.y" { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype); emit_line_note (input_filename, lineno); c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, @@ -7820,8 +7817,8 @@ case 705: finish_stmt (); ; break;} -case 706: -#line 3845 "parse.y" +case 707: +#line 3846 "parse.y" { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype); emit_line_note (input_filename, lineno); c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, @@ -7830,8 +7827,8 @@ case 706: finish_stmt (); ; break;} -case 707: -#line 3853 "parse.y" +case 708: +#line 3854 "parse.y" { if (processing_template_decl) add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype)); @@ -7840,8 +7837,8 @@ case 707: expand_computed_goto (yyvsp[-1].ttype); } ; break;} -case 708: -#line 3861 "parse.y" +case 709: +#line 3862 "parse.y" { if (processing_template_decl) add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype)); @@ -7855,34 +7852,34 @@ case 708: } ; break;} -case 709: -#line 3874 "parse.y" +case 710: +#line 3875 "parse.y" { finish_stmt (); ; break;} -case 710: -#line 3876 "parse.y" +case 711: +#line 3877 "parse.y" { error ("label must be followed by statement"); yyungetc ('}', 0); finish_stmt (); ; break;} -case 711: -#line 3880 "parse.y" +case 712: +#line 3881 "parse.y" { finish_stmt (); ; break;} -case 713: -#line 3886 "parse.y" +case 714: +#line 3887 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); expand_start_early_try_stmts (); ; break;} -case 714: -#line 3892 "parse.y" +case 715: +#line 3893 "parse.y" { expand_start_all_catch (); ; break;} -case 715: -#line 3894 "parse.y" +case 716: +#line 3895 "parse.y" { int nested = (hack_decl_function_context (current_function_decl) != NULL_TREE); @@ -7890,8 +7887,8 @@ case 715: finish_function (lineno, (int)yyvsp[-3].itype, nested); ; break;} -case 716: -#line 3904 "parse.y" +case 717: +#line 3905 "parse.y" { if (processing_template_decl) { @@ -7906,8 +7903,8 @@ case 716: } ; break;} -case 717: -#line 3918 "parse.y" +case 718: +#line 3919 "parse.y" { if (processing_template_decl) { @@ -7919,8 +7916,8 @@ case 717: expand_start_all_catch (); ; break;} -case 718: -#line 3929 "parse.y" +case 719: +#line 3930 "parse.y" { if (processing_template_decl) { @@ -7932,8 +7929,8 @@ case 718: expand_end_all_catch (); ; break;} -case 721: -#line 3948 "parse.y" +case 722: +#line 3949 "parse.y" { if (processing_template_decl) { @@ -7943,8 +7940,8 @@ case 721: } ; break;} -case 722: -#line 3957 "parse.y" +case 723: +#line 3958 "parse.y" { if (processing_template_decl) { @@ -7954,8 +7951,8 @@ case 722: } ; break;} -case 723: -#line 3966 "parse.y" +case 724: +#line 3967 "parse.y" { if (processing_template_decl) { @@ -7967,18 +7964,18 @@ case 723: expand_end_catch_block (); ; break;} -case 727: -#line 3986 "parse.y" +case 728: +#line 3987 "parse.y" { expand_start_catch_block (NULL_TREE, NULL_TREE); ; break;} -case 728: -#line 4002 "parse.y" +case 729: +#line 4003 "parse.y" { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t), TREE_VALUE (yyvsp[-1].ftype.t)); ; break;} -case 729: -#line 4009 "parse.y" +case 730: +#line 4010 "parse.y" { tree label; do_label: label = define_label (input_filename, lineno, yyvsp[-1].ttype); @@ -7986,130 +7983,130 @@ case 729: expand_label (label); ; break;} -case 730: -#line 4016 "parse.y" -{ goto do_label; ; - break;} case 731: -#line 4018 "parse.y" +#line 4017 "parse.y" { goto do_label; ; break;} case 732: -#line 4020 "parse.y" +#line 4019 "parse.y" { goto do_label; ; break;} case 733: -#line 4025 "parse.y" +#line 4021 "parse.y" +{ goto do_label; ; + break;} +case 734: +#line 4026 "parse.y" { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ; break;} -case 735: -#line 4028 "parse.y" +case 736: +#line 4029 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids compound statements inside for initializations"); ; break;} -case 736: -#line 4037 "parse.y" +case 737: +#line 4038 "parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} -case 737: -#line 4040 "parse.y" +case 738: +#line 4041 "parse.y" { emit_line_note (input_filename, lineno); ; break;} -case 738: -#line 4045 "parse.y" +case 739: +#line 4046 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 740: -#line 4048 "parse.y" +case 741: +#line 4049 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 741: -#line 4055 "parse.y" +case 742: +#line 4056 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 744: -#line 4062 "parse.y" +case 745: +#line 4063 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} -case 745: -#line 4067 "parse.y" +case 746: +#line 4068 "parse.y" { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ; break;} -case 746: -#line 4072 "parse.y" +case 747: +#line 4073 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ; break;} -case 747: -#line 4074 "parse.y" +case 748: +#line 4075 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} -case 748: -#line 4085 "parse.y" +case 749: +#line 4086 "parse.y" { yyval.ttype = empty_parms(); ; break;} -case 750: -#line 4090 "parse.y" +case 751: +#line 4091 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node); TREE_PARMLIST (yyval.ttype) = 1; check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; break;} -case 751: -#line 4099 "parse.y" +case 752: +#line 4100 "parse.y" { yyval.ttype = chainon (yyval.ttype, void_list_node); TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 752: -#line 4104 "parse.y" +case 753: +#line 4105 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 753: -#line 4109 "parse.y" +case 754: +#line 4110 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 754: -#line 4113 "parse.y" +case 755: +#line 4114 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 755: -#line 4118 "parse.y" +case 756: +#line 4119 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 756: -#line 4122 "parse.y" +case 757: +#line 4123 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 757: -#line 4126 "parse.y" +case 758: +#line 4127 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 758: -#line 4130 "parse.y" +case 759: +#line 4131 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); TREE_PARMLIST (yyval.ttype) = 1; ; break;} -case 759: -#line 4135 "parse.y" +case 760: +#line 4136 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right @@ -8121,8 +8118,8 @@ case 759: yychar = ')'; ; break;} -case 760: -#line 4146 "parse.y" +case 761: +#line 4147 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right @@ -8134,99 +8131,99 @@ case 760: yychar = ')'; ; break;} -case 761: -#line 4161 "parse.y" +case 762: +#line 4162 "parse.y" { maybe_snarf_defarg (); ; break;} -case 762: -#line 4163 "parse.y" +case 763: +#line 4164 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 765: -#line 4174 "parse.y" +case 766: +#line 4175 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} -case 766: -#line 4177 "parse.y" +case 767: +#line 4178 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; break;} -case 767: -#line 4180 "parse.y" +case 768: +#line 4181 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; break;} -case 768: -#line 4183 "parse.y" +case 769: +#line 4184 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} -case 769: -#line 4185 "parse.y" +case 770: +#line 4186 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; break;} -case 771: -#line 4191 "parse.y" +case 772: +#line 4192 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; break;} -case 772: -#line 4201 "parse.y" +case 773: +#line 4202 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ; break;} -case 773: -#line 4205 "parse.y" +case 774: +#line 4206 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 774: -#line 4208 "parse.y" +case 775: +#line 4209 "parse.y" { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 775: -#line 4211 "parse.y" +case 776: +#line 4212 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 776: -#line 4215 "parse.y" +case 777: +#line 4216 "parse.y" { tree specs = strip_attrs (yyvsp[0].ftype.t); yyval.ftype.t = build_tree_list (specs, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 777: -#line 4219 "parse.y" +case 778: +#line 4220 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ttype); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} -case 778: -#line 4226 "parse.y" +case 779: +#line 4227 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 779: -#line 4229 "parse.y" +case 780: +#line 4230 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 782: -#line 4240 "parse.y" +case 783: +#line 4241 "parse.y" { see_typename (); ; break;} -case 783: -#line 4245 "parse.y" +case 784: +#line 4246 "parse.y" { error ("type specifier omitted for parameter"); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); ; break;} -case 784: -#line 4250 "parse.y" +case 785: +#line 4251 "parse.y" { error ("type specifier omitted for parameter"); if (TREE_CODE (yyval.ttype) == SCOPE_REF @@ -8235,194 +8232,194 @@ case 784: yyval.ttype = build_tree_list (integer_type_node, yyval.ttype); ; break;} -case 785: -#line 4261 "parse.y" +case 786: +#line 4262 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 786: -#line 4263 "parse.y" +case 787: +#line 4264 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} -case 787: -#line 4265 "parse.y" +case 788: +#line 4266 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ; break;} -case 788: -#line 4270 "parse.y" +case 789: +#line 4271 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ; break;} -case 790: -#line 4276 "parse.y" +case 791: +#line 4277 "parse.y" { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} -case 791: -#line 4284 "parse.y" +case 792: +#line 4285 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 792: -#line 4286 "parse.y" +case 793: +#line 4287 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 793: -#line 4288 "parse.y" +case 794: +#line 4289 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 794: -#line 4290 "parse.y" +case 795: +#line 4291 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} -case 795: -#line 4297 "parse.y" -{ got_scope = NULL_TREE; ; - break;} case 796: -#line 4302 "parse.y" -{ yyval.ttype = ansi_opname[MULT_EXPR]; ; +#line 4298 "parse.y" +{ got_scope = NULL_TREE; ; break;} case 797: -#line 4304 "parse.y" -{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ; +#line 4303 "parse.y" +{ yyval.ttype = ansi_opname[MULT_EXPR]; ; break;} case 798: -#line 4306 "parse.y" -{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ; +#line 4305 "parse.y" +{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ; break;} case 799: -#line 4308 "parse.y" -{ yyval.ttype = ansi_opname[PLUS_EXPR]; ; +#line 4307 "parse.y" +{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ; break;} case 800: -#line 4310 "parse.y" -{ yyval.ttype = ansi_opname[MINUS_EXPR]; ; +#line 4309 "parse.y" +{ yyval.ttype = ansi_opname[PLUS_EXPR]; ; break;} case 801: -#line 4312 "parse.y" -{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ; +#line 4311 "parse.y" +{ yyval.ttype = ansi_opname[MINUS_EXPR]; ; break;} case 802: -#line 4314 "parse.y" -{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ; +#line 4313 "parse.y" +{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ; break;} case 803: -#line 4316 "parse.y" -{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ; +#line 4315 "parse.y" +{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ; break;} case 804: -#line 4318 "parse.y" -{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ; +#line 4317 "parse.y" +{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ; break;} case 805: -#line 4320 "parse.y" -{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ; +#line 4319 "parse.y" +{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ; break;} case 806: -#line 4322 "parse.y" -{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; +#line 4321 "parse.y" +{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ; break;} case 807: -#line 4324 "parse.y" -{ yyval.ttype = ansi_opname[LT_EXPR]; ; +#line 4323 "parse.y" +{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 808: -#line 4326 "parse.y" -{ yyval.ttype = ansi_opname[GT_EXPR]; ; +#line 4325 "parse.y" +{ yyval.ttype = ansi_opname[LT_EXPR]; ; break;} case 809: -#line 4328 "parse.y" -{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; +#line 4327 "parse.y" +{ yyval.ttype = ansi_opname[GT_EXPR]; ; break;} case 810: -#line 4330 "parse.y" -{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ; +#line 4329 "parse.y" +{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 811: -#line 4332 "parse.y" -{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ; +#line 4331 "parse.y" +{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ; break;} case 812: -#line 4334 "parse.y" -{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; +#line 4333 "parse.y" +{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ; break;} case 813: -#line 4336 "parse.y" +#line 4335 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 814: -#line 4338 "parse.y" -{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ; +#line 4337 "parse.y" +{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 815: -#line 4340 "parse.y" -{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ; +#line 4339 "parse.y" +{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ; break;} case 816: -#line 4342 "parse.y" -{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ; +#line 4341 "parse.y" +{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ; break;} case 817: -#line 4344 "parse.y" -{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ; +#line 4343 "parse.y" +{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ; break;} case 818: -#line 4346 "parse.y" -{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ; +#line 4345 "parse.y" +{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ; break;} case 819: -#line 4348 "parse.y" -{ yyval.ttype = ansi_opname[COND_EXPR]; ; +#line 4347 "parse.y" +{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ; break;} case 820: -#line 4350 "parse.y" -{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; +#line 4349 "parse.y" +{ yyval.ttype = ansi_opname[COND_EXPR]; ; break;} case 821: -#line 4352 "parse.y" -{ yyval.ttype = ansi_opname[COMPONENT_REF]; ; +#line 4351 "parse.y" +{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 822: -#line 4354 "parse.y" -{ yyval.ttype = ansi_opname[MEMBER_REF]; ; +#line 4353 "parse.y" +{ yyval.ttype = ansi_opname[COMPONENT_REF]; ; break;} case 823: -#line 4356 "parse.y" -{ yyval.ttype = ansi_opname[CALL_EXPR]; ; +#line 4355 "parse.y" +{ yyval.ttype = ansi_opname[MEMBER_REF]; ; break;} case 824: -#line 4358 "parse.y" -{ yyval.ttype = ansi_opname[ARRAY_REF]; ; +#line 4357 "parse.y" +{ yyval.ttype = ansi_opname[CALL_EXPR]; ; break;} case 825: -#line 4360 "parse.y" -{ yyval.ttype = ansi_opname[NEW_EXPR]; ; +#line 4359 "parse.y" +{ yyval.ttype = ansi_opname[ARRAY_REF]; ; break;} case 826: -#line 4362 "parse.y" -{ yyval.ttype = ansi_opname[DELETE_EXPR]; ; +#line 4361 "parse.y" +{ yyval.ttype = ansi_opname[NEW_EXPR]; ; break;} case 827: -#line 4364 "parse.y" -{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ; +#line 4363 "parse.y" +{ yyval.ttype = ansi_opname[DELETE_EXPR]; ; break;} case 828: -#line 4366 "parse.y" -{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ; +#line 4365 "parse.y" +{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ; break;} case 829: -#line 4369 "parse.y" -{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; +#line 4367 "parse.y" +{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ; break;} case 830: -#line 4371 "parse.y" +#line 4370 "parse.y" +{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; + break;} +case 831: +#line 4372 "parse.y" { yyval.ttype = ansi_opname[ERROR_MARK]; ; break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/usr/lib/bison.simple" +#line 498 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -8618,7 +8615,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 4374 "parse.y" +#line 4375 "parse.y" #ifdef SPEW_DEBUG diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 88778f66b90..2567127fd2f 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -1,5 +1,5 @@ /* Handle parameterized types (templates) for GNU C++. - Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc. + Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. Written by Ken Raeburn (raeburn@cygnus.com) while at Watchmaker Computing. Rewritten by Jason Merrill (jason@cygnus.com). @@ -150,7 +150,7 @@ is_member_template (t) if (TREE_CODE (t) != FUNCTION_DECL && !DECL_FUNCTION_TEMPLATE_P (t)) - /* Anything that isn't a template or a template functon is + /* Anything that isn't a template or a template function is certainly not a member template. */ return 0; @@ -509,7 +509,7 @@ check_explicit_specialization (declarator, decl, template_count, flags) return 0; } else if (pedantic || uses_template_parms (decl)) - pedwarn ("explicit specialization not preceeded by `template <>'"); + pedwarn ("explicit specialization not preceded by `template <>'"); } if (TREE_CODE (declarator) != TEMPLATE_ID_EXPR) @@ -3505,7 +3505,7 @@ overload_template_name (type) pushdecl_class_level (decl); } -/* Like type_unfication but designed specially to handle conversion +/* Like type_unification but designed specially to handle conversion operators. */ int @@ -4613,7 +4613,7 @@ instantiate_decl (d) setup_vtbl_ptr (); /* Always keep the BLOCK node associated with the outermost - pair of curley braces of a function. These are needed + pair of curly braces of a function. These are needed for correct operation of dwarfout.c. */ keep_next_level (); diff --git a/gcc/cp/repo.c b/gcc/cp/repo.c index d18730ccb1c..c1d756c91c2 100644 --- a/gcc/cp/repo.c +++ b/gcc/cp/repo.c @@ -1,5 +1,5 @@ /* Code to maintain a C++ template repository. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995, 1997 Free Software Foundation, Inc. Contributed by Jason Merrill (jason@cygnus.com) This file is part of GNU CC. @@ -41,7 +41,9 @@ Boston, MA 02111-1307, USA. */ extern char * getenv (); #endif +#ifdef NEED_DECLARATION_RINDEX extern char *rindex (); +#endif rindex extern char *getpwd PROTO((void)); static tree repo_get_id PROTO((tree)); diff --git a/gcc/cp/search.c b/gcc/cp/search.c index 03e00fa8898..4624ca99518 100644 --- a/gcc/cp/search.c +++ b/gcc/cp/search.c @@ -1,6 +1,6 @@ /* Breadth-first and depth-first routines for searching multiple-inheritance lattice for GNU C++. - Copyright (C) 1987, 89, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. + Copyright (C) 1987, 89, 92-96, 1997 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. @@ -3025,7 +3025,7 @@ expand_indirect_vtbls_init (binfo, true_exp, decl_ptr) /* Do all vtables from this virtual base. */ /* This assumes that virtual bases can never serve as parent - binfos. (in the CLASSTPE_VFIELD_PARENT sense) */ + binfos. (in the CLASSTYPE_VFIELD_PARENT sense) */ expand_direct_vtbls_init (vbases, TYPE_BINFO (BINFO_TYPE (vbases)), 1, 0, addr); diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 34bbf97016e..10e25178f3b 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -1,5 +1,5 @@ /* Build expressions with type checking for C++ compiler. - Copyright (C) 1987, 88, 89, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 89, 92-96, 1997 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. @@ -6243,7 +6243,7 @@ get_delta_difference (from, to, force) binfo = get_binfo (from, to, 1); if (binfo == error_mark_node) { - error (" in pointer to member function conversiona"); + error (" in pointer to member function conversion"); return delta; } if (binfo == 0) diff --git a/gcc/cp/xref.c b/gcc/cp/xref.c index 6269f17602e..40cdf42103f 100644 --- a/gcc/cp/xref.c +++ b/gcc/cp/xref.c @@ -1,5 +1,5 @@ /* Code for handling XREF output from GNU C++. - Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright (C) 1992, 1993, 1994, 1995, 1997 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. @@ -42,7 +42,9 @@ extern char *getpwd PROTO((void)); #include #endif +#ifdef NEED_DECLARATION_RINDEX extern char *rindex (); +#endif /* The character(s) used to join a directory specification (obtained with getwd or equivalent) with a non-absolute file name. */ diff --git a/gcc/cplus-dem.c b/gcc/cplus-dem.c index ed16c8680cd..8d47c6d9933 100644 --- a/gcc/cplus-dem.c +++ b/gcc/cplus-dem.c @@ -342,7 +342,7 @@ consume_count (type) } -/* Like consume_count, but for counts that are preceeded and followed +/* Like consume_count, but for counts that are preceded and followed by '_' if they are greater than 10. Also, -1 is returned for failure, since 0 can be a valid value. */ @@ -3136,6 +3136,15 @@ static struct option long_options[] = { {0, no_argument, 0, 0} }; +/* More 'friendly' abort that prints the line and file. + config.h can #define abort fancy_abort if you like that sort of thing. */ + +void +fancy_abort () +{ + fatal ("Internal gcc abort."); +} + int main (argc, argv) int argc; diff --git a/gcc/cpplib.c b/gcc/cpplib.c index e3feae9dce5..9cfd3ac6e46 100644 --- a/gcc/cpplib.c +++ b/gcc/cpplib.c @@ -16,79 +16,80 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - In other words, you are welcome to use, share and improve this program. - You are forbidden to forbid anyone else to use, share and improve - what you give them. Help stamp out software-hoarding! */ - -#ifdef EMACS -#define NO_SHORTNAMES -#include "../src/config.h" -#ifdef open -#undef open -#undef read -#undef write -#endif /* open */ -#endif /* EMACS */ - -/* The macro EMACS is defined when cpp is distributed as part of Emacs, - for the sake of machines with limited C compilers. */ -#ifndef EMACS -#include "config.h" -#endif /* not EMACS */ - -#ifndef STANDARD_INCLUDE_DIR -#define STANDARD_INCLUDE_DIR "/usr/include" -#endif - -#if 0 /* We can't get ptrdiff_t, so I arranged not to need PTR_INT_TYPE. */ -#ifdef __STDC__ -#define PTR_INT_TYPE ptrdiff_t -#else -#define PTR_INT_TYPE long -#endif -#endif /* 0 */ +Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "cpplib.h" -#include "cpphash.h" +#include "config.h" #ifndef STDC_VALUE #define STDC_VALUE 1 #endif -/* By default, colon separates directories in a path. */ -#ifndef PATH_SEPARATOR -#define PATH_SEPARATOR ':' -#endif - #include #include #include -#ifdef __STDC__ + +#ifdef HAVE_STDLIB_H #include #endif -#ifndef VMS -#ifndef USG -#include /* for __DATE__ and __TIME__ */ -#include +#ifdef TIME_WITH_SYS_TIME +# include +# include #else +# if HAVE_SYS_TIME_H +# include +# else +# include +#endif +#endif + +#ifdef HAVE_SYS_TIMES_H #include -#include -#include -#endif /* USG */ -#endif /* not VMS */ +#endif + +#ifdef HAVE_SYS_RESOURCE_H +# include +#endif + +#ifdef HAVE_FCNTL_H +# include +#endif #if HAVE_LIMITS_H # include #endif +#ifdef HAVE_STDLIB_H +# include +#endif + +#ifdef HAVE_STRING_H +# include +# else +# ifdef HAVE_STRINGS_H +# include +#endif +#endif + /* This defines "errno" properly for VMS, and gives us EACCES. */ #include +#include "cpplib.h" +#include "cpphash.h" +#include "gansidecl.h" + +#ifdef NEED_DECLARATION_INDEX extern char *index (); +#endif + +#ifdef NEED_DECLARATION_RINDEX extern char *rindex (); +#endif + +#ifdef NEED_DECLARATION_GETENV +extern char *getenv (); +#endif + extern char *update_path (); #ifndef O_RDONLY @@ -130,24 +131,14 @@ extern char *update_path (); #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #endif -/* Define a generic NULL if one hasn't already been defined. */ - -#ifndef NULL -#define NULL 0 -#endif - -#ifndef GENERIC_PTR -#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__) -#define GENERIC_PTR void * -#else -#define GENERIC_PTR char * -#endif +/* By default, colon separates directories in a path. */ +#ifndef PATH_SEPARATOR +#define PATH_SEPARATOR ':' #endif -#ifndef NULL_PTR -#define NULL_PTR ((GENERIC_PTR) 0) +#ifndef STANDARD_INCLUDE_DIR +#define STANDARD_INCLUDE_DIR "/usr/include" #endif - #ifndef INCLUDE_LEN_FUDGE #define INCLUDE_LEN_FUDGE 0 #endif @@ -290,7 +281,6 @@ static int compare_token_lists (); static HOST_WIDE_INT eval_if_expression (); static int change_newlines (); extern int hashf (); -static int file_size_and_mode (); static struct arglist *read_token_list (); static void free_token_list (); static int safe_read (); @@ -311,7 +301,6 @@ enum file_change_code {same_file, enter_file, leave_file}; extern HOST_WIDE_INT cpp_parse_expr PARAMS ((cpp_reader *)); -extern char *getenv (); extern FILE *fdopen (); extern char *version_string; extern struct tm *localtime (); @@ -810,6 +799,7 @@ cpp_options_init (opts) opts->print_include_names = 0; opts->dump_macros = dump_none; opts->no_output = 0; + opts->remap = 0; opts->cplusplus = 0; opts->cplusplus_comments = 0; @@ -4727,8 +4717,8 @@ cpp_get_token (pfile) } /* OK, now bring us back to the state we were in before we entered - this branch. We need #line b/c the newline for the pragma - could fuck things up. */ + this branch. We need #line because the newline for the pragma + could mess things up. */ output_line_command (pfile, 0, same_file); *(obp++) = ' '; /* just in case, if comments are copied thru */ *(obp++) = '/'; @@ -5522,65 +5512,68 @@ open_include_file (pfile, filename, searchptr) char *filename; struct file_name_list *searchptr; { - register struct file_name_map *map; - register char *from; - char *p, *dir; - - if (searchptr && ! searchptr->got_name_map) + if (CPP_OPTIONS (pfile)->remap) { - searchptr->name_map = read_name_map (pfile, - searchptr->fname - ? searchptr->fname : "."); - searchptr->got_name_map = 1; - } + register struct file_name_map *map; + register char *from; + char *p, *dir; - /* First check the mapping for the directory we are using. */ - if (searchptr && searchptr->name_map) - { - from = filename; - if (searchptr->fname) - from += strlen (searchptr->fname) + 1; - for (map = searchptr->name_map; map; map = map->map_next) + if (searchptr && ! searchptr->got_name_map) + { + searchptr->name_map = read_name_map (pfile, + searchptr->fname + ? searchptr->fname : "."); + searchptr->got_name_map = 1; + } + + /* First check the mapping for the directory we are using. */ + if (searchptr && searchptr->name_map) { - if (! strcmp (map->map_from, from)) + from = filename; + if (searchptr->fname) + from += strlen (searchptr->fname) + 1; + for (map = searchptr->name_map; map; map = map->map_next) { - /* Found a match. */ - return open (map->map_to, O_RDONLY, 0666); + if (! strcmp (map->map_from, from)) + { + /* Found a match. */ + return open (map->map_to, O_RDONLY, 0666); + } } } - } - /* Try to find a mapping file for the particular directory we are - looking in. Thus #include will look up sys/types.h - in /usr/include/header.gcc and look up types.h in - /usr/include/sys/header.gcc. */ - p = rindex (filename, '/'); - if (! p) - p = filename; - if (searchptr - && searchptr->fname - && strlen (searchptr->fname) == p - filename - && ! strncmp (searchptr->fname, filename, p - filename)) - { - /* FILENAME is in SEARCHPTR, which we've already checked. */ - return open (filename, O_RDONLY, 0666); - } + /* Try to find a mapping file for the particular directory we are + looking in. Thus #include will look up sys/types.h + in /usr/include/header.gcc and look up types.h in + /usr/include/sys/header.gcc. */ + p = rindex (filename, '/'); + if (! p) + p = filename; + if (searchptr + && searchptr->fname + && strlen (searchptr->fname) == p - filename + && ! strncmp (searchptr->fname, filename, p - filename)) + { + /* FILENAME is in SEARCHPTR, which we've already checked. */ + return open (filename, O_RDONLY, 0666); + } - if (p == filename) - { - dir = "."; - from = filename; - } - else - { - dir = (char *) alloca (p - filename + 1); - bcopy (filename, dir, p - filename); - dir[p - filename] = '\0'; - from = p + 1; + if (p == filename) + { + dir = "."; + from = filename; + } + else + { + dir = (char *) alloca (p - filename + 1); + bcopy (filename, dir, p - filename); + dir[p - filename] = '\0'; + from = p + 1; + } + for (map = read_name_map (pfile, dir); map; map = map->map_next) + if (! strcmp (map->map_from, from)) + return open (map->map_to, O_RDONLY, 0666); } - for (map = read_name_map (pfile, dir); map; map = map->map_next) - if (! strcmp (map->map_from, from)) - return open (map->map_to, O_RDONLY, 0666); return open (filename, O_RDONLY, 0666); } @@ -5604,14 +5597,14 @@ finclude (pfile, f, fname, system_header_p, dirptr) int system_header_p; struct file_name_list *dirptr; { - int st_mode; - long st_size; + struct stat st; + size_t st_size; long i; int length; cpp_buffer *fp; /* For input stack frame */ int missing_newline = 0; - if (file_size_and_mode (f, &st_mode, &st_size) < 0) + if (fstat (f, &st) < 0) { cpp_perror_with_name (pfile, fname); close (f); @@ -5630,7 +5623,13 @@ finclude (pfile, f, fname, system_header_p, dirptr) fp->colno = 1; fp->cleanup = file_cleanup; - if (S_ISREG (st_mode)) { + if (S_ISREG (st.st_mode)) { + st_size = (size_t) st.st_size; + if (st_size != st.st_size || st_size + 2 < st_size) { + cpp_error (pfile, "file `%s' too large", fname); + close (f); + return 0; + } fp->buf = (U_CHAR *) xmalloc (st_size + 2); fp->alimit = fp->buf + st_size + 2; fp->cur = fp->buf; @@ -5641,7 +5640,7 @@ finclude (pfile, f, fname, system_header_p, dirptr) fp->rlimit = fp->buf + length; if (length < 0) goto nope; } - else if (S_ISDIR (st_mode)) { + else if (S_ISDIR (st.st_mode)) { cpp_error (pfile, "directory `%s' specified in #include", fname); close (f); return 0; @@ -5719,7 +5718,7 @@ finclude (pfile, f, fname, system_header_p, dirptr) /* This is called after options have been processed. * Check options for consistency, and setup for processing input * from the file named FNAME. (Use standard input if FNAME==NULL.) - * Return 1 on succes, 0 on failure. + * Return 1 on success, 0 on failure. */ int @@ -6747,6 +6746,11 @@ cpp_handle_options (pfile, argc, argv) #endif break; + case 'r': + if (!strcmp (argv[i], "-remap")) + opts->remap = 1; + break; + case 'u': /* Sun compiler passes undocumented switch "-undef". Let's assume it means to inhibit the predefined symbols. */ @@ -7207,23 +7211,6 @@ free_token_list (tokens) } } -/* Get the file-mode and data size of the file open on FD - and store them in *MODE_POINTER and *SIZE_POINTER. */ - -static int -file_size_and_mode (fd, mode_pointer, size_pointer) - int fd; - int *mode_pointer; - long int *size_pointer; -{ - struct stat sbuf; - - if (fstat (fd, &sbuf) < 0) return (-1); - if (mode_pointer) *mode_pointer = sbuf.st_mode; - if (size_pointer) *size_pointer = sbuf.st_size; - return 0; -} - /* Read LEN bytes at PTR from descriptor DESC, for file FILENAME, retrying if necessary. If MAX_READ_LEN is defined, read at most that bytes at a time. Return a negative value if an error occurs, diff --git a/gcc/crtstuff.c b/gcc/crtstuff.c index c120862139a..bccf51d174e 100644 --- a/gcc/crtstuff.c +++ b/gcc/crtstuff.c @@ -1,6 +1,6 @@ /* Specialized bits of code needed to support construction and destruction of file-scope objects in C++ code. - Copyright (C) 1991, 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1991, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@monkeys.com). This file is part of GNU CC. @@ -53,6 +53,8 @@ Boston, MA 02111-1307, USA. */ #include "tm.h" #include "defaults.h" +#include +#include "frame.h" /* Provide default definitions for the pseudo-ops used to switch to the .ctors and .dtors sections. @@ -167,7 +169,8 @@ fini_dummy () static void frame_dummy () { - __register_frame (__EH_FRAME_BEGIN__); + static struct object object; + __register_frame (__EH_FRAME_BEGIN__, &object); } static void @@ -329,7 +332,7 @@ init_dummy () #endif asm (TEXT_SECTION_ASM_OP); -/* This is a kludge. The i386 Linux dynamic linker needs ___brk_addr, +/* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr, __environ and atexit (). We have to make sure they are in the .dynsym section. We accomplish it by making a dummy call here. This code is never reached. */ diff --git a/gcc/cse.c b/gcc/cse.c index 593d075b689..9b1ffe11dd5 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -30,6 +30,7 @@ Boston, MA 02111-1307, USA. */ #include "real.h" #include "insn-config.h" #include "recog.h" +#include "expr.h" #include @@ -3390,6 +3391,10 @@ simplify_binary_operation (code, mode, op0, op1) f1 = real_value_truncate (mode, f1); #ifdef REAL_ARITHMETIC +#ifndef REAL_INFINITY + if (code == DIV && REAL_VALUES_EQUAL (f1, dconst0)) + return 0; +#endif REAL_ARITHMETIC (value, rtx_to_tree_code (code), f0, f1); #else switch (code) @@ -4769,6 +4774,10 @@ fold_rtx (x, insn) since they are used only for lists of args in a function call's REG_EQUAL note. */ case EXPR_LIST: + /* Changing anything inside an ADDRESSOF is incorrect; we don't + want to (e.g.,) make (addressof (const_int 0)) just because + the location is known to be zero. */ + case ADDRESSOF: return x; #ifdef HAVE_cc0 @@ -5019,7 +5028,7 @@ fold_rtx (x, insn) && GET_CODE (XEXP (addr, 1)) == SYMBOL_REF) base = XEXP (addr, 1); else if (GET_CODE (addr) == ADDRESSOF) - XEXP (x, 0) = addr; + return change_address (x, VOIDmode, addr); /* If this is a constant pool reference, we can fold it into its constant to allow better value tracking. */ @@ -6410,7 +6419,7 @@ cse_insn (insn, in_libcall_block) a pseudo that is set more than once, do not record SRC. Using SRC as a replacement for anything else will be incorrect in that situation. Note that this usually occurs only for stack slots, - in which case all the RTL would be refering to SRC, so we don't + in which case all the RTL would be referring to SRC, so we don't lose any optimization opportunities by not having SRC in the hash table. */ diff --git a/gcc/dwarf2.h b/gcc/dwarf2.h index b4c972192ac..db19904802c 100644 --- a/gcc/dwarf2.h +++ b/gcc/dwarf2.h @@ -444,8 +444,8 @@ enum dwarf_inline_attribute DW_INL_declared_inlined = 3 }; -/* descriminant lists */ -enum dwarf_descrim_list +/* discriminant lists */ +enum dwarf_discrim_list { DW_DSC_label = 0, DW_DSC_range = 1 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 1b4a539d39d..cb16ac48b95 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -254,7 +254,7 @@ static unsigned reg_number PROTO((rtx)); /* Definitions of defaults for various types of primitive assembly language output operations. These may be overridden from within the tm.h file, - but typically, that is unecessary. */ + but typically, that is unnecessary. */ #ifndef ASM_OUTPUT_SECTION #define ASM_OUTPUT_SECTION(FILE, SECTION) \ @@ -1564,7 +1564,7 @@ output_call_frame_info (for_eh) /* We're going to be generating comments, so turn on app. */ if (flag_debug_asm) app_enable (); - + if (for_eh) { #ifdef EH_FRAME_SECTION @@ -1929,7 +1929,7 @@ typedef struct dw_fp_struct dw_float_const; /* Each entry in the line_info_table maintains the file and - line nuber associated with the label generated for that + line number associated with the label generated for that entry. The label gives the PC value associated with the line number entry. */ @@ -1950,7 +1950,7 @@ typedef struct dw_separate_line_info_struct } dw_separate_line_info_entry; -/* The dw_val_node describes an attibute's value, as it is +/* The dw_val_node describes an attribute's value, as it is represented internally. */ typedef struct dw_val_struct @@ -2143,7 +2143,7 @@ static unsigned next_block_number = 2; /* A pointer to the base of a table of references to DIE's that describe declarations. The table is indexed by DECL_UID() which is a unique - number, indentifying each decl. */ + number identifying each decl. */ static dw_die_ref *decl_die_table; /* Number of elements currently allocated for the decl_die_table. */ @@ -2166,7 +2166,7 @@ static tree *decl_scope_table; /* Number of elements currently allocated for the decl_scope_table. */ static unsigned decl_scope_table_allocated; -/* Current level of nesting of declataion scopes. */ +/* Current level of nesting of declaration scopes. */ static unsigned decl_scope_depth; /* Size (in elements) of increments by which we may expand the @@ -2312,7 +2312,7 @@ static void add_AT_addr PROTO((dw_die_ref, enum dwarf_attribute, char *)); static void add_AT_lbl_id PROTO((dw_die_ref, enum dwarf_attribute, char *)); -static void add_AT_setion_offset PROTO((dw_die_ref, +static void add_AT_section_offset PROTO((dw_die_ref, enum dwarf_attribute, char *)); static int is_extern_subr_die PROTO((dw_die_ref)); static dw_attr_ref get_AT PROTO((dw_die_ref, @@ -2343,7 +2343,7 @@ static void add_loc_descr PROTO((dw_loc_descr_ref *, static void print_spaces PROTO((FILE *)); static void print_die PROTO((dw_die_ref, FILE *)); static void print_dwarf_line_table PROTO((FILE *)); -static void add_sibling_atttributes PROTO((dw_die_ref)); +static void add_sibling_attributes PROTO((dw_die_ref)); static void build_abbrev_table PROTO((dw_die_ref)); static unsigned long size_of_string PROTO((char *)); static unsigned long size_of_loc_descr PROTO((dw_loc_descr_ref)); @@ -2470,7 +2470,7 @@ static unsigned lookup_filename PROTO((char *)); #define STR_SECTION ".debug_str" #endif -/* Standerd ELF section names for compiled code and data. */ +/* Standard ELF section names for compiled code and data. */ #ifndef TEXT_SECTION #define TEXT_SECTION ".text" #endif @@ -2681,7 +2681,7 @@ addr_to_string (x) return xstrdup (buf); } -/* Test if rtl node points to a psuedo register. */ +/* Test if rtl node points to a pseudo register. */ static inline int is_pseudo_reg (rtl) @@ -4120,7 +4120,7 @@ print_spaces (outfile) fprintf (outfile, "%*s", print_indent, ""); } -/* Print the information assoaciated with a given DIE, and its children. +/* Print the information associated with a given DIE, and its children. This routine is a debugging aid only. */ static void @@ -4569,10 +4569,10 @@ size_of_die (die) return size; } -/* Size the debgging information associted with a given DIE. +/* Size the debugging information associated with a given DIE. Visits the DIE's children recursively. Updates the global variable next_die_offset, on each time through. Uses the - current value of next_die_offset to updete the die_offset + current value of next_die_offset to update the die_offset field in each DIE. */ static void @@ -4802,7 +4802,7 @@ size_of_pubnames () return size; } -/* Return the size of the information in the .debug_aranges seciton. */ +/* Return the size of the information in the .debug_aranges section. */ static unsigned long size_of_aranges () @@ -6423,7 +6423,7 @@ mem_loc_descriptor (rtl) return mem_loc_result; } -/* Return a descriptor that describes the concatination of two locations. +/* Return a descriptor that describes the concatenation of two locations. This is typically a complex variable. */ static dw_loc_descr_ref @@ -6940,7 +6940,7 @@ add_location_or_const_value_attribute (die, decl) get valid non-NULL DECL_INCOMING_RTL values, but integrate.c doesn't currently generate these values for inlined instances of inline function parameters, so when we see such cases, we are - just SOL (shit-out-of-luck) for the time being (until integrate.c + just out-of-luck for the time being (until integrate.c gets fixed). */ /* Use DECL_RTL as the "location" unless we find something better. */ @@ -7567,7 +7567,7 @@ decl_start_label (decl) return fnname; } -/* These routines generate the internnal representation of the DIE's for +/* These routines generate the internal representation of the DIE's for the compilation unit. Debugging information is collected by walking the declaration trees passed in from dwarf2out_decl(). */ @@ -8562,7 +8562,7 @@ gen_inheritance_die (binfo, context_die) add_AT_unsigned (die, DW_AT_accessibility, DW_ACCESS_protected); } -/* Genearate a DIE for a class member. */ +/* Generate a DIE for a class member. */ static void gen_member_die (type, context_die) @@ -8768,6 +8768,13 @@ gen_type_die (type, context_die) case POINTER_TYPE: case REFERENCE_TYPE: + /* We must set TREE_ASM_WRITTEN in case this is a recursive type. This + ensures that the gen_type_die recursion will terminate even if the + type is recursive. Recursive types are possible in Ada. */ + /* ??? We could perhaps do this for all types before the switch + statement. */ + TREE_ASM_WRITTEN (type) = 1; + /* For these types, all that is required is that we output a DIE (or a set of DIEs) to represent the "basis" type. */ gen_type_die (TREE_TYPE (type), context_die); @@ -9242,11 +9249,11 @@ dwarf2out_decl (decl) /* What we would really like to do here is to filter out all mere file-scope declarations of file-scope functions which are never referenced later within this translation unit (and keep all of ones - that *are* referenced later on) but we aren't clarvoiant, so we have + that *are* referenced later on) but we aren't clairvoyant, so we have no idea which functions will be referenced in the future (i.e. later on within the current translation unit). So here we just ignore all file-scope function declarations which are not also definitions. If - and when the debugger needs to know something about these funcstion, + and when the debugger needs to know something about these functions, it wil have to hunt around and find the DWARF information associated with the definition of the function. Note that we can't just check `DECL_EXTERNAL' to find out which FUNCTION_DECL nodes represent diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c index 77248f6d436..d7eef70444c 100644 --- a/gcc/dwarfout.c +++ b/gcc/dwarfout.c @@ -46,10 +46,27 @@ extern time_t time (); #endif /* !defined(POSIX) */ #endif /* defined(DWARF_TIMESTAMPS) */ +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif + extern char *getpwd (); +#ifdef NEED_DECLARATION_INDEX extern char *index (); +#endif + +#ifdef NEED_DECLARATION_RINDEX extern char *rindex (); +#endif /* IMPORTANT NOTE: Please see the file README.DWARF for important details regarding the GNU implementation of Dwarf. */ @@ -354,7 +371,7 @@ static inline void low_pc_attribute PROTO((char *)); static inline void high_pc_attribute PROTO((char *)); static inline void body_begin_attribute PROTO((char *)); static inline void body_end_attribute PROTO((char *)); -static inline void langauge_attribute PROTO((unsigned)); +static inline void language_attribute PROTO((unsigned)); static inline void member_attribute PROTO((tree)); static inline void string_length_attribute PROTO((tree)); static inline void comp_dir_attribute PROTO((char *)); @@ -414,7 +431,7 @@ static void output_block PROTO((tree, int)); static void output_decls_for_scope PROTO((tree, int)); static void output_decl PROTO((tree, tree)); static void shuffle_filename_entry PROTO((filename_entry *)); -static void geneate_new_sfname_entry PROTO((void)); +static void generate_new_sfname_entry PROTO((void)); static unsigned lookup_filename PROTO((char *)); static void generate_srcinfo_entry PROTO((unsigned, unsigned)); static void generate_macinfo_entry PROTO((char *, char *)); @@ -2364,7 +2381,7 @@ location_or_const_value_attribute (decl) shouldn't be happening. All PARM_DECL nodes should get valid non-NULL DECL_INCOMING_RTL values, but integrate.c doesn't currently generate these values for inlined instances of inline function parameters, so - when we see such cases, we are just SOL (shit-out-of-luck) for the time + when we see such cases, we are just out-of-luck for the time being (until integrate.c gets fixed). */ diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 2204cec03c3..941c9d089af 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -258,6 +258,10 @@ extern int rtx_equal_function_value_matters; whether we actually emitted it or not. */ extern char *emit_filename; extern int emit_lineno; + +static rtx make_jump_insn_raw PROTO((rtx)); +static rtx make_call_insn_raw PROTO((rtx)); +static rtx find_line_node PROTO((rtx)); /* rtx gen_rtx (code, mode, [element1, ..., elementn]) ** diff --git a/gcc/except.c b/gcc/except.c index 0e9e8142ce5..a39d8e5544c 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -23,7 +23,7 @@ Boston, MA 02111-1307, USA. */ /* An exception is an event that can be signaled from within a function. This event can then be "caught" or "trapped" by the callers of this function. This potentially allows program flow to - be transferred to any arbitrary code assocated with a function call + be transferred to any arbitrary code associated with a function call several levels up the stack. The intended use for this mechanism is for signaling "exceptional @@ -71,7 +71,7 @@ Boston, MA 02111-1307, USA. */ perform tasks such as destruction of objects allocated on the stack. - In the current implementaion, cleanups are handled by allocating an + In the current implementation, cleanups are handled by allocating an exception region for the area that the cleanup is designated for, and the handler for the region performs the cleanup and then rethrows the exception to the outer exception region. From the @@ -279,7 +279,7 @@ Boston, MA 02111-1307, USA. */ when the unwinder isn't needed. __unwind_function is used as an action of last resort. If no other method can be used for unwinding, __unwind_function is used. If it cannot unwind, it - should call __teminate. + should call __terminate. By default, if the target-specific backend doesn't supply a definition for __unwind_function and doesn't support DWARF2_UNWIND_INFO, inlined @@ -377,7 +377,7 @@ Boston, MA 02111-1307, USA. */ for all the machine specific details. There is no variable context of a throw, just the one implied by the dynamic handler stack pointed to by the dynamic handler chain. There is no exception - table, and no calls to __register_excetpions. __sjthrow is used + table, and no calls to __register_exceptions. __sjthrow is used instead of __throw, and it works by using the dynamic handler chain, and longjmp. -fasynchronous-exceptions has no effect, as the elimination of trivial exception regions is not yet performed. @@ -443,7 +443,7 @@ rtx current_function_dhc; rtx current_function_dcc; -/* A stack used for keeping track of the currectly active exception +/* A stack used for keeping track of the currently active exception handling region. As each exception region is started, an entry describing the region is pushed onto this stack. The current region can be found by looking at the top of the stack, and as we @@ -487,6 +487,11 @@ static tree protect_list; struct label_node *caught_return_label_stack = NULL; +/* Keeps track of the label used as the context of a throw to rethrow an + exception to the outer exception region. */ + +struct label_node *outer_context_label_stack = NULL; + /* A random data area for the front end's own use. */ struct label_node *false_label_stack = NULL; @@ -1303,7 +1308,7 @@ expand_start_all_catch () label = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); /* The label for the exception handling block that we will save. - This is Lresume in the documention. */ + This is Lresume in the documentation. */ expand_label (label); /* Push the label that points to where normal flow is resumed onto @@ -1416,6 +1421,7 @@ expand_end_all_catch () /* This level of catch blocks is done, so set up the successful catch jump label for the next layer of catch blocks. */ pop_label_entry (&caught_return_label_stack); + pop_label_entry (&outer_context_label_stack); /* Add the new sequence of catches to the main one for this function. */ push_to_sequence (catch_clauses); diff --git a/gcc/except.h b/gcc/except.h index 172bac4d904..46b1f47879e 100644 --- a/gcc/except.h +++ b/gcc/except.h @@ -226,6 +226,11 @@ extern void check_exception_handler_labels PROTO((void)); extern struct label_node *caught_return_label_stack; +/* Keeps track of the label used as the context of a throw to rethrow an + exception to the outer exception region. */ + +extern struct label_node *outer_context_label_stack; + /* A random area used for purposes elsewhere. */ extern struct label_node *false_label_stack; diff --git a/gcc/expmed.c b/gcc/expmed.c index 20a8d6ab4ca..8170c26b7cc 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -748,6 +748,8 @@ store_split_bit_field (op0, bitsize, bitpos, value, align) ? GET_MODE (value) : word_mode, value)); } + else if (GET_CODE (value) == ADDRESSOF) + value = copy_to_reg (value); while (bitsdone < bitsize) { diff --git a/gcc/expr.c b/gcc/expr.c index f07b3f67477..a84beb583f5 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -110,9 +110,13 @@ static rtx saveregs_value; /* Similarly for __builtin_apply_args. */ static rtx apply_args_value; +/* Don't check memory usage, since code is being emitted to check a memory + usage. Used when flag_check_memory_usage is true, to avoid infinite + recursion. */ +static int in_check_memory_usage; + /* This structure is used by move_by_pieces to describe the move to be performed. */ - struct move_by_pieces { rtx to; @@ -2551,10 +2555,11 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra, move_by_pieces (gen_rtx (MEM, BLKmode, gen_push_operand ()), xinner, INTVAL (size) - used, align); - if (flag_check_memory_usage) + if (flag_check_memory_usage && ! in_check_memory_usage) { rtx temp; + in_check_memory_usage = 1; temp = get_push_address (INTVAL(size) - used); if (GET_CODE (x) == MEM && AGGREGATE_TYPE_P (type)) emit_library_call (chkr_copy_bitmap_libfunc, 1, VOIDmode, 3, @@ -2567,7 +2572,9 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra, temp, ptr_mode, GEN_INT (INTVAL(size) - used), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); + in_check_memory_usage = 0; } } else @@ -2604,10 +2611,11 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra, plus_constant (gen_rtx (PLUS, Pmode, args_addr, args_so_far), skip)); - if (flag_check_memory_usage) + if (flag_check_memory_usage && ! in_check_memory_usage) { rtx target; + in_check_memory_usage = 1; target = copy_to_reg (temp); if (GET_CODE (x) == MEM && AGGREGATE_TYPE_P (type)) emit_library_call (chkr_copy_bitmap_libfunc, 1, VOIDmode, 3, @@ -2618,7 +2626,9 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra, emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, target, ptr_mode, size, TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); + in_check_memory_usage = 0; } /* TEMP is the address of the block. Copy the data there. */ @@ -2813,8 +2823,9 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra, emit_move_insn (gen_rtx (MEM, mode, addr), x); - if (flag_check_memory_usage) + if (flag_check_memory_usage && ! in_check_memory_usage) { + in_check_memory_usage = 1; if (target == 0) target = get_push_address (GET_MODE_SIZE (mode)); @@ -2829,7 +2840,9 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra, target, ptr_mode, GEN_INT (GET_MODE_SIZE (mode)), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); + in_check_memory_usage = 0; } } @@ -2954,6 +2967,15 @@ expand_assignment (to, from, want_value, suggest_reg) #endif } + if (TREE_CODE (to) == COMPONENT_REF + && TREE_READONLY (TREE_OPERAND (to, 1))) + { + if (offset = 0) + to_rtx = copy_rtx (to_rtx); + + RTX_UNCHANGING_P (to_rtx) = 1; + } + /* Check the access. */ if (flag_check_memory_usage && GET_CODE (to_rtx) == MEM) { @@ -2978,7 +3000,8 @@ expand_assignment (to, from, want_value, suggest_reg) emit_library_call (chkr_check_addr_libfunc, 1, VOIDmode, 3, to_addr, ptr_mode, GEN_INT (size), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_WO), QImode); + GEN_INT (MEMORY_USE_WO), + TYPE_MODE (integer_type_node)); } result = store_field (to_rtx, bitsize, bitpos, mode1, from, @@ -3169,16 +3192,16 @@ store_expr (exp, target, want_value) do_pending_stack_adjust (); NO_DEFER_POP; jumpifnot (TREE_OPERAND (exp, 0), lab1); - start_cleanup_deferal (); + start_cleanup_deferral (); store_expr (TREE_OPERAND (exp, 1), target, 0); - end_cleanup_deferal (); + end_cleanup_deferral (); emit_queue (); emit_jump_insn (gen_jump (lab2)); emit_barrier (); emit_label (lab1); - start_cleanup_deferal (); + start_cleanup_deferral (); store_expr (TREE_OPERAND (exp, 2), target, 0); - end_cleanup_deferal (); + end_cleanup_deferral (); emit_queue (); emit_label (lab2); OK_DEFER_POP; @@ -3309,7 +3332,8 @@ store_expr (exp, target, want_value) emit_library_call (chkr_check_addr_libfunc, 1, VOIDmode, 3, XEXP (target, 0), ptr_mode, expr_size (exp), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_WO), QImode); + GEN_INT (MEMORY_USE_WO), + TYPE_MODE (integer_type_node)); } /* If value was not generated in the target, store it there. @@ -3400,7 +3424,8 @@ store_expr (exp, target, want_value) emit_library_call (chkr_check_addr_libfunc, 1, VOIDmode, 3, addr, ptr_mode, size, TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_WO), QImode); + GEN_INT (MEMORY_USE_WO), + TYPE_MODE (integer_type_node)); #ifdef TARGET_MEM_FUNCTIONS emit_library_call (memset_libfunc, 0, VOIDmode, 3, addr, ptr_mode, @@ -3675,7 +3700,7 @@ store_constructor (exp, target, cleared) if (contains_placeholder_p (offset)) offset = build (WITH_RECORD_EXPR, sizetype, - offset, exp); + offset, make_tree (TREE_TYPE (exp), target)); offset = size_binop (FLOOR_DIV_EXPR, offset, size_int (BITS_PER_UNIT)); @@ -4403,9 +4428,14 @@ get_inner_reference (exp, pbitsize, pbitpos, poffset, pmode, && TREE_INT_CST_HIGH (index) == 0) *pbitpos += TREE_INT_CST_LOW (index); else - offset = size_binop (PLUS_EXPR, offset, - size_binop (FLOOR_DIV_EXPR, index, - size_int (BITS_PER_UNIT))); + { + offset = size_binop (PLUS_EXPR, offset, + size_binop (FLOOR_DIV_EXPR, index, + size_int (BITS_PER_UNIT))); + + if (contains_placeholder_p (offset)) + offset = build (WITH_RECORD_EXPR, sizetype, offset, exp); + } } else if (TREE_CODE (exp) != NON_LVALUE_EXPR && ! ((TREE_CODE (exp) == NOP_EXPR @@ -5016,7 +5046,8 @@ expand_expr (exp, target, tmode, modifier) XEXP (DECL_RTL (exp), 0), ptr_mode, GEN_INT (int_size_in_bytes (type)), TYPE_MODE (sizetype), - GEN_INT (memory_usage), QImode); + GEN_INT (memory_usage), + TYPE_MODE (integer_type_node)); } /* ... fall through ... */ @@ -5483,7 +5514,8 @@ expand_expr (exp, target, tmode, modifier) op0, ptr_mode, GEN_INT (int_size_in_bytes (type)), TYPE_MODE (sizetype), - GEN_INT (memory_usage), QImode); + GEN_INT (memory_usage), + TYPE_MODE (integer_type_node)); } temp = gen_rtx (MEM, mode, op0); @@ -5737,7 +5769,8 @@ expand_expr (exp, target, tmode, modifier) to, ptr_mode, GEN_INT (size / BITS_PER_UNIT), TYPE_MODE (sizetype), - GEN_INT (memory_usage), QImode); + GEN_INT (memory_usage), + TYPE_MODE (integer_type_node)); } } @@ -6859,7 +6892,7 @@ expand_expr (exp, target, tmode, modifier) else jumpifnot (TREE_OPERAND (exp, 0), op0); - start_cleanup_deferal (); + start_cleanup_deferral (); if (binary_op && temp == 0) /* Just touch the other operand. */ expand_expr (TREE_OPERAND (binary_op, 1), @@ -6893,7 +6926,7 @@ expand_expr (exp, target, tmode, modifier) store_expr (TREE_OPERAND (exp, 1), temp, 0); jumpif (TREE_OPERAND (exp, 0), op0); - start_cleanup_deferal (); + start_cleanup_deferral (); store_expr (TREE_OPERAND (exp, 2), temp, 0); op1 = op0; } @@ -6911,7 +6944,7 @@ expand_expr (exp, target, tmode, modifier) store_expr (TREE_OPERAND (exp, 2), temp, 0); jumpifnot (TREE_OPERAND (exp, 0), op0); - start_cleanup_deferal (); + start_cleanup_deferral (); store_expr (TREE_OPERAND (exp, 1), temp, 0); op1 = op0; } @@ -6920,18 +6953,18 @@ expand_expr (exp, target, tmode, modifier) op1 = gen_label_rtx (); jumpifnot (TREE_OPERAND (exp, 0), op0); - start_cleanup_deferal (); + start_cleanup_deferral (); if (temp != 0) store_expr (TREE_OPERAND (exp, 1), temp, 0); else expand_expr (TREE_OPERAND (exp, 1), ignore ? const0_rtx : NULL_RTX, VOIDmode, 0); - end_cleanup_deferal (); + end_cleanup_deferral (); emit_queue (); emit_jump_insn (gen_jump (op1)); emit_barrier (); emit_label (op0); - start_cleanup_deferal (); + start_cleanup_deferral (); if (temp != 0) store_expr (TREE_OPERAND (exp, 2), temp, 0); else @@ -6939,7 +6972,7 @@ expand_expr (exp, target, tmode, modifier) ignore ? const0_rtx : NULL_RTX, VOIDmode, 0); } - end_cleanup_deferal (); + end_cleanup_deferral (); emit_queue (); emit_label (op1); @@ -8855,7 +8888,8 @@ expand_builtin (exp, target, subtarget, mode, ignore) if (flag_check_memory_usage) emit_library_call (chkr_check_str_libfunc, 1, VOIDmode, 2, src_rtx, ptr_mode, - GEN_INT (MEMORY_USE_RO), QImode); + GEN_INT (MEMORY_USE_RO), + TYPE_MODE (integer_type_node)); char_rtx = const0_rtx; char_mode = insn_operand_mode[(int)icode][2]; @@ -9024,7 +9058,8 @@ expand_builtin (exp, target, subtarget, mode, ignore) emit_library_call (chkr_check_addr_libfunc, 1, VOIDmode, 3, dest_rtx, ptr_mode, len_rtx, TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_WO), QImode); + GEN_INT (MEMORY_USE_WO), + TYPE_MODE (integer_type_node)); /* There could be a void* cast on top of the object. */ @@ -9598,7 +9633,14 @@ expand_builtin_apply (function, arguments, argsize) /* Push a new argument block and copy the arguments. */ do_pending_stack_adjust (); - emit_stack_save (SAVE_BLOCK, &old_stack_level, NULL_RTX); + + /* Save the stack with nonlocal if available */ +#ifdef HAVE_save_stack_nonlocal + if (HAVE_save_stack_nonlocal) + emit_stack_save (SAVE_NONLOCAL, &old_stack_level, NULL_RTX); + else +#endif + emit_stack_save (SAVE_BLOCK, &old_stack_level, NULL_RTX); /* Push a block of memory onto the stack to store the memory arguments. Save the address in a register, and copy the memory arguments. ??? I @@ -9724,7 +9766,12 @@ expand_builtin_apply (function, arguments, argsize) CALL_INSN_FUNCTION_USAGE (call_insn) = call_fusage; /* Restore the stack. */ - emit_stack_restore (SAVE_BLOCK, old_stack_level, NULL_RTX); +#ifdef HAVE_save_stack_nonlocal + if (HAVE_save_stack_nonlocal) + emit_stack_restore (SAVE_NONLOCAL, old_stack_level, NULL_RTX); + else +#endif + emit_stack_restore (SAVE_BLOCK, old_stack_level, NULL_RTX); /* Return the address of the result block. */ return copy_addr_to_reg (XEXP (result, 0)); @@ -10249,18 +10296,18 @@ do_jump (exp, if_false_label, if_true_label) if (if_false_label == 0) if_false_label = drop_through_label = gen_label_rtx (); do_jump (TREE_OPERAND (exp, 0), if_false_label, NULL_RTX); - start_cleanup_deferal (); + start_cleanup_deferral (); do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label); - end_cleanup_deferal (); + end_cleanup_deferral (); break; case TRUTH_ORIF_EXPR: if (if_true_label == 0) if_true_label = drop_through_label = gen_label_rtx (); do_jump (TREE_OPERAND (exp, 0), NULL_RTX, if_true_label); - start_cleanup_deferal (); + start_cleanup_deferral (); do_jump (TREE_OPERAND (exp, 1), if_false_label, if_true_label); - end_cleanup_deferal (); + end_cleanup_deferral (); break; case COMPOUND_EXPR: @@ -10321,7 +10368,7 @@ do_jump (exp, if_false_label, if_true_label) do_jump (TREE_OPERAND (exp, 0), label1, NULL_RTX); - start_cleanup_deferal (); + start_cleanup_deferral (); /* Now the THEN-expression. */ do_jump (TREE_OPERAND (exp, 1), if_false_label ? if_false_label : drop_through_label, @@ -10334,7 +10381,7 @@ do_jump (exp, if_false_label, if_true_label) do_jump (TREE_OPERAND (exp, 2), if_false_label ? if_false_label : drop_through_label, if_true_label ? if_true_label : drop_through_label); - end_cleanup_deferal (); + end_cleanup_deferral (); } break; diff --git a/gcc/extend.texi b/gcc/extend.texi index 75131d7fa3b..7c852c0e515 100644 --- a/gcc/extend.texi +++ b/gcc/extend.texi @@ -2174,7 +2174,7 @@ possibly unused. GNU CC will not produce a warning for any variables of that type, even if the variable appears to do nothing. This is often the case with lock or thread classes, which are usually defined and then not referenced, but contain constructors and destructors that have -non-trivial bookeeping functions. +nontrivial bookkeeping functions. @end table diff --git a/gcc/flow.c b/gcc/flow.c index ed66ce7c4ef..90df30a361a 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -1541,9 +1541,10 @@ propagate_block (old, first, last, final, significant, bnum) merged into a following memory address. */ #ifdef AUTO_INC_DEC { - register rtx x = PATTERN (insn); + register rtx x = single_set (insn); + /* Does this instruction increment or decrement a register? */ - if (final && GET_CODE (x) == SET + if (final && x != 0 && GET_CODE (SET_DEST (x)) == REG && (GET_CODE (SET_SRC (x)) == PLUS || GET_CODE (SET_SRC (x)) == MINUS) @@ -2679,7 +2680,7 @@ try_pre_increment_1 (insn) { /* Find the next use of this reg. If in same basic block, make it do pre-increment or pre-decrement if appropriate. */ - rtx x = PATTERN (insn); + rtx x = single_set (insn); HOST_WIDE_INT amount = ((GET_CODE (SET_SRC (x)) == PLUS ? 1 : -1) * INTVAL (XEXP (SET_SRC (x), 1))); int regno = REGNO (SET_DEST (x)); @@ -2689,8 +2690,7 @@ try_pre_increment_1 (insn) /* Don't do this if the reg dies, or gets set in y; a standard addressing mode would be better. */ && ! dead_or_set_p (y, SET_DEST (x)) - && try_pre_increment (y, SET_DEST (PATTERN (insn)), - amount)) + && try_pre_increment (y, SET_DEST (x), amount)) { /* We have found a suitable auto-increment and already changed insn Y to do it. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 0f5a19f9e99..0bc82264542 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -481,7 +481,7 @@ div_and_round_double (code, uns, int overflow = 0; if ((hden == 0) && (lden == 0)) - abort (); + overflow = 1, lden = 1; /* calculate quotient sign and convert operands to unsigned. */ if (!uns) @@ -2672,13 +2672,13 @@ simple_operand_p (exp) are converted to (unsigned) (X - 2) <= 3 - We decribe each set of comparisons as being either inside or outside + We describe each set of comparisons as being either inside or outside a range, using a variable named like IN_P, and then describe the range with a lower and upper bound. If one of the bounds is omitted, it represents either the highest or lowest value of the type. In the comments below, we represent a range by two numbers in brackets - preceeded by a "+" to designate being inside that range, or a "-" to + preceded by a "+" to designate being inside that range, or a "-" to designate being outside that range, so the condition can be inverted by flipping the prefix. An omitted bound is represented by a "-". For example, "- [-, 10]" means being outside the range starting at the lowest diff --git a/gcc/frame.c b/gcc/frame.c index 1fb29e44cfd..747fb9f1c40 100644 --- a/gcc/frame.c +++ b/gcc/frame.c @@ -37,8 +37,8 @@ Boston, MA 02111-1307, USA. */ #ifdef DWARF2_UNWIND_INFO #include "gansidecl.h" #include "dwarf2.h" -#include "frame.h" #include +#include "frame.h" /* Don't use `fancy_abort' here even if config.h says to use it. */ #ifdef abort @@ -75,18 +75,7 @@ struct dwarf_fde { typedef struct dwarf_fde fde; -/* The representation for an "object" to be searched for frame unwind info. - For targets with named sections, one object is an executable or shared - library; for other targets, one object is one translation unit. */ - -struct object { - void *pc_begin; - void *pc_end; - fde *fde_begin; - fde ** fde_array; - size_t count; - struct object *next; -}; +/* Objects to be searched for frame unwind info. */ static struct object *objects; @@ -512,10 +501,8 @@ execute_cfa_insn (void *p, struct frame_state_internal *state, /* Called from crtbegin.o to register the unwind info for an object. */ void -__register_frame (void *begin) +__register_frame (void *begin, struct object *ob) { - struct object *ob = (struct object *) malloc (sizeof (struct object)); - ob->fde_begin = begin; ob->pc_begin = ob->pc_end = 0; @@ -531,10 +518,8 @@ __register_frame (void *begin) collect2. */ void -__register_frame_table (void *begin) +__register_frame_table (void *begin, struct object *ob) { - struct object *ob = (struct object *) malloc (sizeof (struct object)); - ob->fde_begin = begin; ob->fde_array = begin; @@ -562,7 +547,6 @@ __deregister_frame (void *begin) /* If we've run init_frame for this object, free the FDE array. */ if (ob->pc_begin) free (ob->fde_array); - free (ob); return; } diff --git a/gcc/frame.h b/gcc/frame.h index 3b380536884..c1cc7028c2d 100644 --- a/gcc/frame.h +++ b/gcc/frame.h @@ -18,10 +18,26 @@ typedef struct frame_state #define REG_SAVED_OFFSET 1 #define REG_SAVED_REG 2 +/* The representation for an "object" to be searched for frame unwind info. + For targets with named sections, one object is an executable or shared + library; for other targets, one object is one translation unit. + + A copy of this structure declaration is printed by collect2.c; + keep the copies synchronized! */ + +struct object { + void *pc_begin; + void *pc_end; + struct dwarf_fde *fde_begin; + struct dwarf_fde **fde_array; + size_t count; + struct object *next; +}; + /* Called either from crtbegin.o or a static constructor to register the unwind info for an object or translation unit, respectively. */ -extern void __register_frame (void *); +extern void __register_frame (void *, struct object *); /* Called from crtend.o to deregister the unwind info for an object. */ diff --git a/gcc/function.c b/gcc/function.c index f7d49717e8b..d13724fea34 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1248,7 +1248,7 @@ free_temps_for_rtl_expr (t) combine_temp_slots (); } -/* Mark all temporaries ever allocated in this functon as not suitable +/* Mark all temporaries ever allocated in this function as not suitable for reuse until the current level is exited. */ void @@ -1417,7 +1417,8 @@ put_var_into_stack (decl) XEXP (reg, 0), ptr_mode, GEN_INT (GET_MODE_SIZE (GET_MODE (reg))), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); } /* Subroutine of put_var_into_stack. This puts a single pseudo reg REG @@ -1767,8 +1768,19 @@ fixup_var_refs_1 (var, promoted_mode, loc, insn, replacements) case ADDRESSOF: if (XEXP (x, 0) == var) { + /* Prevent sharing of rtl that might lose. */ + rtx sub = copy_rtx (XEXP (var, 0)); + start_sequence (); - *loc = force_operand (XEXP (var, 0), NULL_RTX); + + if (! validate_change (insn, loc, sub, 0)) + { + rtx y = force_operand (sub, NULL_RTX); + + if (! validate_change (insn, loc, y, 0)) + *loc = copy_to_reg (y); + } + emit_insn_before (gen_sequence (), insn); end_sequence (); } @@ -2381,6 +2393,7 @@ fixup_stack_1 (x, insn) || REGNO (XEXP (ad, 0)) == HARD_FRAME_POINTER_REGNUM #endif || REGNO (XEXP (ad, 0)) == STACK_POINTER_REGNUM + || REGNO (XEXP (ad, 0)) == ARG_POINTER_REGNUM || XEXP (ad, 0) == current_function_internal_arg_pointer) && GET_CODE (XEXP (ad, 1)) == CONST_INT) { @@ -2705,13 +2718,16 @@ purge_addressof_1 (loc, insn, force) if (code == ADDRESSOF && GET_CODE (XEXP (x, 0)) == MEM) { rtx insns; + /* We must create a copy of the rtx because it was created by + overwriting a REG rtx which is always shared. */ + rtx sub = copy_rtx (XEXP (XEXP (x, 0), 0)); - if (validate_change (insn, loc, XEXP (XEXP (x, 0), 0), 0)) + if (validate_change (insn, loc, sub, 0)) return; start_sequence (); if (! validate_change (insn, loc, - force_operand (XEXP (XEXP (x, 0), 0), NULL_RTX), + force_operand (sub, NULL_RTX), 0)) abort (); @@ -2723,6 +2739,8 @@ purge_addressof_1 (loc, insn, force) else if (code == MEM && GET_CODE (XEXP (x, 0)) == ADDRESSOF && ! force) { rtx sub = XEXP (XEXP (x, 0), 0); + if (GET_CODE (sub) != REG) + sub = copy_rtx (sub); if (GET_CODE (sub) == REG && GET_MODE (x) != GET_MODE (sub)) { if (! BYTES_BIG_ENDIAN && ! WORDS_BIG_ENDIAN) @@ -2912,7 +2930,7 @@ instantiate_decl (x, size, valid_only) addr = XEXP (x, 0); if (CONSTANT_P (addr) - || GET_CODE (addr) == ADDRESSOF + || (GET_CODE (addr) == ADDRESSOF && GET_CODE (XEXP (addr, 0)) == REG) || (GET_CODE (addr) == REG && (REGNO (addr) < FIRST_VIRTUAL_REGISTER || REGNO (addr) > LAST_VIRTUAL_REGISTER))) @@ -3507,7 +3525,7 @@ aggregate_value_p (exp) if (RETURN_IN_MEMORY (type)) return 1; - /* Types that are TREE_ADDRESSABLE must be contructed in memory, + /* Types that are TREE_ADDRESSABLE must be constructed in memory, and thus can't be returned in registers. */ if (TREE_ADDRESSABLE (type)) return 1; @@ -3930,7 +3948,8 @@ assign_parms (fndecl, second_time) GEN_INT (int_size_in_bytes (TREE_TYPE (parm))), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); conversion_insns = get_insns (); end_sequence (); } @@ -4061,7 +4080,7 @@ assign_parms (fndecl, second_time) /* ENTRY_PARM has been converted to PROMOTED_MODE, its mode, by the caller. We now have to convert it to NOMINAL_MODE, if different. However, PARMREG may be in - a diffent mode than NOMINAL_MODE if it is being stored + a different mode than NOMINAL_MODE if it is being stored promoted. If ENTRY_PARM is a hard register, it might be in a register @@ -4160,7 +4179,8 @@ assign_parms (fndecl, second_time) XEXP (copy, 0), ptr_mode, GEN_INT (int_size_in_bytes (type)), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); conversion_insns = get_insns (); did_conversion = 1; end_sequence (); @@ -4327,7 +4347,8 @@ assign_parms (fndecl, second_time) GEN_INT (GET_MODE_SIZE (GET_MODE (entry_parm))), TYPE_MODE (sizetype), - GEN_INT (MEMORY_USE_RW), QImode); + GEN_INT (MEMORY_USE_RW), + TYPE_MODE (integer_type_node)); conversion_insns = get_insns (); end_sequence (); diff --git a/gcc/gcc.1 b/gcc/gcc.1 index 7e839815c2b..9999507971c 100644 --- a/gcc/gcc.1 +++ b/gcc/gcc.1 @@ -20,7 +20,7 @@ .if n .sp .if t .sp 0.4 .. -.Id $Id: gcc.1,v 1.1.1.2 1997/11/02 08:40:04 law Exp $ +.Id $Id: gcc.1,v 1.2 1997/12/05 22:12:45 law Exp $ .TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools" .SH NAME gcc, g++ \- GNU project C and C++ Compiler (egcs-1.0) @@ -3998,7 +3998,7 @@ three-way choice. .BI "\-fcall\-used\-" "reg" Treat the register named \c .I reg\c -\& as an allocatable register that is +\& as an allocable register that is clobbered by function calls. It may be allocated for temporaries or variables that do not live across a call. Functions compiled this way will not save and restore the register \c @@ -4015,7 +4015,7 @@ three-way choice. .BI "\-fcall\-saved\-" "reg" Treat the register named \c .I reg\c -\& as an allocatable register saved by +\& as an allocable register saved by functions. It may be allocated even for temporaries or variables that live across a call. Functions compiled this way will save and restore the register \c diff --git a/gcc/gcc.c b/gcc/gcc.c index 77372870edb..6e4a10d9515 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -39,7 +39,7 @@ compilation is specified by a string called a "spec". */ #include #include -#ifndef NO_SYS_FILE_H +#ifdef HAVE_SYS_FILE_H #include /* May get R_OK, etc. on some systems. */ #endif @@ -150,6 +150,10 @@ extern char *sys_errlist[]; extern char *strerror(); #endif +#ifndef HAVE_KILL +#define kill(p,s) raise(s) +#endif + /* If a stage of compilation returns an exit status >= 1, compilation of that file ceases. */ @@ -5152,7 +5156,7 @@ validate_switches (start) } /* Check whether a particular argument was used. The first time we - canonialize the switches to keep only the ones we care about. */ + canonicalize the switches to keep only the ones we care about. */ static int used_arg (p, len) diff --git a/gcc/gcc.texi b/gcc/gcc.texi index 64ed7d2dfe0..bd3b0b01c80 100644 --- a/gcc/gcc.texi +++ b/gcc/gcc.texi @@ -144,9 +144,9 @@ original English. @sp 2 @center Richard M. Stallman @sp 3 -@center Last updated 26 November 1995 +@center Last updated 4 December 1997 @sp 1 -@c The version number appears twice more in this file. +@c The version number appears three times more in this file. @center for egcs-1.0 @page @@ -437,7 +437,7 @@ GNU CC. The fix is to get rid of the file @code{real-ld} which purify installs---so that GNU CC won't try to use it. @item -On Linux SLS 1.01, there is a problem with @file{libc.a}: it does not +On GNU/Linux SLS 1.01, there is a problem with @file{libc.a}: it does not contain the obstack functions. However, GNU CC assumes that the obstack functions are in @file{libc.a} when it is the GNU C library. To work around this problem, change the @code{__GNU_LIBRARY__} conditional @@ -3681,12 +3681,6 @@ Define this macro to indicate that the host compiler does not properly handle converting a function value to a pointer-to-function when it is used in an expression. -@findex HAVE_VPRINTF -@findex vprintf -@item HAVE_VPRINTF -Define this if the library function @code{vprintf} is available on your -system. - @findex MULTIBYTE_CHARS @item MULTIBYTE_CHARS Define this macro to enable support for multibyte characters in the @@ -3694,22 +3688,10 @@ input to GNU CC. This requires that the host system support the ANSI C library functions for converting multibyte characters to wide characters. -@findex HAVE_PUTENV -@findex putenv -@item HAVE_PUTENV -Define this if the library function @code{putenv} is available on your -system. - @findex POSIX @item POSIX Define this if your system is POSIX.1 compliant. -@findex HAVE_POPEN -@findex popen -@item HAVE_POPEN -Define this if the library function @code{popen} is available on your -system. - @findex NO_SYS_SIGLIST @item NO_SYS_SIGLIST Define this if your system @emph{does not} provide the variable diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index bef1c59bcba..025c61f7321 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -106,11 +106,19 @@ Boston, MA 02111-1307, USA. */ #include "rtl.h" #include "insn-config.h" /* For REGISTER_CONSTRAINTS */ -#ifndef VMS -#ifndef USG -#include -#include +#ifdef TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +#endif #endif + +#ifdef HAVE_SYS_RESOURCE_H +# include #endif /* We must include obstack.h after , to avoid lossage with @@ -1389,7 +1397,7 @@ make_canonical (attr, exp) RTX_UNCHANGING_P (exp) = 1; exp = check_attr_value (exp, attr); /* Goto COND case since this is now a COND. Note that while the - new expression is rescanned, all symbol_ref notes are mared as + new expression is rescanned, all symbol_ref notes are marked as unchanging. */ goto cond; diff --git a/gcc/install.texi b/gcc/install.texi index cc87d82fb7b..68b68792661 100644 --- a/gcc/install.texi +++ b/gcc/install.texi @@ -727,8 +727,7 @@ GNU CC. @item alpha-*-osf1 Systems using processors that implement the DEC Alpha architecture and are running the DEC Unix (OSF/1) operating system, for example the DEC -Alpha AXP systems. (VMS on the Alpha is not currently supported by GNU -CC.) +Alpha AXP systems.CC.) GNU CC writes a @samp{.verstamp} directive to the assembler output file unless it is built as a cross-compiler. It gets the version to use from @@ -788,7 +787,7 @@ configuration. @item arm-*-linuxaout Any of the ARM family processors running the Linux-based GNU system with the @file{a.out} binary format (ELF is not yet supported). You must use -version 2.8.1.0.7 or later of the Linux binutils, which you can download +version 2.8.1.0.7 or later of the GNU/Linux binutils, which you can download from @file{sunsite.unc.edu:/pub/Linux/GCC} and other mirror sites for Linux-based GNU systems. @@ -965,9 +964,7 @@ You need to use GAS version 2.1 or later, and LD from GNU binutils version 2.2 or later. @item i386-sequent-bsd -Go to the Berkeley universe before compiling. In addition, you probably -need to create a file named @file{string.h} containing just one line: -@samp{#include }. +Go to the Berkeley universe before compiling. @item i386-sequent-ptx1* Sequent DYNIX/ptx 1.x. @@ -1343,9 +1340,7 @@ and @code{malloc}; you must get the compiled versions of these from GNU Emacs. @item ns32k-sequent -Go to the Berkeley universe before compiling. In addition, you probably -need to create a file named @file{string.h} containing just one line: -@samp{#include }. +Go to the Berkeley universe before compiling. @item ns32k-utek UTEK ns32000 system (``merlin''). The C compiler that comes with this diff --git a/gcc/integrate.c b/gcc/integrate.c index 60022eb63a4..6854cf66a97 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -335,7 +335,7 @@ initialize_for_inline (fndecl, min_labelno, max_labelno, max_reg, copy) the value of current_function_outgoing_args_size, the original argument vector, the original DECL_INITIAL, - and pointers to the table of psuedo regs, pointer flags, and alignment. */ + and pointers to the table of pseudo regs, pointer flags, and alignment. */ return gen_inline_header_rtx (NULL_RTX, NULL_RTX, min_labelno, max_labelno, max_parm_reg, max_reg, diff --git a/gcc/invoke.texi b/gcc/invoke.texi index 4e07c606fdb..0eb02871365 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -337,11 +337,13 @@ in the following sections. -mtail-call @emph{DEC Alpha Options} --mfp-regs -mno-fp-regs --mno-soft-float -msoft-float +-mfp-regs -mno-fp-regs -mno-soft-float -msoft-float +-malpha-as -mgas -mieee -mieee-with-inexact -mieee-conformant --mfp-trap-mode -mfp-rounding-mode -mtrap-precision --mbuild-constants +-mfp-trap-mode=@var{mode} -mfp-rounding-mode=@var{mode} +-mtrap-precision=@var{mode} -mbuild-constants +-mcpu=@var{cpu type} +-mbwx -mno-bwx -mcix -mno-cix -mmax -mno-max @emph{Clipper Options} -mc300 -mc400 @@ -1307,6 +1309,9 @@ whenever a function is declared static but never defined, whenever a label is declared but not used, and whenever a statement computes a result that is explicitly not used. +In order to get a warning about an unused function parameter, you must +specify both @samp{-W} and @samp{-Wunused}. + To suppress this warning for an expression, simply cast it to void. For unused variables and parameters, use the @samp{unused} attribute (@pxref{Variable Attributes}). @@ -1784,7 +1789,7 @@ and (optionally) the complete sequence of basic blocks being executed. The output is appended to file @file{bb.out}. You can examine different profiling aspects without recompilation. Your -execuable will read a list of function names from file @file{bb.in}. +executable will read a list of function names from file @file{bb.in}. Profiling starts when a function on the list is entered and stops when that invocation is exited. To exclude a function from profiling, prefix its name with `-'. If a function name is not unique, you can @@ -1896,6 +1901,10 @@ block and arc execution counts from the information in the @samp{-fprofile-arcs}). @end table +@item -Q +Makes the compiler print out each function name as it is compiled, and +print some statistics about each pass when it finishes. + @item -d@var{letters} Says to make debugging dumps during compilation at times specified by @var{letters}. This is used for debugging the compiler. The file names @@ -1924,11 +1933,15 @@ Dump after first jump optimization, to @file{@var{file}.jump}. @item s Dump after CSE (including the jump optimization that sometimes follows CSE), to @file{@var{file}.cse}. +@item D +Dump after purging ADDRESSOF, to @file{@var{file}.addressof}. @item L Dump after loop optimization, to @file{@var{file}.loop}. @item t Dump after the second CSE pass (including the jump optimization that sometimes follows CSE), to @file{@var{file}.cse2}. +@item b +Dump after computing branch probabilities, to @file{@var{file}.bp}. @item f Dump after flow analysis, to @file{@var{file}.flow}. @item c @@ -4102,7 +4115,7 @@ be compiled with @samp{-mrelocatable} or @samp{-mrelocatable-lib}. @itemx -mno-relocatable-lib On embedded PowerPC systems generate code that allows (does not allow) the program to be relocated to a different address at runtime. Modules -compiled with @samp{-mreloctable-lib} can be linked with either modules +compiled with @samp{-mrelocatable-lib} can be linked with either modules compiled without @samp{-mrelocatable} and @samp{-mrelocatable-lib} or with modules compiled with the @samp{-mrelocatable} options. @@ -4247,7 +4260,7 @@ in the @samp{.data} section, and all uninitialized data in the @item -G @var{num} @cindex smaller data references (PowerPC) @cindex .sdata/.sdata2 references (PowerPC) -On embbeded PowerPC systems, put global and static items less than or +On embedded PowerPC systems, put global and static items less than or equal to @var{num} bytes into the small data or bss sections instead of the normal data or bss section. By default, @var{num} is 8. The @samp{-G @var{num}} switch is also passed to the linker. @@ -4712,7 +4725,7 @@ functions. @item -mspace Optimize for space rather than execution time. Currently this only enables out of line function prologues and epilogues. This option is -incompatable with PIC code generation and profiling. +incompatible with PIC code generation and profiling. @item -mlong-load-store Generate 3-instruction load and store sequences as sometimes required by @@ -4995,7 +5008,7 @@ IEEE-conformant math library routines will be linked in. Normally GNU CC examines a 32- or 64-bit integer constant to see if it can construct it from smaller constants in two or three instructions. If it cannot, it will output the constant as a literal and -generate code to load it from the data segement at runtime. +generate code to load it from the data segment at runtime. Use this option to require GNU CC to construct @emph{all} integer constants using code, even if it takes more instructions (the maximum is six). @@ -5003,6 +5016,57 @@ using code, even if it takes more instructions (the maximum is six). You would typically use this option to build a shared library dynamic loader. Itself a shared library, it must relocate itself in memory before it can find the variables and constants in its own data segment. + +@item -malpha-as +@itemx -mgas +Select whether to generate code to be assembled by the vendor-supplied +assembler (@samp{-malpha-as}) or by the GNU assembler @samp{-mgas}. + +@item -mbwx +@itemx -mno-bwx +@itemx -mcix +@itemx -mno-cix +@itemx -mmax +@itemx -mno-max +Indicate whether GNU CC should generate code to use the optional BWX, +CIX, and MAX instruction sets. The default is to use the instruction sets +supported by the CPU type specified via @samp{-mcpu=} option or that +of the CPU on which GNU CC was built if none was specified. + +@item -mcpu=@var{cpu type} +@item -mcpu=@var{cpu_type} +Set the instruction set, register set, and instruction scheduling +parameters for machine type @var{cpu_type}. You can specify either the +@samp{EV} style name or the corresponding chip number. GNU CC +supports scheduling parameters for the EV4 and EV5 family of processors +and will choose the default values for the instruction set from +the processor you specify. If you do not specify a processor type, +GNU CC will default to the processor on which the compiler was built. + +Supported values for @var{cpu_type} are + +@table @samp +@item ev4 +@itemx 21064 +Schedules as an EV4 and has no instruction set extensions. + +@item ev5 +@itemx 21164 +Schedules as an EV5 and has no instruction set extensions. + +@item ev56 +@itemx 21164a +Schedules as an EV5 and supports the BWX extension. + +@item pca56 +@itemx 21164PC +Schedules as an EV5 and supports the BWX and MAX extensions. + +@item ev6 +@itemx 21264 +Schedules as an EV5 (until Digital releases the scheduling parameters +for the EV6) and supports the BWX, CIX, and MAX extensions. +@end table @end table @node Clipper Options @@ -5176,6 +5240,16 @@ can figure out the other form by either removing @samp{no-} or adding it. @table @code +@item -fexceptions +Enable exception handling, and generate extra code needed to propagate +exceptions. If you do not specify this option, GNU CC enables it by +default for languages like C++ that normally require exception handling, +and disabled for languages like C that do not normally require it. +However, when compiling C code that needs to interoperate properly with +exception handlers written in C++, you may need to enable this option. +You may also wish to disable this option is you are compiling older C++ +programs that don't use exception handling. + @item -fpcc-struct-return Return ``short'' @code{struct} and @code{union} values in memory like longer ones, rather than in registers. This convention is less @@ -5301,7 +5375,7 @@ This flag does not have a negative form, because it specifies a three-way choice. @item -fcall-used-@var{reg} -Treat the register named @var{reg} as an allocatable register that is +Treat the register named @var{reg} as an allocable register that is clobbered by function calls. It may be allocated for temporaries or variables that do not live across a call. Functions compiled this way will not save and restore the register @var{reg}. @@ -5314,7 +5388,7 @@ This flag does not have a negative form, because it specifies a three-way choice. @item -fcall-saved-@var{reg} -Treat the register named @var{reg} as an allocatable register saved by +Treat the register named @var{reg} as an allocable register saved by functions. It may be allocated even for temporaries or variables that live across a call. Functions compiled this way will save and restore the register @var{reg} if they use it. @@ -5341,7 +5415,7 @@ code that is suitable for a detector of bad memory accesses such as @code{asm} or @code{__asm__} keywords. You must also specify this option when you compile functions you call that -have side effects. If you do not, you may get erronous messages from +have side effects. If you do not, you may get erroneous messages from the detector. Normally, you should compile all your code with this option. If you use functions from a library that have side-effects (such as @code{read}), you may not be able to recompile the library and diff --git a/gcc/jump.c b/gcc/jump.c index f72dedf387b..00e31cf22ec 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -117,6 +117,7 @@ static void delete_computation PROTO((rtx)); static void delete_from_jump_chain PROTO((rtx)); static int delete_labelref_insn PROTO((rtx, rtx, int)); static void redirect_tablejump PROTO((rtx, rtx)); +static rtx find_insert_position PROTO((rtx, rtx)); /* Delete no-op jumps and optimize jumps to jumps and jumps around jumps. @@ -996,11 +997,12 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan) { rtx new = gen_reg_rtx (GET_MODE (temp2)); - if (validate_change (temp, &SET_DEST (temp1), new, 0)) + if ((temp3 = find_insert_position (insn, temp)) + && validate_change (temp, &SET_DEST (temp1), new, 0)) { next = emit_insn_after (gen_move_insn (temp2, new), insn); emit_insn_after_with_line_notes (PATTERN (temp), - PREV_INSN (insn), temp); + PREV_INSN (temp3), temp); delete_insn (temp); reallabelprev = prev_active_insn (JUMP_LABEL (insn)); } @@ -1039,14 +1041,19 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan) { rtx new = gen_reg_rtx (GET_MODE (temp2)); - if (validate_change (temp, &SET_DEST (temp1), new, 0)) + if ((temp5 = find_insert_position (insn, temp)) + && (temp6 = find_insert_position (insn, temp3)) + && validate_change (temp, &SET_DEST (temp1), new, 0)) { + /* Use the earliest of temp5 and temp6. */ + if (temp5 != insn) + temp6 = temp5; next = emit_insn_after (gen_move_insn (temp2, new), insn); emit_insn_after_with_line_notes (PATTERN (temp), - PREV_INSN (insn), temp); + PREV_INSN (temp6), temp); emit_insn_after_with_line_notes (replace_rtx (PATTERN (temp3), temp2, new), - PREV_INSN (insn), temp3); + PREV_INSN (temp6), temp3); delete_insn (temp); delete_insn (temp3); reallabelprev = prev_active_insn (JUMP_LABEL (insn)); @@ -1095,13 +1102,18 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan) { rtx new = gen_reg_rtx (GET_MODE (temp2)); - if (validate_change (temp3, &SET_DEST (temp4), new, 0)) + if ((temp5 = find_insert_position (insn, temp)) + && (temp6 = find_insert_position (insn, temp3)) + && validate_change (temp3, &SET_DEST (temp4), new, 0)) { + /* Use the earliest of temp5 and temp6. */ + if (temp5 != insn) + temp6 = temp5; next = emit_insn_after (gen_move_insn (temp2, new), insn); emit_insn_after_with_line_notes (PATTERN (temp), - PREV_INSN (insn), temp); + PREV_INSN (temp6), temp); emit_insn_after_with_line_notes (PATTERN (temp3), - PREV_INSN (insn), temp3); + PREV_INSN (temp6), temp3); delete_insn (temp); delete_insn (temp3); reallabelprev = prev_active_insn (JUMP_LABEL (insn)); @@ -4708,3 +4720,45 @@ rtx_equal_for_thread_p (x, y, yinsn) } return 1; } + + +/* Return the insn that NEW can be safely inserted in front of starting at + the jump insn INSN. Return 0 if it is not safe to do this jump + optimization. Note that NEW must contain a single set. */ + +static rtx +find_insert_position (insn, new) + rtx insn; + rtx new; +{ + int i; + rtx prev; + + /* If NEW does not clobber, it is safe to insert NEW before INSN. */ + if (GET_CODE (PATTERN (new)) != PARALLEL) + return insn; + + for (i = XVECLEN (PATTERN (new), 0) - 1; i >= 0; i--) + if (GET_CODE (XVECEXP (PATTERN (new), 0, i)) == CLOBBER + && reg_overlap_mentioned_p (XEXP (XVECEXP (PATTERN (new), 0, i), 0), + insn)) + break; + + if (i < 0) + return insn; + + /* There is a good chance that the previous insn PREV sets the thing + being clobbered (often the CC in a hard reg). If PREV does not + use what NEW sets, we can insert NEW before PREV. */ + + prev = prev_active_insn (insn); + for (i = XVECLEN (PATTERN (new), 0) - 1; i >= 0; i--) + if (GET_CODE (XVECEXP (PATTERN (new), 0, i)) == CLOBBER + && reg_overlap_mentioned_p (XEXP (XVECEXP (PATTERN (new), 0, i), 0), + insn) + && ! modified_in_p (XEXP (XVECEXP (PATTERN (new), 0, i), 0), + prev)) + return 0; + + return reg_mentioned_p (SET_DEST (single_set (new)), prev) ? 0 : prev; +} diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index faa3c14cf2e..dd54319615d 100644 --- a/gcc/libgcc2.c +++ b/gcc/libgcc2.c @@ -42,6 +42,17 @@ Boston, MA 02111-1307, USA. */ #undef abort #endif +#if (SUPPORTS_WEAK == 1) && (defined (ASM_OUTPUT_DEF) || defined (ASM_OUTPUT_WEAK_ALIAS)) +#define WEAK_ALIAS +#endif + +/* In a cross-compilation situation, default to inhibiting compilation + of routines that use libc. */ + +#ifdef CROSS_COMPILE +#define inhibit_libc +#endif + /* Permit the tm.h file to select the endianness to use just for this file. This is used when the endianness is determined when the compiler is run. */ @@ -1526,7 +1537,7 @@ __bb_exit_func (void) continue; } - /* ??? Should first write a header to the file. Perferably, a 4 byte + /* ??? Should first write a header to the file. Preferably, a 4 byte magic number, 4 bytes containing the time the program was compiled, 4 bytes containing the last modification time of the source file, and 4 bytes indicating the compiler options used. diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index ab7fc98f39d..b7aade256dc 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -1715,12 +1715,11 @@ block_alloc (b) { if (GET_CODE (qty_scratch_rtx[q]) == REG) abort (); - qty_scratch_rtx[q] = gen_rtx (REG, GET_MODE (qty_scratch_rtx[q]), qty_phys_reg[q]); - scratch_block[scratch_index] = b; scratch_list[scratch_index++] = qty_scratch_rtx[q]; + } } } diff --git a/gcc/loop.c b/gcc/loop.c index 6c0d00da3ec..a26c04ac995 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -3633,11 +3633,20 @@ strength_reduce (scan_start, end, loop_top, insn_count, for (bl = loop_iv_list; bl; bl = bl->next) { rtx src; + rtx note; if (! bl->init_insn) continue; - src = SET_SRC (bl->init_set); + /* IF INIT_INSN has a REG_EQUAL or REG_EQUIV note and the value + is a constant, use the value of that. */ + if (((note = find_reg_note (bl->init_insn, REG_EQUAL, 0)) != NULL + && CONSTANT_P (XEXP (note, 0))) + || ((note = find_reg_note (bl->init_insn, REG_EQUIV, 0)) != NULL + && CONSTANT_P (XEXP (note, 0)))) + src = XEXP (note, 0); + else + src = SET_SRC (bl->init_set); if (loop_dump_stream) fprintf (loop_dump_stream, @@ -6185,8 +6194,8 @@ check_dbra_loop (loop_end, insn_count, loop_start) /* Now check other conditions: - The increment must be a constant and the comparison code - must be LT. + The increment must be a constant, as must the initial value, + and the comparison code must be LT. This test can probably be improved since +/- 1 in the constant can be obtained by changing LT to LE and vice versa; this is @@ -6195,7 +6204,8 @@ check_dbra_loop (loop_end, insn_count, loop_start) if (comparison && GET_CODE (XEXP (comparison, 1)) == CONST_INT /* LE gets turned into LT */ - && GET_CODE (comparison) == LT) + && GET_CODE (comparison) == LT + && GET_CODE (bl->initial_value) == CONST_INT) { HOST_WIDE_INT add_val, comparison_val; rtx initial_value; diff --git a/gcc/md.texi b/gcc/md.texi index ab8981667f9..acc616fb8e4 100644 --- a/gcc/md.texi +++ b/gcc/md.texi @@ -1735,23 +1735,23 @@ scratch registers after reload, you must define patterns @samp{reload_in@var{m}} or @samp{reload_out@var{m}} to handle them. @xref{Register Classes}. -The constraints on a @samp{move@var{m}} must permit moving any hard +The constraints on a @samp{mov@var{m}} must permit moving any hard register to any other hard register provided that @code{HARD_REGNO_MODE_OK} permits mode @var{m} in both registers and @code{REGISTER_MOVE_COST} applied to their classes returns a value of 2. -It is obligatory to support floating point @samp{move@var{m}} +It is obligatory to support floating point @samp{mov@var{m}} instructions into and out of any registers that can hold fixed point values, because unions and structures (which have modes @code{SImode} or @code{DImode}) can be in those registers and they may have floating point members. -There may also be a need to support fixed point @samp{move@var{m}} +There may also be a need to support fixed point @samp{mov@var{m}} instructions in and out of floating point registers. Unfortunately, I have forgotten why this was so, and I don't know whether it is still true. If @code{HARD_REGNO_MODE_OK} rejects fixed point values in floating point registers, then the constraints of the fixed point -@samp{move@var{m}} instructions must be designed to avoid ever trying to +@samp{mov@var{m}} instructions must be designed to avoid ever trying to reload into a floating point register. @cindex @code{reload_in} instruction pattern @@ -2400,7 +2400,7 @@ are allocating space from the main stack, do this by emitting a move insn to copy @code{virtual_stack_dynamic_rtx} to operand 0. If you are allocating the space elsewhere, generate code to copy the location of the space to operand 0. In the latter case, you must -ensure this space gets freed when the correspoinding space on the main +ensure this space gets freed when the corresponding space on the main stack is free. Do not define this pattern if all that must be done is the subtraction. diff --git a/gcc/mips-tfile.c b/gcc/mips-tfile.c index b87a8ac5e49..39f3bc61f1f 100644 --- a/gcc/mips-tfile.c +++ b/gcc/mips-tfile.c @@ -3294,14 +3294,22 @@ parse_def (name_start) } - t.extra_sizes = (tag_start != (char *) 0); + if (storage_class == sc_Bits) + { + t.bitfield = 1; + t.extra_sizes = 1; + } + else + t.extra_sizes = 0; + if (t.num_dims > 0) { - int diff = t.num_dims - t.num_sizes; + int num_real_sizes = t.num_sizes - t.extra_sizes; + int diff = t.num_dims - num_real_sizes; int i = t.num_dims - 1; int j; - if (t.num_sizes != 1 || diff < 0) + if (num_real_sizes != 1 || diff < 0) { error_line = __LINE__; saber_stop (); @@ -3312,7 +3320,6 @@ parse_def (name_start) and sizes were passed, creating extra sizes for multiply dimensioned arrays if not passed. */ - t.extra_sizes = 0; if (diff) { for (j = (sizeof (t.sizes) / sizeof (t.sizes[0])) - 1; j >= 0; j--) @@ -3329,14 +3336,6 @@ parse_def (name_start) } } - else if (symbol_type == st_Member && t.num_sizes - t.extra_sizes == 1) - { /* Is this a bitfield? This is indicated by a structure member - having a size field that isn't an array. */ - - t.bitfield = 1; - } - - /* Except for enumeration members & begin/ending of scopes, put the type word in the aux. symbol table. */ diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in index 0dcd59c12ab..1122bca263b 100644 --- a/gcc/objc/Make-lang.in +++ b/gcc/objc/Make-lang.in @@ -71,7 +71,7 @@ cc1obj: $(P) $(OBJC_OBJS) $(OBJS) $(BC_OBJS) $(LIBDEPS) objc-parse.o : $(srcdir)/objc/objc-parse.c \ $(CONFIG_H) $(TREE_H) \ $(srcdir)/c-lex.h $(srcdir)/c-tree.h $(srcdir)/input.h \ - $(srcdir)/flags.h $(srcdir)/objc/objc-act.h + $(srcdir)/flags.h $(srcdir)/output.h $(srcdir)/objc/objc-act.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -I$(srcdir)/objc \ -c $(srcdir)/objc/objc-parse.c @@ -90,7 +90,7 @@ objc-act.o : $(srcdir)/objc/objc-act.c \ $(CONFIG_H) $(TREE_H) $(RTL_H) \ $(srcdir)/c-tree.h $(srcdir)/c-lex.h \ $(srcdir)/flags.h $(srcdir)/objc/objc-act.h $(srcdir)/input.h \ - $(srcdir)/function.h $(srcdir)/c-parse.h + $(srcdir)/function.h $(srcdir)/output.h $(srcdir)/c-parse.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -I$(srcdir)/objc \ -c $(srcdir)/objc/objc-act.c @@ -153,13 +153,13 @@ objc/misc.o: $(srcdir)/objc/misc.c $(GCC_PASSES) -c $(srcdir)/objc/misc.c -o $@ objc/NXConstStr.o: $(srcdir)/objc/NXConstStr.m $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) \ - -c $(srcdir)/objc/NXConstStr.m -o $@ + -fgnu-runtime -c $(srcdir)/objc/NXConstStr.m -o $@ objc/Object.o: $(srcdir)/objc/Object.m $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) \ - -c $(srcdir)/objc/Object.m -o $@ + -fgnu-runtime -c $(srcdir)/objc/Object.m -o $@ objc/Protocol.o: $(srcdir)/objc/Protocol.m $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) \ - -c $(srcdir)/objc/Protocol.m -o $@ + -fgnu-runtime -c $(srcdir)/objc/Protocol.m -o $@ objc/thr.o: $(srcdir)/objc/thr.h $(srcdir)/objc/thr.c $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) \ -c $(srcdir)/objc/thr.c -o $@ @@ -171,7 +171,7 @@ objc/nil_method.o: $(srcdir)/objc/nil_method.c $(GCC_PASSES) -c $(srcdir)/objc/nil_method.c -o $@ objc/linking.o: $(srcdir)/objc/linking.m $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) \ - -c $(srcdir)/objc/linking.m -o $@ + -fgnu-runtime -c $(srcdir)/objc/linking.m -o $@ $(srcdir)/objc/libobjc_entry.o: $(srcdir)/objc/libobjc_entry.c $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) \ @@ -181,7 +181,7 @@ $(OBJC_O): $(GCC_PASSES) cc1obj # Build the Objective C runtime library. libobjc.a: cc1obj specs stmp-int-hdrs libgcc2.ready \ - $(USE_COLLECT2) $(EXTRA_PARTS) $(OBJC_O) + $(USE_COLLECT2) $(EXTRA_PARTS) $(srcdir)/objc/runtime-info.h $(OBJC_O) -rm -f libobjc.a $(AR) $(AR_FLAGS) libobjc.a $(OBJC_O) -if $(RANLIB_TEST) ; then $(RANLIB) libobjc.a; else true; fi @@ -191,22 +191,28 @@ libobjc_s.a: libobjc.a # Create a relocatable DLL libobjc.dll: libobjc_s.a $(srcdir)/objc/libobjc_entry.o - $(GCC_FOR_TARGET) -dll -Wl,--base-file -Wl,libobjc.base \ + $(GCC_FOR_TARGET) -mdll -Wl,--base-file -Wl,libobjc.base \ -o libobjc.dll libobjc_s.a \ $(srcdir)/objc/libobjc_entry.o -lkernel32 $(DLLTOOL) --dllname libobjc.dll --def $(srcdir)/objc/libobjc.def \ --base-file libobjc.base --output-exp libobjc.exp - $(GCC_FOR_TARGET) -dll -Wl,--base-file libobjc.base libobjc.exp \ + $(GCC_FOR_TARGET) -mdll -Wl,--base-file libobjc.base libobjc.exp \ -o libobjc.dll libobjc_s.a \ $(srcdir)/objc/libobjc_entry.o -lkernel32 $(DLLTOOL) --dllname libobjc.dll --def $(srcdir)/objc/libobjc.def \ --base-file libobjc.base --output-exp libobjc.exp - $(GCC_FOR_TARGET) libobjc.exp -dll \ + $(GCC_FOR_TARGET) libobjc.exp -mdll \ -o libobjc.dll libobjc_s.a \ $(srcdir)/objc/libobjc_entry.o -lkernel32 $(DLLTOOL) --dllname libobjc.dll --def $(srcdir)/objc/libobjc.def \ --output-lib libobjc.a +# Platform generated information needed by ObjC runtime +$(srcdir)/objc/runtime-info.h: cc1obj + echo "" > emptyfile + echo "/* This file is automatically generated */" >$@ + ./cc1obj -print-objc-runtime-info emptyfile >>$@ + # # Build hooks: diff --git a/gcc/obstack.h b/gcc/obstack.h index 5ad3e5ef12b..3edd3f4285e 100644 --- a/gcc/obstack.h +++ b/gcc/obstack.h @@ -1,19 +1,25 @@ /* obstack.h - object stack macros Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc. -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. + the C library, however. The master source lives in /gd/gnu/lib. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + NOTE: The canonical source of this file is maintained with the GNU C Library. + Bugs can be reported to bug-glibc@prep.ai.mit.edu. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + USA. */ /* Summary: @@ -100,8 +106,12 @@ Summary: /* Don't do the contents of this file more than once. */ -#ifndef __OBSTACK_H__ -#define __OBSTACK_H__ +#ifndef _OBSTACK_H +#define _OBSTACK_H 1 + +#ifdef __cplusplus +extern "C" { +#endif /* We use subtraction of (char *) 0 instead of casting to int because on word-addressable machines a simple cast to int @@ -138,6 +148,17 @@ Summary: #define PTR_INT_TYPE long #endif +#if defined (_LIBC) || defined (HAVE_STRING_H) +#include +#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N)) +#else +#ifdef memcpy +#define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N)) +#else +#define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N)) +#endif +#endif + struct _obstack_chunk /* Lives at front of each chunk. */ { char *limit; /* 1 past end of this chunk */ @@ -171,7 +192,9 @@ struct obstack /* control current object in current chunk */ chunk contains a zero-length object. This prevents freeing the chunk if we allocate a bigger chunk to replace it. */ - unsigned alloc_failed:1; /* chunk alloc func returned 0 */ + unsigned alloc_failed:1; /* No longer used, as we now call the failed + handler on error, but retained for binary + compatibility. */ }; /* Declare the external functions we use; they are in obstack.c. */ @@ -184,11 +207,13 @@ extern int _obstack_begin (struct obstack *, int, int, extern int _obstack_begin_1 (struct obstack *, int, int, void *(*) (void *, long), void (*) (void *, void *), void *); +extern int _obstack_memory_used (struct obstack *); #else extern void _obstack_newchunk (); extern void _obstack_free (); extern int _obstack_begin (); extern int _obstack_begin_1 (); +extern int _obstack_memory_used (); #endif #if defined (__STDC__) && __STDC__ @@ -219,6 +244,7 @@ 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); @@ -228,17 +254,30 @@ 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); #endif /* __STDC__ */ /* Non-ANSI C cannot really support alternative functions for these macros, so we do not declare them. */ + +/* Error handler called when `obstack_chunk_alloc' failed to allocate + more memory. This can be set to a user defined function. The + default action is to print a message and abort. */ +#if defined (__STDC__) && __STDC__ +extern void (*obstack_alloc_failed_handler) (void); +#else +extern void (*obstack_alloc_failed_handler) (); +#endif + +/* Exit value used when `print_and_abort' is used. */ +extern int obstack_exit_failure; /* Pointer to beginning of object being allocated or to be allocated next. Note that this might not be the final address of the object because a new chunk might be needed to hold the final size. */ -#define obstack_base(h) ((h)->alloc_failed ? 0 : (h)->object_base) +#define obstack_base(h) ((h)->object_base) /* Size for allocating ordinary chunks. */ @@ -246,7 +285,7 @@ int obstack_chunk_size (struct obstack *obstack); /* Pointer to next byte not yet allocated in current chunk. */ -#define obstack_next_free(h) ((h)->alloc_failed ? 0 : (h)->next_free) +#define obstack_next_free(h) ((h)->next_free) /* Mask specifying low bits that should be clear in address of an object. */ @@ -270,13 +309,14 @@ int obstack_chunk_size (struct obstack *obstack); #define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ _obstack_begin_1 ((h), (size), (alignment), \ - (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun), (arg)) + (void *(*) (void *, long)) (chunkfun), \ + (void (*) (void *, void *)) (freefun), (arg)) #define obstack_chunkfun(h, newchunkfun) \ - ((h) -> chunkfun = (struct _obstack_chunk *(*)(long)) (newchunkfun)) + ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun)) #define obstack_freefun(h, newfreefun) \ - ((h) -> freefun = (void (*)(void *)) (newfreefun)) + ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun)) #else @@ -307,6 +347,8 @@ int obstack_chunk_size (struct obstack *obstack); #define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar) #define obstack_blank_fast(h,n) ((h)->next_free += (n)) + +#define obstack_memory_used(h) _obstack_memory_used (h) #if defined (__GNUC__) && defined (__STDC__) && __STDC__ /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and @@ -324,7 +366,6 @@ int obstack_chunk_size (struct obstack *obstack); #define obstack_object_size(OBSTACK) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ - __o->alloc_failed ? 0 : \ (unsigned) (__o->next_free - __o->object_base); }) #define obstack_room(OBSTACK) \ @@ -332,6 +373,14 @@ int obstack_chunk_size (struct obstack *obstack); ({ struct obstack *__o = (OBSTACK); \ (unsigned) (__o->chunk_limit - __o->next_free); }) +#define obstack_make_room(OBSTACK,length) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + int __len = (length); \ + if (__o->chunk_limit - __o->next_free < __len) \ + _obstack_newchunk (__o, __len); \ + (void) 0; }) + #define obstack_empty_p(OBSTACK) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ @@ -343,11 +392,8 @@ __extension__ \ int __len = (length); \ if (__o->next_free + __len > __o->chunk_limit) \ _obstack_newchunk (__o, __len); \ - if (!__o->alloc_failed) \ - { \ - bcopy ((char *) (where), __o->next_free, __len); \ - __o->next_free += __len; \ - } \ + _obstack_memcpy (__o->next_free, (char *) (where), __len); \ + __o->next_free += __len; \ (void) 0; }) #define obstack_grow0(OBSTACK,where,length) \ @@ -356,12 +402,9 @@ __extension__ \ int __len = (length); \ if (__o->next_free + __len + 1 > __o->chunk_limit) \ _obstack_newchunk (__o, __len + 1); \ - if (!__o->alloc_failed) \ - { \ - bcopy ((char *) (where), __o->next_free, __len); \ - __o->next_free += __len; \ - *(__o->next_free)++ = 0; \ - } \ + _obstack_memcpy (__o->next_free, (char *) (where), __len); \ + __o->next_free += __len; \ + *(__o->next_free)++ = 0; \ (void) 0; }) #define obstack_1grow(OBSTACK,datum) \ @@ -369,8 +412,7 @@ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ if (__o->next_free + 1 > __o->chunk_limit) \ _obstack_newchunk (__o, 1); \ - if (!__o->alloc_failed) \ - *(__o->next_free)++ = (datum); \ + *(__o->next_free)++ = (datum); \ (void) 0; }) /* These assume that the obstack alignment is good enough for pointers or ints, @@ -382,8 +424,7 @@ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ if (__o->next_free + sizeof (void *) > __o->chunk_limit) \ _obstack_newchunk (__o, sizeof (void *)); \ - if (!__o->alloc_failed) \ - *((void **)__o->next_free)++ = ((void *)datum); \ + *((void **)__o->next_free)++ = ((void *)datum); \ (void) 0; }) #define obstack_int_grow(OBSTACK,datum) \ @@ -391,8 +432,7 @@ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ if (__o->next_free + sizeof (int) > __o->chunk_limit) \ _obstack_newchunk (__o, sizeof (int)); \ - if (!__o->alloc_failed) \ - *((int *)__o->next_free)++ = ((int)datum); \ + *((int *)__o->next_free)++ = ((int)datum); \ (void) 0; }) #define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr) @@ -404,8 +444,7 @@ __extension__ \ int __len = (length); \ if (__o->chunk_limit - __o->next_free < __len) \ _obstack_newchunk (__o, __len); \ - if (!__o->alloc_failed) \ - __o->next_free += __len; \ + __o->next_free += __len; \ (void) 0; }) #define obstack_alloc(OBSTACK,length) \ @@ -432,21 +471,16 @@ __extension__ \ __extension__ \ ({ struct obstack *__o1 = (OBSTACK); \ void *value; \ - if (__o1->alloc_failed) \ - value = 0; \ - else \ - { \ - value = (void *) __o1->object_base; \ - if (__o1->next_free == value) \ - __o1->maybe_empty_object = 1; \ - __o1->next_free \ - = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\ - & ~ (__o1->alignment_mask)); \ - if (__o1->next_free - (char *)__o1->chunk \ - > __o1->chunk_limit - (char *)__o1->chunk) \ - __o1->next_free = __o1->chunk_limit; \ - __o1->object_base = __o1->next_free; \ - } \ + value = (void *) __o1->object_base; \ + if (__o1->next_free == value) \ + __o1->maybe_empty_object = 1; \ + __o1->next_free \ + = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\ + & ~ (__o1->alignment_mask)); \ + if (__o1->next_free - (char *)__o1->chunk \ + > __o1->chunk_limit - (char *)__o1->chunk) \ + __o1->next_free = __o1->chunk_limit; \ + __o1->object_base = __o1->next_free; \ value; }) #define obstack_free(OBSTACK, OBJ) \ @@ -460,7 +494,7 @@ __extension__ \ #else /* not __GNUC__ or not __STDC__ */ #define obstack_object_size(h) \ - (unsigned) ((h)->alloc_failed ? 0 : (h)->next_free - (h)->object_base) + (unsigned) ((h)->next_free - (h)->object_base) #define obstack_room(h) \ (unsigned) ((h)->chunk_limit - (h)->next_free) @@ -474,40 +508,40 @@ __extension__ \ Casting the third operand to void was tried before, but some compilers won't accept it. */ +#define obstack_make_room(h,length) \ +( (h)->temp = (length), \ + (((h)->next_free + (h)->temp > (h)->chunk_limit) \ + ? (_obstack_newchunk ((h), (h)->temp), 0) : 0)) + #define obstack_grow(h,where,length) \ ( (h)->temp = (length), \ (((h)->next_free + (h)->temp > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \ - ((h)->alloc_failed ? 0 : \ - (bcopy ((char *) (where), (h)->next_free, (h)->temp), \ - (h)->next_free += (h)->temp))) + _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \ + (h)->next_free += (h)->temp) #define obstack_grow0(h,where,length) \ ( (h)->temp = (length), \ (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \ - ((h)->alloc_failed ? 0 : \ - (bcopy ((char *) (where), (h)->next_free, (h)->temp), \ + _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \ (h)->next_free += (h)->temp, \ - *((h)->next_free)++ = 0))) + *((h)->next_free)++ = 0) #define obstack_1grow(h,datum) \ ( (((h)->next_free + 1 > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), 1), 0) : 0), \ - ((h)->alloc_failed ? 0 : \ - (*((h)->next_free)++ = (datum)))) + (*((h)->next_free)++ = (datum))) #define obstack_ptr_grow(h,datum) \ ( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \ - ((h)->alloc_failed ? 0 : \ - (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))) + (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum))) #define obstack_int_grow(h,datum) \ ( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \ - ((h)->alloc_failed ? 0 : \ - (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))) + (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum))) #define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr) #define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint) @@ -516,8 +550,7 @@ __extension__ \ ( (h)->temp = (length), \ (((h)->chunk_limit - (h)->next_free < (h)->temp) \ ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \ - ((h)->alloc_failed ? 0 : \ - ((h)->next_free += (h)->temp))) + ((h)->next_free += (h)->temp)) #define obstack_alloc(h,length) \ (obstack_blank ((h), (length)), obstack_finish ((h))) @@ -529,19 +562,18 @@ __extension__ \ (obstack_grow0 ((h), (where), (length)), obstack_finish ((h))) #define obstack_finish(h) \ -( (h)->alloc_failed ? 0 : \ - (((h)->next_free == (h)->object_base \ +( ((h)->next_free == (h)->object_base \ ? (((h)->maybe_empty_object = 1), 0) \ : 0), \ (h)->temp = __PTR_TO_INT ((h)->object_base), \ (h)->next_free \ = __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \ & ~ ((h)->alignment_mask)), \ - (((h)->next_free - (char *) (h)->chunk \ + (((h)->next_free - (char *) (h)->chunk \ > (h)->chunk_limit - (char *) (h)->chunk) \ ? ((h)->next_free = (h)->chunk_limit) : 0), \ (h)->object_base = (h)->next_free, \ - __INT_TO_PTR ((h)->temp))) + __INT_TO_PTR ((h)->temp)) #if defined (__STDC__) && __STDC__ #define obstack_free(h,obj) \ @@ -561,4 +593,8 @@ __extension__ \ #endif /* not __GNUC__ or not __STDC__ */ -#endif /* not __OBSTACK_H__ */ +#ifdef __cplusplus +} /* C++ */ +#endif + +#endif /* obstack.h */ diff --git a/gcc/pexecute.c b/gcc/pexecute.c index 39fe9c7d5db..9f80cb05b39 100644 --- a/gcc/pexecute.c +++ b/gcc/pexecute.c @@ -223,6 +223,7 @@ pwait (pid, status, flags) #if defined (_WIN32) #include +#include extern int _spawnv (); extern int _spawnvp (); @@ -301,9 +302,23 @@ pwait (pid, status, flags) int *status; int flags; { + int termstat; + + pid = cwait (&termstat, pid, WAIT_CHILD); + /* ??? Here's an opportunity to canonicalize the values in STATUS. Needed? */ - return _cwait (status, pid, WAIT_CHILD); + + /* cwait returns the child process exit code in termstat. + A value of 3 indicates that the child caught a signal, but not + which one. Since only SIGABRT, SIGFPE and SIGINT do anything, we + report SIGABRT. */ + if (termstat == 3) + *status = SIGABRT; + else + *status = (((termstat) & 0xff) << 8); + + return pid; } #endif /* _WIN32 */ diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index bb4ee0d631a..60405bd8a81 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -232,10 +232,15 @@ print_inline_rtx (outf, x, ind) FILE *outf; rtx x; { + int oldsaw = sawclose; + int oldindent = indent; + sawclose = 0; indent = ind; outfile = outf; print_rtx (x); + sawclose = oldsaw; + indent = oldindent; } /* Call this function from the debugger to see what X looks like. */ diff --git a/gcc/profile.c b/gcc/profile.c index 23617ede9c9..e49c4be6b43 100644 --- a/gcc/profile.c +++ b/gcc/profile.c @@ -427,7 +427,7 @@ output_gcov_string (string, delimiter) the flow graph that are needed to reconstruct the dynamic behavior of the flow graph. - When FLAG_BRANCH_PROBABILITIES is nonzero, this function reads auxilliary + When FLAG_BRANCH_PROBABILITIES is nonzero, this function reads auxiliary information from a data file containing arc count information from previous executions of the function being compiled. In this case, the flow graph is annotated with actual execution counts, which are later propagated into the @@ -867,7 +867,7 @@ branch_prob (f, dump_file) Note that the spanning tree is considered undirected, so that as many must-split arcs as possible can be put on it. - Fallthough arcs which are crowded should not be chosen on the first + Fallthrough arcs which are crowded should not be chosen on the first pass, since they do not require creating a new basic block. These arcs will have fall_through set. */ diff --git a/gcc/protoize.c b/gcc/protoize.c index 3b50836774a..3a8177f125e 100644 --- a/gcc/protoize.c +++ b/gcc/protoize.c @@ -81,6 +81,18 @@ Boston, MA 02111-1307, USA. */ #endif #include +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif + #include "gansidecl.h" /* Include getopt.h for the sake of getopt_long. @@ -180,18 +192,12 @@ typedef char * const_pointer_type; /* Declaring stat or __flsbuf with a prototype causes conflicts with system headers on some systems. */ -#ifndef abort -typedef void voidfn (); -extern VOLATILE voidfn abort; -#endif extern int creat (); #if 0 /* These conflict with stdio.h on some systems. */ extern int fprintf (FILE *, const char *, ...); extern int printf (const char *, ...); extern int open (const char *, int, ...); #endif /* 0 */ -extern void exit (); -extern void free (); extern int read (); extern int write (); extern int close (); @@ -219,7 +225,9 @@ extern size_t strlen () #endif /* !defined (POSIX) */ +#ifdef NEED_DECLARATION_RINDEX extern char *rindex (); +#endif /* Look for these where the `const' qualifier is intentionally cast aside. */ @@ -307,39 +315,41 @@ static const int hash_mask = (HASH_TABLE_SIZE - 1); #define LOCAL_INCLUDE_DIR "/usr/local/include" #endif -struct default_include { const char *fname; int x1, x2; } include_defaults[] +struct default_include { const char *fname; + const char *component; + int x1, x2; } include_defaults[] #ifdef INCLUDE_DEFAULTS = INCLUDE_DEFAULTS; #else = { /* Pick up GNU C++ specific include files. */ - { GPLUSPLUS_INCLUDE_DIR, 1, 1 }, + { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, #ifdef CROSS_COMPILE /* This is the dir for fixincludes. Put it just before the files that we fix. */ - { GCC_INCLUDE_DIR, 0, 0 }, + { GCC_INCLUDE_DIR, "GCC", 0, 0 }, /* For cross-compilation, this dir name is generated automatically in Makefile.in. */ - { CROSS_INCLUDE_DIR, 0, 0 }, + { CROSS_INCLUDE_DIR, 0, 0, 0 }, /* This is another place that the target system's headers might be. */ - { TOOL_INCLUDE_DIR, 0, 0 }, + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 0 }, #else /* not CROSS_COMPILE */ /* This should be /use/local/include and should come before the fixincludes-fixed header files. */ - { LOCAL_INCLUDE_DIR, 0, 1 }, + { LOCAL_INCLUDE_DIR, 0, 0, 1 }, /* This is here ahead of GCC_INCLUDE_DIR because assert.h goes here. Likewise, behind LOCAL_INCLUDE_DIR, where glibc puts its assert.h. */ - { TOOL_INCLUDE_DIR, 0, 0 }, + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 0 }, /* This is the dir for fixincludes. Put it just before the files that we fix. */ - { GCC_INCLUDE_DIR, 0, 0 }, + { GCC_INCLUDE_DIR, "GCC", 0, 0 }, /* Some systems have an extra dir of include files. */ #ifdef SYSTEM_INCLUDE_DIR - { SYSTEM_INCLUDE_DIR, 0, 0 }, + { SYSTEM_INCLUDE_DIR, 0, 0, 0 }, #endif - { STANDARD_INCLUDE_DIR, 0, 0}, + { STANDARD_INCLUDE_DIR, 0, 0, 0}, #endif /* not CROSS_COMPILE */ - { 0, 0, 0} + { 0, 0, 0, 0} }; #endif /* no INCLUDE_DEFAULTS */ diff --git a/gcc/regclass.c b/gcc/regclass.c index db29999aee1..7d9edd26e96 100644 --- a/gcc/regclass.c +++ b/gcc/regclass.c @@ -1540,6 +1540,25 @@ record_address_regs (x, class, scale) else if (code1 == SYMBOL_REF || code1 == CONST || code1 == LABEL_REF) record_address_regs (arg0, INDEX_REG_CLASS, scale); + /* If both operands are registers but one is already a hard register + of index or base class, give the other the class that the hard + register is not. */ + + else if (code0 == REG && code1 == REG + && REGNO (arg0) < FIRST_PSEUDO_REGISTER + && (REG_OK_FOR_BASE_P (arg0) || REG_OK_FOR_INDEX_P (arg0))) + record_address_regs (arg1, + REG_OK_FOR_BASE_P (arg0) + ? INDEX_REG_CLASS : BASE_REG_CLASS, + scale); + else if (code0 == REG && code1 == REG + && REGNO (arg1) < FIRST_PSEUDO_REGISTER + && (REG_OK_FOR_BASE_P (arg1) || REG_OK_FOR_INDEX_P (arg1))) + record_address_regs (arg0, + REG_OK_FOR_BASE_P (arg1) + ? INDEX_REG_CLASS : BASE_REG_CLASS, + scale); + /* If one operand is known to be a pointer, it must be the base with the other operand the index. Likewise if the other operand is a MULT. */ diff --git a/gcc/reload.c b/gcc/reload.c index c8a30d3a353..f8d0b8bf159 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -260,7 +260,7 @@ static int this_insn_is_asm; static int hard_regs_live_known; /* Indexed by hard reg number, - element is nonegative if hard reg has been spilled. + element is nonnegative if hard reg has been spilled. This vector is passed to `find_reloads' as an argument and is not changed here. */ static short *static_reload_reg_p; @@ -4940,7 +4940,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) CALL_INSN - and it does not set CC0. But don't do this if we cannot directly address the memory location, since this will make it harder to - reuse address reloads, and increses register pressure. + reuse address reloads, and increases register pressure. Also don't do this if we can probably update x directly. */ rtx equiv = reg_equiv_mem[regno]; int icode = (int) add_optab->handlers[(int) Pmode].insn_code; @@ -5351,6 +5351,18 @@ find_replacement (loc) } } + /* If *LOC is a PLUS, MINUS, or MULT, see if a replacement is scheduled for + what's inside and make a new rtl if so. */ + if (GET_CODE (*loc) == PLUS || GET_CODE (*loc) == MINUS + || GET_CODE (*loc) == MULT) + { + rtx x = find_replacement (&XEXP (*loc, 0)); + rtx y = find_replacement (&XEXP (*loc, 1)); + + if (x != XEXP (*loc, 0) || y != XEXP (*loc, 1)) + return gen_rtx (GET_CODE (*loc), GET_MODE (*loc), x, y); + } + return *loc; } diff --git a/gcc/reload1.c b/gcc/reload1.c index a355a629a37..c8573dc39bc 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -673,7 +673,14 @@ reload (first, global, dumpfile) if (i > LAST_VIRTUAL_REGISTER) { if (GET_CODE (x) == MEM) - reg_equiv_memory_loc[i] = x; + { + /* If the operand is a PLUS, the MEM may be shared, + so make sure we have an unshared copy here. */ + if (GET_CODE (XEXP (x, 0)) == PLUS) + x = copy_rtx (x); + + reg_equiv_memory_loc[i] = x; + } else if (CONSTANT_P (x)) { if (LEGITIMATE_CONSTANT_P (x)) diff --git a/gcc/rtl.c b/gcc/rtl.c index a386f84cd0a..dde2a8396a5 100644 --- a/gcc/rtl.c +++ b/gcc/rtl.c @@ -184,6 +184,9 @@ char *reg_note_name[] = { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "REG_WAS_0", "REG_EXEC_COUNT", "REG_NOALIAS", "REG_SAVE_AREA", "REG_BR_PRED" }; +static void dump_and_abort PROTO((int, int, FILE *)); +static void read_name PROTO((char *, FILE *)); + /* Allocate an rtx vector of N elements. Store the length, and initialize all elements to zero. */ @@ -849,14 +852,3 @@ init_rtl () } } } - -#ifdef memset -gcc_memset (dest, value, len) - char *dest; - int value; - int len; -{ - while (len-- > 0) - *dest++ = value; -} -#endif /* memset */ diff --git a/gcc/rtl.def b/gcc/rtl.def index d0627791b64..c1d14a1bb5a 100644 --- a/gcc/rtl.def +++ b/gcc/rtl.def @@ -1,7 +1,7 @@ /* This file contains the definitions and documentation for the Register Transfer Expressions (rtx's) that make up the Register Transfer Language (rtl) used in the Back End of the GNU compiler. - Copyright (C) 1987, 1988, 1992, 1994, 1995 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 92, 94, 95, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -102,7 +102,7 @@ DEF_RTL_EXPR(INSN_LIST, "insn_list", "ue", 'x') '=' to indicate the operand is only written to. '+' to indicate the operand is both read and written to. - Each character in the string represents an allocatable class for an operand. + Each character in the string represents an allocable class for an operand. 'g' indicates the operand can be any valid class. 'i' indicates the operand can be immediate (in the instruction) data. 'r' indicates the operand can be in a register. @@ -257,7 +257,7 @@ DEF_RTL_EXPR(DEFINE_DELAY, "define_delay", "eE", 'x') unit with no issue constraints. If only one operation can be executed a time and the unit is busy for the entire time, the 3rd operand should be specified as 1, the 6th operand - sould be specified as 0, and the 7th operand should not + should be specified as 0, and the 7th operand should not be specified. If this operand is specified, it is a list of attribute diff --git a/gcc/rtl.h b/gcc/rtl.h index 9f9abda2962..aa3ef9f47ba 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -699,6 +699,9 @@ extern char *xrealloc (); extern char *oballoc PROTO((int)); extern char *permalloc PROTO((int)); +#ifdef NEED_DECLARATION_FREE +extern void free PROTO((void *)); +#endif extern rtx rtx_alloc PROTO((RTX_CODE)); extern rtvec rtvec_alloc PROTO((int)); extern rtx copy_rtx PROTO((rtx)); diff --git a/gcc/stmt.c b/gcc/stmt.c index 9810ddbc010..db0b77dc133 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -1618,7 +1618,11 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) case '5': case '6': case '7': case '8': case '9': if (TREE_STRING_POINTER (TREE_PURPOSE (tail))[j] >= '0' + noutputs) - error ("matching constraint references invalid operand number"); + { + error + ("matching constraint references invalid operand number"); + return; + } /* ... fall through ... */ @@ -1751,7 +1755,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) continue; } - /* Ignore unknown register, error already signalled. */ + /* Ignore unknown register, error already signaled. */ continue; } @@ -4071,7 +4075,7 @@ expand_dcc_cleanup (decl) /* Arrange for the top element of the dynamic handler chain to be popped if we exit the current binding contour. DECL is the - assciated declaration, if any, otherwise NULL_TREE. If the current + associated declaration, if any, otherwise NULL_TREE. If the current contour is left via an exception, then __sjthrow will pop the top element off the dynamic handler chain. The code that avoids doing the action we push into the handler chain in the exceptional case @@ -4248,10 +4252,10 @@ expand_cleanups (list, dont_do, in_fixup, reachable) context, so that any cleanup actions we register with expand_decl_init will be properly conditionalized when those cleanup actions are later performed. Must be called before any - expression (tree) is expanded that is within a contidional context. */ + expression (tree) is expanded that is within a conditional context. */ void -start_cleanup_deferal () +start_cleanup_deferral () { /* block_stack can be NULL if we are inside the parameter list. It is OK to do nothing, because cleanups aren't possible here. */ @@ -4260,12 +4264,12 @@ start_cleanup_deferal () } /* Mark the end of a conditional region of code. Because cleanup - deferals may be nested, we may still be in a conditional region + deferrals may be nested, we may still be in a conditional region after we end the currently deferred cleanups, only after we end all deferred cleanups, are we back in unconditional code. */ void -end_cleanup_deferal () +end_cleanup_deferral () { /* block_stack can be NULL if we are inside the parameter list. It is OK to do nothing, because cleanups aren't possible here. */ @@ -4378,7 +4382,7 @@ expand_start_case (exit_flag, expr, type, printname) thiscase->data.case_stmt.start = get_last_insn (); - start_cleanup_deferal (); + start_cleanup_deferral (); } @@ -4431,7 +4435,7 @@ expand_start_case_dummy () thiscase->data.case_stmt.num_ranges = 0; case_stack = thiscase; nesting_stack = thiscase; - start_cleanup_deferal (); + start_cleanup_deferral (); } /* End a dummy case statement. */ @@ -4439,7 +4443,7 @@ expand_start_case_dummy () void expand_end_case_dummy () { - end_cleanup_deferal (); + end_cleanup_deferral (); POPSTACK (case_stack); } @@ -4546,11 +4550,14 @@ pushcase (value, converter, label, duplicate) return 0; } -/* Like pushcase but this case applies to all values - between VALUE1 and VALUE2 (inclusive). - The return value is the same as that of pushcase - but there is one additional error code: - 4 means the specified range was empty. */ +/* Like pushcase but this case applies to all values between VALUE1 and + VALUE2 (inclusive). If VALUE1 is NULL, the range starts at the lowest + value of the index type and ends at VALUE2. If VALUE2 is NULL, the range + starts at VALUE1 and ends at the highest value of the index type. + If both are NULL, this case applies to all values. + + The return value is the same as that of pushcase but there is one + additional error code: 4 means the specified range was empty. */ int pushcase_range (value1, value2, converter, label, duplicate) @@ -4568,10 +4575,6 @@ pushcase_range (value1, value2, converter, label, duplicate) if (! (case_stack && case_stack->data.case_stmt.start)) return 1; - /* Fail if the range is empty. */ - if (tree_int_cst_lt (value2, value1)) - return 4; - if (stack_block_stack && stack_block_stack->depth > case_stack->depth) return 5; @@ -4604,20 +4607,28 @@ pushcase_range (value1, value2, converter, label, duplicate) } case_stack->data.case_stmt.seenlabel = 1; - /* Convert VALUEs to type in which the comparisons are nominally done. */ - if (value1 == 0) /* Negative infinity. */ + /* Convert VALUEs to type in which the comparisons are nominally done + and replace any unspecified value with the corresponding bound. */ + if (value1 == 0) value1 = TYPE_MIN_VALUE (index_type); - value1 = (*converter) (nominal_type, value1); - - if (value2 == 0) /* Positive infinity. */ + if (value2 == 0) value2 = TYPE_MAX_VALUE (index_type); + + /* Fail if the range is empty. Do this before any conversion since + we want to allow out-of-range empty ranges. */ + if (tree_int_cst_lt (value2, value1)) + return 4; + + value1 = (*converter) (nominal_type, value1); value2 = (*converter) (nominal_type, value2); /* Fail if these values are out of range. */ - if (! int_fits_type_p (value1, index_type)) + if (TREE_CONSTANT_OVERFLOW (value1) + || ! int_fits_type_p (value1, index_type)) return 3; - if (! int_fits_type_p (value2, index_type)) + if (TREE_CONSTANT_OVERFLOW (value2) + || ! int_fits_type_p (value2, index_type)) return 3; return add_case_node (value1, value2, label, duplicate); @@ -5433,7 +5444,7 @@ expand_end_case (orig_index) if (count != 0) range = fold (build (MINUS_EXPR, index_type, maxval, minval)); - end_cleanup_deferal (); + end_cleanup_deferral (); if (count == 0) { @@ -5703,7 +5714,7 @@ expand_end_case (orig_index) thiscase->data.case_stmt.start); } else - end_cleanup_deferal (); + end_cleanup_deferral (); if (thiscase->exit_label) emit_label (thiscase->exit_label); diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index 21a8f4404ae..a4698157cc7 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -1190,7 +1190,7 @@ get_best_mode (bitsize, bitpos, align, largest_mode, volatilep) mode = GET_MODE_WIDER_MODE (mode)) { unit = GET_MODE_BITSIZE (mode); - if (bitpos / unit == (bitpos + bitsize - 1) / unit) + if ((bitpos % unit) + bitsize <= unit) break; } diff --git a/gcc/tm.texi b/gcc/tm.texi index 1e6a62b1cc1..3f451d1f5b0 100644 --- a/gcc/tm.texi +++ b/gcc/tm.texi @@ -1361,7 +1361,7 @@ One use of this macro is on machines where the highest numbered registers must always be saved and the save-multiple-registers instruction supports only sequences of consecutive registers. On such machines, define @code{REG_ALLOC_ORDER} to be an initializer that lists -the highest numbered allocatable register first. +the highest numbered allocable register first. @findex ORDER_REGS_FOR_LOCAL_ALLOC @item ORDER_REGS_FOR_LOCAL_ALLOC @@ -1465,14 +1465,14 @@ be used unless some pattern's constraint asks for one. @findex MODES_TIEABLE_P @item MODES_TIEABLE_P (@var{mode1}, @var{mode2}) A C expression that is nonzero if a value of mode -@var{mode1} is accessable in mode @var{mode2} without copying. +@var{mode1} is accessible in mode @var{mode2} without copying. If @code{HARD_REGNO_MODE_OK (@var{r}, @var{mode1})} and @code{HARD_REGNO_MODE_OK (@var{r}, @var{mode2})} are always the same for any @var{r}, then @code{MODES_TIEABLE_P (@var{mode1}, @var{mode2})} should be nonzero. If they differ for any @var{r}, you should define this macro to return zero unless some other mechanism ensures the -accessability of the value in a narrower mode. +accessibility of the value in a narrower mode. You should define this macro to return nonzero in as many cases as possible since doing so will allow GNU CC to perform better register @@ -3333,7 +3333,7 @@ the function prologue. Normally, the profiling code comes after. A C statement or compound statement to output to @var{file} some assembler code to initialize basic-block profiling for the current object module. The global compile flag @code{profile_block_flag} -distingishes two profile modes. +distinguishes two profile modes. @table @code @findex __bb_init_func @@ -3393,7 +3393,7 @@ call __bb_init_trace_func A C statement or compound statement to output to @var{file} some assembler code to increment the count associated with the basic block number @var{blockno}. The global compile flag -@code{profile_block_flag} distingishes two profile modes. +@code{profile_block_flag} distinguishes two profile modes. @table @code @item profile_block_flag != 2 @@ -5479,6 +5479,18 @@ which defines (equates) the symbol @var{name} to have the value @var{value}. If SET_ASM_OP is defined, a default definition is provided which is correct for most systems. +@findex ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL +@item ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL (@var{stream}, @var{symbol}, @var{high}, @var{low}) +A C statement to output to the stdio stream @var{stream} assembler code +which defines (equates) the symbol @var{symbol} to have a value equal to +the difference of the two symbols @var{high} and @var{low}, i.e. +@var{high} minus @var{low}. GNU CC guarantees that the symbols @var{high} +and @var{low} are already known by the assembler so that the difference +resolves into a constant. + +If SET_ASM_OP is defined, a default definition is provided which is +correct for most systems. + @findex ASM_OUTPUT_WEAK_ALIAS @item ASM_OUTPUT_WEAK_ALIAS (@var{stream}, @var{name}, @var{value}) A C statement to output to the stdio stream @var{stream} assembler code diff --git a/gcc/toplev.c b/gcc/toplev.c index 4e50173718f..7340b623b64 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -35,21 +35,31 @@ Boston, MA 02111-1307, USA. */ #include #include #include -#if !defined (_WIN32) || defined (__CYGWIN32__) -#ifdef USG #undef FLOAT +#ifdef HAVE_SYS_PARAM_H #include -/* This is for hpux. It is a real screw. They should change hpux. */ -#undef FLOAT -#include -#include /* Correct for hpux at least. Is it good on other USG? */ +#endif + +#undef FLOAT /* This is for hpux. They should change hpux. */ #undef FFS /* Some systems define this in param.h. */ + +#ifdef TIME_WITH_SYS_TIME +# include +# include #else -#ifndef VMS -#include -#include +# if HAVE_SYS_TIME_H +# include +# else +# include #endif #endif + +#ifdef HAVE_SYS_RESOURCE_H +# include +#endif + +#ifdef HAVE_SYS_TIMES_H +# include #endif #include "input.h" @@ -854,6 +864,7 @@ char *lang_options[] = "-Wno-selector", "-Wprotocol", "-Wno-protocol", + "-print-objc-runtime-info", #include "options.h" 0 @@ -3026,7 +3037,7 @@ rest_of_compilation (decl) if (DECL_SAVED_INSNS (decl) == 0) { - int inlineable = 0; + int inlinable = 0; char *lose; /* If requested, consider whether to make this function inline. */ @@ -3053,7 +3064,7 @@ rest_of_compilation (decl) like "inline" was specified for a function if we choose to inline it. This isn't quite right, but it's probably not worth the trouble to fix. */ - inlineable = DECL_INLINE (decl) = 1; + inlinable = DECL_INLINE (decl) = 1; }); insns = get_insns (); @@ -3073,7 +3084,7 @@ rest_of_compilation (decl) /* If we can, defer compiling inlines until EOF. save_for_inline_copying can be extremely expensive. */ - if (inlineable && ! decl_function_context (decl)) + if (inlinable && ! decl_function_context (decl)) DECL_DEFER_OUTPUT (decl) = 1; /* If function is inline, and we don't yet know whether to @@ -3088,7 +3099,7 @@ rest_of_compilation (decl) finish compiling ourselves. Otherwise, wait until EOF. We have to do this because the purge_addressof transformation changes the DECL_RTL for many variables, which confuses integrate. */ - if (inlineable) + if (inlinable) { if (decl_function_context (decl)) purge_addressof (insns); @@ -3131,14 +3142,14 @@ rest_of_compilation (decl) } #endif TIMEVAR (integration_time, save_for_inline_nocopy (decl)); - RTX_INTEGRATED_P (DECL_SAVED_INSNS (decl)) = inlineable; + RTX_INTEGRATED_P (DECL_SAVED_INSNS (decl)) = inlinable; goto exit_rest_of_compilation; } } /* If we have to compile the function now, save its rtl and subdecls so that its compilation will not affect what others get. */ - if (inlineable || DECL_DEFER_OUTPUT (decl)) + if (inlinable || DECL_DEFER_OUTPUT (decl)) { #ifdef DWARF_DEBUGGING_INFO /* Generate the DWARF info for the "abstract" instance of @@ -3167,7 +3178,7 @@ rest_of_compilation (decl) saved_block_tree = DECL_INITIAL (decl); saved_arguments = DECL_ARGUMENTS (decl); TIMEVAR (integration_time, save_for_inline_copying (decl)); - RTX_INTEGRATED_P (DECL_SAVED_INSNS (decl)) = inlineable; + RTX_INTEGRATED_P (DECL_SAVED_INSNS (decl)) = inlinable; } /* If specified extern inline but we aren't inlining it, we are diff --git a/gcc/tree.c b/gcc/tree.c index ecd6961daf6..5db36c2a5eb 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -55,6 +55,10 @@ Boston, MA 02111-1307, USA. */ extern void free PROTO((void *)); #endif +#ifdef HAVE_STDLIB_H +#include +#endif + #define obstack_chunk_alloc xmalloc #define obstack_chunk_free free @@ -2605,10 +2609,10 @@ substitute_in_expr (exp, f, r) op0 = (TREE_CHAIN (exp) == 0 ? 0 : substitute_in_expr (TREE_CHAIN (exp), f, r)); op1 = substitute_in_expr (TREE_VALUE (exp), f, r); - if (op0 == TREE_CHAIN (exp) || op1 == TREE_VALUE (exp)) + if (op0 == TREE_CHAIN (exp) && op1 == TREE_VALUE (exp)) return exp; - return tree_cons (TREE_PURPOSE (exp), op0, op1); + return tree_cons (TREE_PURPOSE (exp), op1, op0); } abort (); @@ -4361,7 +4365,7 @@ get_unwidened (op, for_type) if (TREE_CODE (op) == COMPONENT_REF /* Since type_for_size always gives an integer type. */ && TREE_CODE (type) != REAL_TYPE - /* Don't crash if field not layed out yet. */ + /* Don't crash if field not laid out yet. */ && DECL_SIZE (TREE_OPERAND (op, 1)) != 0) { unsigned innerprec = TREE_INT_CST_LOW (DECL_SIZE (TREE_OPERAND (op, 1))); diff --git a/gcc/tree.def b/gcc/tree.def index 1db541f6f01..bd4b989e426 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the tree codes used in the GNU C compiler. - Copyright (C) 1987, 1988, 1993, 1995 Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1993, 1995, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -693,7 +693,7 @@ DEFTREECODE (PREINCREMENT_EXPR, "preincrement_expr", "e", 2) DEFTREECODE (POSTDECREMENT_EXPR, "postdecrement_expr", "e", 2) DEFTREECODE (POSTINCREMENT_EXPR, "postincrement_expr", "e", 2) -/* Evalute operand 1. If and only if an exception is thrown during +/* Evaluate operand 1. If and only if an exception is thrown during the evaluation of operand 1, evaluate operand 2. This differs from WITH_CLEANUP_EXPR, in that operand 2 is never diff --git a/gcc/tree.h b/gcc/tree.h index bfde55ef0db..27fa47d5c2f 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -752,7 +752,7 @@ struct tree_block the same way that the first union alternative would be passed. */ #define TYPE_TRANSPARENT_UNION(NODE) ((NODE)->type.transparent_union_flag) -/* Indicated that objects of this type should be layed out in as +/* Indicated that objects of this type should be laid out in as compact a way as possible. */ #define TYPE_PACKED(NODE) ((NODE)->type.packed_flag) @@ -1232,7 +1232,9 @@ extern char *oballoc PROTO((int)); extern char *permalloc PROTO((int)); extern char *savealloc PROTO((int)); extern char *expralloc PROTO((int)); +#ifdef NEED_DECLARATION_FREE extern void free PROTO((void *)); +#endif /* Lowest level primitive for allocating a node. The TREE_CODE is the only argument. Contents are initialized @@ -1711,8 +1713,8 @@ extern void expand_null_return PROTO((void)); extern void expand_return PROTO((tree)); extern void expand_start_bindings PROTO((int)); extern void expand_end_bindings PROTO((tree, int, int)); -extern void start_cleanup_deferal PROTO((void)); -extern void end_cleanup_deferal PROTO((void)); +extern void start_cleanup_deferral PROTO((void)); +extern void end_cleanup_deferral PROTO((void)); extern void mark_block_as_eh_region PROTO((void)); extern void mark_block_as_not_eh_region PROTO((void)); extern int is_eh_region PROTO((void)); @@ -1764,6 +1766,52 @@ extern void rrotate_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT, extern int operand_equal_p PROTO((tree, tree, int)); extern tree invert_truthvalue PROTO((tree)); +/* Interface of the DWARF2 unwind info support. */ + +/* Decide whether we want to emit frame unwind information for the current + translation unit. */ + +extern int dwarf2out_do_frame PROTO((void)); + +/* Generate a new label for the CFI info to refer to. */ + +extern char *dwarf2out_cfi_label PROTO((void)); + +/* Entry point to update the canonical frame address (CFA). */ + +extern void dwarf2out_def_cfa PROTO((char *, unsigned, long)); + +/* Add the CFI for saving a register window. */ + +extern void dwarf2out_window_save PROTO((char *)); + +/* Add a CFI to update the running total of the size of arguments pushed + onto the stack. */ + +extern void dwarf2out_args_size PROTO((char *, long)); + +/* Entry point for saving a register to the stack. */ + +extern void dwarf2out_reg_save PROTO((char *, unsigned, long)); + +/* Entry point for saving the return address in the stack. */ + +extern void dwarf2out_return_save PROTO((char *, long)); + +/* Entry point for saving the return address in a register. */ + +extern void dwarf2out_return_reg PROTO((char *, unsigned)); + +/* Output a marker (i.e. a label) for the beginning of a function, before + the prologue. */ + +extern void dwarf2out_begin_prologue PROTO((void)); + +/* Output a marker (i.e. a label) for the absolute end of the generated + code for a function definition. */ + +extern void dwarf2out_end_epilogue PROTO((void)); + /* The language front-end must define these functions. */ /* Function of no arguments for initializing lexical scanning. */ diff --git a/gcc/unroll.c b/gcc/unroll.c index 688ee648da4..b2879b3466a 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -2160,6 +2160,7 @@ back_branch_in_range_p (insn, loop_start, loop_end) rtx loop_start, loop_end; { rtx p, q, target_insn; + rtx orig_loop_end = loop_end; /* Stop before we get to the backward branch at the end of the loop. */ loop_end = prev_nonnote_insn (loop_end); @@ -2171,8 +2172,10 @@ back_branch_in_range_p (insn, loop_start, loop_end) while (INSN_DELETED_P (insn)) insn = NEXT_INSN (insn); - /* Check for the case where insn is the last insn in the loop. */ - if (insn == loop_end) + /* Check for the case where insn is the last insn in the loop. Deal + with the case where INSN was a deleted loop test insn, in which case + it will now be the NOTE_LOOP_END. */ + if (insn == loop_end || insn == orig_loop_end) return 0; for (p = NEXT_INSN (insn); p != loop_end; p = NEXT_INSN (p)) diff --git a/gcc/varasm.c b/gcc/varasm.c index ab88bebb46f..7f2970fa770 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -67,7 +67,7 @@ Boston, MA 02111-1307, USA. */ #else /* !NO_DOT_IN_LABEL */ #define CHKR_PREFIX "chkr." #endif -#else /* !NO_DOLLAR_IN_LABLE */ +#else /* !NO_DOLLAR_IN_LABEL */ #define CHKR_PREFIX "chkr$" #endif #define CHKR_PREFIX_SIZE (sizeof (CHKR_PREFIX) - 1) diff --git a/gcc/version.c b/gcc/version.c index f8640f972f8..6bef736eedf 100644 --- a/gcc/version.c +++ b/gcc/version.c @@ -1 +1 @@ -char *version_string = "egcs-2.91.00 971101 (gcc2-971021 experimental)"; +char *version_string = "egcs-2.91.01 971206 (gcc-2.8.0)"; diff --git a/gcc/vmsconfig.com b/gcc/vmsconfig.com index dc74ff1edc6..87d34daa5a8 100644 --- a/gcc/vmsconfig.com +++ b/gcc/vmsconfig.com @@ -101,18 +101,17 @@ $open ifile$ t.tmp $read ifile$ line $close ifile$ $delete t.tmp; -$ijk=f$locate("""",line)+1 -$line=f$extract(ijk,f$length(line)-ijk,line) -$ijk=f$locate("""",line) -$line=f$extract(0,ijk,line) -$ijk=f$locate("\n",line) -$line=f$extract(0,ijk,line) -$ ! -$elm=f$element(1," ",line) -$ ! -$write_ident: +$line=f$element(1,"""",line) !extract the portion between 1st & 2nd quotes +$! Format of 'line' is "name-nn.nn.nn[.nn] [date text]" (without the quotes). +$! We want "name-nn.nn.nn[.nn][-date]"; "-date" suffix is optional. +$id = f$element(1,"-",line) !strip "name-" prefix +$if id.eqs."-" then id = line !no prefix found? +$id = f$element(0," ",id) + "-" + f$element(1," ",id) !first two tokens +$id = id - "- " !in case 2nd token was empty +$if f$length(id).gt.15 then id = f$extract(0,15,id) !length limitation +$! $open/write ifile$ version.opt -$write ifile$ "ident="+""""+elm+"""" +$write ifile$ "ident="+""""+id+"""" $close ifile$ $purge version.opt $! @@ -175,11 +174,11 @@ PROCEDURE process_makefile( ) ! The contents are assumed to be a list of object files, and from this ! list a VMS linker options file is generated. ! - generate_option_file ("OBJS", "=", "independent.opt"); - generate_option_file ("LIB2FUNCS", "=", "libgcc2.list"); + generate_option_file ("OBJS", "=", "independent.opt"); + generate_option_file ("LIB2FUNCS", "=", "libgcc2.list"); generate_option_file ("CXX_LIB2FUNCS", "=", "libgcc2-cxx.list"); - generate_option_file ("BC_ALL", "=", "bc_all.list"); - generate_option_file ("BI_OBJ", "=", "bi_all.opt"); + generate_option_file ("BC_ALL", "=", "bc_all.list"); + generate_option_file ("BI_OBJ", "=", "bi_all.opt"); ! ! Now change OBJS in the Makefile, so each language specific options file ! does not pick up all of the language independent files. @@ -215,7 +214,7 @@ PROCEDURE process_objc_lib( ) ERASE (makefile_buf); !discard top Makefile POSITION (END_OF (makefile_buf)); - READ_FILE ("[.objc]Makefile"); !load objc one + READ_FILE ("[.objc]Make-lang.in"); !load objc one MESSAGE ("objclib"); pat_replace (ASCII(9), " "); !change any to generate_option_file ("OBJC_O", "=", "objc-objs.opt"); @@ -244,7 +243,7 @@ PROCEDURE configure_makefile( ) COPY_TEXT ("tm_file=tm.h"); SPLIT_LINE; ! 'arch'/tm-vms.h pat_replace ("@" & SPAN("abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ#~0123456789") - & "@", ); ! strip `configure' dummy values + & "@", ); ! strip `configure' dummy values ENDPROCEDURE; !configure_makefile !! @@ -296,6 +295,12 @@ PROCEDURE additional_compiler( cname, subdir ) pat_replace ("_OTH_SRCS)", "_OTH_SRCS_dummy_)"); ! Convert subdirectory references into VMS syntax. pat_replace ("$(srcdir)/" + subdir + "/", "[." + subdir + "]"); + + ! Temporary? hack for cp/Make-lang.in's mishandling of "input.c". + IF (subdir = 'cp') THEN + pat_replace ("[.cp]input.c", ); ! Discard this text. + ENDIF; + ! Add this name to compilers.list. POSITION (END_OF (complist_buf)); COPY_TEXT (cname); -- 2.11.0