OSDN Git Service

c0cab5b93a6b38cf2bdc711a4086f1e41d20bef9
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2
3         * cse.c (insert_regs): Also in REG case: When finding an invalid
4         value, and we make a new quantity, make sure that it won't be
5         mistaken by for a valid one by mention_regs.
6
7 2000-08-13  Ralf G├╝tlein <ralf.guetlein@aranea.de>
8
9         * h8300.md: Remove obsolete peepholes.
10
11 2000-08-13  Kazu Hirata  <kazu@hxi.com>
12
13         * invoke.texi (H8/300 Options): Fix typos.
14         * config/h8300.c: Fix formatting.
15         * config/h8300.h: Fix comment typos.
16         (OVERRIDE_OPTIONS): Fix formatting.
17
18         * function.c: Fix formatting.
19
20         * cse.c: Fix formatting.
21
22 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
23
24         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
25         (attempt_auto_inc): Suppress parentheses warning.
26         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
27         * loop.c (load_mems): Remove `u' suffix in two places.
28         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
29         hex constants.
30         * config/rs6000/rs6000.h: Likewise.
31         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
32         __eabi dummy routine.
33         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
34         variable `buf_ptr'.
35
36         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
37         not put stuff in .sdata unnecessarily.
38         (rs6000_unique_section): New function.
39         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
40         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
41
42         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
43         arrays in C99.  Don't try to look at DECL_REGISTER of a
44         COMPONENT_REF.  Don't complain twice about the same error.
45
46         * fixinc/inclhack.def (aix_pthread): New fix.
47         (aix_sysmachine): New fix.
48         * fixinc/fixincl.x: Regenerate.
49
50         * expr.c (expand_expr): Call convert_modes when turning a large
51         multiply into a small one.
52
53 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
54
55         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
56         the tree structure an exponent rather than an explicit alignment
57         so it doesn't overflow.
58         (SET_DECL_OFFSET_ALIGN): New macro.
59         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
60         rather than DECL_OFFSET_ALIGN.
61         (place_field): Likewise.
62         * expmed.c (store_bit_field): Abort on align==0 to avoid
63         antisocial machine behaviour.
64
65 2000-08-12  Richard Henderson  <rth@cygnus.com>
66
67         * sibcall.c (uses_addressof): Accept both addressof and
68         current_function_internal_arg_pointer inside a mem.
69         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
70         if current_function_uses_addressof.
71         * stmt.c (expand_return): Kill tail recursion and HAVE_return
72         optimizations.
73
74 2000-08-11  Richard Henderson  <rth@cygnus.com>
75
76         * config/ia64/ia64.md (addsi3): Remove expander.
77         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
78         (*addsi3_shladd): New.
79
80 2000-08-11  Richard Henderson  <rth@cygnus.com>
81
82         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
83         (do_restore): Likewise.
84         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
85         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
86         (rtx_needs_barrier): Track actual bit manipulation for 
87         ar.unat moves, gr_spill, and gr_restore.
88         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
89         (process_set): Don't handle varargs spills.
90         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
91         .mem.offset here instead of in process_set.
92         (gr_restore): Likewise.
93
94 2000-08-11  Richard Henderson  <rth@cygnus.com>
95
96         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
97
98 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
99  
100         * gcc.texi (The Configuration File): Document
101         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
102         UPDATE_PATH_HOST_CANONICALIZATION.
103
104 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
105
106         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
107         unprototyped function pointer casts on integer constants.
108
109 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
110
111         * fixproto: Recognize DOS paths with drive letters as absolute paths.
112
113 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
114
115         * extend.texi (Volatiles): Fix typos.
116
117 2000-08-11  Kazu Hirata  <kazu@hxi.com>
118
119         * flow.c: Fix formatting.
120
121 2000-08-11  Richard Henderson  <rth@cygnus.com>
122
123         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
124         pattern, always allocate a tertiary scratch register.
125
126         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
127         (reload_inhi): Likewise.
128
129 2000-08-11  Richard Henderson  <rth@cygnus.com>
130
131         * function.c (put_reg_into_stack): Allow type to be NULL.
132         (schedule_fixup_var_refs): Likewise.
133         (gen_mem_addressof): Allow decl to be NULL.
134         (put_addressof_into_stack): Likewise.
135
136         * flow.c (merge_blocks_nomove): Be more careful about
137         locating the beginning of block A.
138
139         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
140
141 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
142
143         * configure.in:
144         * configure:
145         * gthr-posix.h:
146         * config.in: Reverted the check for <sched.h>.
147
148 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
149
150         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
151         macros define the name of CTOR and DTOR sections.
152         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
153         DTOR_LIST_END): Change to use attributes to specify
154         sections.
155         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
156         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
157         DTOR_LIST_END): Same as in mips/elf.h.
158
159 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
160
161         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
162         disabling just crt0.o.
163
164 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
165
166         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
167         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
168         (EXTRA_SPECS): Add them.
169         * arm/lib1funcs.asm: Support builds for interworking.
170         Use macros to eliminate duplicated pieces of code.
171
172 2000-08-10  Kazu Hirata  <kazu@hxi.com>
173
174         * h8300.c (expand_a_rotate): New.
175         (emit_a_rotate): Likewise.
176         (h8300_adjust_insn_length): Add support for the rotate insns.
177         * h8300.md (rotlqi3): New.
178         (*rotlqi3_1): Likewise.
179         (rotlhi3): Likewise.
180         (*rotlhi3_1): Likewise.
181         (rotlhi3): Likewise.
182         (*rotlhi3_1): Likewise.
183         * h8300-proto.h: Add prototypes for expand_a_rotate and
184         emit_a_rotate.
185
186         * h8300.c: Fix comment typos.
187         (dosize): Declare the variable amount as unsigned.
188         (get_shift_alg): Fix a comparison between signed and unsigned.
189         (emit_a_shift): Likewise.
190         (h8300_adjust_insn_length): Simplify the code.
191
192         * c-decl.c: Fix formatting.
193
194 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
195
196         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
197         warning about non-traditional numeric constant suffixes.
198
199         * cppexp.c (parse_number): Likewise.
200
201         * invoke.texi: (-Wtraditional): Document new behavior.
202
203 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
204
205         * gthr-posix.h: Include auto-host.h. Conditionally include
206         <sched.h>.
207         * configure.in: Check for the <sched.h> header file.
208         * config.in: Added define for HAVE_SCHED_H.
209
210 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
211
212         * c-typeck.c (process_init_element): For -Wtraditional, warn about
213         initialization of unions.
214
215         * invoke.texi (-Wtraditional): Document new behavior.
216
217 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
218
219         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
220         instead of extra_c_flags.
221         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
222         * configure: Regenerate.
223         * config.in: Regenerate.
224
225         * cpperror.c (cpp_type2name): New function.
226         * cpplex.c (lex_line): If we issued an error for an invalid
227         preprocessing directive, discard that logical line.
228         * cpplib.c (do_line): Call a hook function if the current file
229         is renamed by #line.
230         (do_ident): Pass the contents of the string, not the entire
231         token, to the callback function.
232         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
233         (cb.rename_file): New hook function.
234         (cb.ident): Adjust prototype.
235         (cpp_type2name): Prototype.
236         * cppmacro.c (dump_macro_args): Correct precedence lossage.
237
238         * cppmain.c (cb_ident): Update for changed interface.
239         (cb_rename_file): New function.
240         (main): Set rename callback.
241
242 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
243
244         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
245         multi-word registers.
246
247 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
248
249         * c-common.c (combine_strings, check_format_info): Refer to ISO C
250         or ISO C89 instead of ANSI C.
251         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
252         build_enumerator, do_case): Likewise.
253         * c-lex.c (parse_float, yylex): Likewise.
254         * c-parse.in: Likewise.
255         * c-typeck.c (common_type, build_array_ref, build_binary_op,
256         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
257         build_c_cast, convert_for_assignment, set_init_index,
258         set_init_label, c_expand_start_case): Likewise.
259         * toplev.c (documented_lang_options, display_help): Likewise.
260
261 2000-08-08  Kazu Hirata  <kazu@hxi.com>
262
263         * h8300.c: Fix formatting.
264         * h8300.h: Likewise.
265         * h8300.md: Likewise.
266         (movsi_h8300hs): Fix formatting of the resulting assembly code.
267
268         * reload1.c: Fix formatting.
269
270 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
271
272         * alpha/alpha.c (alpha_emit_xfloating_libcall):
273         Use GEN_CALL_VALUE define.
274         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
275         * clipper/clipper.md (untyped_call): Likewise.
276         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
277         * fx80/fx80.md (untyped_call): Likewise.
278         * mips/mips.md (untyped_call): Likewise.
279         * ns32k/ns32k.md (untyped_call): Likewise.
280         * pa/pa.md (untyped_call): Likewise.
281         * romp/romp.md (untyped_call): Likewise.
282         * sparc/sparc.md (untyped_call): Likewise.
283
284 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
285
286         * config/i860/i860.c (singlemove_string): Do not generate assembler
287         pseudo instructions that must be expanded (that is, with signed
288         constants larger than 16 bits).
289
290 2000-08-08  Richard Henderson  <rth@cygnus.com>
291
292         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
293         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
294         (init_propagate_block_info): Don't kill memory stores at -O0.
295         (mark_set_1, mark_used_regs): Likewise.
296
297 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
298
299         * rs6000.c (optimization_options): Decorate 'level' as
300         ATTRIBUTE_UNUSED. 
301         (mask64_operand): Remove sign-extend thinko.
302         (rldic_operand): New function.
303         (load_multiple_operation): regno's are unsigned ints.
304         (store_multiple_operation): Likewise.
305         (lmw_operation): Likewise.
306         (stmw_operation): Likewise.
307         (includes_lshift_p): shift_mask is unsigned int.
308         (includes_lshift64_p): New function.
309         (addrs_ok_for_quad_peep): unsigned int reg1.
310         (print_operand): Consistently add "else" after
311         output_operand_lossage().
312         (print_operand, case 'b'): Fold in case 'W'.
313         (print_operand, case 'W'): Print rldic MB value.
314         (output_epilogue): Update Objective-C language string.
315         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
316         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
317         * rs6000.md (ashldi3): Add rldic instruction.
318         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
319         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
320         modifier.
321
322 2000-08-08  Richard Henderson  <rth@cygnus.com>
323
324         * config/ia64/ia64-protos.h: Remove duplicates.  Update
325         for massive code rearrangements.
326         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
327         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
328         (ia64_local_regs, ia64_need_regstk): Remove.
329         (ar_ccv_reg_operand): New.
330         (ia64_gp_save_reg): New.
331         (struct ia64_frame_info): Combine most of the size elements;
332         add new gr save elements.
333         (find_gr_spill): New.
334         (next_scratch_gr_reg): New.
335         (mark_reg_gr_used_mask): New.
336         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
337         to GR backing store regs when possible.
338         (ia64_initial_elimination_offset): New.
339         (ia64_rap_fp_offset): Remove.
340         (save_restore_insns): Remove.
341         (setup_spill_pointers): New.
342         (finish_spill_pointers): New.
343         (spill_restore_mem): New.
344         (do_spill, do_restore): New.
345         (ia64_expand_prologue): Rewrite to use them.
346         (ia64_expand_epilogue): Likewise.
347         (ia64_direct_return): Update for current_frame_info changes.
348         (ia64_function_prologue): Simplify .prologue emission.  Emit
349         .spill when needed.
350         (ia64_setup_incoming_varargs): Don't ever emit rtl.
351         (ia64_dbx_register_number): New.
352         (ia64_initialize_trampoline): New.
353         (ia64_secondary_reload_class): Request GR_REGS for integer
354         arithmetic destined for FR_REGS.
355         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
356         (ia64_mark_machine_status): Mark ia64_gp_save.
357         (rws_access_regno): Rename from rws_access_reg; don't treat
358         predicates specially.
359         (rws_access_reg): New.  Update all callers.
360         (rtx_needs_barrier): Remove dead unspecs.
361         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
362         (ia64_encode_section_info): Silence signed/unsigned warnings.
363         (spill_offset, sp_offset, spill_offset_emitted): Remove.
364         (tmp_reg, tmp_saved): Remove.
365         (process_set): Rewrite to expect complicated bits via 
366         REG_FRAME_RELATED_EXPR.
367         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
368         in the use of ar.ccv; never set RTX_UNCHANGING_P.
369         (ia64_expand_op_and_fetch): Likewise.
370         (ia64_expand_compare_and_swap): Likewise.
371         (ia64_expand_builtin): Likewise.
372         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
373         (FIRST_PSEUDO_REGISTER): Update.
374         (AR_M_REGNO_P): Update.
375         (FIXED_REGS): Don't mark three local registers as used.
376         (EXTRA_CC_MODES): New.
377         (SELECT_CC_MODE): New.
378         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
379         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
380         (FRAME_GROWS_DOWNWARD): Unset.
381         (STARTING_FRAME_OFFSET): Zero.
382         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
383         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
384         (HARD_FRAME_POINTER_REGNUM): New.
385         (CAN_DEBUG_WITHOUT_FP): Define.
386         (TRAMPOLINE_TEMPLATE): Remove.
387         (TRAMPOLINE_SIZE): Lower to 32.
388         (TRAMPOLINE_ALIGNMENT): Lower to 64.
389         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
390         (PREDICATE_CODES): Update.
391         (struct machine_function): Add ia64_gp_save.
392         * config/ia64/ia64.md: Purge unused unspecs.
393         (movsi patterns): Allow moves to/from AR_M_REGS.
394         (movdi patterns): Allow moves to/from p0.
395         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
396         (gr_spill, gr_restore): Indicate ar.unat read/written.
397         (nonlocal_goto): Don't pass old frame_pointer.
398         (nonlocal_goto_receiver): Remove.
399         (exception_receiver): New.
400         (builtin_setjmp_setup): New.
401         (builtin_setjmp_receiver): New.
402         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
403         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
404         (__ia64_restore_stack_nonlocal): Likewise.
405         (__ia64_trampoline): New.
406         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
407         function.
408         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
409
410 2000-08-08  Richard Henderson  <rth@cygnus.com>
411
412         * frame.h (ia64_frame_state): Add my_psp.
413         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
414         (__throw): Pass it in.  Don't clobber r7.
415         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
416         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
417         and nothing to do with sp.
418         (normalize_reg_loc): Use frame->my_psp.
419         (frame_translate): Handle frame-pointer-less functions.  Set
420         spill_base correctly, in absence of being told.
421         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
422         (__ia64_backtrace_helper): New sp argument.  Use
423         builtin_return_address instead of label addresses.
424         (print_record) [mem_stack_v]: No size member.
425
426 2000-08-08  Richard Henderson  <rth@cygnus.com>
427
428         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
429
430 2000-08-08  Richard Henderson  <rth@cygnus.com>
431
432         * tm.texi (LOCAL_REGNO): Document.
433         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
434         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
435         * reload1.c (reload): Likewise when considering nonlocal labels.
436
437         * config/ia64/ia64.h (LOCAL_REGNO): New.
438         * config/sparc/sparc.h (LOCAL_REGNO): New.
439
440 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
441
442         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
443
444 2000-08-07  Nick Clifton  <nickc@redhat.com>
445
446         * config/mips/mips.c: Fix compile time warning messages.
447         * config/mips/mips-protos.h: Add prototype for equality_op.
448
449         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
450
451 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
452
453         * mn10300.md: Use nonimmediate_operand instead of general_operand
454         on output operands.
455         
456         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
457
458 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
459
460         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
461         * sh.c (expand_block_move): Break long lines.
462         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
463         * sh.md (mulsi3): Likewise.
464         (movdi): Adjust spacing.
465
466 2000-08-07  Richard Henderson  <rth@cygnus.com>
467
468         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
469         * expr.c (emit_group_store): Don't set it.
470
471 2000-08-07  Kazu Hirata  <kazu@hxi.com>
472
473         * invoke.texi (Options for Debugging Your Program or GCC): Remove
474         duplicate entries for 'w' and 'z'.
475
476         * flow.c: Fix a comment typo.
477
478 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
479
480         * c-parse.in: Changed the language string for Objective-C to "GNU
481         Objective-C".
482
483 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
484
485         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
486         to improve the Posix thread support for Objective-C.
487
488 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
489
490         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
491         CTI_UNSIGNED_PTRDIFF_TYPE.
492         (signed_size_type_node): Define.
493         (unsigned_ptrdiff_type_node): Define.
494         * c-decl.c (init_decl_processing): Create the
495         signed_size_type_node and unsigned_ptrdiff_type_node types.
496         * c-common.c (T_SC): Define.
497         (T_SST): Define.
498         (T_UPD): Define.
499         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
500         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
501         %s and %p.
502         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
503         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
504         flags for %c, %s and %[.
505         (check_format_info): Only allow leniency for signedness of targets
506         of character pointers (when pedantic) for formats flagged with
507         "c", so for strings but not for %hh formats.  When pedantic, don't
508         allow character pointers to substitute for void pointers if a
509         second level of indirection is present.
510
511 2000-08-06  Kazu Hirata  <kazu@hxi.com>
512
513         * invoke.texi (Options for Debugging Your Program or GCC): Update
514         the names of dump files.
515
516         * h8300.c (dosize): Rearrange code for conciseness.
517         (split_adds_subs): Likewise.
518
519         * loop.c: Fix formatting.
520
521         * dwarf2out.c: Fix formatting.
522
523         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
524
525         * expr.c: Fix formatting.
526
527 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
528
529         * rs6000.c (rs6000_maybe_dead): Prototype.
530
531 2000-08-06  Richard Henderson  <rth@cygnus.com>
532
533         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
534         HAVE_nonlocal_goto as well.
535         * config/i960/i960.md (nonlocal_goto): Don't do it here.
536         * config/pj/pj.md (nonlocal_goto): Likewise.
537
538 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
539
540         * loop.c (try_swap_copy_prop): New function.
541         (load_mems): Rename copies to load_copies and add new regset
542         store_copies.  Check for sets of shadow registers and mark
543         in store_copies.   Call try_swap_copy_prop for registers
544         marked in store_copies.
545
546 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
547
548         * objc/objc-act.c: New command line option -fconstant-string-class
549         to allow specifying a user defined constant string class,
550         different from NXConstantString.
551
552         * toplev.c: Moved the Objective-C specific options to
553         objc/lang-options.h.
554
555         * objc/lang-options.h: Moved the Objective-C specific options from
556         toplev.c. Added -fconstant-string-class.
557
558 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
559
560         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
561         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
562         __CTOR_LIST__ from func_ptr array to just func_ptr, to
563         avoid extra alignment imposed on arrays.
564         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
565         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
566
567         * mips.h: Clean up comments and spacing near MASKs.
568         (TARGET_UNIX_ASM): Delete.
569         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
570         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
571         values contiguous.
572
573 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
574
575         * c-common.c (print_char_table): Add entries for the X/Open '
576         format flag (print decimals with locale's thousands grouping
577         character).  Make %C expect wint_t.
578         (check_format_info): If pedantic, warn when the %n$ operand
579         number form is used.  Allow for the ' flag; warn about it if
580         pedantic.
581
582 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
583
584         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
585         type is a float mode, cfun->decl's return type is not, and
586         TARGET_FLOAT_RETURNS_IN_80387.
587
588 2000-08-04  Andreas Schwab  <schwab@suse.de>
589
590         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
591         token list, which are always `#' and `pragma'.
592
593 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
594
595         * tree.c (tree_expr_nonnegative_p): Move to...
596         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
597         (rtl_expr_nonnegative_p): New.                                
598         * tree.h: Add prototype for rtl_expr_nonnegative_p.
599
600         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
601         CONST_DOUBLE_CHAIN: Move to...
602         * rtl.h: ...here.  Use XCINT/XCEXP.
603
604         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
605         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
606         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
607         to VOL_FILES.
608
609         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
610
611 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
612
613         * config/c4x/c4x.md (return_indirect_internal): New.
614         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
615
616 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
617
618         * c-common.c (time_char_table): Mark up formats added in C99 and
619         make other corrections.  %D and %g were added in C99.  %Og is an
620         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
621         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
622         C99 rather than GNU extensions, but %OG and %Oz are extensions.
623         %h was added in C99.  %C was added in C99.  %OY and %OC are
624         extensions.  Add the C99 format %F.
625         (check_format_info): If pedantic and not in C99 mode, warn for C99
626         formats, %E and %O.
627
628 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
629
630         * function.c (schedule_fixup_var_refs): New function, broken out
631         of put_reg_into_stack.
632         (put_reg_into_stack): Use it.
633         (put_var_into_stack): In CONCAT case, fixup up references for
634         components only after fixing up references to the whole concat.
635
636 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
637
638         * alias.c (mark_constant_function): Use INSN_P.
639         (init_alias_analysis): Likewise.
640         * combine.c (combine_instructions): Use INSN_P.
641         (can_combine_p): Likewise.
642         (try_combine): Likewise.
643         (distribute_notes): Likewise.
644         (distribute_links): Likewise.
645         * cse.c (cse_around_loop): Use INSN_P.
646         (invalidate_skipped_block): Likewise.
647         (cse_set_around_loop): Likewise.
648         (cse_end_of_basic_block): Likewise.
649         (delete_trivially_dead_insns): Likewise.
650         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
651         (unshare_all_rtl_1): Likewise.
652         (next_cc0_user): Likewise.
653         (try_split make_insn_raw): Likewise.
654         (remove_unnecessary_notes): Likewise.
655         * final.c (shorten_branches): Use INSN_P.
656         (leaf_renumber_regs): Likewise.
657         (leaf_renumber_regs_insn): Likewise.
658         * flow.c (find_label_refs): Use INSN_P.
659         (verify_wide_reg): Likewise.
660         (notice_stack_pointer_modification): Likewise.
661         (count_or_remove_death_notes): Likewise.
662         (verify_flow_info): Likewise.
663         (clear_log_links): Likewise.
664         * function.c (fixup_var_refs_insns): Use INSN_P.
665         (compute_insns_for_mem): Likewise.
666         * gcse.c (alloc_gcse_mem): Use INSN_P.
667         (compute_sets): Likewise.
668         (compute_hash_table): Likewise.
669         (classic_gcse): Likewise.
670         (cprop): Likewise.
671         (insert_insn_end_bb): Likewise.
672         (delete_null_pointer_checks_1): Likewise.
673         * global.c (expand_preferences): Use INSN_P.
674         (build_insn_chain): Likewise.
675         * graph.c (node_data): Use INSN_P.
676         * haifa-sched.c (priority): Use INSN_P.
677         (rm_line_notes): Likewise.
678         (rm_other_notes): Likewise.
679         (find_insn_reg_weight): Likewise.
680         (init_target_units): Likewise.
681         (schedule_block): Likewise.
682         (compute_block_forward_dependences): Likewise.
683         (debug_dependencies): Likewise.
684         (set_priorities): Likewise.
685         * integrate.c (function_cannot_inline_p): Use INSN_P.
686         (save_parm_insns): Likewise.
687         (copy_insn_list): Likewise.
688         * jump.c (mark_all_labels): Use INSN_P.
689         (never_reached_warning): Likewise.
690         * lcm.c (optimize_mode_switching): Use INSN_P.
691         * local-alloc.c (validate_equiv_mem): Use INSN_P.
692         (memref_used_between_p): Likewise.
693         (update_equiv_regs): Likewise.
694         (block_alloc): Likewise.
695         (no_conflict_p): Likewise.
696         * loop.c (scan_loop): Use INSN_P.
697         (find_and_verify_loops): Likewise.
698         (count_loop_regs_set): Likewise.
699         (loop_reg_used_before_p): Likewise.
700         (strength_reduce): Likewise.
701         (recombine_givs): Likewise.
702         (check_dbra_loop): Likewise.
703         (load_mems): Likewise.
704         (try_copy_prop): Likewise.
705         * print-rtl.c (print_rtx): Use INSN_P.
706         * recog.c (find_single_use): Use INSN_P.
707         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
708         (next_flags_user): Likewise.
709         (swap_rtx_condition): Likewise.
710         * regmove.c (mark_flags_life_zones): Use INSN_P.
711         (optimize_reg_copy_1): Likewise.
712         (optimize_reg_copy_2): Likewise.
713         (optimize_reg_copy_3): Likewise.
714         (reg_is_remote_constant_p): Likewise.
715         (fixup_match_2): Likewise.
716         (regmove_optimize): Likewise.
717         (fixup_match_1): Likewise.
718         * regrename.c (build_def_use): Use INSN_P.
719         (replace_reg_in_block): Likewise.
720         (consider_use): Likewise.
721         * reload.c (find_equiv_reg): Use INSN_P.
722         * reload1.c (reload): Use INSN_P.
723         (maybe_fix_stack_asms): Likewise.
724         (calculate_needs_all_insns): Likewise.
725         (reload_as_needed): Likewise.
726         (emit_output_reload_insns): Likewise.
727         (delete_address_reloads_1): Likewise.
728         (reload_cse_regs_1): Likewise.
729         (reload_combine): Likewise.
730         (reload_cse_move2add): Likewise.
731         * reorg.c (redundant_insn): Use INSN_P.
732         (dbr_schedule): Likewise.
733         * resource.c (find_dead_or_set_registers): Use INSN_P.
734         (mark_target_live_regs): Likewise.
735         * rtlanal.c (reg_used_between_p): Use INSN_P.
736         (reg_referenced_between_p): Likewise.
737         (reg_set_between_p): Likewise.
738         (reg_set_p): Likewise.
739         (single_set): Likewise.
740         (multiple_sets): Likewise.
741         (find_last_value): Likewise.
742         (reg_set_last): Likewise.
743         (find_reg_note): Likewise.
744         (find_regno_note): Likewise.
745         * sibcall.c (sequence_uses_addressof): Use INSN_P.
746         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
747         * ssa.c (find_evaluations): Use INSN_P.
748         (rename_block): Likewise.
749         (rename_equivalent_regs): Likewise.
750         * unroll.c (loop_find_equiv_value): Use INSN_P.
751         (set_dominates_use): Likewise.
752         * varasm.c (mark_constant_pool): Use INSN_P.
753         (mark_constants): Likewise.
754         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
755         (alphaev4_next_group): Likewise.
756         (alphaev5_next_group): Likewise.
757         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
758         (c4x_rptb_rpts_p): Likewise.
759         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
760         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
761         (rs6000_adjust_priority): Likewise.
762         * config/sh/sh.c (sh_loop_align): Use INSN_P.
763         (machine_dependent_reorg): Likewise.
764         (split_branches): Likewise.
765         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
766
767 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
768
769         * combine.c (recog_for_combine): Remove the old notes
770         prior to attempting to recognize the new pattern.
771         (distribute_notes): Ignore REG_NONNEG notes.
772
773 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
774
775         * varasm.c (output_constructor): Add .align 0 for packed vars.
776
777 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
778
779         * configure.in: Use default thread_file even when enable_threads is
780         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
781         * configure: Rebuilt.
782
783         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
784
785 2000-08-04  Donn Terry (donnte@microsoft.com)
786
787         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
788
789 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
790
791         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
792         Delete code that conditionally modifies 'version'.
793         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
794         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
795         * gcc.c (main): Use it.
796         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
797         * prefix.c (update_path): Use it.
798         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
799         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
800         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
801         code.
802         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
803         (SUBTARGET_SWITCHES): Adjust.
804         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
805         defining.
806         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
807
808 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
809
810         * c-common.h (flag_isoc94): Declare.
811         * c-decl.c (flag_isoc94): Define.
812         (c_decode_option): Set flag_isoc94 as appropriate.
813         * c-common.c (T_PD, T_IM, T_UIM): Define.
814         (format_char_info): Add tlen and jlen.
815         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
816         %F.  Allow %lf.
817         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
818         %l[.
819         (time_char_table): Add NULL entries for %t and %j.
820         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
821         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
822         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
823         precision.  Allow precision argument to be unsigned int.  If
824         pedantic, warn for %p passed an argument not a pointer to possibly
825         qualified void or a possibly qualified character type, and for
826         pointer targets of the wrong sign, except for character pointers.
827
828 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
829
830         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
831         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
832         (wint_type_node): Define.
833         * c-decl.c (WINT_TYPE): Define.
834         (init_decl_processing): Create the wint_type_node type.
835         * c-common.c (T_WI): Define.
836         (print_char_table): Use T_WI for %lc format.
837
838 2000-08-04  Bruce Korb  <bkorb@gnu.org>
839
840         * fixinc/:  Verified that the MSDOS patch does not break
841         the UNIX functionality and applied the next three patches
842         from July:
843
844 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
845
846         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
847         output file with the temporary one by appending ".X" to generate
848         the temporary fuile's name.  If the output file already has an
849         extension, replace it with ".X".
850
851         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
852         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
853         reallocate the command buffer while copying the command-line
854         argument.  Redirect the output directly to the temporary file,
855         instead of going through another temporary file.
856         (process): Close the temporary file before unlinking it.
857         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
858         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
859         (run_compiles): Pass p_fixd argument to machine_matches, as it
860         expects.
861
862         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
863         environment, assume there are no symlinks in the include
864         directory.  When cleaning up the DONE files, look for them
865         case-insensitively.  Don't try to remove symlinks if they aren't
866         there.
867
868         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
869         all callers changed.  Declare pz "const char *", to avoid compiler
870         warnings.
871
872         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
873         Change prototype of make_raw_shell_str.
874
875 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
876
877         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
878         (initialize) [__MSDOS__]: Use tempnam.
879         (initialize): Don't use SIGPIPE if it is not defined.
880
881         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
882         return stdout.
883
884 2000-07-25  Bruce Korb  <bkorb@gnu.org>
885
886         * fixinc/fix*.[ch]: substantially reworked to make it possible
887         to run this program without using fork(2) or pipe(2) (i.e. in
888         a DOS environment).
889
890 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
891
892         * cppdefault.h (WINT_TYPE): Define.
893         * cppinit.c (builtin_array): Define __WINT_TYPE__.
894         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
895         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
896
897 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
898
899         * (mips_legitimate_address_p): Don't allow register+offset              
900         if the offset is large and negative, and we are compiling               
901         for 64 bit registers.                                                   
902
903 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
904
905         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
906         insn_code_number + 1.
907
908 2000-08-04  Kazu Hirata  <kazu@hxi.com>
909
910         * h8300.c (function_prologue): Rearrange code for conciseness.
911         (function_epilogue): Likewise.
912         * h8300.h (OK_FOR_U): Fix formatting.
913
914         * cse.c: Fix a comment typo. Fix formatting.
915
916 2000-08-03  Richard Henderson  <rth@cygnus.com>
917
918         * config/i386/i386.md (return_indirect_internal): New.
919         * config/i386/i386.c (ix86_expand_epilogue): Use it.
920
921 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
922
923         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
924         before the name.
925         (lex_line): Glue @ onto the beginning of identifiers and
926         string constants, in Objective-C mode.
927         (output_token, spell_token): Handle CPP_OSTRING.
928         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
929         beginning of a NAME or a STRING, in objc mode.
930
931         * cpplib.c (get_define_node): Do not permit identifiers that
932         begin with @ to be #defined.
933         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
934         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
935
936         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
937         * c-tree.h (build_objc_string): Delete prototype.
938         * objc/objc-tree.def: Delete OBJC_STRING_CST.
939         * c-lex.c (yylex): Use build_string for all three kinds of strings.
940
941         * c-parse.in, objc/objc-act.c: Update commentary.
942
943 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
944
945         * extend.texi: Fix typo in last change.
946
947         * extend.texi: Add commentary on statement-expressions and their
948         interactions with C++.
949
950 2000-08-03  Nick Clifton  <nickc@cygnus.com>
951
952         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
953         * dwarf.h (LANG_JAVA): Change value to 0x000b.
954
955 2000-08-03  Anthony Green  <green@cygnus.com>
956
957         * dwarf2out.c (gen_compile_unit_die): Add java language support.
958         (add_bound_info): Check for java language.
959         (is_java): New function.
960         * dwarfout.c (output_compile_unit_die): Ditto.
961         * dwarf.h (dwarf_source_language): Add java source language type.
962         * dwarf2.h (dwarf_source_language): Ditto.
963
964 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
965
966         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
967         operands.
968
969         * i386.c (ix86_expand_branch): Mode of comparison in
970         IF_THEN_ELSE is VOIDmode.
971
972 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
973
974         * gengenrtl.c, rtl.c: Avoid #elif.
975
976 2000-08-03  Michael Poole  <poole@troilus.org>
977
978         * tm.texi (Register Classes): Clarify order of sub-initializers
979         in REG_CLASS_CONTENTS.
980
981 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
982
983         From SAITOH Masanobu:
984         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
985
986 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
987
988         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
989         is not supported by tradcpp and isn't actually needed for cygwin.
990
991 2000-08-03  Kazu Hirata  <kazu@hxi.com>
992
993         * h8300.c: Fix a comment typo.
994         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
995
996         * jump.c: Fix formatting.
997
998         * toplev.c: Fix formatting.
999
1000 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
1001
1002         * flow.c (find_auto_inc): Verify that we've got a REG before
1003         peeking at its regno.  Fail, don't abort if we can't find
1004         the increment of the desired register.
1005
1006         * pa.md (shadd height reduction patterns/splitters): Remove.
1007
1008 2000-08-02  Jim Wilson  <wilson@cygnus.com>
1009
1010         * config/ia64/ia64-protos.h (flag_ssa): Declare.
1011         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
1012
1013 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
1014
1015         * dce.c: Remove all uses of assert.
1016         * dwarf2out.c: Likewise.
1017         * dwarfout.c: Likewise.
1018         * ssa.c: Likewise.
1019
1020 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
1021
1022         * gcc.h (lang_specific_driver): Constify second argument.
1023         * gcc.c (translate_options, process_command, main): Likewise.
1024         Constify variables to match.  Cast second argument to
1025         pexecute.
1026
1027         * cppspec.c, gccspec.c: Adjust type of second argument to
1028         lang_specific_driver, and update code as necessary.
1029
1030 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
1031
1032         * loop.c (scan_loop): Ensure update_end label does not
1033         go away until reg_scan_update is run.
1034
1035 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
1036
1037         * c-common.h: Prototype min_precision and c_build_qualified_type here...
1038         * c-tree.h: ... not here.
1039         * errors.h: Prototype fancy_abort.
1040
1041         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
1042         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
1043         * regrename.c (regrename_optimize): Make control flow explicit.
1044         (replace_reg_in_block): Initialize reg_use to 0.
1045
1046         * i386.c (legitimate_address_p): Rename error label to
1047         report_error to avoid namespace clash.
1048
1049 2000-08-02  Kazu Hirata  <kazu@hxi.com>
1050
1051         * fold-const.c: Fix formatting.
1052
1053 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1054
1055         * i386.c (legitimate_address_p): Accept other bases than
1056         pic_offset_table_rtx for GOTOFF constructs.
1057
1058 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1059
1060         * i386.md (shift to lea splitter): Use const_int_operand.
1061
1062 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
1063
1064         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
1065         cppspec.c: Do not use 'legal' or 'illegal' in error messages
1066         and comments.
1067
1068         * cppmain.c (cb_define, cb_undef): Don't generate any output
1069         if not done_initializing.
1070         * cpplex.c (maybe_paste_with_next): When the token after a ##
1071         is an omitted rest argument, only delete the token before it
1072         if that token is a comma.  Do not warn about bogus token
1073         pastes for , ## rest_arg.
1074
1075         * cpp.texi: Update.
1076         * cpp.1: Regenerate.
1077
1078 2000-08-02  Fred Fish  <fnf@be.com>
1079
1080         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
1081         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
1082         and later.
1083
1084         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
1085         Be directories to search path.
1086
1087         Remove support for __declspec(dllimport) and __declspec(dllexport).
1088         This is leftover cruft from the earlier BeOS gcc port when BeOS
1089         used Microsoft's PE object file format.
1090         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
1091         * config/i386/t-beos (winnt.o): Remove Makefile frag.
1092         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
1093         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
1094         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
1095         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
1096         (REDO_SECTION_INFO_P): Remove.
1097         (ASM_EXPORT_DECL): Remove.
1098         (ASM_DECLARE_FUNCTION_NAME): Remove.
1099         (ASM_DECLARE_OBJECT_NAME): Remove.
1100         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
1101         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
1102         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
1103         (STRIP_NAME_ENCODING): Remove.
1104
1105         Remove support for obsolete version of BeOS that is no longer
1106         supported by Be.
1107         * configure.in (i*86-*-beospe*): Remove.
1108         * config/i386/beos-pe.h: Remove.
1109
1110 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
1111             Mark Mitchell <mark@codesourcery.com>
1112
1113         * Makefile.in (OBJS): Added dce.o.
1114         (ssa.o): Updated target to include ssa.h.
1115         (flow.o): Likewise.
1116         (toplev.o): Likewise.
1117         (dce.o): Created target.
1118         * basic-block.h: Added comments.
1119         (INVALID_BLOCK): Added definition.
1120         (connect_infinite_loops_to_exit): Added declaration.
1121         Moved SSA declarations to ssa.h.
1122         * flow.c: Added inclusion of ssa.h.
1123         (struct depth_first_search_dsS, depth_first_search_ds):
1124         Added definitions.
1125         (compute_immediate_postdominators): Added definition.
1126         (connect_infinite_loops_to_exit): Likewise.
1127         (flow_dfs_compute_reverse_init): Likewise.
1128         (flow_dfs_compute_reverse_add_bb): Likewise.
1129         (flow_dfs_compute_reverse_execute): Likewise.
1130         (flow_dfs_compute_reverse_finish): Likewise.
1131         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
1132         (LABEL_P): Added definition.
1133         (JUMP_P): Likewise.
1134         (NOTE_P): Likewise.
1135         (BARRIER_P): Likewise.
1136         (JUMP_TABLE_DATA_P): Likewise.
1137         (INSN_DEAD_CODE_P): Likewise.
1138         * ssa.c: Replaced inclusions with ssa.h inclusion.
1139         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
1140         (rename_registers): Removed unnecessary variables.
1141         * ssa.h: Created by moving declarations from ssa.c and
1142         basic-block.h.
1143         * timevar.def: Defined TV_DEAD_CODE_ELIM.
1144         * toplev.c: Added ssa.h inclusion.
1145         (dump_file_index): Added DFI_dce.
1146         (dump_file): Added "dce" entry.
1147         Defined flag_ssa.
1148         (f_options): Added dce entry.
1149         * invoke.texi: Document -fdce.  Emphasize experimental status of
1150         -fssa.
1151         * dce.c: New file.
1152
1153 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
1154
1155         * cpperror.c (v_message): Split into _cpp_begin_message and
1156         v_message macro.  All callers updated.
1157         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
1158         checks here.
1159
1160         * cppfiles.c (cpp_syshdr_flags): New function.
1161         (read_include_file): Don't call cpp_output_tokens.  Call
1162         enter_file hook.
1163         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
1164         (cpp_reader_init): Don't initialize token_buffer.  Call
1165         _cpp_init_internal_pragmas.
1166         (cpp_cleanup): Don't clear token_buffer.
1167         (cpp_start_read): Don't worry about output from -D processing.
1168         Don't call cpp_output_tokens.
1169         (cpp_finish): Don't dump macros here.  Don't call
1170         cpp_output_tokens.
1171         * cppmacro.c (_cpp_dump_definition): Rename
1172         cpp_dump_definition.  Write directly to a FILE *.
1173         (dump_funlike_macro): Delete.
1174         (dump_macro_args): New.
1175
1176         * cpplex.c (TOKEN_LEN): Convert to inline function.
1177         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
1178         cpp_scan_line, _cpp_dump_list): Delete.
1179         (cpp_printf, cpp_output_list): New.
1180         (output_line_command): Don't worry about entering or leaving files.
1181         (cpp_scan_buffer): Just output each token as we hit it.
1182         (process_directive): Don't call cpp_output_tokens.
1183         (_cpp_glue_header_name): Don't use token_buffer.
1184         (output_token, dump_param_spelling): Write directly to a FILE *.
1185
1186         * cpplib.c (pass_thru_directive, dump_macro_name,
1187         pragma_dispatch, do_pragma_gcc): Delete.
1188         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
1189         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
1190         functions.
1191         (do_error, do_warning, pragma_dependency): Call
1192         _cpp_begin_message, then cpp_output_list.
1193         (cpp_register_pragma, cpp_register_pragma_space,
1194         _cpp_init_internal_pragmas): New.
1195         (do_pragma): Walk the pragmas table here.
1196         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
1197         do_pragma_dependency): Return void.
1198         (do_pragma_implementation): Moved to cppmain.c.
1199
1200         * cpplib.h: Update prototypes.
1201          (struct cpp_reader): Remove printer, token_buffer,
1202         token_buffer_size, and limit.  Add struct cb, and pragmas.
1203         (struct cpp_printer): Remove last_id and written.
1204         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
1205         CPP_ADJUST_WRITTEN): Delete.
1206         * cpphash.h: Update prototypes.
1207         (ufputs): New wrapper.
1208
1209         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
1210         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
1211         (main): Set up callbacks.  Register #pragma implementation.
1212         Dump macros from here.
1213
1214 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
1215
1216         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
1217         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
1218         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
1219         insns if they have a REG_MAYBE_DEAD note attached.
1220         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
1221         (rs6000_emit_load_toc_table): TOC loads may go dead.
1222
1223 2000-08-01  Jim Wilson  <wilson@cygnus.com>
1224
1225         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
1226         type exists before using it.  Use number of words as alignment
1227         otherwise.
1228         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
1229         ia64_va_arg): Propagate ia64_function_args changes here.
1230
1231 2000-08-01  Richard Henderson  <rth@cygnus.com>
1232
1233         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
1234         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1235
1236 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
1237
1238         From Joern Rennecke:
1239         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
1240         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
1241         unless TARGET_SH3E is set.
1242         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
1243
1244         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
1245         (ashlsi3_std): New pattern.
1246         (ashlsi3 expander): Use it for TARGET_SH3.
1247         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
1248
1249 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1250
1251         * loop.c (canonicalize_condition):  Use destination, not source to
1252         determine SET's mode.
1253
1254 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
1255
1256         * flow.c (clear_log_links): Fix typo.
1257
1258 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
1259
1260         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
1261         on targets which need more than one insn for a compare/cbranch
1262         operation.
1263
1264 2000-07-31  Jim Wilson  <wilson@cygnus.com>
1265
1266         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
1267         when computing offset.
1268
1269 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
1270
1271         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
1272
1273 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
1274
1275         * flow.c (clear_log_links): Nuke global_live_at_start and
1276         global_live_at_end data, since if the log_links stuff is invalid
1277         so is global_live_at_*.
1278
1279 2000-07-31  Richard Henderson  <rth@cygnus.com>
1280
1281         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
1282
1283 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
1284
1285         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
1286         (_cpp_get_token): Don't macro expand a just pasted token if it
1287         was pasted at no_expand_level.
1288
1289 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
1290
1291         * cppmacro.c (find_param, count_params, save_expansion):
1292         Permit 'defined' as a macro parameter name.
1293
1294 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
1295
1296         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
1297         xcpp to cpp throughout.
1298         (native): Remove unnecessary dependency on cpp.
1299
1300         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
1301         tradcpp to tradcpp0.
1302         (.i spec): Add missing output-file spec to cc1 command line.
1303         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
1304
1305 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
1306
1307         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
1308         (implicit_decl_warning): New function.
1309         (implicitly_declare): Use it.
1310         * c-typeck.c (build_external_ref): Use implicit_decl_warning
1311         to complain about implicit decls of builtins.
1312
1313         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
1314         based on pedantic && flag_isoc99, if not already set.
1315         * c-tree.h: Declare mesg_implicit_function_declaration.
1316         Prototype implicit_decl_warning.
1317
1318 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
1319
1320         * Makefile.in (ssa.o): Updated header files in dependences.
1321         * basic-block.h: Added compute_immediate_postdominators declaration.
1322         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
1323         definition.
1324         * flow.c (compute_immediate_dominators): Updated comment.
1325         (compute_immediate_postdominators): Added definition.
1326         * rtl.h (HARD_REGISTER_P): Added definition.
1327         * ssa.c: Include additional header files.
1328         (assert): Added definition.
1329         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
1330         include select hard registers.
1331         (ssa_rename_to_insert): Likewise.
1332         (ssa_rename_from_initialize): Likewise.
1333         (ssa_rename_from_lookup): Likewise.
1334         (original_register): Likewise.
1335         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
1336         include select hard reigsters.
1337         (ssa_rename_from_traverse): Likewise.
1338         (ssa_rename_from_free): Likewise.
1339         (ssa_rename_from_print): Likewise.
1340         (ssa_rename_from_print_1): Likewise.
1341         (ssa_rename_from_hash_function): Likewise.
1342         (ssa_rename_from_equal): Likewise.
1343         (ssa_rename_from_delete): Likewise.
1344         (simplify_to_immediate_dominators): Removed in favor of
1345         flow.c:compute_immediate_dominators.
1346         (find_evaluations_1): Modified to work with hard registers.
1347         (insert_phi_node): Likewise.
1348         (insert_phi_nodes): Likewise.
1349         (struct rename_set_data): Updated prev_reg comment.
1350         (create_delayed_rename): Modified to work with hard registers.
1351         (RENAME_NO_RTX): Updated comment.
1352         (apply_delayed_renames): Modified to work with hard registers.
1353         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
1354         (rename_block): Updated to use revised ssa_rename_to interface.
1355         (rename_registers): Updated to use revised ssa_rename_to and
1356         ssa_rename_from interface.
1357         (convert_to_ssa): Revised to use compute_immediate_dominators and
1358         deal with hard registers.
1359         (make_regs_equivalent_over_bad_edges): Modified to work with hard
1360         registers.  Added check for illegal unification of hard register.
1361         (make_equivalent_phi_alternatives_equivalent): Modified to work
1362         with hard registers.
1363         (compute_conservative_reg_partition): Likewise.
1364         (coalesce_if_unconflicting): Modified to work with hard registers
1365         and check for conflicting hard registers.
1366         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
1367         registers.
1368         (rename_equivalent_regs_in_insn): Modified to work with hard
1369         registers.
1370         (record_canonical_element_1): Added definition.
1371         (check_hard_regs_in_partition): Added definition.
1372         (convert_from_ssa): Added data structure deallocation and check
1373         for illegal hard register unification.
1374         (conflict_hard_regs_p): Added definition.
1375         * toplev.c (rest_of_compilation): Added comment.
1376
1377 2000-07-31  Anthony Green  <green@redhat.com>
1378
1379         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
1380
1381 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
1382
1383         * builtins.c (expand_builtin_apply): Don't defer pop during
1384         argument setup.
1385
1386 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1387
1388         * calls.c (combine_pending_stack_adjustment_and_call): Only use
1389         preferred_unit_stack_boundary when it is > 1.
1390
1391 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
1392
1393         * c-common.c (init_function_format_info): Add C99 format functions
1394         in C99 mode.
1395
1396         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
1397         void' or 'register void' as being the special case of 'void' alone
1398         in a parameter list.
1399
1400         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
1401         discarding qualifiers into a plain warning.
1402
1403 2000-07-31  Kazu Hirata  <kazu@hxi.com>
1404
1405         * combine.c: Fix formatting.
1406
1407         * h8300.md: Fix formatting.
1408
1409         * local-alloc.c: Fix formatting.
1410
1411         * h8300.c (get_shift_alg): Remove the variable alg.
1412         (emit_a_shift): Rearrange code to improve readability.
1413
1414         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
1415
1416         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
1417         HImode on all architectures and a combination of HImode and SImode
1418         on H8/300H and H8/S.
1419
1420         * h8300.c (split_adds_subs): Rearrange code for conciseness.
1421
1422 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1423
1424         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
1425         in my last checkin.
1426
1427 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1428
1429         * recog.c (extract_insn): Set operand_mode according to
1430         operand if match_operand is VOIDmode.
1431
1432 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1433
1434         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
1435
1436 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
1437
1438         * c-parse.in (extdefs): Call ggc_collect between external
1439         definitions.
1440
1441 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
1442             Richard Henderson  <rth@cygnus.com>
1443
1444         * Makefile.in (OBJS): Add doloop.o.
1445         * doloop.c: New file.
1446
1447         * final.c (insn_current_reference_address): Return 0 before final.
1448         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
1449         * jump.c (any_uncondjump_p): Likewise.
1450         * loop.c (indirect_jump_in_function): Make static.
1451         (strength_reduce): Call doloop_optimize.
1452         (insert_bct, instrument_loop_bct): Remove.
1453         * loop.h (doloop_optimize): Prototype.
1454         * recog.c (split_all_insns): Split all INSN_P.
1455         * toplev.c (flag_branch_on_count_reg): Default on.
1456
1457         * config/c4x/c4x.c (c4x_optimization_options): Don't set
1458         flag_branch_on_count_reg.
1459         * config/i386/i386.c (override_options): Likewise.
1460         * config/rs6000/rs6000.c (optimization_options): Likewise.
1461
1462         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
1463         (doloop_end): New.
1464         (dbra_ge): Remove, as well as all it's splitters.
1465
1466         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
1467         (doloop_end): New.
1468
1469         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
1470         (ia64_register_move_cost): Declare.
1471         * config/ia64/ia64.c (ar_lc_reg_operand): New.
1472         (struct ia64_frame_info): Add ar_size.
1473         (ia64_compute_frame_size): Set it.
1474         (save_restore_insns): Save and restore ar.lc.
1475         (ia64_register_move_cost): New, moved from header file.  Handle
1476         application registers.
1477         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
1478         (emit_insn_group_barriers): Special case doloop_end_internal.
1479         (ia64_epilogue_uses): Mark ar.lc live at end.
1480         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
1481         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
1482         (FIRST_PSEUDO_REGISTER): Make room.
1483         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
1484         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
1485         (REG_ALLOC_ORDER): Update.
1486         (HARD_REGNO_MODE_OK): Update.
1487         (REGISTER_NAMES): Update.
1488         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
1489         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
1490         (REGNO_REG_CLASS): Update.
1491         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
1492         (REGISTER_MOVE_COST): Move out of line.
1493         (PREDICATE_CODES): Update.
1494         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
1495         (addsi3_plus1_alt, adddi3_plus1_alt): New.
1496         (shladd_elim splitter): Allow constants in the predicate.
1497         (doloop_end, doloop_end_internal): New.
1498
1499 2000-07-30  Richard Henderson  <rth@cygnus.com>
1500
1501         * genattrtab.c (struct insn_def): Add lineno member.
1502         (struct insn_ent): Likewise.
1503         (struct attr_desc): Likewise.
1504         (struct delay_desc): Likewise.
1505         (struct function_unit_op): Likewise.
1506         (struct function_unit): Likewise.
1507         (check_attr_value): Use message_with_line.
1508         (check_defs): Likewise.
1509         (expand_units): Likewise.
1510         (check_attr_test): Take a lineno argument.
1511         (gen_attr): Likewise.
1512         (gen_insn): Likewise.
1513         (gen_delay): Likewise.
1514         (gen_unit): Likewise.
1515         (main): Give it to them.
1516         (convert_set_attr_alternative): Take an insn_def argument
1517         instead of num_alt and insn_index.
1518         (convert_set_attr): Likewise.
1519         (write_test_expr): Protect INSN_ADDRESSES load
1520         with INSN_ADDRESSES_SET_P.
1521
1522 2000-07-30  Richard Henderson  <rth@cygnus.com>
1523
1524         * flow.c (init_propagate_block_info): Use pc_set.
1525
1526 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1527
1528         * i386.md (*lea_general_[123]) New insns and splits.
1529         (addsi3 to lea splitter): Handle other modes too.
1530         (shlsi3 to lea splitter): Likewise.
1531         (addhi_1_lea, shlhi_1_lea): New patterns.
1532         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
1533
1534 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1535
1536         * recog.c (general_operand, nonimmediate_operand): Accept
1537         any mode for VOIDmode CONSTANT_P operands.
1538
1539 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1540
1541         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
1542         instead of replace_rtx.
1543         * recog.c (validate_replace_rtx_subexp): New function.
1544         * recog.h (validate_replace_rtx_subexp): Declare.
1545
1546 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1547
1548         * combine.c (simplify_set, make_extraction, make_compound_operation
1549         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
1550         as force_to_mode argument.
1551
1552 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1553
1554         * combine.c (if_then_else_cond): Be sure that mode fits in
1555         HOST_WIDE_INT.
1556
1557 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1558
1559         * combine.c (record_promoted_value):  Allow bitsize of mode
1560         to be equivalent to HOST_BITS_PER_WISE_INT.
1561
1562 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1563
1564         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
1565         Do not call gen_mode_alignment when mode is BLKmode.
1566
1567 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1568
1569         * loop.c (express_from_1): Fix call of simplify_gen_binary.
1570
1571 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1572
1573         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
1574         VOIDmode implies both operands to be VOIDmode.
1575         (simplify_ternary_operation): Compute properly the mode of comparison.
1576         * combine.c (combine_simplify_rtx): Likewise.
1577
1578 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
1579
1580         * basic-block.h (struct loops): New field rc_order.
1581         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
1582         (flow_loops_free): Free rc_order.
1583         (flow_depth_first_order_compute): New parameter rc_order.
1584         (flow_loops_find): Allocate rc_order and swap usage with
1585         dfs_order.
1586
1587 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1588            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1589
1590         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
1591         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
1592         (nodb_call, return_from_epilogue): Likewise.
1593         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
1594         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
1595         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
1596         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
1597         (c4x_valid_type_attribute_p): Likewise.
1598         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
1599         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
1600
1601 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1602
1603         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
1604         and loadhi_big_constant if applicable.
1605         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
1606         and add new splitter.s
1607
1608 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1609
1610         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
1611
1612 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1613
1614         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
1615
1616 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1617
1618         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
1619
1620 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1621
1622         * config/c4x/libgcc.S (divqf3): Improve accuracy.
1623
1624 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
1625
1626         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
1627         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
1628         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
1629         (get_prev_bb_note): Likewise.
1630         (remove_scope_notes): Likewise.
1631         * flow.c (commit_one_edge_insertion): Likewise.
1632         (merge_blocks_nomove): Likewise.
1633         (verify_flow_info): Likewise.
1634         * gcse.c (insert_insn_end_bb): Likewise.
1635         * reg-stack.c (emit_swap_insn): Likewise.
1636         * ssa.c (first_insn_after_basic_block_note): New function.
1637         (insert_phi_node): Use it.
1638         (rename_block): Likewise.
1639         (eliminate_phi): Likewise.
1640         (make_regs_equivalent_over_bad_edges): Likewise.
1641         (make_equivalent_phi_alternatives_equivalent): Likewise.
1642         (for_each_successor_phi): Likewise.
1643         (convert_from_ssa): Modify phi-node deletion algorithm.
1644
1645 2000-07-29  Andreas Jaeger  <aj@suse.de>
1646
1647         * configure.in (mips*-*-linux*): Use mips*el to check for little
1648         endian MIPS, add tmake_file.
1649
1650         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
1651         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
1652         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
1653
1654 2000-07-28  Richard Henderson  <rth@cygnus.com>
1655
1656         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
1657         Sign extend mode size before negating.
1658
1659 2000-07-28  Richard Henderson  <rth@cygnus.com>
1660
1661         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
1662
1663 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
1664
1665         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
1666         (cse_insn): Likewise.
1667         (addr_affects_sp_p): Likewise.
1668         * expr.c (move_by_pieces): Likewise.
1669         (clear_by_pieces): Likewise.
1670         * gcse.c (oprs_unchanged_p): Likewise.
1671         * haifa-sched.c (sched_analyze_2): Likewise.
1672         * recog.c (offsettable_address_p): Likewise.
1673         * regclass.c (record_address_regs): Likewise.
1674         * reload.c (find_reusable_reload): Likewise.
1675         (push_reload): Likewise.
1676         (operands_match_p): Likewise.
1677         (decompose): Likewise.
1678         (find_reloads_address_1): Likewise.
1679         (find_inc_amount): Likewise.
1680         * reload1.c (elimination_effects): Likewise.
1681         * resource.c (mark_set_resources): Likewise.
1682         * flow.c (attempt_auto_inc): New function; mostly broken out
1683         of find_auto_inc.
1684         (find_auto_inc): Split into two functions and enhanced to
1685         generate POST_MODIFY.
1686         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
1687         * rtl.h (count_all_occurrences):  Declare.
1688         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
1689         defined.
1690         * rtlanal.c (count_all_occurrences): New function.
1691         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
1692         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
1693
1694         * config/ia64/ia64-protos.h (destination_operand): Declare.
1695         * config/ia64/ia64.c (destination_operand): New function.
1696         (ia64_print_operand): Handle POST_MODIFY.
1697         (rtx_needs_barrier): Likewise.
1698         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
1699         (HAVE_POST_MODIFY_REG): Define to 1.
1700         (MAX_REGS_PER_ADDRESS): Change to 2.
1701         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
1702         (LEGITIMATE_ADDRESS_REG): New helper macro.
1703         (LEGITIMATE_ADDRESS_DISP): Likewise.
1704         (PREDICATE_CODES): Add entry for destination_operand.
1705         * config/ia64/ia64.md (all mov patterns): Use destination_operand
1706         predicate for operand 0.
1707
1708 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1709
1710         * dwarf2out.c: Indent #error directive.
1711
1712         * gbl-ctors.h: Fix typo in comment.
1713         (__do_global_ctors): Prototype.
1714
1715         * gcse.c (record_one_set, pre_delete): Remove unused variables.
1716
1717         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
1718         (print_operand): Initialize variable `t'.
1719
1720 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
1721
1722         * config/arm/arm.md ("call_value"): removed constraints.
1723         Constraints are ignored in expanders.
1724         (*call_value_reg): split =rf into various constraints.
1725         (*call_value_mem): same
1726         (*call_value_symbol): same
1727         (*sibcall_value_insn): same
1728
1729 2000-07-28  Philipp Thomas  <pthomas@suse.de>
1730
1731         * install.texi (--enable-nls): Change the description of the NLS
1732         related configure options to match the current state.
1733         (--with-included-gettext): Likewise.
1734         (--enable-maintainer-mode): New description added.
1735         * extend.texi (-fstrict-prototype): Add missing '.'.
1736
1737 2000-07-27  Jim Wilson  <wilson@cygnus.com>
1738
1739         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
1740         DECL_INITIAL (decl) == NULL_TREE.
1741
1742 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
1743
1744         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
1745         on insn-attr.h with it.
1746         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
1747         * insn-addr.h: New header.
1748         (insn_addresses_): Renamed from insn_addresses.
1749         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
1750         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
1751         INSN_ADDRESSES_NEW): New macros.
1752         * genattrtab.c (write_test_expr): Use new macros.
1753         * final.c (insn_addresses, init_insn_lengths): Likewise.
1754         (align_fuzz, shorten_branches): Likewise.
1755         (final): Likewise.  Do not reject new insns if their addresses
1756         have been added to INSN_ADDRESSES.
1757         * config/arm/arm.c, config/avr/avr.c: Use new macros.
1758         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
1759         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
1760         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
1761         * config/sh/sh.c: Likewise.
1762         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
1763
1764         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
1765
1766 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
1767
1768         * gcc.c (struct prefix_list): Add member priority.
1769         (enum path_prefix_priority): Declare.
1770         (add_prefix): Replace ``first'' with ``priority''.  Append new
1771         entry but keep list in priority order.
1772         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
1773         PREFIX_PRIORITY_LAST to add_prefix.
1774         (process_command): Move include kludge - foo/stageN - to before
1775         foo/include.
1776
1777 2000-07-27  Jason Merrill  <jason@redhat.com>
1778
1779         * dwarf2out.c (gen_typedef_die): Abort if we get identical
1780         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
1781
1782 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
1783
1784         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
1785         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
1786
1787 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
1788
1789         * c-decl.c (finish_function): Don't treat 'main' specially unless
1790         flag_hosted.  In C99 mode, return 0 from 'main' unless
1791         DEFAULT_MAIN_RETURN is otherwise defined.
1792
1793         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
1794         parameters defaulting to int in an old-style function definition.
1795
1796 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1797
1798         * c-parse.in (string): For -Wtraditional, warn about string
1799         concatenation only once per line.
1800
1801 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
1802
1803         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
1804         for HI-UX/WE2 systems.
1805
1806 2000-07-24  Bruce Korb  <bkorb@gnu.org>
1807
1808         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
1809         defining the __xxx_TYPE__ macros.
1810         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
1811         * fixincl/fixlib.h: don't need to include "tm.h" anymore
1812         * fixincl/inclhack.def(type_map): now obsolete
1813
1814 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
1815
1816         * cpp.texi: Append a trailing full-stop to xrefs where needed.
1817
1818 2000-07-26  Dave Pitts  <dpitts@cozx.com>
1819
1820         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
1821         routine constants.
1822         (mvs_hash_alias): New function.
1823         (mvs_add_alias): Change argument spacing.
1824         (mvs_need_alias): Change aliasing criteria. Added documentation.
1825         (mvs_get_alias): Change to use hashed name. The hashed name prevents
1826         CSECT name collisions.
1827         (mvs_check_alias): Likewise.
1828         (handle_pragma): Change documentation.
1829         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
1830         mode from SImode to DImode.
1831         (iorhi3): Changed LTORG size for insn.
1832
1833 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
1834
1835         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
1836         mem if the address is a mode_dependent_address_p.
1837
1838 2000-07-26  Kazu Hirata  <kazu@hxi.com>
1839
1840         * h8300.c (print_operand): Print ":8" when the 'R' operand is
1841         suitable for 8-bit absolute.
1842         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
1843         (OK_FOR_U): Add a case for the 8-bit constant address on the
1844         H8/300H.
1845
1846 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
1847
1848         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
1849         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
1850         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
1851         lack of implemented alignment.
1852
1853 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
1854
1855         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
1856         cross-compiling between 64-bit and 32-bit machines.
1857
1858 2000-07-27  Richard Henderson  <rth@cygnus.com>
1859
1860         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
1861         (movhicc_astep, movhi_internal_astep): New.
1862         (movsicc_astep, movsi_internal_astep): New.
1863         (movdicc_astep, movdi_internal_astep): New.
1864         (movsfcc_astep, movsf_internal_astep): New.
1865         (movdfcc_astep, movdf_internal_astep): New.
1866         (movxfcc_astep, movxf_internal_astep): New.
1867         (cmovdi_internal_astep, cmovsi_internal_astep): New.
1868         Unify the cmov[ds]i splitters.
1869
1870 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
1871
1872         * real.c (asctoeg): Rename `error' label to unexpected_char_error
1873
1874 2000-07-26  Nick Clifton  <nickc@cygnus.com>
1875
1876         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
1877         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
1878
1879         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
1880         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
1881
1882 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
1883
1884         * c-decl.c (finish_enum): Convert enumerations that fit in an
1885         `int' to `int'.
1886         (build_enumerator): In pedantic mode, cast to `int' those that
1887         don't.
1888
1889 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
1890
1891         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
1892
1893 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1894
1895         * sh.md (cmpgtdi_t): Must be split.
1896         (cmpgtdi_t+1): New splitter.
1897
1898 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
1899
1900         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
1901         warnings for indented directives even if we are skipping.
1902
1903 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1904
1905         * invoke.texi (strict-prototypes): Remove.
1906         * extend.texi (Deprecated Features): Add strict-prototypes.
1907         (Backwards Compatibility): New node.
1908
1909 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
1910
1911         * config/i386/i386.md (andsi_1+1): Allow HImode.
1912         (andsi_1+2): Require q_regs_operand.
1913
1914 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
1915
1916         * config/i386/i386.md (call_pop): Check operands[0],
1917         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
1918         (call): Likewise.
1919         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
1920         (call_value): Likewise.
1921
1922 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
1923
1924         * toplev.c (pipe_closed): Delete.
1925         (crash_signal): New.  Generate ICE for a fatal signal.
1926         (float_signal): Call crash_signal outside a float-handler
1927         block, not abort.
1928         (main): Install crash_signal as handler for core-dumping signals.
1929
1930 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
1931
1932         * rs6000.c (print_operand, case 'T'): New case.
1933
1934         * rs6000.md (call_indirect_aix32): Convert to expander of
1935         scheduled instructions.
1936         (call_indirect_aix64): Likewise.
1937         (call_value_indirect_aix{32,64}): Likewise.
1938         (call, call_value): Invoke expanders for AIX.  Fall through to
1939         matchers for SysV.
1940         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
1941         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
1942         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
1943         only "g" constraint.
1944         (call_nonlocal_aix64): Likewise.
1945         (call_value_nonlocal_aix{32,64}): Likewise.
1946         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
1947         operands.
1948         (call_value_nonlocal_sysv): New pattern.
1949         (indirect_jump{si,di}): Use new 'T' modifier.
1950         (tablejump{si,di} matchers): Likewise.
1951         (return_internal_{si,di}): Likewise.
1952         (return_eh_{si,di}): Likewise.
1953
1954 2000-07-24  Richard Henderson  <rth@cygnus.com>
1955
1956         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
1957         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
1958         * config/ia64/ia64.md (movdi_internal): Use it.
1959
1960 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
1961
1962         * cppexp.c: Warn about unary + if -Wtraditional.
1963         * cpplex.c (lex_line): Always set BOL on the first token of a line.
1964
1965 2000-07-24  Michael Meissner  <meissner@redhat.com>
1966
1967         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
1968         unsupported macro.
1969
1970 2000-07-24  Nick Clifton  <nickc@cygnus.com>
1971
1972         * config/arm/arm.c (emit_multi_reg_push): Generate a
1973         REG_FRAME_RELEATED_NOTE that is compatable with the code in
1974         dwarf2out_debug_frame_expr.
1975
1976 2000-07-24  Jason Merrill  <jason@redhat.com>
1977
1978         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
1979         UNALIGNED_INT_ASM_OP.
1980         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
1981         a location expression.
1982         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
1983         assume indirect access if we're saving the CFA address exactly.
1984
1985         * Makefile.in (bootstrap): Move -BstageN/ to the end.
1986
1987 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
1988
1989         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
1990         as well.
1991
1992 2000-07-24  Michael Meissner  <meissner@redhat.com>
1993
1994         * invoke.texi (D30V Options): Add d30v options.
1995
1996 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
1997
1998         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
1999         needed by our gcse pass anymore.
2000         (free_pre_mem): Corresponding changes.
2001         (compute_pre_data): Do not call compute_transpout anymore.
2002
2003         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
2004         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
2005         changes.
2006
2007         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
2008         (compute_pre_data): Do it here instead.
2009
2010         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
2011         'temp_bitmap'.
2012         (pre_delete): Corresponding changes.
2013
2014 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
2015
2016         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
2017         to figure out whether or not a variable has already been emitted.
2018
2019 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
2020
2021         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
2022         instead of gen_call.
2023
2024 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
2025
2026         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
2027
2028 2000-07-23  Kazu Hirata  <kazu@hxi.com>
2029
2030         * h8300.c: Fix formatting.
2031
2032 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
2033
2034         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
2035         for `long' switch expression into a plain warning.
2036
2037         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
2038         (yylex): Don't pedwarn for "inline" in C99 mode.
2039
2040         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
2041         with %p.
2042         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
2043         ggc_alloc): Likewise.
2044         * bb-reorder.c (dump_scope_forest_1): Likewise.
2045
2046 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
2047
2048         * reload.c (find_reloads_toplev): Add new parameter
2049         "address_reloaded".
2050         (find_reloads): Add new parameter to find_reloads_toplev calls.
2051
2052 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
2053
2054         * collect2.c (main): Typo fixed.
2055         * diagnostic.c: Typo fixed.
2056         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
2057         * eh-common.h: Typo fixed.
2058         * emit-rtl.c (start_sequence): Typo fixed.
2059         * flow.c (find_label_refs): Typo fixed.
2060         (calculate_global_regs_live): Typo fixed.
2061         (mark_regno_cond_dead): Typo fixed.
2062         (create_edge_list): Typos fixed.
2063         (verify_edge_list): Typo fixed.
2064         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
2065         * loop.c (strength_reduce): Typo in function name fixed.
2066         * rtl.h: Added comments.  Typo in function name fixed.
2067         * rtlanal.c: Typo in function name fixed.
2068         (insn_dependant_p): Rename to ...
2069         (insn_dependent_p): ... this.
2070         (computed_jumo_p): Typo fixed.
2071
2072 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2073
2074         * system.h (__FUNCTION__): Wrap definition in #ifndef.
2075
2076 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
2077
2078         * rs6000.h (SIZE_TYPE): Define.
2079
2080 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
2081
2082         * ssa.c (rename_insn_1): Don't rename registers that are
2083         CLOBBERed.
2084
2085 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
2086
2087         * diagnostic.c (trim_filename, fancy_abort): Moved here from
2088         rtl.c.
2089         (fatal_function, set_fatal_function): Removed.
2090         (fatal): Don't prepare for or call the fatal_function.
2091         (diagnostic_lock, error_recursion): New.
2092         (diagnostic_for_decl, report_diagnostic): Guard against
2093         re-entering the error reporting routines.
2094         (fancy_abort): Assume function is not NULL.
2095
2096         * errors.c (fancy_abort): New.  Assume function is not NULL.
2097         * tradcpp.c (fancy_abort): Assume function is not NULL.
2098
2099         * system.h: Provide default definition of __FUNCTION__.
2100         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
2101         Always use __FUNCTION__ in definition of abort.
2102         * tree.h: Likewise.
2103         * varray.h: Likewise.
2104         * toplev.h: Likewise.  Don't prototype set_fatal_function.
2105
2106 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
2107
2108         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
2109         in 64-bit mode.
2110         * glimits.h: Don't do #if defined for ARCH_PPC.
2111
2112         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
2113         constants of size no larger than a pointer should go in the TOC.
2114         Add 'MODE' parameter.
2115         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
2116         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
2117         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
2118         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
2119         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
2120         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
2121         (rs6000_legitimize_address): Likewise.
2122         (rs6000_emit_move): Likewise.
2123         (rs6000_select_rtx_section): Likewise.
2124         (output_toc): Deal properly with outputting small constants like
2125         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
2126         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
2127         MODE parameter.  Put small constants in the TOC.
2128
2129         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
2130         easy in SImode.
2131         (rs6000_emit_move): When reload calls us with an illegitimate
2132         address, exit early.  Move the change_address calls to one place
2133         at the end of the routine.  Merge the SImode and DImode expanders.
2134         When called by reload to put an integer into a FP register, force
2135         it to memory.
2136
2137         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
2138         field.
2139         (rs6000_hash_constant): Hash mode too.
2140         (toc_hash_function): Allow for key_mode.
2141         (toc_hash_eq): Structures are different if key_mode differs.
2142         (output_toc): Add 'mode' parameter.  Save key_mode.
2143         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
2144         Pass 'mode' parameter.
2145         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
2146
2147         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
2148         for vtable references.
2149
2150         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
2151         choice, don't put integer values in FP regs.
2152
2153 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
2154
2155         * flow.c (verify_flow_info): Revamp code to verify that the
2156         head and end of each basic block are in the insn chain.
2157
2158 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
2159
2160         * gcse.c (record_one_set): Prepend instead of append onto
2161         reg_set_table, making it O(n) instead O(n^2).
2162         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
2163         Use a queue instead of a stack as worklist.
2164
2165 2000-07-20  Kazu Hirata  <kazu@hxi.com>
2166
2167         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
2168         * h8300.h (OK_FOR_T): New.
2169         (EXTRA_CONSTRAINT): Support OK_FOR_T.
2170         * h8300.md: Use inc/dec.[wl] for increment/decrement
2171         by 1 and 2 in HI and SI modes.
2172
2173 2000-07-20  Jim Wilson  <wilson@cygnus.com>
2174
2175         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
2176         larger than 14 bits.
2177
2178 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
2179
2180         * cppmacro.c (CAN_PASTE_AFTER): New macro.
2181         (count_params): Don't set GNU_REST_ARGS on anything.
2182         (save_expansion): Set PASTE_LEFT only on tokens for which
2183         CAN_PASTE_AFTER is true, or which are named operators.
2184
2185         * cpplex.c (parse_args): Distinguish between a rest argument
2186         given one empty argument, and a rest argument given zero arguments.
2187         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
2188         deletion of previous token based on that.
2189         (get_raw_token): Flatten some control structure.
2190
2191         * cpplib.h (CPP_LAST_EQ): Correct.
2192         (VOID_REST): New token flag.
2193         (GNU_REST_ARGS): Delete.
2194
2195         * tradcpp.c (main): Don't munge -D options.
2196         (make_definition): Bring -D handling in line with cpplib.
2197         (do_define): Strip all leading whitespace from macro definitions.
2198
2199 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
2200
2201         * Makefile.in (tradcpp): Depend on intl.o and version.o.
2202
2203 2000-07-20  Bruce Korb  <bkorb@gnu.org>
2204
2205         * fixincl/check.tpl: strip the platform specific types before testing
2206         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
2207         * fixincl/fixincl.tpl: use platform specific types
2208         * fixincl/fixlib.h: include the platform specific types
2209         * fixincl/inclhack.def(gnu_types): don't supply the types
2210         * fixincl/fixincl.x: regen
2211
2212 2000-07-19  Jim Wilson  <wilson@cygnus.com>
2213
2214         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
2215         GR_REGS.
2216
2217 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
2218
2219         * tradcpp.c (rescan): Do not recognize directives when the #
2220         is indented.
2221
2222 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
2223
2224         Implement C++ named operators.
2225
2226         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
2227         of operators allowed in #if and having an _EQ variant.  Add
2228         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
2229         (cpp_token flags): Add NAMED_OP.
2230         (enum node_type): Add T_OPERATOR.
2231         (struct cpp_hashnode): Add code slot to value union.
2232         * cpphash.h (spec_nodes): Remove n_defined.
2233
2234         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
2235         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
2236         (is_macro_disabled): Tweak error messages.
2237
2238         * cpplib.c (get_define_node): Disallow all named operators as
2239         macro names.  Tweak error messages.
2240         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
2241
2242         * cppinit.c (builtin_array): Add entries for the named operators.
2243         * cppexp.c (lex): Check for CPP_DEFINED token.
2244         (priority table): Add entries for CPP_MIN and CPP_MAX.
2245         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
2246
2247 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
2248
2249         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
2250         larger than the array of cuids.
2251         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
2252         cuids.
2253
2254 2000-07-19  Bruce Korb  <bkorb@gnu.org>
2255
2256         * fixinc/fixincl.c:  Convert to using a table of environment variables
2257         and activate the auto-edit marker on the fixed output files.
2258         * fixinc/fixlib.h:  Define the environment table
2259         * fixinc/fixincl.sh: export the ${INPUT} dir
2260         * fixinc/check.tpl: likewise
2261
2262 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
2263
2264         * gcc.c (.h spec): Fix typo.
2265
2266 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
2267
2268         * Makefile.in: Fix tradcif.c path.
2269
2270 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
2271
2272         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
2273           macros, not five.
2274
2275         * cpphash.h (TOKEN_NAME): New macro.
2276         (_cpp_spell_operator): Deleted.
2277         (token_spellings): Now _cpp_token_spellings.
2278
2279         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
2280         * cpplex.c: Use OP and TK macros when expanding the
2281         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
2282         store the stringification of the enumeration name (CPP_CHAR,
2283         etc.) in the name slot of token_spellings.
2284         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
2285         token_spellings directly.
2286         * cpplib.c: Use TOKEN_SPELL.
2287
2288         * cpplex.c (_cpp_push_token): If the token being pushed back
2289         is the previous token in this context, just subtract one from
2290         context->posn.
2291         * cppmacro.c (save_expansion): Clear aux field when storing a
2292         placemarker.
2293
2294 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
2295
2296         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
2297         buffer, provided it is not NULL.
2298
2299 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
2300
2301         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
2302         case of invalid volatile re-declaration.
2303
2304 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
2305
2306         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
2307         (expand_call): Adjust caller.
2308
2309 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
2310
2311         * diagnostic.h (report_diagnostic): Change prototype.
2312
2313         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
2314         diagnostic_for_decl):  Change prototype.
2315         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
2316         error, warning, error_with_file_and_line,
2317         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
2318         Adjust call to report_diagnostic, diagnostic_for_decl.
2319         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
2320         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
2321
2322         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
2323         varaible argument list.
2324
2325 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
2326
2327         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
2328         moved to cppmacro.c.
2329         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
2330         dump_hash_helper): Delete.
2331         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
2332         cpp_forall_identifiers): New. Implement specialized version of
2333         Vlad's expandable hash table.
2334         (cpp_lookup): Use new functions.
2335         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
2336         implementation.
2337         * cppmacro.c: New file.
2338         * cppinit.c (dump_macros_helper): New.
2339         (cpp_finish): Iterate over the identifier table directly.
2340         * cpplex.c (parse_name): Calculate the hash of the identifier
2341         while we scan it.  Use _cpp_lookup_with_hash when we can.
2342
2343         * cpphash.h: Update prototypes.
2344         (xcnewvec, HASHSTEP): New helper macros.
2345         * cpplib.h: Update prototypes.
2346         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
2347         (cppmacro.o): New rule.
2348         (cpphash.o): Update deps.
2349
2350         * cppmain.c: Do not set pfile->printer if no_output is on.
2351
2352 2000-07-15  Neil Booth  <neilb@earthling.net>
2353
2354         * cpplib.c: Change all directive-handler functions to return
2355         void, not int.
2356         * cpphash.h: Update typedefs.
2357
2358 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
2359
2360         * configure: Regenerate.
2361
2362         * extend.texi (Extended Asm): Mention that a memory clobber
2363         does not count as a side-effect.
2364
2365         * unroll.c (copy_loop_body): Fix one instance of using host
2366         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
2367         cross-compile.
2368
2369         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
2370
2371 2000-07-17  Richard Henderson  <rth@cygnus.com>
2372
2373         * config/ia64/ia64.md (movdi): Split out load address code.
2374         New post-reload splitter for symbolic operands.
2375         (movdi_internal): Abort if we didn't split symbolic operands
2376         when we should have.
2377         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
2378         (ia64_reorg): Split insns when not optimizing.
2379         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
2380
2381 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2382
2383         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
2384         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
2385
2386 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
2387
2388         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
2389
2390 2000-07-17  Jason Merrill  <jason@redhat.com>
2391
2392         * Makefile.in (clean): Remove libgcc directory.
2393
2394         * configure.in (-Wno-long-long check): Use higher-level macros.
2395
2396 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
2397
2398         * simplify-rtx.c (simplify_binary_operation): Recognize
2399            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
2400         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
2401            a CONST_INT, it will always be zero.
2402
2403 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
2404
2405         * loop.c (check_dbra_loop) : Return if more than one condition is
2406         present to control the loop.
2407
2408 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
2409
2410         * mips.c (mips_expand_prologue): Don't calculate the last argument
2411         register unless we need it.  When we are calculating this, make
2412         sure FUNCTION_ARG is giving us a REG.
2413
2414 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2415
2416         * flow.c (libcall_dead_p): Use single_set to verify the insn
2417         has only one set and get for analysis.
2418         (propagate_one_insn): Don't pass the PATTERN of the insn.
2419
2420 2000-07-17  Mark Klein <mklein@dis.com>
2421
2422          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
2423
2424 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2425
2426         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
2427         * configure.in (TARGET_GETGROUPS_T): Evaluate.
2428         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
2429         of second argument of getgroups.
2430         * configure, config.in: Rebuilt.
2431
2432 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
2433
2434         * simplify-rtx.c (simplify_relational_operation): Two signed
2435         values with equal high words are less/greater than each other if
2436         their low words are less/greater when considered as unsigned.
2437
2438 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
2439
2440         * configure.in (vax-*-openbsd):  Change to new style configuration,
2441         add collect2/float_format information.
2442         * configure:  Rebuilt.
2443         * config/vax/openbsd1.h:  New.
2444         * config/vax/openbsd.h:  New.
2445         * config/vax/t-openbsd:  New.
2446
2447 2000-07-17  Chip Salzenberg  <chip@valinux.com>
2448
2449         * c-common.c (shorten_compare): Quiet warnings about unsigned
2450         comparisons with zero when they occur in a system header.
2451
2452 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
2453
2454         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
2455         update to describe current practice.
2456
2457         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
2458
2459         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
2460         references to C9X.  Change references to -fstd and -flang-isoc9x
2461         to refer to -std.
2462
2463         * c-common.c (scan_char_table): Allow "z" length modifiers on
2464         diouxXn formats.
2465         (check_format_info): Use TYPE_DOMAIN on the type matched against
2466         for "z" formats, to retrieve the language size_t rather than the
2467         internal one.
2468
2469         * c-common.c (check_format_info): Do not make a pedantic objection
2470         to the 'L' length modifier if used with a floating point type
2471         character.
2472
2473         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
2474         constants in C99 mode.
2475
2476 2000-07-17  Kazu Hirata  <kazu@hxi.com>
2477
2478         * h8300.md: Fix the format of mac.
2479         (movsi_h8300hs): Output a tab after stmac instead of a space.
2480
2481         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
2482         profitable adds/subs sequences.
2483
2484         * fold-const.c: Fix comment typos.
2485
2486 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
2487
2488         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
2489
2490 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2491
2492         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
2493
2494 2000-07-16  Neil Booth  <NeilB@earthling.net>
2495
2496         * cpplex.c: Update comments.
2497         * README.Portability: Small update.
2498
2499 2000-07-16  Neil Booth  <NeilB@earthling.net>
2500
2501         * README.Portability:  Small update.
2502
2503 2000-07-15  Richard Henderson  <rth@cygnus.com>
2504
2505         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
2506         * config/ia64/ia64.c (ia64_move_ok): New function.
2507         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
2508         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
2509
2510 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
2511
2512         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
2513         immediately following a paste operator.
2514         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
2515         (cpp_reader_init): Call it, if HOST_EBCDIC.
2516         (cpp_handle_options): Do not sort option list here.
2517         (handle_option): Rename to cpp_handle_option and export.
2518         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
2519         _cpp_get_token directly.
2520         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
2521         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
2522         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
2523         cpp_scan_line.
2524
2525 2000-07-15  Richard Henderson  <rth@cygnus.com>
2526
2527         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
2528         cast around an expression.  Tidy other unsigned tests.
2529
2530 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
2531
2532         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
2533         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
2534         (v_message_with_decl): Rename to ...
2535         (format_with_decl): ... this. Tweak
2536         (diagnostic_for_decl): New function.
2537         (fatal_io_error): Use verbatim in lieu of notice.
2538         (announce_function): Use verbatim.
2539         (default_print_error_function): Likewise.
2540         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
2541         infratructure.
2542
2543 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2544
2545         * mips.c (function_arg_pass_by_reference): Don't do automatic
2546         aggregate initialization.
2547         (machine_dependent_reorg): Initialize variable `mode'.
2548
2549         * mips.md (absdi2): Change variable `regno1' to unsigned int.
2550         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
2551         conflicts with sys/param.h macro of the same name.
2552         (reload_outdi): Likewise.
2553
2554 2000-07-15  Michael Meissner  <meissner@redhat.com>
2555
2556         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
2557         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
2558         create a new node instead.
2559
2560 2000-07-15  Neil Booth  <NeilB@earthling.net>
2561
2562         * README.Portability: Correct example about calling a function
2563         through a pointer to function.  Format wide paragraphs.
2564
2565 2000-07-15  Michael Meissner  <meissner@redhat.com>
2566
2567         * README.Portability: Update integer suffixes and function
2568         prototype sections.
2569
2570 2000-07-15  Neil Booth  <NeilB@earthling.net>
2571
2572         * README.Portability: Small update.
2573
2574 2000-07-15  Neil Booth  <NeilB@earthling.net>
2575
2576         * README.Portability: New file.
2577
2578 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
2579
2580         * INSTALL: Give special instructions for building GCC on Irix 6.
2581         * config/mips/x-iris6 (CC): Don't set it.
2582         (OLDCC): Likewise.
2583
2584 2000-07-14  Jason Merrill  <jason@redhat.com>
2585
2586         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
2587         register in the stack and later in another register, use the new
2588         register.
2589
2590 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
2591
2592         * config/mips/mips.md: (absdi2): Handle sign_extend for
2593         second operand.
2594
2595 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
2596
2597         * cpplib.c (do_pragma_dependency): Tidy warning messages.
2598
2599 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
2600
2601         * .cvsignore: Correct typo.
2602
2603 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
2604
2605         * .cvsignore: Add generated YACC files.
2606         * objc/.cvsignore: New file.
2607
2608 2000-07-14  Neil Booth  <NeilB@earthling.net>
2609
2610         * cpplex.c (adjust_column): New funcion.
2611         (skip_whitespace): Use it.
2612         (skip_block_comment): Use it, and warn about /*/* with
2613         -Wcomments.
2614
2615 2000-07-14  Neil Booth  <NeilB@earthling.net>
2616
2617         * cpphash.c (struct macro_info): Add new members.
2618         (_cpp_free_definition): Delete the macro directly.
2619         (count_params): Return void, with first token of
2620         expansion in struct macro_info on success.
2621         (parse_define): Return int.  Hoist syntax checking from
2622         save_macro_expansion.  Leave call to save_expansion to
2623         _cpp_create_definition.
2624         (alloc_macro): Needs just 2 arguments.
2625         (free_macro): Delete.
2626         (save_expansion): Don't perform syntax check.
2627         (_cpp_create_definition): Call save_expansion.
2628
2629 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2630
2631         * genrecog.c (write_header): Split long string.
2632
2633         * cpphash.c (macro_info): Don't use the `signed' keyword.
2634
2635         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
2636
2637 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
2638
2639         * calls.c (stored_args_map): New variable.
2640         (check_sibcall_argument_overlap_1): New.
2641         (check_sibcall_argument_overlap): New.
2642         (expand_call): Initialize stored_args_map.
2643         Call check_sibcall_argument_overlap.
2644
2645 2000-07-13  Bruce Korb  <bkorb@gnu.org>
2646
2647         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
2648         (emit_gnu_type): utility procedure for gnu_type_fix
2649         (gnu_type_fix): implement various pre-processor guards around
2650         standard types so these types can be defined over and over
2651         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
2652         types alluded to above will have GNU-compliant base types
2653         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
2654         * fixinc/inclhack.def: add test_text entries and utilize the new
2655         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
2656         * fixinc/fixincl.x: regenerate
2657
2658 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2659
2660         * diagnostic.c (vline_wrapper_message_with_location,
2661         v_message_with_file_and_line, v_error_with_file_and_file,
2662         v_error_for_asm, v_warning_for_asm, vfatal,
2663         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
2664         vsorry, verror, vwarning, vpedwarn): Remove.
2665         (diagnostic_for_asm): New function.
2666         (pedwarn, error, warning, pedwarn_with_file_and_line,
2667         error_with_file_and_line, warning_with_file_and_line, sorry,
2668         error_for_asm, warning_for_asm, fatal): Reimplement.
2669         (finish_diagnostic): Clear diagnostic info as well.
2670
2671 2000-07-13  Neil Booth  <NeilB@earthling.net>
2672
2673         * c-common.h (flag_digraphs): New.
2674         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
2675         * c-lex.c (yylex): Use flag_digraphs to decide whether to
2676         honour digraphs.
2677
2678 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
2679
2680         * gcc.c (do_spec_1): Add new %B operator.
2681         (set_input): Prepare for %B.
2682
2683         (link_command_spec): Move up with the other tm.h-
2684         overrideable specs.  Factor out the portion conditional on
2685         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
2686         (struct compiler): Just have a single spec string.  All users
2687         updated.
2688         (default_compilers): Remove unnecessary braces.
2689         (static_specs): Update.
2690
2691         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
2692         named specs.
2693         (C and assembly specs): Use the new named specs, as appropriate.
2694
2695         * objc/lang-specs.h: Use the new named specs.
2696         Remove unnecessary braces.
2697
2698 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
2699
2700         * gcc.c (execute): If a subprocess gets a fatal signal, report
2701         strsignal() of the signal number, and ask for a bug report.
2702         Do not do this for SIGPIPE if there's already been an error.
2703
2704         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
2705         Delete pipe_closed.
2706
2707         * tradcif.c: Remove.
2708
2709 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
2710
2711         * final.c (profile_function): Do not emit profile counters in
2712         the data section, if NO_PROFILE_COUNTERS is defined.
2713         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
2714         FUNCTION_PROFILER.
2715
2716         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
2717         (FUNCTION_PROFILER): Just emit a call to mcount.
2718
2719 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
2720
2721         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
2722
2723         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
2724         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
2725         traditional, lang_chill, or lang_fortran.
2726
2727         * cppfiles.c: #undef strcmp to suppress warning about macros
2728         used without arguments.
2729         (_cpp_execute_include): Use f, not fname, in "No include path"
2730         error.
2731         (_cpp_pop_file_buffer): New function.
2732         * cpplib.c: Don't include <sys/mman.h>.
2733         (cpp_push_buffer): Set line_base and lineno in new buffer.
2734         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
2735
2736         * cpplex.c: Move all prototypes and structure declarations to the
2737         top of the file.  Properly parenthesise some macro arguments.
2738         (cpp_scan_line): New function.
2739         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
2740         don't need to walk up the stack counting.
2741
2742 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2743
2744         * c-common.c (combine_strings): Emit a pedantic warning when a
2745         string length is greater than the minimum ANSI C is required
2746         to support.
2747
2748 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
2749
2750         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
2751         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
2752
2753 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2754
2755         * c-decl.c (define_label): Warn about identifier conflicts with
2756         labels in traditional C.
2757
2758         * c-parse.in (unop +): Warn about the unary plus operator for
2759         traditional C.
2760
2761         * c-typeck.c (store_init_value): Warn about automatic aggregate
2762         initialization for traditional C.
2763
2764         * invoke.texi (-Wtraditional): Document new warnings.
2765
2766 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
2767
2768         * Makefile.in (c-errors.o): Fix thinko in dependency.
2769
2770 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
2771
2772         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
2773         -traditional, -ftraditional, or -traditional-cpp was given.
2774         Do not pass -traditional to the preprocessor.
2775         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
2776         preprocessor does it automatically.
2777         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
2778
2779         * ch/lang-specs.h: Always use tradcpp.  Do not pass
2780         -traditional, -trigraphs, or -pedantic to the preprocessor.
2781         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
2782         _LANGUAGE_FORTRAN.
2783
2784 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
2785
2786         * cppexp.c (LOGICAL): Delete macro.
2787         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
2788         and && directly.
2789
2790         * cpphash.c (HASHSIZE): Increase to 4096.
2791         (struct hashdummy): Add hash field.
2792         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
2793         the string values using memcmp.
2794         (cpp_lookup): Set dummy.hash.
2795
2796 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
2797
2798         * configure.in (m88k-openbsd): Express configuration using new fragment
2799         style.
2800         * configure: Rebuilt.
2801         * m88k/aout-dbx.h: New.
2802         * m88k/openbsd.h: New.
2803         * m88k/xm-openbsd.h: New.
2804
2805 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2806
2807         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
2808
2809 2000-07-12  Richard Henderson  <rth@cygnus.com>
2810
2811         * reload.c (push_secondary_reload): Make sure to add the new
2812         reload at the end, after acquiring secondary memory.
2813
2814 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2815
2816         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
2817
2818         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
2819         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
2820
2821         * c-parse.in (stmt): Delete unused variables.
2822
2823         * convert.c (convert_to_vector): Likewise.
2824
2825         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
2826
2827         * tree.c (finish_vector_type): Prototype.
2828
2829 2000-07-12  Bruce Korb  <bkorb@gnu.org>
2830
2831         * fixinc/fixfixes.c: use xmalloc
2832         * fixinc/fixincl.c(initialize): set program name for xmalloc
2833         * fixinc/fixlib.c(must_malloc): obsolete
2834         (is_cxx_header): no longer used - disabled
2835         (skip_quote): inserted and disabled for future use
2836         * fixinc/fixlib.h: reflects above
2837         * fixinc/fixtests.c: removed dinkleberries
2838
2839 2000-07-12  Neil Booth  <NeilB@earthling.net>
2840
2841         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
2842         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
2843
2844         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
2845         struct toklist_dummy): New.
2846         (cpp_free_definition): Free macros with free_macro.
2847         (count_params): Don't save paramter spellings.  Save macro
2848         information in a struct macro_info.
2849         (parse_define): Don't allocate a token list.
2850         (save_expansion): Allocate the macro's token list, and
2851         save parameter spellings if necessary.  Use TOKEN_SPELL.
2852         (cpp_create_definition): Make list const.
2853
2854 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
2855
2856         * c-typeck.c (pedwarn_c99): Move to
2857         * c-errors.c: ... Here.
2858         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
2859         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
2860         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
2861         (c-errors.o): List dependency.
2862
2863 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
2864
2865         * c-parse.c: Remove.
2866         * c-parse.h: Likewise.
2867         * c-parse.y: Likewise.
2868         * objc/objc-parse.c: Likewise.
2869         * objc/objc-pasre.y: Likewise.
2870
2871 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
2872
2873         * gcc.texi: Fix minor typos
2874         * extend.texi: Fix minor typos
2875
2876 2000-07-11  Marc Espie <espie@openbsd.org>
2877
2878         * collect2.c (main): Recognize .lo as object files.
2879
2880 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2881
2882         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
2883         true.
2884
2885         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
2886         with MAP_ANONYMOUS and MAP_ANON.
2887         * configure, config.in: Rebuilt.
2888
2889 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
2890
2891         * diagnostic.c (save_output_state): Remove.
2892         (restore_output_state): Likewise.
2893         (clear_text_info): New function.
2894         (clear_diagnostic_info): Likewise.
2895         (output_text_length, is_starting_newline, output_prefix,
2896         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
2897         prefixing_policy, output_buffer_ptr_to_format_args): New macros
2898         (set_real_maximum_length, output_set_maximum_length,
2899         output_set_prefix, output_get_prefix, output_set_maximum_length,
2900         output_destroy_prefix, init_output_buffer,
2901         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
2902         output_add_newline, output_add_character, output_add_space,
2903         output_append_r, output_append, wrap_text, output_format,
2904         output_do_printf, output_printf, output_do_verbatim,
2905         output_verbatim, verbatim): Use them.
2906         (output_clear): Split into cleat_text_info and
2907         clear_diagnostic_info.
2908         (struct output_state): Move to...
2909
2910         * diagnostic.h: ...Here
2911         (struct output_buffer): Adjust.
2912
2913 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
2914
2915         * cpplex.c (parse_name): No longer inline (premature optimization).
2916         (do_pop_context): Fold into pop_context.
2917         (pop_context): Returns int.
2918         (lex_next): Hoist test for end of directive into pop_context.
2919         (push_macro_context): Returns int; takes just reader and token.
2920         Hoist test for excessive nesting to caller.
2921         (push_arg_context): Returns void; takes just reader and token.
2922         Do not call stringify_arg or get_raw_token.
2923         (get_raw_token): Convert tail recursion through push_arg_context
2924         to a loop at this level.  Call stringify_arg here if appropriate.
2925         (maybe_paste_with_next): Convert tail recursion to a while loop.
2926         Hoist test of paste_level to caller.
2927
2928         (stringify_arg): Push arg context at beginning.
2929         (cpp_get_token): Split out core into _cpp_get_token.  Call
2930         process_directive here.  Throw away CPP_PLACEMARKER tokens.
2931         (_cpp_get_token): Convert tail recursion through
2932         push_macro_context to a loop at this level.
2933         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
2934         _cpp_get_raw_token): Use _cpp_get_token.
2935         (_cpp_skip_rest_of_line): Drop the context stack directly; do
2936         not call pop_context.
2937         (_cpp_run_directive): Call lex_next directly.
2938
2939         * cpphash.h: Prototype _cpp_get_token.
2940         * cppexp.c (lex): Use it.
2941         * cpphash.c (parse_define): Use it.
2942         * cpplib.c (get_define_node, do_undef, parse_include,
2943         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
2944         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
2945         parse_ifdef, validate_else): Use it.
2946         (cpp_push_buffer): Tweak error message; abort if anyone tries
2947         to push a buffer while macro expansions are stacked.
2948
2949 2000-07-11  Donn Terry  <donnte@microsoft.com>
2950
2951         * cpplex.c (free_macro_args, save_token): Cast arg of free
2952         and/or xrealloc to PTR.
2953         (_cpp_init_input_buffer): Clear all fields of the base context.
2954
2955 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
2956
2957         * gensupport.c (process_rtx): Make rtl checking stop
2958         complaining about the define_insn while it is being
2959         converted from a define_insn_and_split.
2960
2961 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
2962
2963         * config/mips/mips.c (simple_memory_operand): Access the
2964         INTVAL of the address, not it's containing MEM.
2965
2966 2000-07-11  Bruce Korb  <bkorb@gnu.org>
2967
2968         * fixinc/fixtests.c(double_slash): obsolete
2969         (else_endif_label): likewise
2970         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
2971         (libc1_ifdefd_memx): correct initial comment
2972         and omit the #if/#endif pair from the memxxx declarations
2973         * fixinc/fixincl.x: regen
2974
2975 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2976
2977         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
2978
2979 2000-07-11  Neil Booth  <NeilB@earthling.net>
2980
2981         * cpp.texi: Update.
2982
2983 2000-07-11  Neil Booth  <NeilB@earthling.net>
2984
2985         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
2986         (handle_option): Set digraphs according to standard.
2987         Merge OPT_lang_c89 handler with OPT_std_c89.
2988
2989         * cpplex.c: (lex_line, can_paste): Honour digraphs in
2990         accordance with the digraphs flag.
2991
2992         * cpplib.h: (struct cpp_options): New option digraphs.
2993
2994 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
2995             Bruce Korb  <bkorb@gnu.org>
2996
2997         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
2998         * fixinc/fixincl.x: Regenerate.
2999         * fixinc/tests/base/testing.h: Add testcase.
3000
3001 2000-07-10  Richard Henderson  <rth@cygnus.com>
3002
3003         * config/ia64/ia64.c (got_symbolic_operand): New.
3004         (symbolic_operand, move_operand): Revert 0701 change.
3005         * config/ia64/ia64.h (PREDICATE_CODES): Update.
3006         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
3007         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
3008         split the offset into a 14-bit low part instead of a 13-bit low part.
3009         (load_fptr): Mark the mem as unchanging.
3010         (load_symptr): Use got_symbolic_operand.
3011
3012 2000-07-10  Nick Clifton  <nickc@cygnus.com>
3013
3014         * libgcc2.c (next_stack_level): Cast result of computation to
3015         (void **) so that the assignment does not generate a warning.
3016
3017 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
3018
3019         * flags.h : Add new variable flag_single_precision_constant.
3020         * toplev.c (display_help) : Add -fsingle-precision-constant option.
3021         (flag_single_precision_constant): New.
3022         * c-lex.c (yylex): Convert floating point constant to single
3023         precision constant.
3024         * invoke.texi : Add documentation for this new option.
3025
3026 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
3027
3028         * diagnostic.c (output_octal): Second parameter is unsigned.
3029         (output_long_octal): Likewise.
3030         (output_hexadecimal): Likewise.
3031         (output_long_hexadecimal): Likewise.
3032         (output_format): Adjust arguments extraction. Tweak.
3033         (output_verbatim, verbatim): End variable argument list.
3034         (report_diagnostic): Improve documentation.
3035
3036 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
3037
3038         * c-common.h (build_stmt): Declare.
3039         (build_continue_stmt): Likewise.
3040         (build_break_stmt): Likewise.
3041         (build_return_stmt): Likewise.
3042
3043         * c-decl.c (do_case): Rewrite to do what previously done in
3044         c-parse.in.
3045
3046         * c-semantics.c (build_stmt): Define.
3047         (build_return_stmt): Likewise.
3048         (build_break_stmt): Likewise.
3049         (build_continue_stmt): Likewise.
3050         (build_case_label): Likewise.
3051
3052         * c-parse.in (BREAK): Change to build tree, then generate RTL.
3053         (CONTINUE): Likewise.
3054         (RETURN): Likewise.
3055         (CASE): Likewise.
3056         (DEFAULT): Likewise.
3057
3058         * c-parse.y: Regenerate.
3059         * c-pasre.c: Likewise.
3060
3061 2000-07-09  Jason Merrill  <jason@redhat.com>
3062
3063         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
3064
3065         * tree.h (STRIP_NOPS): Check for error_mark_node.
3066         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
3067         (dwarf2out_*): Remove duplicate declarations.
3068
3069         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
3070         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
3071
3072 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
3073
3074         * diagnostic.c (wrap_text): New function.
3075         (maybe_wrap_text): Likewise.
3076         (output_add_string): Use it.
3077         (output_format): Likewise.
3078         (count_error): Use verbatim instead of notice.
3079         (report_error_function): Likewise. Don't use plain fprintf.
3080         (finish_diagnostic): New function.
3081         (output_do_verbatim): Tweak.  Commonalize functionalities in
3082         output_verbatim and verbatim.
3083         (output_verbatim): Adjust.
3084         (verbatim): Likewise.
3085         (report_diagnostic): Define.
3086
3087         * diagnostic.h (report_diagnostic): Prototype.
3088
3089 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
3090
3091         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
3092
3093 2000-07-09  Neil Booth  <NeilB@earthling.net>
3094
3095         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
3096         IShspace, ISspace: Update.
3097
3098         * cppinit.c: ISTABLE: Update.
3099         V: New.
3100
3101         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
3102         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
3103         (skip_block_comment, skip_line_comment, parse_string,
3104         lex_line): Use is_vspace rather than IS_NEWLINE.
3105         (skip_whitespace, lex_line): Clean up to use is_nvspace.
3106         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
3107         gets a BOL flag.
3108         (lex_next): Unconditionally stop if within a directive.
3109         Treat directives within macro invocations as directives
3110         (after parse_args emits error), not as the argument.
3111
3112 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
3113
3114         * diagnostic.c (diagnostic_args): New macro.
3115         (diagnostic_msg): Likewise.
3116         (output_formatted_integer): Likewise.
3117         (output_state): New data type.
3118         (digit_buffer): Make global.
3119         (output_add_integer): Rename to output_decimal. Squeeze
3120         digit_buffer.
3121         (output_long_decimal, output_unsigned_decimal,
3122         output_long_unsigned_decimal, output_octal, output_long_octal,
3123         output_hexadecimal, output_long_hexadecimal): New functions.
3124         (output_append_r): New function.
3125         (output_append): Tweak.
3126         (output_flush_on): Rename to output_to_stream.
3127         (output_format): Change prototype.  Improve documentation. Handle
3128         more format specifiers.
3129         (build_location_prefix): Rename to context_as_prefix.
3130         (output_notice): Rename to output_do_printf.
3131         (output_printf): Tweak.
3132         (line_wrapper_printf): Likewise.
3133         (vline_wrapper_message_with_location): Adjust call to renamed
3134         functions.
3135         (v_message_with_decl): Likewise.
3136         (default_print_error_function): Likewise.
3137         (save_output_state): New function.
3138         (restore_output_state): Likewise.
3139         (output_do_verbatim): Likewise.
3140         (output_verbatim): Define.
3141         (verbatim): Likewise.
3142
3143         * diagnostic.h (printer_fn): Change return type from void to int.
3144         Improve documentation.
3145         (output_add_integer): Rename to output_decimal.
3146         (output_flush_on, output_format): Don't export.
3147         (output_verbatim, verbatim): Declare.
3148
3149 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
3150
3151         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
3152         Check whether c divides op1 exactly if operation is not
3153         multiplication.
3154
3155 2000-07-08  Richard Henderson  <rth@cygnus.com>
3156
3157         * final.c (final): Do not abort when reg-stack introduces
3158         a new insn.
3159
3160 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
3161
3162         * cpplib.h (struct cpp_name): Now struct cpp_string.
3163         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
3164         CPP_HEADER_NAME): Change to type S.
3165         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
3166         field, a cpp_hashnode *.  All references to val.name updated
3167         to use val.str or val.node as appropriate.
3168         (struct cpp_reader): Add spec_nodes field.
3169         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
3170
3171         * cpphash.h (struct spec_nodes): New.
3172         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
3173         val.str.  All references to 'spelling > SPELL_NONE' updated to
3174         match.
3175
3176         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
3177         pfile->buffer->inc are not NULL before dereferencing them.
3178
3179         * cpplex.c (parse_name): Take a pointer to the current token,
3180         plus current position and limit as args; return the new
3181         position; don't copy the text of a name into the string
3182         buffer, instead call cpp_lookup and store the node pointer.
3183         If extending a token, copy out the text of the old into a
3184         scratch buffer, append the new, look that up and store the new
3185         node pointer.  Inline.
3186         (maybe_paste_with_next): If the result of paste is a NAME,
3187         then look up the pasted text and store its node pointer.
3188         (lex_line): Adjust for new parse_name interface.
3189         Check for L"str", L'str' using spec_nodes->n_L.
3190         (spell_token): SPELL_IDENT tokens have their spelling in
3191         val.node->name.  Handle SPELL_STRING tokens that don't have
3192         string delimiters.
3193         (_cpp_expand_name_space,
3194         (can_paste): Check for L ## "str" using spec_nodes->n_L.
3195         (cpp_get_token, special_symbol): No need to call cpp_lookup.
3196         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
3197         return 1=equal 0=not, not a tristate.
3198
3199         * cpphash.c (var_args_str): Delete.
3200         (find_param): Compare node fields directly.
3201         (is__va_args__): Use CPP_PEDANTIC.  Just compare
3202         token->val.node with spec_nodes->n__VA_ARGS__.
3203         (dump_funlike_macro): Don't use var_args_str.
3204
3205         * cpplib.c (_cpp_check_directive): Just walk through
3206         spec_nodes->dirs comparing pointers.
3207         (get_define_node, do_pragma_poison, detect_if_not_defined,
3208         parse_ifdef): The identifier has already been looked up.
3209         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
3210         node.
3211         (do_if): Only call detect_if_not_defined at beginning of file.
3212         (_cpp_parse_assertion): Only copy string pointers for
3213         SPELL_STRING tokens.
3214         (pragma_dispatch): Take a node pointer and examine its name
3215         field.
3216         (_cpp_init_stacks): Also initialize the spec_nodes structure.
3217
3218         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
3219         _cpp_init_macros.
3220         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
3221         reverse order from the corresponding _cpp_init_* routines.
3222
3223         * cppexp.c (parse_number, parse_charconst, parse_defined,
3224         lex): Check val.node->type instead of calling cpp_defined.
3225         Use spec_nodes entries where appropriate.
3226
3227         * fix-header.c, scan-decls.c: Update for interface changes.
3228
3229 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
3230
3231         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
3232         emitting aux_truncdfsf2.
3233
3234 2000-07-03  Donn Terry  (donnte@microsoft.com)
3235
3236         * cppinit.c (print_help): split overlong line into ISO C89
3237         maximum chunks.
3238
3239 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
3240
3241         * cppexp.c: Update all code for new lexer interface.
3242         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
3243         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
3244         * cpplex.c (token_names): Trim leading CPP_ from names; make
3245         the strings unsigned.
3246         (_cpp_spell_operator): New.
3247         (is_macro_disabled): Disable all macros if rescanning
3248         preprocessed text.
3249         (_cpp_get_directive_token): Remove.
3250
3251         * cppinit.c: Don't set no_macro_expand.
3252         * cpplib.c (read_line_number, do_line): Check only for EOF,
3253         not VSPACE.
3254         * cpphash.h: Update prototypes.
3255         * cpplib.h (CPP_VSPACE): Remove.
3256         (struct cpp_reader): Remove no_macro_expand.
3257
3258 2000-07-08  Neil Booth  <NeilB@earthling.net>
3259
3260         * cpphash.c (is__va_args__): New function.
3261         (count_params): Fix line reported in error messages.  Use
3262         is__va_args__.  Don't return ')' on error.  Flag GNU style
3263         rest args macro definitions.
3264         (parse_define): Check macro name is not __VA_ARGS__.
3265         (save_expansion): Check identifier in non-varargs-macro is
3266         not __VA_ARGS__.  Don't flag GNU_VARARGS.
3267         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
3268         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
3269          than per-token GNU_VARARGS.
3270         * cpplib.h (GNU_VARARGS): Remove.
3271         (GNU_REST_ARGS): New.
3272
3273 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3274
3275         * i386.md (call_pop, call, call_value_pop): Do not set
3276         current_function_uses_pic_offset_table for calls to static
3277         functions or indirect calls.
3278
3279 2000-07-07  Jim Wilson  <wilson@cygnus.com>
3280
3281         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
3282         is_predicate_reg, then take max write_count of register pair.
3283
3284 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3285
3286         * tradcpp.c (main): Rename label `include' to `add_include' to
3287         avoid conflicts with variable `include' in traditional C.
3288
3289 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
3290
3291         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
3292
3293 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
3294
3295         * sibcall.c (uses_addressof): Add INMEM argument, check for
3296         current_function_internal_arg_pointer outside of MEM rtxs in addition
3297         to ADDRESSOFs.
3298         (sequence_uses_addressof): Update caller.
3299
3300 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
3301
3302         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
3303         and friends.
3304
3305 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3306
3307         * system.h (UNION_INIT_ZERO): New macro for initializing union
3308         members in structs.
3309
3310         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
3311
3312 2000-07-07  Neil Booth  <NeilB@earthling.net>
3313
3314         * cpp.texi: Update.
3315
3316 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
3317
3318         * final.c (final): Detect out of bounds array access to
3319         the insn_lengths array.
3320
3321 2000-07-07  Kazu Hirata  <kazu@hxi.com>
3322
3323         * fold-const.c (fold): Fix a comment typo.
3324
3325 2000-07-07  Neil Booth  <NeilB@earthling.net>
3326
3327         * cpp.texi: Update to new lexer.
3328
3329 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
3330
3331         * tradcpp.c: New file.
3332         * tradcif.y: New file.
3333         * tradcif.c: New generated file.
3334
3335         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
3336         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
3337         dependencies of C.  Install tradcpp from install-common, in
3338         $(libsubdir).
3339
3340 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
3341
3342         * cppinit.c: Include cppdefault.h.  Refer to
3343         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
3344         to GCC_INCLUDE_DIR and its length.
3345         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
3346         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
3347         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
3348         cppdefault.h.
3349         (include_defaults_array): Move to cppdefault.c.
3350
3351         * cppdefault.h: New file.
3352         * cppdefault.c: New file.
3353
3354         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
3355         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
3356         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
3357         this file.
3358
3359 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3360
3361         * reload.c (push_reload): When seeing if can reuse a register,
3362         check extra registers against widest of INMODE and OUTMODE.
3363
3364 2000-07-06  Neil Booth  <NeilB@earthling.net>
3365
3366         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
3367         based on full length of predicate.
3368
3369 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
3370
3371         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
3372         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
3373
3374 2000-07-05  Kazu Hirata  <kazu@hxi.com>
3375
3376         * h8300-proto.h: Fix formatting.
3377         * h8300.c: Likewise.
3378         * h8300.h: Likewise.
3379
3380 2000-07-05  Jim Wilson  <wilson@cygnus.com>
3381
3382         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
3383         CCmode.
3384
3385 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
3386
3387         * invoke.texi: Fix minor typos
3388         * md.texi: Fix minor typos
3389
3390 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
3391
3392         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
3393
3394 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
3395
3396         * cpplex.c: Don't include sys/mman.h.
3397         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
3398
3399         * cpplib.c: Include sys/mman.h and obstack.h.
3400         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
3401         obstack.
3402         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
3403         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
3404         bother freeing if stack entries (they will be freed with their buffer).
3405         (do_endif): Free if stack entries from the buffer obstack.
3406         (push_conditional): Allocate if stack entries from the buffer obstack.
3407
3408         (find_answer): Rename to _cpp_find_answer.
3409         (do_assert, do_unassert): Update.
3410
3411         * cpphash.h: Update prototypes.
3412         (xobnew): New convenience macro.
3413         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
3414         Update comments.
3415         (struct cpp_hashnode): Remove disabled field.
3416
3417         * cppinit.c: Don't include hashtab.h or splay-tree.h.
3418         (report_missing_guard): Moved to cppfiles.c.
3419         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
3420         cpp_init_includes.
3421         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
3422         cpp_cleanup_includes.  Don't destroy hashtab or
3423         all_include_files here.
3424         (cpp_finish): Use _cpp_report_missing_guards.
3425
3426         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
3427         (_cpp_init_include_table): Rename _cpp_init_includes.
3428         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
3429
3430         * cppexp.c (parse_assertion): Update for new name of
3431         find_answer.
3432
3433         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
3434
3435 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
3436
3437         * cpplib.c (do_ident): s/VSPACE/EOF/
3438
3439 2000-07-05  Neil Booth  <NeilB@earthling.net>
3440
3441         * cpplex.c: Fix trigraph replacement within strings.
3442
3443 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3444
3445         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
3446
3447         * xcoffout.c (assign_type_number): Constify.
3448         (xcoffout_source_file): Add static prototype.  Don't needlessly
3449         cast away const-ness.
3450
3451 2000-07-04  Jason Merrill  <jason@redhat.com>
3452
3453         * frame.h (frame_state): Move base_offset to end.
3454
3455 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
3456
3457         * calls.c (emit_library_call_value_1): Revert previous change.
3458
3459 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
3460
3461         * fix-header.c (struct partial_proto): Remove unnecessary fields.
3462         (recognized_extern, recognized_function, read_scan_file):
3463         Update for new scheme.
3464         (check_protection): It's still a multiple include guard even
3465         if it doesn't always trigger.
3466         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
3467         new scheme.
3468         * scan.h: Declare struct cpp_token.  Update prototypes.
3469
3470 2000-07-03  Neil Booth  <neilb@earthling.net>
3471             Zack Weinberg  <zack@wolery.cumb.org>
3472
3473         Complete overhaul of the lexer and macro expander.
3474
3475         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
3476         arg, arglist, argdata, reflist, collect_objlike_expansion,
3477         collect_funlike_expansion, collect_params,
3478         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
3479         unsafe_chars, macarg, compare_defs, special_symbol,
3480         scan_arguments, stringify, funlike_macroexpand,
3481         _cpp_quote_string, monthnames): Delete.
3482         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
3483         _cpp_create_definition, _cpp_dump_definition,
3484         dump_hash_helper): Adjust.
3485         (find_param, count_params, parse_define, var_args_str,
3486         check_macro_redefinition, save_expansion): New.
3487
3488         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
3489         parse_string, output_line_command, trigraph_replace,
3490         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
3491         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
3492         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
3493         _cpp_skip_rest_of_line): Modify.
3494
3495         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
3496         find_position, null_warning, bump_column, expand_name_space,
3497         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
3498         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
3499         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
3500         _cpp_prescan): Delete.
3501
3502         (dump_param_spelling, process_directive, lex_next,
3503         is_macro_disabled, stringify_arg, expand_context_stack,
3504         output_token, make_string_token, alloc_number_token,
3505         special_symbol, duplicate_token, maybe_paste_with_next,
3506         can_paste, prevent_macro_expansion, restore_macro_expansion,
3507         get_temp_token, release_temp_tokens, quote_string,
3508         token_names, token_spellings, _cpp_expand_name_space,
3509         _cpp_glue_header_name, _cpp_reserve_name_space,
3510         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
3511         placemarker_token, eof_token, cpp_context, macro_args,
3512         get_raw_token, parse_arg, parse_args, save_token,
3513         push_arg_context, push_macro_context, pop_context,
3514         do_pop_context, free_macro_args, _cpp_get_line,
3515         _cpp_run_directive): New.
3516
3517         * cpplib.c (validate_else, parse_include, push_conditional,
3518         pass_thru_directive, read_line_number, parse_ifdef,
3519         detect_if_not_defined, _cpp_check_directive, do_define,
3520         do_undef, do_include, do_import, do_include_next, do_error,
3521         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
3522         top_pragmas, do_pragma_gcc, do_pragma_implementation,
3523         do_pragma_poison, do_pragma_system_header,
3524         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
3525         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
3526         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
3527         cpp_defined): Update for new scheme.
3528         (strtoul_for_line, get_define_node, dump_macro_name,
3529         _cpp_check_linemarker, _cpp_parse_assertion): New.
3530         (_cpp_handle_directive, do_pragma_default): Delete.
3531
3532         * cpphash.h (struct predicate): Now struct answer.
3533         (enum spell_type, struct token_spelling, struct directive,
3534         directive_handler): New.
3535         Update prototypes.  Remove unused macros.
3536         * cpplib.h: Update prototypes.  Remove unused macros,
3537         structure definitions, and fields.
3538
3539         * cpperror.c (print_containing_files, v_message): Adjust.
3540         * cppexp.c (parse_assertion, lex, parse_escape,
3541         _cpp_parse_expr): Adjust.
3542         * cppfiles.c (open_include_file, _cpp_execute_include,
3543         _cpp_compare_file_date, cpp_read_file, read_include_file):
3544         Adjust.
3545         * cppinit.c (dump_special_to_buffer): Delete.
3546         (append_include_chain, merge_include_chains, cpp_reader_init,
3547         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
3548         cpp_finish, handle_option, print_help): Adjust.
3549         * cppmain.c (main): Adjust.
3550
3551 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
3552
3553         * cppspec.c (lang_specific_driver): Use double quotes in error
3554         message.
3555
3556 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
3557
3558         * calls.c (emit_library_call_value_1): Use valreg instead
3559         of hard_libcall_value.
3560
3561 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
3562
3563         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
3564         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
3565         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
3566         (movhi): Likewise.
3567         (movqi): Likewise.
3568         (movdf): Likewise.
3569         (movsf): Likewise.
3570         (movdi): Likewise.
3571         (movti): Likewise.
3572
3573         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
3574         mode instead of wider_mode is being used.
3575
3576 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
3577
3578         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
3579         of 'r'. Use q_regs_operand.
3580         (andsi_1+2): Use q_regs_operand.
3581
3582 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
3583
3584         * builtins.c (get_memory_rtx): Always put into alias set 0.
3585
3586 2000-07-03  Nick Clifton  <nickc@cygnus.com>
3587
3588         * config/arm/arm.md: Fix post increment and pre increment
3589         peepholes so that they do not generate UNPREDICATBLE opcodes.
3590         (ie ones where the increment clobbers the source/destination).
3591
3592 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
3593
3594         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
3595         change too big for -mtiny-stack" a warning, if larger than 63.
3596         (out_set_stack_ptr): Change the logic so -mno-interrupts is
3597         always safe to use on possible future devices.
3598         (function_prologue): Write SPH before SPL, for consistency.
3599         If interrupt_func_p true, we know we have enabled interrupts.
3600         (avr_num_arg_regs): New function.  Round up to even number of
3601         bytes if no -mpack-args or if calling a libgcc function.
3602         (function_arg, function_arg_advance): Use it.
3603         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
3604         Output "movw" if available.
3605         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
3606         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
3607         (asm_output_section_name): Add blanks for consistent output.
3608         (encode_section_info): Set TREE_READONLY for progmem data to
3609         avoid gas warnings about changed section attributes.
3610         (avr_hard_regno_mode_ok): Force non-QImode data to start in
3611         even numbered registers on devices with "movw".
3612         * config/avr/avr.h (MASK_*): Define bits for target_flags.
3613         (TARGET_SWITCHES): Mark help strings for translation.
3614         Add new -mpack-args and -menhanced switches.
3615         (TARGET_OPTIONS): Mark help strings for translation.
3616         (progmem_section): Add section attributes.
3617         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
3618         Output "movw" if available.
3619         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
3620         New patterns.
3621         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
3622         call convention (arguments aligned on even registers).
3623         (_cleanup, _exit): Make weak symbols libc can override.
3624
3625 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3626
3627         * fp-bit.h: New file.
3628
3629         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
3630         Comment #endif statements.
3631         (__thenan_sf, __thenan_df): Add missing braces around initializer.
3632
3633 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
3634
3635         * gcse.c (compute_pre_data): Compute ae_kill using other local
3636         properties instead of calling compute_ae_kill.
3637
3638         * alias.c (init_alias_analysis): Do not call
3639         prologue_epilogue_contains until after reload has completed.
3640
3641 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
3642
3643         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
3644         (genrtl_finish_compound_stmt): Likewise.
3645         (genrtl_compound_stmt): Change to return void.
3646
3647         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
3648         move code from here to ...
3649         (genrtl_compound_stmt): ... here.
3650         (genrtl_finish_compound_stmt): Remove.
3651         (expand_stmt): Add comment.
3652
3653 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
3654
3655         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
3656         and VOID_TYPE_P.
3657
3658 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
3659
3660         * cpplib.h (struct cpp_reader): New field include_depth.
3661         (struct cpp_printer): Rename last_bsd to last_id.
3662         * cppfiles.c (read_include_file): Bump include_depth.
3663         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
3664         (output_line_command): Output correct #line if a header
3665         is including itself and is not protected against multiple inclusion.
3666         Use include_depth instead of buffer_stack_depth, last_id instead of
3667         last_bsd.
3668         * cppinit.c (cpp_start_read): Initialize last_id instead of
3669         last_bsd.
3670
3671 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
3672
3673         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
3674         (c-semantics.o): New target.
3675
3676         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
3677         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
3678         (genrtl_clear_out_block): Likewise.
3679         (genrtl_goto_stmt): Likewise.
3680         (genrtl_expr_stmt): Likewise.
3681         (genrtl_decl_stmt): Likewise.
3682         (genrtl_if_stmt): Likewise.
3683         (genrtl_while_stmt): Likewise.
3684         (genrtl_do_stmt): Likewise.
3685         (genrtl_return_stmt): Likewise.
3686         (genrtl_for_stmt): Likewise.
3687         (genrtl_break_stmt): Likewise.
3688         (genrtl_continue_stmt): Likewise.
3689         (genrtl_scope_stmt): Likewise.
3690         (genrtl_switch_stmt): Likewise.
3691         (genrtl_case_label): Likewise.
3692         (genrtl_begin_compound_stmt): Likewise.
3693         (gerntl_finish_compound_stmt): Likewise.
3694         (genrtl_compound_stmt): Likewise.
3695         (genrtl_asm_stmt): Likewise.
3696         (genrtl_decl_cleanup): Likewise.
3697         (DECL_ANON_UNION_ELEMS): Likewise.
3698         (emit_local_var): Likewise.
3699         (make_rtl_for_local_static): Likewise.
3700         (expand_cond): Likewise.
3701         (expand_stmt): Likewise.
3702         (c_expand_return): Likewise.
3703         (c_expand_start_case): Likewise.
3704         (do_case): Likewise.
3705         (COMPOUND_STMT_NO_SCOPE): Likewise.
3706         (c_expand_asm_operands): Likewise.
3707         (NEW_FOR_SCOPE_P): New macro.
3708         (expand_expr_stmt_fn): New type.
3709
3710         (set_current_function_name_declared): Likewise.
3711         (current_function_name_declared): Likewise.
3712         (lang_expand_stmt): Likewise.
3713         (stmts_are_full_exprs_p): Likewise.
3714         (anon_aggr_type_p): Likewise.
3715         (lang_expand_expr_stmt): Likewise.
3716         (build_case_label): Likewise.
3717
3718         * c-decl.c (lang_expand_expr_stmt): Initialize.
3719         (stmts_are_full_exprs_p): Define.
3720         (current_function_name_declared): Likewise.
3721         (do_case): Likewise.
3722         (lang_expand_stmt): Likewise.
3723         (set_current_function_name_declared): Likewise.
3724         (anon_aggr_type_p): Likewise.
3725
3726         * c-semantics.c: New file.
3727         (expand_cond): Moved from cp/semantics.c.
3728         (genrtl_do_pushlevel): Likewise.
3729         (genrtl_clear_out_block): Likewise.
3730         (genrtl_goto_stmt): Likewise.
3731         (genrtl_expr_stmt): Likewise.
3732         (genrtl_decl_stmt): Likewise.
3733         (genrtl_if_stmt): Likewise.
3734         (genrtl_while_stmt): Likewise.
3735         (genrtl_do_stmt): Likewise.
3736         (genrtl_return_stmt): Likewise.
3737         (genrtl_for_stmt): Likewise.
3738         (genrtl_break_stmt): Likewise.
3739         (genrtl_continue_stmt): Likewise.
3740         (genrtl_scope_stmt): Likewise.
3741         (genrtl_switch_stmt): Likewise.
3742         (genrtl_case_label): Likewise.
3743         (genrtl_begin_compound_stmt): Likewise.
3744         (genrtl_finish_compound_stmt): Likewise.
3745         (genrtl_compound_stmt): Likewise.
3746         (genrtl_asm_stmt): Likewise.
3747         (genrtl_decl_cleanup): Likewise.
3748         (make_rtl_for_local_static): Moved from cp/decl.c.
3749         (emit_local_var): Likewise.
3750         (expand_stmt): Define.
3751
3752         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
3753         (c_expand_return): Likewise.
3754         (c_expand_start_case): Likewise.
3755
3756 2000-07-01  Richard Henderson  <rth@cygnus.com>
3757
3758         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
3759         with the low 13 bits set.
3760         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
3761         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
3762         of the low 13 bits into a CONST plus an adddi3.
3763         (load_symptr): Set RTX_UNCHANGING_P.
3764
3765 See ChangeLog.3 for earlier changes.
3766