Zack Weinberg [Thu, 21 Oct 2004 00:53:47 +0000 (00:53 +0000)]
dbxout.c (asmfile): Delete.
* dbxout.c (asmfile): Delete. All uses changed to asm_out_file.
(DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
Default to 0.
(dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
an internal label and an N_SLINE .stabn whose value is the
difference between that label and the function entry label.
(dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
label and an N_SO stab with an empty string referring to it.
(dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
(dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
(dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
macro is never defined.
* sdbout.c (sdbout_source_line_counter): Delete.
(PUT_SDB_SRC_FILE): Delete. Uses replaced with sole definition.
(sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
only two arguments.
* xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
* config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
* config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
definitions (identical to default).
* config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
* config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
DBX_OUTPUT_MAIN_SOURCE_FILE_END.
* config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
* config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
* config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
* config/alpha/alpha.c: Move declaration of num_source_filenames up.
(alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
(sym_lineno): Delete.
(alpha_output_filename): Do not emit N_SOL stabs here. Remove
now-unused variable.
(alpha_output_lineno): Delete.
* config/mips/mips-protos.h: Don't prototype mips_output_lineno.
* config/mips/mips.c (mips_output_filename): Don't use
ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
(mips_output_lineno): Delete.
(mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
* config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
* config/mips/mips.h: Likewise. Don't define ASM_OUTPUT_FILENAME.
* config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
* config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
* config/mmix/mmix.h: Likewise.
* config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
* config/mmix/mmix-protos.h: Don't prototype it.
* config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
no need to #undef ASM_OUTPUT_SOURCE_LINE.
* config/arm/aout.h: Remove RISCiX-specific definition of
DBX_OUTPUT_MAIN_SOURCE_FILENAME.
* config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
ASM_OUTPUT_SOURCE_LINE.
* config/rs6000/rs6000.h: (ASM_OUTPUT_SOURCE_LINE): Rename
DBX_OUTPUT_SOURCE_LINE. Don't use current_function_func_begin_label.
* config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
re PR c++/13495 (Friendship to class nested within a template is broken)
PR c++/13495
* decl.c (make_unbound_class_template): Add PARM_LIST parameter.
* cp-tree.h (make_unbound_class_template): Adjust prototype.
* parser.c (cp_parser_lookup_name): Adjust call to
make_unbound_class_template.
(cp_parser_single_declaration): Handle member class of class
template as template friend parsing correctly.
* friend.c (is_friend): Call is_specialization_of_friend for
template friend class.
(make_friend_class): Handle member class of class template as
template friend.
* pt.c (is_specialization_of_friend): Likewise.
(instantiate_class_template): Likewise.
(tsubst): Adjust call to make_unbound_class_template.
Nathan Sidwell [Wed, 20 Oct 2004 07:25:35 +0000 (07:25 +0000)]
parser.c (cp_token_position): New typedef.
* 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.
re PR target/17317 (Match Constraints for *movdf_insn fails)
* 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.
Mike Stump [Wed, 20 Oct 2004 01:26:37 +0000 (01:26 +0000)]
aclocal.m4: Rename to ...
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.
* 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.
Mark Mitchell [Tue, 19 Oct 2004 23:24:20 +0000 (23:24 +0000)]
call.c (struct conversion): Add base_p.
* 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.
extend.texi (Extended Asm): Warn and provide example solution for using a call-clobbered asm register.
* doc/extend.texi (Extended Asm): Warn and provide example
solution for using a call-clobbered asm register.
(Local Reg Vars): Similar. Cross-reference example.
Kazu Hirata [Tue, 19 Oct 2004 14:43:56 +0000 (14:43 +0000)]
expr.c (expand_assignment): Remove the last argument.
* 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.
Kaz Kojima [Mon, 18 Oct 2004 23:12:20 +0000 (23:12 +0000)]
ffi.c (ffi_prep_closure): Set T bit in trampoline for the function returning a structure pointed with R2.
* 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.
Kazu Hirata [Mon, 18 Oct 2004 21:14:34 +0000 (21:14 +0000)]
tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
* 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.
Andrew Pinski [Mon, 18 Oct 2004 19:29:52 +0000 (19:29 +0000)]
re PR middle-end/15014 (labels after are removed even though they are used)
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.
* simplify-rtx.c (mode_signbit_p): Externalize function...
* rtl.h (mode_signbit_p): ... to here.
* combine.c (simplify_shift_const): Recognize PLUS signbit as
canonical form of XOR signbit and move to outer op.
Diego Novillo [Mon, 18 Oct 2004 18:01:10 +0000 (18:01 +0000)]
tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
* tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
Update all callers.
* tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
Don't call fold_stmt more than once, use bsi_replace.
Diego Novillo [Mon, 18 Oct 2004 17:39:47 +0000 (17:39 +0000)]
re PR tree-optimization/17656 (internal compiler error: in replace_immediate_uses, at tree-ssa.c:1041)
PR tree-optimization/17656
* tree-ssa.c (replace_immediate_uses): When replacing a
constant, if the call to fold_stmt produced a different
statement, get an appropriate statement pointer by scanning
STMT's basic block.
PR tree-optimization/17656
* testsuite/gcc.c-torture/compile/pr17656.c: New test.