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