* parser.c (cp_token_position): New typedef. Define VEC thereof.
(struct cp_lexer): Allow buffer and buffer_end to be NULL. Make
next_token and last_token cp_token_position. Make saved_tokens a
VEC(cp_token_position).
(eof_token): New static variable.
(CP_SAVED_TOKENS_SIZE): Rename to ...
(CP_SAVED_TOKEN_STACK): ... here.
(cp_lexer_new_main): Adjust main lexer creation and buffer
filling.
(cp_lexer_new_from_tokens): Do not copy the tokens, merely point
to the parent buffer. Do not append eof token.
(cp_lexer_destroy): Only free buffer if non-NULL. Free token
stack.
(cp_lexer_next_token, cp_lexer_prev_token): Remove.
(cp_lexer_token_position, cp_lexer_token_at): New.
(cp_lexer_saving_tokens): Adjust. Make inline.
(cp_lexer_advance_token, cp_lexer_token_difference): Remove.
(cp_lexer_peek_token_emit_debug_info): Fold into ...
(cp_lexer_peek_token): ... here.
(cp_lexer_peek_nth_token): Don't peek past EOF.
(cp_lexer_consume_token): Set next_token to eof_token, if reaching
EOF.
(cp_lexer_purge_token): Adjust eof setting.
(cp_lexer_purge_tokens_after): Likewise.
(cp_lexer_save_tokens): Push next_token directly.
(cp_lexer_commit_tokens): Adjust.
(cp_lexer_rollback_tokens): Pop next_token directly.
(cp_parser_check_for_invalid_template_id): Adjust token purging.
(cp_parser_translation_unit): Do not consume the EOF.
(cp_parser_nested_name_specifier_opt): Adjust token purging.
(cp_parser_template_id, cp_parser_template_name): Likewise.
From-SVN: r89320
* config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
PR target/17317
* config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
base and index register for loads.
* config/arc/t-arc: Fix multilib handling.
From-SVN: r89316
* gcc.dg/tree-ssa/ifc-20040816-2.c: Use integer arithmetic instead
of floating point arithmetic, which could trap.
Co-Authored-By: Devang Patel <dpatel@apple.com>
From-SVN: r89313
2004-10-08 Mike Stump <mrs@apple.com>
Andrew Pinski <pinskia@physics.uc.edu>
* aclocal.m4: Rename to ...
* acinclude.m4: here and also use m4_include instead of sinclude.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* configure.ac: Add AM_MAINTAINER_MODE and AM_PROG_CC_C_O.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
From-SVN: r89312
* cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
don't inspect BLOCK_FOR_INSN for barriers.
* emit-rtl.c (emit_barrier_before): Revert last change.
(emit_barrier_after, emit_barrier): Ditto.
From-SVN: r89308
* call.c (struct conversion): Add base_p.
(convert_like): Add c_cast_p argument.
(convert_like_with_conversion): Likewise.
(build_conv): Clear base_p.
(standard_conversion): Set it, for derived-to-base conversions.
(convert_like_real): Add c_cast_p parameter. Handle pointer
conversions directly rather than relying on ocp_convert.
(perform_direct_initialization_if_possible): Add c_cast_p
parameter.
* cp-tree.h (perform_direct_initialization_if_possible): Change
prototype.
(convert_member_func_to_ptr): New function.
* typeck.c (check_for_casting_away_constness): Add diag_fn
parameter.
(build_static_cast_1): New function, split out from ...
(build_static_cast): ... here. Use build_static_cast_1.
(build_reinterpret_cast_1): New function, split out from ...
(build_reinterpret_cast): ... here. Use build_reinterpret_cast_1.
(build_const_cast_1): New function, split out from ...
(build_const_cast): ... here. Use build_const_cast_1.
(build_c_cast): Rewrite to use build_const_cast_1,
build_static_cast_1, and build_reinterpret_cast_1.
(convert_member_func_to_ptr): New function.
* g++.dg/conversion/reinterpret1.C: Adjust error markers.
* g++.dg/conversion/const2.C: New test.
* g++.dg/expr/reinterpret2.C: New test.
* g++.dg/expr/reinterpret3.C: New test.
* g++.dg/expr/cast2.C: New test.
* g++.dg/expr/copy1.C: New test.
* g++.dg/other/conversion1.C: Change error message.
* g++.dg/parse/comma1.C: Use __extension__ to allow casts from
function pointers to void *.
* g++.old-deja/g++.mike/p10148.C: Likewise.
From-SVN: r89300
* doc/extend.texi (Extended Asm): Warn and provide example
solution for using a call-clobbered asm register.
(Local Reg Vars): Similar. Cross-reference example.
From-SVN: r89299
2004-10-19 Andrew Pinski <pinskia@physics.uc.edu>
* tree-cfg.c (group_case_labels): Look at the second to last
case statement for combing with the default case.
From-SVN: r89288
* expr.c (expand_assignment): Remove the last argument.
Change the return type to void.
* expr.h: Update the prototype of expand_assignment.
* function.c (assign_parm_setup_reg): Update a call to
expand_assignment.
* stmt.c (expand_asm_expr): Likewise.
From-SVN: r89275
* src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
the function returning a structure pointed with R2.
* src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
the structure return value if T bit set. Emit position
independent code and EH data if PIC.
From-SVN: r89254
2004-10-18 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.c-torture/compile/pr17529.c: Fix test for non x86.
Also xfail as the patch was reverted.
From-SVN: r89249
* tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
(thread_jumps): Use forwardable as cache of
tree_forwarder_block_p throughout the function.
From-SVN: r89243
2004-10-18 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/15014
PR middle-end/16973
* tree-cfg.c (remove_bb): If we have a label expression in the
basic block and the label we have taken the address, move the
label expression to the basic block which is previous in the
linked list.
(tree_verify_flow_info): Fix printing out the label name of the
problematic label expression.
From-SVN: r89237