OSDN Git Service

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