OSDN Git Service

e6497ee9d74ab099ce92cda5cce7e0b1ea2a1685
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-11-25  Richard Henderson  <rth@redhat.com>
2
3         * c-common.h (DECL_C_HARD_REGISTER): New.
4         * c-decl.c (finish_decl): Set it for asm register variables.
5         * c-semantics.c (emit_local_var): Test it when instantiating one.
6
7 2000-11-25  Richard Henderson  <rth@redhat.com>
8
9         * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
10         lineno for the start of the function.
11
12 2000-11-25  Richard Henderson  <rth@redhat.com>
13
14         * dwarf2out.c (file_table, file_table_allocated): Remove.
15         (file_table_allocated): Remove.
16         (struct file_table): New.
17         (decl_file_table, line_file_table): New.
18         (print_dwarf_line_table): Use them.
19         (size_of_line_prolog): Likewise.
20         (output_line_info): Likewise.
21         (add_src_coords_attributes): Likewise.
22         (gen_subprogram_die): Likewise.
23         (gen_variable_die): Likewise.
24         (dwarf2out_add_library_unit_info): Likewise.
25         (dwarf2out_line): Likewise.
26         (lookup_filename): Take a struct file_table argument.
27         (init_file_table): New.
28         (dwarf2out_init): Use it.
29
30 2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
31
32         * invoke.texi: Update sequence points references.
33
34 2000-11-25  Neil Booth  <neilb@earthling.net>
35
36         * c-common.c: Remove USE_CPPLIB conditional inclusions.
37         * c-common.h: Similarly.
38         * c-decl.c: Similarly.
39         * c-lang.c: Similarly.
40         * c-lex.c: Similarly.
41         * c-parse.in: Similarly.
42         * c-pragma.c: Similarly.
43         * c-pragma.h: Similarly.
44         * gcc.c: Similarly.
45         * toplev.c: Similarly.
46         * cp/cp-tree.h: Similarly.
47         * cp/decl2.c: Similarly.
48         * cp/lang-specs.h: Similarly.
49         * cp/lex.c: Similarly.
50         * cp/lex.h: Similarly.
51         * cp/spew.c: Similarly.
52         * java/lang-options.h: Similarly.
53         * objc/lang-specs.h: Similarly.
54         * objc/objc-act.c: Similarly.
55
56         * configure.in: Remove configure option.
57         * config.in: Regenerate.
58         * configure: Regenerate.
59
60 2000-11-25  Richard Henderson  <rth@redhat.com>
61
62         * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
63         Revert 2000-11-22 change.
64
65 2000-11-25  Bernd Schmidt  <bernds@redhat.co.uk>
66
67         * config/i386/i386.h (FIXED_REGS): Make the three flags registers
68         fixed.
69
70 2000-11-25  Philipp Thomas  <pthomas@suse.de>
71         * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
72         * configure: Rebuilt.
73
74 2000-11-25  Jakub Jelinek  <jakub@redhat.com>
75
76         * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
77         Handle CONST_INT as second argument.
78         * config/sparc/sparc.c (set_extends): Remove first argument.
79         Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
80         MOV.
81         (sparc_check_64): Abort if first argument is not REG.
82         If it is DImode REG, look at the lower register of the register
83         pair.
84
85         * config/sparc/sparc.c (load_pic_register, restore_regs,
86         output_return, sparc_v8plus_shift, sparc_function_profiler,
87         sparc_function_block_profiler, sparc_block_profiler): Fix output
88         formatting.
89
90 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>
91
92         * config/sh/sh.h (TARGET_NONE): New.
93         (TARGET_SWITCHES): For all variant-selecting switch, use
94         TARGET_NONE to reset all other variant-selecting switch.  Added
95         empty strings to avoid warnings.
96         (TARGET_DEFAULT): Set to SH1_BIT.
97
98         * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
99         insn-codes.h.
100
101         * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
102         (sibcall_pcrel): New insn_and_split.
103         (sibcall, sibcall_value, sibcall_epilogue): New expands.
104
105         * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
106         symPLT_label2reg, call, call_value): Don't set
107         current_function_uses_pic_offset_table.
108         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
109         PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
110         takes it into account.
111         (FINALIZE_PIC): Delete, useless.
112         (LEGITIMATE_CONSTANT_P): Delete, unused.
113         * config/sh/sh.c (sh_expand_prologue): Don't use
114         current_function_uses_pic_offset_table.  Don't special-case
115         PIC_OFFSET_TABLE_REGNUM.  Initialize it if it's ever live and
116         PIC is enabled.
117         (sh_expand_epilogue, initial_elimination_offset): Don't
118         special case PIC_OFFSET_TABLE_REGNUM.
119
120 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>, NIIBE Yutaka  <gniibe@m17n.org>
121
122         * config/sh/sh-protos.h (symbol_ref_operand): Declare.
123         * config/sh/sh.md (UNSPEC_CALLER): New constant.
124         (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
125         (call_pcrel, call_value_pcrel): New insn_and_splits.
126         (call, call_value): Use them.
127         (call_site): New expand.
128         (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
129         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
130         Output call_site label.
131         (PREDICATE_CODES): Added symbol_ref_operand.
132         * config/sh/sh.c (symbol_ref_operand): Define.
133         * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
134         to CALL_INSNs in the split sequence.
135
136 2000-11-24  Nick Clifton  <nickc@redhat.com>
137
138         * config.gcc (v850-*-*): Define c_target_objs and
139         cxx_target_objs.
140
141         * config/v850/t-v850: Define how to build v850-c.o
142
143         * config/v850/v850.h (struct data_area_stack_element): Move
144         definition here from v850.c.
145
146         * config/v850v850.c: Include gcc.h to avoid compile time
147         warning.
148         (push_data_area): Move to v850-c.c.
149         (pop_data_area): Move to v850-c.c.
150         (mark_current_function_as_interrupt): Move to v850-c.c.
151         (GHS_default_section_names): Allow to be exported.
152         (GHS_current_section_names): Allow to be exported.
153         (data_area_stack_elements): Allow to be exported.
154         (ghs_pragma_section): Move to v850-c.c.
155         (ghs_pragma_interrupt): Move to v850-c.c.
156         (ghs_pragma_starttda): Move to v850-c.c.
157         (ghs_pragma_startsda): Move to v850-c.c.
158         (ghs_pragma_startzda): Move to v850-c.c.
159         (ghs_pragma_endtda): Move to v850-c.c.
160         (ghs_pragma_endsda): Move to v850-c.c.
161         (ghs_pragma_endzda): Move to v850-c.c.
162
163         * config/v850/v850-c.c: New file: Contains v850 specific
164         pragma parsing functions.
165
166 2000-11-24  Nick Clifton  <nickc@redhat.com>
167
168         * config.gcc (extra_objs): Remove duplicate description.
169         (c_target_objs): New variable.  Contains target specific
170         object files for the gcc C compiler only.
171         (cxx_target_objs): New variable.  Contains target specific 
172         object files for the gxx C++ compiler only.
173
174         * configure.in (c_target_objs): Substitute in the makefile.
175         (cxx_target_objs): Substitute in the makefile.
176         * configure: Regenerate.
177
178         * Makefile.in (C_TARGET_OBJS): Define and initialise from
179         c_target_objs.
180         (CXX_TARGET_OBJS): Define and initialise from
181         cxx_target_objs.
182         (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
183
184         * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
185
186         * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
187         about how the use of the 'c_lex' function requires the use of
188         the target specific, language specific object files feature of
189         the configuration mechanism.
190
191 Fri Nov 24 18:50:58 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
192
193         * gcc.c (process_command): Use F_OK, not R_OK.
194
195 2000-11-24  Arno J. Klaassen  <arno@heho.snv.jussieu.fr>
196
197         * flow.c (print_rtl_and_abort): Remove ANSIism.
198
199 Fri Nov 24 19:54:36 2000  Alexandre Oliva  <aoliva@redhat.com>
200
201         * config/sh/sh.h (GENERAL_REGISTER_P,
202         GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
203         FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros.  Use them
204         all over.
205         (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
206         * config/sh/sh.c: Use new macros.
207         * config/sh/sh.md: Likewise.
208
209 Fri Nov 24 19:46:16 2000  Alexandre Oliva  <aoliva@redhat.com>
210
211         * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
212         instead of just MACH_REG in DImode.  Always refer to FPSCR_REG
213         in PSImode.
214
215 Fri Nov 24 22:37:41 2000  Denis Chertykov  <denisc@overta.ru>
216
217         * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
218         fixed.
219         (machine_dependent_reorg): Wrong optimization based on
220         NOTICE_UPDATE_CC removed. 
221
222 Fri Nov 24 19:48:09 2000  J"orn Rennecke <amylaar@redhat.com>
223
224         * jump.c (delete_computation): Re-instate deletion of feeding insn.
225         (delete_insn): Look for REG_LABEL notes.
226         (redirect_tablejump): Delete feeding insns.
227
228 2000-11-24  Bernd Schmidt  <bernds@redhat.co.uk>
229
230         * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
231         call_value_pop_1): Make sure operand numbers are contiguous.
232
233         * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
234
235         * reload1.c (conflicts_with_override): New function.
236         (emit_input_reload_insns): Use it to tighten test for validity
237         of substituting into output of previous insn.
238
239         * haifa-sched.c (struct ready_list): New.
240         (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
241         functions.
242         (schedule_insn): Replace args READY and N_READY with a pointer to a
243         ready_list; return void.  Use the new functions to access the ready
244         list.  All callers changed.
245         (queue_to_ready, debug_ready_list): Likewise.
246         (schedule_block): Initialize a ready_list structure.  Use new
247         functions to access it.
248         (max_priority): Remove unused variable.
249         (schedule_insn): Don't set it.
250
251         * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
252
253         * combine.c (cant_combine_insn_p): New function.
254         (try_combine): Use it.
255
256         * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
257         * c-common.c (c-obstack.c): Include "obstack.h".
258         (struct reverse_tree): Delete.
259         (reverse_list, reverse_max_depth): Delete.
260         (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
261         (struct tlist, struct tlist_cache): New.
262         (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
263         (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
264         warn_for_collisions, warn_for_collisions_1, new_tlist): New
265         static functions.
266         (verify_sequence_points): Rewritten.
267         * fold-const.c (fold): Don't lose possibly important sequence
268         points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
269
270 2000-11-24  Richard Sandiford  <rsandifo@redhat.com>
271
272         * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
273         when reversing a register-to-register copy.  Reversal now disabled
274         when the previous instruction has a REG_EQUIV.
275
276 2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
277
278         * c-parse.in (unary_expr): Move VA_ARG from here ...
279         (primary): ... to here.
280
281 2000-11-23  Graham Stott  <grahams@redhat.com>
282
283         * expr.c (store_constructor): If a field is non addressable and
284         the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
285
286 2000-11-23  Bernd Schmidt  <bernds@redhat.co.uk>
287
288         * flow.c (print_rtl_and_abort): New function.
289         (verify_wide_reg, verify_local_live_at_start): Try to dump more
290         information before aborting.
291
292 2000-11-23  Alexandre Oliva  <aoliva@redhat.com>
293
294         * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
295         is narrower than requested mode.
296         (gen_highpart): Abort if register mode is narrower than
297         requested mode.
298
299 2000-11-23  Graham Stott  <grahams@redhat.com>
300
301         * cse.c (cse_insn): Initialise all regcost variables.
302         Fix a typo add missing '='.
303         Only compare costs if there is a replacement insn.
304
305 Thu Nov 23 04:33:33 2000  Alexandre Oliva  <aoliva@redhat.com>
306
307         * final.c (output_addr_const) [LABEL_REF]: Simplify.
308         [MINUS]: Enclose non-CONST_INTs in parentheses.
309         [default]: Try OUTPUT_ADDR_CONST_EXTRA.
310         * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
311         * varasm.c (decode_rtx_const) [CONST]: If it's not something
312         PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
313         instead of abort()ing.
314         * sh.c (output_pic_addr_const): Removed.  Fixed all callers.
315         * sh.h (OUTPUT_ADDR_CONST_EXTRA): New.  Handle the UNSPECs
316         formerly handled in output_pic_addr_const.
317         * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
318         operands of MINUS in CONSTs so that decode_rtx_const() will
319         accept them.
320
321 Thu Nov 23 04:10:30 2000  Alexandre Oliva  <aoliva@redhat.com>
322
323         * config/sh/sh.md (mova_const): New pattern.
324         (GOTaddr2picreg): Use it.
325         * config/sh/sh.c (broken_move): Match it.
326         (mova_p): Don't match it.
327         (machine_dependent_reorg): Adjust it.
328
329 Thu Nov 23 02:09:09 2000  Alexandre Oliva  <aoliva@redhat.com>
330
331         * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
332         Moved most register-number #defines...
333         * config/sh/sh.md (define_constants): ... here.  Use macros to
334         refer to registers and unspecs.
335         * config/sh/sh.c: Likewise.
336
337 Thu Nov 23 01:01:32 2000  J"orn Rennecke <amylaar@redhat.com>
338
339         * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
340         (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
341         (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
342         (splay-tree.o, hash.o): Likewise.
343         GCONFIG_H: New.
344         (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
345         (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
346         (hashtab.o): Likewise.
347         (gcov.o): Depend on $(CONFIG_H).
348         * configure.in: #include insn-codes.h in tm.h.
349
350 2000-11-22  Nick Clifton  <nickc@redhat.com>
351
352         * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
353         const char * to avoid a compile time warning.
354
355         * config/arm/arm.md (define_constants): Define symbolic names for
356         the link register, last integer register and the fake CC register.
357         Update patterns to use these symbolic names.
358
359 2000-11-22  Neil Booth  <neilb@earthling.net>
360
361         * cpplex.c (trigraph_ok): Ensure we don't warn twice.
362         * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
363         
364 2000-11-22  Richard Henderson  <rth@redhat.com>
365
366         * haifa-sched.c (sched_analyze_1): Don't special-case calls
367         for clobbering registers.
368         (sched_analyze_2): Likewise.
369         (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
370
371 2000-11-22  Chris Demetriou  <cgd@sibyte.com>  
372             Neil Booth  <neilb@earthling.net>
373
374         * gcc.c (validate_switches): Validate multiple switches named
375         in '|' (or) expressions in specs.  
376         (handle_braces): If more than 1 alternative in a '|' spec
377         matches, call do_spec1 just once.
378
379 2000-11-22  Michael Meissner  <meissner@redhat.com>
380
381         * d30v.h (TARGET_SWITCHES): Add documentation strings.
382         (TARGET_OPTIONS): Ditto.
383         (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
384         -O3.
385         
386 Wed Nov 22 06:40:56 2000  Jeffrey A Law  (law@cygnus.com)
387
388         * pa.c (hppa_encode_label): Account for addition of encoding
389         character when allocating persistent space for the new label
390         name.
391
392 2000-11-22  Zack Weinberg  <zack@wolery.stanford.edu>
393
394         * Makefile.in, config.gcc, configure.in: Expunge remaining
395         traces of facility for running MD files through C preprocessor.
396
397 2000-11-22  Joseph S. Myers  <jsm28@cam.ac.uk>
398
399         * gcov.texi: Add magic comments for texi2pod.pl.
400         * Makefile.in: Add rules to generate and install gcov.1.
401         * gcov.1: New (generated) file.
402
403 2000-11-21  Richard Henderson  <rth@redhat.com>
404
405         * regrename.c (scan_rtx_reg): Terminate the chain rather than
406         abort on mark_read with NO_REGS.
407
408 2000-11-21  Mike Stump  <mrs@wrs.com>
409
410         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
411         compilation with older compilers, such as /bin/cc on SunOS.
412         * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
413
414 2000-11-21  Richard Henderson  <rth@redhat.com>
415
416         * varasm.c (record_constant): Pad the constructed
417         constant_descriptor appropriately.
418
419 Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
420
421         * rtl.h (traverse_md_constants): Declare.
422         (struct md_constant): Define.
423         * Makefile.in (HOST_RTL): Add hashtab.o .
424         (OBJS): Add hashtab.o .
425         (hashtab.o): New rule.
426         (rtl.o): Depends on HASHTAB_H.
427         * rtl.c (hashtab.h): #include.
428         (md_constants): New static variable.
429         (def_hash, def_name_eq_p, read_constants): New static functions.
430         (traverse_md_constants): New function.
431         (read_name): Do constant expansion.
432         (read_rtx): Recognize define_constants.
433         * gencodes.c (print_md_constant): New function.
434         (main): Emit #defines for all constant definitions encountered.
435         * md.texi (Constant Definitions): New node.
436         * gensupport.c (xcalloc): New function.
437
438 2000-11-21  Richard Henderson  <rth@redhat.com>
439
440         * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
441         * config/alpha/alpha-protos.h: Declare it.
442         * config/alpha/alpha.md (abstf_internal): Use it.
443         (negtf_internal): Likewise.
444         (andnotdi3): Unstar the name.
445         (movtf_internal): Add o/G alternative.
446
447 2000-11-21  Zack Weinberg  <zack@wolery.stanford.edu>
448
449         * stringpool.c (stringpool_statistics): Also report number and
450         percentage of entries which are identifiers.
451
452 2000-11-21  Diego Novillo  <dnovillo@redhat.com>
453
454         * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
455         visited before visiting it.
456
457 2000-11-21  Nick Clifton  <nickc@redhat.com>
458
459         * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
460         TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
461
462         * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
463         
464 2000-11-21  Richard Henderson  <rth@redhat.com>
465
466         * c-common.c (c_unsafe_for_reeval): New function.
467         (add_c_tree_codes): Register it.
468         * c-common.h: Declare it.
469         * tree.c (lang_unsafe_for_reeval): New hook.
470         (unsafe_for_reeval): Call it.
471         * tree.h: Declare it.
472
473 2000-11-21  Richard Henderson  <rth@redhat.com>
474
475         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
476         references as well.
477
478 2000-11-21  Neil Booth  <neilb@earthling.net>
479
480         * do_includes: Revert to using cpp_read_file.
481
482 2000-11-21  Bernd Schmidt  <bernds@redhat.co.uk>
483
484         * loop.c (consec_sets_giv): If the reg we're examining is anything
485         but UNKNOWN_INDUCT, do nothing.
486         Reset the reg's type to UNKNOWN_INDUCT before returning.
487
488         Mostly from Vladimir Makarov (vmakarov@redhat.com)
489         * ia64.md (attr itanium_class): Define insn types as described in
490         Itanium docs.
491         (all insn patterns): Use itanium_class, not type attributes.
492         Occasionally split alternatives as necessary.
493         (attr type): Compute from new attr itanium_class.
494         
495 2000-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
496
497         * tradcpp.c (output_line_command): Mark system headers as such in
498         `line' commands.
499
500 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
501
502         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
503         support in as as well.
504         * configure: Regenerate.
505
506 2000-11-20  Richard Henderson  <rth@redhat.com>
507
508         * c-lex.c (orig_filename): New variable.
509         (init_c_lex): Set it.  Move call to cpp_start_read ...
510         (yyparse): ... here.  New function.
511         * c-parse.in (yyparse_1): Rename the parser entry point.
512         * c-tree.h: Declare it.
513
514 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
515
516         * expr.c (do_compare_and_jump): If op0 was replaced by promoted
517         integer constant, use type of op1 for comparison.
518
519 2000-11-20  Stan Shebs  <shebs@apple.com>
520
521         * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
522         * config/rs6000/x-darwin: New file, Darwin host fragment.
523         * config.gcc (powerpc-*-darwin*): New host.
524         * system.h (HAVE_DESIGNATED_INITIALIZERS):  Allow this to be
525         overridden by a config file.
526
527 2000-11-20  Neil Booth  <neilb@earthling.net>
528
529         * cppmacro.c (paste_tokens): Rename from paste_payloads.
530         Change token type after pasting spellings.
531         (paste_all_tokens): Use it.
532         * gcc.dg/cpp/paste2.c: Update test.
533         * objc/execute/paste.m: New test.
534
535 2000-11-20  Richard Henderson  <rth@redhat.com>
536
537         * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
538         dwarf_subscr_data_formats bits.
539         * dwarfout.c (simple_type_size_in_bits): Handle a type with
540         no computed size as size zero.
541         (field_byte_offset): Likewise.
542         (subscript_data_attribute): Handle a range with no upper bound.
543
544 2000-11-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
545
546         * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
547
548 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
549
550         * c-typeck.c (build_conditional_expr): When merging type
551         qualifiers for conditional expressions between a pointer and a
552         pointer to a void type, merge the qualifiers on the target types
553         rather than the pointer type.  Remove obsolete conditioned out
554         code.
555
556 2000-11-20  Neil Booth  <neilb@earthling.net>
557
558         * c-lang.c (lang_init_options): Update call to
559         cpp_reader_init.
560         * cppmain.c (main): Similarly.
561         * fix-header.c (read_scan_file): Similarly.
562         * cp/lex.c (lang_init_options): Similarly.
563         * objc/objc-act.c (lang_init_options): Similarly.
564         * cppexp.c (parse_number): Only warn for unextended C89.
565         * cppinit.c (set_lang): New function.
566         (cpp_reader_init): Take a LANG argument and pass it to set_lang.
567         (COMMAND_LINE_OPTIONS): New option std=c++98.
568         (cpp_handle_option): Use set_lang.
569         * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
570         * cppib.h (enum_c_lang): New enumeration.  Update comments.
571
572 2000-11-20  Will Cohen  <wcohen@redhat.com>
573
574         * calls.c (expand_call): Clear target only when target is in
575         hard register and current_function_check_memory_usage is set.
576
577 2000-11-20  Bernd Schmidt  <bernds@redhat.co.uk>
578
579         * toplev.c (rest_of_compilation): Run optimize_mode_switching even
580         if not optimizing.
581         * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
582
583 2000-11-19  Richard Henderson  <rth@redhat.com>
584
585         * crtstuff.c (force_to_data): Use array size 1 not 0.
586
587         * dwarf2out.c (simple_type_size_in_bits): Handle a type with
588         no computed size as size zero.
589         (field_byte_offset): Likewise.
590
591 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
592
593         * config.gcc: Fix another typo.
594
595 2000-11-19  Richard Henderson  <rth@redhat.com>
596
597         * c-decl.c (grokdeclarator): Support flexible array members.
598         Use open-ended ranges for these and zero-length arrays.
599         * c-typeck.c (push_init_level): Validate the context of
600         initialization of a zero-length array.
601         * tree.c (int_fits_type_p): Be prepared for missing bounds.
602         * varasm.c (array_size_for_constructor): New.
603         (output_constructor): Use it for arrays of unspecified length.
604         * extend.texi (Zero Length): Mention C99 flexible array members.
605         Document initialization in a top-level struct as valid.
606
607 2000-11-19  Joseph S. Myers  <jsm28@cam.ac.uk>
608
609         * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
610
611         * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
612         stdarg and varargs functions.
613
614 2000-11-19  Zack Weinberg  <zack@wolery.stanford.edu>
615
616         * gcc.c (process_command): Define 'j' variable when
617         MODIFY_TARGET_NAME is defined.
618
619 2000-11-19  Richard Henderson  <rth@redhat.com>
620
621         * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
622
623 2000-11-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
624
625         * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
626         calculation and allocation.
627
628 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
629
630         * builtins.c (c_getstr): Constify variable.
631         * gmon-sol2.c (_mcleanup): Comment out #endif labels.
632         * conflict.c (const_conflict_graph_arc): New typedef.
633         (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
634         * cppmacro.c (builtin_macro): Likewise.
635         * dwarf2out.c (output_comp_unit): Constify variable.
636         * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
637         * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
638         * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
639         away const-ness.
640         * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
641         ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint. 
642         * varasm.c (const_str_htab_hash, const_str_htab_eq,
643         compare_constant_1, record_constant_1): Constify.
644
645 2000-11-18  Richard Henderson  <rth@redhat.com>
646
647         * c-decl.c (grokdeclarator): Special case the creation of an
648         index for a zero-length array.
649         * tree.c (build_index_type): Revert Oct 20 change.
650
651 2000-11-18  Marek Michalkiewicz  <marekm@linux.org.pl>
652
653         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
654         * config/avr/avr.c (jump_tables_size): New variable.
655         (function_prologue): Initialize it as 0.
656         (function_epilogue): Add it to function_size.
657         (avr_output_addr_vec_elt): New function.  Count words in jump
658         tables in jump_tables_size.  Move code ...
659         * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
660         Call avr_output_addr_vec_elt instead.
661         * config/avr/avr.md (tablejump): Remove disabled define_expand.
662
663 2000-11-18  Mark Mitchell  <mark@codesourcery.com>
664
665         * configure.in: Make --enable-new-gxx-abi the default.
666         * configure: Likewise.
667
668 2000-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
669
670         * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
671
672         * tradcif.y: Include tradcpp.h.  Constify.  Make functions static.
673         Move extern function declarations to tradcpp.h.
674
675         * tradcpp.c: Likewise.
676
677         * tradcpp.h: New file.
678
679 2000-11-18  Joseph S. Myers  <jsm28@cam.ac.uk>
680
681         * c-decl.c (check_for_loop_decls): New function.
682         * c-parse.in (for_init_stmt): New.
683         (select_or_iter_stmt): Use for_init_stmt.
684         * c-tree.h (check_for_loop_decls): New declaration.
685
686 2000-11-18  Neil Booth  <neilb@earthling.net>
687
688         * cppinit.c: Update comments.
689         (cpp_reader_init): Make -imacro and -include use the standard
690         #include "" search path.
691         (do_includes): New function.
692
693 2000-11-18  Ben Elliston  <bje@redhat.com>
694
695         * config/sh/crt1.asm (start_l): Move PC-relative move instruction
696         out of a branch delay slot.
697
698 2000-11-17  Richard Henderson  <rth@redhat.com>
699
700         * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
701         (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
702         (ASM_FILE_START): Only write out ecoff .file directive if
703         emitting mdebug debugging.
704
705 2000-11-17  Richard Henderson  <rth@redhat.com>
706
707         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New.  Detect
708         whether as accepts .file/.loc and produces dwarf2 line info.
709         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
710         the assembler supports it.
711         * config.in, configure: Regenerate.
712
713 2000-11-17  Richard Henderson  <rth@redhat.com>
714
715         * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
716
717 2000-11-17  Jim Wilson  <wilson@redhat.com>
718
719         * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN): 
720         Don't clear need_barrier is next_insn is a CALL_INSN, or has
721         instruction type B or UNKNOWN.
722
723 2000-11-17  Neil Booth  <neilb@earthling.net>
724
725         * cpperror.c (print_file_and_line): Don't display line number if 0.
726
727 2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
728
729         * ggc.h: Delete ggc_add_string_root and ggc_mark_string.  Add
730         digit_vector and digit_string.
731         * stringpool.c (digit_vector): New.
732         (ggc_alloc_string): Use digit_string.
733
734         * stmt.c (digit_strings): Delete.
735         (init_stmt): Do not initialize digit_strings.
736         (expand_asm_operands): Use ggc.h's digit_string macro.
737         * toplev.c (mark_file_stack): Delete.
738         (compile_file): Don't call init_tree_codes.
739         (main): No need to make the file stack a GC root.
740         * tree.c (init_tree_codes): Delete.
741         * tree.h (init_tree_codes): Delete.
742
743         * c-lex.c: Don't include ggc.h.
744         (mark_splay_tree_node, mark_splay_tree): Delete.
745         (init_c_lex): No need to ggc_strdup string constant.  Don't add
746         file_info_tree to GGC roots.
747         (cb_enter_file, cb_rename_file): No need to ggc_strdup
748         ip->nominal_fname.
749
750         * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
751
752         * dbxout.c (dbxout_init),
753         dwarf2out.c (dwarf2out_line),
754         ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
755         varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
756         xcoffout.c (xcoffout_source_file),
757         i386.c (load_pic_register):
758         Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
759
760         * except.c (create_rethrow_ref),
761         profile.c (init_edge_profiler),
762         toplev.c (compile_file),
763         varasm.c (named_section, assemble_static_space,
764         assemble_trampoline_template, output_constant_def, force_const_mem),
765         i386.c (load_pic_register),
766         ia64.c (ia64_encode_section_info),
767         rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
768         rs6000_emit_prologue, rs6000_emit_epilogue),
769         rs6000.md (load_toc_aix_si, load_toc_aix_di):
770         Change ggc_alloc_string (var, -1) to ggc_strdup (var).
771
772         * profile.c (output_func_start_profiler),
773         tree.c (make_node),
774         i386.c (load_pic_register): No need to ggc_strdup string constant.
775
776 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
777
778         * Makefile.in (config.status): Depend on config.gcc.
779         * configure.in <for machine in $build $host $target>: Move
780         contents of loop into config.gcc, removing autoconf quoting.
781         Fix changequote bug for alpha*-*-vxworks*.
782         * configure: Regenerate.
783         * config.gcc: New.
784
785 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
786
787         * c-parse.in (if_prefix): Find the filename and line number at
788         $-2 and $-1 respectively.
789         * diagnostic.c (error_recursion): Add missing newline, use
790         fputs, translate string.
791
792 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
793
794         * stringpool.c: New file.
795         * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
796         (ggc_alloc_string): Now in stringpool.o.
797         * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
798         * ggc.h: Delete prototype of ggc_add_string_root.  #define
799         ggc_add_string_root and ggc_mark_string to nothing.  Prototype
800         init_stringpool and stringpool_statistics.
801         (ggc_alloc_string): Returns a const char *.
802         * tree.c (hash_table, do_identifier_warnings): Delete.
803         (init_obstacks): Don't initialize the identifier hash table.
804         (get_identifier, maybe_get_identifier, start_identifier_warnings,
805         set_identifier_size): Now in stringpool.c.
806         * tree.h (struct tree_string): Constify pointer field.
807         (approx_sqrt): Prototype.
808
809         * Makefile.in (stringpool.o): Add rule, mention in OBJS.
810
811         * toplev.c (approx_sqrt): New function.
812         (compile_file): Call stringpool_statistics if mem_report is on.
813         (main): Call init_stringpool.
814
815         * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
816         (process_directive), c-typeck.c (constructor_asmspec, struct
817         initializer_stack, start_init), except.c (create_rethrow_ref),
818         stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
819         (built_in_filename), varasm,c (in_named_name,
820         assemble_static_space, struct constant_descriptor, struct
821         deferred_string, struct pool_constant, force_const_mem),
822         i386.c (pic_label_name, global_offset_table_name), rs6000.c
823         (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
824
825         * c-common.c (combine_strings): Combine strings in scratch
826         buffer, then pass to build_string.
827         * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
828         output_func_start_profiler), stmt.c (init_stmt), alpha.c
829         (alpha_need_linkage), arm.c (arm_encode_call_attribute),
830         i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
831         rs6000.c (rs6000_encode_section_info): Create string in
832         scratch buffer, then pass to ggc_alloc_string.
833
834         * stmt.c (expand_asm_operands): If we must adjust the
835         constraint strings, do so by creating a new one, not by
836         modifying the old one in place.  Constify some char *s.
837         * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
838         argument.  Create string in scratch buffer, then pass to
839         ggc_alloc_string.
840         * config/pa/pa-protos.h: Update prototype.
841         * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
842         hppa_encode_label takes only one argument.
843
844 2000-11-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
845
846         * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
847         malloc/realloc.
848
849         * cpplib.c (glue_header_name): Likewise.
850
851         * fixincl.c (run_compiles, start_fixer): Likewise.
852
853         * fixlib.c (load_file_data): Likewise.
854
855         * mkdeps.c (munge): Likewise.
856
857 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
858
859         * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
860         trailing ';'.  Fix formatting.
861
862 2000-11-16  Jim Wilson  <wilson@redhat.com>
863
864         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
865         Shift masks left by one to avoid conflict.
866
867         * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
868         DECL_EXTERNAL set.
869
870 2000-11-16  Nick Clifton  <nickc@redhat.com>
871
872         * config/arm/arm.c (output_arm_prologue): Note nested functions.
873         (arm_expand_prologue): For nested functions preserve the
874         static chain register during stack frame creation.
875
876         * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
877         (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
878         with a stack frame there is a 4 byte gap between the arg
879         pointer and the hard frame pointer (used to preserve the
880         static chain register during stack frame creation).
881
882 2000-11-16  DJ Delorie  <dj@redhat.com>
883
884         * rtl.c (read_rtx): Provide suitable names for unnamed
885         define_insn and define_insn_and_split patterns, based on file
886         and line numbers.
887
888 2000-11-15  Neil Booth  <neilb@earthling.net>
889
890         * cpplib.c (start_directive, end_directive): New functions.
891         (_cpp_handle_directive, run_directive): Use them.
892         (_cpp_handle_directive): Don't -Wtraditional on indented
893         null directives.
894         (_cpp_push_buffer): Don't re-clear was_skipping.
895         * cpplib.h (struct cpp_reader): New member la_saved.
896         * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
897         directives.
898
899         gcc.dg/cpp/_Pragma1.c: Update.
900         gcc.dg/cpp/_Pragma2.c: New test.
901
902 2000-11-15  Mark Mitchell  <mark@codesourcery.com>
903
904         * toplev.c (wrapup_global_declarations): Don't write out
905         artificial static variables that aren't needed.
906
907 2000-11-15  Bernd Schmidt  <bernds@redhat.co.uk>
908
909         * ia64.c (struct group): New structure.
910         (last_group): New static array.
911         (group_idx): New static variable.
912         (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
913         New static functions.
914         (emit_insn_group_barriers): Initialize and keep track of group_idx
915         and last_group.
916         Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
917         Replace all calls to emit_insn_after that emit a group barrier to use
918         emit_group_barrier_after.
919         * ia64.h (MASK_B_STEP): New.
920         (other MASK_XXX macros): Renumbered.
921         (TARGET_B_STEP): New.
922         (TARGET_SWITCHES): Add -mb-step.
923
924 2000-11-15  Fred Fish  <fnf@be.com>
925
926         * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
927         machines for which fixincludes is not needed.
928         * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
929
930 2000-11-15  Jason Merrill  <jason@redhat.com>
931
932         * diagnostic.c (finish_abort): New fn.
933         (fancy_abort, error_recursion): Use it.
934         * toplev.c (crash_signal): Likewise.
935         * diagnostic.h: Declare it.
936
937 2000-11-13  Andrew Haley  <aph@redhat.com>
938
939         * tree.c (build_type_no_quals): New function.
940         * tree.h (build_type_no_quals): Declare.
941         * c-common.c (c_get_alias_set): When considering type
942         compatibility for pointer types, ignore cv-qualifiers anywhere in
943         a pointer chain.
944
945 2000-11-15  Graham Stott  <grahams@redhat.com>
946
947         * regrename.c (scan_rtx_rtx): Skip to the next chain on
948         encountering a terminated chain.
949
950 2000-11-14  Mark Mitchell  <mark@codesourcery.com>
951
952         * configure.in: Move check for V3 above check for C++ header-file
953         directory.
954         * configure: Regenerated.
955
956 2000-11-14  DJ Delorie  <dj@redhat.com>
957
958         * config/v850/v850.c: Remove obstacks.
959
960 Tue Nov 14 21:54:31 2000  Marek Michalkiewicz  <marekm@linux.org.pl> & Denis Chertykov  <denisc@overta.ru>
961
962         * config/avr/avr.c (avr_case_values_threshold): New.
963         (avr_override_options): Set it depending on options, make it large
964         when not optimizing to work around "unable to generate reloads".
965
966         * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
967         (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
968         executable if not AVR_MEGA.  Make sure jump tables are word-aligned.
969         (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
970         (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
971         (avr_case_values_threshold): Declare as extern int.
972         (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
973
974         * config/avr/avr.md (tablejump): Removed.
975         (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
976         (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
977         index in the table, not multiplied by 2.
978         (casesi): Change to match the above insns.  Always enable.
979
980         * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
981         Change to expect the word address of the table, multiply it by 2
982         here and not in the caller.  Change "adiw" to faster "inc".
983
984 2000-11-14  Neil Booth  <neilb@earthling.net>
985
986         * cppexp.c (parse_defined): Call cpp_get_token not
987         _cpp_get_token.
988         (lex): Similarly.
989         * cpplex.c (cpp_output_line): Similarly.
990         * cpplib.c (glue_header_name, do_line, do_ident,
991         parse_answer, parse_assertion): Similarly.
992         (_cpp_handle_diretive): Don't save to lookaheads
993         when processing directives.
994         * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
995         _cpp_get_token.
996         (funlike_invocation_p): Don't save to lookaheads
997         when pre-expanding arguments.
998         (_cpp_get_token): Delete.
999         (cpp_get_token): Merge contents of _cpp_get_token.
1000
1001 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
1002
1003         * builtins.c (expand_builtin_setjmp): Set
1004         current_function_calls_setjmp.
1005         (expand_builtin_longjmp): Set current_function_calls_longjmp.
1006
1007         * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
1008         (do_builtin_setjmp_setup): New insn.
1009
1010 Tue Nov 14 12:34:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1011
1012         * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
1013         (int_fits_type_p): For variable bounds, call force_fit_type.
1014
1015 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
1016
1017         * varasm.c (struct deferred_string): New structure.
1018         (const_str_htab): New variable.
1019         (STRHASH): New macro.
1020         (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
1021         constr_str_htab_eq, const_str_htab_del): New functions.
1022         (output_constant_def): Add DEFER argument, defer string
1023         constants until mark_constant_pool time if requested.
1024         (mark_constant_pool): Walk the insn chain even if const_str_htab is
1025         not empty.
1026         (mark_constants): If a SYMBOL_REF for deferred string is found,
1027         output it and remove from hash table.
1028         (output_addressed_constants): Set DEFER to 0 in call to
1029         output_constant_def.
1030         * rtl.h (STRING_POOL_ADDRESS_P): Define.
1031         (output_constant_def): Adjust prototype.
1032         * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
1033
1034 2000-11-14  Chandrakala Chavva  <cchavva@redhat.com>
1035
1036         * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
1037         signed types if flag_trapv.
1038
1039 2000-11-14  Zack Weinberg  <zack@wolery.stanford.edu>
1040
1041         * tradcpp.c, tradcif.y: Update FSF mailing address, delete
1042         reference to GPLv1.
1043
1044 2000-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1045
1046         * c-common.h (CTI_C_SIZE_TYPE): Update comment.
1047
1048 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
1049
1050         * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
1051         to array of pool_constnat pointers.
1052         (struct pool_constant): Add next_sym and label members.
1053         (struct pool_sym): Remove.
1054         (init_varasm_status): Change pool_sym into pool_constant.
1055         (mark_pool_constant): Mark pc->label string as well.
1056         (mark_pool_sym_hash_table): Remove.
1057         (mark_varasm_status): Remove it from caller as well.
1058         (free_varasm_status): Don't free pool_sym structures.
1059         (force_const_mem): Don't allocate pool_sym structure, instead
1060         fill pool->label and chain it into rtx_sym hash table.
1061         (find_pool_constant, mark_constant_pool): Use pool_constant instead
1062         of pool_sym.
1063
1064 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
1065
1066         * reload1.c (emit_input_reload_insns): Honour forcing of constants
1067         into memory by PREFERRED_RELOAD_CLASS NO_REGS.
1068
1069 2000-11-14  Michael Matz  <matzmich@cs.tu-berlin.de>
1070
1071         * dominance.c: New file.
1072         * Makefile.in (OBJS): Add dominance.o.
1073
1074         * flow.c (compute_flow_dominators): Remove.
1075         (compute_immediate_dominators): Remove.
1076         (compute_immediate_postdominators): Remove.
1077         * basic-block.h: Remove their prototypes.
1078         (calculate_dominance_info): Add prototype.
1079
1080         * dce.c (eliminate_dead_code): Change calls to above functions.
1081         Don't compute dominators but only immediate dominators.
1082         * flow.c (flow_loops_find): Change callers.
1083         * gcse.c (compute_code_hoist_data): Likewise.
1084         * haifa-sched.c (schedule_insns): Likewise.
1085         * ifcvt.c (if_convert): Likewise.
1086         * ssa.c (convert_to_ssa): Likewise, and only compute immediate
1087         dominators.
1088
1089 2000-11-14  Richard Henderson  <rth@redhat.com>
1090
1091         * stmt.c (warn_if_unused_value): Don't warn if the expression
1092         has side effects.
1093
1094         * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
1095         (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
1096
1097 2000-11-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1098
1099         * loop.c (basic_induction_var): Revert accidental checkin.
1100
1101 2000-11-13  Hans-Peter Nilsson  <hp@axis.com>
1102
1103         * c-lex.c (cb_leave_file): Harmonize conditions and order of
1104         statements to those of process_directive for (action == act_pop).
1105
1106         * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
1107
1108         * local-alloc.c (equiv_init_movable_p): References to CC0 are not
1109         movable.
1110
1111 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1112
1113         * c-parse.in (stmts_and_decls): Deprecate use of label at end of
1114         compound statement.
1115
1116 2000-11-13  Neil Booth  <neilb@earthling.net>
1117
1118         * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
1119         cases return without MI check.
1120         * cpplib.c (do_diagnostic): Take boolean of whether to
1121         print the directive name.
1122         (do_error, do_warning): Update.
1123         (do_pragma_dependency): Use it.
1124         * cpplib.h (VARARGS_FIRST): Delete.
1125         (struct cpp_token): Delete integer.
1126         * cppmacro.c (enter_macro_context): Move disabled check
1127         to _cpp_get_token.
1128         (_cpp_get_token): Simplify into a single loop.
1129
1130 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
1131
1132         * configure.in:  Use 'test -f' not '[ -e'.
1133         * configure: Regenerated.
1134
1135 2000-11-13  DJ Delorie  <dj@redhat.com>
1136
1137         * config/mn10300/mn10300.md (store_movm): Note which registers are
1138         really used or clobbered.
1139
1140 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1141
1142         * c-parse.in (ends_in_label): Remove from %union and %type.
1143         (decls, stmts, lineno_stmt_or_labels, xstmts,
1144         lineno_stmt_or_label, stmt_or_label): Remove.
1145         (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
1146         lineno_stmt_decl_or_labels_ending_decl,
1147         lineno_stmt_decl_or_labels_ending_label,
1148         lineno_stmt_decl_or_labels_ending_error,
1149         lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
1150         lineno_stmt, lineno_label): New.
1151         (compstmt_nostart): Use compstmt_contents_nonempty.
1152
1153 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1154
1155         * c-common.c (boolean_increment): New function.
1156         * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
1157         CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
1158         (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
1159         (boolean_increment): Declare.
1160         * c-convert.c (convert): Allow for BOOLEAN_TYPE.
1161         * c-decl.c (init_decl_processing): Create boolean nodes.
1162         (finish_struct): Allow for _Bool bitfields.
1163         * c-parse.in (reswords): Add _Bool.
1164         (rid_to_yy): Allow for RID_BOOL.
1165         * c-typeck.c (default_conversion): Make booleans promote to int.
1166         (convert_arguments, build_unary_op, build_modify_expr,
1167         convert_for_assignment): Allow for booleans.
1168         * ginclude/stdbool.h: Make conforming to C99.
1169
1170 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1171
1172         * c-parse.in (c99_block_start, c99_block_end,
1173         c99_block_lineno_labeled_stmt): New.
1174         (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
1175         (stmt): Split off selection and iteration statements into...
1176         (select_or_iter_stmt): New.  Use c99_block_lineno_labeled_stmt.
1177
1178 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1179
1180         * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
1181         -time): Update.
1182
1183 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
1184
1185         * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
1186         Rewrite to avoid use of match_dup.  Don't try to tie registers that
1187         are not in the same mode.
1188
1189 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1190
1191         * invoke.texi: Update lists of languages and suffixes supported.
1192
1193 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1194
1195         * configure.in: Take toplevel configure arguments from the
1196         environment to create configargs.h and substitute
1197         gcc_config_arguments, taking account of any existing configargs.h
1198         if reconfiguring.
1199         * configure: Regenerate.
1200         * gccbug.in: Include toplevel configure arguments in gccbug.
1201
1202 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
1203
1204         * varasm.c (struct constant_descriptor): Put CONTENTS inside a
1205         union to make it well-aligned.  Update all uses.
1206
1207 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1208
1209         * c-parse.in (initelt): Give appropriate pedantic warnings,
1210         depending on flag_isoc99, for non-ISO syntax and for C99 syntax
1211         outside C99 mode.
1212         (designator): If pedantic, pedwarn for a designator specifying a
1213         range of elements.
1214         * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
1215         these cases.
1216         * extend.texi: Document the C99 syntax as the preferred syntax,
1217         and the pre-2.5 syntax as obsolete.  Mention use of designator
1218         lists for nested subobjects.
1219
1220 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1221
1222         * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
1223         Add ATTRIBUTE_PRINTF.
1224         * tradcpp.c (v_message, warning, error, fatal, error_with_line):
1225         Add ATTRIBUTE_PRINTF*.
1226
1227 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
1228
1229         * function.c (assign_parms): When calling put_var_into_stack, make
1230         sure that there are no hidden pending sequences.
1231
1232 2000-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1233
1234         * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
1235         BUILT_IN_RINDEX.  Add missing checks for BUILT_IN_STRCHR and
1236         BUILT_IN_STRRCHR.
1237
1238         * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
1239
1240         * c-common.c (c_common_nodes_and_builtins): Declare index and
1241         rindex when nonansi builtins are allowed.
1242
1243         * extend.texi (index, rindex): Document new builtins.
1244
1245 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
1246
1247         * configure.in: Turn on libstdc++ V3 by default.
1248         * configure: Regenerated.
1249
1250         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
1251
1252 2000-11-12  Jakub Jelinek  <jakub@redhat.com>
1253
1254         * reload1.c (set_label_offsets): Go inside of PARALLELs.
1255
1256 2000-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1257
1258         * invoke.texi: Clean up option summary.
1259
1260 2000-11-12  Nick Clifton  <nickc@redhat.com>
1261
1262         * config/mcore/mcore.c: Fix comment formating, and adjust sequence
1263         of #include headers.
1264
1265 2000-11-12  Marc Espie <espie@openbsd.org>
1266
1267         * configure.in: Fix filds test.
1268         * configure: Regen.
1269
1270 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
1271
1272         * jump.c (delete_computation): Don't assume that just becuase an
1273         instruction sets a register, that register is dead.
1274
1275 2000-11-12  Neil Booth  <neilb@earthling.net>
1276
1277         * cppexp.c: Don't worry about pfile->skipping.
1278         * cpplib.c (struct if_stack): Make was_skipping unsigned char.
1279         (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
1280         for handled directives.
1281         (skip_rest_of_line): Use _cpp_lex_token after popping contexts
1282         and releasing lookaheads.
1283         (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
1284         (do_else, do_elif, push_conditional): Update logic.
1285         (do_endif): Set buffer->was_skipping rather than pfile->skipping.
1286         (unwind_if_stack): Inline into cpp_pop_buffer.
1287         (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
1288         * cpplex.c (_cpp_lex_token): Clear skipping on EOF.  Handle
1289         multiple-include optimisation.
1290         * cpplib.h (struct cpp_buffer): New member was_skipping.
1291         * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping.  This
1292         works because skipping == 0 in directives.
1293         (_cpp_release_lookahead): Renamed from release_lookahead.
1294         (cpp_get_token): No need to check skipping as _cpp_get_token does
1295         this for us.  No need to handle MI optimisation.
1296
1297 Sat Nov 11 21:14:02 2000  Mark P Mitchell  <mark@codesourcery.com>
1298
1299         * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
1300         declarations that use `__MATH_EXCEPTION' in their prototypes, too.
1301         * fixinc/fixincl.x: Regenerated.
1302
1303 2000-11-11  Bruce Korb  <bkorb@gnu.org>
1304
1305         * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
1306         (avoid_wchar_t_type): ditto
1307         * fixinc/fixinc.irix: obsoleted
1308
1309 2000-11-11  Zack Weinberg  <zack@wolery.stanford.edu>
1310
1311         * configure.in: Don't add $outputs to all_lang_makefiles.  Add
1312         $srcdir/$s/Makefile.in if it exists.
1313         * configure: Regenerate.
1314
1315 Sat Nov 11 18:41:20 2000  Mark P Mitchell  <mark@codesourcery.com>
1316
1317         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
1318
1319 2000-11-11  Jason Merrill  <jason@redhat.com>
1320
1321         * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
1322         give the parm a register and then call put_var_into_stack.
1323         * stmt.c (expand_decl): Likewise.
1324
1325 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
1326
1327         * gcc.texi: Adjust wording.
1328
1329 2000-11-11  Mark Mitchell  <mark@codesourcery.com>
1330
1331         * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
1332         * fininc/fixincl.x: Regenerated.
1333
1334 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
1335
1336         * invoke.texi: Correct spelling of -foptimize-register-move.
1337
1338 2000-11-11  Neil Booth  <neilb@earthling.net>
1339
1340         Remove CPP_PLACEMARKERs.
1341
1342         * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
1343         * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
1344         * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
1345                    Similarly.
1346         * cpplib.h: Remove CPP_PLACEMARKER.
1347         (struct lexer_state): Rename skip_newlines to next_bol.
1348         * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
1349         Simplify prev_white handling as a result.
1350         (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
1351         (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
1352         (parse_args): Similarly.  Update argument count tests.
1353         (enter_macro_context): Return 2 to indicate an empty macro.
1354         (replace_args): Don't bother pre-expanding an empty argument.
1355         Handle placemarkers and ## extension during pre-expansion.
1356         (cpp_get_token): Handle empty macro expansions.  Don't worry
1357         about CPP_PLACEMARKERs.
1358         (_cpp_create_definition): Empty macros are now empty.
1359         (cpp_macro_defintion): Don't special case empty macros.
1360         * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
1361         * c-lex.c: Similarly.
1362
1363 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
1364
1365         * gcc.texi, invoke.texi: Add new section discussing language
1366         standards; link to it where appropriate; refer to ISO C instead of
1367         ANSI C.
1368
1369 2000-11-11  Alexandre Oliva  <aoliva@redhat.com>
1370
1371         * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
1372         into account.
1373
1374         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
1375         modes.
1376
1377 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1378
1379         * gcc.texi, gcov.texi: Update dates and version numbers.
1380
1381 2000-11-10  Zack Weinberg  <zack@wolery.stanford.edu>
1382
1383         * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC.  Look for
1384         flex and bison, specifically, first in a unified build and
1385         then installed on the system.
1386         * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@.  Rename
1387         LEXFLAGS to FLEXFLAGS.  Adjust ORDINARY_FLAGS_TO_PASS to
1388         match.
1389
1390         (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
1391         cppdefault.o): Remove pointless sed munging of source file
1392         name.
1393
1394 2000-11-10  Bernd Schmidt  <bernds@redhat.co.uk>
1395
1396         * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
1397         for address reloads.  Push replacements for REG_INC notes.
1398         (regno_clobbered_p): New arg SETS.  Examine SETs if it's nonzero.  All
1399         callers changed.
1400         * reload1.c (choose_reload_regs): Registers set in the insn can't be
1401         used for RELOAD_OTHER reloads.
1402
1403 2000-11-10  Mark Mitchell  <mark@codesourcery.com>
1404
1405         * c-dump.h: New file.
1406
1407 2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1408
1409         * alpha.c (check_float_value): Use memcpy, not bcopy.
1410         * arm.c (output_move_double): Likewise.
1411         * arm.md: Likewise.
1412         * m88k.c (legitimize_operand): Likewise.
1413         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
1414         * m88k.md: Likewise.
1415         * mips.c (override_options): Likewise.
1416         * mips.md: Likewise.
1417         * romp.c (output_fpops): Likewise.
1418         * rs6000.c (rs6000_override_options): Likewise.
1419         * sh.md: Likewise.
1420         * vax.c (check_float_value): Likewise.
1421
1422         * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
1423         * expmed.c (synth_mult): Likewise.
1424         * final.c (add_bb_string): Likewise.
1425         * genattr.c (main): Likewise.
1426         * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
1427         Likewise.
1428         * jump.c (thread_jumps): Likewise.
1429         * prefix.c (save_string): Likewise.
1430         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
1431         * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
1432         * reload1.c (reload, eliminate_regs): Likewise.
1433
1434 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1435
1436         * gcc.texi (Service): Update to reflect current practice and
1437         location of the GNU service directory.
1438
1439 2000-11-09  Bernd Schmidt  <bernds@redhat.co.uk>
1440
1441         * regrename.c (build_def_use): Mark contents of REG_INC notes as
1442         needing replacement.
1443
1444         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
1445         a no-op move if regs are equal.
1446         * toplev.c (rest_of_compilation): Do the noop moves elimination pass
1447         when calling jump after post-reload splitting.
1448
1449 2000-11-09  Jan van Male  <jan.vanmale@fenk.wau.nl>
1450
1451         * c-tree.texi: Fix typos.
1452         * extend.texi: Likewise
1453         * gcov.texi: Likewise
1454         * rtl.texi: Likewise
1455         * tm.texi: Likewise
1456
1457 2000-11-09  Hans-Peter Nilsson  <hp@axis.com>
1458
1459         * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
1460         in_system_header and flags[1] before dereferencing flags[2].
1461
1462 2000-11-09  Matthew Hiller <hiller@redhat.com>
1463
1464         * reload1.c (reload_combine): Fixed calculation of
1465         first_index_reg, last_index_reg.
1466
1467 2000-11-09  Mark Mitchell  <mark@codesourcery.com>
1468
1469         * c-dump.c (dequeue_and_dump): Dump function bodies.
1470
1471         * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
1472         (c-dump.o): New target.
1473         * c-common.h (flag_dump_translation_unit): New variable.
1474         (C_TYPE_QUALS): New macro.
1475         (strip_array_types): New function.
1476         (DECL_C_BIT_FIELD): New macro.
1477         (SET_DECL_C_BIT_FIELD): Likewise.
1478         (CLEAR_DECL_C_BIT_FIELD): Likewise.
1479         (dump_info_p): New typedef.
1480         (dump_tree_fn): Likewise.
1481         (lang_dump_tree): New variable.
1482         (dump_node_to_file): New function.
1483         * c-common.c (flag_dump_translation_unit): Define it.
1484         (strip_array_types): New function.
1485         * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
1486         * c-lang.c (finish_file): Call dump_node_to_file if
1487         flag_dump_translation_unit.
1488         * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
1489         * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
1490         * c-dump.c: New file.
1491
1492 2000-11-09  Christopher Faylor <cgf@cygnus.com>
1493
1494         * config/i386/cygwin.h: Add mingw startfile prefix.
1495
1496 2000-11-09  Richard Henderson  <rth@redhat.com>
1497
1498         * flow.c (invalidate_mems_from_set): Split out from ...
1499         (mark_set_1): ... here.
1500         (try_pre_increment_1): Use it.  Use propagate_block_delete_insn
1501         instead of turning insn into a NOTE_INSN_DELETED.
1502
1503 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1504
1505         * extend.texi, invoke.texi: Move documentation of builtin versions
1506         of C library functions to one place and update.
1507
1508 2000-11-09  Richard Henderson  <rth@redhat.com>
1509
1510         * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
1511         the types themselves to discover type equivalence.
1512
1513 2000-11-09  Mike Stump  <mrs@wrs.com>
1514
1515         * Makefile.in (distclean): Remove a few extra leftovers.
1516
1517 2000-11-09  Richard Henderson  <rth@redhat.com>
1518
1519         * recog.c (validate_replace_rtx_1): Consider subregs when
1520         replacing a register with a constant inside a sign/zero_extend.
1521
1522         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1523
1524 2000-11-09  Geoffrey Keating  <geoffk@redhat.com>
1525
1526         * c-decl.c (finish_struct): When a structure is completed,
1527         check all its variant types for completeness.
1528
1529 2000-11-09  Neil Booth  <neilb@earthling.net>
1530
1531         * cpphash.c: Move cpp_defined here from cpplib.c.
1532         * cpplib.c: Update comments, move cpp_defined to cpphash.c.
1533         * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
1534         * cppmacro.c (cpp_get_token): Update comments, no need now
1535         to catch the CPP_EOF meaning EOL case.
1536
1537 2000-11-08  Geoffrey Keating  <geoffk@redhat.com>
1538
1539         * config/sparc/sparc.c (sparc_va_arg): When the required alignment
1540         is more than that provided, copy to a temporary.
1541
1542 2000-11-09  Alexandre Oliva  <aoliva@redhat.com>
1543
1544         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
1545         interpreting $out as a macro assignment.
1546         * Makefile.in (T_TARGET): New auxiliary macro and target.
1547         (all): Add a target right in the beginning, so that we don't build
1548         T_TARGET by default.
1549
1550 2000-11-09  Graham Stott  <grahams@redhat.com>
1551
1552         * config/i386/i386.md (mmx_pinsrw): Output operands in correct
1553         order for -mintel-syntax.  Remove comment now that the operand
1554         order has been checked.
1555         (mmx_pextrw): Likewise.
1556         (mmx_pshufw): Likewise.
1557
1558 2000-11-09  Jakub Jelinek  <jakub@redhat.com>
1559
1560         * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
1561         (c_getstr): New function.
1562         (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
1563         If both arguments are constant string, optimize out.
1564         (expand_builtin_strchr, expand_builtin_strrchr): New functions.
1565         (expand_builtin_strpbrk): Use c_getstr, do nothing if
1566         -fcheck-memory-usage.
1567         (expand_builtin_fputs): Likewise.
1568         (expand_builtin_strcmp): Add MODE argument.
1569         Use even if !HAVE_cmpstrsi.
1570         Optimize the case when both arguments are constant strings.
1571         (expand_builtin): Adjust expand_builtin_strcmp caller.
1572         Call expand_builtin_strchr and expand_builtin_strrchr.
1573         * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
1574         builtins.
1575         * builtins.def (BUILT_IN_STRRCHR): Add.
1576
1577 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1578
1579         * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
1580
1581 2000-11-09  Joseph S. Myers  <jsm28@cam.ac.uk>
1582
1583         * calls.c (expand_call, emit_library_call_value_1), collect2.c
1584         (scan_prog_file), config/a29k/a29k.c (print_operand),
1585         config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
1586         instead of bcopy ().
1587         * real.h: Use memcmp () instead of bcmp ().
1588         * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
1589         (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
1590         ultrasparc_sched_init, ultrasparc_sched_reorder),
1591         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
1592         instead of bzero ().
1593         * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
1594         instead of rindex ().
1595         * configure.in: Don't check for bzero, bcmp, index or rindex.
1596         * configure, config.in: Regenerate.
1597         * system.h: Don't include declarations for bzero, bcmp, index or
1598         rindex.
1599         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
1600         bzero, bcmp, index or rindex.
1601
1602 Wed Nov  8 21:58:20 2000  Christopher Faylor <cgf@cygnus.com>
1603
1604         * config/i386/cygwin.h: Add -no-win32 switch.  Separate -mno-cygwin
1605         include and library paths from -mcygwin case.  Parameterize some
1606         declarations to avoid warnings.  Use standard locations for include and
1607         lib dirs.
1608
1609 2000-11-08  Nick Clifton  <nickc@redhat.com>
1610
1611         * config/arm/arm.md (mulsidi3adddi): Change output operand
1612         constraint from "=&" to "+&".
1613         (umulsidi3adddi): Change output operand constraint from "=&" to
1614         "+&".
1615
1616 2000-11-08  Richard Henderson  <rth@redhat.com>
1617
1618         * flow.c (init_propagate_block_info): Protect the rtx stored in
1619         mem_set_list from modification by find_auto_inc.
1620         (mark_set_1): Likewise.
1621
1622 2000-11-08  Neil Booth  <neilb@earthling.net>
1623
1624         Move directive handling into the lexer itself.
1625
1626         * cpplex.c (_cpp_lex_token): Handle directives directly.
1627         In the case of a directive interrupting a function-like
1628         macro invocation, use extra_char since read_ahead is
1629         used to store the '#'.  Return a CPP_EOF in this case.
1630         * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
1631         (cpp_get_token): Don't handle directives here.
1632         * cpplib.h: Remove CPP_DHASH token type.
1633
1634 Wed Nov  8 21:53:41 MET 2000  Jan Hubicka  <jh@suse.cz>
1635
1636         * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
1637         formed using PRE_MODIFY too.
1638
1639 2000-11-08  Mark Mitchell  <mark@codesourcery.com>
1640
1641         * c-tree.texi (VAR_DECL): Describe representation of GCC's
1642         extension for placing variables in particular registers.
1643
1644         * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
1645         unprototyped C functions with no parameters.
1646
1647 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
1648
1649         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
1650         before passing to fprintf.
1651
1652 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
1653
1654         * function.c (expand_function_start): Cast GET_MODE_SIZE to
1655         HOST_WIDE_INT before negating it.
1656
1657 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
1658
1659         * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
1660         passed in multiple non-contiguous locations.
1661
1662 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1663
1664         * README.gnat: Remove file.
1665
1666 2000-11-08  Alexandre Oliva  <aoliva@redhat.com>
1667
1668         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
1669         in-place.
1670
1671 2000-11-07  Richard Henderson  <rth@redhat.com>
1672
1673         * dwarfout.c (INSN_LABEL_FMT): Remove.
1674         (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
1675         (dwarfout_label): Remove.
1676         * dwarfout.h: Remove it's prototype.
1677         * dwarf2out.c (INSN_LABEL_FMT): Remove.
1678         (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
1679         (dwarf2out_label): Remove.
1680         * dwarf2out.h: Remove it's prototype.
1681         * final.c (final_scan_insn): Don't call dwarf[2]out_label.
1682
1683 2000-11-07  Richard Henderson  <rth@redhat.com>
1684
1685         * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
1686         search on the unwind region section.
1687
1688         * config/ia64/ia64.md (movbi): Add r/r alternative.
1689         (cmovdi_internal_astep): Describe all combinations of register
1690         classes for sources & destinations; remove matching constraints.
1691         (cmovdi_internal): Likewise.
1692
1693         * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
1694
1695 2000-11-07  Richard Henderson  <rth@redhat.com>
1696
1697         * c-lang.c (start_cdtor, finish_cdtor): New functions.
1698         (finish_file): Use them in building constructor/destructor functions.
1699
1700         * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
1701         LD_FINI_SWITCH): Move ...
1702         * config/alpha/osf.h: ... here.
1703         * config/alpha/alpha-interix.h: Don't undef them.
1704
1705 2000-11-07  Jeffrey Oldham  <oldham@oz.codesourcery.com>
1706
1707         * config/mips/t-iris6 (FPBIT): New.  Added so that __unorddf2 is
1708         included in libgcc.a.
1709         (DPBIT): Likewise.
1710         (dp-bit.c): Likewise.
1711         (fp-bit.c): Likewise.
1712
1713 2000-11-07  Nick Clifton  <nickc@redhat.com>
1714
1715         * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
1716         (INTERNAL_ASM_OP): Add missing tab.
1717
1718 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1719
1720         * alias.c (init_alias_analysis), calls.c (expand_call,
1721         emit_library_call_value_1), combine.c (init_reg_last_arrays),
1722         cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
1723         (init_output_buffer, set_diagnostic_context), dwarf2out.c
1724         (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
1725         (init_emit_once), fold-const.c (mul_double, div_and_round_double),
1726         function.c (assign_parms), gcse.c (compute_can_copy,
1727         alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
1728         compute_hash_table, compute_set_hash_table,
1729         compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
1730         (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
1731         clear_units, schedule_block), integrate.c (initialize_for_inline,
1732         expand_inline_function), jump.c (thread_jumps), local-alloc.c
1733         (local_alloc), loop.c (combine_movables, count_loop_regs_set,
1734         load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
1735         regclass.c (init_reg_sets, init_reg_sets_1, regclass,
1736         record_reg_classes, allocate_reg_info), reload.c
1737         (get_secondary_mem, remove_address_replacements, find_reloads),
1738         reload1.c (reload, set_initial_label_offsets, finish_spills,
1739         reload_as_needed, choose_reload_regs_init,
1740         reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
1741         (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
1742         (rename_registers), stmt.c (expand_end_case), unroll.c
1743         (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
1744         () instead of bzero ().
1745
1746 2000-11-07  Neil Booth  <neilb@earthling.net>
1747
1748        * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
1749
1750 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1751
1752         * c-common.c (combine_strings): Only warn about long strings for C.
1753
1754 Tue Nov  7 19:44:30 2000  J"orn Rennecke <amylaar@redhat.com>
1755
1756         * combine.c (distribute_notes): Fix typo in last change.
1757
1758 2000-11-07  Geoff Keating  <geoffk@redhat.com>
1759
1760         * config/rs6000/rs6000.md (movdi_internal32+1): Use
1761         operand_subreg_force rather than gen_rtx_SUBREG.
1762         (movdi_internal32+2): Likewise.
1763
1764 2000-11-07  Philip Blundell  <philb@gnu.org>
1765
1766         * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
1767         * config/arm/linux-aout.h: Likewise.
1768         * configure: Regenerate.
1769
1770 2000-11-07  Philipp Thomas  <pthomas@suse.de>
1771
1772         * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
1773         accepted my the gettext maintainer.
1774
1775 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1776
1777         * builtins.c (expand_builtin_strpbrk): New function.
1778         (expand_builtin): Handle BUILT_IN_STRPBRK.
1779
1780         * builtins.def (BUILT_IN_STRPBRK): New entry.
1781
1782         * c-common.c (c_common_nodes_and_builtins): Declare builtin
1783         strpbrk.
1784
1785 2000-11-07  David O'Brien  <obrien@dragon.nuxi.com>
1786
1787         * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
1788         * POTFILES.in: Add config/alpha/freebsd.h
1789         * configure.in: Add alpha*-freebsd support.
1790         * configure: Regenerate.
1791
1792 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1793
1794         * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
1795         copy of ptr_type_node rather than ptr_type_node itself.
1796
1797 Tue Nov  7 06:29:24 2000  J"orn Rennecke <amylaar@redhat.com>
1798
1799         * combine.c (recog_for_combine): Allocate uninitialized vector with
1800         rtvec_alloc.
1801         * recog.c (apply_change_group): Likewise.
1802
1803 Tue Nov  7 06:24:02 2000  J"orn Rennecke <amylaar@redhat.com>
1804
1805         * flow.c (verify_local_live_at_start): Back out last change.
1806         * combine.c (distribute_notes): When parts of a hard reg are
1807         neither set nor referenced in PLACE, search backwards for a
1808         place to put a REG_UNUSED note; if none found, ask for flow
1809         info refresh.
1810
1811 Mon Nov  6 20:08:13 2000  J"orn Rennecke <amylaar@redhat.com>
1812
1813         * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
1814         with (clobber (match_scratch...)).
1815
1816 2000-11-06  Neil Booth  <neilb@earthling.net>
1817
1818         * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
1819         error status.
1820
1821 2000-11-06  Neil Booth  <neilb@earthling.net>
1822
1823         * tradcpp.c (special_symbol): Assign an null string rather
1824         than writing to an unallocated buffer.
1825
1826 2000-11-06  Neil Booth  <neilb@earthling.net>
1827
1828         * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
1829         CPP_MACRO_ARG case.
1830
1831 2000-11-06  Neil Booth  <neilb@earthling.net>
1832
1833         * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
1834         tok.val.arg_no as appropriate.
1835         * cppexp.c (lex): Similarly.
1836         * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
1837         cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
1838         * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
1839         cpp_macro_definition): Similarly.
1840         * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
1841
1842 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
1843
1844         * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
1845         operands[1] is constant, calculate the sum and generate movdi.
1846         (addsi3): Similarly.  Use SImode in call to arith_4096_operand.
1847         (subsi3): Use SImode in call to arith_4096_operand.
1848
1849 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
1850
1851         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
1852         adjust %o1, not %o0 if the return type is large structure.
1853
1854 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
1855
1856         * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
1857         update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
1858
1859 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz  <marekm@linux.org.pl>
1860
1861         * expmed.c (expand_divmod): For signed divide by 2, prefer
1862         a branch and fewer shifts if branches are very cheap.
1863
1864 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
1865
1866         * Makefile.in: Remove all targets related to building
1867         distributions and diffs, or INSTALL.
1868         * INSTALL, install1.texi: Remove.
1869         * configure.in: Remove mention of distdir.
1870         * configure: Regenerate.
1871         * objc/Make-lang.in: Remove mention of distdir.
1872
1873 2000-11-04  Neil Booth  <neilb@earthling.net>
1874
1875         * cpp.texi: Update for _Pragma.
1876
1877 2000-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1878
1879         * gcc.texi (Contributing): Update URL for projects web page.
1880
1881 2000-11-04  Neil Booth  <neilb@earthling.net>
1882
1883         * cpplex.c (parse_string): Don't allow multiline strings in
1884         #include family directives.
1885
1886 2000-11-04  Neil Booth  <neilb@earthling.net>
1887
1888         * cpplib.c (do_line): Only warn pedantically if not reading
1889         preprocessed input.
1890
1891 2000-11-04  Alexandre Oliva  <aoliva@redhat.com>
1892
1893         * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
1894         RETURN_POPS_ARGS().
1895
1896 2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
1897
1898         * builtins.c (expand_builtin_strlen): Remove unused mode
1899         argument.
1900         * gcc.c (process_command): Remove unused variable.
1901         * fold-const.c: Include expr.h.
1902         * recog.c: Include reload.h.
1903         * Makefile.in (recog.o, fold-const.o): Update deps.
1904
1905 2000-11-02  Geoffrey Keating  <geoffk@cygnus.com>
1906
1907         * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
1908
1909 Fri Nov  3 13:41:04 2000  Mark P Mitchell  <mark@codesourcery.com>
1910
1911         * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
1912         handling.
1913         (STARTFILE_SPEC): Likewise.
1914         (LINK_SPEC): Likewise.
1915
1916 2000-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1917
1918         * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
1919         (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
1920         (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
1921
1922 2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
1923
1924         * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
1925         (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
1926         perm_calloc, get_identifier, maybe_get_identifier,
1927         real_value_from_int_cst, simple_cst_equal), varasm.c
1928         (assemble_name, assemble_real, immed_real_const_1,
1929         compare_constant_1, decode_rtx_const, output_constant_pool): Use
1930         strrchr () instead of rindex ().  Use memcmp () instead of bcmp
1931         ().  Use memcpy () instead of bcopy ().  Use memset () instead of
1932         bzero ().
1933
1934 2000-11-03  Nathan Sidwell  <nathan@codesourcery.com>
1935
1936         * cppfiles.c (open_file): If already read, then don't reopen.
1937         Immediately close an empty file.
1938
1939 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
1940
1941         * expr.h (fold_builtin): Move declaration...
1942         * tree.h (fold_builtin): ... here.
1943
1944 Fri Nov  3 05:41:07 2000  J"orn Rennecke <amylaar@redhat.com>
1945
1946         * flow.c (verify_local_live_at_start): Allow hard regs to die.
1947
1948 2000-11-02  Neil Booth  <neilb@earthling.net>
1949
1950 config:
1951         * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
1952         alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
1953         alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
1954         alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
1955         arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
1956         arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
1957         c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
1958         elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
1959         i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
1960         i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
1961         i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
1962         i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
1963         i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
1964         i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
1965         i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
1966         i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
1967         i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
1968         i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
1969         i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
1970         i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
1971         i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
1972         ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
1973         m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
1974         m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
1975         m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
1976         m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
1977         m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
1978         m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
1979         m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
1980         m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
1981         m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
1982         m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
1983         mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
1984         mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
1985         mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
1986         mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
1987         mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
1988         mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
1989         ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
1990         ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
1991         pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
1992         pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
1993         romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
1994         rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
1995         rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
1996         rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
1997         sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
1998         sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
1999         sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
2000         sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
2001         sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
2002         sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
2003         sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
2004         v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
2005         vax/vaxv.h, vax/vms.h, we32k/we32k.h
2006
2007         Replace -A() with -A=, the new assertion syntax.
2008
2009 Thu Nov  2 21:52:35 2000  J"orn Rennecke <amylaar@redhat.com>
2010
2011         * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
2012         elim_i1.
2013         In REG_DEAD handling: When handling parts of multi-hard-reg hard
2014         registers, increment the loop counter by the size of the parts;
2015         use recursion to handle individual parts.
2016
2017 2000-11-02  Neil Booth  <neilb@earthling.net>
2018
2019         * configure.in: Make integrated CPP the default.
2020         * configure: Regenerate.
2021
2022 Thu Nov  2 19:20:12 2000  J"orn Rennecke <amylaar@redhat.com>
2023
2024         * reload.c (find_equiv_reg): Test all hard registers for membership
2025         in the requested class.
2026
2027 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2028
2029         * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
2030         process_command, main), gcov.c (open_files, output_data), tlink.c
2031         (frob_extension, scan_linker_output), toplev.c
2032         (file_name_nondirectory): Use strchr () and strrchr () instead of
2033         index () and rindex ().
2034
2035 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2036
2037         * c-common.c (get_flag_spec, check_format_info_main,
2038         check_format_types): Use strchr () instead of index ().  Compare
2039         against error_mark_node instead of comparing the TREE_CODE against
2040         ERROR_MARK.
2041
2042 2000-11-02  Zack Weinberg <zackw@Stanford.EDU>
2043
2044         Integrated CPP.
2045
2046         * c-lex.c (init_c_lex): Update cpp_start_read call.
2047         (cb_ident): Update for new callback prototype.
2048         (cb_def_pragma): Update for new cpp_get_token prototype.
2049         (c_lex): Similarly.  Use cpp_get_line.
2050
2051         * c-parse.in (finish_parse): Update for new cpp_finish
2052         prototype.
2053
2054         * cp/lex.c (finish_parse): Similarly.
2055
2056 2000-11-01  Geoff Keating  <geoffk@cygnus.com>
2057
2058         * machmode.def: Add V16QImode.
2059
2060 2000-11-01  Richard Henderson  <rth@redhat.com>
2061
2062         * dwarf2out.c (loc_descriptor_from_tree): Check for null result
2063         from rtl_for_decl_location.
2064         (add_location_or_const_value_attribute): Likewise.
2065
2066 2000-11-01  Neil Booth  <neilb@earthling.net>
2067
2068         * cpplib.c (run_directive): Use correct line number for output
2069         of _Pragma.  Remember any in-progress directive.
2070
2071         * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
2072
2073 2000-11-01  Richard Henderson  <rth@redhat.com>
2074
2075         * stmt.c (expand_start_null_loop): Set continue_label.
2076
2077 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
2078
2079         * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
2080         (expand_builtin_constant_p): Move parts of the code into
2081         fold_builtin_constant_p.
2082         (expand_builtin_strlen): Move parts of the code into fold_builtin.
2083         * expr.h (fold_builtin): Declare.
2084         * fold-const.c (fold): Handle builtin calls.
2085
2086         * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
2087
2088 2000-11-01  Richard Henderson  <rth@redhat.com>
2089
2090         * stmt.c (expand_start_null_loop): New.
2091         (expand_end_null_loop): New.
2092         * c-semantics.c (genrtl_do_stmt): Use them.
2093         * tree.h: Declare them.
2094
2095 2000-11-01  Richard Henderson  <rth@redhat.com>
2096
2097         * cppmain.c (scan_buffer): Don't avoid paste for assembly.
2098
2099 2000-11-01  Neil Booth  <neilb@earthling.net>
2100
2101         * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
2102         * cp/spew.c: Similarly.
2103         * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
2104         * cppmacro.c (stringify_arg): Similarly.
2105         * cpplib.h (CPP_BACKSLASH): Delete.
2106
2107 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2108
2109         * builtins.c (expand_builtin_strstr): New function.
2110         (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
2111
2112         * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
2113
2114         * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
2115         and builtin strchr.
2116
2117 2000-10-31  Richard Henderson  <rth@redhat.com>
2118
2119         * config/i386/i386.c (fcmov_comparison_operator): Check for
2120         CCFPmode or CCFPUmode instead of CCmode.
2121         (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
2122         unordered operations as well.
2123
2124 2000-10-31  Richard Henderson  <rth@redhat.com>
2125
2126         * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
2127         of integer_zero_node.
2128
2129 2000-10-31  Richard Henderson  <rth@redhat.com>
2130
2131         * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
2132
2133 2000-10-31  Nick Clifton  <nickc@redhat.com>
2134
2135         * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
2136         -fdata-sections to override the section attribute of a DECL.
2137
2138 2000-10-31  Chris Demetriou  <cgd@sibyte.com>
2139
2140         * libgcc2.c (__shtab): Remove __shtab variable.
2141         * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
2142         * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
2143         members.
2144
2145 2000-10-31  Jim Wilson  <wilson@redhat.com>
2146
2147         * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
2148         * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
2149         * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
2150         instead of ASM_OUTPUT_INTERNAL_LABEL.
2151         (dwarf2out_end_block, dwarf2out_label): Likewise.
2152         * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
2153         * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
2154
2155 2000-10-31  Richard Henderson  <rth@redhat.com>
2156
2157         * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
2158         (size_of_locs): Set it.
2159         (output_loc_operands): Use it to compute branch displacement.
2160         (int_loc_descriptor): New.
2161         (mem_loc_descriptor): Dereference memory in the proper size.
2162         Use DW_OP_plus_uconst when possible.  Use int_loc_descriptor.
2163         (loc_descriptor_from_tree): New.
2164         (rtl_for_decl_location): Break out from ...
2165         (add_location_or_const_value_attribute): ... here.
2166         (add_bound_info): Use loc_descriptor_from_tree.
2167
2168 2000-10-31  Neil Booth  <neilb@earthling.net>
2169
2170         * cpp.texi: Update for new command line assertion syntax.
2171         * cpplib.c (cpp_define): Simplify a bit.
2172         (cpp_assert, cpp_unassert): Use handle_assertion.
2173         (handle_assertion): New function; accept new command line
2174         syntax with '='.
2175         * testsuite/gcc.dg/cpp/assert3.c: New tests.
2176
2177 2000-10-31  Neil Booth  <neilb@earthling.net>
2178
2179         * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
2180         undefined.  Remove #ifdef check.
2181         * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
2182         Define STDC_0_IN_SYSTEM_HEADERS to 1.
2183
2184 2000-10-31  Jan Hubicka  <jh@suse.cz>
2185             Jakub Jelinek  <jakub@redhat.com>
2186
2187         * config/i386/i386.h: Clarify CCNOmode description in comment.
2188         (EXTRA_CC_MODES): Remove CCRCmode.
2189         * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
2190         (put_condition_code, ix86_match_ccmode): Likewise.
2191         (ix86_cc_mode): Likewise.  Fix comment.
2192         (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
2193         * config/i386/i386.md: Add unspec 12 description.
2194         (adddi3 split): Use unspec 12 instead of CCRCmode.
2195         (addsi3_carry_rc): Remove.
2196         (addsi3_cc, addqi3_cc): New patterns.
2197         (addsi_3): Swap operands, match CCZmode.
2198         (addsi_4): Rewritten.
2199         (addsi_5): Renamed from addsi_6.
2200         (addsi_6): Removed.
2201         (addhi_3): Swap operands, match CCZmode.
2202         (addhi_4): Rewritten.
2203         (addhi_5): Renamed from addhi_6.
2204         (addhi_6): Removed.
2205         (addqi_3): Swap operands, match CCZmode.
2206         (addqi_4): Rewritten.
2207         (addqi_5): Renamed from addqi_6.  Use =q constraint for clobber.
2208         (subsi3_carry_rc): Removed.
2209         (iorqi_3): Use =q constraint for clobber.
2210         (xorqi_cc_2): Likewise.
2211         (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
2212         (x86_movsicc_0_m1_rc): Removed.
2213         (cmp?i peepholes): Remove neg.  Use CCGCmode instead of CCRCmode.
2214
2215 2000-10-31  Joseph S. Myers  <jsm28@cam.ac.uk>
2216
2217         * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
2218         and decrement of complex types.
2219
2220 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2221
2222         * builtins.c (expand_builtin_fputs): When deleting NOP calls to
2223         builtin fputs, ensure we still evaluate the stream in case it
2224         has side-effects.
2225
2226 2000-10-31  Jakub Jelinek  <jakub@redhat.com>
2227
2228         * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
2229         to expand_shift.
2230
2231 Tue Oct 31 15:33:27 2000  J"orn Rennecke <amylaar@redhat.com>
2232
2233         * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
2234         (fp_extended_operand, emit_fpscr_use): Likewise.
2235         * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
2236         (fpul_operand): New function.
2237         * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
2238         fp_extended_operand.  Add fpul_operand.
2239         * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
2240         (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
2241         (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
2242         (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
2243         (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
2244         (divdf3_i): Likewise.
2245         (floatsisf2): Likewise.  Use fpul_operand for 'y' operand.
2246         (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
2247         (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
2248         (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
2249         (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
2250
2251 2000-10-31  Bernd Schmidt  <bernds@redhat.co.uk>
2252
2253         * config/i386/i386.c (ix86_init_builtins): Correct return type
2254         building v4hi_ftype_v4hi_int_int tree node.
2255         (ix86_expand_builtin): Use correct operand numbers 0 and 1.
2256         Copy operand 0 into a Pmode register, don't generate a MEM rtx.
2257
2258         * config/i386/i386.md (sse_movntdi): Use mmx register constraint
2259         for operand 1.
2260         (mmx__uavgv8qi3): Correct insn mnemonic.
2261         (mmx_psadbw): Correct insn mnemonic.  Use V8QI mode for operands 1 and 2.
2262         (mmx_punpckhwd): Correct insn mnemonic.
2263         (mmx_punpckhdq): Likewise.
2264         (mmx_punpcklwd): Likewise.
2265         (mmx_punpckldq): Likewise.
2266         (prefetch): Use immediare_operand and 'n' constraint for operand 1.
2267         Renumber case labels to match the _mm_prefetch constants defined in
2268         xmmintrin.h.
2269
2270         * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
2271         if the splitter didn't emit new insns.
2272         Make sure we call cleanup_subreg_operands even when splitting the last
2273         insn in a basic block.
2274
2275         * invoke.texi (Debugging Options): Describe -do.
2276         * toplev.c (enum_dump_file_index): New entry DFI_postreload.
2277         (dump_file): Likewise.
2278         (rest_of_compilation): Split .greg dump into .greg and .postreload.
2279
2280 2000-10-30  Neil Booth  <neilb@earthling.net>
2281
2282         * cppfiles.c (stack_include_file): Check for stacked contexts
2283         here.
2284         * cpphash.h (_cpp_do__Pragma): New prototype.
2285         * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
2286
2287         * cpplex.c (skip_escaped_newlines): Only process trigraphs and
2288         escaped newlines if !(buffer->from_stage3).
2289         (_cpp_lex_token): Warn about missing newlines iff
2290         !buffer->from_stage3.
2291
2292         * cpplib.c (get__Pragma_string, destringize,
2293         _cpp_do__Pragma): New functions.
2294         (run_directive): Set output_line for _Pragma to avoid line
2295         markers in output.  Set from_stage3 and prevent macro expansion
2296         for _Pragma and command-line options.  Check buffer exhaustion.
2297         (cpp_push_buffer): Don't check for stacked macro contexts, as
2298         this is perfectly legitimate for _Pragma.  Move the check to
2299         stack_include_file instead. Set from_stage3 iff buffer is
2300         preprocessed input.
2301
2302         * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
2303         unsigned. New boolean from_stage3.
2304         (struct spec_nodes): Add n__Pragma.
2305
2306         * cppmacro.c (enter_macro_context): Flip sense of return value.
2307         (_cpp_get_token): Handle _Pragma operator.
2308
2309 2000-10-30  Phil Edwards  <pme@sources.redhat.com>
2310
2311         * gcc.texi:  The C++ standard isn't "draft" anymore.
2312
2313 2000-10-30  Mark Mitchell  <mark@codesourcery.com>
2314
2315         * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
2316
2317 2000-10-29  Neil Booth  <neilb@earthling.net>
2318
2319         * cpplib.c (skip_rest_of_line):  Use _cpp_get_token.
2320
2321 2000-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2322
2323         * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
2324         fixinc/inclhack.def: Change comments mentioning C9X to refer to
2325         C99 instead.
2326
2327         * invoke.texi: Document that -V will only work for very similar
2328         versions of driver and compiler.
2329
2330 2000-10-29  Neil Booth  <neilb@earthling.net>
2331
2332         * cppmacro.c (_cpp_create_definition): Optimize the case of
2333         a macro defined to itself.
2334
2335 2000-10-29  Neil Booth  <neilb@earthling.net>
2336
2337         * cpplex.c (save_comment): Don't store new lines in C++ comments.
2338
2339 2000-10-29  Michael Hayes  <mhayes@redhat.com>
2340
2341         * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
2342
2343 2000-10-28  Geoffrey Keating  <geoffk@cygnus.com>
2344
2345         * cpphash.c (cpp_forall_identifiers): Add context variable
2346         for callback routine.
2347         * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
2348         change.
2349         (main): Call cpp_forall_identifiers with null context.
2350         * cpplib.h (cpp_forall_identifiers): Update prototype.
2351
2352         * cppmain.c: Make `parse_in' and `print' static.
2353
2354 2000-10-28  Alan Modra <alan@linuxcare.com.au>
2355
2356         * c-decl.c (finish_function): Clear c_function_name_declared_p.
2357
2358 2000-10-28  Richard Henderson  <rth@redhat.com>
2359
2360         * regrename.c (scan_rtx_address): Frob action, not class,
2361         when trying to disable optimization.
2362
2363 2000-10-28  Mark Mitchell  <mark@codesourcery.com>
2364
2365         * c-semantics.c (make_rtl_for_local_static): Don't clobber
2366         DECL_ASSEMBLER_NAME.
2367
2368 2000-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
2369
2370         * configure.in: Determine and substitute gcc_version_full.
2371         * configure: Regenerate.
2372         * gccbug.in: Use it to give full version.  Don't allow
2373         confidential PRs.
2374
2375 2000-10-28  Richard Henderson  <rth@redhat.com>
2376
2377         * recog.c (split_all_insns): Run cleanup_subreg_operands
2378         after reload.
2379
2380         * regrename.c (regrename_optimize): Verify that all registers of
2381         a multiple register mode are available.
2382         (scan_rtx_address): Accept the mode of the address; all callers
2383         changed.
2384
2385         * cpplib.c (run_directive): Fix prototype.
2386
2387 2000-10-28  Bernd Schmidt  <bernds@redhat.co.uk>
2388
2389         * reload.c (find_reloads): Distinguish "wins" so that we know whether
2390         a given operand won because of a matching constraint or not; then use
2391         that information to compute goal_alternative_matched properly.
2392         * reload1.c (choose_reload_regs): Never set reload_override_in for an
2393         optional reload.
2394
2395         * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
2396         accurate value for MULT.
2397         * config/ia64/ia64.c (ia64_print_operand): Require probability to be
2398         2% or > 98% before using static branch prediction bits.
2399
2400 2000-10-28  Neil Booth  <neilb@earthling.net>
2401
2402         New macro expander.
2403
2404         * cpplib.c (struct answer): New.
2405         (struct if_stack): Use cpp_lexer_pos rather than line and col.
2406         Rename cmacro mi_cmacro.
2407         (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
2408         IN_I): New directive and flags.
2409         (skip_rest_of_line, check_eol, run_directive, glue_header_name,
2410         parse_answer, parse_assertion, find_answer): New functions.
2411         (parse_ifdef, detect_if_not_defined, validate_else): Remove.
2412         (lex_macro_node): New function to replace parse_ifdef and
2413         get_define_node.
2414
2415         (_cpp_handle_directive): New function, combines _cpp_check_directive
2416         and _cpp_check_linemarker.
2417
2418         (do_define, do_undef, parse_include, do_include, do_import,
2419         do_include_next, read_line_number, do_line, do_ident, do_pragma,
2420         do_pragma_once, do_pragma_poison, do_pragma_dependency):
2421         Update for new token getting interface.
2422
2423         (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
2424         : Update for new multiple-include optimisation technique.
2425         (do_elif): Don't forget to invalidate controlling macros.
2426
2427         (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
2428         (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
2429         Functions to handle assertions with the new token interface.
2430         (do_assert, do_unassert): Use them.
2431
2432         (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
2433         Use run_directive.
2434
2435         (_cpp_init_stacks): Register directive names.  Don't register special
2436         nodes.
2437
2438         * cpperror.c (print_containing_files, _cpp_begin_message): Update to
2439         new position recording regime.
2440         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
2441         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2442         cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
2443         (cpp_type2name): Move to cpplex.c.
2444
2445         * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
2446         (parse_defined): Update to handle new multiple include optimisation
2447         method.  Remove poisoned identifier warning.
2448         (parse_assertion, TYPE_NAME): Delete.
2449         (lex): Update for multiple include optimisation, removal of
2450         CPP_DEFINED, to use _cpp_test_assertion for assertions and
2451         cpp_token_as_text.
2452         (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
2453         (op_as_text): New function, to wrap cpp_token_as_text.
2454
2455         * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
2456         Update for MI optimisation.
2457         (_cpp_execute_include): Take a token rather than 3 arguments.  Fix
2458         segfault on diagnostic.
2459         (_cpp_compare_file_date): Take a token rather than 3 args.
2460         (cpp_read_file): Work correctly for zero-length files.
2461
2462         * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
2463         _cpp_init_hashtable and _cpp_cleanup_hashtable.
2464         (cpp_lookup): Place identifiers at front of identifier pool
2465         for _cpp_lookup_with_hash.
2466         (_cpp_lookup_with_hash): Require identifiers to be at the front of
2467         the identifier pool.  Commit the memory if not already in the
2468         hash table.
2469
2470         * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
2471         Initialise various members of cpp_reader, memory pools, and the
2472         special nodes.
2473         (cpp_printer_init): Delete.
2474         (cpp_cleanup): Update.
2475         (struct builtin, builtin_array, initialize_builtins): Update for new
2476         hashnode definition and builtin handling.
2477         (cpp_start_read, cpp_finish): Don't take or initialise a
2478         printer.  Update.
2479
2480         * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
2481         PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
2482         T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
2483         T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
2484         (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
2485         struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
2486         NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
2487         struct toklist, struct cpp_context, struct specnodes,
2488         TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
2489         NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
2490         enum builtin_type, cpp_can_paste): New.
2491         (struct cpp_token): Delete line and col members.
2492         (struct cpp_buffer): New member output_lineno.
2493         (struct lexer_state): Delete indented, in_lex_line, seen_dot.
2494         Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
2495         (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
2496         ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
2497         base_context, context, directive, mi_state, mi_if_not_defined,
2498         mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
2499         mlstring_pos, macro_buffer, macro_buffer_len.
2500         Delete members mls_line, mls_column, token_list, potential_control_macro,
2501         temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
2502         context_cap, cur_context, no_expand_level, paste_level, contexts, args,
2503         save_parameter_spellings, need_newline, .
2504         Change type of date, time and spec_nodes members.
2505         Change prototypes for include and ident callbacks.
2506         (struct cpp_hashnode): Change type of name.  Remove union members
2507         expansion and code.  Add members macro, operator and builtin.
2508
2509         (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
2510         cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
2511         cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
2512         cpp_stop_lookahead): New prototypes.
2513         (cpp_printer_init, cpp_dump_definition): Delete prototypes.
2514
2515         (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
2516         Move from cpphash.h.
2517
2518         * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
2519         ufputs): Move to cpplib.h.
2520         (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
2521         TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
2522         COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
2523         struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
2524         _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
2525         _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
2526         _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
2527         _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
2528         _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
2529         _cpp_parse_assertion, _cpp_find_answer): Delete.
2530         (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
2531         POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
2532         _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
2533         _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
2534         _cpp_handle_directive, DSC): New.
2535         (struct include_file): New member defined.
2536
2537         (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
2538         _cpp_compare_file_date): Update.
2539         (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
2540         (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
2541         _cpp_cleanup_hashtable.
2542
2543         * Makefile.in: Remove cppoutput.c.
2544
2545         * cppoutput.c: Delete
2546
2547         * fixheader.c (read_scan_file): Update for new cpp_get_token
2548         prototype.
2549         (recognized_function): New argument LINE.
2550
2551         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
2552         new cpp_get_token prototype.
2553
2554         * scan.h (recognized_function): Update prototype.
2555
2556         * po/POTFILES.in: Remove cppoutput.c.
2557
2558 2000-10-27  Mark Mitchell  <mark@codesourcery.com>
2559
2560         * c-typeck.c (check_init_type_bitfields): Remove.
2561         (constructor_incremental): Likewise.
2562         (struct constructor_stack): Remove incremental bit.
2563         (struct initializer_stack): Likewise.
2564         (start_init): Don't play with constructor_incremental.
2565         (finish_init): Likewise.
2566         (really_start_incremental_init): Likewise.
2567         (push_init_level): Likewise.
2568         (pop_init_level): Likewise.
2569         (output_init_level): Likewise.
2570         (output_pending_init_elements): Likewise.
2571
2572 2000-10-21  Mike Coleman  <mcoleman2@kc.rr.com>
2573
2574         * c-pragma.c (handle_pragma_pack): Initialize align to -1.
2575         Improve error messages.  Correct parsing of
2576         #pragma pack(pop [,id]).  Do not check the user-supplied
2577         alignment if we're popping.
2578
2579         * gcc.dg/pack-test-1.c: New test case.
2580         * gcc.dg/pack-test-2.c: New test case.
2581         * gcc.dg/pack-test-1.h: New file.
2582
2583 2000-10-27  Neil Booth  <neilb@earthling.net>
2584
2585         * cpp.texi: Update.
2586
2587 2000-10-27  Kelley Cook <kelley.cook@home.com>
2588
2589         * invoke.texi: Document -mintel-syntax
2590
2591 2000-10-27  Richard Henderson  <rth@redhat.com>
2592
2593         * invoke.texi: Document -frename-registers.  Add it to -O3.
2594         * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
2595         (enum dump_file_index, dump_file): Update order.
2596         (main): Set flag_rename_registers at -O3.
2597
2598 2000-10-27  Richard Henderson  <rth@redhat.com>
2599
2600         * config/alpha/alpha.h (enum reg_class): Add PV_REG.
2601         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
2602         (REG_CLASS_FROM_LETTER): Assign it to 'c'.
2603         * config/alpha/alpha.md (call_osf_1): Use it.
2604         (call_value_osf_1): Likewise.
2605
2606         * config/ia64/ia64.c: Revert 10-23 patch.
2607         (ia64_hard_regno_rename_ok): New.
2608         * config/ia64/ia64-protos.h: Declare it.
2609         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
2610
2611 2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
2612             Richard Henderson  <rth@redhat.com>
2613
2614         * regrename.c: Rewrite to handle multi-register modes and
2615         cond_exec instructions.
2616         * Makefile.in (regrename.o): Update dependancies.
2617         * recog.h (struct operand_alternative): Add is_address.
2618         * recog.c (preprocess_constraints) [case 'p']: Set it.
2619
2620 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
2621
2622         * configure.in: If not NO_MINUS_C_MINUS_O, substitute
2623         OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
2624         top level.  Kill oldstyle_subdirs.  Do not include
2625         $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
2626         $outputs.  Do not run configure.lang from config.status.
2627         Rearrange warning-flag logic to correspond to what the
2628         makefile wants.  Put special vax stage1 options in
2629         @stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
2630         with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
2631         (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
2632         switch is given, nothing otherwise.
2633         * configure.lang: Delete.
2634
2635         * Makefile.in: Expunge all traces of extra_c_objs,
2636         extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
2637         @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
2638         warning options via a three level scheme so that -pedantic and
2639         -Wtraditional are not used for non-C front ends: LOOSE_WARN,
2640         STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
2641         WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
2642         Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
2643         Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
2644         LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
2645         generation rules.  Wrap all rules that change the current
2646         directory in parentheses; pmake doesn't spawn a new shell for
2647         each command.  Expunge all references to $(P).  When one
2648         command depends on another and they're run all at once, use &&
2649         to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
2650         deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
2651         and beyond.
2652
2653         * objc/Make-lang.in: Wrap all rules that change the current
2654         directory in parentheses.  Expunge all references to $(P).
2655         When one command depends on another and they're run all at
2656         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
2657         all object-file generation rules.  Delete obsolete variables.
2658         * objc/Makefile.in: Delete.
2659
2660 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
2661
2662         * calls.c (expand_call): If sibcall_failure is set during pass 1,
2663         clear tail_call_insns as well.
2664
2665 2000-10-27  Nick Clifton  <nickc@redhat.com>
2666
2667         * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
2668         prototype.
2669
2670 2000-10-26  Richard Henderson  <rth@redhat.com>
2671
2672         * calls.c (expand_call): Supress sibcall if we have a
2673         BLKmode return in registers.
2674
2675 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
2676
2677         * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
2678         into memory.
2679
2680 2000-10-26  Nathan Sidwell  <nathan@codesourcery.com>
2681
2682         * tree.c (make_node, case 't'): Set alignment to that of
2683         char_type_node.
2684         * expr.c (move_by_pieces_ninsns): Abort if some length remains.
2685
2686 2000-10-25  Mark Mitchell  <mark@codesourcery.com>
2687
2688         * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
2689         * configure.in (enable-libstdcxx-v3): Arrange to have
2690         HAVE_LIBSTDCXX_V3 substituted into the output files.
2691
2692 2000-10-25  Richard Henderson  <rth@redhat.com>
2693
2694         * recog.c (constrain_operands): Initialize which_alternative
2695         before no alternatives early exit.
2696
2697         * cse.c (find_comparison_args): Check that we can reverse a
2698         comparison if needed before accepting the substitution.
2699
2700         * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
2701
2702         * simplify-rtx.c (simplify_relational_operation): Sign extend
2703         low words before sign extending to high words.
2704
2705 2000-10-25  Nick Clifton  <nickc@redhat.com>
2706
2707         * config/mcore/mcore.c: Include config.h before system.h.
2708
2709 2000-10-25  Ray Essick  <essick@ddna.labs.mot.com>
2710
2711         * config/mcore/mcore.md (return): Force function epilogue to
2712         always be generated to work around epilogue suppression bug in
2713         M*Core backend.
2714
2715 2000-10-25  Joseph S. Myers  <jsm28@cam.ac.uk>
2716
2717         * c-decl.c (grokdeclarator): Move warning for qualified void
2718         return types with -pedantic to when the function type is
2719         constructed.  At -W, warn in general for qualified function return
2720         types, except for volatile void.
2721         * invoke.texi: Document this new warning at -W.
2722
2723 2000-10-25  Neil Booth  <neilb@earthling.net>
2724
2725         * cpp.texi: Update with implementation-defined behavior and
2726         internal limits.
2727
2728 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
2729
2730         * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
2731         incomplete type force it into alias set 0.
2732
2733 Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
2734
2735         * alias.c: Include basic-block.h.
2736         (loop_p): New function.
2737         (mark_constant_function): Use it.
2738         * Makefile.in (alias.o): Update dependencies.
2739
2740 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
2741
2742         * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
2743         like memory.
2744
2745 2000-10-24  Jim Wilson  <wilson@cygnus.com>
2746
2747         * expmed.c (store_bit_field): Move integer pun code down after
2748         code that calls emit_move_insn for entire register move.
2749         * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
2750         Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
2751
2752 2000-10-24  Richard Henderson  <rth@cygnus.com>
2753
2754         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
2755         register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
2756
2757 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
2758
2759         * gcse.c (cprop_insn): do not propagate constants into jump_insn
2760         for machines with CC0 more than once.
2761
2762 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
2763
2764         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
2765         pseudos just like memory.
2766
2767 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
2768
2769         * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
2770         when deleting libcall sequence collapsed to a single instruction.
2771
2772 2000-10-24  Andrew Haley  <aph@cygnus.co.uk>
2773
2774         * expr.c (do_store_flag): Don't crash if either side of a
2775         comparison is error_mark_node.
2776
2777 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
2778
2779         * sibcall.c (purge_mem_unchanging_flag): New function.
2780         (optimize_sibling_and_tail_recursive_calls): Call it.
2781
2782 2000-10-24  Philipp Thomas  <pthomas@suse.de>
2783
2784         * Makefile.in (check-po): New target for doing checks in the po
2785         subdir if all languages configured.
2786         (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
2787         configure if NLS is enabled.
2788         * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
2789         otherwise leave empty.
2790         * configure: Regenerate.
2791
2792 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
2793
2794         * i386.c (print_operand): Handle new 'A' formatting code.
2795         387 opcodes need suffixes even with -mintel-syntax.
2796         Check for explicit size override (codes 'b', 'w' and 'k').
2797         (print_operand_address): Check if register prefix is needed when
2798         emitting `ds' segment override.
2799         * i386.h: Add comment about new 'A' formatting code.
2800         * i386.md (jump and call patterns): Emit absolute references using %A.
2801
2802 2000-10-23  Richard Henderson  <rth@cygnus.com>
2803
2804         * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
2805         output registers as fixed.
2806         (ia64_function_epilogue): Undo output fixation.
2807
2808 2000-10-23  Richard Henderson  <rth@cygnus.com>
2809
2810         * config/alpha/alpha.md: Add names for all unnamed insns; use
2811         define_insn_and_split in some obvious places.
2812         (lda): Remove.
2813         (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
2814         (zero_extendqisi2, zero_extendqidi2): Likewise.
2815         (zero_extendhisi2, zero_extendhidi2): Likewise.
2816         (abs splitters): Fix match_scratch operand number.
2817         (bcc_reverse): Swap pc & label instead of non-canonical compare.
2818
2819 2000-10-23  Jim Wilson  <wilson@cygnus.com>
2820
2821         * ia64.c (ia64_print_operand, case 'r'): Correct comment.  Handle
2822         CONST_INT.
2823         * ia64.md (cmpsi_adjusted): Use %r3.
2824         (cmpdi_adjusted): Likewise.
2825
2826 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
2827
2828         * config/i386/att.h (ASM_FILE_START): Define.
2829
2830 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
2831
2832         * config/i386/linux.h (ASM_FILE_START): Define.
2833
2834 Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
2835
2836         * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
2837         since this (only) drags in a crt0.o reference that the .ld files
2838         also introduce.
2839
2840 2000-10-23  Geoff Keating  <geoffk@cygnus.com>
2841
2842         * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
2843         overwrite the value in a RELOAD_FOR_INPUT and other kinds of
2844         reloads just like an RELOAD_FOR_OUTPUT would.
2845
2846         * local-alloc.c (update_equiv_regs): Add an abort().  When
2847         deleting or moving insns, update reg_equiv[regno].init_insns.
2848
2849 2000-10-23  Mark Mitchell  <mark@codesourcery.com>
2850
2851         * c-tree.texi: Improve documentation for IF_STMTs and related
2852         conditional statements.
2853
2854 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
2855
2856         * expr.c (do_preexpand_calls): Remove.
2857         (same_from_p): Don't use CALL_EXPR_RTL.
2858         (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
2859         (preexpand_calls): Remove.
2860         * tree.c (first_rtl_op): Remove CALL_EXPR case.
2861         (unsave_expr_1): Likewise.
2862         * tree.def (CALL_EXPR): Give it only two slots.
2863         * tree.h (CALL_EXPR_RTL): Remove.
2864
2865 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
2866
2867         * libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
2868         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
2869         New functions.
2870
2871 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
2872
2873         * calls.c (combine_pending_stack_adjustment_and_call): Don't
2874         adjust stack when unadjusted_alignment ends up as zero.
2875
2876 2000-10-22  Joseph S. Myers  <jsm28@cam.ac.uk>
2877
2878         * fixinc/genfixes: Remove EGCS reference.
2879         * install.texi: Remove EGCS reference.
2880         * INSTALL: Regenerate.
2881
2882 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
2883
2884         * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
2885
2886 2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>
2887
2888         * diagnostic.c: Remove EGCS reference in comment.
2889
2890 Sat Oct 21 08:24:25 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2891
2892         * loop.c (strength_reduce): Fix error in last change.
2893
2894 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
2895
2896         * Makefile.in (SHLIB_NM_FLAGS): New.
2897         (libgcc.mk): Pass it.
2898         * mklibgcc.in (libgcc.map): Use it.
2899
2900         * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
2901         SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
2902
2903 2000-10-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2904
2905         * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
2906
2907         * sparc.c (load_pic_register): Delete unused varaible.
2908
2909         * libgcc2.c (__addvsi3): Delete unused variable.
2910
2911         * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
2912         __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
2913         __negvdi2): Prototype.
2914
2915         * ssa.c (apply_delayed_renames): Avoid undefined operation.
2916
2917         * toplev.c (display_target_options): Make static to match
2918         prototype.  Delete empty declaration.
2919
2920 2000-10-20  Tom Tromey  <tromey@cygnus.com>
2921
2922         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
2923         * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
2924
2925 Fri Oct 20 17:05:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2926
2927         * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
2928         returned MEM.
2929         (expand_expr_unaligned, case ARRAY_REF): Check that index is
2930         a constant before comparing it; use tree_low_cst.
2931         * tree.c (save_expr): Set TREE_READONLY.
2932         (substitute_expr): Return inside of NON_LVALUE_EXPR.
2933         (build, build1): Set TREE_READONLY if all operands are.
2934         (build_index_type): If upper bound is a negative number, lower
2935         bound is zero and sizetype is unsigned, use upper bound of one and
2936         lower of zero.
2937
2938 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
2939
2940         * gcc.c (process_command, main): Use "because" instead of
2941         "since" in error messages.
2942
2943 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2944
2945         * stor-layout.c (compute_record_mode): Use tree_low_cst.
2946         Don't use mode of field for record unless sizes are the same.
2947         (layout_type, case ARRAY_TYPE): Remove special bounds handling
2948         previously added for Ada; also change to using host_integerp
2949         and tree_low_cst.
2950
2951         * loop.c (strength_reduce): Show when new register made for
2952         giv is known to be a pointer and its aligment if so and known.
2953         (loop_dump_aux): Show VERBOSE parameter unused.
2954
2955         * gcse.c (set_hash_table_size): Now unsigned.
2956         * sdbout.c (template_name_p): Add "const" to avoid warnings.
2957         (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
2958         (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
2959         (sdbout_end_epilogue): Remove variable NAME.
2960         * system.h (getopt): Add default definition.
2961         * config/alpha/alpha.c (print_operand): Don't continue processing
2962         after issuing error.
2963         (summarize_insn): Avoid use of UL in constant.
2964
2965         * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
2966
2967         * fold-const.c (force_fit_type): Unsigned values can overflow
2968         if they are sizetype.
2969         (int_const_binop): Don't use cache if overflows.
2970
2971 2000-10-20  Richard Henderson  <rth@cygnus.com>
2972
2973         * function.c (locate_and_pad_parm): Zero alignment_pad.
2974
2975         * regrename.c (rr_replace_reg): Rewrite to use recog_data to
2976         perform substitutions, and apply_change_group to see if it worked.
2977
2978 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2979
2980         * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
2981
2982         * combine.c (struct undo): Change int to unsigned int.
2983         (do_SUBST_INT): Args are unsigned int.
2984         (make_extraction, force_to_mode): Use proper type when forming mask.
2985         (make_field_assignment): Likewise.
2986
2987 2000-10-20  Joseph S. Myers  <jsm28@cam.ac.uk>
2988
2989         * c-common.c (check_format_info_recurse): Extract string constant
2990         initializers from non-volatile constant arrays and check them as
2991         formats.
2992         * c-typeck.c (decl_constant_value): Don't check pedantic or check
2993         for DECL_MODE (decl) != BLKmode.
2994         (decl_constant_value_for_broken_optimization): New function which
2995         includes these checks.
2996         (default_conversion, convert_for_assignment, digest_init): Use
2997         decl_constant_value_for_broken_optimization instead of
2998         decl_constant_value.
2999
3000 2000-10-20  Mark Mitchell  <mark@codesourcery.com>
3001
3002         * tree.h (DECL_ALIGN_UNIT): New macro.
3003
3004 2000-10-14  Marek Michalkiewicz  <marekm@linux.org.pl>
3005
3006         * config/avr/avr-protos.h (avr_output_bld): New.
3007         (out_shift_with_cnt): Add t_len argument.
3008         * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
3009         (output_movqi, output_movhi, output_movsisf): Optimize loading
3010         any constant with exactly one bit set to NO_LD_REGS.
3011         (out_shift_with_cnt): Optimize output code for size or speed,
3012         depending on optimize_size.  Handle small shift counts as well
3013         (if not hand-optimized in ?sh??i3_out).  Shifts can be done
3014         with or without a scratch register, with help of __tmp_reg__
3015         or __zero_reg__ if necessary.  Add T_LEN argument to pass the
3016         length of TEMPLATE in words, return total insn length in *LEN.
3017         (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
3018         out_shift_with_cnt to work with the above change.
3019         (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
3020         lshrsi3_out): Likewise.  Optimize more known shift count cases.
3021         Remove cases already well optimized in out_shift_with_cnt.
3022         (avr_output_bld): New function.
3023         * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
3024         (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
3025         * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
3026         Add reload_completed to insn condition - only for peepholes.
3027         (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
3028         in a register or memory.
3029         (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
3030         Do not require a scratch register.
3031         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
3032         *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
3033         Optimize shifts by known count using a scratch register, but only
3034         if one is still available after register allocation.
3035
3036 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3037
3038         * t-vax: New file.  Don't build modules from libgcc1.c.
3039
3040 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
3041
3042         * alias.c: (mark_constant_function): Don't check pure functions.
3043         Initialize and end alias analysis.
3044         (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
3045         Don't make a special exception for recursion.  Handle
3046         UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
3047         unless it's volatile.
3048
3049         * local-alloc.c (equivalence): New structure.
3050         (reg_equiv): Define.
3051         (contains_replace_regs): Remove array and use
3052         field in reg_equiv.
3053         (memref_referenced_p): Likewise.
3054         (no_equiv): Likewise.
3055         (update_equiv_regs): Likewise.
3056
3057         (equiv_init_varies_p,
3058         equiv_init_movable_p): New functions.
3059         (update_equiv_regs): Use them.  Use rtx_varies_p
3060         instead of function_invariant_p.  Process insns
3061         from end to beginning.  Allow a REG_EQUIV insn
3062         within the same loop as a use to be moved, also
3063         allow it to be moved out of a loop.  Update
3064         REG_DEAD notes when substituting into an insn.
3065
3066 2000-10-19  Jim Wilson  <wilson@cygnus.com>
3067
3068         * c-decl.c (start_decl): Check for error_mark_node type before using
3069         COMPLETE_TYPE_P.
3070         (finish_decl): Likewise.  Don't give an error if decl type is
3071         already error_mark_node.
3072
3073         * haifa-sched.c (compute_trg_info): Add explanatory comments.
3074         New local update_blocks.  Use update_blocks to remove duplicates
3075         when computing update blocks.  Check for bblst_table overflow.
3076         (schedule_block): Add explanatory comment.  Reduce bblst_size by
3077         factor of 2.
3078         * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
3079         notes.
3080
3081 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
3082
3083         * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
3084
3085 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
3086
3087         * expmed.c: Minor corrections in comments.
3088         * invoke.texi: Added desciption for the new option -ftrapv.
3089
3090 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
3091
3092         * libgcc2.c: Added the missing #endif.
3093
3094 Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3095
3096         * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
3097
3098 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
3099
3100         * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
3101         Use smulv_optab for -ftrapv.
3102         (expand_mult_highpart): Use unsigned multiply.
3103         (expand_divmod): Special-case division by -1.
3104         For EXACT_DIV_EXPR, do right shift first, then the multiply.
3105         For complex divide, use abs with unsigned result.
3106         * expr.c (force_operand): Use unsigned multiply.
3107         (expand_expr): Use overflow-trapping optabs for signed types if
3108         flag_trapv.
3109         If flag_trapv, don't generate a recursive call with EXPAND_SUM
3110         if the type is signed and the original call wasn't EXPAND_SUM or
3111         EXPAND_INITIALIZER.
3112         * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
3113         (negv_optab, absv_optab): Declare.
3114         * flags.h (flag_trapv): Declare.
3115         * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
3116         smulv_optab, sdivv_optab, negv_optab and absv_optab.
3117         (gen_insn): Interpret '$P' as requiring an integer mode,
3118         including partial integer modes.
3119         * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
3120         (product_cheap_p): Use unsigned expand_mult.
3121         * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
3122         (negv_optab, absv_optab): Define.
3123         (expand_binop): Use overflow-trapping optabs for signed types if
3124         flag_trapv.
3125         Handle negv_optab libe neg_optab.
3126         (expand_abs): Take result_unsignedp argument instead of unsignedp one.
3127         Use overflow-trapping optabs for signed result if flag_trapv.
3128         (expand_complex_abs): Use overflow-trapping optabs for signed types if
3129         flag_trapv.
3130         Don't open-code complex absolute-value operation for flag_trapv.
3131         (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
3132         sdivv_optab, negv_optab and absv_optab.
3133         * toplev.c (flag_trapv): Define.
3134         (lang_independent_options f_options): Include flag_trapv.
3135         * tree.h (TYPE_TRAP_SIGNED): Define.
3136         * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
3137         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
3138         New functions.
3139         * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
3140         _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
3141
3142 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
3143             David V. Henkel-Wallace  <gumby@cygnus.com>
3144
3145         * config/i386/t-netware: Bring in from the Red Hat tree.
3146         * config/i386/netware.h: Likewise.
3147         * config/netware.h: Likewise.
3148         * config/rs6000/netware.h: Delete.
3149         * configure.in: Add i[34567]86-*-netware.
3150         * configure: Hand-edit to match configure.in change.
3151
3152 2000-10-18  Mark Mitchell  <mark@codesourcery.com>
3153
3154         * c-common.h (flag_no_builtin): Declare.
3155         (flag_no_nonansi_builtin): Likewise.
3156         (c_common_nodes_and_builtins): Change prototype.
3157         * c-common.c (flag_no_builtin): New variable.
3158         (flag_no_nonansi_builtin): Likewise.
3159         (c_common_nodes_and_builtins): Remove parameters.  Adjust
3160         accordingly.
3161         * c-decl.c (flag_no_builtin): Remove.
3162         (flag_no_nonansi_builtin): Likewise.
3163         (init_decl_processing): Adjust call to
3164         c_common_nodes_and_builtins.
3165
3166 2000-10-18  Marc Espie <espie@openbsd.org>
3167
3168         * tm.texi (LIBGCC_SPEC): Synch with reality.
3169
3170 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3171
3172         * c-common.c (check_format_types): Check for writing through a
3173         NULL pointer argument.
3174
3175 2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
3176
3177         * tm.texi (Exception Region Output): Document
3178         DWARF_CIE_DATA_ALIGNMENT.
3179         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
3180         #ifndef.
3181         [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
3182         DWARF_CIE_DATA_ALIGNMENT.
3183
3184 2000-10-18  Michael Hayes  <mhayes@cygnus.com>
3185
3186         * basic-block.h (struct loop): Delete fields pre_header_root
3187         and pre_header_trace and replace with pre_header_edges
3188         and num_pre_header_edges.
3189         * flow.c (flow_loop_dump): Dump pre_header_edges.
3190         (flow_loops_free): Free pre_header_edges.
3191         (flow_loop_pre_header_scan): Calculate pre_header_edges.
3192
3193 2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3194
3195         * contrib.texi: Update references to steering committee members
3196         and Jeff Law's entry.
3197
3198 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3199
3200         * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
3201         (maybe_read_dollar_number, check_format_info_main): Use them for
3202         pedantic warning messages.
3203
3204 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3205
3206         * c-common.c (check_format_info_main): Minor cleanup: move
3207         variables into inner scopes; initialize declarations where
3208         appropriate; don't hardcode "scanf" name on warning for zero
3209         width.
3210
3211 2000-10-17  Mark Mitchell  <mark@codesourcery.com>
3212
3213         * c-common.c (back_end_hook): New variable.
3214         * c-common.h (back_end_hook): Declare it.
3215         * c-lang.c (finish_file): Use it.
3216
3217         * emit-rtl.c (init_emit_once): Initialize the const_int_htab
3218         earlier.
3219
3220 2000-10-18  Jan Hubicka  <jh@suse.cz>
3221
3222         * i386.c (ix86_comparison_operator, put_condition_code,
3223         ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
3224         (ix86_expand_strlensi_unroll_1): Use CCRCmode.
3225         * i386.h (EXTRA_CC_MODES): Add CCRCmode.
3226         * i386.md (adddi and negdi splitter): Use CCRCmode.
3227         (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
3228         (subsi3_carry): add '*'
3229         (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
3230         (cmp to add peep2): Use CCRCmode; swap operands.
3231
3232 2000-10-18  Kazu Hirata  <kazu@hxi.com>
3233
3234         * h8300.c: Fix a comment typo.
3235         (round_frame_size): New.
3236         (compute_saved_regs): Likewise.
3237         (push): Likewise.
3238         (pop): Likewise.
3239         (push_order): Remove.
3240         (pop_order): Likewise.
3241         (function_prologue): Rearrange code for readability.
3242         (function_epilogue): Likewise.
3243
3244         * config/h8300/h8300.md: Remove an unnecessary sign_extend
3245         expander that is used when not optimizing.  Output a tab after
3246         each assembly insns.
3247
3248         * reorg.c: Fix formatting.
3249
3250 2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
3251
3252         * reload1.c (move2add_note_store): Check for simple
3253         auto-inc in destination.
3254
3255 2000-10-17  Michael Chastain  <chastain@redhat.com>
3256
3257         * config/i386/i386-aout.h: define INT_ASM_OP.
3258
3259 Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
3260
3261         * pa.c (print_operand): Handle case 'c' for .vtable_inherit
3262
3263 Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
3264
3265         * i370.md: Fix spelling typo.
3266
3267 2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3268
3269         * function.c (locate_and_pad_parm): Don't align stack unconditionally.
3270         Fixes execute/20001017-1.c on powerpc-linux-gnu.
3271
3272         * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
3273         * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
3274         LABEL_REF.
3275
3276         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
3277         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
3278         here...
3279         * rs6000/aix.h: ...to here.
3280         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
3281
3282 2000-10-17  Jakub Jelinek  <jakub@redhat.com>
3283
3284         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
3285
3286         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
3287         sure linker can relax even the delay slot mov %g1,%o7, fix output
3288         formating.
3289
3290 2000-10-17  Kazu Hirata  <kazu@hxi.com>
3291
3292         * config/h8300/h8300.md: Remove an unnecessary zero_extend
3293         expander that is used when not optimizing.  Output a tab after
3294         each assembly insns.
3295
3296 2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
3297
3298         * gcc.c: New options --target-help.
3299         (process_command): Added code to parse this new option.
3300         * toplev.c (display_target_options): New function to support the
3301         above new option.
3302         * cppinit.c (new_pending_directive) : New option OPT_target__help.
3303         (cpp_handle_option): Support this new option.
3304         * invoke.texi: Added notes about --target-help option.
3305
3306 2000-10-17  Graham Stott  <grahams@redhat.com>
3307
3308         * config/i386/i386.md (testqi_1): Add missing operand prefix
3309         for operand 0.
3310         * config/i386/i386-protos.h: Add missing prototype.
3311
3312 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
3313
3314         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
3315         _GLOBAL_OFFSET_TABLE should not have a $ prefix when
3316         using -mintel-syntax.
3317
3318 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3319
3320         * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
3321         (format_types): Use it for printf.
3322         (maybe_read_dollar_number): Add parameter for the kind of format
3323         involved.  Warn for multiple use for arguments if this is
3324         inappropriate for the kind of format involved.
3325         (check_format_info_main): Update calls to maybe_read_dollar_number.
3326
3327 2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3328
3329         * inclhack.def (hpux_maxint): Also apply fix to values.h.
3330         * fixincl.x: Rebuilt.
3331
3332 2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
3333
3334         * genrecog.c (write_switch): Return the first condition that needs a
3335         label.
3336
3337 2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
3338
3339         * c-tree.h (warn_sequence_point): Move declaration to...
3340         * c-common.h (warn_sequence_point): ... here.
3341         * c-decl.c (warn_sequence_point): Move definition to...
3342         * c-common.c (warn_sequence_point): ... here.
3343         (struct reverse_tree): New.
3344         (reverse_list, reverse_max_depth): New static variables.
3345         (build_reverse_tree, common_ancestor, modify_ok
3346         verify_sequence_points): New functions.
3347         (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
3348         * c-typeck.c (check_modify_expr): Delete.
3349         (build_modify_expr): Don't call it.
3350
3351 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3352
3353         * c-common.h (warn_missing_format_attribute): New variable.
3354         * c-decl.c (warn_missing_format_attribute): New variable.
3355         (c_decode_option): Decode -Wmissing-format-attribute and
3356         -Wno-missing-format-attribute.
3357         * c-common.c (check_function_format): If
3358         -Wmissing-format-attribute, give a warning where a vprintf or
3359         vscanf function is called by a function without its own printf or
3360         scanf attribute.
3361         * toplev.c (documented_lang_options): Add
3362         -Wmissing-format-attribute.
3363         * invoke.texi: Document -Wmissing-format-attribute.
3364
3365 2000-10-17  Marc Espie <espie@openbsd.org>
3366
3367         * invoke.texi (-shared): Insist on requiring code generation flags
3368         to be used along with -shared, and document the subtle failure that
3369         may occur otherwise.
3370
3371 2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3372
3373         * pa.md (return_internal): Move `use' after `return'.
3374
3375 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3376
3377         * machmode.def: Correct comment.
3378
3379 2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
3380
3381         * print-rtl.c (print_rtx_head): Constify.
3382         * rtl.h (print_rtx_head): Similarly.
3383
3384         * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
3385         Constify char * return value.
3386         * config/pa/pa/pa.c
3387         (output_64bit_and, output_64bit_ior): Constify char * return value.
3388         (pa_can_combine_p): Make static.
3389         (function_arg): Decorate unused `named' argument. Fix comment typo.
3390         (function_arg_partial_nregs): Decorate unused `named' argument.
3391
3392 2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
3393
3394         * c-common.c (format_check_results): New structure.
3395         (finish_dollar_format_checking): Adjust to take a
3396         format_check_results * parameter.
3397         (check_format_info, check_format_info_recurse,
3398         check_format_info_main): Split check_format_info into three
3399         functions, the main checking going in check_format_info_main.
3400         Recurse when any reduction of the format string argument towards a
3401         string literal is done; go down both branches of a conditional
3402         expression.  Don't warn for extra format arguments or empty format
3403         strings if they only occur in some branches of a conditional
3404         expression.
3405
3406 2000-10-16  Kazu Hirata  <kazu@hxi.com>
3407
3408         * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
3409
3410 2000-10-16  Jakub Jelinek  <jakub@redhat.com>
3411
3412         * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
3413
3414 2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
3415
3416         * i386.md (*movsi_or): Switch operand order for intel syntax.
3417
3418 2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
3419
3420         * PROBLEMS: Remove.
3421
3422         * gcc.texi (Contributing): Update.
3423
3424 2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
3425
3426         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
3427         appropriate assembler dialect.
3428
3429 2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
3430
3431         * c-common.c (c_expand_builtin): PARAMS-ize prototype.
3432
3433 2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
3434
3435         * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
3436         constants 1 and 2 to NO_LD_REGS.
3437
3438 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3439
3440         * Makefile.in (c-parse.c, tradcif.c): Create atomically.
3441
3442         * objc/Make-lang.in (objc-parse.c): Likewise.
3443
3444 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
3445
3446         * arm.c: Include obstack.h
3447         (minipool_obstack, minipool_startobj): Define.
3448         (arm_add_gc_roots): Initialize them.
3449         (create_fix_barrier): Use our new obstack.
3450         (push_minipool_barrier, push_minipool_fix): Likewise.
3451         (arm_reorg): Release obstack memory.
3452
3453 2000-10-13  Jakub Jelinek  <jakub@redhat.com>
3454
3455         * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
3456         (prologue, exception_receiver, builtin_setjmp_receiver): New
3457         patterns.
3458         * config/sparc/sparc.h (FINALIZE_PIC): Remove.
3459         * config/sparc/sparc-protos.h (finalize_pic): Remove.
3460         (load_pic_register): New prototype.
3461         * config/sparc/sparc.c (pic_setup_code): Remove.
3462         (finalize_pic): Rename to...
3463         (load_pic_register): ...this function.
3464         Don't look for nonlocal_goto_receivers and emit pic setup code
3465         directly.  Don't check current_function_uses_pic_offset_table.
3466
3467 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
3468
3469         * tree.h (struct obstack): Declare.
3470
3471 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
3472
3473         Remove obstacks.
3474         * Makefile.in (ggc-callbacks.o): Remove target.
3475         (flow.o): Depend on GGC_H.
3476         * alias.c (init_alias_analysis):
3477         Remove ggc_p conditionals.
3478         (end_alias_analysis): Likewise.
3479         * basic-block.h (init_flow): New function.
3480         (allocate_reg_life_data): Declare.
3481         * bb-reorder.c  (function_obstack): Replace with ...
3482         (flow_obstack): ... new variable.
3483         (fixup_reorder_chain): Use it.
3484         * c-decl.c (ggc_p): Remove.
3485         (caller-save.c): Don't call oballoc/obfree.
3486         * combine.c (struct
3487         undobuf): Remove storage.
3488         (try_combine): Don't call oballoc.
3489         (undo_all): Don't call obfree.
3490         * cse.c (insert): Use xmalloc, not
3491         oballoc.
3492         (cse_main): Adjust accordingly.
3493         * dwarf2out.c (save_rtx): Remove
3494         obstack code.
3495         (dwarf2out_init): Remove ggc_p conditionals.
3496         * emit-rtl.c (rtl_obstack): Remove.
3497         (gen_rtx_CONST_INT): Remove ggc_p conditionals.
3498         (make_insn_raw): Likewise.
3499         (emit_insn_before): Likewise.
3500         (emit_insn_after): Likewise.
3501         (emit_insn): Likewise.
3502         (gen_sequence): Likewise.
3503         (copy_insn_1): Remove handling of `b' RTL components.
3504         (init_emit_once): Remove ggc_p conditionals.
3505         * except.c (create_rethrow_ref): Don't fool with obstacks.
3506         (add_partial_entry): Likewise.
3507         (call_get_eh_context): Likewise.
3508         (begin_protect_partials): Likewise.
3509         (protect_with_terminate): Likewise.
3510         * explow.c
3511         (plus_constant_wide): Likewise.
3512         * expr.c (init_expr_once):
3513         Likewise.
3514         (emit_block_move): Likewise.
3515         (clear_storage): Likewise.
3516         (expand_expr): Likewise.
3517         * flow.c (function_obstack): Remove.
3518         (flow_obstack): New variable.
3519         (flow_firstobj): Likewise.
3520         (create_base_block): Use the flow_obstack.
3521         (split_block): Likewise.
3522         (split_edge): Likewise.
3523         (calculate_global_regs_live): Likewise.
3524         (allocate_bb_life_data): Make it static.  Likewiwse.
3525         (init_flow): New function.
3526         (size_int_type_wide): Remove ggc_p conditionals.
3527         * function.c
3528         (push_function_context_to): Don't call save_tree_status.
3529         (pop_function_context_from): Or restore_tree_status.
3530         (assign_stack_local_1): Don't call push_obstacks.
3531         (find_fixup_replacement): Use xmalloc.
3532         (fixup_var_refs_insns): Free the storage.
3533         (insns_for_mem_walk): Don't mess with obstacks.
3534         (instantiate_decls): Likewise.
3535         (trampoline_address): Likewise.
3536         (expand_function_end): Likewise.
3537         * function.h (sturct function):
3538         Remove obstack-related variables.
3539         (save_tree_status): Don't declare.
3540         (restore_tree_status): Likewise.
3541         * gcse.c (compute_can_copy):
3542         Don't call oballoc/obfree.
3543         * genattrtab.c (operate_exp): Remove
3544         ggc_p conditionals.
3545         (simplify_cond): Likewise.
3546         (simplify_test_exp): Don't mess with obstacks.
3547         (optimize_attrs): Likewise.
3548         * gengenrtl.c (gendef): Don't include
3549         ggc_p conditionals.
3550         * ggc-callbacks.c (ggc_p): Remove.
3551         * ggc-none.c (ggc_p): Remove.
3552         * ggc.h (ggc_p): Don't declare.
3553         * integrate.c (save_for_inline): Don't mess with obstacks.
3554         (integrate_decl_tree): Likewise.
3555         (output_inline_function): Likewise.
3556         * lists.c
3557         (init_EXPR_INSN_LIST_cache): Likewise.
3558         * loop.c (temp_obstack):
3559         Remove.
3560         (rtl_obstack): Likewise.
3561         (init_loop): Don't mess with obstacks.
3562         (reg_address_cost): Free BIVs and GIVs.
3563         (check_insns_for_bivs): Use xmalloc, not oballoc.
3564         (find_mem_givs): Likewise.
3565         (record_biv): Likewise.
3566         (general_induction_var): Likewise.
3567         (product_cheap_p): Likewse.
3568         * optabs.c (init_one_libfunc): Remove
3569         ggc_p conditional.
3570         * print-tree.c (debug_tree): Don't use
3571         oballoc/obfree.
3572         (print_node): Likewise.
3573         * profile.c (output_func_start_profiler):
3574         Remove call to temporary_allocation.
3575         * reload1.c
3576         (eliminate_regs_in_insn): Don't mess with obstacks.
3577         * resource.c
3578         (mark_target_live_regs): Use xmalloc.
3579         (free_resource_info): Free the memory.
3580         * rtl.c (rtl_obstack):
3581         Remove.
3582         (rtvec_alloc): Don't mess with obstacks.
3583         (rtx_alloc): Likewise.
3584         (rtx_free): Remove.
3585         (copy_rtx): Don't handle `b' cases.
3586         (read_rtx): Use a local rtl_obstack.
3587         * rtl.h (oballoc): Remove.
3588         (obfree): Likewise.
3589         (pop_obstacks): Likewise.
3590         (push_obstacks): Likewise.
3591         (allocate_bb_life_data): Likewise.
3592         (allocate_reg_life_data): Likewise.
3593         (rtx_free): Likewise.
3594         * sdbout.c (sdbout_queue_anonymous_type):
3595         Use tree_cons, not saveable_tree_cons.
3596         * simplify-rtx.c
3597         (cselib_init): Don't mess with obstacks.
3598         * stmt.c
3599         (mark_block_nesting): Mark the label_chain.
3600         (epxand_label): Use ggc_alloc, not oballoc.
3601         (clear_last_expr): Don't mess with obstacks.
3602         (expand_decl_cleanup): Likewise.
3603         (expand_dcc_cleanup): Likewise.
3604         (expand_dhc_cleanup): Likewise.
3605         (expand_anon_union_decl): Likewise.
3606         (add_case_node): Use xmalloc, not oballoc.
3607         (free_case_nodes): New function.
3608         (expand_end_case): Call it.
3609         * stor-layout.c (layout_type): Don't
3610         mess with obstacks.
3611         (layout_type): Likewise.
3612         * toplev.c (wrapup_global_declarations):
3613         Likewise.
3614         (compile_file): Remove ggc_p conditionals.
3615         (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
3616         (decode_f_option): Remove ggc_p conditionals.
3617         * tree.c
3618         (function_maybepermanent_obstack): Remove.
3619         (maybepermanent_obstack): Likewise.
3620         (function_obstack): Likewise.
3621         (tmeporary_obstack): Likewise.
3622         (momentary_obstack): Likewise.
3623         (temp_decl_obstack): Likewise.
3624         (saveable_obstack): Likewise.
3625         (rtl_obstack): Likewise.
3626         (current_obstack): Likewise.
3627         (expression_obstack): Likewise.
3628         (struct obstack_stack): Likewise.
3629         (obstack_stack): Likewise.
3630         (obstack_stack_obstack): Likewise.
3631         (maybepermanent_firstobj): Likewise.
3632         (temporary_firstobj): Likewise.
3633         (momentary_firstobj): Likewise.
3634         (temp_decl_firstobj): Likewise.
3635         (momentary_function_firstobj): Likewise.
3636         (all_types_permanent): Likewise.
3637         (struct momentary_level): Likewise.
3638         (momentary_stack): Likewise.
3639         (init_obstacks): Remove initialization of removed obstacks.
3640         (save_tree_status): Remove.
3641         (restore_tree_status): Likewise.
3642         (temporary_allocation): Liekwise.
3643         (end_temporary_allocation): Liekwise.
3644         (resume_temporary_allocation): Likewise.
3645         (saveable_allocation): Likewise.
3646         (push_obstacks): Likewise.
3647         (push_obstacks_nochange): Likewise.
3648         (pop_obstacks): Likewise.
3649         (allocation_temporary_p): Likewise.
3650         (permanent_allocation): Likewise.
3651         (preserve_data): Likewise.
3652         (preserve_initializer): Likewise.
3653         (rtl_in_current_obstack): Likewise.
3654         (rtl_in_saveable_obstack): Likewise.
3655         (oballoc): Likewise.
3656         (obfree): Likewise.
3657         (savealloc): Likewise.
3658         (expralloc): Likewise.
3659         (print_obstack_name): Likewise.
3660         (debug_obstack): Likewise.
3661         (object_permanent_p): Likewise.
3662         (push_momentary): Likewise.
3663         (perserve_momentary): Likewise.
3664         (clear_momentary): Likewise.
3665         (pop_momentary): Likewise.
3666         (pop_momentary_nofree): Likewise.
3667         (suspend_momentary): Likewise.
3668         (resume_momentary): Likewise.
3669         (make_node): Don't set TREE_PERMANENT.
3670         (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
3671         Don't set TREE_PERMANENT.
3672         (get_identifier): Remove ggc_p conditionals.
3673         (build_string): Likewise.
3674         (make_tree_vec): Likewise.
3675         (build_decl_list): Remove.
3676         (build_expr_list): Likewise.
3677         (tree_cons): Remove ggc_p conditionals.
3678         (decl_tree_cons): Remove.
3679         (expr_tree_cons): Likewise.
3680         (perm_tree_cons): Likewise.
3681         (temp_tree_cons): Likewise.
3682         (saveable_tree_cons): Likewise.
3683         (build1): Remove ggc_p conditionals.
3684         (build_parse_node): Likewise.
3685         (build_type_attribute_variant): Don't mess with obstacks.
3686         (build_type_copy): Likewise.
3687         (type_hash_canon): Likewise.
3688         (build_pointer_type): Likewise.
3689         (build_reference_type): Likewise.
3690         (build_index_type): Likewise.
3691         (build_range_type): Likewise.
3692         (dump_tree_statistics): Don't print obstack information.
3693         * tree.h
3694         (struct tree_common): Remove permanent_flag.
3695         (TREE_PERMANENT): Remove.
3696         (TREE_SET_PERMANENT): Likewise.
3697         (TYPE_OBSTACK): Likewise.
3698         (struct tree_type): Remove obstack.
3699         (oballoc): Remove.
3700         (savealloc): Likewise.
3701         (build_decl_list): Likewise.
3702         (build_expr_list): Likewise.
3703         (perm_tree_cons): Likewise.
3704         (temp_tree_cons): Likewise.
3705         (saveable_tree_cons): Likewise.
3706         (decl_tree_cons): Likewise.
3707         (expr_tree_cons): Likewise.
3708         (suspend_momentary): Likewise.
3709         (allocation_temporary_p): Likewise.
3710         (resume_momentary): Likewise.
3711         (push_obstacks_nochange): Likewise.
3712         (permanent_allocation): Likewise.
3713         (push_momentary): Likewise.
3714         (clear_momentary): Likewise.
3715         (pop_momentary): Likewise.
3716         (end_temporary_allocation): Likewise.
3717         (pop_obstacks): Likewise.
3718         (push_obstacks): Likewise.
3719         (pop_momentary_nofree): LIkewise.
3720         (preserve_momentary): Likewise.
3721         (saveable_allocation): Likewise.
3722         (temporary_allocation): Likewise.
3723         (resume_temporary_allocation): Likewise.
3724         (perserve_initializer): Likewise.
3725         (debug_obstack): Likewise.
3726         (rtl_in_current_obstack): Likewise.
3727         (rtl_in_saveable_obstack): Likewise.
3728         (obfree): Likewise.
3729         * varasm.c (current_obstack): Remove.
3730         (saveable_obstack): Remove.
3731         (rtl_obstack): Remove.
3732         (immed_double_const): Don't mess with obstacks.
3733         (immed_real_cons): Likewise.
3734         (output_constant_def): Likewise.
3735         (init_varasm_status): Use xcalloc.
3736         (mark_pool_constant): Mark the pool constant itself.
3737         (free_varasm_status): Free memory.
3738         (decode_rtx_const): Call bzero directly, rather than expanding it
3739         inline.
3740         (record_rtx_const): Don't mess with obstacks.
3741         (force_const_mem): Likewise.
3742         * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
3743         conditionals.
3744         (aof_pic_entry): Likewise.
3745         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
3746         * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
3747         * config/pa/pa.c (saveable_obstack): Remove.
3748         (rtl_obstack): Likewise.
3749         (current_obstack): Likewise.
3750         (output_call): Don't mess with obstacks.
3751         (hppa_encode_label): Remove ggc_p conditionals.
3752         * config/romp/romp.c (get_symref): Don't mess with obstacks.
3753         * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
3754         (rs6000_encode_section_info): Likewise.
3755         * config/sh/sh.c (get_fpscr_rtx): Likewise.
3756
3757 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
3758
3759         * i386.md (adddi3, subdi3 splitters): Update for new pattern.
3760         (addsi3_cc, addqi3_cc, subsi3_cc): Remove
3761         (addsi3_carry): Canonicalize.
3762         (addqi_5): Remove '*'.
3763         (sbb pattern): Canonicalize.
3764
3765         * i386.md (cmp to inc/add peep2): New.
3766
3767 2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
3768
3769         * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
3770         the exit block.
3771
3772 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
3773
3774         * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
3775         * README.TRAD, TESTS.FLUNK: Remove.
3776
3777 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
3778
3779         * c-common.c (decl_attributes): Don't allow strftime formats with
3780         first_arg_num nonzero.
3781         (check_format_info): Set wanted_type and wanted_type_name to zero
3782         before they are possibly assigned and used.
3783
3784 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
3785
3786         * c-common.c (scanf_flag_specs): Add flags ' and I.
3787         (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
3788         or the ^ and # flags together.
3789         (scan_char_table): Handle the ' and I flags.
3790         (format_types): Add ' and I flags for scanf.
3791
3792 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
3793
3794         * c-common.c (print_char_table): Use the unpromoted type for
3795         lengths "h" and "hh" with conversions dioxXu.
3796         (check_format_types): Apply the default argument promotions where
3797         the wanted type is not a pointer target.
3798
3799 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
3800             Joseph S. Myers  <jsm28@cam.ac.uk>
3801
3802         * c-typeck.c (check_modify_expr): New function.
3803         (build_modify_expr): Call it if warn_sequence_point.
3804         * c-decl.c (warn_sequence_point): New variable.
3805         (c_decode_option): Handle -Wsequence-point and
3806         -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
3807         * c-tree.h (warn_sequence_point): Declare.
3808         * invoke.texi (-Wsequence-point): Document.
3809         * toplev.c (documented_lang_options): Add -Wsequence-point and
3810         -Wno-sequence-point.
3811         Original work by Michael Meeks, 16 Jun 1998.
3812
3813 Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3814
3815         * tree.c (get_narrower): Don't look at precision of field if
3816         not laid out yet.
3817
3818 Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
3819
3820         * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
3821         declaration for data with "progmem" attribute.
3822
3823 2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
3824
3825         * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
3826         Correct insn length if shift count is a memory operand.
3827         * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
3828         (*iorhi3_clobber): Change lo8 to hi8.
3829         (zero_extendhisi2): Change %B0 to %A1.
3830         (ashlhi3, ashrhi3): Correct insn length.
3831         (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
3832         from "clobber" to "set_n" in some alternatives.
3833
3834 2000-10-10  Jakub Jelinek  <jakub@redhat.com>
3835
3836         * reload1.c (calculate_needs_all_insns): If deleting an instruction,
3837         remove its insn_chain structure as well.
3838
3839 2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3840
3841         * dbxout.c (dbxout_source_line): Remove extra tab.
3842
3843 2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
3844
3845         * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
3846
3847 2000-10-09  Richard Henderson  <rth@cygnus.com>
3848
3849         * Makefile.in (LANG_LIB2FUNCS): Remove.
3850         (LIB2FUNCS): Remove _pure.
3851         (LIB2ADD): Remove LANG_LIB2FUNCS.
3852         (stage_a): Don't set LANG_LIB2FUNCS.
3853         * libgcc2.c (__terminate): Mark noreturn.
3854         (__pure_virtual): Remove.
3855         * mklibgcc.in: Remove LIB2ADD .txt processing.
3856
3857 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
3858
3859         * arm.md (push_multi): Revert unintended change.
3860
3861 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
3862
3863         * arm.c: Miscellaneous white space and comment clean-ups.  No
3864         functional change.
3865         * arm.md: Likewise.
3866
3867 2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3868
3869         * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
3870         STRING_CST by calling combine_strings.
3871
3872 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
3873
3874         * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
3875         (thumb_output_move_mem_multiple): Support new insn format.
3876         * arm.md (movmem12b): Use SSA compatible format.
3877         (movmem8b): Likewise.
3878
3879 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
3880
3881         * arm.md (predicable): New attribute, default to "no".
3882         (all patterns): Mark as predicable if appropriate.
3883         (conditional execution splits): Split using predication format.
3884         (define_cond_exec): Define.
3885         * arm.c (arm_print_operand): handle insn predicate.
3886
3887 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3888
3889         * README.NS32K: Remove file.
3890
3891 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3892
3893         * README-bugs: Remove file.
3894
3895 2000-10-08  Philipp Thomas  <pthomas@suse.de>
3896         * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
3897         for test.
3898         * configure: Rebuilt.
3899
3900 2000-10-08  Philipp Thomas  <pthomas@suse.de>
3901         * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
3902         disable catalog building if no suitable program was found.
3903         Move warning message from here
3904         (AM_GNU_GETTEXT): To here.
3905         * configure: Rebuilt.
3906
3907 2000-10-08  Philipp Thomas  <pthomas@suse.de>
3908         * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
3909         different cache variables.
3910         (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
3911         uses different cache variables.
3912         (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
3913         * configure: Regenerated.
3914
3915 2000-10-08  Richard Henderson  <rth@cygnus.com>
3916
3917         * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
3918         * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
3919         * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
3920         Use SHLIB_EXT.
3921
3922         * config/t-linux (SHLIB_EXT): New.
3923         (SHLIB_LINK): Use the entire build command, with substitutions.
3924         (SHLIB_LIBS): Remove.
3925         * config/alpha/t-osf4: Likewise.
3926         * config/mips/t-iris6: Likewise.
3927         * config/sparc/t-sol2: Likewise, but move shlib stuff...
3928         * config/sparc/t-slibgcc-sld: ...here.
3929         * config/sparc/t-slibgcc: New file.
3930
3931 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
3932
3933         * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
3934         * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
3935         CTI_UINTMAX_TYPE.
3936         (intmax_type_node, uintmax_type_node): Define.
3937         * c-common.c (decl_attributes): If pedantic, warn if `mode'
3938         attributes create a type wider than intmax_t.
3939         (T_IM, T_UIM): Define properly.
3940         * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
3941         defined.
3942         (init_decl_processing): Initialize intmax_type_node and
3943         uintmax_type_node.
3944         * c-lex.c (lex_number): When pedantic and warning for integer
3945         constants that are too large, in C99 mode warn for those that have
3946         a type wider than long long.
3947
3948 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
3949
3950         * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
3951         FMT_FLAG_FANCY_PERCENT_OK): Define.
3952         (format_char_info): Add flag "4" to comment.
3953         (format_flag_spec, format_flag_pair): New structures.
3954         (format_kind_info): Add additional fields to control format
3955         checking.
3956         (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
3957         scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
3958         arrays.
3959         (time_char_table): Use "4" flag to handle %Ey.
3960         (format_types): Add entries for new fields.
3961         (get_flag_spec): New function.
3962         (check_format_info): Increase size of flag_chars[] to 256.
3963         Control format checking using the new fields of a format_kind_info
3964         and the new tables; remove all conditionals on printf_format_type,
3965         scanf_format_type or strftime_format_type.  Handle all details of
3966         bad combinations of flags (including width, precision and strftime
3967         modifiers) through data rather than ad hoc code.  Handle all
3968         details of standard versions in which flags appeared through
3969         data.  Use the "4" flag.
3970
3971 2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
3972
3973         * config/h8300/h8300.md: Remove the memory alternative and correct
3974         the insn lengths in the templates for sign extention and zero
3975         extention.
3976
3977 2000-10-07  Richard Henderson  <rth@cygnus.com>
3978
3979         * calls.c (expand_call): Disallow sibcalls to noreturn functions.
3980         * flow.c (make_edges): Revert last change.
3981
3982         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
3983         TREE_THIS_VOLATILE.
3984         * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
3985
3986 2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
3987
3988         * config/alpha/elf.h: Standardize the formatting.
3989
3990 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
3991
3992         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
3993         #undef.
3994
3995 2000-10-06  Richard Henderson  <rth@cygnus.com>
3996
3997         * function.c (diddle_return_value): Examine
3998         current_function_return_rtx instead of the DECL_RESULT.
3999         (expand_function_end): Handle reloading DECL_RESULT from memory
4000         into a hard register.  Query promote_mode for sign of mismatched
4001         modes.
4002
4003 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4004
4005         * haifa-sched.c (schedule_insns): Fix typo in freeing
4006         forward_dependency_cache.
4007
4008 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
4009
4010         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
4011         `TARGET_SH2' as a condition.
4012
4013 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4014
4015         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
4016         forward_dependency_cache): New variables.
4017         (add_dependence, remove_dependence): Use anti_dependency_cache and
4018         output_dependency_cache.
4019         (compute_block_forward_dependences): Use forward_dependency_cache.
4020         (schedule_insns): Allocate and free memory for anti/output/forward
4021         dependencies caches.
4022
4023 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
4024
4025         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
4026         `! TARGET_SH1'.  Reindent.
4027
4028 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4029
4030         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
4031         Move functions from here ...
4032
4033         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
4034         ... to here.
4035         (c_expand_builtin): New function.
4036         (init_function_format_info): Don't set `check_function_format_ptr'.
4037         (c_common_nodes_and_builtins): Set built_in_class type for
4038         printf/__builtin_printf to BUILT_IN_FRONTEND.
4039         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
4040
4041         * c-common.h (build_function_call): Declare.
4042
4043         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
4044         to `lang_expand_expr' rather than `expand_builtin'.
4045
4046         * tree.c (check_function_format_ptr): Delete.
4047
4048         * tree.h (check_function_format_ptr): Likewise.
4049
4050 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
4051
4052         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
4053         DW_OP_bregx when cfa->reg > 31.
4054
4055         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
4056         break.
4057
4058 2000-10-05  Richard Henderson  <rth@cygnus.com>
4059
4060         * c-decl.c (warn_missing_noreturn): Remove.
4061         (c_expand_body): Don't set or check can_reach_end.
4062         * c-tree.h (warn_missing_noreturn): Move ...
4063         * flags.h: ... here.
4064         (can_reach_end): Remove.
4065         * flow.c (check_function_return_warnings): New.
4066         (make_edges): No edge to exit for noreturn sibcalls.
4067         * function.c (expand_function_end): Save the return value
4068         clobber instruction.
4069         (mark_function_status): Mark it.
4070         * function.h (struct function): Add x_clobber_return_insn.
4071         * jump.c (can_reach_end): Remove.
4072         (calculate_can_reach_end): Remove.
4073         (jump_optimize_1): Don't call it.
4074         * output.h (check_function_return_warnings): Declare.
4075         * toplev.c (warn_missing_noreturn): Move from c-decl.c
4076         (rest_of_compilation): Call check_function_return_warnings.
4077
4078 2000-10-05  Richard Henderson  <rth@cygnus.com>
4079
4080         * Makefile.in (NM_FOR_TARGET): New.
4081         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
4082         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
4083         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
4084         shared library build on that and EXTRA_MULTILIB_PARTS.
4085         * mkmap-flat.awk: New file.
4086         * mkmap-symver.awk: New file.
4087         * libgcc-std.ver: New file.
4088         * config/libgcc-glibc.ver: New file.
4089         * config/ia64/libgcc-ia64.ver: New file.
4090         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4091         (SHLIB_LINK): Add --version-script.
4092         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
4093         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4094         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4095         (SHLIB_LINK): Add -M.
4096
4097 2000-10-05  Richard Henderson  <rth@cygnus.com>
4098
4099         * Makefile.in (LIB2FUNCS): Add _clz.
4100         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
4101         (__clz_tab): Put in its own unit, non-static.
4102         * libgcc2.h: Always include longlong.h.
4103
4104         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
4105         a zero instead of -1.
4106         (count_trailing_zeros): Likewise.
4107
4108 2000-10-05  Richard Henderson  <rth@cygnus.com>
4109
4110         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
4111         when second op1 is const0_rtx.  Validate op0 as a register.
4112         * config/alpha/alpha.md (setcc_internal): Don't allow constants
4113         in the first argument of the compare.
4114         (setcc_swapped_internal): Likewise.
4115         (setne_internal): Likewise.
4116
4117 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
4118
4119         * tree.c (tree_size): New function split out of copy_node.
4120         (make_node): Remove obstack handling.  Use tree_size.
4121         (copy_node): Use tree_size.
4122         * tree.h: Prototype tree_size.
4123
4124 2000-10-05  Richard Henderson  <rth@cygnus.com>
4125
4126         * diagnostic.c (output_format): Add missing break.
4127
4128 2000-10-05  Jim Wilson  <wilson@cygnus.com>
4129
4130         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
4131         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
4132         sequence insn to INSN, and delete last sequence insn.
4133
4134 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
4135
4136         * gcc.c (main): Include generated configargs.h header
4137         and use arguments in '-v' output.
4138
4139 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4140
4141         * gcc.c: Move data on prefixes forward in file and reorganize.
4142         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
4143         Always define, but make null if no value.
4144         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
4145         and "md_startfile_prefix_1".
4146         (main): Check whether md_exec_prefix and the others are the
4147         null string rather than whether the macro is defined.
4148
4149 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
4150
4151         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
4152         from PSImode to SImode.
4153
4154 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
4155
4156         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
4157         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
4158         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
4159         sizeof(long).
4160
4161 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4162
4163         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
4164         negation in proper type.a
4165
4166 2000-10-04  Richard Henderson  <rth@cygnus.com>
4167
4168         * configure.in (enable-shared): New.
4169         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
4170         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
4171         * mklibgcc.in: Use them to link shared a libgcc.
4172         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
4173         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
4174         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
4175         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
4176
4177         * configure.in (alpha-osf*): Use t-osf and x-osf.
4178         * config/alpha/t-osf: New file.
4179         * config/alpha/t-osf4: New file.
4180         * config/alpha/x-osf: New file.
4181         * config/alpha/x-alpha: Remove file.
4182
4183 2000-10-04  Will Cohen  <wcohen@redhat.com>
4184
4185         * c-typeck.c (process_init_element): Added warning for zero-length
4186         array.
4187
4188         * extend.texi (Zero Length): State that static initializers for
4189         zero-length arrays are not allowed.
4190
4191 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4192
4193         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
4194         to come last.
4195
4196 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4197
4198         * config/float-c4x.h: New.
4199         * configure.in (c4x-*): Set float_format to c4x.
4200         * configure: Regenerate.
4201
4202 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4203
4204         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
4205         compilation for solaris versions 2.7 and greater.
4206
4207 2000-10-02  Marc Espie <espie@openbsd.org>
4208
4209         * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
4210         instead of redefining from scratch.
4211
4212 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
4213
4214         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
4215
4216 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
4217
4218         * config/ns32k/genix.h: Remove.
4219         * config/ns32k/x-genix: Likewise.
4220         * config/ns32k/xm-genix.h: Likewise.
4221         * config/fx80: Remove all filee in directory.
4222         * config/pyr: Likewise.
4223         * config/tahoe: Likewise.
4224         * config/gmicro: Likewise.
4225         * config/spur: Likewise.
4226         * configure.in: Remove configury bits for above targets.
4227         * configure: Regenerated.
4228
4229         * configure.in: Don't configure chill by default.
4230         * configure: Regenerated.
4231
4232         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
4233         (lang_mark_false_label_stack): Remove.
4234         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
4235         <top level> string in GC area.
4236         (mark_splay_tree_node): New function.
4237         (mark_splay_tree): Likewise.
4238         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
4239         if it exists.
4240         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
4241         * ggc-common.c (lang_mark_false_label_stack): Change type.
4242         * ggc.h (ggc_alloc_string): Add comment.
4243         (ggc_strdup): New function.
4244
4245 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
4246
4247         * config/avr/avr.h (BRANCH_COST): Define as 0.
4248
4249         * config/pdp11/pdp11.c: #include "tree.h" added.
4250
4251 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
4252
4253         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
4254         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
4255         with known shift count.
4256         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
4257         New alternative for shift count 2 with no scratch register.
4258         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
4259         "set_n" for shift counts 1 and 2.
4260
4261 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
4262
4263         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
4264         the mask value from the individual SET operations.
4265         (return_internal_si): Move the USE after the RETURN.
4266         (return_internal_di): Likewise.
4267         (return_and_restore_fpregs_si): Likewise.
4268         (return_and_restore_fpregs_di): Likewise.
4269         (return_eh_si): Likewise.
4270         (return_eh_di): Likewise.
4271         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
4272         or check, the USE.
4273         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
4274         Don't generate a PARALLEL around a single operation movsi_to_cr.
4275         Generate the RETURN first in any PARALLELs.
4276
4277         * rtlanal.c (single_set_1): Use fatal_insn to display the
4278         invalid insn.  Check for more cases when a USE or CLOBBER occurs
4279         before a SET.
4280         * Makefile.in: Update dependencies for rtlanal.o.
4281
4282 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
4283
4284         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
4285
4286 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
4287
4288         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
4289         Consistently use @email for formatting email addresses.
4290
4291 2000-09-29  Richard Henderson  <rth@cygnus.com>
4292
4293         * cse.c (notreg_cost): New argument outer.
4294         (COST): Pass in SET to notreg_cost
4295         (COST_IN): New.
4296         (fold_rtx): Use COST_IN.  Prefer constants when costs
4297         are the same.
4298
4299 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
4300
4301         * fixinc/inclhack.def (broken_cabs): Generalize regex.
4302         * fixinc/fixincl.x: Regenerate.
4303
4304 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4305
4306         * loop.c (check_final_value): A GIV is not replaceable if used
4307         before set.
4308
4309 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
4310
4311         * version.c: Bump to gcc-2.97.
4312
4313 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4314
4315         * final.c (final_scan_insn): Remove extra extract_insn call;
4316         Use caching for constrain_operands.
4317         (cleanup_subreg_operands): Use caching for extract_insn.
4318         * recog.c (constrain_operands_cached): New.
4319         * recog.h (constrain_operands_cached): Declare.
4320         * i386.c (ix86_attr_length_immediate_default,
4321         ix86_attr_length_address_default, ix86_agi_dependant): Cache
4322         extract_insn call.
4323
4324         * recog.c (asm_noperands): Tweak.
4325         (extract_insn): Do not call asm_noperads for non-asm instructions.
4326
4327 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4328
4329         * recog.c (recog_memoized): Rename to recog_memoized_1.
4330         * recog.h (recog_memoized): Rename to recog_memoized_1.
4331         (recog_memoized): New macro.
4332         * rtl.h (single_set): Rename to single_set_1
4333         (single_set): New macro.
4334         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
4335         to be last.
4336
4337         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
4338         Do not use match_dup of input operands at outputs.
4339         Use register_operand for memory expression.
4340         (rep_movsi): Put use last, canonicalize.
4341         Use register_operand for memory expression.
4342         (rep_movqi): Put use last.
4343         Use register_operand for memory expression.
4344         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
4345         of input operands at outputs.  Use register_operand for memory
4346         expression.
4347         (rep_stossi): Put use last; canonicalize; fix match_dup in
4348         the address expression
4349         (rep_stosqi): Likewise.
4350         (memcmp expander): Update calls.
4351         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
4352         the clobbers.
4353
4354         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
4355         VOIDmode.
4356         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
4357
4358 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
4359
4360         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
4361         Contains the old contents of config/i386/freebsd.h
4362         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
4363         Contains the old contents of config/i386/freebsd-elf.h
4364         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
4365         config/i386/freebsd.h.
4366         * configure.in: Adjust for above changes.
4367         * po/POTFILES.in: Likewise.
4368         * po/en_GB.po: Likewise.
4369         * po/gcc.pot: Likewise.
4370         * configure: Rebuilt.
4371
4372 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4373
4374         * doloop.c (doloop_modify): Prevent delete_insn() from
4375         deleting too much.  Prefer loop->top over loop->start as
4376         target for the new JUMP insn.
4377         (doloop_valid_p): Ignore loop with exit_count != 0.
4378
4379 2000-09-28  Philipp Thomas  <pthomas@suse.de>
4380
4381         * invoke.texi (i386 Options): Add athlon to table of possible
4382         choices for -mcpu=.
4383
4384 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
4385
4386         * diagnostic.h (output_clear_message_text): New function.
4387         (output_message_text): New macro.
4388
4389         * diagnostic.c (clear_text_info): Rename to
4390         output_clear_message_text.
4391         (output_clear): Adjust.
4392         (output_finish): Rename to output_finalize_message.  Tweek.
4393         (output_to_stream): Adjust.
4394
4395 2000-09-28  Neil Booth  <neilb@earthling.net>
4396
4397         * cpperror.c (_cpp_begin_message):  Do the test for suppression
4398         of warnings and pedantic warnings before the "is a warning an
4399         error" tests.
4400         * cppinit.c (cpp_handle_option): Remove surplus \n.
4401         * cpplex.c (ON_REST_ARG): Delete.
4402         (skip_block_comment): Initialise prevc.
4403         (parse_args): Improve error messages.
4404         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
4405         than ON_REST_ARG.
4406         * cpplib.c (cpp_push_buffer): Fix grammar in message.
4407         * cppmain.c (main): Set callbacks for #ident and #pragma
4408         only if no_output option is false.
4409         (do_pragma_implementation): Only call the #pragma handler
4410         if it is set in the cpp_reader structure.
4411
4412 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
4413
4414         * integrate.c (copy_insn_list): if an ignored return value
4415         is being clobbered, skip cloning that into the inline copy.
4416
4417 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
4418
4419         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
4420         use @uref for formatting URLs.
4421
4422 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
4423
4424         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
4425         name and prefix.
4426
4427 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
4428
4429         * gcc.c (cpp_options): Add spec for -ftabstop=.
4430         (invoke_as): New spec that handles invoking as.
4431         Update specs to handle -save-temps and -traditional.
4432         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
4433         Use invoke_as.
4434         * cp/lang-specs.h, objc/lang-specs.h: Update to use
4435         invoke_as, and handle -save-temps and -traditional (if
4436         appropriate).
4437
4438 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
4439
4440         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
4441         op0 is a SUBREG.
4442         (function_arg_slotno): Accept TImode/CTImode.
4443         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
4444         to UNITS_PER_WORD.
4445
4446 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
4447
4448         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
4449         from entry block.
4450
4451 2000-09-25  Jim Wilson  <wilson@cygnus.com>
4452
4453         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
4454         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
4455         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
4456         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
4457
4458 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
4459
4460         * cpplex.c (parse_args): Don't set VOID_REST flag.
4461         (CONTEXT_VARARGS): New flag.
4462         (maybe_paste_with_next): Set context earlier in loop.  Use
4463         it.  Do varargs test with CONTEXT_VARARGS flag.
4464         (push_arg_context): Set CONTEXT_VARARGS flag if we're
4465         pushing an argument context for a varargs argument.
4466         * cpplib.h (VOID_REST): Delete.
4467         * gcc.dg/cpp/vararg1.c: Add test case.
4468
4469 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
4470
4471         * flags.h:  Declare warning flag warn_system_headers.
4472         * toplev.c:  Define it.
4473         (W_options): Add option -Wsystem-headers.
4474         * diagnostic.c (count_error): Test warn_system_headers.
4475         * invoke.texi:  Add description for -Wsystem-headers.
4476         * cpplib.h (cpp_options): New member warn_system_headers.
4477         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
4478         CPP_IN_SYSTEM_HEADER.
4479         * cpplib.c (do_import, do_pragma_once): Likewise.
4480         * cpperror.c (_cpp_begin_message): Test warn_system_headers
4481         and CPP_IN_SYSTEM_HEADER.
4482         * cppinit.c (handle_option): Recognize -Wsystem_headers.
4483         (print_help): Describe -Wsystem_headers.
4484         * cpplex.c (lex_line): Reorganize condition so that warnings
4485         about C++ comments in system headers can be enabled. Remove
4486         label do_line_comment.
4487
4488 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
4489
4490         * cpplex.c (save_comment): Only store the initial '/'
4491         now.
4492         (lex_token): Combine handling of the two comment types.
4493         Pass everything but the initial '/' to save_comment.
4494
4495 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
4496
4497         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
4498         _cpp_can_paste): New library-internal prototypes.
4499         * cpplex.c (dump_param_spelling, output_line_command,
4500         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
4501         cpp_printf, cpp_output_list): Move to cppoutput.c.
4502         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
4503         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
4504         cppoutput.c.
4505         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
4506         dump_param_spelling, output_line_command, cpp_scan_buffer,
4507         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
4508         from elsewhere.
4509         * Makefile.in: Add cppoutput.c.
4510         * po/POTFILES.in: Add cppoutput.c.
4511
4512 2000-09-25  Richard Henderson  <rth@cygnus.com>
4513
4514         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
4515         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
4516         split until after reload.
4517         (rotlsi3, rotldi3): New.
4518
4519 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
4520
4521         * diagnostic.c (output_last_position): Define.
4522         (set_real_maximum_length): Tweek.
4523         * diagnostic.h (output_last_position): Declare.
4524
4525 2000-09-25  Kazu Hirata  <kazu@hxi.com>
4526
4527         * config/i386/i386.c: Fix formatting.
4528
4529 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
4530
4531         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
4532         UNITS_PER_WORD is small.
4533
4534 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
4535
4536         * c-common.c (format_char_info): Add flags2; update comments.
4537         (print_char_table, scan_char_table, time_char_table): Split some
4538         flags out into flags2.
4539         (check_format_info): Use flags2 for those flags, for identifying
4540         the initial character of a scanf scanset, and for identifying
4541         printf formats where the '0' flag is ignored with precision.
4542
4543 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
4544
4545         Changes below marked "here" add TABs on either or both sides,
4546         covering start of line, up to any operand for all noted .*ASM.*_OP
4547         definitions.  All callers changed.
4548         * tm.texi: Make documented *_ASM.*_OP:s include spacing
4549         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
4550         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
4551         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
4552         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
4553         Fix typos in description for LONG_LONG_TYPE_SIZE and
4554         FINI_SECTION_ASM_OP.
4555         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
4556         why these defaults don't have leading spacing.
4557         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
4558         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4559         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
4560         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
4561         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
4562         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
4563         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
4564         * varasm.c (ASM_STABS_OP): Here.
4565         * xcoffout.h (ASM_STABS_OP): Here.
4566         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
4567         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
4568         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
4569         STRING_ASM_OP): Here.
4570         * config/freebsd.h (IDENT_ASM_OP): Here.
4571         * config/linux-aout.h (SET_ASM_OP): Here.
4572         * config/linux.h (SET_ASM_OP): Here.
4573         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
4574         INT_ASM_OP): Here.
4575         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
4576         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
4577         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
4578         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
4579         INT_ASM_OP): Here.
4580         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
4581         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
4582         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
4583         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
4584         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
4585         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
4586         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
4587         * config/a29k/udi.h (INT_ASM_OP): Here.
4588         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
4589         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
4590         SET_ASM_OP): Here.
4591         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
4592         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4593         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4594         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
4595         ASM_STABD_OP): Here.
4596         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
4597         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
4598         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
4599         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
4600         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
4601         SIZE_ASM_OP, STRING_ASM_OP): Here.
4602         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
4603         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
4604         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
4605         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
4606         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
4607         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
4608         Here.
4609         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4610         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
4611         * config/arm/coff.h (INT_ASM_OP): Here.
4612         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
4613         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
4614         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
4615         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
4616         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
4617         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4618         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
4619         STRING_ASM_OP): Here.  Update documentation copy in comments.
4620         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
4621         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
4622         DATA_SECTION_ASM_OP): Here.
4623         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
4624         Here.
4625         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
4626         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
4627         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4628         BSS_SECTION_ASM_OP): Here.
4629         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4630         BSS_SECTION_ASM_OP): Here.
4631         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
4632         Here.
4633         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
4634         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
4635         * config/h8300/h8300.h (ASM_WORD_OP): Here.
4636         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4637         BSS_SECTION_ASM_OP): Here.
4638         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
4639         * config/i386/bsd.h (ASM_BYTE_OP): Here.
4640         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
4641         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
4642         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
4643         Here.
4644         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
4645         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
4646         Here.
4647         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
4648         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
4649         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
4650         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
4651         SET_ASM_OP): Here.
4652         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
4653         * config/i386/netbsd.h (INT_ASM_OP): Here.
4654         * config/i386/openbsd.h (INT_ASM_OP): Here.
4655         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
4656         IDENT_ASM_OP): Here.
4657         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
4658         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
4659         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
4660         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
4661         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
4662         SHARED_BSS_SECTION_ASM_OP): Here.
4663         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
4664         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
4665         DATA_SECTION_ASM_OP): Here.
4666         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
4667         CONST_SECTION_ASM_OP): Here.
4668         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
4669         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4670         BSS_SECTION_ASM_OP): Here.
4671         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
4672         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
4673         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
4674         BSS_ASM_OP): Here, but use trailing spaces.
4675         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
4676         DATA_SECTION_ASM_OP): Here.
4677         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
4678         Here.
4679         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
4680         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
4681         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
4682         TDESC_SECTION_ASM_OP): Here.
4683         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
4684         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
4685         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
4686         Here.
4687         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4688         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
4689         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4690         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
4691         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
4692         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
4693         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
4694         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
4695         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
4696         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
4697         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
4698         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
4699         SET_ASM_OP): Here.
4700         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
4701         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
4702         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
4703         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
4704         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
4705         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
4706         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
4707         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4708         GLOBAL_ASM_OP): Here.
4709         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
4710         BSS_SECTION_ASM_OP): Here.
4711         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
4712         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4713         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
4714         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
4715         SKIP_ASM_OP): Here.
4716         * config/m68k/newsgas.h (SET_ASM_OP): Here.
4717         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
4718         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
4719         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
4720         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
4721         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
4722         but use trailing spaces.
4723         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
4724         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
4725         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
4726         Here.
4727         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
4728         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
4729         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4730         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
4731         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
4732         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
4733         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
4734         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
4735         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
4736         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
4737         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4738         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
4739         ASM_BYTE_OP): Here.
4740         * config/m88k/openbsd.h (SET_ASM_OP): Here.
4741         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
4742         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
4743         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
4744         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
4745         DTORS_SECTION_ASM_OP): Here.
4746         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
4747         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
4748         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
4749         BSS_SECTION_ASM_OP): Here.
4750         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
4751         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
4752         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
4753         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
4754         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
4755         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
4756         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
4757         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
4758         Here.
4759         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
4760         Here.
4761         * config/mips/osfrose.h (SET_ASM_OP): Here.
4762         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
4763         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
4764         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
4765         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
4766         Here.
4767         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
4768         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
4769         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
4770         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
4771         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
4772         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
4773         Here.
4774         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
4775         Here.
4776         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
4777         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
4778         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
4779         Here.
4780         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
4781         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
4782         * config/sparc/linux.h (COMMON_ASM_OP): Here.
4783         * config/sparc/linux64.h (COMMON_ASM_OP,
4784         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
4785         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
4786         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
4787         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
4788         * config/sparc/pbd.h (ASM_INT_OP): Here.
4789         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
4790         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
4791         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
4792         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
4793         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
4794         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
4795         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
4796         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
4797         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
4798         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
4799         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
4800         EH_FRAME_SECTION_ASM_OP): Here.
4801         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
4802         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
4803         Here.
4804         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
4805         Here.
4806         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
4807         TCOMMON_ASM_OP): Here.
4808         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
4809         Here.
4810         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
4811         ASM_BYTE_OP): Here.
4812
4813 2000-09-25  Richard Henderson  <rth@cygnus.com>
4814
4815         * expmed.c (store_bit_field): Adjust last change to not consider
4816         any word-sized field naturally aligned.
4817
4818 2000-09-24  Richard Henderson  <rth@cygnus.com>
4819
4820         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
4821         TFmode unordered compares properly.  Revalidate integer compare
4822         operands.
4823         (alpha_emit_setcc): New.
4824         (alpha_emit_conditional_move): Revalidate integer compare operands.
4825         * config/alpha/alpha-protos.h: Update.
4826         * config/alpha/alpha.md (cmpdi): Allow general operands.
4827         (sne): Use alpha_emit_setcc.
4828         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
4829         (sunordered, sordered): New.
4830
4831 2000-09-24  Richard Henderson  <rth@cygnus.com>
4832
4833         * config/ia64/ia64-protos.h: Update.
4834         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
4835         (ia64_expand_call): New.
4836         (ia64_expand_prologue): Emit an alloc if we need extra input
4837         registers.
4838         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
4839         instruction if true.
4840         (struct reg_flags): Add is_sibcall.
4841         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
4842         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
4843         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
4844         * config/ia64/ia64.h (PREDICATE_CODES): Update.
4845         * config/ia64/ia64.md (call): Use ia64_expand_call.
4846         (call_value): Likewise.
4847         (sibcall, sibcall_value): New.
4848         (call patterns): Remove extra expanders; tidy.
4849         (sibcall_epilogue): New.
4850         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
4851
4852 2000-09-24  Richard Henderson  <rth@cygnus.com>
4853
4854         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
4855
4856         * sibcall.c (skip_pic_restore): New.
4857         (identify_call_return_value): Use it.
4858
4859 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
4860
4861         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
4862         functions.  Generalize to handle both C and C++.
4863         * Makefile.in (c-tree.info): New target.
4864         (info): Add c-tree.info.
4865
4866 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4867
4868         * expr.c (store_field): If BITSIZE is negative, use size of type.
4869         (expand_expr, case COMPONENT_EXPR): Likewise.
4870
4871 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
4872
4873         * cpplex.c: Update TODO comment.
4874         * cpplib.c (do_error, do_warning): Merge common code of
4875         do_error and do_warning into do_diagnostic.  Use it.
4876         (do_diagnostic): New function.
4877         * cpplib.h: Fix comment typo.
4878
4879 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
4880
4881         * c-common.c (check_format_info): Warn for a wide character string
4882         used as a non-wide format argument.
4883
4884 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
4885
4886         * builtins.def (BUILT_IN_LLABS): Add.
4887         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
4888         * c-common.c (c_common_nodes_builtins): Create builtin functions
4889         __builtin_llabs, and plain llabs unless no_nonansi_builtins
4890         outside of C99 mode.
4891         (expand_tree_builtin): Handle BUILT_IN_LLABS.
4892
4893 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
4894
4895         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
4896         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
4897         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
4898         _cpp_free_toklist): No need to worry about extra dummy token
4899         at the start of token lists any more.
4900         (trigraph_ok): Only warn outside comments.
4901         (skip_block_comment): Set and clear lexing_comment.
4902         (skip_line_comment): Take a cpp_reader not cpp_buffer.
4903         Set and clear lexing_comment.
4904         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
4905         (check_long_token): Delete.
4906         (lex_percent, lex_dot): New subroutines of lex_token to
4907         handle lexing of '.' and '%' without lookback.
4908         (lex_token): Use lex_dot and lex_percent.
4909         (lex_line): Don't check for LIST_OFFSET.
4910         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
4911         * cpplib.c (_cpp_parse_assertion): Similarly.
4912         (cpp_push_buffer): Initialize extra_char.
4913         * cpplib.h (LIST_OFFSET): Delete.
4914         (struct cpp_buffer): New member extra_char.
4915         (struct lexer_state): New members lexing_comment and seen_dot.
4916
4917 2000-09-23  Jason Merrill  <jason@redhat.com>
4918
4919         * config/rs6000/x-aix41 (CLIB): Define here.
4920         * config/rs6000/t-aix43: Not here.
4921         * config/rs6000/t-aix41: Or here.  Remove.
4922         * configure.in: Don't use it.
4923
4924 2000-09-22  Jason Merrill  <jason@redhat.com>
4925
4926         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
4927         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
4928         * config.in: Regenerate.
4929
4930         * configure.in: Fix checks for assembler features when using a
4931         one-tree assembler that has not yet been built.
4932         Fix --disable-threads.
4933
4934 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
4935
4936         * stmt.c (expand_asm_operands): Allow # in constraints.
4937
4938 2000-09-22  Jason Merrill  <jason@redhat.com>
4939
4940         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
4941
4942         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
4943         function-local names.
4944
4945 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
4946             Mark Mitchell  <mark@codesourcery.com>
4947
4948         * toplev.c (warn_disabled_optimization): Declare new warning flag.
4949         * flags.h (warn_disabled_optimization): Add it here.
4950         * gcse.c (gcse_main): Add warning when disabled.
4951         * invoke.texi: Document -Wdisabled-optimization.
4952
4953 2000-09-21  Jason Merrill  <jason@redhat.com>
4954
4955         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
4956
4957         * dwarf2out.c (tree_add_const_value_attribute): New fn.
4958         (gen_variable_die): Call it for non-definitions.
4959
4960         * dwarf2out.c (die_struct): Add die_mark field.
4961         (mark_dies, unmark_dies): New fns.
4962         (clear_die_sizes): Remove.
4963         (print_die): Check die_symbol rather than die_offset.
4964         (build_abbrev_table, output_pubnames, output_aranges): Check
4965         die_mark rather than die_offset.
4966         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
4967         Call mark_dies.
4968
4969 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
4970
4971         * cppfiles.c (lookup_include_file): Rename to open_file.
4972         Always create a splay tree value, even on syscall failures.
4973         Negative entries indicated by fd == -2.
4974         Re-open files closed in the meantime.
4975         (_cpp_fake_include): Create a negative splay tree entry.
4976         (find_include_file, cpp_read_file): Update for function name
4977         change.
4978         * gcc.gd/cpp/mi4.c: Testcase.
4979
4980 2000-09-21  Nick Clifton  <nickc@redhat.com>
4981
4982         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
4983         ARM and THUMB modes.
4984
4985         * config/mcore/mcore.c: Fix compile time warnings.
4986         * config/mcore/mcore-protos.h: Fix compile time warnings.
4987
4988 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4989
4990         * configure.in: Correct test of gcc_cv_glibc.
4991         * configure: Rebuilt.
4992         * config.in: Rebuilt.
4993
4994 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4995
4996         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
4997         (expand_builtin): Handle BUILT_IN_FWRITE.
4998
4999         * builtins.def (BUILT_IN_FWRITE): New entry.
5000
5001         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
5002
5003 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5004
5005         * gcc.c (modify_target): New variable and struct.
5006         (process_command): Handle MODIFY_TARGET_NAME.
5007         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
5008         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
5009
5010         * c-decl.c (finish_decl): Add else's to avoid referencing
5011         TYPE_DOMAIN of an ERROR_MARK.
5012
5013 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
5014
5015         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
5016         `reload_in*' insns.
5017
5018 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
5019
5020         * config/avr/avr.md (neghi2): Add alternative for input and output
5021         operands in different registers, as in negsi2.
5022         (*negsi2): Remove '*' from the name.  Use "movw" if available.
5023
5024 2000-09-19  Jim Wilson  <wilson@cygnus.com>
5025
5026         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
5027         HAVE_GAS_HIDDEN macro.
5028
5029 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
5030
5031         * cpplex.c (lex_line): Drop the EOF token for unknown
5032         directives in assembler.
5033
5034 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
5035
5036         * configure.in: Allow enable_threads_flag value of "aix".  Define
5037         thread_file as "aix" for AIX 4.3 and above.
5038         * configure: Regenerated.
5039
5040         * gthr-aix.h: New file.
5041
5042         * rs6000/t-aix43: Replace soft-float multilib with pthread.
5043         Remove 403 processor multilib match.  Fix rios2 processor multilib
5044         match.
5045
5046         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
5047         to return to appropriate csect.
5048
5049 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5050
5051         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
5052         functions.
5053         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
5054         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
5055         BUILT_IN_PRINTF.
5056
5057         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
5058         New entries.
5059
5060         * c-common.c (init_function_format_info): Handle __builtin_printf.
5061         Set `check_function_format_ptr'.
5062         (c_common_nodes_and_builtins): Set `puts_ftype' and
5063         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
5064         __builtin_printf and printf.
5065
5066         * tree.c, tree.h (check_function_format_ptr): Declare.
5067
5068 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
5069
5070         * cppfiles.c (read_include_file): Take no special action for
5071         zero-length files.
5072
5073 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
5074
5075         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
5076         rather than that of branch.
5077         (shorten_branches): Don't increment insn_current_address twice.
5078
5079         Undo most of the Wed Jan 27 23:39:53 1999 patch:
5080         * loop.h (struct induction): Delete members derived, ix and last_use.
5081         (struct loop_ivs): Delete members first_increment_giv and
5082         last_increment_giv.
5083         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
5084         recombine_givs): Delete functions.
5085         (find_and_verify_loops): Don't initialize cont_dominator.
5086         (strength_reduce): Lose code to try to find bivs that can be
5087         expressed as givs of another biv, and to convert biv increments
5088         into givs.
5089         Lose loop_scan_start variable, always use loop->scan_start.
5090         Don't call recombine_givs.  Don't handle derived givs.
5091         (record_giv): Don't initialize derived and last_use fields.
5092         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
5093         givs.
5094         * unroll.c (derived_regs): Delete static variable.
5095         (unroll_loop): Don't initialize it.
5096         (copy_loop_body): Lose code to handle derived givs.
5097         (find_splittable_givs): Don't check for givs made from biv
5098         increments.
5099         Don't set derived_regs.
5100
5101         Fix misapplied earlier patch:
5102         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
5103         to fpul.
5104         (floatsisf2): Generate floatsisf_ie by default.
5105         (floatsisf_i4): Conditional on TARGET_SH4.
5106
5107         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
5108         predicate for the expanders.
5109
5110 2000-09-19  Richard Henderson  <rth@cygnus.com>
5111
5112         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
5113         in addition to pentium and pentiumpro symbols.
5114         (CPP_CPU_DEFAULT_SPEC): Likewise.
5115
5116         * c-typeck.c (c_expand_asm_operands): Restore the output tree
5117         after expanding.
5118
5119         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
5120         if the tree has side effects.
5121         (warn_if_unused_value): Do not warn about void constructs.
5122
5123         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
5124
5125         * unroll.c (copy_loop_body): Update LABEL_NUSES before
5126         calling invert_jump.
5127
5128 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
5129
5130         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
5131         into anything.
5132
5133 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5134
5135         * Makefile.in (c-common.o): Depend on diagnostic.h.
5136
5137         * c-common.c: Include diagnostic.h.
5138         (tfaff): Delete.
5139         (status_warning): New function.
5140         (check_format_info, maybe_read_dollar_number, check_format_types,
5141         finish_dollar_format_checking, check_function_format): Accept a
5142         `status' parameter.  All callers changed.
5143
5144         * c-common.h (check_function_format): Accept a `status' parameter.
5145
5146         * c-typeck.c: Update call to `check_function_format'.
5147
5148 2000-09-18  Richard Henderson  <rth@cygnus.com>
5149
5150         * c-decl.c (c_expand_body): Call mark_varargs before
5151         expand_function_start.
5152
5153 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
5154
5155         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
5156         * config/rs6000/eabi-ci.asm: Likewise.
5157
5158 2000-09-18  Richard Henderson  <rth@cygnus.com>
5159
5160         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
5161         for BImode.
5162
5163 2000-09-18  Jim Wilson  <wilson@cygnus.com>
5164
5165         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
5166         before passing it to fold_rtx_mult_add.
5167
5168         * unroll.c (final_giv_value): Pass increment through
5169         extend_value_for_giv before passing it to emit_iv_add_mult.
5170
5171         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
5172         paradoxical subreg, then directly substitute the replacement and
5173         return.
5174
5175 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
5176
5177         * cpp.texi: Update documentation, including some clarifications,
5178         the treatment of various newline combinations, and space between
5179         backslash and newline.
5180
5181 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
5182
5183         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
5184         Replace ASM_OUTPUT_LABELREF with assemble_name.
5185
5186 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
5187
5188         * sh.c (addsubcosts): CONST is not cheap.
5189         (find_barrier): For Sh1, take alignment after jumps into account.
5190
5191 2000-09-15  Andrew Haley  <aph@redhat.com>
5192
5193         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
5194         remove all SETs of SUBREGs of hard registers.
5195         * function.c (purge_hard_subreg_sets): New function.
5196         (purge_single_hard_subreg_set): New function.
5197         * rtl.h: (purge_hard_subreg_sets): New function.
5198
5199 2000-09-18  Richard Henderson  <rth@cygnus.com>
5200
5201         * config/ia64/ia64-protos.h: Update.
5202         * config/ia64/ia64.c (signed_inequality_operator): New.
5203         (ia64_expand_compare): New.
5204         (ia64_register_move_cost): Handle PR_REGS moves.
5205         (ia64_secondary_reload_class): Require a GR when moving to a PR.
5206         (struct reg_write_state): Add written_by_and/or.
5207         (struct reg_flags): Add is_and/or.
5208         (rws_update): Set them.
5209         (rws_access_regno): Test them to allow parallel comparisons.
5210         (rtx_needs_barrier): Recognize parallel comparisons.
5211         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
5212         Call recog_memoized; ignore pred_rel_mutex.
5213         (emit_predicate_relation_info): Don't call find_basic_blocks here.
5214         (ia64_reorg): Do it here instead.
5215         * config/ia64/ia64.h: s/CCmode/BImode/g
5216         (MODES_TIEABLE_P): Don't tie BImode.
5217         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
5218         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
5219         (RTX_COSTS): Make multiply 4 insns.
5220         (MEMORY_MOVE_COST): New.
5221         (PREDICATE_CODES): Update.
5222         * config/ia64/ia64.md: s/CCmode/BImode/g
5223         (movcci, movbi): New.
5224         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
5225         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
5226         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
5227         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
5228         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
5229         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
5230         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
5231         (mulsi, muldi): Use xmpy not xma.
5232         (cmpbi): New.
5233         (movcc, movcc_internal): Remove.
5234         (branch expanders): Use ia64_expand_compare.
5235         (setcc expanders): Likewise.
5236         (cmov insns): Use move_operand and ia64_move_ok.
5237         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
5238         scheduler from moving it past a use.
5239         * config/ia64/build.hacks: Remove.
5240
5241 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
5242
5243         * cpphash.h (HASHSTEP): Take character rather than pointer
5244         to character.
5245         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
5246
5247         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
5248
5249         * cpplex.c (auto_expand_name_space, trigraph_replace,
5250         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
5251         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
5252         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
5253         KNOWN_DIRECTIVE): Delete.
5254
5255         (handle_newline, check_long_token, skip_escaped_newlines,
5256         unterminated): New functions.
5257         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
5258
5259         (parse_identifier): Was parse_name, new implementation.
5260         (skip_line_comment, skip_block_comment, skip_whitespace,
5261         parse_number, parse_string, trigraph_ok, save_comment,
5262         adjust_column, _cpp_get_line): New implementations.
5263
5264         (lex_token): New function.  Lexes a token at a time, looking
5265         forwards.  Contains most of the guts of the old lex_line.
5266         (lex_line): New implementation, using lex_token to obtain
5267         individual tokens.
5268         (cpp_scan_buffer): Use the token's line, not the list's line.
5269
5270         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
5271          New implementations.
5272         (do_assert): Don't bother setting the answer's list's line.
5273         (cpp_push_buffer): Initialise new pfile and read_ahead members
5274         of struct cpp_buffer.
5275
5276         * cpplib.h (cppchar_t): New typedef.
5277         (struct cpp_buffer): read_ahead, pfile and col_adjust are
5278         new members.
5279         (struct lexer_state): New structure that determines the state
5280         and behaviour of the lexer.
5281         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
5282         (struct cpp_reader): New member "state". Rename
5283         multiline_string_line and multiline_string_column. Delete
5284         col_adjust, in_lex_line members.
5285         (CPP_BUF_COLUMN): Update.
5286
5287 2000-09-18  Richard Henderson  <rth@cygnus.com>
5288
5289         * combine.c (simplify_comparison): Shift a NOT out of a single
5290         bit test.
5291
5292         * combine.c (if_then_else_cond): Canonicalize BImode true to
5293         STORE_FLAG_VALUE.
5294         * explow.c (trunc_int_for_mode): Likewise.
5295
5296         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
5297         the NOT for De Morgan's rule.
5298         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
5299         of a comparison to the reverse comparison.
5300
5301         * combine.c (try_combine): Allow split to create a single insn.
5302
5303         * machmode.def: Add BImode.  Add a column for bitsize.
5304         * machmode.h (DEF_MACHMODE): Adjust for extra column.
5305         (GET_MODE_BITSIZE): Use it.
5306         * rtl.c (DEF_MACHMODE): Adjust for extra column.
5307         (mode_bitsize): New.
5308         (mode_mask_array): Use bitsize.
5309         * combine.c (combine_simplify_rtx): Require inner and outer
5310         modes to match on nonzero_bits optimizations.
5311
5312 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
5313
5314         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
5315         its entry in spill_reg_store.
5316         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
5317         * sh.c (reg_no_subreg_operand): New function.
5318         * sh-protos.h (reg_no_subreg_operand): Declare it.
5319         * sh.h (PREDICATE_CODES): Add it.
5320         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
5321         input operand that needs to be in fpul.
5322         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
5323         * sh.c (find_barrier): Take into account that machine_dependent_reorg
5324         might add new insns.
5325
5326 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
5327
5328         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
5329         MAYBE_DEAD.
5330         (sh_expand_epilogue): Take the PIC register into account when
5331         computing the frame size.
5332
5333         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
5334         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
5335         LABEL_REFs with a PIC-safe unspec.
5336
5337 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5338
5339         * c-common.c (check_format_info): Properly save the argument
5340         number and parameter for $ operand number formats in case width
5341         and precision arguments are also used.  Allow printf width and
5342         precision arguments to have operand numbers even if none was
5343         specified for the main format, since this is OK for %*.*m.  Only
5344         object to missing $ operand number if the format used requires an
5345         argument.
5346
5347 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5348
5349         * c-common.c (format_char_info): Add 'W' flag to comment.
5350         (print_char_table, scan_char_table): Use it.
5351         (check_format_info): Use the 'W' flag to determine whether a
5352         format argument is written into.
5353
5354 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5355
5356         * c-common.c (check_format_types): Reorganise and clean up,
5357         checking earlier for ERROR_MARKs and making cur_type into its
5358         TYPE_MAIN_VARIANT where convenient.
5359
5360 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5361
5362         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
5363
5364 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
5365
5366         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
5367
5368         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
5369         * i386.c (struct builtin_description): New.
5370         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
5371         (mmx_reg_operand): Declare MODE arg as unused.
5372         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
5373         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
5374         ix86_expand_binop_builtin, ix86_expand_store_builtin,
5375         ix86_init_builtins, ix86_expand_builtin): New functions.
5376         * i386.h (ix86_builtins): New enumeration.
5377         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
5378         * i386.md (attr length_immediate): 0 for mmx/sse types.
5379         (attr prefix_0f): 1 for mmx/sse types.
5380         (setcc_2): Remove "*" so we get gen_setcc_2.
5381         (emms): Account for changed register numbering.  Set "memory" attr
5382         to unknown.
5383         (sfence): Set "memory" attr to unknown.
5384
5385 2000-09-18  Andreas Jaeger  <aj@suse.de>
5386
5387         * configure.in: Define _GNU_SOURCE only when using the GNU C
5388         Library.
5389         * configure: Regenerated.
5390         * config.in: Regenerated.
5391
5392 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
5393
5394         * cppinit.c (cpp_init): Don't use ANSI prototypes.
5395         * flow.c (flow_dump_loop): Likewise.
5396         (flow_loops_dump): Likewise.
5397
5398         * c-typeck.c (c_start_case): Fix typo.
5399
5400 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
5401
5402         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
5403         to int for plain complex which defaults to complex double.  Do
5404         warn about defaulting to complex double if pedantic.  Warn about
5405         complex integer types if pedantic.  Warn about complex types if
5406         pedantic and not in C99 mode.
5407         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
5408         for complex conjugation.
5409
5410 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
5411
5412         * contrib.texi: Update my entry.
5413
5414 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
5415
5416         * config/avr/avr.md (mcu_enhanced): New attribute.
5417         (mcu_mega): Likewise.
5418         (extendhisi2): Use mcu_enhanced.
5419         (zero_extendhisi2): Likewise.
5420         (call_insn): Use mcu_enhanced and mcu_mega.
5421         (call_value_insn): Likewise.
5422         (*sbrx_branch): Use mcu_mega.
5423         (*sbrx_and_branchsi): Likewise.
5424         (*sbrx_and_branchhi): Likewise.
5425         (*tablejump_lib): Likewise.
5426
5427 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5428
5429         * alias.c (true_dependence): Allow non-unchanging read to conflict
5430         with unchanging write.
5431
5432         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
5433         (store_constructor): Pass alias_set to it.
5434
5435         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
5436         TYPE_MAIN_VARIANT of ERROR_MARK.
5437         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
5438
5439         * simplify-rtx.c (simplify_unary_operation): Add cases
5440         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
5441
5442 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
5443
5444         * expr.h (emit_library_call, emit_library_call_value): Delete
5445         declarations.
5446         * rtl.h (enum libcall_type): New.
5447         (emit_library_call, emit_library_call_value): Change fn_type arg to
5448         be of type enum libcall_type.
5449         * calls.c: Likewise for the function definitions.  Several callers
5450         throughout changed to use the new enumeration appropriately.
5451         (emit_library_call_value_1): Likewise.  Put back code to make libcall
5452         blocks of equal form, but only use it for the two new higher
5453         enumeration values.
5454
5455 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
5456
5457         Convert the C front-end to use function-at-a-time mode.
5458         * c-common.h: Include splay-tree.h.
5459         (C_DECLARED_LABEL_FLAG): New macro.
5460         (struct language_function): Add x_scope_stmt_stack and
5461         x_function_name_declared_p.
5462         (RECHAIN_STMTS): Move definition.
5463         (lang_statment_code_p): Likewise.
5464         (lang_expand_stmt): Likewise.
5465         (lang_expand_decl_stmt): New variable.
5466         (lang_expand_function_end): Likewise.
5467         (current_scope_stmt_stack): New function.
5468         (add_decl_stmt): Likewise.
5469         (add_scope_stmt): Likewise.
5470         (mark_stmt_tree): Likewise.
5471         (struct c_lang_decl): New structure.
5472         (DECL_SAVED_TREE): Define.
5473         (c_mark_lang_decl): New function.
5474         (c_expand_start_cond): Change prototype.
5475         (c_finish_then): New function.
5476         (c_finish_else): Likewise.
5477         (current_function_name_declared): Remove.
5478         (set_current_function_name_declared): Likewise.
5479         (mark_c_language_function): Declare.
5480         (case_compare): Likewise.
5481         (c_add_case_label): Likewise.
5482         (c_expand_expr): Likewise.
5483         (c_safe_from_p): Likewise.
5484         * c-common.c (lang_expand_function_end): New variable.
5485         (struct if_elt): Add if_stmt.
5486         (c_expand_start_cond): Add the if-statement to the statement-tree,
5487         rather than generating RTL.
5488         (c_finish_then): New function.
5489         (c_expand_start_else): Don't generate RTL.
5490         (c_finish_else): New function.
5491         (c_expand_expr_stmt): Don't generate RTL.
5492         (statement_code_p): Add SCOPE_STMT.
5493         (case_compare): New function.
5494         (c_add_case_label): Likewise.
5495         (mark_stmt_tree): Likewise.
5496         (c_mark_lang_decl): Likewise.
5497         (mark_c_language_function): Likewise.
5498         (c_expand_expr): Likewise.
5499         (c_safe_from_p): Likewise.
5500         * c-decl.c (c_stmt_tree): New variable
5501         (c_scope_stmt_stack): Likewise.
5502         (c_function_name_declared_p): Likewise.
5503         (lang_expand_expr_stmt): Remove.
5504         (poplevel): Don't call output_inline_function for nested
5505         functions.
5506         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
5507         `extern' function.
5508         (redeclaration_error_message): Change means of computing whether
5509         or not a function is nested.
5510         (lookup_label): Don't call label_rtx.
5511         (init_decl_processing): Add more GC roots.
5512         (start_decl): Add DECL_STMTs to the statement-tree, rather than
5513         calling rest_of_decl_compilation.
5514         (finish_decl): Don't call expand_decl.
5515         (store_parm_decls): Begin the statement-tree, but don't generate
5516         RTL.
5517         (finish_function): Tie off the statement-tree.  Call c_expand_body
5518         if appropriate.
5519         (c_expand_body): New function.
5520         (push_c_function_context): Save more information.
5521         (pop_c_function_contxt): Likewise.
5522         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
5523         (lang_mark_tree): Mark it.
5524         (current_stmt_tree): Adjust.
5525         (current_scope_stmt_stack): New function.
5526         (do_case): Remove.
5527         (set_current_name_declared): Likewise.
5528         (c_begin_compound_stmt): Define.
5529         (c_expand_decl_stmt): Likewise.
5530         * c-lang.c: Include rtl.h and expr.h.
5531         (lang_init): Set more language-specific hooks.
5532         * c-lex.c: Include expr.h.
5533         * c-parse.in: Changes throughout to add statements to the
5534         statement-tree, rather than generating RTL after every statement.
5535         * c-semantics.c (lang_expand_decl_stmt): Define.
5536         (add_decl_stmt): New function.
5537         (add_scope_stmt): Likewise.
5538         (finish_stmt_tree): Tweak.
5539         (genrtl_expr_stmt): Likewise.
5540         (genrtl_decl_stmt): Handle local labels, and call
5541         lang_expand_decl_stmt if required.
5542         (genrtl_for_stmt): Fix line-number handling.
5543         (genrtl_case_label): Handle cleanups.
5544         (genrtl_asm_stmt): Don't call combine_strings.
5545         (genrtl_compound_stmt): Simplify.
5546         (expand_stmt): Handle SCOPE_STMTs.
5547         * c-tree.h (struct lang_decl): New structure.
5548         (C_DECLARED_LABEL_FLAG): Remove.
5549         (c_begin_compound_stmt): Declare.
5550         (c_expand_decl_stmt): Likewise.
5551         (c_expand_start_case): Rename to c_start_case.
5552         (c_finish_case): New function.
5553         * c-typeck.c (start_init): Tweak setting of
5554         constructor_incremental.
5555         (c_expand_asm_operands): Tweak error-handling.  Add to the
5556         statement-tree.
5557         (c_expand_return): Add to the statement-tree.
5558         (c_expand_start_case): Rename to ...
5559         (c_start_case): ... this.
5560         (struct c_switch): New type.
5561         (switch_stack): New variable.
5562         (do_case): Simplify.
5563         (c_finish_case): New function.
5564         * dependence.c: Include expr.h.
5565         (enum dependence_type): Change spelling of enumerals.
5566         (check_node_dependence): Adjust.
5567         * expr.h (lang_safe_from_p): Declare.
5568         (safe_from_p): Likewise.
5569         * expr.c (lang_safe_from_p): New variable.
5570         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
5571         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
5572         * toplev.c (rest_of_decl_compilation): Robustify.
5573         * tree.c (contains_placeholder_p): Likewise.
5574         * Makefile.in: Update dependencies.
5575         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
5576         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
5577         (objc_expand_function_end): New function.
5578         (finish_method_def): Use it.
5579         (init_objc): Initialize more language-specific hooks.
5580         * objc/Make-lang.in: Update dependencies.
5581
5582 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
5583
5584         * configure.in: Define macros that affect features before
5585         testing for features.  Don't define _XOPEN_SOURCE.
5586         * configure: Regenerated.
5587         * config.in: Regenerated.
5588
5589 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
5590
5591         * rtlanal.c (rtx_varies_p): Volatile asms vary.
5592         (rtx_unstable_p): Restructure code.  Volatile asms
5593         are unstable.
5594
5595 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5596
5597         * function.h (no_debugging_symbols): New field.
5598         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
5599         Initialize no_debugging_symbols.
5600         (output_inline_function): Save and restore write_symbols and set from
5601         no_debugging_symbols.
5602         * toplev.c (rest_of_compilation): Call save_for_inline.
5603         * tree.h: Update comment.
5604
5605         * stor-layout.c (place_field): Don't do anything if field or
5606         its type are ERROR_MARK.
5607
5608 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
5609
5610         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
5611         (read_include_file): Ensure inc->mmaped is initialized.
5612
5613 2000-09-16  Richard Henderson  <rth@cygnus.com>
5614
5615         * cppiles.c (purge_cache): Use PTR not caddr_t.
5616
5617 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
5618
5619         * gcc.c: In description for %{<S}, say the option removed is -S.
5620         * invoke.texi (Spec Files): Ditto.
5621
5622 2000-09-16  Andreas Jaeger  <aj@suse.de>
5623
5624         * configure.in: Always define _GNU_SOURCE to make interfaces
5625         visible that were hidden by only defining _GNU_SOURCE.
5626         * configure: Regenerated.
5627
5628 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
5629
5630         * cpplex.c (push_macro_context): Set an argument's level after
5631         calling parse_args.  We could loop infinitely otherwise.
5632
5633 2000-09-15  Tom Tromey  <tromey@cygnus.com>
5634
5635         * configure, config.in: Rebuilt.
5636         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
5637
5638 2000-09-15  Greg McGary  <greg@mcgary.org>
5639
5640         * cppmacro.c (check_trad_stringification): Check token
5641         text pointers against limit before dereferencing.
5642
5643 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
5644
5645         * c-common.c (format_wanted_type): New structure.
5646         (check_format_types): New function.
5647         (check_format_info): Pass all checking of types of format
5648         arguments, including width and precision arguments, to this new
5649         function.
5650
5651 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5652
5653         * BUGS: Remove file.
5654
5655 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
5656
5657         * config/alpha/alpha.c (override_options): ev6 cache latencies
5658         from Richard Henderson.  Don't allow -mmemory-latency=L0.
5659
5660         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
5661         (TARGET_OPTIONS): Add tune=.
5662         (alpha_tune_string): Declare.
5663         * config/alpha/alpha.c (override_options): Add cpu_table.
5664         Use alpha_cpu_string first to set both alpha_cpu and target_flags
5665         and then alpha_tune_string to set alpha_cpu only.
5666         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
5667         * config/alpha/elf.h (ASM_FILE_START): Likewise.
5668         * config/alpha/osf.h (ASM_FILE_START): Likewise.
5669         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
5670
5671 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5672
5673         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
5674         Remove.
5675         (ix86_comparison_operator, ix86_cc_mode): Declare
5676         * i386.h (CCGC, CCGCO): New modes.
5677         (SELECT_CC_MODE): Move offline to ....
5678         * i386.c (ix86_cc_mode): .... here; use new modes.
5679         (ix86_comparison_operator): New.
5680         (fcmov_comparison_operator): Ensure proper mode.
5681         (put_condition_mode): More sanity checking.
5682         (ix86_match_ccmode): Handle new modes.
5683         (ix86_expand_fp_compare): GEU requires CCmode.
5684         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
5685         doing it by hand.
5686         * i386.md (cmp?i_ccz_1): Remove
5687         (cmp?i_ccno_1): Use ix86_match_ccmode.
5688         (cmp?i_minus_1): New.
5689         (cmpsi_1): New expander.
5690         (cmpqi_ext_1): Use match_ccmode
5691         (cmpqi_ext_3): New expander.
5692         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
5693         (cmpqi_ext_4): Use match_ccmode.
5694         (add?i_?): Use match_ccmode.
5695         (add?i_6): New.
5696         (test?i_ccz_1): Remove
5697         (test?i_1): New.
5698         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
5699         (testqi_ext_0): Use ix86_match_ccmode.
5700         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
5701         (xorqi_cc_ext_1): New expander.
5702         (shift patterns): Use CCGOCmode for all shifts except for sar.
5703         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
5704         (setcc_3, jcc_3, miv?icc_c): Remove.
5705
5706 2000-09-15  Will Cohen  <wcohen@redhat.com>
5707
5708         * dwarf2out.c (add_const_value_attribute): Changed array into a
5709         xmalloced object, so it exists after function exit.
5710         (free_AT): Added case for dw_val_class_float to free allocated
5711         memory.
5712
5713 2000-09-15  Kazu Hirata  <kazu@hxi.com>
5714
5715         * config/i386/i386.md: Fix a comment typo.
5716         * gcc.c: Fix formatting.
5717
5718 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
5719
5720         * optabs.c (emit_libcall_block): If target is a user variable,
5721         copy to a temporary first.
5722         * expr.c (convert_move): When generating a libcall, make a libcall
5723         block.
5724         * calls.c (emit_library_call_value_1): Don't create a libcall
5725         sequence here; our caller will in most cases do it.
5726
5727         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
5728         MACH into FPUL.
5729         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
5730         * sh.md (reload_outsf): Generate recognizable patterns for
5731         TARGET_SH3E.
5732         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
5733         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
5734         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
5735         truncdfsf2_i4): Change not to use explicit references to fpul.
5736         (floatsisf2_ie): Remove USE of fpscr.
5737         (floatsisf2): Change default expansion to match this.
5738         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
5739         unused patterns.
5740
5741 2000-09-15  Richard Henderson  <rth@cygnus.com>
5742
5743         * expmed.c (store_bit_field): Consider naturally aligned
5744         memory for direct reference.
5745
5746 2000-09-15  Richard Henderson  <rth@cygnus.com>
5747
5748         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
5749         AND addresses into alias set 0.
5750         (alpha_expand_unaligned_store): Likewise.
5751         (alpha_expand_unaligned_load_words): Likewise.
5752         (alpha_expand_unaligned_store_words): Likewise.
5753
5754 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
5755
5756         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
5757         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
5758         is defined.
5759         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
5760         rsize of UNITS_PER_WORD.
5761
5762 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
5763
5764         * cpplex.c (ON_REST_ARG): Correct the test.
5765         (maybe_paste_with_next): Duplicate a token that fail pasting,
5766         and clear its PASTE_LEFT flag, so that nested pasting attempts
5767         do not occur.
5768
5769 2000-09-14  Richard Henderson  <rth@cygnus.com>
5770
5771         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
5772         * cse.c (rtx_cost): Likewise.
5773         * optabls.c (expand_binop): Likewise.
5774         (expand_twoval_binop, prepare_cmp_insn): Likewise.
5775         * regclass.c (copy_cost): Likewise.
5776         * reload1.c (reload_cse_move2add): Likewise.
5777
5778 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
5779
5780         * c-parse.in (reswords): Add _Complex.
5781
5782 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5783
5784         * gcc.1: Delete documentation for -undef preprocessor option.
5785
5786 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
5787
5788         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5789         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
5790         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
5791         Remove undefine before config/elfos.h.
5792         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
5793
5794 2000-09-14  Kazu Hirata  <kazu@hxi.com>
5795
5796         * invoke.texi (H8/300 Options): Add -ms2600.
5797         * config/h8300.c (h8300_init_once): Output an error when -ms2600
5798         is used without -ms.
5799         * config/h8300.h (TARGET_MAC): New.
5800         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
5801         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
5802         machine other than H8/S2600.
5803         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
5804         of the H8/S2000.
5805
5806 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
5807
5808         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
5809         pseudos that refer to the original pseudos, not only to their
5810         equivalent memory locations.
5811
5812 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5813
5814         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
5815         when making new MEM.
5816
5817         * Makefile.in (LN): Remove duplicate definition.
5818
5819 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
5820
5821         From Joern Rennecke:
5822         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
5823         on an insn and function_invariant_p returns nonzero for the source,
5824         add a REG_EQUAL note.
5825
5826 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
5827
5828         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
5829         conflict with frame_pointer_rtx.
5830
5831 2000-09-13  Kazu Hirata  <kazu@hxi.com>
5832
5833         * loop.c: Fix formatting.
5834         * loop.h: Likewise.
5835
5836 2000-09-13  Richard Henderson  <rth@cygnus.com>
5837
5838         * config/ia64/ia64.md (divsf3): New.
5839         (divsf3_internal_lat, divsf3_internal_thr): New.
5840         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
5841         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
5842         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
5843         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
5844         (nmadddf4_alts, nmadddf4_trunc): New.
5845         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
5846         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
5847         (multf3_truncsf_alts, multf3_truncdf_alts): New.
5848         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
5849         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
5850         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
5851         (nmaddtf4_truncdf_alts): New.
5852         (recip_approx): Don't predicate.
5853
5854 2000-09-13  Richard Henderson  <rth@cygnus.com>
5855
5856         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
5857
5858 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5859
5860         * flags.h (flag_dump_rtl_in_asm): Declare.
5861         * toplev.c (flag_dump_rtl_in_asm): Define.
5862         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
5863         if -dP is specified.
5864         * rtl.h (print_rtx_head): Declare.
5865         * print-rtl.c (print_rtx_head): Define.
5866         (print_rtx): Print the string pointed to by print_rtx_head
5867         at beginning of each dump line.
5868         (print_rtl): Likewise.
5869         (print_rtl_single): Likewise.
5870         * final.c (final_scan_insn): Dump the insn in the assembly
5871         file for debugging.
5872         * gcc.1: Document -dP option.
5873         * invoke.texi (Debugging Options): Likewise.
5874
5875 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5876
5877         * md.texi (Machine Constraints): Document the 68HC11 constraints.
5878         * install.texi (Configurations): Document the 68HC11&68HC12 port.
5879         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
5880
5881 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
5882
5883         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
5884         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
5885         (*clrstrqi): Likewise.
5886         (xorhi3,xorsi3,absqi2): Likewise.
5887         (one_cmplhi2,one_cmplsi2): Likewise.
5888         (addsi3): Two stupid constraint alternatives removed.
5889         (extendhisi2): Use `movw' for enhanced avr cores.
5890         (zero_extendhisi2): Likewise.
5891
5892 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
5893
5894         * alias.c (find_base_term): Use frame_pointer_rtx
5895         when handling an ADDRESSOF.
5896
5897         * cse.c (canon_hash): Handle USE of BLKmode memory.
5898         (cse_insn): Outgoing arguments for a libcall don't
5899         affect any recorded expressions.
5900
5901 2000-09-12  Tom Tromey  <tromey@cygnus.com>
5902
5903         * configure, config.in: Rebuilt.
5904         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
5905
5906 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
5907
5908         * c-lex.c (lex_string): Use charwidth to compute bytemask.
5909         * expr.c (expand_expr): Don't optimize constant array references
5910         initialized with wide string constants.
5911
5912 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
5913
5914         * loop.c (note_set_pseudo_multiple_uses): Correct.
5915
5916 2000-09-12  Jim Wilson  <wilson@cygnus.com>
5917
5918         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
5919         else block, and X has side-effects, then fail.
5920
5921 2000-09-12  Greg McGary  <greg@mcgary.org>
5922
5923         * config/mips/mips-protos.h
5924         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
5925         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
5926         (PREDICATE_CODES): Add "trap_cmp_op".
5927         * config/mips/mips.c
5928         (trap_cmp_op, mips_gen_conditional_trap): New functions.
5929         * config/mips/mips.md (trap, conditional_trap): New patterns.
5930
5931 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
5932
5933         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
5934         pointer.
5935
5936 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5937
5938         * builtins.c (built_in_decls): New array.
5939         (expand_builtin_fputs): New function.
5940         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
5941
5942         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
5943
5944         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
5945
5946         * tree.h (built_in_decls): New array.
5947
5948 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
5949
5950         * convex.md: Use "+" instead of "=" for outputs wrapped in a
5951         STRICT_LOW_PART.
5952         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
5953
5954 2000-09-12  Kazu Hirata  <kazu@hxi.com>
5955
5956         * haifa-sched.c: Fix formatting.
5957
5958         * genattrtab.c: Fix formatting.
5959
5960         * unroll.c: Fix formatting.
5961
5962 2000-09-12  Bruce Korb  <bkorb@gnu.org>
5963
5964         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
5965         remove obsolete code
5966         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
5967         * fixinc/fixincl.tpl: make non-exported arrays static scope
5968         * fixinc/fixincl.x: regenerate
5969         * fixinc/fixlib.h: Use PARAMS, not _P_
5970         * fixinc/fixtests.c: make a type for the test proc & use it
5971         * fixinc/server.h: Use PARAMS, not _P_
5972
5973 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5974
5975         * c-typeck.c (process_init_element): Avoid union init warnings on
5976         floating point zero.  Don't crash on unions containing structs.
5977
5978 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
5979
5980         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
5981         general_movsrc_operand, and remove CONST_INT from
5982         general_movdst_operand.
5983
5984 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
5985
5986         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
5987         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
5988         regs with a higher cost.
5989         (preferrable): Deal with cases where either cost or regcost is
5990         MAX_COST.
5991         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
5992         regcost values.
5993         (COSTS_N_INSNS): Move definition...
5994         * rtl.h: ...here.
5995         (MAX_COST): New macro.
5996         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
5997         constant.
5998
5999 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
6000
6001         * c-common.h (genrtl_clear_out_block): Remove.
6002         * c-semantics.c (genrtl_clear_out_block): Remove.
6003         (genrtl_while_stmt): Don't call it.
6004         (genrtl_for_stmt): Likewise.
6005
6006 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
6007
6008         * cppfiles.c: Move all default-#defines to top of file.
6009         (open_include_file): Replace by lookup_include_file.
6010         (read_with_read, read_file): Merged into read_include_file.
6011         (stack_include_file, purge_cache): New functions.
6012         (close_cached_fd): Delete.
6013         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
6014         Cache the in-memory buffer, not the file descriptor.
6015
6016         * cpphash.h (struct include_file): Add buffer, st, refcnt,
6017         mapped fields.
6018         (xcnew): New utility macro.
6019         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
6020         * cpplib.h (struct cpp_buffer): Remove mapped field.
6021
6022 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
6023
6024         * cpplex.c (parse_string): Accept backslash space newline as a
6025         line continuation.
6026         (lex_line): Likewise.
6027         (_cpp_get_token): Remove hard limit on macro nesting.
6028
6029 2000-09-12  Philipp Thomas  <pthomas@suse.de>
6030
6031         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
6032         * configure: Rebuilt.
6033
6034 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
6035
6036         * flow.c (split_block): Fix update of registers live at
6037         end of split block.
6038
6039 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6040
6041         * i386.md (add?i_3, add?i_5): New.
6042         (add?i_4): Rename from add?i_3;  Fix compare pattern.
6043         (sub?i_3, xor?i_3, ior?i_3): New.
6044
6045         * genrecog.c (write_tree): Output code to clear insn_extract cache.
6046         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
6047         instead of extract_insn and extract_constrain_insn_cache instead of
6048         extract_insn and constrain_operands.
6049         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
6050         New functions.
6051         (extract_insn): Clear which_alternative.
6052         (constrain_operands): Set which_alternative to -1 when failed.
6053         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
6054         Declare.
6055
6056 2000-09-11  Matthew Hiller  <hiller@redhat.com>
6057
6058         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
6059         on operand 0 to '+'.
6060         (movstricthi): Likewise.
6061
6062 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6063
6064         * loop.h (LOOP_IVS): New macro.
6065         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
6066         (struct loop_ivs): New.
6067         (struct loop_info): Add ivs field.
6068         (reg_iv_type, reg_iv_info): Delete prototype.
6069         (reg_biv_class, loop_iv_list): Likewise.
6070         * loop.c (record_biv, find_life_end): Pass loop argument.
6071         (reg_iv_type): Remove global array and use
6072         field in loop_regs structure within loop_ivs structure.
6073         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
6074         (first_increment_giv, last_increment_giv): Use entry in
6075         loop_ivs structure.
6076         (record_initial): Pass ivs pointer.
6077         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
6078
6079 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6080
6081         * loop.h (LOOP_REGS): New macro.
6082         (struct loop_regs): New.
6083         (struct loop_info): Add regs field.
6084         * loop.c (set_in_loop): Remove global array and store
6085         in loop_regs structure as part of loop_info structure.
6086         (n_times_set, may_not_optimize): Likewise.
6087         (reg_single_usage, moved_once): Likewise.
6088         (count_one_set): Add regs argument.
6089         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
6090         (set_pseudo_multiple_uses): Pass regs pointer.
6091
6092 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6093
6094         * unroll.c (iteration_info): Subsume into loop_iterations.
6095         * loop.h (loop_info): New field iv.
6096
6097 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6098
6099         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
6100         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
6101         (flow_loops_update): New prototype.
6102         (flow_loops_find): Add flags to prototype.
6103         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
6104         * flow.c (flow_loop_pre_header_scan): New.
6105         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
6106         (flow_loop_free): Free pre-header root and trace and exit dominators.
6107         (flow_loops_find): New argument flags.
6108         (flow_loops_update): New function.
6109         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
6110
6111 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6112
6113         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
6114         * flow.c (split_block, update_bb_for_insn): New functions.
6115
6116 2000-09-11  Richard Henderson  <rth@cygnus.com>
6117
6118         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
6119
6120 2000-09-11  Richard Henderson  <rth@cygnus.com>
6121
6122         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
6123         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
6124         (ia64_override_options): Prevent optimizing division for both
6125         latency and throughput.
6126         (rtx_needs_barrier): Handle frcpa.
6127         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
6128         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
6129         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
6130         (TARGET_SWITCHES): Add -minline-divide-min-latency and
6131         -minline-divide-max-throughput.
6132         (PREDICATE_CODES): Update.
6133         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
6134         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
6135         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
6136         (extendsftf2): Likewise.
6137         (extenddftf2): Likewise.
6138         (fix_trunctfdi2_alts): New.
6139         (fixuns_trunctfdi2_alts): New.
6140         (madd*4): Rename from madd*3.
6141         (divsi3, modsi3, udivsi3, umodsi3): New.
6142         (divsi3_internal): New.
6143         (divdi3, moddi3, udivdi3, umoddi3): New.
6144         (divdi3_internal_lat, divdi3_internal_thr): New.
6145         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
6146         (recip_approx): New.
6147
6148 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
6149
6150         * print-rtl.c (debug_call_placeholder_verbose): New variable.
6151         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
6152         set.
6153         * integrate.c (copy_rtx_and_substitute): Don't share
6154         LEAF_REG_REMAPpable registers with the inlined function.  Don't
6155         share the function value with calling sequences.
6156
6157 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
6158
6159         * c-decl.c (do_case): Fix a typo.
6160
6161         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
6162         to a if the comparison is floating mode and not -ffast-math.
6163         * simplify-rtx.c (simplify_ternary_operation): Likewise.
6164
6165 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
6166
6167         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
6168         gen_ic_invalidate_line.
6169
6170 2000-09-11  Philip Blundell  <pb@futuretv.com>
6171
6172         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
6173
6174 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
6175
6176         * install.texi (LANGUAGES): Update to include new languages.
6177         * INSTALL: Rebuilt.
6178
6179 2000-09-11  DJ Delorie  <dj@redhat.com>
6180
6181         * gcc.c (main): Don't warn about unused -B prefixes
6182         (unused_prefix_warnings): remove
6183
6184 2000-09-11  Kazu Hirata  <kazu@hxi.com>
6185
6186         * final.c: Fix formatting.
6187
6188         * integrate.c: Fix formatting.
6189
6190 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
6191
6192         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
6193
6194 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
6195
6196         * reload.c (regno_clobbered_p): Fix thinko in previous change.
6197
6198 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6199
6200         * gcc.1: Document 68hc11 specific options.
6201
6202 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
6203
6204         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
6205         (TARGET_LONG_DOUBLE_128): Define.
6206         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
6207         (LONG_DOUBLE_TYPE_SIZE): Redefine.
6208         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
6209         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
6210         of __LONG_DOUBLE_128__.
6211         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
6212         passed.
6213         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
6214         (CPP_SYSV_DEFAULT_SPEC): Define.
6215         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
6216         (INIT_TARGET_OPTABS): Define.
6217
6218         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
6219         (RS6000_UITRUNC): Likewise.
6220         (INIT_TARGET_OPTABS): New macro.
6221         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
6222         (trunc_defined): Delete.
6223         (output_prolog): Don't output .extern definitions for fp->int
6224         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
6225         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
6226         (trunc_defined): Delete.
6227         (RS6000_ITRUNC): Moved to aix.h.
6228         (RS6000_UITRUNC): Likewise.
6229         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
6230         only emit a libcall.
6231         (fixuns_truncdfsi2): Delete.
6232         (trunc_call): Delete.
6233         (trunc_call_rtl): Delete.
6234
6235 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
6236
6237         * varasm.c (make_decl_rtl): Restore leading star on
6238         DECL_ASSEMBLER_NAME set for decls with an asmspec.
6239
6240 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
6241
6242         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
6243         won't give a spurious error for '#pragma pack()'.  Simplify
6244         control flow for readability.  'reset' action is not necessary.
6245
6246 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
6247
6248         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
6249         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
6250         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
6251         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
6252
6253         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
6254         profile.c, sdbout.c, tradcif.y, tree.c:
6255         Include defaults.h if not already included.
6256         Don't define the above macros.
6257
6258         * Makefile.in: Update dependencies.
6259
6260 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
6261
6262         * c-common.h (add_stmt): Change prototype.
6263         (RECHAIN_STMTS): New macro.
6264         (CASE_LABEL_DECL): Likewise.
6265         (genrtl_case_label): Change prototype.
6266         (c_expand_start_case): Remove prototype.
6267         (build_case_label): Change prototype.
6268         (decl_constant_value): Declare.
6269         * c-common.c (check_case_value): Handle C++'s extensions to C
6270         semantics.
6271         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
6272         field.
6273         * c-parse.in (stmt): Adjust handling of return statements and case
6274         laels.
6275         * c-semantics.c (add_stmt): Return the new statement.
6276         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
6277         returned expression.  Directly generate RTL, rather than calling
6278         c_expand_return.
6279         (genrtl_switch_stmt): Don't call c_expand_start_case.
6280         (build_case_label): Take the LABEL_DECL as input, too.
6281         (genrtl_case_label): Just call add_case_node.
6282         (expand_stmt): Adjust calls to genrtl_return_stmt and
6283         genrtl_case_label.
6284         * c-tree.h (c_expand_start_case): Declare.
6285         * c-typeck.c (decl_constant_value): Give it external linkage.
6286         (c_expand_return): Don't call expand_return or expand_null_return;
6287         use genrtl_return_stmt instead.
6288         * stmt.c (struct nesting): Remove num_ranges field.
6289         (add_case_node): Give it external linkage.
6290         (expand_start_case): Don't set num_ranges.
6291         (expand_start_case_dummy): Don't clear it.
6292         (pushcase): Rely on add_case_node to handle `default' labels.
6293         (add_case_node): Handle `default' labels.
6294         * tree.c (tree_int_cst_compare): New function.
6295         * tree.h (tree_int_cst_compare): Declare.
6296         (add_case_node): Likewise.
6297
6298 2000-09-10  Richard Henderson  <rth@cygnus.com>
6299
6300         * c-parse.in: Revert last change.
6301         (init_reswords): Do not enter disabled keywords into the ridpointers
6302         table, modulo objc weirdness.
6303         (_yylex): Return the canonical spelling for a keyword.
6304
6305 2000-09-10  Philip Blundell  <philb@gnu.org>
6306
6307         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
6308         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
6309
6310 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
6311
6312         * alias.c (find_base_term): Handle ADDRESSOF.
6313         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
6314
6315 2000-09-10  Denis Chertykov  <denisc@overta.ru>
6316
6317         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
6318         outputting templates with many lines.
6319
6320 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6321
6322         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
6323         to decide whether 64-bit support must be generated.
6324
6325 2000-09-10  Richard Henderson  <rth@cygnus.com>
6326
6327         * c-parse.in (asm patterns): Fix volatile check.
6328
6329 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6330
6331         * cppmacro.c (check_trad_stringification): New function.
6332         (save_expansion): If -Wtraditional, warn about stringification of
6333         macro arguments.
6334
6335 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
6336
6337         * loop.h (struct loop_mem_info): Move from loop.c
6338         (struct loop_info): Add fields store_mems, mems, mems_idx,
6339         mems_allocated, unknown_address_altered,
6340         unknown_constant_address_altered, num_mem_sets, and
6341         first_loop_store_insn.
6342
6343         * loop.c (loop_store_mems): Replace with field in loop_info struct.
6344         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
6345         (unknown_address_altered, unknown_constant_address_altered): Likewise.
6346         (num_mem_sets): Likewise.
6347         (replace_loop_mems, replace_loop_regs): New.
6348         (struct loop_replace_args): New.
6349         (load_mems): Use replace_loop_mems.
6350         (try_copy_prop): Use replace_loop_regs.
6351         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
6352
6353 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6354
6355         * configure.in: Recognize m6811-elf and m6812-elf.
6356         * configure: Regenerate.
6357
6358 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
6359
6360         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
6361         to operand_subword.
6362
6363 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
6364
6365         * loop.c (struct movables): New.
6366         (num_movables): Move into struct movables.
6367         (the_movables): Change type to struct movables.
6368         (ignore_some_movables): Change struct movable arg to struct movables.
6369         (force_movables, combine_movables, regs_match_p): Likewise.
6370         (rtx_equal_for_loop_p, move_movables): Likewise.
6371         (scan_loop): Change movables to be of type struct movables.
6372         Replace last_movable with field in movables structure.
6373
6374 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
6375
6376         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
6377         (init_pragma): Avoid warning if pfile happens to be unused.
6378         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
6379         define init_pragma to nothing.  Always prototype
6380         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
6381
6382         * c-lex.c (process_directive): Always call dispatch_pragma.
6383         Initialize entering_c_header to 0.
6384
6385 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6386
6387         * config/m68hc11/m68hc11.md: New file, machine description for
6388         68HC11 & 68HC12.
6389         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
6390         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
6391         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
6392         * config/m68hc11/m68hc11-protos.h: New file.
6393         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
6394         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
6395         * config/m68hc11/xm-m68hc11.h: New file, target defs.
6396         * config/m68hc11/larith.asm: New file, libgcc routines.
6397
6398 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6399
6400         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
6401         (FPBIT_FUNCS): Add _usi_to_sf.
6402         * config/fp-bit.c (usi_to_float): New function.
6403         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
6404         (usi_to_float): Add appropriate #define.
6405
6406 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
6407
6408         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
6409         new functions.
6410         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
6411         * i386.md (attr "type"): Add sse and mmx types.
6412         (attr "memory"): Handle them without a crash.
6413         (movsi_1, movdi_2): Allow MMX regs.
6414         (movdi splits): Don't split moves involving MMX regs.
6415         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
6416         (movv4sf_internal, movv4si_internal, movv8qi_internal,
6417         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
6418         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
6419         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
6420         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
6421         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
6422         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
6423         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
6424         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
6425         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
6426         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
6427         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
6428         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
6429         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
6430         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
6431         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
6432         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
6433         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
6434         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
6435         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
6436         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
6437         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
6438         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
6439         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
6440         mmx_clrdi): New patterns.
6441
6442 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
6443
6444         * arm.c: Don't include tm.h directly.
6445
6446 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6447
6448         * recog.c (validate_replace_rtx_1): Fix confusion about equality
6449         testing; simplify subregs of constants and nested subregs.
6450
6451 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
6452
6453         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
6454
6455 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
6456
6457         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
6458         VEC_CONCAT.
6459         * rtl.texi (description of USE): Add note about possible pitfalls
6460         with this rtx.
6461         From Richard Henderson:
6462         * reload1.c (choose_reload_regs): Compute need_mode properly.
6463
6464 2000-09-07  Richard Henderson  <rth@cygnus.com>
6465
6466         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
6467         (__modsi3, __umodsi3): Likewise.
6468         (__udivsi3): Likewise.  Normalize the TFmode values.
6469
6470 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
6471
6472         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
6473         with a prototype.
6474         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
6475         warning.
6476
6477 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
6478
6479         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
6480         (cmpeqdi_t): Add output pattern.
6481         (cmpeqdi_t+1): Don't split when not optimizing.
6482         Restore proper splitting operation.
6483
6484 2000-09-07  Richard Henderson  <rth@cygnus.com>
6485
6486         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
6487         do not call dispatch_pragma.
6488
6489 2000-09-07  Jim Wilson  <wilson@cygnus.com>
6490
6491         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
6492         to CLASS_CANNOT_CHANGE_MODE.
6493         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
6494         mode classes are different.
6495
6496 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
6497
6498         * cpplib.h (struct cpp_options): Add user_label_prefix member,
6499         left out of commit which removed cppulp.c.
6500
6501 2000-09-07  Richard Henderson  <rth@cygnus.com>
6502
6503         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
6504         after switch for CASE_DROPS_THROUGH.
6505
6506 2000-09-07  Richard Henderson  <rth@cygnus.com>
6507
6508         * loop.c (strength_reduce): Call check_ext_dependant_givs.
6509         Properly extend the biv initial value for the giv.
6510         (record_biv): Zero ext_dependant.
6511         (record_giv): New argument ext_val.  Update all callers.
6512         (general_induction_var): Likewise.
6513         (consec_sets_giv): Likewise.
6514         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
6515         a sign-extend, zero-extend, or truncate.
6516         (combine_givs_p): Make sure modes are compatible.
6517         (check_ext_dependant_givs): New.
6518         (extend_value_for_giv): New.
6519         * loop.h (struct induction): Add ext_dependant.
6520         * unroll.c (iteration_info): Extend the biv initial value for the giv.
6521         (find_splittable_givs): Likewise.
6522         (final_giv_value): Likewise.
6523
6524 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
6525
6526         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
6527         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
6528         definitions from cpplib.h.
6529         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
6530         already done it.
6531         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
6532         documentation for REGISTER_TARGET_PRAGMAS.
6533
6534         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
6535         default-pragma callback to implement -Wunknown-pragmas if
6536         USE_CPPLIB.
6537         * c-parse.in: Move all includes to top of file.
6538         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
6539         tm_p.h.
6540         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
6541         warning.
6542         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
6543
6544         * arm.h, arm-protos.h, arm.c,
6545           c4x.h, c4x-protos.h, c4x.c,
6546           h8300.h, h8300-protos.h, h8300.c,
6547           i370.h, i370-protos.h, i370.c,
6548           i960.h, i960-protos.h, i960.c,
6549           sh.h, sh-protos.h, sh.c,
6550           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
6551         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
6552
6553         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
6554         multiple include guard.
6555         * i370.md (untyped_call): Use GEN_CALL.
6556         (umodsi3): Remove unused variable.
6557         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
6558         * v850.c (output_move_single, output_move_double): Constify
6559         return value.
6560         (print_operand): Constify a char *.
6561         * v850.h (struct small_memory_info): Constify name member.
6562
6563 2000-09-07  Kazu Hirata  <kazu@hxi.com>
6564
6565         * config/h8300.h: Fix comment typos.
6566         * config/h8300/h8300.md: Likewise.
6567         * config/h8300/lib1funcs.asm: Likewise.
6568
6569 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
6570
6571         * Makefile.in: Remove references to cppulp.{c,o}.
6572         * cppinit.c (initialize_builtins, cpp_start_read,
6573         cpp_handle_option): Update to use cpp_options structure.
6574         * cppulp.c: Remove.
6575
6576 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
6577
6578         * c-common.c (time_char_table): Allow %#b and %#h.
6579
6580 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6581
6582         * reorg.c (find_end_label): If the basic block reorder pass moves the
6583         return insn to some other place try to locate it again and put our
6584         end_of_function_label there.
6585         * reorg.c (relax_delay_slots): Check if find_end_label created a
6586         new label that invalidates the current optimazation.
6587
6588 2000-09-07  Catherine Moore  <clm@redhat.com>
6589
6590         * unroll.c (unroll_loop): Check for unconditional jumps
6591         to loop continuation.  Delete if n_iterations is 1.
6592         (ujump_to_loop_cont): New routine.
6593
6594 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
6595
6596         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
6597         MODE_VECTOR_FLOAT.
6598         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
6599         to handle multiword modes correctly.  All callers and the declaration
6600         changed.
6601
6602 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
6603
6604         * c-common.h (prep_stmt): Declare.
6605         (lang_expand_stmt): Likewise.
6606         * c-decl.c (lang_expand_stmt): Remove.
6607         * c-semantics.c (lang_expand_stmt): Define.
6608         (prep_stmt): New function.
6609         (expand_stmt): Handle common statement types here.
6610
6611 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
6612
6613         * configure.in (sh-*-linux*): Added.
6614         * configure: Rebuilt.
6615         * config/sh/t-linux: New file.
6616         * config/sh/sh.h (USERMODE_BIT): Define.
6617         (TARGET_USERMODE): Likewise.
6618         (TARGET_SWITCHES): New switches for the bits above.
6619         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
6620         * config/sh/linux.h: New file.
6621         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
6622         underscore on linux.
6623         (L_sdivsi3, L_udivsi3): Define for linux.
6624         (L_ic_invalidate): Define.
6625         * invoke.texi (SH Options): Document -musermode.
6626
6627 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
6628
6629         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
6630         CSE unless generating PIC.
6631
6632         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
6633         the PIC register.
6634
6635 2000-09-06  H.J. Lu  (hjl@gnu.org)
6636
6637         * Makefile.in (clean_s1): Depend on stage_b.
6638         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
6639         stage2. They are used for "make compare".
6640
6641 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
6642
6643         Move statement-tree facilities from C++ to C front-end.
6644         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
6645         (void_zero_node): New macro.
6646         (struct stmt_tree_s): New type.
6647         (stmt_tree): New typedef.
6648         (struct language_function): New type.
6649         (last_tree): New macro.
6650         (last_expr_type): Likewise.
6651         (walk_tree_fn): New typedef.
6652         (current_stmt_tree): New function.
6653         (begin_stmt_tree): Likewise.
6654         (add_stmt): Likewise.
6655         (finish_stmt_tree): Likewise.
6656         (statement_code_p): Likewise.
6657         (lang_statement_code_p): New variable.
6658         (walk_stmt_tree): New function.
6659         (STMT_IS_FULL_EXPR_P): New macro.
6660         * c-common.c (lang_statement_code_p): New variable.
6661         (c_common_nodes_and_builtins): Initialize void_zero_node.
6662         (statement_code_p): New function.
6663         (walk_stmt_tree): Likewise.
6664         * c-decl.c (language_function): Rename to ...
6665         (c_language_function): ... this.  Include language_function.
6666         (push_c_function_context): Adjust accordingly.
6667         (pop_c_function_context): Likewise.
6668         (mark_c_function_context): Likewise.
6669         (current_stmt_tree): Define.
6670         * c-semantics.c (begin_stmt_tree): New function.
6671         (add_stmt): Likewise.
6672         (prune_unused_decls): Likewise.
6673         (finish_stmt_tree): Likewise.
6674
6675 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6676
6677         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
6678
6679 2000-09-06  Kazu Hirata  <kazu@hxi.com>
6680
6681         * calls.c: Fix formatting.
6682
6683 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
6684
6685         * config/i386/i386.h (ADDRESS_COST): Fix typo.
6686
6687 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
6688
6689         Integrated preprocessor.
6690
6691         * Makefile.in: Remove all references to c-parse.gperf,
6692         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
6693         generating c-parse.c.  Update dependencies.
6694         * c-parse.gperf, c-gperf.h: Delete.
6695
6696         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
6697         yy_lim, or yy_get_token.  Don't define get_directive_line if
6698         USE_CPPLIB.
6699         * c-common.h: Add multiple include guard.  Define RID values
6700         for every keyword in C, C++, and Objective C.  Put all the
6701         modifiers first.
6702         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
6703         * c-decl.c (c_decode_option): Handle -lang-objc here.
6704         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
6705         (grokdeclarator): Adjust for new RID scheme.
6706         (extract_interface_info): New stub.
6707         * c-lang.c: Don't declare yy_cur or parse_options.
6708         (lang_init_options): Call cpp_init.  Don't call
6709         cpp_options_init.
6710         (lang_init): Don't call check_newline if USE_CPPLIB.
6711
6712         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
6713         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
6714         rendered unnecessary by new architecture.  Move routines not
6715         shared with C++ to c-parse.in.  Maintain a local idea of the
6716         line number.    Handle C++ as well as C.
6717         [USE_CPPLIB]: Declare and register callbacks for #ident and
6718         for entering/leaving files.
6719         (init_c_lex, c_lex): Are now the entry points to this file.
6720         (check_newline): Break out directive handling to
6721         process_directive.
6722         (read_ucs, is_extended_char, utf8_extend_token): Moved here
6723         from C++ front end.
6724         (readescape, parse_float): Overhaul.
6725         (lex_number, lex_string, lex_charconst): Break out of c_lex
6726         (n'ee yylex).
6727         (get_fileinfo, update_header_times, dump_one_header,
6728         dump_time_statistics): New and/or moved here from C++.
6729         Support per-file data needed by C++ and per-header timing
6730         statistics (C++ only, at the moment).
6731         * c-lex.h: Update prototypes.  Add multiple include guard.
6732         * c-tree.h (struct lang_identifier): Add rid_code field.
6733         (C_IS_RESERVED_WORD, C_RID_CODE): New.
6734
6735         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
6736         reinit_parse_for_function and/or position_after_white_space.
6737         (save_filename, save_lineno): Look ahead before saving.
6738         (label -> identifier ':'): Save file and line before shifting ':'.
6739         (reservedwords): No need to call get_identifier.
6740         (init_parse, finish_parse, yyerror, yylex, yyprint,
6741         make_pointer_declarator): Are now here for C/ObjC.
6742         (rid_to_yy): Conversion table from RID constants to Yacc codes.
6743
6744         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
6745         #pragma registry.  Provide dummy implementation of that
6746         interface if !USE_CPPLIB.
6747         * c-pragma.h: Update to match.
6748
6749         * flags.h: Add multiple include guard.
6750         (flag_detailed_statistics): Moved here from C++.
6751         * toplev.c: Define flag_detailed_statistics.
6752
6753         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
6754         #if USE_CPPLIB.
6755         * timevar.def (TV_CPP, TV_LEX): New.
6756         * timevar.h: Add multiple include guard.
6757
6758         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
6759         #if USE_CPPLIB.
6760         * objc/objc-act.c: Don't mention yy_cur or parse_options.
6761         Initialize cpplib properly.  Force lineno to 0 after first
6762         call to check_newline.  Don't handle -lang-objc here.
6763         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
6764
6765 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
6766
6767         * rs6000.md: Correct function unit definitions for cr_logical and
6768         mtjmpr.
6769         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
6770         and use portable method for >=0 and floating point >=.  Remove
6771         associated matchers.
6772
6773 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
6774
6775         * extend.texi: Mark named return value extension as deprecated.
6776
6777 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
6778
6779         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
6780         the result.
6781
6782 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
6783
6784         * toplev.c (display_help): Fix thinko in documentation.
6785
6786         * diagnostic.h (output_buffer::indent_skip): New fields.
6787         (output_indentation): New macro.
6788
6789         * diagnostic.c (output_indent): New function.
6790         (output_set_prefix, clear_diagnostic_info): Use.
6791         (output_emit_prefix): Predict future indentation.
6792
6793 2000-09-06  DJ Delorie  <dj@redhat.com>
6794
6795         * Makefile.in (stage_*): add more dependencies to ensure parallel
6796         builds build correctly
6797
6798 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
6799
6800         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
6801         not bootstrap-lean_f.
6802
6803 2000-09-06  Andreas Schwab  <schwab@suse.de>
6804
6805         * mklibgcc.in: Emit rule for libgcc-stage-start.
6806         * Makefile.in (stage1-start, stage2-start, stage3-start,
6807         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
6808
6809 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
6810
6811         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
6812         (update_equiv_regs): Likewise, except for the mn10200 kludge.
6813         (combine_regs): Likewise.
6814
6815         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
6816         * cse.c: Include "basic-block.h".
6817         (struct table_elt): New field REGCOST.
6818         (CHEAP_REG): Delete macro.
6819         (COST): Return 0 for REGs.
6820         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
6821         (notreg_cost): Return 0 for appropriate SUBREGs.
6822         (COSTS_N_INSNS): Return N * 2.
6823         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
6824         SUBREGs.
6825         (CHEAPER): Use new function preferrable.
6826         (insert): Initialize REGCOST member.
6827         (find_best_addr): Use approx_reg_cost for estimation of register
6828         usage.
6829         (cse_insn): Likewise.
6830         * loop.c (iv_add_mult_cost): New function.
6831         (add_cost, shift_cost, mult_cost): Delete variables.
6832         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
6833         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
6834         Make code that detects autoinc opportunities slightly less optimistic.
6835         (simplify_giv_expr): If expression contains other reg that is also a
6836         giv, only increment benefit if this is the only use of that reg.
6837         (consec_sets_giv): Take that change into account.
6838         (combine_givs): Slightly more verbose output.
6839
6840         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
6841         not the cost of an equivalent shift.
6842         * sh-protos.h (addsubcosts): Declare.
6843         * sh.c (addsubcosts): New function.
6844         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
6845         (RTX_COSTS): Tweak.  Use addsubcosts.
6846         (ADDRESS_COST): Return higher cost for reg+reg addressing.
6847
6848 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
6849
6850         * config/rs6000/rs6000.c (validate_condition_mode): New function.
6851         (branch_comparison_operator): Call validate_condition_mode to
6852         abort rather than returning 0.
6853         (branch_positive_comparison_operator): New function.
6854         (scc_comparison_operator): Call validate_condition_mode to abort
6855         rather than returning 0.
6856         (ccr_bit): Call validate_condition_mode.  Update for
6857         new branch scheme.
6858         (print_operand): Delete %C modifier.  Update %E case
6859         to use EQ bit not SO bit.
6860         (rs6000_reverse_condition): New function.
6861         (rs6000_generate_compare): New function.
6862         (rs6000_emit_sCOND): New function.
6863         (rs6000_emit_cbranch): New function.
6864         (output_cbranch): The length of a long branch insn is
6865         now only 8 bytes.  Add validate_condition_mode.  Use
6866         rs6000_reverse_condition.  Remove cror generation.
6867
6868         * config/rs6000/rs6000.h: Update comments.
6869         (PREDICATE_CODES): Add new predicate.  Update codes used
6870         by branch_comparison_operator and scc_comparison_operator.
6871         * config/rs6000/rs6000-protos.h: Add prototypes for
6872         new external functions.
6873         * config/rs6000/rs6000.md: Add new scheduling parameters
6874         for cr_logical instructions.  Change length of branch
6875         instructions.
6876         (bCOND patterns): Call rs6000_emit_cbranch.
6877         (sCOND patterns): Call rs6000_emit_sCOND.
6878         (branch patterns): Change lengths to 4.
6879         (cr logical patterns): New.
6880
6881 2000-09-06  Richard Henderson  <rth@cygnus.com>
6882
6883         * config/i386/i386.md (call_pop): Fix test for setting
6884         current_function_uses_pic_offset_table.
6885         (call, call_value_pop, call_value): Likewise.
6886
6887 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
6888
6889         * timevar.c (timevar_add): Delete.
6890         (timevar_get): Also count time since the selected timer was
6891         last updated.  Do not examine the timevar stack if the
6892         selected timer is standalone.
6893
6894 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6895
6896         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
6897
6898 2000-09-05  Jason Merrill  <jason@redhat.com>
6899
6900         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
6901         for 'extern' arrays.
6902
6903 2000-09-05  Richard Henderson  <rth@cygnus.com>
6904
6905         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
6906         Eliminate final copy from non-trapping case.
6907         (__divdf3, __divsf3): Likewise.
6908
6909 2000-09-05  Richard Henderson  <rth@cygnus.com>
6910
6911         * config/ia64/ia64.md (mulhi3): Fix typo last change.
6912         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
6913
6914 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
6915
6916         * Makefile.in: Restructure bootstrap stages to allow clean
6917         restart after failure.
6918
6919 2000-09-05  Richard Henderson  <rth@cygnus.com>
6920
6921         * config/ia64.md (movsi and movdi patterns): Allow moves from
6922         8-bit constants to AR registers.
6923
6924 2000-09-05  Richard Henderson  <rth@cygnus.com>
6925
6926         * config/ia64/ia64.md (mulhi3): New.
6927
6928 2000-09-05  Richard Henderson  <rth@cygnus.com>
6929
6930         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
6931         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
6932         Optimization Guide, minimum latency alternative.
6933         (__moddi3, __udivdi3, __umoddi3): Likewise.
6934         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
6935
6936 2000-09-05  Bruce Korb  <bkorb@gnu.org>
6937
6938         * fixinc/fixincl.c (load_file): always read header files
6939         with sizes that are a multiple of the page size.
6940         & use libiberty's getpagesize for determining that.
6941
6942 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
6943
6944         * gcse.c (hash_string_1): Add prototype.
6945         * cse.c (canon_hash_string): Likewise.
6946
6947 2000-09-04  Craig Newell  <CraigN@ieee.org>
6948
6949         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
6950
6951 2000-09-04  Andreas Schwab  <schwab@suse.de>
6952
6953         * Makefile.in (STAGESTUFF): Remove libgcc.
6954         (stage1-start, stage2-start, stage3-start): Copy the contents of
6955         the libgcc directory explicitly.
6956         (mostlyclean): Clean libgcc.
6957
6958 2000-09-04  Andrew Haley  <aph@redhat.com>
6959
6960         * dwarf2out.c: (stack_adjust_offset): New prototype.
6961
6962 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
6963
6964         * combine.c (make_extraction): Fix rtx_cost comparison to
6965         match the comment.
6966
6967 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
6968
6969         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
6970         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
6971         Add '*' to insn pattern name.
6972
6973 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
6974
6975         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
6976         use posn - 1 to index into tokens array.
6977         (maybe_paste_with_next): Adjust caller.
6978
6979 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
6980
6981         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
6982
6983         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
6984         (REGNO_REG_CLASS): Use symbolic register
6985         names.
6986
6987 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
6988
6989         * arm.c (final_prescan_insn): If the form of a jump insn isn't
6990         recognized, don't try to conditionally execute it.
6991
6992 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
6993
6994         * config/avr/avr.md ("*tablejump_lib"): New pattern.
6995         (call_value_insn): Right length claculation.
6996         (call_insn): Likewise.
6997
6998 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
6999
7000         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
7001         gas_output_limited_string, gas_output_ascii, output_movqi,
7002         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
7003         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
7004         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
7005         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
7006         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
7007         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
7008         Add "const" as needed to remove warnings.
7009
7010         * config/avr/avr.c (avr_override_options, avr_init_once,
7011         function_prologue, function_epilogue, frame_pointer_required_p,
7012         class_likely_spilled_p, order_regs_for_local_alloc,
7013         avr_address_cost, avr_ret_register): Use K&R style arguments.
7014         (initial_elimination_offset, gas_output_limited_string):
7015         Remove ATTRIBUTE_UNUSED from the used arguments.
7016         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
7017         Use local variables src, dest, base to access operands[].
7018         Rename reg_dest to reg_src if that's what it is.
7019         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
7020         constants to LD_REGS if reg_was_0.
7021         (output_reload_insisf): Change arg 3 to insn length and set it.
7022         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
7023         access to 16-bit I/O register pairs.
7024         (avr_address_cost): Lower cost for the above case.
7025         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
7026         may be clobbered, also for LD_REGS.
7027         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
7028         with a CONST_INT.
7029
7030         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
7031
7032         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
7033         macro to test_hard_reg_class function.
7034         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
7035         for loading immediate constants to LD_REGS.
7036         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
7037
7038
7039 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
7040
7041         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
7042         * config/avr/libgcc.S: Lost part of the previous patch.
7043
7044 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7045
7046         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
7047         object before calling pthread_mutex_init.
7048
7049 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
7050
7051         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
7052         config/sh/crtn.asm: New files.
7053         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
7054         (crt1.o, crti.o, crtn.o): New targets.
7055         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
7056         sh/t-elf.
7057         * configure: Rebuilt.
7058         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7059         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
7060         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
7061         Undefine for config/elfos.h to redefine.
7062         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
7063
7064 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
7065
7066         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
7067         legitimize_pic_address, output_pic_addr_const): Declare.
7068         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
7069         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
7070         (TARGET_SWITCHES): New switch -mprefergot.
7071         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
7072         (PIC_OFFSET_TABLE_REGNUM): Define.
7073         (GOT_SYMBOL_TABLE): Likewise.
7074         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
7075         (ENCODE_SECTION_INFO): Define.
7076         (FINALIZE_PIC): New macros.
7077         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
7078         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
7079         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
7080         (prepare_move_operands): Call emit_pic_move or
7081         emit_pic_const_move if appropriate.
7082         (output_far_jump): For PIC, use braf and output long offset.
7083         (machine_dependent_reorg):
7084         (sh_expand_prologue): Save and initialize the PIC register.
7085         (sh_expand_epilogue): Restore it.
7086         (initial_elimination_offset): Account for it.
7087         (nonpic_symbol_mentioned_p): New function.
7088         (legitimize_pic_address): Likewise.
7089         (output_pic_addr_const): Likewise.
7090         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
7091         (call, call_value): Use them.
7092         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
7093         symPLT_label2reg): New expands.
7094         * invoke.texi (SH Options): Document -mprefergot.
7095
7096 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
7097
7098         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
7099         * gcse.c (hash_string_1): New function.
7100         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
7101         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
7102         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
7103         (canon_hash_string): New function.
7104         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
7105         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
7106         (fold_rtx): Use ASM_OPERANDS accessor macros.
7107         * emit-rtl.c (copy_insn_1): Likewise.
7108         * integrate.c (copy_rtx_and_substitute): Likewise.
7109         * stmt.c (expand_asm_operands): Likewise.  Give an
7110         ASM_OPERANDS rtx the mode of the output reg being set from it.
7111
7112 2000-09-01  Fred Fish  <fnf@be.com>
7113
7114         * fix-header.c (write_rbrac): Add putc and getc to list of
7115         functions to protect against prior definition as a macro.
7116
7117 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
7118
7119         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
7120         (c_size_type_node): Define.
7121         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
7122         * c-common.c (enum format_lengths, enum format_std_version,
7123         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
7124         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
7125         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
7126         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
7127         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
7128         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
7129         format_types): Define.
7130         (format_char_info, print_char_table, scan_char_table,
7131         time_char_table): Rearrange for new organization of information
7132         about format length modifiers and standard versions.
7133         (T_ST): Redefine to use c_size_type_node.
7134         (check_format_info): Obtain information about length modifiers and
7135         standard versions from tables.  Adjust warning message wordings.
7136         Use the name from the user's program for `ll' and `hh' length
7137         modifiers in warning messages.  Use more informative names for
7138         wanted types where available (for wchar_t, wint_t, size_t, signed
7139         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
7140
7141 2000-09-01  Jim Wilson  <wilson@cygnus.com>
7142
7143         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
7144         * combine.c (distribute_notes): Handle REG_NORETURN.
7145         * rtl.c (reg_note_name): Add REG_NORETURN.
7146         * rtl.h (enum reg_note): Likewise.
7147
7148         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
7149         ia64_file_start.
7150         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
7151         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
7152         (emit_predicate_relation_info): Handle conditional calls with
7153         REG_NORETURN.
7154         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
7155         instead of ia64_file_start.
7156         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
7157         * config/ia64/ia64.md (safe_across_calls_all,
7158         save_across_calls_normal): New patterns.
7159
7160         * loop.c (check_final_value): Check for biv use before checking for
7161         giv use.  Check for both biv and giv uses.  Always set last_giv_use
7162         if there is a giv use.
7163
7164 2000-09-01  Richard Henderson  <rth@cygnus.com>
7165
7166         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
7167         (madddi3): Likewise.
7168         (maddsi3): New.
7169
7170 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7171
7172         * expr.c (clear_storage): Don't use emit_move_insn unless
7173         either BLKmode or proper size.
7174         (store_constructor): Don't call clear_storage if REG of wrong size.
7175
7176         * flow.c (init_propagate_block_info): Don't mark frame dead at end
7177         of function if returns wiht stack pointer depressed.
7178
7179 2000-09-01  Andrew Haley  <aph@redhat.com>
7180
7181         * dwarf2out.c (stack_adjust_offset): New function.
7182         (dwarf2out_stack_adjust): Break out stack adjust logic into
7183         new stack_adjust_offset function.  Look inside parallels and
7184         sequences for stack adjustments.
7185
7186 2000-08-31  Jeff Law <law@cygnus.com>
7187
7188         * arm.md: Use no_new_pseudos to determine when it is safe
7189         to create new pseudo registers.
7190
7191         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
7192         when we can safely allocate new registers.
7193
7194 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
7195
7196         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
7197         so that CONCATs are not generated for ASMs.
7198         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
7199         not generating_concat_p.
7200         * function.c (pop_function_context_from): Reset
7201         generating_concat_p.
7202         (prepare_function_start): Likewise.
7203         * rtl.c (generating_concat_p): Define.
7204         * rtl.h (generating_concat_p): Declare.
7205         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
7206
7207 2000-08-22  Philipp Thomas  <pthomas@suse.de>
7208             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
7209
7210         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
7211         for translation.
7212
7213 2000-08-30  Greg McGary  <greg@mcgary.org>
7214
7215         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
7216         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
7217         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
7218
7219 2000-08-30  Greg McGary  <greg@mcgary.org>
7220
7221         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
7222         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
7223         (TREE_INT_CST): New macro.
7224         * varasm.c (const_hash, compare_constant_1, record_constant_1):
7225         Use new macro TREE_INT_CST.
7226
7227 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
7228
7229         * contrib.texi: Add self.
7230
7231 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
7232
7233         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
7234         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
7235         and labels.
7236
7237 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7238
7239         * fixinc/gnu-regex.c: Don't define `const'.
7240
7241 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7242
7243         * expr.c (store_constructor): Allow variable bounds of array type.
7244         (expand_expr): Don't blow up if type is ERROR_MARK.
7245         * varasm.c (output_constructor): Don't access lower bound of array
7246         type unless need it if index is supplied (so it can be a variable
7247         if no index is supplied).
7248         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
7249         Other minor cleanups.
7250
7251 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7252
7253         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
7254         for compilations in stage 1 and subsequent stages, respectively.
7255         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
7256         * configure: Rebuilt.
7257         * x-vax, x-vax-gcc: Deleted.
7258
7259 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
7260
7261         * c-common.c (declare_function_name): Use func_id_node,
7262         function_id_node, and pretty_function_id_node.  Do not make
7263         __func__ visible at file scope.
7264         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
7265         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
7266         (function_id_node, pretty_function_id_node, func_id_node): New
7267         macros.
7268         * c-decl.c (init_decl_processing): Initialize function_id_node,
7269         pretty_function_id_node, and func_id_node.
7270         (c_make_fname_decl): Correct comment.
7271
7272         * tree.h (struct tree_identifier): Constify pointer member.
7273
7274         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
7275         * c-pragma.h (struct weak_syms): Constify name and value members.
7276         (add_weak): Constify arguments.
7277
7278         * calls.c (special_function_p): Constify a char *.
7279         (expand_call): Remove variable which is initialized and then
7280         never used.
7281         * dependence.c (struct def_use, struct induction, struct subscript):
7282         Constify 'variable' member.
7283         (get_low_bound, have_induction_variable): Constify char * argument.
7284         (find_induction_variable): Add braces to avoid dangling else.
7285         (classify_dependence): Constify char * arrays.
7286         * profile.c (output_func_start_profiler): Constify a char *.
7287         * stor-layout.c (finalize_record_size): Constify a char *.
7288         * tree.c (is_attribute_p): Constify a char *.
7289         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
7290
7291         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
7292         for comprehensibility.  Do not call get_identifier if we did
7293         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
7294         create temporary string constants, not ggc_alloc_string.  No
7295         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
7296         char * to hold IDENTIFIER_POINTERs.
7297
7298 2000-08-29  Richard Henderson  <rth@cygnus.com>
7299
7300         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
7301         for the inputs.
7302
7303 2000-08-29  Richard Henderson  <rth@cygnus.com>
7304
7305         * reload.c (push_secondary_reload): Allow class == reload_class
7306         if we're using a reload_in/out pattern.
7307
7308         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
7309         the half that does not conflict with the reload register.
7310         (reload_outti): Likewise.
7311
7312 2000-08-29  Kazu Hirata  <kazu@hxi.com>
7313
7314         * reload.c: Fix formatting.
7315
7316         * stmt.c: Fix formatting.
7317
7318         * gcc.c: Fix formatting.
7319
7320 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
7321
7322         * flags.h (time_report, mem_report): New global flags.
7323         * toplev.c: Define time_report and mem_report.
7324         (f_options): Add -ftime-report and -fmem-report.
7325         (compile_file): Turn on time_report if quiet_flag is off.
7326         Call ggc_print_statistics at very end if mem_report is on.
7327         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
7328
7329         * ggc-common.c (ggc_print_statistics): Rename to
7330         ggc_print_common_statistics; all callers changed.  Scale
7331         quantities above 10K to kilobytes and above 10M to megabytes.
7332         * ggc-page.c (ggc_page_print_statistics): Rename to
7333         ggc_print_statistics.  Report memory consumed by internal data
7334         structures for each allocation bucket.  Scale quantities above
7335         10K to kilobytes and above 10M to megabytes.
7336         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
7337         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
7338         Define tally_leaves always.
7339         (ggc_print_statistics): New function.
7340         * ggc.h: Adjust for renamed functions.
7341
7342 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
7343
7344         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
7345         output_movsisf instead of which_alternative.
7346
7347         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
7348
7349 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
7350
7351         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
7352         (avr_progmem_p): New prototype.
7353         (output_movsisf): Prototype declaration changed.
7354         (output_movqi): New prototype.
7355         (output_movhi): New prototype.
7356         (call_insn_operand): Likewise.
7357         (final_prescan_insn): Likewise.
7358         (avr_simplify_comparision_p): Likewise.
7359         (avr_normalize_condition): Likewise.
7360         (compare_eq_p): Likewise.
7361         (out_shift_with_cnt): Likewise.
7362         (const_int_pow2_p): Likewise.
7363         (output_reload_inhi): Prototype declaration changed.
7364
7365         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
7366         (ldi_reg_rtx): New. rtx for r31.
7367         (avr_init_stack): Initialize as "__stack".
7368         (function_prologue): Use it.
7369         Replace all TARGET_ENHANCED with AVR_ENHANCED.
7370         (avr_mcu_name): Initialize as "avr2".
7371         (avr_enhanced_p, avr_mega_p): New variables.
7372         (mcu_types, avr_override_options): Handle all known MCU types.
7373         Also handle avr1 (only preprocess, assemble and link).
7374         (print_operand): Using of `%K' in output template removed.
7375         (out_movqi_r_mr): Optimized.
7376         (out_movhi_r_mr): Likewise.
7377         (output_movqi): New function.
7378         (output_movhi): Likewise.
7379         (out_movsi_r_mr): Optimized.
7380         (output_movsisf): Compute insn length for `adjust_insn_length'
7381         (out_movqi_mr_r): Optimized.
7382         (out_movhi_mr_r): Optimized.
7383         (adjust_insn_length): Use output_movsisf, output_movqi,
7384         output_movhi for insn length adjusting.
7385         (reg_unused_after): Use dead_or_set_p.
7386         (preferred_reload_class): Now havn't any restriction.
7387         (reg_was_0): New function.
7388         (io_address_p): Likewise.
7389         (const_int_pow2_p): Likewise.
7390         (output_reload_inhi): Likewise.
7391         (output_reload_insisf): Likewise.
7392
7393         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
7394         (LIB_SPEC): Use -lc for all supported devices.
7395         (LIBGCC_SPEC): Use -lgcc for all supported devices.
7396         (AVR_MEGA): Define as avr_mega_p.
7397         (AVR_ENHANCED): New, define as avr_enhanced_p.
7398         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
7399         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
7400         (CRT_BINUTILS_SPECS): Handle all known MCU types.
7401         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
7402         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
7403         (ASM_SPEC): Pass -mmcu=... to the assembler.
7404         Change all -DAVR_* to -D__AVR_*__.
7405         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
7406         Rename library functions to start with two underscores.
7407         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
7408         alignment.
7409         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
7410         (SUPPORTS_WEAK): Likewise.
7411         (LDI_REG_REGNO): New. Register r31 will be used as temporary
7412         register for loading constants to r0-r14.
7413
7414         * config/avr/avr.md: Replace all TARGET_ENHANCED with
7415         AVR_ENHANCED.
7416         (*mov_r_sp): Removed. Handled by output_movhi.
7417         (*mov_sp_r): Likewise.
7418         (*mov_sp_r_no_interrupts): Likewise
7419         (*mov_sp_r_tiny): Likewise.
7420         (*movqi): Use output_movqi.
7421         (*reload_inqi): New.
7422         (*movhi): Use output_movhi.
7423         (*reload_inhi): New.
7424         (*negsi2): Optimized.
7425         (*negsf2): Likewise.
7426         Added peepholes (define_peephole2) for loading constants to r0-r14
7427         and for using `cpse' command.
7428
7429         * config/avr/libgcc.S: Rename library functions to start with two
7430         underscores.
7431         Add support for enhanced core.
7432         (_moqhi3): Fix typo, now _modqi3.
7433         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
7434         (__prologue_saves__): Remove test for stack adjust by 0.
7435         (__tablejump__): New.
7436
7437         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
7438         Add multilib support.
7439
7440 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
7441
7442         * loop.c (prescan_loop): Don't check unknown_address_altered
7443         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
7444         to loop_store_mems as necessary.
7445         (loop_invariant_p): Don't check unknown_address_altered
7446         or unknown_constant_address_altered.
7447
7448 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7449
7450         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
7451
7452 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
7453
7454         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
7455         print just the filename.
7456         * cpplex.c (_cpp_run_directive): Add additional argument, the
7457         name to give the synthetic buffer.  This defaults to
7458         translated "<command line>".
7459         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
7460         Adjust to match.
7461         (_cpp_define_builtin): New function.
7462         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
7463         * cpphash.h: Update prototypes.
7464
7465         * tradcpp.c (main): Process -D and -U simultaneously, in the
7466         order they appeared on the command line.
7467
7468 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7469
7470         * c-decl.c (define_label): Call warning_with_file_and_line and
7471         error_with_file_and_line instead of plain warning or error.
7472
7473         * c-parse.in (label): Use save_filename/save_lineno to ensure
7474         correct values for calls to define_label.
7475
7476 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
7477
7478         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
7479         away.
7480         * expr.c (expand_expr, case TARGET_EXPR): Don't call
7481         mark_addressable.
7482         * tree.h (get_file_function_name): Remove two duplicate
7483         declarations.
7484
7485 2000-08-28  Kazu Hirata  <kazu@hxi.com>
7486
7487         * tree.c: Fix formatting.
7488
7489         * xcoffout.c: Fix formatting.
7490
7491 2000-08-28  Jason Merrill  <jason@redhat.com>
7492
7493         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
7494
7495 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
7496
7497         * dwarf2out.c (dwarf2out_finish): Don't bother calling
7498         break_out_includes if it won't do anything.
7499
7500 2000-08-28  Richard Henderson  <rth@cygnus.com>
7501
7502         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
7503         (find_reloads): Likewise.
7504         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
7505         (reload_inhi): Likewise.
7506
7507 2000-08-28  Richard Henderson  <rth@cygnus.com>
7508
7509         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
7510         (call_insn_operand): Don't expect a surrounding mem.
7511         (constant_call_address_operand): Likewise.
7512         * config/i386/i386.h (PREDICATE_CODES): Update.
7513         * config/i386/i386.md (call patterns): Move the match_operand
7514         for the call destination inside the mem.
7515
7516 2000-08-28  Richard Henderson  <rth@cygnus.com>
7517
7518         * local-alloc.c (requires_inout): Don't use reserved range for
7519         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
7520         * recog.c (asm_operand_ok): Likewise.
7521         (preprocess_constraints, constrain_operands): Likewise.
7522         * regclass.c (record_reg_classes): Likewise.
7523         * reload.c (find_reloads): Likewise.
7524         * reload1.c (maybe_fix_stack_asms): Likewise.
7525         (reload_cse_simplify_operands): Likewise.
7526         * stmt.c (expand_asm_operands): Likewise.
7527
7528         * md.texi: Update constraints documentation.
7529         * tm.texi (EXTRA_CONSTRAINT): Update.
7530
7531 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
7532
7533         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
7534         (print_die): If we don't know the offset of the
7535         target die, try the symbol.  Add a trailing newline.
7536         (reverse_all_dies): New fn.
7537         (dwarf2out_finish): Call it.
7538         (break_out_includes): Reorganize for clarity.
7539         (add_sibling_attributes): Don't call reverse_die_lists.
7540         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
7541         primary CU, too.
7542         * flags.h: Add flag_eliminate_dwarf2_dups.
7543         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
7544
7545 2000-08-28  Jason Merrill  <jason@redhat.com>
7546
7547         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
7548         * dwarf2out.c: #include "md5.h".
7549         (DIE_LABEL_PREFIX): New macro.
7550         (dw_val_struct): Add 'external' flag to val_die_ref.
7551         (add_AT_die_ref, AT_ref): Adjust.
7552         (AT_ref_external, set_AT_ref_external): New fns.
7553         (build_abbrev_table): Call set_AT_ref_external.
7554         (value_format): Call AT_ref_external.
7555         (die_struct): Add die_symbol field.
7556         (new_die): Clear it.
7557         (dwarf_tag_name): Handle BINCL/EINCL.
7558         (dwarf2out_start_source_file): Add BINCL DIE.
7559         (dwarf2out_end_source_file): Add EINCL DIE.
7560         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
7561         (loc_checksum, attr_checksum, die_checksum): New fns.
7562         (is_type_die, is_comdat_die, is_symbol_die): New fns.
7563         (compute_section_prefix, assign_symbol_names): New fns.
7564         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
7565         (output_die): Call output_die_symbol and AT_ref_external.
7566         (output_comdat_comp_unit): New fn, split out from...
7567         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
7568         secondary CUs.
7569         (output_pubnames, output_aranges): Abort if we see entries from
7570         secondary CUs.
7571         * toplev.h: Declare file_name_nondirectory.
7572         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
7573         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
7574         (debug_start_source_file): Call dwarf2out_start_source_file
7575         regardless of debug verbosity.
7576         (debug_end_source_file): Similarly.
7577         * tree.h: Declare clean_symbol_name.
7578         * tree.c (clean_symbol_name): Split out from...
7579         (get_file_function_name_long): ...here.
7580
7581         * dwarf2out.c (new_loc_descr): Use calloc.
7582         (splice_child_die): Remove the die from the right parent.
7583         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
7584
7585 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7586
7587         * toplev.c (decode_g_option): Don't give warning for unknown -g
7588         option; return 0 instead.
7589         (main): If -g option is not recognized by front end or
7590         language-independent code, give warning.
7591
7592 2000-08-28  Greg McGary  <greg@mcgary.org>
7593
7594         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
7595         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
7596         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
7597
7598 2000-08-27  Greg McGary  <greg@mcgary.org>
7599
7600         * cpplex.c (parse_string): Don't look for backslash
7601         before first char in `namebuf'.
7602         * loop.c (strength_reduce): Skip NOTEs.
7603
7604 2000-08-27  Jason Merrill  <jason@redhat.com>
7605
7606         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
7607         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
7608         TREE_ASM_WRITTEN, either.
7609         (finish_decl): Adjust.
7610
7611 2000-08-28  Philipp Thomas  <pthomas@suse.de>
7612
7613         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
7614         they have been incorporated into the gettext CVS. Change the text to
7615         reflect the current status of NLS. Add instructions for accessing
7616         the gettext CVS and add the patch from Martin v. Loewis.
7617
7618 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
7619
7620         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
7621         by using gen_lowpart_common.
7622         (movdi_internal64+6): Likewise.
7623
7624 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
7625
7626         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
7627         Document.
7628
7629         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
7630         numbers to the ranges used by GDB.
7631
7632 2000-08-25  Richard Henderson  <rth@cygnus.com>
7633
7634         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
7635         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
7636         (ia64_expand_prologue): Likewise.
7637         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
7638         argument for stdargs.
7639
7640 2000-08-25  Jason Merrill  <jason@redhat.com>
7641
7642         * integrate.c (expand_inline_function): Pull out the original decl.
7643
7644 2000-08-25  Jim Wilson  <wilson@cygnus.com>
7645
7646         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
7647
7648         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
7649
7650 2000-08-25  Greg McGary  <greg@mcgary.org>
7651
7652         * flow.c (dump_edge_info): Use ARRAY_SIZE.
7653         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
7654
7655 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
7656
7657         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
7658
7659 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
7660
7661         * i386.c (ix86_find_base_term): New.
7662         * i386-protos.h (ix86_find_base_term): Prototype.
7663         * i386.h (FIND_BASE_TERM): Define.
7664         * alias.c (find_base_term): Use it.
7665         * tm.texi (FIND_BASE_TERM): Document it.
7666
7667         * alias.c (true_dependence, write_dependence_p): Unchanging
7668         memory can't conflict with non-unchanging memory.
7669
7670         * alias.c (memrefs_conflict_p): A BLKmode reference
7671         to a symbol (or CONST_INT address) always conflicts
7672         with a reference to another symbol.
7673
7674 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
7675
7676         * c-common.c (time_char_table): Don't allow width and flags with
7677         "z" format.
7678
7679 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
7680
7681         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
7682         way as LT and LTU when the second operand has 0 in low word.
7683
7684 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
7685
7686         * basic-block.h (struct loop): Rename `exits' field to
7687         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
7688
7689         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
7690         (flow_loop_entry_edges_find): Add.
7691         (flow_edge_list_print): Rename from flow_exits_print.
7692         (flow_loops_find): Call flow_loop_entry_edges_find.
7693         (flow_loop_dump): Dump entry_edges list.
7694         (flow_loops_free): Free entry_edges.
7695
7696 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
7697
7698         * loop.c (loop_dump_aux, debug_loop): New functions.
7699         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
7700
7701         * flow.c (flow_loops_dump): Add callback parameter.
7702         (flow_loop_dump): Add callback parameter and call it.  Move
7703         loop note debugging code to loop_dump_aux.
7704
7705         * basic-block.h (flow_loop_dump): Add callback parameter
7706         (flow_loops_dump): Likewise.
7707
7708         * toplev.c (rest_of_compilation): Add NULL callback function pointer
7709         to call to flow_loops_dump.
7710
7711 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
7712
7713         * loop.c (count_loop_regs_set): Replace start and end arguments
7714         with loop argument.  All callers udated.
7715
7716 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
7717
7718         * loop.c (constant_high_bytes): Delete.
7719
7720 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
7721
7722         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
7723         and NOTE_INSN_LOOP_VTOP to...
7724         (find_and_verify_loops) ...here.
7725
7726 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
7727
7728         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
7729         (fini_dummy, init_dummy): Use it.
7730
7731 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
7732
7733         * cpplex.c (is_macro_disabled): Caller has already checked
7734         that we're not a preprocessed file.
7735
7736 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
7737
7738         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
7739         (c-iterate.o): Remove target.
7740         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
7741         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
7742         (finish_decl): Don't handle iterators.
7743         (grokdeclarator): Likewise.
7744         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
7745         * gcc/c-gperf.h: Regenerated.
7746         * gcc/c-iterate.c: Removed.
7747         * gcc/c-lex.c (init_lex): Don't handle iterators.
7748         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
7749         (compstmt_primary_start): Remove push_iterator_stack call.
7750         (stmt): Don't allow iterator statements.  Replace iterator_expand
7751         with expand_expr_stmt.
7752         (all_iter_stmt): Remove.
7753         (all_iter_stmt_simple): Likewise.
7754         (all_iter_stmt_with_decl): Likewise.
7755         * gcc/c-tree.h (ITERATOR_P): Remove.
7756         (ITERATOR_BOUND_P): Likewise.
7757         (init_iterators): Remove declaration.
7758         (iterator_expand): Likewise.
7759         (iterator_for_loop_start): Likewise.
7760         (iterator_for_loop_end): Likewise.
7761         (iterator_for_loop_record): Likewise.
7762         (push_iterator_stack): Likewise.
7763         (pop_iterator_stack): Likewise.
7764         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
7765         (readonly_warning): Likewise.
7766         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
7767
7768 2000-08-24  Jim Wilson  <wilson@cygnus.com>
7769
7770         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
7771         Copy type in a TYPE_DECL, just like pushdecl does.
7772
7773 2000-08-24  Richard Henderson  <rth@cygnus.com>
7774
7775         * toplev.c (main): Enable flag_reorder_blocks at -O2.
7776
7777 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
7778
7779         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
7780         asked for one page, allocate GGC_QUIRE_SIZE of them and put
7781         the extras on the free list.
7782         (release_pages): Clean up.
7783         (ggc_set_mark): Don't adjust G.allocated here...
7784         (sweep_pages): ... do it here.
7785
7786 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
7787
7788         * cppfiles.c (read_include_file): Rearrange initializations.
7789
7790 2000-08-24  Richard Henderson  <rth@cygnus.com>
7791
7792         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
7793
7794         * config/ia64/ia64-protos.h: Update.
7795         * config/ia64/ia64.c (gr_register_operand): New.
7796         (fr_register_operand, grfr_register_operand): New.
7797         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
7798         (grfr_reg_or_8bit_operand): New.
7799         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
7800         use gr_register_operand.
7801         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
7802         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
7803         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
7804         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
7805         (fr_reg_or_fp01_operand): Likewise.
7806         (not_postinc_memory_operand): New.
7807         (ia64_split_timode): Remove unused variables.
7808         (rtx_needs_barrier): Check arguments to cmpxchg.
7809         (builtin_description): Remove.
7810         (bdesc_2argsi, bdesc_2argdi): Remove.
7811         (ia64_init_builtins): Declare all builtins directly.
7812         (ia64_expand_fetch_and_op): Rewrite to be called from
7813         ia64_expand_builtin directly.  Use expand_binop and co.
7814         (ia64_expand_op_and_fetch): Likewise.
7815         (ia64_expand_compare_and_swap): Likewise.
7816         (ia64_expand_binop_builtin): Remove.
7817         (ia64_expand_lock_test_and_set): New.
7818         (ia64_expand_lock_release): New.
7819         (ia64_expand_builtin): Use them.
7820         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
7821         (EXTRA_CONSTRAINT): Use it.
7822         (PREDICATE_CODES): Update.
7823         * config/ia64/ia64.md (*): Use gr_register_operand and co.
7824         (mf): Indicate that we set memory as well as use it.
7825         (fetchadd_acq_si): Show memory being modified as well.
7826         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
7827         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
7828         (lock_test_and_set_si, lock_test_and_set_di): Remove.
7829         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
7830         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
7831         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
7832         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
7833         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
7834         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
7835         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
7836         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
7837         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
7838         return type.  Pretty print definitions.
7839
7840 2000-08-24  Jim Wilson  <wilson@cygnus.com>
7841
7842         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
7843         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
7844
7845 2000-08-24  Jason Merrill  <jason@redhat.com>
7846
7847         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
7848         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
7849         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
7850         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
7851
7852 2000-08-24  Greg McGary  <greg@mcgary.org>
7853
7854         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
7855         and extendtab within their proper array boundaries.
7856         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
7857         for the entire array.
7858
7859         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
7860         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
7861         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
7862         * config/fr30/fr30.c (fr30_print_operand): Likewise.
7863         * config/i386/dgux.c (output_options): Likewise.
7864         * config/i386/dgux.h (ASM_FILE_START): Likewise.
7865         * config/m88k/m88k.c (output_options): Likewise.
7866         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
7867         * config/mcore/mcore.c (mcore_output_inline_const_forced,
7868         layout_mcore_frame, handle_structs_in_regs): Likewise.
7869         * config/mips/mips.c (output_block_move): Likewise.
7870         * config/rs6000/rs6000.c (rs6000_override_options,
7871         rs6000_file_start): Likewise.
7872         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
7873         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
7874         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
7875         * builtins.c (expand_builtin_setjmp): Likewise.
7876         * expr.c (safe_from_p): Likewise.
7877         * flow.c (life_analysis): Likewise.
7878         * fold-const.c (size_int_type_wide): Likewise.
7879         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
7880         * genattrtab.c (make_length_attrs): Likewise.
7881         * genopinit.c (gen_insn): Likewise.
7882         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
7883         * global.c (global_alloc): Likewise.
7884         * local-alloc.c (find_free_reg): Likewise.
7885         * mips-tdump.c (print_symbol): Likewise.
7886         * mips-tfile.c (parse_def, parse_input): Likewise.
7887         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
7888         * stmt.c (expand_nl_goto_receiver): Likewise.
7889         * stor-layout.c (set_sizetype): Likewise.
7890         * varasm.c (decode_reg_name): Likewise.
7891         * toplev.c (decode_f_option, decode_W_option,
7892         set_target_switch, print_switch_values): Likewise.
7893         (NUM_ELEM): Remove macro.
7894         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
7895
7896 2000-08-24  Greg McGary  <greg@mcgary.org>
7897
7898         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
7899         (MAIN_NAME_P, main_identifier_node): New macros.
7900         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
7901         * c-decl.c (start_decl, grokdeclarator, start_function,
7902         store_parm_decls, finish_function): Use MAIN_NAME_P.
7903         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
7904         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
7905         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
7906         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
7907
7908 2000-08-24  Greg McGary  <greg@mcgary.org>
7909
7910         * cppfiles.c (actual_directory): Don't write beyond `dir'
7911         when it contains "".
7912         * real.c (asctoeg): Stay within bounds of etens[][].
7913
7914 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7915
7916         * dependence.c (dependence_string, direction_string,
7917         dump_one_node, dump_node_dependence): Hide unused identifiers.
7918         (get_low_bound, normalize_coefficients): Match definition to
7919         static prototype.
7920         (get_one_coefficient): Initialize variables `value0_is_idx' and
7921         `value1_is_idx'.
7922         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
7923         (ziv_test): Delete variable `idx', use parameter `sub' instead.
7924         (direction_merge): Avoid automatic aggregate initialization.
7925         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
7926         Initialize variables `dest_idx' and `src_idx'.
7927         (end_dependence_analysis): Avoid C89 style function definition.
7928
7929 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7930
7931         * c-common.c (time_char_table): Don't allow width with %F.
7932         (check_format_info): Don't allow "Z" length with scanf.
7933
7934 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
7935
7936         * diagnostic.c (finish_diagnostic): Define.
7937         (output_do_printf): Use wrap_text instead of output_add_string.
7938         (default_print_error_function): Avoid embedded '\n'.
7939
7940         * diagnostic.h (flush_diagnostic_buffer): Declare.
7941
7942 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
7943
7944         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
7945
7946 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
7947
7948         * Makefile.in (GCC_PASSES): Add specs.
7949
7950 2000-08-23  Jim Wilson  <wilson@cygnus.com>
7951
7952         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
7953         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
7954         EHANDLER nor UHANDLER bit is set.
7955         (__get_except_table): Likewise.
7956
7957 2000-08-23  Nick Clifton  <nickc@redhat.com>
7958
7959         * config/arm/lib1funcs.asm: Replace upper case condition codes
7960         with lower case versions.
7961
7962         * config/arm/arm.h (STRUCT_VALUE): Define.
7963         (STRUCT_VALUE_REGNUM): Delete.
7964
7965 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
7966
7967         * cpphash.h (IN_I): New flag for directive table.
7968         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
7969         #pragma with IN_I.
7970         (_cpp_check_directive): If -fpreprocessed, execute directives
7971         marked with IN_I.  Issue no warnings in this case.
7972         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
7973
7974 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
7975
7976         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
7977         %u.
7978         (check_format_info): Support printf 'I' flag; warn about it with
7979         -pedantic.
7980
7981 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
7982
7983         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
7984         barrier can't be ignored by the alias analysis code.
7985
7986 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
7987
7988         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
7989         works inside fixincl.
7990
7991 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
7992
7993         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
7994         simplify_relational_operation() unless both operands are of
7995         VOIDmode.
7996         * cse.c (fold_rtx): Likewise.
7997
7998 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
7999
8000         * rtlanal.c (rtx_unstable_p): The pic register is stable
8001         (within one function) and the actual rtx should be used
8002         when checking the registers.
8003         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
8004
8005         * alias.c (true_dependence, write_dependence_p): Fix
8006         bug in previous patch.
8007
8008         * i386.c (ix86_GOT_alias_set): New.
8009         (legitimize_pic_address): Use it.
8010
8011         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
8012         only stable if its address is stable.
8013         (rtx_varies_p): An unchanging MEM can't vary if
8014         its address doesn't vary.
8015
8016 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8017
8018         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
8019
8020 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
8021
8022         * vax.h (ASM_SPEC): Pass `-J' to assembler.
8023         * x-vax-gcc: New file for bootstrapping with gcc.
8024         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
8025         * configure.in: Use x-vax-gcc with gcc.
8026         * configure: Rebuilt.
8027
8028 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8029
8030         * toplev.c (rest_of_compilation): Rebuild label notes after
8031         post-reload splitting pass if new labels have been created.
8032
8033 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
8034
8035         * diagnostic.h (output_buffer_state): New macro.
8036         * diagnostic.c (diagnostic_for_decl, sorry,
8037         default_print_error_function, output_do_verbatim,
8038         report_diagnostic, report_problematic_module): Use it.
8039         (wrap_text): Tweak.
8040         (output_format): Use wrap_text instead of maybe_wrap_text.
8041
8042 2000-08-22  Nick Clifton  <nickc@redhat.com>
8043
8044         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
8045         Common code for ARM divide and modulus functions.
8046         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
8047         ARM_DIV_MOD_BODY.
8048         (FUNC_END): New macro: Common code at the end of the division and
8049         modulo functions.
8050         (THUMB_FUNCTION_START): New macro:  Common code at the start of
8051         Thumb functions.
8052         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
8053
8054 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
8055
8056         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
8057
8058         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
8059         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
8060         const0_rtx.
8061
8062 2000-08-22  Nick Clifton  <nickc@redhat.com>
8063
8064         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
8065         restorative additions, test for bottom bits of IP being set,
8066         rather than relying upon the RORs not matching.
8067         (__modsi3): Ditto.
8068
8069 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
8070
8071         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
8072         text_section() as appropriate instead of emitting text csect
8073         pseudo-op directly.
8074         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
8075         (UNIQUE_SECTION): Define macro.
8076         (ASM_OUTPUT_SECTION_NAME): Define macro.
8077         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
8078         on AIX if debugging and -fdata-sections always.
8079
8080 2000-08-22  Steven King  <sxking@uswest.net>
8081
8082         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
8083         machinery.
8084         (LDBL_MAX): Same here.
8085
8086 2000-08-22  Richard Henderson  <rth@cygnus.com>
8087
8088         * flow.c (tidy_fallthru_edge): Update b->end properly.
8089
8090 2000-08-22  Stan Cox  <scox@redhat.com>
8091
8092         * Makefile.in (OBJS): Add dependence.o.
8093         * dependence.c: New file.
8094
8095 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
8096
8097         * calls.c (check_sibcall_argument_overlap_1): Adjust for
8098         ARGS_GROW_DOWNWARD.
8099         (check_sibcall_argument_overlap): Likewise.
8100
8101 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
8102
8103         * invoke.texi (SH Options): Document -m4-nofpu,
8104         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
8105         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
8106
8107 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
8108
8109         * c-common.c (check_format_info): Give the 'some locales' warning
8110         for strftime %Ey rather than the unconditional 'only last 2 digits
8111         of year' one.
8112
8113 2000-08-22  Richard Henderson  <rth@cygnus.com>
8114
8115         * alias.c (init_alias_analysis): Do not register
8116         struct_value_incoming_rtx or static_chain_rtx as pointing
8117         to stack memory.
8118
8119 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
8120
8121         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
8122
8123 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
8124
8125         * diagnostic.h (report_problematic_module): Declare.
8126         * diagnostic.c (report_problematic_module): New function.
8127         (report_error_function): Tweak.
8128
8129 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8130
8131         * stmt.c (expand_goto_internal, fixup_gotos): Only check
8132         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
8133
8134 2000-08-21  Richard Henderson  <rth@cygnus.com>
8135
8136         * flow.c (calculate_global_regs_live): Mark frame pointer live
8137         everywhere before reload.
8138
8139 2000-08-21  Jim Wilson  <wilson@cygnus.com>
8140
8141         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
8142         INTEL_EXTENDED_IEEE_FORMAT.
8143         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
8144         clear last two bytes of output FP value.
8145
8146 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
8147
8148         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
8149
8150 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
8151
8152         * unroll.c (loop_find_equiv_value): If ret is modified between
8153         insn and loop_start, ret might not be equivalent to reg.
8154
8155 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8156
8157         * c-common.c (init_dollar_format_checking,
8158         maybe_read_dollar_number, finish_dollar_format_checking): New
8159         functions.
8160         (dollar_arguments_used, dollar_arguments_count,
8161         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
8162         New variables.
8163         (check_format_info): Support $ formats for scanf and printf width
8164         and precision.  Always increment format_chars to advance past the
8165         '*' of precision, not just when the format parameters are
8166         available to check.
8167
8168 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8169
8170         * mips.c (block_move_loop, expand_block_move,
8171         function_arg_partial_nregs, save_restore_insns, function_prologue,
8172         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
8173         constant suffix.
8174         (function_arg_advance, function_arg): Match argument to format
8175         specifier `%p'.
8176
8177 2000-08-21  Nix  <nix@esperi.demon.co.uk>
8178
8179         * gcc.c (do_spec_1): Implement %j spec flag.
8180         Remove dead comment.
8181
8182         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
8183         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
8184         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
8185         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
8186
8187         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
8188         writable) instead of hardcoded value.
8189
8190         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
8191
8192         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
8193         MKTEMP_EACH_FILE.
8194
8195         * gcc.c (cc1_options): Do not process -o or run the assembler if
8196         -fsyntax-only.
8197         * objc/lang-spec.h: Likewise.
8198
8199 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
8200
8201         * fixinc/fixincl.c (fix_with_system): Pipe the output of
8202         "external" fixes through `cat', to avoid truncating the input
8203         file by redirection.
8204
8205 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
8206
8207         * config/i386/i386.md (lea_general_1): Copy insn condition to split
8208         condition.
8209         (lea_general_2, lea_general_3): Likewise.
8210
8211 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8212
8213         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
8214         warnings to user code.
8215
8216         * c-lex.c (readescape, yylex): Likewise.
8217
8218         * c-typeck.c (store_init_value, process_init_element): Likewise
8219         (c_expand_start_case): Format.
8220
8221 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8222
8223         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
8224
8225         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
8226         and linker_endian_spec to endian_spec.
8227         (ENDIAN_SPEC): Add %{EB} and %{EL}.
8228         (LINK_SPEC): Remove %{EB} and %{EL}.
8229         (ASM_SPEC): Likewise.  Use %(endian_spec).
8230
8231 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8232
8233         * c-tree.h (flag_hosted): Move declaration from here...
8234         * c-common.h (flag_hosted): ... to here.
8235         (flag_noniso_default_format_attributes): New declaration.
8236         * c-decl.c (flag_noniso_default_format_attributes): New variable.
8237         (c_decode_option): Set it appropriately for options choosing
8238         language standard variant.
8239         * c-common.c (init_function_format_info): Only provide default
8240         format attributes if flag_hosted.  Only provide the gettext
8241         formats if flag_noniso_default_format_attributes.  Update
8242         comments.
8243         (check_format_info): Disable treatment of %a as a scanf flag in
8244         C99 mode.
8245
8246 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8247
8248         * c-common.c (scan_char_table): Add 'w' to flags for all formats
8249         except 'n'.
8250         (check_format_info): Set 'wide' for scanf format widths.  Warn for
8251         a zero scanf width.  Make the check for writing into a constant
8252         object at the first level of indirection; at later levels, warn if
8253         any type qualifiers are encountered.
8254
8255 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
8256
8257         * reload.c (reload_inner_reg_of_subreg): New function broken out of
8258         push_reload.
8259         (push_reload): Use reload_inner_reg_of_subreg.
8260         (combine_reloads): Do not combine reloads if the input reload
8261         is a SUBREG in which the inner part will need reloading.
8262
8263         * global.c (global_alloc): Avoid passing dumpfile argument to
8264         reload routines.
8265         * toplev.c (rest_of_compilation): Likewise.
8266         * reload.h (reload): Remove dumpfile argument.  Callers changed.
8267         (debug_reload, debug_reload_to_stream): Move prototypes here.
8268         * rtl.h  (reload): Remove dumpfile argument.
8269         * reload.c (debug_reload): Remove prototype.
8270         (debug_reload_to_stream): Likewise.
8271         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
8272         instead.
8273
8274 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8275
8276         * diagnostic.c (context_as_prefix): Export.
8277         (need_error_newline): Remove.
8278         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
8279         (error_module_changed, record_last_error_module,
8280         error_function_changed, record_last_error_function): New functions.
8281         (initialize_diagnostics): Default intialize
8282         lang_diagnostic_starter, lang_diagnostic_finalizer.
8283         (init_output_buffer): Tweak.
8284         (file_name_as_prefix): New function.
8285         (announce_function, default_print_error_function,
8286         report_error_function, set_diagnostic_context): Tweak.
8287
8288 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
8289
8290         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
8291         condition expression.
8292
8293 2000-08-20  Richard Henderson  <rth@cygnus.com>
8294
8295         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
8296
8297 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
8298
8299         * cppinit.c (cpp_init): Set global flag when called.
8300         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
8301
8302 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
8303
8304         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
8305         before `process_directive' so that newlines won't be missed
8306         for directives.
8307         (cpp_printf): Increment `print->lineno' when newline is emitted.
8308
8309         * cppmain.c (cb_ident): Likewise.
8310         (cb_define): Likewise.
8311         (cb_undef): Likewise.
8312         (cb_include): Likewise.
8313         (cb_def_pragma): Likewise.
8314         (dump_macros_helper): Likewise.
8315
8316 2000-08-20  Richard Henderson  <rth@cygnus.com>
8317
8318         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
8319         assigned before a loop.
8320
8321         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
8322         (ashrsi3, lshrsi3): Likewise.
8323
8324 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
8325
8326         * c-lang.c: #include diagnostic.h
8327         (c_tree_printer): New function.
8328         (lang_init): Initialize lang_printer.
8329
8330         * Makefile.in (c-lang.o): Depends on diagnostic.h
8331
8332 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
8333
8334         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
8335
8336         * diagnostic.c (default_diagnostic_starter,
8337         default_diagnostic_finalizer): New functions.
8338         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
8339         (pedwarn, pedwarn_with_file_and_line, error,
8340         error_with_file_and_line, fatal, warning,
8341         warning_with_file_and_line): Adjust call to report_diagnostic.
8342         (report_diagnostic): Rework.
8343         (set_diagnostic_context): New function.
8344
8345         * diagnostic.h (struct diagnostic_context): New data structure.
8346         (diagnostic_message, diagnostic_argument_list,
8347         diagnostic_file_location, diagnostic_line_location,
8348         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
8349         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
8350         (set_diagnostic_context): Declare.
8351         (report_diagnostic): Change prototype.
8352
8353 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
8354
8355         * fix-header.c (main): Initialize cpplib.
8356
8357 2000-08-19  Michael Meissner  <meissner@redhat.com>
8358
8359         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
8360         instructions in it before checking for indirect jumps.
8361
8362         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
8363         in a indirect jump as a potential for conditional execution.
8364
8365         * d30v.h (d30v_init_expanders): Don't declare here.
8366         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
8367         prototype.
8368
8369 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
8370
8371         * cpp.texi: Add @section for assertions.
8372
8373 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
8374
8375         * loop.c (scan_loop): Use CONST_CALL_P instead of
8376         checking for REG_LIBCALL / REG_RETVAL.
8377
8378 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
8379
8380         * reload1.c (reload_as_needed): Accept dumpfile argument,
8381         pass it to emit_reload_insns.
8382         (emit_reload_insns): Add new dumpfile argument.  If non-null
8383         then dump the reloads for each insn into the dumpfile.
8384         (reload): Pass dumpfile to reload_as_needed.
8385
8386         * invoke.texi: Clean up linux-gnu vs linux comments.
8387
8388 2000-08-19  Richard Henderson  <rth@cygnus.com>
8389
8390         * config/ia64/ia64.c (reg_or_5bit_operand): New.
8391         (ia64_depz_field_mask): New.
8392         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
8393         (PREDICATE_CODES): Update.
8394         * config/ia64/ia64.md: Update commentary.
8395         (depz_internal): New.
8396         (ashlsi3): Implement directly.
8397         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
8398         (ashldi3): Use shladd.
8399         * config/ia64/ia64-protos.h: Update.
8400
8401 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
8402
8403         * toplev.c (independent_decode_option): Always process -g.
8404         Remove third argument, now unused.  Adjust caller to match.
8405
8406 2000-08-18  Richard Henderson  <rth@cygnus.com>
8407
8408         * combine.c (make_compound_operation): Break after creating
8409         the extraction.
8410
8411 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
8412
8413         * cpplib.c (cpp_register_pragma_space): Just return if the
8414         namespace is already registered.
8415
8416 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
8417
8418         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
8419         constant amount.  Do not generate ROTL instruction.
8420
8421 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
8422
8423         * config/sh/elf.h: Do not include sh/sh.h.
8424         * config/sh/rtems.h: Likewise.
8425         * config/sh/rtemself.h: Do not include sh/elf.h.
8426         * configure.in: Get them included with `tm_file's.
8427         * configure: Rebuilt.
8428
8429         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
8430         * config/sh/sh.c (fpscr_set_from_mem): Use them.
8431
8432 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8433
8434         * stor-layout.c (compute_record_type): Don't use mode of single
8435         field as mode of record if not integer mode of same type.
8436
8437         * regmove.c (perhaps_ends_bb_p): New function.
8438         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
8439         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
8440         (fixup_match_1): Likewise.
8441         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
8442         avoid signed/unsigned warnings.
8443
8444         * function.c (fixup_var_refs_1, case MEM): Update CODE after
8445         updating X.
8446
8447 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
8448
8449         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
8450         (_cpp_trigraph_map): Declaration moved from cpplex.c
8451
8452         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
8453         instead of 256.  Use consistent test for designated initializers.
8454         (cpp_init): Initialize trigraph_map.
8455         (initialize_standard_includes, parse_option):  Use memcmp
8456         instead of strncmp.
8457
8458         * cpplex.c (init_trigraph_map): Remove.
8459         (trigraph_ok, trigraph_replace, lex_line): Refer to
8460         _cpp_trigraph_map.
8461
8462         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
8463         (do_unassert): Remove unused "next" local.
8464
8465         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
8466
8467 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
8468
8469         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
8470         insn.
8471
8472 2000-08-17  Richard Henderson  <rth@cygnus.com>
8473
8474         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
8475         the first insn in a sequence.
8476
8477 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
8478
8479         * alias.c (true_dependence, write_dependence_p): A read
8480         involving a label_ref or the constant pool doesn't create
8481         a dependency.
8482
8483         * rtl.h (unchanging): Improve documentation.
8484
8485 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
8486
8487         * cse.c (insert_regs): Remove unused `regno'.
8488
8489 2000-08-17  Neil Booth  <NeilB@earthling.net>
8490
8491         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
8492         remove_dup_dirs.  If qtail == brack, remove brack not
8493         qtail.
8494         (remove_dup_dir, remove_dup_dirs): New functions.
8495
8496 2000-08-17  Neil Booth  <NeilB@earthling.net>
8497
8498         * cppinit.c (cpp_cleanup): Free include dir chains.
8499         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
8500         (do_unassert): Free the assert with _cpp_free_definition.
8501         * cppmacro.c (_cpp_free_definition): Free memory allocated for
8502         assertions.  Make the node a T_VOID node.
8503
8504 2000-08-17  Neil Booth  <NeilB@earthling.net>
8505
8506         * cppinit.c (path_include, append_include_chain):
8507         Remove 2nd parameter (struct cpp_pending *).
8508         (path_include, initialize_standard_includes, cpp_handle_option):
8509         Update callers appropriately.
8510         (cpp_handle_option): Use pend.
8511
8512 2000-08-17  Neil Booth  <NeilB@earthling.net>
8513
8514         * cppinit.c (sort_options): Remove, put functionality in
8515         cpp_init.
8516         (cpp_init): New.
8517         (initialize_builtins): Free memory.
8518         (cpp_start_read): Move init_IStable to cpp_init.
8519
8520         * cpplib.h (cpp_init): New prototype.
8521         * cppmain.c (main): Call cpp_init.
8522
8523 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
8524
8525         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
8526         (rtx_unstable_p, rtx_varies_p): Process vectors.
8527
8528 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
8529
8530         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
8531         references to GLOBAL symbols.  Use LOCAL where appropriate.
8532
8533 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8534
8535         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
8536         use t-aix41 when host == target.
8537
8538 2000-08-16  Richard Henderson  <rth@cygnus.com>
8539
8540         * reload.c (push_secondary_reload): Revert last change.
8541         If we use a reload_in/out pattern, make the when the same
8542         as the primary reload.
8543         (find_reloads): Likewise.
8544
8545 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
8546
8547         * configure.in (libstdcxx-v3): Fix test.
8548         * configure: Regenerate.
8549
8550 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8551
8552         * calls.c (calls_function_1, expand_call): Only test
8553         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
8554         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8555
8556 2000-08-16  Richard Henderson  <rth@cygnus.com>
8557
8558         * combine.c (simplify_shift_const): Revert previous two
8559         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
8560         before the main loop.
8561
8562 2000-08-15  Richard Henderson  <rth@cygnus.com>
8563
8564         * combine.c (simplify_shift_const): Bound shift count when
8565         combining shifts.
8566
8567 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8568
8569         * calls.c (ECF_SP_DEPRESSED): New macro.
8570         (calls_function_1): Treat calling sp-depressed function as alloca.
8571         (emit_call_1): Don't adjust SP if calling sp-depressed function.
8572         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
8573         If sp-depressed, ensure block saves and restores SP.
8574         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
8575         for INTEGER_TYPE.
8576         * function.c (keep_stack_depressed): New function.
8577         (thread_prologue_and_epilogue_insns): Call it.
8578         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
8579         to print DECL_OFFSET_ALIGN.
8580         Print no-force-blk and transparent-union flags properly.
8581         * stmt.c (expand_goto_internal): Don't restore stack if last block
8582         and function returns with sp depressed.
8583         (fixup_gotos): Likewise.
8584         (save_stack_pointer): New function, from code in expand_decl.
8585         (expand_decl): Call new function.
8586         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
8587         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
8588         (save_stack_pointer): New declaration.
8589
8590         * diagnostic.c (fatal_function): New variable.
8591         (set_fatal_function): New function.
8592         (fatal): Call it.
8593         * diagnostic.h (set_fatal_function): New declaration.
8594
8595 2000-08-15  William Cohen  <wcohen@redhat.com>
8596
8597         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
8598         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
8599         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
8600
8601 2000-08-15  Richard Henderson  <rth@cygnus.com>
8602
8603         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
8604
8605 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
8606
8607         * arm.c (arm_function_ok_for_sibcall): New function.
8608         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
8609         * arm.md (call expanders): Don't check here for calls that can't
8610         be sibling calls.
8611
8612 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
8613
8614         * arm.md (splits generating cond_exec): Disable.
8615
8616 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
8617
8618         * arm/linux-elf.h (text_section): Delete declaration.
8619
8620 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
8621
8622         ARM support for unordered FP operations.
8623         * arm-protos.h (arm_comparison_operator): Declare.
8624         * arm.c (arm_comparison_operator): New function.
8625         (arm_select_cc_mode): Add unordered comparison codes.
8626         (get_arm_condition_code): Likewise.
8627         (arm_final_prescan_insn): Can't handle unordered jumps that can't
8628         be done in one insn.
8629         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
8630         * arm.md (all uses of comparison_operator): Replace with
8631         arm_comparison_operator.
8632         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
8633         expands.
8634         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
8635         patterns.
8636
8637 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
8638
8639         * gthr-posix.h: Conditionally include <sched.h>; include
8640         <config.h> from libobjc/.
8641
8642 2000-08-14  Richard Henderson  <rth@cygnus.com>
8643
8644         * config/i386/i386.c (legitimize_pic_address): Use Pmode
8645         for all CONSTs.
8646
8647 2000-08-14  Richard Henderson  <rth@cygnus.com>
8648
8649         * configure.in (ia64-*): Set float_format for i386 long double.
8650
8651         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
8652         as we would for i386 XFmode.
8653         (PUT_REAL): Likewise.
8654         (endian, ereal_atof, real_value_truncate): Likewise.
8655         (ereal_isneg, toe64, etens, make_nan): Likewise.
8656         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
8657
8658         * config/ia64/ia64-protos.h: Update.
8659         * config/ia64/ia64.c (general_tfmode_operand): New.
8660         (destination_tfmode_operand): New.
8661         (tfreg_or_fp01_operand): New.
8662         (ia64_split_timode): New.
8663         (spill_tfmode_operand): New.
8664         (ia64_expand_prologue): Use TFmode not XFmode.
8665         (ia64_expand_epilogue): Likewise.
8666         (ia64_function_arg): Likewise.
8667         (ia64_function_arg_advance): Likewise.
8668         (ia64_return_in_memory): Likewise.
8669         (ia64_function_value): Likewise.
8670         (ia64_print_operand): Likewise.
8671         (ia64_register_move_cost): Set GR<->FR to 5.
8672         (ia64_secondary_reload_class): Get GR for TImode memory op.
8673         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
8674         (ROUND_TYPE_ALIGN): Remove.
8675         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
8676         (INTEL_EXTENDED_IEEE_FORMAT): Define.
8677         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
8678         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
8679         (MODES_TIEABLE_P): Use TFmode, not XFmode.
8680         (CLASS_MAX_NREGS): Likewise.
8681         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
8682         (PREDICATE_CODES): Update.
8683         * config/ia64/ia64.md (movti): New.
8684         (movti_internal): Use a clobber for memory alternatives.
8685         (reload_inti, reload_outti): New.
8686         (movsfcc_astep): Predicate properly.
8687         (movdfcc_astep): Likewise.
8688         (movxf): Remove.
8689         (movtf): New.
8690         (extendsftf2, extenddftf2): New.
8691         (trunctfsf2, trunctfdf2): New.
8692         (floatditf2, fix_trunctfdi2): New.
8693         (floatunsditf2, fixuns_trunctfdi2): New.
8694         (addtf3, subtf3, multf3, abstf2): New.
8695         (negtf2, nabstf2, mintf3, maxtf3): New.
8696         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
8697         (cmptf): New.
8698         (fr_spill): Use TFmode, not XFmode.
8699         (fr_restore): Likewise.
8700         * config/ia64/lib1funcs.asm (__divtf3): New.
8701         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
8702
8703 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8704
8705         * cse.c (fold_rtx): Avoid empty body in an if-statement.
8706
8707         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
8708         `U' integer constant suffix.
8709
8710         * dwarf2out.c (add_subscript_info): Avoid empty body in an
8711         else-statement.
8712
8713         * sparc/sol2.h (__enable_execute_stack): Prototype.
8714
8715 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
8716
8717         * collect2.c: Remove use of AIX import file.
8718
8719         * longlong.h: Test ARCH_PWR not ARCH_POWER.
8720
8721         * rs6000.c (print_operand, case 'E'): Add else.
8722
8723 2000-08-14  Richard Henderson  <rth@cygnus.com>
8724
8725         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
8726         (movdi_symbolic): New.
8727
8728 2000-08-14  Jim Wilson  <wilson@cygnus.com>
8729
8730         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
8731         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
8732         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
8733         to GNU as.
8734
8735 2000-08-14  Richard Henderson  <rth@cygnus.com>
8736
8737         * expr.c (emit_group_load): Don't force constants into registers.
8738         Special case source already in the correct mode.
8739
8740 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
8741
8742         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
8743         * fixinc/inclhack.def: Likewise.
8744         * fixinc/mkfixinc.sh: Likewise.
8745         * configure: Regenerate.
8746         * fixinc/fixincl.x: Regenerate.
8747         * install.texi: Document equivalence of linux and linux-gnu.
8748
8749 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8750
8751         * cse.c (insert_regs): Also in REG case: When finding an invalid
8752         value, and we make a new quantity, make sure that it won't be
8753         mistaken by for a valid one by mention_regs.
8754
8755 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
8756
8757         * h8300.md: Remove obsolete peepholes.
8758
8759 2000-08-13  Kazu Hirata  <kazu@hxi.com>
8760
8761         * invoke.texi (H8/300 Options): Fix typos.
8762         * config/h8300.c: Fix formatting.
8763         * config/h8300.h: Fix comment typos.
8764         (OVERRIDE_OPTIONS): Fix formatting.
8765
8766         * function.c: Fix formatting.
8767
8768         * cse.c: Fix formatting.
8769
8770 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
8771
8772         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
8773         (attempt_auto_inc): Suppress parentheses warning.
8774         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
8775         * loop.c (load_mems): Remove `u' suffix in two places.
8776         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
8777         hex constants.
8778         * config/rs6000/rs6000.h: Likewise.
8779         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
8780         __eabi dummy routine.
8781         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
8782         variable `buf_ptr'.
8783
8784         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
8785         not put stuff in .sdata unnecessarily.
8786         (rs6000_unique_section): New function.
8787         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
8788         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
8789
8790         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
8791         arrays in C99.  Don't try to look at DECL_REGISTER of a
8792         COMPONENT_REF.  Don't complain twice about the same error.
8793
8794         * fixinc/inclhack.def (aix_pthread): New fix.
8795         (aix_sysmachine): New fix.
8796         * fixinc/fixincl.x: Regenerate.
8797
8798         * expr.c (expand_expr): Call convert_modes when turning a large
8799         multiply into a small one.
8800
8801 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
8802
8803         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
8804         the tree structure an exponent rather than an explicit alignment
8805         so it doesn't overflow.
8806         (SET_DECL_OFFSET_ALIGN): New macro.
8807         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
8808         rather than DECL_OFFSET_ALIGN.
8809         (place_field): Likewise.
8810         * expmed.c (store_bit_field): Abort on align==0 to avoid
8811         antisocial machine behaviour.
8812
8813 2000-08-12  Richard Henderson  <rth@cygnus.com>
8814
8815         * sibcall.c (uses_addressof): Accept both addressof and
8816         current_function_internal_arg_pointer inside a mem.
8817         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
8818         if current_function_uses_addressof.
8819         * stmt.c (expand_return): Kill tail recursion and HAVE_return
8820         optimizations.
8821
8822 2000-08-11  Richard Henderson  <rth@cygnus.com>
8823
8824         * config/ia64/ia64.md (addsi3): Remove expander.
8825         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
8826         (*addsi3_shladd): New.
8827
8828 2000-08-11  Richard Henderson  <rth@cygnus.com>
8829
8830         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
8831         (do_restore): Likewise.
8832         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
8833         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
8834         (rtx_needs_barrier): Track actual bit manipulation for
8835         ar.unat moves, gr_spill, and gr_restore.
8836         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
8837         (process_set): Don't handle varargs spills.
8838         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
8839         .mem.offset here instead of in process_set.
8840         (gr_restore): Likewise.
8841
8842 2000-08-11  Richard Henderson  <rth@cygnus.com>
8843
8844         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
8845
8846 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
8847
8848         * gcc.texi (The Configuration File): Document
8849         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
8850         UPDATE_PATH_HOST_CANONICALIZATION.
8851
8852 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8853
8854         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
8855         unprototyped function pointer casts on integer constants.
8856
8857 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
8858
8859         * fixproto: Recognize DOS paths with drive letters as absolute paths.
8860
8861 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
8862
8863         * extend.texi (Volatiles): Fix typos.
8864
8865 2000-08-11  Kazu Hirata  <kazu@hxi.com>
8866
8867         * flow.c: Fix formatting.
8868
8869 2000-08-11  Richard Henderson  <rth@cygnus.com>
8870
8871         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
8872         pattern, always allocate a tertiary scratch register.
8873
8874         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
8875         (reload_inhi): Likewise.
8876
8877 2000-08-11  Richard Henderson  <rth@cygnus.com>
8878
8879         * function.c (put_reg_into_stack): Allow type to be NULL.
8880         (schedule_fixup_var_refs): Likewise.
8881         (gen_mem_addressof): Allow decl to be NULL.
8882         (put_addressof_into_stack): Likewise.
8883
8884         * flow.c (merge_blocks_nomove): Be more careful about
8885         locating the beginning of block A.
8886
8887         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
8888
8889 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
8890
8891         * configure.in:
8892         * configure:
8893         * gthr-posix.h:
8894         * config.in: Reverted the check for <sched.h>.
8895
8896 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
8897
8898         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
8899         macros define the name of CTOR and DTOR sections.
8900         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
8901         DTOR_LIST_END): Change to use attributes to specify
8902         sections.
8903         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
8904         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
8905         DTOR_LIST_END): Same as in mips/elf.h.
8906
8907 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
8908
8909         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
8910         disabling just crt0.o.
8911
8912 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
8913
8914         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
8915         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
8916         (EXTRA_SPECS): Add them.
8917         * arm/lib1funcs.asm: Support builds for interworking.
8918         Use macros to eliminate duplicated pieces of code.
8919
8920 2000-08-10  Kazu Hirata  <kazu@hxi.com>
8921
8922         * h8300.c (expand_a_rotate): New.
8923         (emit_a_rotate): Likewise.
8924         (h8300_adjust_insn_length): Add support for the rotate insns.
8925         * h8300.md (rotlqi3): New.
8926         (*rotlqi3_1): Likewise.
8927         (rotlhi3): Likewise.
8928         (*rotlhi3_1): Likewise.
8929         (rotlhi3): Likewise.
8930         (*rotlhi3_1): Likewise.
8931         * h8300-proto.h: Add prototypes for expand_a_rotate and
8932         emit_a_rotate.
8933
8934         * h8300.c: Fix comment typos.
8935         (dosize): Declare the variable amount as unsigned.
8936         (get_shift_alg): Fix a comparison between signed and unsigned.
8937         (emit_a_shift): Likewise.
8938         (h8300_adjust_insn_length): Simplify the code.
8939
8940         * c-decl.c: Fix formatting.
8941
8942 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8943
8944         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
8945         warning about non-traditional numeric constant suffixes.
8946
8947         * cppexp.c (parse_number): Likewise.
8948
8949         * invoke.texi: (-Wtraditional): Document new behavior.
8950
8951 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
8952
8953         * gthr-posix.h: Include auto-host.h. Conditionally include
8954         <sched.h>.
8955         * configure.in: Check for the <sched.h> header file.
8956         * config.in: Added define for HAVE_SCHED_H.
8957
8958 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8959
8960         * c-typeck.c (process_init_element): For -Wtraditional, warn about
8961         initialization of unions.
8962
8963         * invoke.texi (-Wtraditional): Document new behavior.
8964
8965 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
8966
8967         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
8968         instead of extra_c_flags.
8969         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
8970         * configure: Regenerate.
8971         * config.in: Regenerate.
8972
8973         * cpperror.c (cpp_type2name): New function.
8974         * cpplex.c (lex_line): If we issued an error for an invalid
8975         preprocessing directive, discard that logical line.
8976         * cpplib.c (do_line): Call a hook function if the current file
8977         is renamed by #line.
8978         (do_ident): Pass the contents of the string, not the entire
8979         token, to the callback function.
8980         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
8981         (cb.rename_file): New hook function.
8982         (cb.ident): Adjust prototype.
8983         (cpp_type2name): Prototype.
8984         * cppmacro.c (dump_macro_args): Correct precedence lossage.
8985
8986         * cppmain.c (cb_ident): Update for changed interface.
8987         (cb_rename_file): New function.
8988         (main): Set rename callback.
8989
8990 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
8991
8992         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
8993         multi-word registers.
8994
8995 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8996
8997         * c-common.c (combine_strings, check_format_info): Refer to ISO C
8998         or ISO C89 instead of ANSI C.
8999         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
9000         build_enumerator, do_case): Likewise.
9001         * c-lex.c (parse_float, yylex): Likewise.
9002         * c-parse.in: Likewise.
9003         * c-typeck.c (common_type, build_array_ref, build_binary_op,
9004         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
9005         build_c_cast, convert_for_assignment, set_init_index,
9006         set_init_label, c_expand_start_case): Likewise.
9007         * toplev.c (documented_lang_options, display_help): Likewise.
9008
9009 2000-08-08  Kazu Hirata  <kazu@hxi.com>
9010
9011         * h8300.c: Fix formatting.
9012         * h8300.h: Likewise.
9013         * h8300.md: Likewise.
9014         (movsi_h8300hs): Fix formatting of the resulting assembly code.
9015
9016         * reload1.c: Fix formatting.
9017
9018 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
9019
9020         * alpha/alpha.c (alpha_emit_xfloating_libcall):
9021         Use GEN_CALL_VALUE define.
9022         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
9023         * clipper/clipper.md (untyped_call): Likewise.
9024         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
9025         * fx80/fx80.md (untyped_call): Likewise.
9026         * mips/mips.md (untyped_call): Likewise.
9027         * ns32k/ns32k.md (untyped_call): Likewise.
9028         * pa/pa.md (untyped_call): Likewise.
9029         * romp/romp.md (untyped_call): Likewise.
9030         * sparc/sparc.md (untyped_call): Likewise.
9031
9032 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
9033
9034         * config/i860/i860.c (singlemove_string): Do not generate assembler
9035         pseudo instructions that must be expanded (that is, with signed
9036         constants larger than 16 bits).
9037
9038 2000-08-08  Richard Henderson  <rth@cygnus.com>
9039
9040         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
9041         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
9042         (init_propagate_block_info): Don't kill memory stores at -O0.
9043         (mark_set_1, mark_used_regs): Likewise.
9044
9045 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
9046
9047         * rs6000.c (optimization_options): Decorate 'level' as
9048         ATTRIBUTE_UNUSED.
9049         (mask64_operand): Remove sign-extend thinko.
9050         (rldic_operand): New function.
9051         (load_multiple_operation): regno's are unsigned ints.
9052         (store_multiple_operation): Likewise.
9053         (lmw_operation): Likewise.
9054         (stmw_operation): Likewise.
9055         (includes_lshift_p): shift_mask is unsigned int.
9056         (includes_lshift64_p): New function.
9057         (addrs_ok_for_quad_peep): unsigned int reg1.
9058         (print_operand): Consistently add "else" after
9059         output_operand_lossage().
9060         (print_operand, case 'b'): Fold in case 'W'.
9061         (print_operand, case 'W'): Print rldic MB value.
9062         (output_epilogue): Update Objective-C language string.
9063         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
9064         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
9065         * rs6000.md (ashldi3): Add rldic instruction.
9066         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
9067         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
9068         modifier.
9069
9070 2000-08-08  Richard Henderson  <rth@cygnus.com>
9071
9072         * config/ia64/ia64-protos.h: Remove duplicates.  Update
9073         for massive code rearrangements.
9074         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
9075         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
9076         (ia64_local_regs, ia64_need_regstk): Remove.
9077         (ar_ccv_reg_operand): New.
9078         (ia64_gp_save_reg): New.
9079         (struct ia64_frame_info): Combine most of the size elements;
9080         add new gr save elements.
9081         (find_gr_spill): New.
9082         (next_scratch_gr_reg): New.
9083         (mark_reg_gr_used_mask): New.
9084         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
9085         to GR backing store regs when possible.
9086         (ia64_initial_elimination_offset): New.
9087         (ia64_rap_fp_offset): Remove.
9088         (save_restore_insns): Remove.
9089         (setup_spill_pointers): New.
9090         (finish_spill_pointers): New.
9091         (spill_restore_mem): New.
9092         (do_spill, do_restore): New.
9093         (ia64_expand_prologue): Rewrite to use them.
9094         (ia64_expand_epilogue): Likewise.
9095         (ia64_direct_return): Update for current_frame_info changes.
9096         (ia64_function_prologue): Simplify .prologue emission.  Emit
9097         .spill when needed.
9098         (ia64_setup_incoming_varargs): Don't ever emit rtl.
9099         (ia64_dbx_register_number): New.
9100         (ia64_initialize_trampoline): New.
9101         (ia64_secondary_reload_class): Request GR_REGS for integer
9102         arithmetic destined for FR_REGS.
9103         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
9104         (ia64_mark_machine_status): Mark ia64_gp_save.
9105         (rws_access_regno): Rename from rws_access_reg; don't treat
9106         predicates specially.
9107         (rws_access_reg): New.  Update all callers.
9108         (rtx_needs_barrier): Remove dead unspecs.
9109         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
9110         (ia64_encode_section_info): Silence signed/unsigned warnings.
9111         (spill_offset, sp_offset, spill_offset_emitted): Remove.
9112         (tmp_reg, tmp_saved): Remove.
9113         (process_set): Rewrite to expect complicated bits via
9114         REG_FRAME_RELATED_EXPR.
9115         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
9116         in the use of ar.ccv; never set RTX_UNCHANGING_P.
9117         (ia64_expand_op_and_fetch): Likewise.
9118         (ia64_expand_compare_and_swap): Likewise.
9119         (ia64_expand_builtin): Likewise.
9120         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
9121         (FIRST_PSEUDO_REGISTER): Update.
9122         (AR_M_REGNO_P): Update.
9123         (FIXED_REGS): Don't mark three local registers as used.
9124         (EXTRA_CC_MODES): New.
9125         (SELECT_CC_MODE): New.
9126         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
9127         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
9128         (FRAME_GROWS_DOWNWARD): Unset.
9129         (STARTING_FRAME_OFFSET): Zero.
9130         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
9131         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
9132         (HARD_FRAME_POINTER_REGNUM): New.
9133         (CAN_DEBUG_WITHOUT_FP): Define.
9134         (TRAMPOLINE_TEMPLATE): Remove.
9135         (TRAMPOLINE_SIZE): Lower to 32.
9136         (TRAMPOLINE_ALIGNMENT): Lower to 64.
9137         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
9138         (PREDICATE_CODES): Update.
9139         (struct machine_function): Add ia64_gp_save.
9140         * config/ia64/ia64.md: Purge unused unspecs.
9141         (movsi patterns): Allow moves to/from AR_M_REGS.
9142         (movdi patterns): Allow moves to/from p0.
9143         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
9144         (gr_spill, gr_restore): Indicate ar.unat read/written.
9145         (nonlocal_goto): Don't pass old frame_pointer.
9146         (nonlocal_goto_receiver): Remove.
9147         (exception_receiver): New.
9148         (builtin_setjmp_setup): New.
9149         (builtin_setjmp_receiver): New.
9150         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
9151         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
9152         (__ia64_restore_stack_nonlocal): Likewise.
9153         (__ia64_trampoline): New.
9154         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
9155         function.
9156         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
9157
9158 2000-08-08  Richard Henderson  <rth@cygnus.com>
9159
9160         * frame.h (ia64_frame_state): Add my_psp.
9161         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
9162         (__throw): Pass it in.  Don't clobber r7.
9163         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
9164         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
9165         and nothing to do with sp.
9166         (normalize_reg_loc): Use frame->my_psp.
9167         (frame_translate): Handle frame-pointer-less functions.  Set
9168         spill_base correctly, in absence of being told.
9169         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
9170         (__ia64_backtrace_helper): New sp argument.  Use
9171         builtin_return_address instead of label addresses.
9172         (print_record) [mem_stack_v]: No size member.
9173
9174 2000-08-08  Richard Henderson  <rth@cygnus.com>
9175
9176         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
9177
9178 2000-08-08  Richard Henderson  <rth@cygnus.com>
9179
9180         * tm.texi (LOCAL_REGNO): Document.
9181         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
9182         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
9183         * reload1.c (reload): Likewise when considering nonlocal labels.
9184
9185         * config/ia64/ia64.h (LOCAL_REGNO): New.
9186         * config/sparc/sparc.h (LOCAL_REGNO): New.
9187
9188 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9189
9190         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
9191
9192 2000-08-07  Nick Clifton  <nickc@redhat.com>
9193
9194         * config/mips/mips.c: Fix compile time warning messages.
9195         * config/mips/mips-protos.h: Add prototype for equality_op.
9196
9197         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
9198
9199 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
9200
9201         * mn10300.md: Use nonimmediate_operand instead of general_operand
9202         on output operands.
9203
9204         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
9205
9206 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
9207
9208         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
9209         * sh.c (expand_block_move): Break long lines.
9210         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
9211         * sh.md (mulsi3): Likewise.
9212         (movdi): Adjust spacing.
9213
9214 2000-08-07  Richard Henderson  <rth@cygnus.com>
9215
9216         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
9217         * expr.c (emit_group_store): Don't set it.
9218
9219 2000-08-07  Kazu Hirata  <kazu@hxi.com>
9220
9221         * invoke.texi (Options for Debugging Your Program or GCC): Remove
9222         duplicate entries for 'w' and 'z'.
9223
9224         * flow.c: Fix a comment typo.
9225
9226 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
9227
9228         * c-parse.in: Changed the language string for Objective-C to "GNU
9229         Objective-C".
9230
9231 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
9232
9233         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
9234         to improve the Posix thread support for Objective-C.
9235
9236 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
9237
9238         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
9239         CTI_UNSIGNED_PTRDIFF_TYPE.
9240         (signed_size_type_node): Define.
9241         (unsigned_ptrdiff_type_node): Define.
9242         * c-decl.c (init_decl_processing): Create the
9243         signed_size_type_node and unsigned_ptrdiff_type_node types.
9244         * c-common.c (T_SC): Define.
9245         (T_SST): Define.
9246         (T_UPD): Define.
9247         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
9248         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
9249         %s and %p.
9250         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
9251         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
9252         flags for %c, %s and %[.
9253         (check_format_info): Only allow leniency for signedness of targets
9254         of character pointers (when pedantic) for formats flagged with
9255         "c", so for strings but not for %hh formats.  When pedantic, don't
9256         allow character pointers to substitute for void pointers if a
9257         second level of indirection is present.
9258
9259 2000-08-06  Kazu Hirata  <kazu@hxi.com>
9260
9261         * invoke.texi (Options for Debugging Your Program or GCC): Update
9262         the names of dump files.
9263
9264         * h8300.c (dosize): Rearrange code for conciseness.
9265         (split_adds_subs): Likewise.
9266
9267         * loop.c: Fix formatting.
9268
9269         * dwarf2out.c: Fix formatting.
9270
9271         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
9272
9273         * expr.c: Fix formatting.
9274
9275 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9276
9277         * rs6000.c (rs6000_maybe_dead): Prototype.
9278
9279 2000-08-06  Richard Henderson  <rth@cygnus.com>
9280
9281         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
9282         HAVE_nonlocal_goto as well.
9283         * config/i960/i960.md (nonlocal_goto): Don't do it here.
9284         * config/pj/pj.md (nonlocal_goto): Likewise.
9285
9286 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
9287
9288         * loop.c (try_swap_copy_prop): New function.
9289         (load_mems): Rename copies to load_copies and add new regset
9290         store_copies.  Check for sets of shadow registers and mark
9291         in store_copies.   Call try_swap_copy_prop for registers
9292         marked in store_copies.
9293
9294 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
9295
9296         * objc/objc-act.c: New command line option -fconstant-string-class
9297         to allow specifying a user defined constant string class,
9298         different from NXConstantString.
9299
9300         * toplev.c: Moved the Objective-C specific options to
9301         objc/lang-options.h.
9302
9303         * objc/lang-options.h: Moved the Objective-C specific options from
9304         toplev.c. Added -fconstant-string-class.
9305
9306 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
9307
9308         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
9309         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
9310         __CTOR_LIST__ from func_ptr array to just func_ptr, to
9311         avoid extra alignment imposed on arrays.
9312         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
9313         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
9314
9315         * mips.h: Clean up comments and spacing near MASKs.
9316         (TARGET_UNIX_ASM): Delete.
9317         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
9318         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
9319         values contiguous.
9320
9321 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
9322
9323         * c-common.c (print_char_table): Add entries for the X/Open '
9324         format flag (print decimals with locale's thousands grouping
9325         character).  Make %C expect wint_t.
9326         (check_format_info): If pedantic, warn when the %n$ operand
9327         number form is used.  Allow for the ' flag; warn about it if
9328         pedantic.
9329
9330 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
9331
9332         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
9333         type is a float mode, cfun->decl's return type is not, and
9334         TARGET_FLOAT_RETURNS_IN_80387.
9335
9336 2000-08-04  Andreas Schwab  <schwab@suse.de>
9337
9338         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
9339         token list, which are always `#' and `pragma'.
9340
9341 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
9342
9343         * tree.c (tree_expr_nonnegative_p): Move to...
9344         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
9345         (rtl_expr_nonnegative_p): New.
9346         * tree.h: Add prototype for rtl_expr_nonnegative_p.
9347
9348         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
9349         CONST_DOUBLE_CHAIN: Move to...
9350         * rtl.h: ...here.  Use XCINT/XCEXP.
9351
9352         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
9353         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
9354         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
9355         to VOL_FILES.
9356
9357         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
9358
9359 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9360
9361         * config/c4x/c4x.md (return_indirect_internal): New.
9362         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
9363
9364 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9365
9366         * c-common.c (time_char_table): Mark up formats added in C99 and
9367         make other corrections.  %D and %g were added in C99.  %Og is an
9368         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
9369         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
9370         C99 rather than GNU extensions, but %OG and %Oz are extensions.
9371         %h was added in C99.  %C was added in C99.  %OY and %OC are
9372         extensions.  Add the C99 format %F.
9373         (check_format_info): If pedantic and not in C99 mode, warn for C99
9374         formats, %E and %O.
9375
9376 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9377
9378         * function.c (schedule_fixup_var_refs): New function, broken out
9379         of put_reg_into_stack.
9380         (put_reg_into_stack): Use it.
9381         (put_var_into_stack): In CONCAT case, fixup up references for
9382         components only after fixing up references to the whole concat.
9383
9384 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
9385
9386         * alias.c (mark_constant_function): Use INSN_P.
9387         (init_alias_analysis): Likewise.
9388         * combine.c (combine_instructions): Use INSN_P.
9389         (can_combine_p): Likewise.
9390         (try_combine): Likewise.
9391         (distribute_notes): Likewise.
9392         (distribute_links): Likewise.
9393         * cse.c (cse_around_loop): Use INSN_P.
9394         (invalidate_skipped_block): Likewise.
9395         (cse_set_around_loop): Likewise.
9396         (cse_end_of_basic_block): Likewise.
9397         (delete_trivially_dead_insns): Likewise.
9398         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
9399         (unshare_all_rtl_1): Likewise.
9400         (next_cc0_user): Likewise.
9401         (try_split make_insn_raw): Likewise.
9402         (remove_unnecessary_notes): Likewise.
9403         * final.c (shorten_branches): Use INSN_P.
9404         (leaf_renumber_regs): Likewise.
9405         (leaf_renumber_regs_insn): Likewise.
9406         * flow.c (find_label_refs): Use INSN_P.
9407         (verify_wide_reg): Likewise.
9408         (notice_stack_pointer_modification): Likewise.
9409         (count_or_remove_death_notes): Likewise.
9410         (verify_flow_info): Likewise.
9411         (clear_log_links): Likewise.
9412         * function.c (fixup_var_refs_insns): Use INSN_P.
9413         (compute_insns_for_mem): Likewise.
9414         * gcse.c (alloc_gcse_mem): Use INSN_P.
9415         (compute_sets): Likewise.
9416         (compute_hash_table): Likewise.
9417         (classic_gcse): Likewise.
9418         (cprop): Likewise.
9419         (insert_insn_end_bb): Likewise.
9420         (delete_null_pointer_checks_1): Likewise.
9421         * global.c (expand_preferences): Use INSN_P.
9422         (build_insn_chain): Likewise.
9423         * graph.c (node_data): Use INSN_P.
9424         * haifa-sched.c (priority): Use INSN_P.
9425         (rm_line_notes): Likewise.
9426         (rm_other_notes): Likewise.
9427         (find_insn_reg_weight): Likewise.
9428         (init_target_units): Likewise.
9429         (schedule_block): Likewise.
9430         (compute_block_forward_dependences): Likewise.
9431         (debug_dependencies): Likewise.
9432         (set_priorities): Likewise.
9433         * integrate.c (function_cannot_inline_p): Use INSN_P.
9434         (save_parm_insns): Likewise.
9435         (copy_insn_list): Likewise.
9436         * jump.c (mark_all_labels): Use INSN_P.
9437         (never_reached_warning): Likewise.
9438         * lcm.c (optimize_mode_switching): Use INSN_P.
9439         * local-alloc.c (validate_equiv_mem): Use INSN_P.
9440         (memref_used_between_p): Likewise.
9441         (update_equiv_regs): Likewise.
9442         (block_alloc): Likewise.
9443         (no_conflict_p): Likewise.
9444         * loop.c (scan_loop): Use INSN_P.
9445         (find_and_verify_loops): Likewise.
9446         (count_loop_regs_set): Likewise.
9447         (loop_reg_used_before_p): Likewise.
9448         (strength_reduce): Likewise.
9449         (recombine_givs): Likewise.
9450         (check_dbra_loop): Likewise.
9451         (load_mems): Likewise.
9452         (try_copy_prop): Likewise.
9453         * print-rtl.c (print_rtx): Use INSN_P.
9454         * recog.c (find_single_use): Use INSN_P.
9455         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
9456         (next_flags_user): Likewise.
9457         (swap_rtx_condition): Likewise.
9458         * regmove.c (mark_flags_life_zones): Use INSN_P.
9459         (optimize_reg_copy_1): Likewise.
9460         (optimize_reg_copy_2): Likewise.
9461         (optimize_reg_copy_3): Likewise.
9462         (reg_is_remote_constant_p): Likewise.
9463         (fixup_match_2): Likewise.
9464         (regmove_optimize): Likewise.
9465         (fixup_match_1): Likewise.
9466         * regrename.c (build_def_use): Use INSN_P.
9467         (replace_reg_in_block): Likewise.
9468         (consider_use): Likewise.
9469         * reload.c (find_equiv_reg): Use INSN_P.
9470         * reload1.c (reload): Use INSN_P.
9471         (maybe_fix_stack_asms): Likewise.
9472         (calculate_needs_all_insns): Likewise.
9473         (reload_as_needed): Likewise.
9474         (emit_output_reload_insns): Likewise.
9475         (delete_address_reloads_1): Likewise.
9476         (reload_cse_regs_1): Likewise.
9477         (reload_combine): Likewise.
9478         (reload_cse_move2add): Likewise.
9479         * reorg.c (redundant_insn): Use INSN_P.
9480         (dbr_schedule): Likewise.
9481         * resource.c (find_dead_or_set_registers): Use INSN_P.
9482         (mark_target_live_regs): Likewise.
9483         * rtlanal.c (reg_used_between_p): Use INSN_P.
9484         (reg_referenced_between_p): Likewise.
9485         (reg_set_between_p): Likewise.
9486         (reg_set_p): Likewise.
9487         (single_set): Likewise.
9488         (multiple_sets): Likewise.
9489         (find_last_value): Likewise.
9490         (reg_set_last): Likewise.
9491         (find_reg_note): Likewise.
9492         (find_regno_note): Likewise.
9493         * sibcall.c (sequence_uses_addressof): Use INSN_P.
9494         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
9495         * ssa.c (find_evaluations): Use INSN_P.
9496         (rename_block): Likewise.
9497         (rename_equivalent_regs): Likewise.
9498         * unroll.c (loop_find_equiv_value): Use INSN_P.
9499         (set_dominates_use): Likewise.
9500         * varasm.c (mark_constant_pool): Use INSN_P.
9501         (mark_constants): Likewise.
9502         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
9503         (alphaev4_next_group): Likewise.
9504         (alphaev5_next_group): Likewise.
9505         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
9506         (c4x_rptb_rpts_p): Likewise.
9507         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
9508         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
9509         (rs6000_adjust_priority): Likewise.
9510         * config/sh/sh.c (sh_loop_align): Use INSN_P.
9511         (machine_dependent_reorg): Likewise.
9512         (split_branches): Likewise.
9513         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
9514
9515 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
9516
9517         * combine.c (recog_for_combine): Remove the old notes
9518         prior to attempting to recognize the new pattern.
9519         (distribute_notes): Ignore REG_NONNEG notes.
9520
9521 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
9522
9523         * varasm.c (output_constructor): Add .align 0 for packed vars.
9524
9525 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9526
9527         * configure.in: Use default thread_file even when enable_threads is
9528         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
9529         * configure: Rebuilt.
9530
9531         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
9532
9533 2000-08-04  Donn Terry (donnte@microsoft.com)
9534
9535         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
9536
9537 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
9538
9539         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
9540         Delete code that conditionally modifies 'version'.
9541         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
9542         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
9543         * gcc.c (main): Use it.
9544         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
9545         * prefix.c (update_path): Use it.
9546         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
9547         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
9548         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
9549         code.
9550         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
9551         (SUBTARGET_SWITCHES): Adjust.
9552         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
9553         defining.
9554         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
9555
9556 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9557
9558         * c-common.h (flag_isoc94): Declare.
9559         * c-decl.c (flag_isoc94): Define.
9560         (c_decode_option): Set flag_isoc94 as appropriate.
9561         * c-common.c (T_PD, T_IM, T_UIM): Define.
9562         (format_char_info): Add tlen and jlen.
9563         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
9564         %F.  Allow %lf.
9565         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
9566         %l[.
9567         (time_char_table): Add NULL entries for %t and %j.
9568         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
9569         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
9570         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
9571         precision.  Allow precision argument to be unsigned int.  If
9572         pedantic, warn for %p passed an argument not a pointer to possibly
9573         qualified void or a possibly qualified character type, and for
9574         pointer targets of the wrong sign, except for character pointers.
9575
9576 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9577
9578         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
9579         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
9580         (wint_type_node): Define.
9581         * c-decl.c (WINT_TYPE): Define.
9582         (init_decl_processing): Create the wint_type_node type.
9583         * c-common.c (T_WI): Define.
9584         (print_char_table): Use T_WI for %lc format.
9585
9586 2000-08-04  Bruce Korb  <bkorb@gnu.org>
9587
9588         * fixinc/:  Verified that the MSDOS patch does not break
9589         the UNIX functionality and applied the next three patches
9590         from July:
9591
9592 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
9593
9594         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
9595         output file with the temporary one by appending ".X" to generate
9596         the temporary fuile's name.  If the output file already has an
9597         extension, replace it with ".X".
9598
9599         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
9600         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
9601         reallocate the command buffer while copying the command-line
9602         argument.  Redirect the output directly to the temporary file,
9603         instead of going through another temporary file.
9604         (process): Close the temporary file before unlinking it.
9605         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
9606         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
9607         (run_compiles): Pass p_fixd argument to machine_matches, as it
9608         expects.
9609
9610         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
9611         environment, assume there are no symlinks in the include
9612         directory.  When cleaning up the DONE files, look for them
9613         case-insensitively.  Don't try to remove symlinks if they aren't
9614         there.
9615
9616         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
9617         all callers changed.  Declare pz "const char *", to avoid compiler
9618         warnings.
9619
9620         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
9621         Change prototype of make_raw_shell_str.
9622
9623 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
9624
9625         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
9626         (initialize) [__MSDOS__]: Use tempnam.
9627         (initialize): Don't use SIGPIPE if it is not defined.
9628
9629         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
9630         return stdout.
9631
9632 2000-07-25  Bruce Korb  <bkorb@gnu.org>
9633
9634         * fixinc/fix*.[ch]: substantially reworked to make it possible
9635         to run this program without using fork(2) or pipe(2) (i.e. in
9636         a DOS environment).
9637
9638 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9639
9640         * cppdefault.h (WINT_TYPE): Define.
9641         * cppinit.c (builtin_array): Define __WINT_TYPE__.
9642         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
9643         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
9644
9645 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
9646
9647         * (mips_legitimate_address_p): Don't allow register+offset
9648         if the offset is large and negative, and we are compiling
9649         for 64 bit registers.
9650
9651 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9652
9653         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
9654         insn_code_number + 1.
9655
9656 2000-08-04  Kazu Hirata  <kazu@hxi.com>
9657
9658         * h8300.c (function_prologue): Rearrange code for conciseness.
9659         (function_epilogue): Likewise.
9660         * h8300.h (OK_FOR_U): Fix formatting.
9661
9662         * cse.c: Fix a comment typo. Fix formatting.
9663
9664 2000-08-03  Richard Henderson  <rth@cygnus.com>
9665
9666         * config/i386/i386.md (return_indirect_internal): New.
9667         * config/i386/i386.c (ix86_expand_epilogue): Use it.
9668
9669 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
9670
9671         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
9672         before the name.
9673         (lex_line): Glue @ onto the beginning of identifiers and
9674         string constants, in Objective-C mode.
9675         (output_token, spell_token): Handle CPP_OSTRING.
9676         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
9677         beginning of a NAME or a STRING, in objc mode.
9678
9679         * cpplib.c (get_define_node): Do not permit identifiers that
9680         begin with @ to be #defined.
9681         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
9682         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
9683
9684         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
9685         * c-tree.h (build_objc_string): Delete prototype.
9686         * objc/objc-tree.def: Delete OBJC_STRING_CST.
9687         * c-lex.c (yylex): Use build_string for all three kinds of strings.
9688
9689         * c-parse.in, objc/objc-act.c: Update commentary.
9690
9691 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
9692
9693         * extend.texi: Fix typo in last change.
9694
9695         * extend.texi: Add commentary on statement-expressions and their
9696         interactions with C++.
9697
9698 2000-08-03  Nick Clifton  <nickc@cygnus.com>
9699
9700         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
9701         * dwarf.h (LANG_JAVA): Change value to 0x000b.
9702
9703 2000-08-03  Anthony Green  <green@cygnus.com>
9704
9705         * dwarf2out.c (gen_compile_unit_die): Add java language support.
9706         (add_bound_info): Check for java language.
9707         (is_java): New function.
9708         * dwarfout.c (output_compile_unit_die): Ditto.
9709         * dwarf.h (dwarf_source_language): Add java source language type.
9710         * dwarf2.h (dwarf_source_language): Ditto.
9711
9712 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9713
9714         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
9715         operands.
9716
9717         * i386.c (ix86_expand_branch): Mode of comparison in
9718         IF_THEN_ELSE is VOIDmode.
9719
9720 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
9721
9722         * gengenrtl.c, rtl.c: Avoid #elif.
9723
9724 2000-08-03  Michael Poole  <poole@troilus.org>
9725
9726         * tm.texi (Register Classes): Clarify order of sub-initializers
9727         in REG_CLASS_CONTENTS.
9728
9729 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9730
9731         From SAITOH Masanobu:
9732         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
9733
9734 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
9735
9736         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
9737         is not supported by tradcpp and isn't actually needed for cygwin.
9738
9739 2000-08-03  Kazu Hirata  <kazu@hxi.com>
9740
9741         * h8300.c: Fix a comment typo.
9742         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
9743
9744         * jump.c: Fix formatting.
9745
9746         * toplev.c: Fix formatting.
9747
9748 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
9749
9750         * flow.c (find_auto_inc): Verify that we've got a REG before
9751         peeking at its regno.  Fail, don't abort if we can't find
9752         the increment of the desired register.
9753
9754         * pa.md (shadd height reduction patterns/splitters): Remove.
9755
9756 2000-08-02  Jim Wilson  <wilson@cygnus.com>
9757
9758         * config/ia64/ia64-protos.h (flag_ssa): Declare.
9759         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
9760
9761 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
9762
9763         * dce.c: Remove all uses of assert.
9764         * dwarf2out.c: Likewise.
9765         * dwarfout.c: Likewise.
9766         * ssa.c: Likewise.
9767
9768 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
9769
9770         * gcc.h (lang_specific_driver): Constify second argument.
9771         * gcc.c (translate_options, process_command, main): Likewise.
9772         Constify variables to match.  Cast second argument to
9773         pexecute.
9774
9775         * cppspec.c, gccspec.c: Adjust type of second argument to
9776         lang_specific_driver, and update code as necessary.
9777
9778 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
9779
9780         * loop.c (scan_loop): Ensure update_end label does not
9781         go away until reg_scan_update is run.
9782
9783 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
9784
9785         * c-common.h: Prototype min_precision and c_build_qualified_type here...
9786         * c-tree.h: ... not here.
9787         * errors.h: Prototype fancy_abort.
9788
9789         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
9790         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
9791         * regrename.c (regrename_optimize): Make control flow explicit.
9792         (replace_reg_in_block): Initialize reg_use to 0.
9793
9794         * i386.c (legitimate_address_p): Rename error label to
9795         report_error to avoid namespace clash.
9796
9797 2000-08-02  Kazu Hirata  <kazu@hxi.com>
9798
9799         * fold-const.c: Fix formatting.
9800
9801 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9802
9803         * i386.c (legitimate_address_p): Accept other bases than
9804         pic_offset_table_rtx for GOTOFF constructs.
9805
9806 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9807
9808         * i386.md (shift to lea splitter): Use const_int_operand.
9809
9810 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
9811
9812         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
9813         cppspec.c: Do not use 'legal' or 'illegal' in error messages
9814         and comments.
9815
9816         * cppmain.c (cb_define, cb_undef): Don't generate any output
9817         if not done_initializing.
9818         * cpplex.c (maybe_paste_with_next): When the token after a ##
9819         is an omitted rest argument, only delete the token before it
9820         if that token is a comma.  Do not warn about bogus token
9821         pastes for , ## rest_arg.
9822
9823         * cpp.texi: Update.
9824         * cpp.1: Regenerate.
9825
9826 2000-08-02  Fred Fish  <fnf@be.com>
9827
9828         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
9829         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
9830         and later.
9831
9832         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
9833         Be directories to search path.
9834
9835         Remove support for __declspec(dllimport) and __declspec(dllexport).
9836         This is leftover cruft from the earlier BeOS gcc port when BeOS
9837         used Microsoft's PE object file format.
9838         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
9839         * config/i386/t-beos (winnt.o): Remove Makefile frag.
9840         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
9841         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
9842         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
9843         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
9844         (REDO_SECTION_INFO_P): Remove.
9845         (ASM_EXPORT_DECL): Remove.
9846         (ASM_DECLARE_FUNCTION_NAME): Remove.
9847         (ASM_DECLARE_OBJECT_NAME): Remove.
9848         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
9849         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
9850         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
9851         (STRIP_NAME_ENCODING): Remove.
9852
9853         Remove support for obsolete version of BeOS that is no longer
9854         supported by Be.
9855         * configure.in (i*86-*-beospe*): Remove.
9856         * config/i386/beos-pe.h: Remove.
9857
9858 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
9859             Mark Mitchell <mark@codesourcery.com>
9860
9861         * Makefile.in (OBJS): Added dce.o.
9862         (ssa.o): Updated target to include ssa.h.
9863         (flow.o): Likewise.
9864         (toplev.o): Likewise.
9865         (dce.o): Created target.
9866         * basic-block.h: Added comments.
9867         (INVALID_BLOCK): Added definition.
9868         (connect_infinite_loops_to_exit): Added declaration.
9869         Moved SSA declarations to ssa.h.
9870         * flow.c: Added inclusion of ssa.h.
9871         (struct depth_first_search_dsS, depth_first_search_ds):
9872         Added definitions.
9873         (compute_immediate_postdominators): Added definition.
9874         (connect_infinite_loops_to_exit): Likewise.
9875         (flow_dfs_compute_reverse_init): Likewise.
9876         (flow_dfs_compute_reverse_add_bb): Likewise.
9877         (flow_dfs_compute_reverse_execute): Likewise.
9878         (flow_dfs_compute_reverse_finish): Likewise.
9879         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
9880         (LABEL_P): Added definition.
9881         (JUMP_P): Likewise.
9882         (NOTE_P): Likewise.
9883         (BARRIER_P): Likewise.
9884         (JUMP_TABLE_DATA_P): Likewise.
9885         (INSN_DEAD_CODE_P): Likewise.
9886         * ssa.c: Replaced inclusions with ssa.h inclusion.
9887         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
9888         (rename_registers): Removed unnecessary variables.
9889         * ssa.h: Created by moving declarations from ssa.c and
9890         basic-block.h.
9891         * timevar.def: Defined TV_DEAD_CODE_ELIM.
9892         * toplev.c: Added ssa.h inclusion.
9893         (dump_file_index): Added DFI_dce.
9894         (dump_file): Added "dce" entry.
9895         Defined flag_ssa.
9896         (f_options): Added dce entry.
9897         * invoke.texi: Document -fdce.  Emphasize experimental status of
9898         -fssa.
9899         * dce.c: New file.
9900
9901 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
9902
9903         * cpperror.c (v_message): Split into _cpp_begin_message and
9904         v_message macro.  All callers updated.
9905         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
9906         checks here.
9907
9908         * cppfiles.c (cpp_syshdr_flags): New function.
9909         (read_include_file): Don't call cpp_output_tokens.  Call
9910         enter_file hook.
9911         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
9912         (cpp_reader_init): Don't initialize token_buffer.  Call
9913         _cpp_init_internal_pragmas.
9914         (cpp_cleanup): Don't clear token_buffer.
9915         (cpp_start_read): Don't worry about output from -D processing.
9916         Don't call cpp_output_tokens.
9917         (cpp_finish): Don't dump macros here.  Don't call
9918         cpp_output_tokens.
9919         * cppmacro.c (_cpp_dump_definition): Rename
9920         cpp_dump_definition.  Write directly to a FILE *.
9921         (dump_funlike_macro): Delete.
9922         (dump_macro_args): New.
9923
9924         * cpplex.c (TOKEN_LEN): Convert to inline function.
9925         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
9926         cpp_scan_line, _cpp_dump_list): Delete.
9927         (cpp_printf, cpp_output_list): New.
9928         (output_line_command): Don't worry about entering or leaving files.
9929         (cpp_scan_buffer): Just output each token as we hit it.
9930         (process_directive): Don't call cpp_output_tokens.
9931         (_cpp_glue_header_name): Don't use token_buffer.
9932         (output_token, dump_param_spelling): Write directly to a FILE *.
9933
9934         * cpplib.c (pass_thru_directive, dump_macro_name,
9935         pragma_dispatch, do_pragma_gcc): Delete.
9936         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
9937         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
9938         functions.
9939         (do_error, do_warning, pragma_dependency): Call
9940         _cpp_begin_message, then cpp_output_list.
9941         (cpp_register_pragma, cpp_register_pragma_space,
9942         _cpp_init_internal_pragmas): New.
9943         (do_pragma): Walk the pragmas table here.
9944         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
9945         do_pragma_dependency): Return void.
9946         (do_pragma_implementation): Moved to cppmain.c.
9947
9948         * cpplib.h: Update prototypes.
9949          (struct cpp_reader): Remove printer, token_buffer,
9950         token_buffer_size, and limit.  Add struct cb, and pragmas.
9951         (struct cpp_printer): Remove last_id and written.
9952         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
9953         CPP_ADJUST_WRITTEN): Delete.
9954         * cpphash.h: Update prototypes.
9955         (ufputs): New wrapper.
9956
9957         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
9958         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
9959         (main): Set up callbacks.  Register #pragma implementation.
9960         Dump macros from here.
9961
9962 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
9963
9964         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
9965         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
9966         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
9967         insns if they have a REG_MAYBE_DEAD note attached.
9968         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
9969         (rs6000_emit_load_toc_table): TOC loads may go dead.
9970
9971 2000-08-01  Jim Wilson  <wilson@cygnus.com>
9972
9973         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
9974         type exists before using it.  Use number of words as alignment
9975         otherwise.
9976         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
9977         ia64_va_arg): Propagate ia64_function_args changes here.
9978
9979 2000-08-01  Richard Henderson  <rth@cygnus.com>
9980
9981         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
9982         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
9983
9984 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
9985
9986         From Joern Rennecke:
9987         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
9988         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
9989         unless TARGET_SH3E is set.
9990         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
9991
9992         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
9993         (ashlsi3_std): New pattern.
9994         (ashlsi3 expander): Use it for TARGET_SH3.
9995         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
9996
9997 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9998
9999         * loop.c (canonicalize_condition):  Use destination, not source to
10000         determine SET's mode.
10001
10002 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
10003
10004         * flow.c (clear_log_links): Fix typo.
10005
10006 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
10007
10008         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
10009         on targets which need more than one insn for a compare/cbranch
10010         operation.
10011
10012 2000-07-31  Jim Wilson  <wilson@cygnus.com>
10013
10014         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
10015         when computing offset.
10016
10017 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
10018
10019         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
10020
10021 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
10022
10023         * flow.c (clear_log_links): Nuke global_live_at_start and
10024         global_live_at_end data, since if the log_links stuff is invalid
10025         so is global_live_at_*.
10026
10027 2000-07-31  Richard Henderson  <rth@cygnus.com>
10028
10029         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
10030
10031 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
10032
10033         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
10034         (_cpp_get_token): Don't macro expand a just pasted token if it
10035         was pasted at no_expand_level.
10036
10037 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
10038
10039         * cppmacro.c (find_param, count_params, save_expansion):
10040         Permit 'defined' as a macro parameter name.
10041
10042 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
10043
10044         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
10045         xcpp to cpp throughout.
10046         (native): Remove unnecessary dependency on cpp.
10047
10048         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
10049         tradcpp to tradcpp0.
10050         (.i spec): Add missing output-file spec to cc1 command line.
10051         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
10052
10053 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
10054
10055         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
10056         (implicit_decl_warning): New function.
10057         (implicitly_declare): Use it.
10058         * c-typeck.c (build_external_ref): Use implicit_decl_warning
10059         to complain about implicit decls of builtins.
10060
10061         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
10062         based on pedantic && flag_isoc99, if not already set.
10063         * c-tree.h: Declare mesg_implicit_function_declaration.
10064         Prototype implicit_decl_warning.
10065
10066 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
10067
10068         * Makefile.in (ssa.o): Updated header files in dependences.
10069         * basic-block.h: Added compute_immediate_postdominators declaration.
10070         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
10071         definition.
10072         * flow.c (compute_immediate_dominators): Updated comment.
10073         (compute_immediate_postdominators): Added definition.
10074         * rtl.h (HARD_REGISTER_P): Added definition.
10075         * ssa.c: Include additional header files.
10076         (assert): Added definition.
10077         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
10078         include select hard registers.
10079         (ssa_rename_to_insert): Likewise.
10080         (ssa_rename_from_initialize): Likewise.
10081         (ssa_rename_from_lookup): Likewise.
10082         (original_register): Likewise.
10083         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
10084         include select hard reigsters.
10085         (ssa_rename_from_traverse): Likewise.
10086         (ssa_rename_from_free): Likewise.
10087         (ssa_rename_from_print): Likewise.
10088         (ssa_rename_from_print_1): Likewise.
10089         (ssa_rename_from_hash_function): Likewise.
10090         (ssa_rename_from_equal): Likewise.
10091         (ssa_rename_from_delete): Likewise.
10092         (simplify_to_immediate_dominators): Removed in favor of
10093         flow.c:compute_immediate_dominators.
10094         (find_evaluations_1): Modified to work with hard registers.
10095         (insert_phi_node): Likewise.
10096         (insert_phi_nodes): Likewise.
10097         (struct rename_set_data): Updated prev_reg comment.
10098         (create_delayed_rename): Modified to work with hard registers.
10099         (RENAME_NO_RTX): Updated comment.
10100         (apply_delayed_renames): Modified to work with hard registers.
10101         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
10102         (rename_block): Updated to use revised ssa_rename_to interface.
10103         (rename_registers): Updated to use revised ssa_rename_to and
10104         ssa_rename_from interface.
10105         (convert_to_ssa): Revised to use compute_immediate_dominators and
10106         deal with hard registers.
10107         (make_regs_equivalent_over_bad_edges): Modified to work with hard
10108         registers.  Added check for illegal unification of hard register.
10109         (make_equivalent_phi_alternatives_equivalent): Modified to work
10110         with hard registers.
10111         (compute_conservative_reg_partition): Likewise.
10112         (coalesce_if_unconflicting): Modified to work with hard registers
10113         and check for conflicting hard registers.
10114         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
10115         registers.
10116         (rename_equivalent_regs_in_insn): Modified to work with hard
10117         registers.
10118         (record_canonical_element_1): Added definition.
10119         (check_hard_regs_in_partition): Added definition.
10120         (convert_from_ssa): Added data structure deallocation and check
10121         for illegal hard register unification.
10122         (conflict_hard_regs_p): Added definition.
10123         * toplev.c (rest_of_compilation): Added comment.
10124
10125 2000-07-31  Anthony Green  <green@redhat.com>
10126
10127         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
10128
10129 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
10130
10131         * builtins.c (expand_builtin_apply): Don't defer pop during
10132         argument setup.
10133
10134 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10135
10136         * calls.c (combine_pending_stack_adjustment_and_call): Only use
10137         preferred_unit_stack_boundary when it is > 1.
10138
10139 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
10140
10141         * c-common.c (init_function_format_info): Add C99 format functions
10142         in C99 mode.
10143
10144         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
10145         void' or 'register void' as being the special case of 'void' alone
10146         in a parameter list.
10147
10148         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
10149         discarding qualifiers into a plain warning.
10150
10151 2000-07-31  Kazu Hirata  <kazu@hxi.com>
10152
10153         * combine.c: Fix formatting.
10154
10155         * h8300.md: Fix formatting.
10156
10157         * local-alloc.c: Fix formatting.
10158
10159         * h8300.c (get_shift_alg): Remove the variable alg.
10160         (emit_a_shift): Rearrange code to improve readability.
10161
10162         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
10163
10164         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
10165         HImode on all architectures and a combination of HImode and SImode
10166         on H8/300H and H8/S.
10167
10168         * h8300.c (split_adds_subs): Rearrange code for conciseness.
10169
10170 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10171
10172         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
10173         in my last checkin.
10174
10175 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10176
10177         * recog.c (extract_insn): Set operand_mode according to
10178         operand if match_operand is VOIDmode.
10179
10180 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10181
10182         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
10183
10184 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
10185
10186         * c-parse.in (extdefs): Call ggc_collect between external
10187         definitions.
10188
10189 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
10190             Richard Henderson  <rth@cygnus.com>
10191
10192         * Makefile.in (OBJS): Add doloop.o.
10193         * doloop.c: New file.
10194
10195         * final.c (insn_current_reference_address): Return 0 before final.
10196         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
10197         * jump.c (any_uncondjump_p): Likewise.
10198         * loop.c (indirect_jump_in_function): Make static.
10199         (strength_reduce): Call doloop_optimize.
10200         (insert_bct, instrument_loop_bct): Remove.
10201         * loop.h (doloop_optimize): Prototype.
10202         * recog.c (split_all_insns): Split all INSN_P.
10203         * toplev.c (flag_branch_on_count_reg): Default on.
10204
10205         * config/c4x/c4x.c (c4x_optimization_options): Don't set
10206         flag_branch_on_count_reg.
10207         * config/i386/i386.c (override_options): Likewise.
10208         * config/rs6000/rs6000.c (optimization_options): Likewise.
10209
10210         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
10211         (doloop_end): New.
10212         (dbra_ge): Remove, as well as all it's splitters.
10213
10214         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
10215         (doloop_end): New.
10216
10217         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
10218         (ia64_register_move_cost): Declare.
10219         * config/ia64/ia64.c (ar_lc_reg_operand): New.
10220         (struct ia64_frame_info): Add ar_size.
10221         (ia64_compute_frame_size): Set it.
10222         (save_restore_insns): Save and restore ar.lc.
10223         (ia64_register_move_cost): New, moved from header file.  Handle
10224         application registers.
10225         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
10226         (emit_insn_group_barriers): Special case doloop_end_internal.
10227         (ia64_epilogue_uses): Mark ar.lc live at end.
10228         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
10229         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
10230         (FIRST_PSEUDO_REGISTER): Make room.
10231         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
10232         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
10233         (REG_ALLOC_ORDER): Update.
10234         (HARD_REGNO_MODE_OK): Update.
10235         (REGISTER_NAMES): Update.
10236         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
10237         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
10238         (REGNO_REG_CLASS): Update.
10239         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
10240         (REGISTER_MOVE_COST): Move out of line.
10241         (PREDICATE_CODES): Update.
10242         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
10243         (addsi3_plus1_alt, adddi3_plus1_alt): New.
10244         (shladd_elim splitter): Allow constants in the predicate.
10245         (doloop_end, doloop_end_internal): New.
10246
10247 2000-07-30  Richard Henderson  <rth@cygnus.com>
10248
10249         * genattrtab.c (struct insn_def): Add lineno member.
10250         (struct insn_ent): Likewise.
10251         (struct attr_desc): Likewise.
10252         (struct delay_desc): Likewise.
10253         (struct function_unit_op): Likewise.
10254         (struct function_unit): Likewise.
10255         (check_attr_value): Use message_with_line.
10256         (check_defs): Likewise.
10257         (expand_units): Likewise.
10258         (check_attr_test): Take a lineno argument.
10259         (gen_attr): Likewise.
10260         (gen_insn): Likewise.
10261         (gen_delay): Likewise.
10262         (gen_unit): Likewise.
10263         (main): Give it to them.
10264         (convert_set_attr_alternative): Take an insn_def argument
10265         instead of num_alt and insn_index.
10266         (convert_set_attr): Likewise.
10267         (write_test_expr): Protect INSN_ADDRESSES load
10268         with INSN_ADDRESSES_SET_P.
10269
10270 2000-07-30  Richard Henderson  <rth@cygnus.com>
10271
10272         * flow.c (init_propagate_block_info): Use pc_set.
10273
10274 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10275
10276         * i386.md (*lea_general_[123]) New insns and splits.
10277         (addsi3 to lea splitter): Handle other modes too.
10278         (shlsi3 to lea splitter): Likewise.
10279         (addhi_1_lea, shlhi_1_lea): New patterns.
10280         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
10281
10282 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10283
10284         * recog.c (general_operand, nonimmediate_operand): Accept
10285         any mode for VOIDmode CONSTANT_P operands.
10286
10287 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10288
10289         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
10290         instead of replace_rtx.
10291         * recog.c (validate_replace_rtx_subexp): New function.
10292         * recog.h (validate_replace_rtx_subexp): Declare.
10293
10294 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10295
10296         * combine.c (simplify_set, make_extraction, make_compound_operation
10297         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
10298         as force_to_mode argument.
10299
10300 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10301
10302         * combine.c (if_then_else_cond): Be sure that mode fits in
10303         HOST_WIDE_INT.
10304
10305 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10306
10307         * combine.c (record_promoted_value):  Allow bitsize of mode
10308         to be equivalent to HOST_BITS_PER_WISE_INT.
10309
10310 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10311
10312         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
10313         Do not call gen_mode_alignment when mode is BLKmode.
10314
10315 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10316
10317         * loop.c (express_from_1): Fix call of simplify_gen_binary.
10318
10319 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10320
10321         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
10322         VOIDmode implies both operands to be VOIDmode.
10323         (simplify_ternary_operation): Compute properly the mode of comparison.
10324         * combine.c (combine_simplify_rtx): Likewise.
10325
10326 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
10327
10328         * basic-block.h (struct loops): New field rc_order.
10329         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
10330         (flow_loops_free): Free rc_order.
10331         (flow_depth_first_order_compute): New parameter rc_order.
10332         (flow_loops_find): Allocate rc_order and swap usage with
10333         dfs_order.
10334
10335 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10336            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10337
10338         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
10339         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
10340         (nodb_call, return_from_epilogue): Likewise.
10341         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
10342         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
10343         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
10344         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
10345         (c4x_valid_type_attribute_p): Likewise.
10346         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
10347         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
10348
10349 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10350
10351         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
10352         and loadhi_big_constant if applicable.
10353         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
10354         and add new splitter.s
10355
10356 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10357
10358         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
10359
10360 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10361
10362         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
10363
10364 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10365
10366         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
10367
10368 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10369
10370         * config/c4x/libgcc.S (divqf3): Improve accuracy.
10371
10372 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
10373
10374         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
10375         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
10376         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
10377         (get_prev_bb_note): Likewise.
10378         (remove_scope_notes): Likewise.
10379         * flow.c (commit_one_edge_insertion): Likewise.
10380         (merge_blocks_nomove): Likewise.
10381         (verify_flow_info): Likewise.
10382         * gcse.c (insert_insn_end_bb): Likewise.
10383         * reg-stack.c (emit_swap_insn): Likewise.
10384         * ssa.c (first_insn_after_basic_block_note): New function.
10385         (insert_phi_node): Use it.
10386         (rename_block): Likewise.
10387         (eliminate_phi): Likewise.
10388         (make_regs_equivalent_over_bad_edges): Likewise.
10389         (make_equivalent_phi_alternatives_equivalent): Likewise.
10390         (for_each_successor_phi): Likewise.
10391         (convert_from_ssa): Modify phi-node deletion algorithm.
10392
10393 2000-07-29  Andreas Jaeger  <aj@suse.de>
10394
10395         * configure.in (mips*-*-linux*): Use mips*el to check for little
10396         endian MIPS, add tmake_file.
10397
10398         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
10399         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
10400         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
10401
10402 2000-07-28  Richard Henderson  <rth@cygnus.com>
10403
10404         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
10405         Sign extend mode size before negating.
10406
10407 2000-07-28  Richard Henderson  <rth@cygnus.com>
10408
10409         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
10410
10411 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
10412
10413         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
10414         (cse_insn): Likewise.
10415         (addr_affects_sp_p): Likewise.
10416         * expr.c (move_by_pieces): Likewise.
10417         (clear_by_pieces): Likewise.
10418         * gcse.c (oprs_unchanged_p): Likewise.
10419         * haifa-sched.c (sched_analyze_2): Likewise.
10420         * recog.c (offsettable_address_p): Likewise.
10421         * regclass.c (record_address_regs): Likewise.
10422         * reload.c (find_reusable_reload): Likewise.
10423         (push_reload): Likewise.
10424         (operands_match_p): Likewise.
10425         (decompose): Likewise.
10426         (find_reloads_address_1): Likewise.
10427         (find_inc_amount): Likewise.
10428         * reload1.c (elimination_effects): Likewise.
10429         * resource.c (mark_set_resources): Likewise.
10430         * flow.c (attempt_auto_inc): New function; mostly broken out
10431         of find_auto_inc.
10432         (find_auto_inc): Split into two functions and enhanced to
10433         generate POST_MODIFY.
10434         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
10435         * rtl.h (count_all_occurrences):  Declare.
10436         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
10437         defined.
10438         * rtlanal.c (count_all_occurrences): New function.
10439         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
10440         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
10441
10442         * config/ia64/ia64-protos.h (destination_operand): Declare.
10443         * config/ia64/ia64.c (destination_operand): New function.
10444         (ia64_print_operand): Handle POST_MODIFY.
10445         (rtx_needs_barrier): Likewise.
10446         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
10447         (HAVE_POST_MODIFY_REG): Define to 1.
10448         (MAX_REGS_PER_ADDRESS): Change to 2.
10449         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
10450         (LEGITIMATE_ADDRESS_REG): New helper macro.
10451         (LEGITIMATE_ADDRESS_DISP): Likewise.
10452         (PREDICATE_CODES): Add entry for destination_operand.
10453         * config/ia64/ia64.md (all mov patterns): Use destination_operand
10454         predicate for operand 0.
10455
10456 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10457
10458         * dwarf2out.c: Indent #error directive.
10459
10460         * gbl-ctors.h: Fix typo in comment.
10461         (__do_global_ctors): Prototype.
10462
10463         * gcse.c (record_one_set, pre_delete): Remove unused variables.
10464
10465         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
10466         (print_operand): Initialize variable `t'.
10467
10468 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
10469
10470         * config/arm/arm.md ("call_value"): removed constraints.
10471         Constraints are ignored in expanders.
10472         (*call_value_reg): split =rf into various constraints.
10473         (*call_value_mem): same
10474         (*call_value_symbol): same
10475         (*sibcall_value_insn): same
10476
10477 2000-07-28  Philipp Thomas  <pthomas@suse.de>
10478
10479         * install.texi (--enable-nls): Change the description of the NLS
10480         related configure options to match the current state.
10481         (--with-included-gettext): Likewise.
10482         (--enable-maintainer-mode): New description added.
10483         * extend.texi (-fstrict-prototype): Add missing '.'.
10484
10485 2000-07-27  Jim Wilson  <wilson@cygnus.com>
10486
10487         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
10488         DECL_INITIAL (decl) == NULL_TREE.
10489
10490 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
10491
10492         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
10493         on insn-attr.h with it.
10494         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
10495         * insn-addr.h: New header.
10496         (insn_addresses_): Renamed from insn_addresses.
10497         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
10498         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
10499         INSN_ADDRESSES_NEW): New macros.
10500         * genattrtab.c (write_test_expr): Use new macros.
10501         * final.c (insn_addresses, init_insn_lengths): Likewise.
10502         (align_fuzz, shorten_branches): Likewise.
10503         (final): Likewise.  Do not reject new insns if their addresses
10504         have been added to INSN_ADDRESSES.
10505         * config/arm/arm.c, config/avr/avr.c: Use new macros.
10506         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
10507         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
10508         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
10509         * config/sh/sh.c: Likewise.
10510         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
10511
10512         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
10513
10514 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
10515
10516         * gcc.c (struct prefix_list): Add member priority.
10517         (enum path_prefix_priority): Declare.
10518         (add_prefix): Replace ``first'' with ``priority''.  Append new
10519         entry but keep list in priority order.
10520         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
10521         PREFIX_PRIORITY_LAST to add_prefix.
10522         (process_command): Move include kludge - foo/stageN - to before
10523         foo/include.
10524
10525 2000-07-27  Jason Merrill  <jason@redhat.com>
10526
10527         * dwarf2out.c (gen_typedef_die): Abort if we get identical
10528         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
10529
10530 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
10531
10532         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
10533         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
10534
10535 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
10536
10537         * c-decl.c (finish_function): Don't treat 'main' specially unless
10538         flag_hosted.  In C99 mode, return 0 from 'main' unless
10539         DEFAULT_MAIN_RETURN is otherwise defined.
10540
10541         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
10542         parameters defaulting to int in an old-style function definition.
10543
10544 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10545
10546         * c-parse.in (string): For -Wtraditional, warn about string
10547         concatenation only once per line.
10548
10549 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
10550
10551         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
10552         for HI-UX/WE2 systems.
10553
10554 2000-07-24  Bruce Korb  <bkorb@gnu.org>
10555
10556         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
10557         defining the __xxx_TYPE__ macros.
10558         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
10559         * fixincl/fixlib.h: don't need to include "tm.h" anymore
10560         * fixincl/inclhack.def(type_map): now obsolete
10561
10562 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
10563
10564         * cpp.texi: Append a trailing full-stop to xrefs where needed.
10565
10566 2000-07-26  Dave Pitts  <dpitts@cozx.com>
10567
10568         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
10569         routine constants.
10570         (mvs_hash_alias): New function.
10571         (mvs_add_alias): Change argument spacing.
10572         (mvs_need_alias): Change aliasing criteria. Added documentation.
10573         (mvs_get_alias): Change to use hashed name. The hashed name prevents
10574         CSECT name collisions.
10575         (mvs_check_alias): Likewise.
10576         (handle_pragma): Change documentation.
10577         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
10578         mode from SImode to DImode.
10579         (iorhi3): Changed LTORG size for insn.
10580
10581 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
10582
10583         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
10584         mem if the address is a mode_dependent_address_p.
10585
10586 2000-07-26  Kazu Hirata  <kazu@hxi.com>
10587
10588         * h8300.c (print_operand): Print ":8" when the 'R' operand is
10589         suitable for 8-bit absolute.
10590         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
10591         (OK_FOR_U): Add a case for the 8-bit constant address on the
10592         H8/300H.
10593
10594 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
10595
10596         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
10597         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
10598         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
10599         lack of implemented alignment.
10600
10601 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
10602
10603         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
10604         cross-compiling between 64-bit and 32-bit machines.
10605
10606 2000-07-27  Richard Henderson  <rth@cygnus.com>
10607
10608         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
10609         (movhicc_astep, movhi_internal_astep): New.
10610         (movsicc_astep, movsi_internal_astep): New.
10611         (movdicc_astep, movdi_internal_astep): New.
10612         (movsfcc_astep, movsf_internal_astep): New.
10613         (movdfcc_astep, movdf_internal_astep): New.
10614         (movxfcc_astep, movxf_internal_astep): New.
10615         (cmovdi_internal_astep, cmovsi_internal_astep): New.
10616         Unify the cmov[ds]i splitters.
10617
10618 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
10619
10620         * real.c (asctoeg): Rename `error' label to unexpected_char_error
10621
10622 2000-07-26  Nick Clifton  <nickc@cygnus.com>
10623
10624         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
10625         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
10626
10627         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
10628         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
10629
10630 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
10631
10632         * c-decl.c (finish_enum): Convert enumerations that fit in an
10633         `int' to `int'.
10634         (build_enumerator): In pedantic mode, cast to `int' those that
10635         don't.
10636
10637 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
10638
10639         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
10640
10641 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10642
10643         * sh.md (cmpgtdi_t): Must be split.
10644         (cmpgtdi_t+1): New splitter.
10645
10646 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
10647
10648         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
10649         warnings for indented directives even if we are skipping.
10650
10651 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
10652
10653         * invoke.texi (strict-prototypes): Remove.
10654         * extend.texi (Deprecated Features): Add strict-prototypes.
10655         (Backwards Compatibility): New node.
10656
10657 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
10658
10659         * config/i386/i386.md (andsi_1+1): Allow HImode.
10660         (andsi_1+2): Require q_regs_operand.
10661
10662 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
10663
10664         * config/i386/i386.md (call_pop): Check operands[0],
10665         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
10666         (call): Likewise.
10667         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
10668         (call_value): Likewise.
10669
10670 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
10671
10672         * toplev.c (pipe_closed): Delete.
10673         (crash_signal): New.  Generate ICE for a fatal signal.
10674         (float_signal): Call crash_signal outside a float-handler
10675         block, not abort.
10676         (main): Install crash_signal as handler for core-dumping signals.
10677
10678 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
10679
10680         * rs6000.c (print_operand, case 'T'): New case.
10681
10682         * rs6000.md (call_indirect_aix32): Convert to expander of
10683         scheduled instructions.
10684         (call_indirect_aix64): Likewise.
10685         (call_value_indirect_aix{32,64}): Likewise.
10686         (call, call_value): Invoke expanders for AIX.  Fall through to
10687         matchers for SysV.
10688         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
10689         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
10690         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
10691         only "g" constraint.
10692         (call_nonlocal_aix64): Likewise.
10693         (call_value_nonlocal_aix{32,64}): Likewise.
10694         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
10695         operands.
10696         (call_value_nonlocal_sysv): New pattern.
10697         (indirect_jump{si,di}): Use new 'T' modifier.
10698         (tablejump{si,di} matchers): Likewise.
10699         (return_internal_{si,di}): Likewise.
10700         (return_eh_{si,di}): Likewise.
10701
10702 2000-07-24  Richard Henderson  <rth@cygnus.com>
10703
10704         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
10705         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
10706         * config/ia64/ia64.md (movdi_internal): Use it.
10707
10708 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
10709
10710         * cppexp.c: Warn about unary + if -Wtraditional.
10711         * cpplex.c (lex_line): Always set BOL on the first token of a line.
10712
10713 2000-07-24  Michael Meissner  <meissner@redhat.com>
10714
10715         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
10716         unsupported macro.
10717
10718 2000-07-24  Nick Clifton  <nickc@cygnus.com>
10719
10720         * config/arm/arm.c (emit_multi_reg_push): Generate a
10721         REG_FRAME_RELEATED_NOTE that is compatable with the code in
10722         dwarf2out_debug_frame_expr.
10723
10724 2000-07-24  Jason Merrill  <jason@redhat.com>
10725
10726         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
10727         UNALIGNED_INT_ASM_OP.
10728         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
10729         a location expression.
10730         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
10731         assume indirect access if we're saving the CFA address exactly.
10732
10733         * Makefile.in (bootstrap): Move -BstageN/ to the end.
10734
10735 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
10736
10737         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
10738         as well.
10739
10740 2000-07-24  Michael Meissner  <meissner@redhat.com>
10741
10742         * invoke.texi (D30V Options): Add d30v options.
10743
10744 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
10745
10746         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
10747         needed by our gcse pass anymore.
10748         (free_pre_mem): Corresponding changes.
10749         (compute_pre_data): Do not call compute_transpout anymore.
10750
10751         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
10752         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
10753         changes.
10754
10755         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
10756         (compute_pre_data): Do it here instead.
10757
10758         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
10759         'temp_bitmap'.
10760         (pre_delete): Corresponding changes.
10761
10762 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
10763
10764         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
10765         to figure out whether or not a variable has already been emitted.
10766
10767 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
10768
10769         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
10770         instead of gen_call.
10771
10772 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
10773
10774         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
10775
10776 2000-07-23  Kazu Hirata  <kazu@hxi.com>
10777
10778         * h8300.c: Fix formatting.
10779
10780 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10781
10782         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
10783         for `long' switch expression into a plain warning.
10784
10785         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
10786         (yylex): Don't pedwarn for "inline" in C99 mode.
10787
10788         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
10789         with %p.
10790         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
10791         ggc_alloc): Likewise.
10792         * bb-reorder.c (dump_scope_forest_1): Likewise.
10793
10794 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
10795
10796         * reload.c (find_reloads_toplev): Add new parameter
10797         "address_reloaded".
10798         (find_reloads): Add new parameter to find_reloads_toplev calls.
10799
10800 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
10801
10802         * collect2.c (main): Typo fixed.
10803         * diagnostic.c: Typo fixed.
10804         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
10805         * eh-common.h: Typo fixed.
10806         * emit-rtl.c (start_sequence): Typo fixed.
10807         * flow.c (find_label_refs): Typo fixed.
10808         (calculate_global_regs_live): Typo fixed.
10809         (mark_regno_cond_dead): Typo fixed.
10810         (create_edge_list): Typos fixed.
10811         (verify_edge_list): Typo fixed.
10812         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
10813         * loop.c (strength_reduce): Typo in function name fixed.
10814         * rtl.h: Added comments.  Typo in function name fixed.
10815         * rtlanal.c: Typo in function name fixed.
10816         (insn_dependant_p): Rename to ...
10817         (insn_dependent_p): ... this.
10818         (computed_jumo_p): Typo fixed.
10819
10820 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10821
10822         * system.h (__FUNCTION__): Wrap definition in #ifndef.
10823
10824 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
10825
10826         * rs6000.h (SIZE_TYPE): Define.
10827
10828 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
10829
10830         * ssa.c (rename_insn_1): Don't rename registers that are
10831         CLOBBERed.
10832
10833 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
10834
10835         * diagnostic.c (trim_filename, fancy_abort): Moved here from
10836         rtl.c.
10837         (fatal_function, set_fatal_function): Removed.
10838         (fatal): Don't prepare for or call the fatal_function.
10839         (diagnostic_lock, error_recursion): New.
10840         (diagnostic_for_decl, report_diagnostic): Guard against
10841         re-entering the error reporting routines.
10842         (fancy_abort): Assume function is not NULL.
10843
10844         * errors.c (fancy_abort): New.  Assume function is not NULL.
10845         * tradcpp.c (fancy_abort): Assume function is not NULL.
10846
10847         * system.h: Provide default definition of __FUNCTION__.
10848         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
10849         Always use __FUNCTION__ in definition of abort.
10850         * tree.h: Likewise.
10851         * varray.h: Likewise.
10852         * toplev.h: Likewise.  Don't prototype set_fatal_function.
10853
10854 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
10855
10856         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
10857         in 64-bit mode.
10858         * glimits.h: Don't do #if defined for ARCH_PPC.
10859
10860         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
10861         constants of size no larger than a pointer should go in the TOC.
10862         Add 'MODE' parameter.
10863         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
10864         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
10865         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
10866         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
10867         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
10868         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
10869         (rs6000_legitimize_address): Likewise.
10870         (rs6000_emit_move): Likewise.
10871         (rs6000_select_rtx_section): Likewise.
10872         (output_toc): Deal properly with outputting small constants like
10873         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
10874         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
10875         MODE parameter.  Put small constants in the TOC.
10876
10877         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
10878         easy in SImode.
10879         (rs6000_emit_move): When reload calls us with an illegitimate
10880         address, exit early.  Move the change_address calls to one place
10881         at the end of the routine.  Merge the SImode and DImode expanders.
10882         When called by reload to put an integer into a FP register, force
10883         it to memory.
10884
10885         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
10886         field.
10887         (rs6000_hash_constant): Hash mode too.
10888         (toc_hash_function): Allow for key_mode.
10889         (toc_hash_eq): Structures are different if key_mode differs.
10890         (output_toc): Add 'mode' parameter.  Save key_mode.
10891         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
10892         Pass 'mode' parameter.
10893         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
10894
10895         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
10896         for vtable references.
10897
10898         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
10899         choice, don't put integer values in FP regs.
10900
10901 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
10902
10903         * flow.c (verify_flow_info): Revamp code to verify that the
10904         head and end of each basic block are in the insn chain.
10905
10906 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
10907
10908         * gcse.c (record_one_set): Prepend instead of append onto
10909         reg_set_table, making it O(n) instead O(n^2).
10910         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
10911         Use a queue instead of a stack as worklist.
10912
10913 2000-07-20  Kazu Hirata  <kazu@hxi.com>
10914
10915         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
10916         * h8300.h (OK_FOR_T): New.
10917         (EXTRA_CONSTRAINT): Support OK_FOR_T.
10918         * h8300.md: Use inc/dec.[wl] for increment/decrement
10919         by 1 and 2 in HI and SI modes.
10920
10921 2000-07-20  Jim Wilson  <wilson@cygnus.com>
10922
10923         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
10924         larger than 14 bits.
10925
10926 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
10927
10928         * cppmacro.c (CAN_PASTE_AFTER): New macro.
10929         (count_params): Don't set GNU_REST_ARGS on anything.
10930         (save_expansion): Set PASTE_LEFT only on tokens for which
10931         CAN_PASTE_AFTER is true, or which are named operators.
10932
10933         * cpplex.c (parse_args): Distinguish between a rest argument
10934         given one empty argument, and a rest argument given zero arguments.
10935         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
10936         deletion of previous token based on that.
10937         (get_raw_token): Flatten some control structure.
10938
10939         * cpplib.h (CPP_LAST_EQ): Correct.
10940         (VOID_REST): New token flag.
10941         (GNU_REST_ARGS): Delete.
10942
10943         * tradcpp.c (main): Don't munge -D options.
10944         (make_definition): Bring -D handling in line with cpplib.
10945         (do_define): Strip all leading whitespace from macro definitions.
10946
10947 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
10948
10949         * Makefile.in (tradcpp): Depend on intl.o and version.o.
10950
10951 2000-07-20  Bruce Korb  <bkorb@gnu.org>
10952
10953         * fixincl/check.tpl: strip the platform specific types before testing
10954         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
10955         * fixincl/fixincl.tpl: use platform specific types
10956         * fixincl/fixlib.h: include the platform specific types
10957         * fixincl/inclhack.def(gnu_types): don't supply the types
10958         * fixincl/fixincl.x: regen
10959
10960 2000-07-19  Jim Wilson  <wilson@cygnus.com>
10961
10962         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
10963         GR_REGS.
10964
10965 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
10966
10967         * tradcpp.c (rescan): Do not recognize directives when the #
10968         is indented.
10969
10970 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
10971
10972         Implement C++ named operators.
10973
10974         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
10975         of operators allowed in #if and having an _EQ variant.  Add
10976         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
10977         (cpp_token flags): Add NAMED_OP.
10978         (enum node_type): Add T_OPERATOR.
10979         (struct cpp_hashnode): Add code slot to value union.
10980         * cpphash.h (spec_nodes): Remove n_defined.
10981
10982         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
10983         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
10984         (is_macro_disabled): Tweak error messages.
10985
10986         * cpplib.c (get_define_node): Disallow all named operators as
10987         macro names.  Tweak error messages.
10988         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
10989
10990         * cppinit.c (builtin_array): Add entries for the named operators.
10991         * cppexp.c (lex): Check for CPP_DEFINED token.
10992         (priority table): Add entries for CPP_MIN and CPP_MAX.
10993         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
10994
10995 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
10996
10997         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
10998         larger than the array of cuids.
10999         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
11000         cuids.
11001
11002 2000-07-19  Bruce Korb  <bkorb@gnu.org>
11003
11004         * fixinc/fixincl.c:  Convert to using a table of environment variables
11005         and activate the auto-edit marker on the fixed output files.
11006         * fixinc/fixlib.h:  Define the environment table
11007         * fixinc/fixincl.sh: export the ${INPUT} dir
11008         * fixinc/check.tpl: likewise
11009
11010 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
11011
11012         * gcc.c (.h spec): Fix typo.
11013
11014 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
11015
11016         * Makefile.in: Fix tradcif.c path.
11017
11018 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
11019
11020         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
11021           macros, not five.
11022
11023         * cpphash.h (TOKEN_NAME): New macro.
11024         (_cpp_spell_operator): Deleted.
11025         (token_spellings): Now _cpp_token_spellings.
11026
11027         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
11028         * cpplex.c: Use OP and TK macros when expanding the
11029         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
11030         store the stringification of the enumeration name (CPP_CHAR,
11031         etc.) in the name slot of token_spellings.
11032         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
11033         token_spellings directly.
11034         * cpplib.c: Use TOKEN_SPELL.
11035
11036         * cpplex.c (_cpp_push_token): If the token being pushed back
11037         is the previous token in this context, just subtract one from
11038         context->posn.
11039         * cppmacro.c (save_expansion): Clear aux field when storing a
11040         placemarker.
11041
11042 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
11043
11044         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
11045         buffer, provided it is not NULL.
11046
11047 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
11048
11049         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
11050         case of invalid volatile re-declaration.
11051
11052 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
11053
11054         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
11055         (expand_call): Adjust caller.
11056
11057 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
11058
11059         * diagnostic.h (report_diagnostic): Change prototype.
11060
11061         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
11062         diagnostic_for_decl):  Change prototype.
11063         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
11064         error, warning, error_with_file_and_line,
11065         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
11066         Adjust call to report_diagnostic, diagnostic_for_decl.
11067         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
11068         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
11069
11070         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
11071         varaible argument list.
11072
11073 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
11074
11075         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
11076         moved to cppmacro.c.
11077         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
11078         dump_hash_helper): Delete.
11079         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
11080         cpp_forall_identifiers): New. Implement specialized version of
11081         Vlad's expandable hash table.
11082         (cpp_lookup): Use new functions.
11083         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
11084         implementation.
11085         * cppmacro.c: New file.
11086         * cppinit.c (dump_macros_helper): New.
11087         (cpp_finish): Iterate over the identifier table directly.
11088         * cpplex.c (parse_name): Calculate the hash of the identifier
11089         while we scan it.  Use _cpp_lookup_with_hash when we can.
11090
11091         * cpphash.h: Update prototypes.
11092         (xcnewvec, HASHSTEP): New helper macros.
11093         * cpplib.h: Update prototypes.
11094         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
11095         (cppmacro.o): New rule.
11096         (cpphash.o): Update deps.
11097
11098         * cppmain.c: Do not set pfile->printer if no_output is on.
11099
11100 2000-07-15  Neil Booth  <neilb@earthling.net>
11101
11102         * cpplib.c: Change all directive-handler functions to return
11103         void, not int.
11104         * cpphash.h: Update typedefs.
11105
11106 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
11107
11108         * configure: Regenerate.
11109
11110         * extend.texi (Extended Asm): Mention that a memory clobber
11111         does not count as a side-effect.
11112
11113         * unroll.c (copy_loop_body): Fix one instance of using host
11114         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
11115         cross-compile.
11116
11117         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
11118
11119 2000-07-17  Richard Henderson  <rth@cygnus.com>
11120
11121         * config/ia64/ia64.md (movdi): Split out load address code.
11122         New post-reload splitter for symbolic operands.
11123         (movdi_internal): Abort if we didn't split symbolic operands
11124         when we should have.
11125         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
11126         (ia64_reorg): Split insns when not optimizing.
11127         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
11128
11129 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11130
11131         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
11132         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
11133
11134 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
11135
11136         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
11137
11138 2000-07-17  Jason Merrill  <jason@redhat.com>
11139
11140         * Makefile.in (clean): Remove libgcc directory.
11141
11142         * configure.in (-Wno-long-long check): Use higher-level macros.
11143
11144 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
11145
11146         * simplify-rtx.c (simplify_binary_operation): Recognize
11147            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
11148         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
11149            a CONST_INT, it will always be zero.
11150
11151 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
11152
11153         * loop.c (check_dbra_loop) : Return if more than one condition is
11154         present to control the loop.
11155
11156 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
11157
11158         * mips.c (mips_expand_prologue): Don't calculate the last argument
11159         register unless we need it.  When we are calculating this, make
11160         sure FUNCTION_ARG is giving us a REG.
11161
11162 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11163
11164         * flow.c (libcall_dead_p): Use single_set to verify the insn
11165         has only one set and get for analysis.
11166         (propagate_one_insn): Don't pass the PATTERN of the insn.
11167
11168 2000-07-17  Mark Klein <mklein@dis.com>
11169
11170          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
11171
11172 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
11173
11174         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
11175         * configure.in (TARGET_GETGROUPS_T): Evaluate.
11176         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
11177         of second argument of getgroups.
11178         * configure, config.in: Rebuilt.
11179
11180 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
11181
11182         * simplify-rtx.c (simplify_relational_operation): Two signed
11183         values with equal high words are less/greater than each other if
11184         their low words are less/greater when considered as unsigned.
11185
11186 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
11187
11188         * configure.in (vax-*-openbsd):  Change to new style configuration,
11189         add collect2/float_format information.
11190         * configure:  Rebuilt.
11191         * config/vax/openbsd1.h:  New.
11192         * config/vax/openbsd.h:  New.
11193         * config/vax/t-openbsd:  New.
11194
11195 2000-07-17  Chip Salzenberg  <chip@valinux.com>
11196
11197         * c-common.c (shorten_compare): Quiet warnings about unsigned
11198         comparisons with zero when they occur in a system header.
11199
11200 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
11201
11202         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
11203         update to describe current practice.
11204
11205         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
11206
11207         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
11208         references to C9X.  Change references to -fstd and -flang-isoc9x
11209         to refer to -std.
11210
11211         * c-common.c (scan_char_table): Allow "z" length modifiers on
11212         diouxXn formats.
11213         (check_format_info): Use TYPE_DOMAIN on the type matched against
11214         for "z" formats, to retrieve the language size_t rather than the
11215         internal one.
11216
11217         * c-common.c (check_format_info): Do not make a pedantic objection
11218         to the 'L' length modifier if used with a floating point type
11219         character.
11220
11221         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
11222         constants in C99 mode.
11223
11224 2000-07-17  Kazu Hirata  <kazu@hxi.com>
11225
11226         * h8300.md: Fix the format of mac.
11227         (movsi_h8300hs): Output a tab after stmac instead of a space.
11228
11229         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
11230         profitable adds/subs sequences.
11231
11232         * fold-const.c: Fix comment typos.
11233
11234 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
11235
11236         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
11237
11238 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11239
11240         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
11241
11242 2000-07-16  Neil Booth  <NeilB@earthling.net>
11243
11244         * cpplex.c: Update comments.
11245         * README.Portability: Small update.
11246
11247 2000-07-16  Neil Booth  <NeilB@earthling.net>
11248
11249         * README.Portability:  Small update.
11250
11251 2000-07-15  Richard Henderson  <rth@cygnus.com>
11252
11253         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
11254         * config/ia64/ia64.c (ia64_move_ok): New function.
11255         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
11256         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
11257
11258 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
11259
11260         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
11261         immediately following a paste operator.
11262         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
11263         (cpp_reader_init): Call it, if HOST_EBCDIC.
11264         (cpp_handle_options): Do not sort option list here.
11265         (handle_option): Rename to cpp_handle_option and export.
11266         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
11267         _cpp_get_token directly.
11268         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
11269         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
11270         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
11271         cpp_scan_line.
11272
11273 2000-07-15  Richard Henderson  <rth@cygnus.com>
11274
11275         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
11276         cast around an expression.  Tidy other unsigned tests.
11277
11278 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
11279
11280         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
11281         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
11282         (v_message_with_decl): Rename to ...
11283         (format_with_decl): ... this. Tweak
11284         (diagnostic_for_decl): New function.
11285         (fatal_io_error): Use verbatim in lieu of notice.
11286         (announce_function): Use verbatim.
11287         (default_print_error_function): Likewise.
11288         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
11289         infratructure.
11290
11291 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11292
11293         * mips.c (function_arg_pass_by_reference): Don't do automatic
11294         aggregate initialization.
11295         (machine_dependent_reorg): Initialize variable `mode'.
11296
11297         * mips.md (absdi2): Change variable `regno1' to unsigned int.
11298         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
11299         conflicts with sys/param.h macro of the same name.
11300         (reload_outdi): Likewise.
11301
11302 2000-07-15  Michael Meissner  <meissner@redhat.com>
11303
11304         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
11305         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
11306         create a new node instead.
11307
11308 2000-07-15  Neil Booth  <NeilB@earthling.net>
11309
11310         * README.Portability: Correct example about calling a function
11311         through a pointer to function.  Format wide paragraphs.
11312
11313 2000-07-15  Michael Meissner  <meissner@redhat.com>
11314
11315         * README.Portability: Update integer suffixes and function
11316         prototype sections.
11317
11318 2000-07-15  Neil Booth  <NeilB@earthling.net>
11319
11320         * README.Portability: Small update.
11321
11322 2000-07-15  Neil Booth  <NeilB@earthling.net>
11323
11324         * README.Portability: New file.
11325
11326 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
11327
11328         * INSTALL: Give special instructions for building GCC on Irix 6.
11329         * config/mips/x-iris6 (CC): Don't set it.
11330         (OLDCC): Likewise.
11331
11332 2000-07-14  Jason Merrill  <jason@redhat.com>
11333
11334         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
11335         register in the stack and later in another register, use the new
11336         register.
11337
11338 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
11339
11340         * config/mips/mips.md: (absdi2): Handle sign_extend for
11341         second operand.
11342
11343 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
11344
11345         * cpplib.c (do_pragma_dependency): Tidy warning messages.
11346
11347 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
11348
11349         * .cvsignore: Correct typo.
11350
11351 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
11352
11353         * .cvsignore: Add generated YACC files.
11354         * objc/.cvsignore: New file.
11355
11356 2000-07-14  Neil Booth  <NeilB@earthling.net>
11357
11358         * cpplex.c (adjust_column): New funcion.
11359         (skip_whitespace): Use it.
11360         (skip_block_comment): Use it, and warn about /*/* with
11361         -Wcomments.
11362
11363 2000-07-14  Neil Booth  <NeilB@earthling.net>
11364
11365         * cpphash.c (struct macro_info): Add new members.
11366         (_cpp_free_definition): Delete the macro directly.
11367         (count_params): Return void, with first token of
11368         expansion in struct macro_info on success.
11369         (parse_define): Return int.  Hoist syntax checking from
11370         save_macro_expansion.  Leave call to save_expansion to
11371         _cpp_create_definition.
11372         (alloc_macro): Needs just 2 arguments.
11373         (free_macro): Delete.
11374         (save_expansion): Don't perform syntax check.
11375         (_cpp_create_definition): Call save_expansion.
11376
11377 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11378
11379         * genrecog.c (write_header): Split long string.
11380
11381         * cpphash.c (macro_info): Don't use the `signed' keyword.
11382
11383         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
11384
11385 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
11386
11387         * calls.c (stored_args_map): New variable.
11388         (check_sibcall_argument_overlap_1): New.
11389         (check_sibcall_argument_overlap): New.
11390         (expand_call): Initialize stored_args_map.
11391         Call check_sibcall_argument_overlap.
11392
11393 2000-07-13  Bruce Korb  <bkorb@gnu.org>
11394
11395         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
11396         (emit_gnu_type): utility procedure for gnu_type_fix
11397         (gnu_type_fix): implement various pre-processor guards around
11398         standard types so these types can be defined over and over
11399         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
11400         types alluded to above will have GNU-compliant base types
11401         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
11402         * fixinc/inclhack.def: add test_text entries and utilize the new
11403         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
11404         * fixinc/fixincl.x: regenerate
11405
11406 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11407
11408         * diagnostic.c (vline_wrapper_message_with_location,
11409         v_message_with_file_and_line, v_error_with_file_and_file,
11410         v_error_for_asm, v_warning_for_asm, vfatal,
11411         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
11412         vsorry, verror, vwarning, vpedwarn): Remove.
11413         (diagnostic_for_asm): New function.
11414         (pedwarn, error, warning, pedwarn_with_file_and_line,
11415         error_with_file_and_line, warning_with_file_and_line, sorry,
11416         error_for_asm, warning_for_asm, fatal): Reimplement.
11417         (finish_diagnostic): Clear diagnostic info as well.
11418
11419 2000-07-13  Neil Booth  <NeilB@earthling.net>
11420
11421         * c-common.h (flag_digraphs): New.
11422         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
11423         * c-lex.c (yylex): Use flag_digraphs to decide whether to
11424         honour digraphs.
11425
11426 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
11427
11428         * gcc.c (do_spec_1): Add new %B operator.
11429         (set_input): Prepare for %B.
11430
11431         (link_command_spec): Move up with the other tm.h-
11432         overrideable specs.  Factor out the portion conditional on
11433         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
11434         (struct compiler): Just have a single spec string.  All users
11435         updated.
11436         (default_compilers): Remove unnecessary braces.
11437         (static_specs): Update.
11438
11439         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
11440         named specs.
11441         (C and assembly specs): Use the new named specs, as appropriate.
11442
11443         * objc/lang-specs.h: Use the new named specs.
11444         Remove unnecessary braces.
11445
11446 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
11447
11448         * gcc.c (execute): If a subprocess gets a fatal signal, report
11449         strsignal() of the signal number, and ask for a bug report.
11450         Do not do this for SIGPIPE if there's already been an error.
11451
11452         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
11453         Delete pipe_closed.
11454
11455         * tradcif.c: Remove.
11456
11457 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
11458
11459         * final.c (profile_function): Do not emit profile counters in
11460         the data section, if NO_PROFILE_COUNTERS is defined.
11461         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
11462         FUNCTION_PROFILER.
11463
11464         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
11465         (FUNCTION_PROFILER): Just emit a call to mcount.
11466
11467 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
11468
11469         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
11470
11471         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
11472         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
11473         traditional, lang_chill, or lang_fortran.
11474
11475         * cppfiles.c: #undef strcmp to suppress warning about macros
11476         used without arguments.
11477         (_cpp_execute_include): Use f, not fname, in "No include path"
11478         error.
11479         (_cpp_pop_file_buffer): New function.
11480         * cpplib.c: Don't include <sys/mman.h>.
11481         (cpp_push_buffer): Set line_base and lineno in new buffer.
11482         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
11483
11484         * cpplex.c: Move all prototypes and structure declarations to the
11485         top of the file.  Properly parenthesise some macro arguments.
11486         (cpp_scan_line): New function.
11487         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
11488         don't need to walk up the stack counting.
11489
11490 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11491
11492         * c-common.c (combine_strings): Emit a pedantic warning when a
11493         string length is greater than the minimum ANSI C is required
11494         to support.
11495
11496 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
11497
11498         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
11499         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
11500
11501 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11502
11503         * c-decl.c (define_label): Warn about identifier conflicts with
11504         labels in traditional C.
11505
11506         * c-parse.in (unop +): Warn about the unary plus operator for
11507         traditional C.
11508
11509         * c-typeck.c (store_init_value): Warn about automatic aggregate
11510         initialization for traditional C.
11511
11512         * invoke.texi (-Wtraditional): Document new warnings.
11513
11514 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
11515
11516         * Makefile.in (c-errors.o): Fix thinko in dependency.
11517
11518 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
11519
11520         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
11521         -traditional, -ftraditional, or -traditional-cpp was given.
11522         Do not pass -traditional to the preprocessor.
11523         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
11524         preprocessor does it automatically.
11525         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
11526
11527         * ch/lang-specs.h: Always use tradcpp.  Do not pass
11528         -traditional, -trigraphs, or -pedantic to the preprocessor.
11529         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
11530         _LANGUAGE_FORTRAN.
11531
11532 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
11533
11534         * cppexp.c (LOGICAL): Delete macro.
11535         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
11536         and && directly.
11537
11538         * cpphash.c (HASHSIZE): Increase to 4096.
11539         (struct hashdummy): Add hash field.
11540         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
11541         the string values using memcmp.
11542         (cpp_lookup): Set dummy.hash.
11543
11544 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
11545
11546         * configure.in (m88k-openbsd): Express configuration using new fragment
11547         style.
11548         * configure: Rebuilt.
11549         * m88k/aout-dbx.h: New.
11550         * m88k/openbsd.h: New.
11551         * m88k/xm-openbsd.h: New.
11552
11553 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11554
11555         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
11556
11557 2000-07-12  Richard Henderson  <rth@cygnus.com>
11558
11559         * reload.c (push_secondary_reload): Make sure to add the new
11560         reload at the end, after acquiring secondary memory.
11561
11562 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11563
11564         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
11565
11566         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
11567         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
11568
11569         * c-parse.in (stmt): Delete unused variables.
11570
11571         * convert.c (convert_to_vector): Likewise.
11572
11573         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
11574
11575         * tree.c (finish_vector_type): Prototype.
11576
11577 2000-07-12  Bruce Korb  <bkorb@gnu.org>
11578
11579         * fixinc/fixfixes.c: use xmalloc
11580         * fixinc/fixincl.c(initialize): set program name for xmalloc
11581         * fixinc/fixlib.c(must_malloc): obsolete
11582         (is_cxx_header): no longer used - disabled
11583         (skip_quote): inserted and disabled for future use
11584         * fixinc/fixlib.h: reflects above
11585         * fixinc/fixtests.c: removed dinkleberries
11586
11587 2000-07-12  Neil Booth  <NeilB@earthling.net>
11588
11589         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
11590         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
11591
11592         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
11593         struct toklist_dummy): New.
11594         (cpp_free_definition): Free macros with free_macro.
11595         (count_params): Don't save paramter spellings.  Save macro
11596         information in a struct macro_info.
11597         (parse_define): Don't allocate a token list.
11598         (save_expansion): Allocate the macro's token list, and
11599         save parameter spellings if necessary.  Use TOKEN_SPELL.
11600         (cpp_create_definition): Make list const.
11601
11602 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
11603
11604         * c-typeck.c (pedwarn_c99): Move to
11605         * c-errors.c: ... Here.
11606         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
11607         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
11608         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
11609         (c-errors.o): List dependency.
11610
11611 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
11612
11613         * c-parse.c: Remove.
11614         * c-parse.h: Likewise.
11615         * c-parse.y: Likewise.
11616         * objc/objc-parse.c: Likewise.
11617         * objc/objc-pasre.y: Likewise.
11618
11619 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
11620
11621         * gcc.texi: Fix minor typos
11622         * extend.texi: Fix minor typos
11623
11624 2000-07-11  Marc Espie <espie@openbsd.org>
11625
11626         * collect2.c (main): Recognize .lo as object files.
11627
11628 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
11629
11630         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
11631         true.
11632
11633         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
11634         with MAP_ANONYMOUS and MAP_ANON.
11635         * configure, config.in: Rebuilt.
11636
11637 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
11638
11639         * diagnostic.c (save_output_state): Remove.
11640         (restore_output_state): Likewise.
11641         (clear_text_info): New function.
11642         (clear_diagnostic_info): Likewise.
11643         (output_text_length, is_starting_newline, output_prefix,
11644         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
11645         prefixing_policy, output_buffer_ptr_to_format_args): New macros
11646         (set_real_maximum_length, output_set_maximum_length,
11647         output_set_prefix, output_get_prefix, output_set_maximum_length,
11648         output_destroy_prefix, init_output_buffer,
11649         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
11650         output_add_newline, output_add_character, output_add_space,
11651         output_append_r, output_append, wrap_text, output_format,
11652         output_do_printf, output_printf, output_do_verbatim,
11653         output_verbatim, verbatim): Use them.
11654         (output_clear): Split into cleat_text_info and
11655         clear_diagnostic_info.
11656         (struct output_state): Move to...
11657
11658         * diagnostic.h: ...Here
11659         (struct output_buffer): Adjust.
11660
11661 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
11662
11663         * cpplex.c (parse_name): No longer inline (premature optimization).
11664         (do_pop_context): Fold into pop_context.
11665         (pop_context): Returns int.
11666         (lex_next): Hoist test for end of directive into pop_context.
11667         (push_macro_context): Returns int; takes just reader and token.
11668         Hoist test for excessive nesting to caller.
11669         (push_arg_context): Returns void; takes just reader and token.
11670         Do not call stringify_arg or get_raw_token.
11671         (get_raw_token): Convert tail recursion through push_arg_context
11672         to a loop at this level.  Call stringify_arg here if appropriate.
11673         (maybe_paste_with_next): Convert tail recursion to a while loop.
11674         Hoist test of paste_level to caller.
11675
11676         (stringify_arg): Push arg context at beginning.
11677         (cpp_get_token): Split out core into _cpp_get_token.  Call
11678         process_directive here.  Throw away CPP_PLACEMARKER tokens.
11679         (_cpp_get_token): Convert tail recursion through
11680         push_macro_context to a loop at this level.
11681         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
11682         _cpp_get_raw_token): Use _cpp_get_token.
11683         (_cpp_skip_rest_of_line): Drop the context stack directly; do
11684         not call pop_context.
11685         (_cpp_run_directive): Call lex_next directly.
11686
11687         * cpphash.h: Prototype _cpp_get_token.
11688         * cppexp.c (lex): Use it.
11689         * cpphash.c (parse_define): Use it.
11690         * cpplib.c (get_define_node, do_undef, parse_include,
11691         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
11692         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
11693         parse_ifdef, validate_else): Use it.
11694         (cpp_push_buffer): Tweak error message; abort if anyone tries
11695         to push a buffer while macro expansions are stacked.
11696
11697 2000-07-11  Donn Terry  <donnte@microsoft.com>
11698
11699         * cpplex.c (free_macro_args, save_token): Cast arg of free
11700         and/or xrealloc to PTR.
11701         (_cpp_init_input_buffer): Clear all fields of the base context.
11702
11703 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
11704
11705         * gensupport.c (process_rtx): Make rtl checking stop
11706         complaining about the define_insn while it is being
11707         converted from a define_insn_and_split.
11708
11709 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
11710
11711         * config/mips/mips.c (simple_memory_operand): Access the
11712         INTVAL of the address, not it's containing MEM.
11713
11714 2000-07-11  Bruce Korb  <bkorb@gnu.org>
11715
11716         * fixinc/fixtests.c(double_slash): obsolete
11717         (else_endif_label): likewise
11718         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
11719         (libc1_ifdefd_memx): correct initial comment
11720         and omit the #if/#endif pair from the memxxx declarations
11721         * fixinc/fixincl.x: regen
11722
11723 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11724
11725         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
11726
11727 2000-07-11  Neil Booth  <NeilB@earthling.net>
11728
11729         * cpp.texi: Update.
11730
11731 2000-07-11  Neil Booth  <NeilB@earthling.net>
11732
11733         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
11734         (handle_option): Set digraphs according to standard.
11735         Merge OPT_lang_c89 handler with OPT_std_c89.
11736
11737         * cpplex.c: (lex_line, can_paste): Honour digraphs in
11738         accordance with the digraphs flag.
11739
11740         * cpplib.h: (struct cpp_options): New option digraphs.
11741
11742 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
11743             Bruce Korb  <bkorb@gnu.org>
11744
11745         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
11746         * fixinc/fixincl.x: Regenerate.
11747         * fixinc/tests/base/testing.h: Add testcase.
11748
11749 2000-07-10  Richard Henderson  <rth@cygnus.com>
11750
11751         * config/ia64/ia64.c (got_symbolic_operand): New.
11752         (symbolic_operand, move_operand): Revert 0701 change.
11753         * config/ia64/ia64.h (PREDICATE_CODES): Update.
11754         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
11755         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
11756         split the offset into a 14-bit low part instead of a 13-bit low part.
11757         (load_fptr): Mark the mem as unchanging.
11758         (load_symptr): Use got_symbolic_operand.
11759
11760 2000-07-10  Nick Clifton  <nickc@cygnus.com>
11761
11762         * libgcc2.c (next_stack_level): Cast result of computation to
11763         (void **) so that the assignment does not generate a warning.
11764
11765 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
11766
11767         * flags.h : Add new variable flag_single_precision_constant.
11768         * toplev.c (display_help) : Add -fsingle-precision-constant option.
11769         (flag_single_precision_constant): New.
11770         * c-lex.c (yylex): Convert floating point constant to single
11771         precision constant.
11772         * invoke.texi : Add documentation for this new option.
11773
11774 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
11775
11776         * diagnostic.c (output_octal): Second parameter is unsigned.
11777         (output_long_octal): Likewise.
11778         (output_hexadecimal): Likewise.
11779         (output_long_hexadecimal): Likewise.
11780         (output_format): Adjust arguments extraction. Tweak.
11781         (output_verbatim, verbatim): End variable argument list.
11782         (report_diagnostic): Improve documentation.
11783
11784 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
11785
11786         * c-common.h (build_stmt): Declare.
11787         (build_continue_stmt): Likewise.
11788         (build_break_stmt): Likewise.
11789         (build_return_stmt): Likewise.
11790
11791         * c-decl.c (do_case): Rewrite to do what previously done in
11792         c-parse.in.
11793
11794         * c-semantics.c (build_stmt): Define.
11795         (build_return_stmt): Likewise.
11796         (build_break_stmt): Likewise.
11797         (build_continue_stmt): Likewise.
11798         (build_case_label): Likewise.
11799
11800         * c-parse.in (BREAK): Change to build tree, then generate RTL.
11801         (CONTINUE): Likewise.
11802         (RETURN): Likewise.
11803         (CASE): Likewise.
11804         (DEFAULT): Likewise.
11805
11806         * c-parse.y: Regenerate.
11807         * c-pasre.c: Likewise.
11808
11809 2000-07-09  Jason Merrill  <jason@redhat.com>
11810
11811         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
11812
11813         * tree.h (STRIP_NOPS): Check for error_mark_node.
11814         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
11815         (dwarf2out_*): Remove duplicate declarations.
11816
11817         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
11818         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
11819
11820 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
11821
11822         * diagnostic.c (wrap_text): New function.
11823         (maybe_wrap_text): Likewise.
11824         (output_add_string): Use it.
11825         (output_format): Likewise.
11826         (count_error): Use verbatim instead of notice.
11827         (report_error_function): Likewise. Don't use plain fprintf.
11828         (finish_diagnostic): New function.
11829         (output_do_verbatim): Tweak.  Commonalize functionalities in
11830         output_verbatim and verbatim.
11831         (output_verbatim): Adjust.
11832         (verbatim): Likewise.
11833         (report_diagnostic): Define.
11834
11835         * diagnostic.h (report_diagnostic): Prototype.
11836
11837 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
11838
11839         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
11840
11841 2000-07-09  Neil Booth  <NeilB@earthling.net>
11842
11843         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
11844         IShspace, ISspace: Update.
11845
11846         * cppinit.c: ISTABLE: Update.
11847         V: New.
11848
11849         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
11850         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
11851         (skip_block_comment, skip_line_comment, parse_string,
11852         lex_line): Use is_vspace rather than IS_NEWLINE.
11853         (skip_whitespace, lex_line): Clean up to use is_nvspace.
11854         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
11855         gets a BOL flag.
11856         (lex_next): Unconditionally stop if within a directive.
11857         Treat directives within macro invocations as directives
11858         (after parse_args emits error), not as the argument.
11859
11860 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
11861
11862         * diagnostic.c (diagnostic_args): New macro.
11863         (diagnostic_msg): Likewise.
11864         (output_formatted_integer): Likewise.
11865         (output_state): New data type.
11866         (digit_buffer): Make global.
11867         (output_add_integer): Rename to output_decimal. Squeeze
11868         digit_buffer.
11869         (output_long_decimal, output_unsigned_decimal,
11870         output_long_unsigned_decimal, output_octal, output_long_octal,
11871         output_hexadecimal, output_long_hexadecimal): New functions.
11872         (output_append_r): New function.
11873         (output_append): Tweak.
11874         (output_flush_on): Rename to output_to_stream.
11875         (output_format): Change prototype.  Improve documentation. Handle
11876         more format specifiers.
11877         (build_location_prefix): Rename to context_as_prefix.
11878         (output_notice): Rename to output_do_printf.
11879         (output_printf): Tweak.
11880         (line_wrapper_printf): Likewise.
11881         (vline_wrapper_message_with_location): Adjust call to renamed
11882         functions.
11883         (v_message_with_decl): Likewise.
11884         (default_print_error_function): Likewise.
11885         (save_output_state): New function.
11886         (restore_output_state): Likewise.
11887         (output_do_verbatim): Likewise.
11888         (output_verbatim): Define.
11889         (verbatim): Likewise.
11890
11891         * diagnostic.h (printer_fn): Change return type from void to int.
11892         Improve documentation.
11893         (output_add_integer): Rename to output_decimal.
11894         (output_flush_on, output_format): Don't export.
11895         (output_verbatim, verbatim): Declare.
11896
11897 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
11898
11899         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
11900         Check whether c divides op1 exactly if operation is not
11901         multiplication.
11902
11903 2000-07-08  Richard Henderson  <rth@cygnus.com>
11904
11905         * final.c (final): Do not abort when reg-stack introduces
11906         a new insn.
11907
11908 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
11909
11910         * cpplib.h (struct cpp_name): Now struct cpp_string.
11911         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
11912         CPP_HEADER_NAME): Change to type S.
11913         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
11914         field, a cpp_hashnode *.  All references to val.name updated
11915         to use val.str or val.node as appropriate.
11916         (struct cpp_reader): Add spec_nodes field.
11917         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
11918
11919         * cpphash.h (struct spec_nodes): New.
11920         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
11921         val.str.  All references to 'spelling > SPELL_NONE' updated to
11922         match.
11923
11924         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
11925         pfile->buffer->inc are not NULL before dereferencing them.
11926
11927         * cpplex.c (parse_name): Take a pointer to the current token,
11928         plus current position and limit as args; return the new
11929         position; don't copy the text of a name into the string
11930         buffer, instead call cpp_lookup and store the node pointer.
11931         If extending a token, copy out the text of the old into a
11932         scratch buffer, append the new, look that up and store the new
11933         node pointer.  Inline.
11934         (maybe_paste_with_next): If the result of paste is a NAME,
11935         then look up the pasted text and store its node pointer.
11936         (lex_line): Adjust for new parse_name interface.
11937         Check for L"str", L'str' using spec_nodes->n_L.
11938         (spell_token): SPELL_IDENT tokens have their spelling in
11939         val.node->name.  Handle SPELL_STRING tokens that don't have
11940         string delimiters.
11941         (_cpp_expand_name_space,
11942         (can_paste): Check for L ## "str" using spec_nodes->n_L.
11943         (cpp_get_token, special_symbol): No need to call cpp_lookup.
11944         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
11945         return 1=equal 0=not, not a tristate.
11946
11947         * cpphash.c (var_args_str): Delete.
11948         (find_param): Compare node fields directly.
11949         (is__va_args__): Use CPP_PEDANTIC.  Just compare
11950         token->val.node with spec_nodes->n__VA_ARGS__.
11951         (dump_funlike_macro): Don't use var_args_str.
11952
11953         * cpplib.c (_cpp_check_directive): Just walk through
11954         spec_nodes->dirs comparing pointers.
11955         (get_define_node, do_pragma_poison, detect_if_not_defined,
11956         parse_ifdef): The identifier has already been looked up.
11957         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
11958         node.
11959         (do_if): Only call detect_if_not_defined at beginning of file.
11960         (_cpp_parse_assertion): Only copy string pointers for
11961         SPELL_STRING tokens.
11962         (pragma_dispatch): Take a node pointer and examine its name
11963         field.
11964         (_cpp_init_stacks): Also initialize the spec_nodes structure.
11965
11966         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
11967         _cpp_init_macros.
11968         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
11969         reverse order from the corresponding _cpp_init_* routines.
11970
11971         * cppexp.c (parse_number, parse_charconst, parse_defined,
11972         lex): Check val.node->type instead of calling cpp_defined.
11973         Use spec_nodes entries where appropriate.
11974
11975         * fix-header.c, scan-decls.c: Update for interface changes.
11976
11977 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
11978
11979         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
11980         emitting aux_truncdfsf2.
11981
11982 2000-07-03  Donn Terry  (donnte@microsoft.com)
11983
11984         * cppinit.c (print_help): split overlong line into ISO C89
11985         maximum chunks.
11986
11987 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
11988
11989         * cppexp.c: Update all code for new lexer interface.
11990         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
11991         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
11992         * cpplex.c (token_names): Trim leading CPP_ from names; make
11993         the strings unsigned.
11994         (_cpp_spell_operator): New.
11995         (is_macro_disabled): Disable all macros if rescanning
11996         preprocessed text.
11997         (_cpp_get_directive_token): Remove.
11998
11999         * cppinit.c: Don't set no_macro_expand.
12000         * cpplib.c (read_line_number, do_line): Check only for EOF,
12001         not VSPACE.
12002         * cpphash.h: Update prototypes.
12003         * cpplib.h (CPP_VSPACE): Remove.
12004         (struct cpp_reader): Remove no_macro_expand.
12005
12006 2000-07-08  Neil Booth  <NeilB@earthling.net>
12007
12008         * cpphash.c (is__va_args__): New function.
12009         (count_params): Fix line reported in error messages.  Use
12010         is__va_args__.  Don't return ')' on error.  Flag GNU style
12011         rest args macro definitions.
12012         (parse_define): Check macro name is not __VA_ARGS__.
12013         (save_expansion): Check identifier in non-varargs-macro is
12014         not __VA_ARGS__.  Don't flag GNU_VARARGS.
12015         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
12016         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
12017          than per-token GNU_VARARGS.
12018         * cpplib.h (GNU_VARARGS): Remove.
12019         (GNU_REST_ARGS): New.
12020
12021 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12022
12023         * i386.md (call_pop, call, call_value_pop): Do not set
12024         current_function_uses_pic_offset_table for calls to static
12025         functions or indirect calls.
12026
12027 2000-07-07  Jim Wilson  <wilson@cygnus.com>
12028
12029         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
12030         is_predicate_reg, then take max write_count of register pair.
12031
12032 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12033
12034         * tradcpp.c (main): Rename label `include' to `add_include' to
12035         avoid conflicts with variable `include' in traditional C.
12036
12037 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
12038
12039         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
12040
12041 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
12042
12043         * sibcall.c (uses_addressof): Add INMEM argument, check for
12044         current_function_internal_arg_pointer outside of MEM rtxs in addition
12045         to ADDRESSOFs.
12046         (sequence_uses_addressof): Update caller.
12047
12048 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
12049
12050         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
12051         and friends.
12052
12053 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12054
12055         * system.h (UNION_INIT_ZERO): New macro for initializing union
12056         members in structs.
12057
12058         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
12059
12060 2000-07-07  Neil Booth  <NeilB@earthling.net>
12061
12062         * cpp.texi: Update.
12063
12064 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
12065
12066         * final.c (final): Detect out of bounds array access to
12067         the insn_lengths array.
12068
12069 2000-07-07  Kazu Hirata  <kazu@hxi.com>
12070
12071         * fold-const.c (fold): Fix a comment typo.
12072
12073 2000-07-07  Neil Booth  <NeilB@earthling.net>
12074
12075         * cpp.texi: Update to new lexer.
12076
12077 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
12078
12079         * tradcpp.c: New file.
12080         * tradcif.y: New file.
12081         * tradcif.c: New generated file.
12082
12083         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
12084         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
12085         dependencies of C.  Install tradcpp from install-common, in
12086         $(libsubdir).
12087
12088 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
12089
12090         * cppinit.c: Include cppdefault.h.  Refer to
12091         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
12092         to GCC_INCLUDE_DIR and its length.
12093         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
12094         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
12095         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
12096         cppdefault.h.
12097         (include_defaults_array): Move to cppdefault.c.
12098
12099         * cppdefault.h: New file.
12100         * cppdefault.c: New file.
12101
12102         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
12103         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
12104         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
12105         this file.
12106
12107 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12108
12109         * reload.c (push_reload): When seeing if can reuse a register,
12110         check extra registers against widest of INMODE and OUTMODE.
12111
12112 2000-07-06  Neil Booth  <NeilB@earthling.net>
12113
12114         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
12115         based on full length of predicate.
12116
12117 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
12118
12119         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
12120         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
12121
12122 2000-07-05  Kazu Hirata  <kazu@hxi.com>
12123
12124         * h8300-proto.h: Fix formatting.
12125         * h8300.c: Likewise.
12126         * h8300.h: Likewise.
12127
12128 2000-07-05  Jim Wilson  <wilson@cygnus.com>
12129
12130         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
12131         CCmode.
12132
12133 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
12134
12135         * invoke.texi: Fix minor typos
12136         * md.texi: Fix minor typos
12137
12138 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
12139
12140         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
12141
12142 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
12143
12144         * cpplex.c: Don't include sys/mman.h.
12145         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
12146
12147         * cpplib.c: Include sys/mman.h and obstack.h.
12148         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
12149         obstack.
12150         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
12151         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
12152         bother freeing if stack entries (they will be freed with their buffer).
12153         (do_endif): Free if stack entries from the buffer obstack.
12154         (push_conditional): Allocate if stack entries from the buffer obstack.
12155
12156         (find_answer): Rename to _cpp_find_answer.
12157         (do_assert, do_unassert): Update.
12158
12159         * cpphash.h: Update prototypes.
12160         (xobnew): New convenience macro.
12161         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
12162         Update comments.
12163         (struct cpp_hashnode): Remove disabled field.
12164
12165         * cppinit.c: Don't include hashtab.h or splay-tree.h.
12166         (report_missing_guard): Moved to cppfiles.c.
12167         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
12168         cpp_init_includes.
12169         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
12170         cpp_cleanup_includes.  Don't destroy hashtab or
12171         all_include_files here.
12172         (cpp_finish): Use _cpp_report_missing_guards.
12173
12174         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
12175         (_cpp_init_include_table): Rename _cpp_init_includes.
12176         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
12177
12178         * cppexp.c (parse_assertion): Update for new name of
12179         find_answer.
12180
12181         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
12182
12183 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
12184
12185         * cpplib.c (do_ident): s/VSPACE/EOF/
12186
12187 2000-07-05  Neil Booth  <NeilB@earthling.net>
12188
12189         * cpplex.c: Fix trigraph replacement within strings.
12190
12191 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12192
12193         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
12194
12195         * xcoffout.c (assign_type_number): Constify.
12196         (xcoffout_source_file): Add static prototype.  Don't needlessly
12197         cast away const-ness.
12198
12199 2000-07-04  Jason Merrill  <jason@redhat.com>
12200
12201         * frame.h (frame_state): Move base_offset to end.
12202
12203 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
12204
12205         * calls.c (emit_library_call_value_1): Revert previous change.
12206
12207 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
12208
12209         * fix-header.c (struct partial_proto): Remove unnecessary fields.
12210         (recognized_extern, recognized_function, read_scan_file):
12211         Update for new scheme.
12212         (check_protection): It's still a multiple include guard even
12213         if it doesn't always trigger.
12214         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
12215         new scheme.
12216         * scan.h: Declare struct cpp_token.  Update prototypes.
12217
12218 2000-07-03  Neil Booth  <neilb@earthling.net>
12219             Zack Weinberg  <zack@wolery.cumb.org>
12220
12221         Complete overhaul of the lexer and macro expander.
12222
12223         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
12224         arg, arglist, argdata, reflist, collect_objlike_expansion,
12225         collect_funlike_expansion, collect_params,
12226         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
12227         unsafe_chars, macarg, compare_defs, special_symbol,
12228         scan_arguments, stringify, funlike_macroexpand,
12229         _cpp_quote_string, monthnames): Delete.
12230         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
12231         _cpp_create_definition, _cpp_dump_definition,
12232         dump_hash_helper): Adjust.
12233         (find_param, count_params, parse_define, var_args_str,
12234         check_macro_redefinition, save_expansion): New.
12235
12236         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
12237         parse_string, output_line_command, trigraph_replace,
12238         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
12239         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
12240         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
12241         _cpp_skip_rest_of_line): Modify.
12242
12243         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
12244         find_position, null_warning, bump_column, expand_name_space,
12245         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
12246         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
12247         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
12248         _cpp_prescan): Delete.
12249
12250         (dump_param_spelling, process_directive, lex_next,
12251         is_macro_disabled, stringify_arg, expand_context_stack,
12252         output_token, make_string_token, alloc_number_token,
12253         special_symbol, duplicate_token, maybe_paste_with_next,
12254         can_paste, prevent_macro_expansion, restore_macro_expansion,
12255         get_temp_token, release_temp_tokens, quote_string,
12256         token_names, token_spellings, _cpp_expand_name_space,
12257         _cpp_glue_header_name, _cpp_reserve_name_space,
12258         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
12259         placemarker_token, eof_token, cpp_context, macro_args,
12260         get_raw_token, parse_arg, parse_args, save_token,
12261         push_arg_context, push_macro_context, pop_context,
12262         do_pop_context, free_macro_args, _cpp_get_line,
12263         _cpp_run_directive): New.
12264
12265         * cpplib.c (validate_else, parse_include, push_conditional,
12266         pass_thru_directive, read_line_number, parse_ifdef,
12267         detect_if_not_defined, _cpp_check_directive, do_define,
12268         do_undef, do_include, do_import, do_include_next, do_error,
12269         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
12270         top_pragmas, do_pragma_gcc, do_pragma_implementation,
12271         do_pragma_poison, do_pragma_system_header,
12272         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
12273         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
12274         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
12275         cpp_defined): Update for new scheme.
12276         (strtoul_for_line, get_define_node, dump_macro_name,
12277         _cpp_check_linemarker, _cpp_parse_assertion): New.
12278         (_cpp_handle_directive, do_pragma_default): Delete.
12279
12280         * cpphash.h (struct predicate): Now struct answer.
12281         (enum spell_type, struct token_spelling, struct directive,
12282         directive_handler): New.
12283         Update prototypes.  Remove unused macros.
12284         * cpplib.h: Update prototypes.  Remove unused macros,
12285         structure definitions, and fields.
12286
12287         * cpperror.c (print_containing_files, v_message): Adjust.
12288         * cppexp.c (parse_assertion, lex, parse_escape,
12289         _cpp_parse_expr): Adjust.
12290         * cppfiles.c (open_include_file, _cpp_execute_include,
12291         _cpp_compare_file_date, cpp_read_file, read_include_file):
12292         Adjust.
12293         * cppinit.c (dump_special_to_buffer): Delete.
12294         (append_include_chain, merge_include_chains, cpp_reader_init,
12295         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
12296         cpp_finish, handle_option, print_help): Adjust.
12297         * cppmain.c (main): Adjust.
12298
12299 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
12300
12301         * cppspec.c (lang_specific_driver): Use double quotes in error
12302         message.
12303
12304 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
12305
12306         * calls.c (emit_library_call_value_1): Use valreg instead
12307         of hard_libcall_value.
12308
12309 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
12310
12311         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
12312         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
12313         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
12314         (movhi): Likewise.
12315         (movqi): Likewise.
12316         (movdf): Likewise.
12317         (movsf): Likewise.
12318         (movdi): Likewise.
12319         (movti): Likewise.
12320
12321         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
12322         mode instead of wider_mode is being used.
12323
12324 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
12325
12326         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
12327         of 'r'. Use q_regs_operand.
12328         (andsi_1+2): Use q_regs_operand.
12329
12330 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
12331
12332         * builtins.c (get_memory_rtx): Always put into alias set 0.
12333
12334 2000-07-03  Nick Clifton  <nickc@cygnus.com>
12335
12336         * config/arm/arm.md: Fix post increment and pre increment
12337         peepholes so that they do not generate UNPREDICATBLE opcodes.
12338         (ie ones where the increment clobbers the source/destination).
12339
12340 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
12341
12342         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
12343         change too big for -mtiny-stack" a warning, if larger than 63.
12344         (out_set_stack_ptr): Change the logic so -mno-interrupts is
12345         always safe to use on possible future devices.
12346         (function_prologue): Write SPH before SPL, for consistency.
12347         If interrupt_func_p true, we know we have enabled interrupts.
12348         (avr_num_arg_regs): New function.  Round up to even number of
12349         bytes if no -mpack-args or if calling a libgcc function.
12350         (function_arg, function_arg_advance): Use it.
12351         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
12352         Output "movw" if available.
12353         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
12354         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
12355         (asm_output_section_name): Add blanks for consistent output.
12356         (encode_section_info): Set TREE_READONLY for progmem data to
12357         avoid gas warnings about changed section attributes.
12358         (avr_hard_regno_mode_ok): Force non-QImode data to start in
12359         even numbered registers on devices with "movw".
12360         * config/avr/avr.h (MASK_*): Define bits for target_flags.
12361         (TARGET_SWITCHES): Mark help strings for translation.
12362         Add new -mpack-args and -menhanced switches.
12363         (TARGET_OPTIONS): Mark help strings for translation.
12364         (progmem_section): Add section attributes.
12365         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
12366         Output "movw" if available.
12367         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
12368         New patterns.
12369         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
12370         call convention (arguments aligned on even registers).
12371         (_cleanup, _exit): Make weak symbols libc can override.
12372
12373 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12374
12375         * fp-bit.h: New file.
12376
12377         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
12378         Comment #endif statements.
12379         (__thenan_sf, __thenan_df): Add missing braces around initializer.
12380
12381 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
12382
12383         * gcse.c (compute_pre_data): Compute ae_kill using other local
12384         properties instead of calling compute_ae_kill.
12385
12386         * alias.c (init_alias_analysis): Do not call
12387         prologue_epilogue_contains until after reload has completed.
12388
12389 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
12390
12391         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
12392         (genrtl_finish_compound_stmt): Likewise.
12393         (genrtl_compound_stmt): Change to return void.
12394
12395         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
12396         move code from here to ...
12397         (genrtl_compound_stmt): ... here.
12398         (genrtl_finish_compound_stmt): Remove.
12399         (expand_stmt): Add comment.
12400
12401 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
12402
12403         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
12404         and VOID_TYPE_P.
12405
12406 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
12407
12408         * cpplib.h (struct cpp_reader): New field include_depth.
12409         (struct cpp_printer): Rename last_bsd to last_id.
12410         * cppfiles.c (read_include_file): Bump include_depth.
12411         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
12412         (output_line_command): Output correct #line if a header
12413         is including itself and is not protected against multiple inclusion.
12414         Use include_depth instead of buffer_stack_depth, last_id instead of
12415         last_bsd.
12416         * cppinit.c (cpp_start_read): Initialize last_id instead of
12417         last_bsd.
12418
12419 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
12420
12421         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
12422         (c-semantics.o): New target.
12423
12424         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
12425         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
12426         (genrtl_clear_out_block): Likewise.
12427         (genrtl_goto_stmt): Likewise.
12428         (genrtl_expr_stmt): Likewise.
12429         (genrtl_decl_stmt): Likewise.
12430         (genrtl_if_stmt): Likewise.
12431         (genrtl_while_stmt): Likewise.
12432         (genrtl_do_stmt): Likewise.
12433         (genrtl_return_stmt): Likewise.
12434         (genrtl_for_stmt): Likewise.
12435         (genrtl_break_stmt): Likewise.
12436         (genrtl_continue_stmt): Likewise.
12437         (genrtl_scope_stmt): Likewise.
12438         (genrtl_switch_stmt): Likewise.
12439         (genrtl_case_label): Likewise.
12440         (genrtl_begin_compound_stmt): Likewise.
12441         (gerntl_finish_compound_stmt): Likewise.
12442         (genrtl_compound_stmt): Likewise.
12443         (genrtl_asm_stmt): Likewise.
12444         (genrtl_decl_cleanup): Likewise.
12445         (DECL_ANON_UNION_ELEMS): Likewise.
12446         (emit_local_var): Likewise.
12447         (make_rtl_for_local_static): Likewise.
12448         (expand_cond): Likewise.
12449         (expand_stmt): Likewise.
12450         (c_expand_return): Likewise.
12451         (c_expand_start_case): Likewise.
12452         (do_case): Likewise.
12453         (COMPOUND_STMT_NO_SCOPE): Likewise.
12454         (c_expand_asm_operands): Likewise.
12455         (NEW_FOR_SCOPE_P): New macro.
12456         (expand_expr_stmt_fn): New type.
12457
12458         (set_current_function_name_declared): Likewise.
12459         (current_function_name_declared): Likewise.
12460         (lang_expand_stmt): Likewise.
12461         (stmts_are_full_exprs_p): Likewise.
12462         (anon_aggr_type_p): Likewise.
12463         (lang_expand_expr_stmt): Likewise.
12464         (build_case_label): Likewise.
12465
12466         * c-decl.c (lang_expand_expr_stmt): Initialize.
12467         (stmts_are_full_exprs_p): Define.
12468         (current_function_name_declared): Likewise.
12469         (do_case): Likewise.
12470         (lang_expand_stmt): Likewise.
12471         (set_current_function_name_declared): Likewise.
12472         (anon_aggr_type_p): Likewise.
12473
12474         * c-semantics.c: New file.
12475         (expand_cond): Moved from cp/semantics.c.
12476         (genrtl_do_pushlevel): Likewise.
12477         (genrtl_clear_out_block): Likewise.
12478         (genrtl_goto_stmt): Likewise.
12479         (genrtl_expr_stmt): Likewise.
12480         (genrtl_decl_stmt): Likewise.
12481         (genrtl_if_stmt): Likewise.
12482         (genrtl_while_stmt): Likewise.
12483         (genrtl_do_stmt): Likewise.
12484         (genrtl_return_stmt): Likewise.
12485         (genrtl_for_stmt): Likewise.
12486         (genrtl_break_stmt): Likewise.
12487         (genrtl_continue_stmt): Likewise.
12488         (genrtl_scope_stmt): Likewise.
12489         (genrtl_switch_stmt): Likewise.
12490         (genrtl_case_label): Likewise.
12491         (genrtl_begin_compound_stmt): Likewise.
12492         (genrtl_finish_compound_stmt): Likewise.
12493         (genrtl_compound_stmt): Likewise.
12494         (genrtl_asm_stmt): Likewise.
12495         (genrtl_decl_cleanup): Likewise.
12496         (make_rtl_for_local_static): Moved from cp/decl.c.
12497         (emit_local_var): Likewise.
12498         (expand_stmt): Define.
12499
12500         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
12501         (c_expand_return): Likewise.
12502         (c_expand_start_case): Likewise.
12503
12504 2000-07-01  Richard Henderson  <rth@cygnus.com>
12505
12506         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
12507         with the low 13 bits set.
12508         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
12509         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
12510         of the low 13 bits into a CONST plus an adddi3.
12511         (load_symptr): Set RTX_UNCHANGING_P.
12512
12513 See ChangeLog.3 for earlier changes.