OSDN Git Service

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