aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/error.c
AgeCommit message (Collapse)AuthorFilesLines
2001-03-28IA-64 ABI Exception Handling.Richard Henderson1-1/+1
From-SVN: r40924
2001-03-26error.c: Also undefine 'A' macro used for cp_printers definition.Phil Edwards1-0/+1
2001-03-26 Phil Edwards <pme@sources.redhat.com> * error.c: Also undefine 'A' macro used for cp_printers definition. From-SVN: r40854
2001-03-21collect2.c (is_ctor_dtor): Always use '_' in the file fn names, not '.' or '$'.Jason Merrill1-9/+1
* collect2.c (is_ctor_dtor): Always use '_' in the file fn names, not '.' or '$'. * tree.c (FILE_FUNCTION_FORMAT): Likewise. * varasm.c (CHKR_PREFIX): Likewise. * error.c (GLOBAL_THING): Always use '__'. From-SVN: r40723
2001-03-19Compute DECL_ASSEMBLER_NAME lazily.Mark Mitchell1-8/+4
* tree.h (DECL_ASSEMBLER_NAME): Compute it lazily. (DECL_ASSEMBLER_NAME_SET_P): New macro. (SET_DECL_ASSEMBLER_NAME): Likewise. (COPY_DECL_ASSEMBLER_NAME): Likewise. (set_decl_assembler_name): Declare. (lang_set_decl_assembler_name): Likewise. * tree.c (lang_set_decl_assembler_name): New variab.e (set_decl_assembler_name): New function. (init_obstacks): Set lang_set_decl_assembler_name. (build_decl): Don't set DECL_ASSEMBLER_NAME. * c-decl.c (duplicate_decls): Use SET_DECL_ASSEMBLER_NAME, COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME where it's not necessary. (builtin_function): Likewise. (finish_decl): Likewise. * dbxout.c (dbxout_type_methods): Likewise. * ggc-common.c (ggc_mark_trees): Likewise. * profile.c (output_func_start_profiler): Likewise. * varasm.c (make_decl_rtl): Likewise. * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME where it's not necessary. (add_method): Remove optimization involving comparison of DECL_ASSEMBLER_NAME. (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME where it's not necessary. (check_methods): Likewise. (build_clone): Likewise. (built_vtt): Likewise. * cp-tree.h (DECL_NEEDED_P): Likewise. * decl.c (pushtag): Likewise. (duplicate_decls): Likewise. (pushdecl): Likewise. (builtin_function): Likewise. (build_library_fn_1): Set DECL_LANGUAGE for library functions. (build_cp_library_fn): Likewise. (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME where it's not necessary. (make_rtl_for_nonlocal_decl): Likewise. (cp_finish_decl): Likewise. (grokfndecl): Likewise. (grokvardecl): Likewise. (grokdeclarator): Likewise. (start_function): Likewise. (cp_missing_return_ok_p): Likewise. * decl2.c (grokclassfn): Likewise. (check_classfn): Likewise. (finish_static_data_member_decl): Likewise. (grokfield): Likewise. * error.c (GLOBAL_IORD_P): Remove. (dump_global_iord): Improve output. (dump_decl): Avoid using DECL_ASSEMBLER_NAME. * except.c (nothrow_libfn_p): Summarily reject any function not in namespace-scope. * init.c (build_java_class_ref): Don't explicitly set DECL_ASSEMBLER_NAME after calling mangle_decl. * mangle.c (mangle_decl_string): Handle extern "C" functions. (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. * method.c (set_mangled_name_for_decl): Don't explicitly set DECL_ASSEMBLER_NAME after calling mangle_decl. (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and IDENTIFIER_GLOBAL_VALUE for the thunk. * pt.c (set_mangled_name_for_template_decl): Remove. (check_explicit_specialization): Don't use it. (looup_template_class): Don't set DECL_ASSEMBLER_NAME. (tsubst_friend_function): Likewise. (tsubst_decl): Likewise. (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME where it's not necessary. (tinfo_base_init): Likewise. (create_real_tinfo_var): Likewise. * search.c (looup_field_1): Likewise. * semantics.c (finish_named_return_value): Likewise. * tree.c (init_tree): Set lang_set_decl_assembler_name. * com.c (builtin_function): Use SET_DECL_ASSEMBLER_NAME. * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME. (layout_class): Likewise. (layout_class_method): Likewise. (emit_register_classes): Likewise. * decl.c (builtin_function): Likewise. (give_name_to_locals): Likewise. From-SVN: r40642
2001-02-18Do put the VTT parameter in DECL_ARGUMENTS.Jason Merrill1-9/+1
* cp-tree.h (struct cp_language_function): Add x_vtt_parm. (current_vtt_parm): New macro. (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. (DECL_HAS_VTT_PARM_P): New macro. (DECL_VTT_PARM): Remove. (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. * decl.c (duplicate_decls): Only copy the operator code if appropriate. (start_function): Set current_vtt_parm. (lang_mark_tree): Don't mark vtt_parm. * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. * class.c (build_clone): Maybe remove the VTT parm. * optimize.c (maybe_clone_body): Set up the VTT parm. * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. * call.c (build_over_call): Just allow the VTT arg. * method.c (make_thunk): Don't set DECL_VTT_PARM. (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. * error.c (dump_function_decl): Likewise. * call.c (build_user_type_conversion_1, convert_like_real): Abort if we try to call a constructor with in-charge or VTT parms. * method.c (skip_artificial_parms_for): New fn. * call.c (add_function_candidate, build_over_call): Call it. * call.c (build_new_method_call): Use current_vtt_parm. * init.c (expand_virtual_init): Likewise. * class.c (same_signature_p): No longer static. * cp-tree.h: Declare it. * search.c (look_for_overrides_r): Use it. From-SVN: r39841
2001-02-12Remove old ABI support.Mark Mitchell1-1/+1
From-SVN: r39599
2001-01-10error.c (dump_template_parameter): Use parm to determine how to print ↵Nathan Sidwell1-1/+1
default value. cp: * error.c (dump_template_parameter): Use parm to determine how to print default value. testsuite: * g++.old_deja/g++.pt/error3.C: New test. From-SVN: r38869
2000-12-21pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not DECL_TEMPLATE_RESULT.Jason Merrill1-0/+18
* pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not DECL_TEMPLATE_RESULT. * search.c (lookup_field_r): Call lookup_fnfields_1, not lookup_fnfields_here. * parse.y (typename_sub2): Return the TYPE_DECL, not the type. * call.c (build_object_call): Also allow conversions that return reference to pointer to function. (add_conv_candidate): Handle totype being ref to ptr to fn. (build_field_call): Also allow members of type reference to function. Lose support for calling pointer to METHOD_TYPE fields. * error.c (dump_expr): Handle *_CAST_EXPR. * typeck2.c (build_scoped_ref): Always convert to the naming class. * tree.c (break_out_cleanups): Lose. * cp-tree.h: Remove prototype. * typeck.c (build_component_ref): Don't break_out_cleanups. (build_compound_expr): Likewise. * semantics.c (finish_expr_stmt): Likewise. From-SVN: r38417
2000-12-09error.c (dump_function_name): Don't let the user see __comp_ctor.Jason Merrill1-0/+5
* error.c (dump_function_name): Don't let the user see __comp_ctor. Clean up copy-initialization in overloading code. * call.c (build_user_type_conversion_1): Die if we are asked to convert to the same or a base type. (implicit_conversion): Avoid doing so. Lose reference binding code. (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit direct-initialization. Also do direct-init part of copy-init. (build_user_type_conversion): Don't provide context to convert_like. * cvt.c (ocp_convert): build_user_type_conversion will now provide the constructor call for copy-init. * pt.c (tsubst_decl): Call clone_function_decl here if this is an instantiation of a member template. (do_decl_instantiation): Not here. From-SVN: r38158
2000-12-04* error.c (dump_tree): Use output_add_string not OB_PUTS.Richard Henderson1-1/+1
From-SVN: r38021
2000-12-04mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".Jason Merrill1-11/+7
* mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". (write_builtin_type): Pass intSI_type_node and the like through type_for_mode. * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. Pass intSI_type_node and the like through type_for_mode. * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. * pt.c (tsubst, unify): Likewise. * tree.c (walk_tree): Likewise. * error.c (dump_type): Likewise. (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. * Make-lang.in: Tweak top comment for emacs. (cp/TAGS): Restore. * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. * pt.c (tsubst_decl): Call clone_function_decl here. (do_decl_instantiation): Not here. * class.c (clone_function_decl): Robustify. * decl.c (store_bindings): Only search in the non modified old_bindings for duplicates. From-SVN: r37999
2000-12-04error.c (dump_function_decl): Use DECL_VIRTUAL_P, not TYPE_POLYMORPHIC_P.Nathan Sidwell1-1/+1
cp: * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not TYPE_POLYMORPHIC_P. * typeck.c (build_static_cast): Remove unused variable. From-SVN: r37996
2000-11-07alias.c [...] (init_alias_analysis, [...]): Use memset () instead of bzero ().Joseph Myers1-1/+1
* alias.c (init_alias_analysis), calls.c (expand_call, emit_library_call_value_1), combine.c (init_reg_last_arrays), cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c (init_output_buffer, set_diagnostic_context), dwarf2out.c (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c (init_emit_once), fold-const.c (mul_double, div_and_round_double), function.c (assign_parms), gcse.c (compute_can_copy, alloc_gcse_mem, alloc_reg_set_mem, record_one_set, compute_hash_table, compute_set_hash_table, compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info, clear_units, schedule_block), integrate.c (initialize_for_inline, expand_inline_function), jump.c (thread_jumps), local-alloc.c (local_alloc), loop.c (combine_movables, count_loop_regs_set, load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree), regclass.c (init_reg_sets, init_reg_sets_1, regclass, record_reg_classes, allocate_reg_info), reload.c (get_secondary_mem, remove_address_replacements, find_reloads), reload1.c (reload, set_initial_label_offsets, finish_spills, reload_as_needed, choose_reload_regs_init, reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c (rename_registers), stmt.c (expand_end_case), unroll.c (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset () instead of bzero (). ch: * actions.c (check_missing_cases), typeck.c (build_chill_slice, build_chill_cast): Use memset () instead of bzero (). cp: * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c (push_binding_level), error.c (cp_tree_printer), pt.c (process_partial_specialization, tsubst_template_arg_vector), search.c (lookup_member): Use memset () instead of bzero (). java: * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c (init_outgoing_cpool), lex.c (java_init_lex): Use memset () instead of bzero (). From-SVN: r37303
2000-11-01error.c (dump_template_decl): Separate template hearders with space not comma.Gabriel Dos Reis1-1/+1
* error.c (dump_template_decl): Separate template hearders with space not comma. From-SVN: r37185
2000-10-31memtemp77.C (main): Adjust comparison against.Gabriel Dos Reis1-204/+163
testsuite/ * g++.old-deja/g++.pt/memtemp77.C (main): Adjust comparison against. __PRETTY_FUNCTION__ cp/ * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace TS_* flags with corresponding TFF_*. Adjust prototypes of functions (which used to take a tree_string_flags) to take an int. * cp-tree.h (enum tree_string_flags): Remove (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. (type_as_string, decl_as_string, expr_as_string, context_as_string): Adjust prototype. * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER instead of TS_PLAIN. * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of plain `0'. From-SVN: r37152
2000-10-31cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.Mark Mitchell1-16/+17
* cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. (linkage_kind): New enumeration. (decl_linkage): New function. * decl2.c (comdat_linkage): Extend comment. * error.c (dump_function_decl): Print the arguments used to instantiate a template, even when not printing the type of the function. * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, not TREE_PUBLIC, to test for external linkage. * tree.c (decl_linkage): New function. From-SVN: r37150
2000-10-26error.c (dump_function_decl): Print no space between `ptr-operator' the ↵Gabriel Dos Reis1-6/+7
`type-specifier' of the return type. cp/ * error.c (dump_function_decl): Print no space between `ptr-operator' the `type-specifier' of the return type. (dump_type_prefix): Make sure we put space at the appropriate place. testuite/g++.old-deja/g++.pt/ * g++.old-deja/g++.pt/memtemp77.C (main): Adjust comparaison operands. From-SVN: r37067
2000-10-22decl2.c (arg_assoc_type): Handle VECTOR_TYPE.Geoff Keating1-0/+11
* decl2.c (arg_assoc_type): Handle VECTOR_TYPE. * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. (dump_type_prefix): Print vector-of-int as 'int vector'. (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. * tree.c (walk_tree): Handle VECTOR_TYPE. From-SVN: r37002
2000-10-20tree.c (walk_tree): Don't walk into default args.Jason Merrill1-2/+1
* tree.c (walk_tree): Don't walk into default args. * error.c (dump_expr): Use host_integerp. From-SVN: r36984
2000-09-29error.c: Remove direct obstack manipulation.Gabriel Dos Reis1-321/+292
cp/ * error.c: Remove direct obstack manipulation. Replace with output_buffer-based formatting. Adjust calls to removed macros. (obstack_chunk_alloc, obstack_chunk_free): Remove. (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. testsuite/ * g++.old-deja/g++.ext/pretty3.C: Fix comparison with __PRETTY_FUNCTION__. * g++.old-deja/g++.ext/pretty2.C: Likewise. From-SVN: r36666
2000-09-21errfn.c: Move declaration of cp_printer and cp_printers to ...Andreas Jaeger1-87/+85
* errfn.c: Move declaration of cp_printer and cp_printers to ... * cp-tree.h: ... here. * error.c: Remove declaration of cp_printer. From-SVN: r36557
2000-09-12error.c (TFF_PLAIN_IDENTIFIER, [...]): New macros.Gabriel Dos Reis1-19/+648
* error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): New macros. (sorry_for_unsupported_tree, print_scope_operator, print_left_paren, print_right_paren, print_left_bracket, print_right_bracket, print_whitespace): Likewise. (aggr_variety): Rename to class_key_or_enum. (print_type): Rename to print_type_id. (print_type_specifier_seq, print_simple_type_specifier, print_elaborated_type_specifier, print_rest_of_abstract_declarator, print_parameter_declaration_clause, print_exception_specification, print_nested_name_specifier, print_template_id, typedef_original_name, print_template_argument_list_start, print_template_argument_list_end): New functions. From-SVN: r36356
2000-09-11* error.c (cp_tree_printer, case 'P'): Append break.Nathan Sidwell1-0/+1
From-SVN: r36318
2000-09-06error.c (dump_typename): New function, broken out of ...Nathan Sidwell1-3/+20
* error.c (dump_typename): New function, broken out of ... (dump_type): ... here. Use it. * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. From-SVN: r36193
2000-09-04tweakJason Merrill1-0/+1
From-SVN: r36152
2000-09-04cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.Kriang Lerdsuwanakij1-15/+15
* cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. (TEMPLATE_TEMPLATE_PARM): Adjust comment. * cp-tree.h (TYPE_BINFO): Adjust comment. (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. (TEMPLATE_TYPE_PARM_INDEX): Likewise. (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. (TYPE_TEMPLATE_INFO): Likewise. (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. * class.c (push_nested_class): Likewise. * decl.c (lookup_name_real): Likewise. (grokdeclarator): Likewise. (grok_op_properties): Likewise. (xref_tag): Likewise. (xref_basetypes): Likewise. * decl2.c (constructor_name_full): Likewise. (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. (dump_type_suffix): Likewise. * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. (get_aggr_from_typedef): Likewise. * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. (write_template_parm): Likewise. (write_template_template_parm): Check tree code instead of using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. * method.c (build_overload_nested_name): Add BOUND_TEMPLATE_TEMPLATE_PARM. (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. * pt.c (convert_template_argument): Check tree code instead of using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. (for_each_template_parm): Adjust comment. (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use template_args_equal to compare template template parameter cases. * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. * tree.c (copy_template_template_parm): Decide whether to create a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. (copy_tree_r): Likewise. * typeck.c (comptypes): Likewise. Check tree code instead of using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. From-SVN: r36149
2000-08-25* error.c (cp_tree_printer): Rework.Gabriel Dos Reis1-33/+40
From-SVN: r35981
2000-08-24error.c (tree_formatting_info): New data type.Gabriel Dos Reis1-2/+188
* error.c (tree_formatting_info): New data type. (tree_being_formatted): New macro. (tree_formatting_flags): Likewise. (put_whitespace): Likewise. (print_tree_identifier): Likewise. (print_identifier): Likewise. (cp_tree_printer, print_function_argument_list, print_declaration, print_expression, print_function_declaration, print_function_parameter, print_type, print_cv_qualifier): New functions. (init_error): Initialize lang_printer. From-SVN: r35965
2000-08-24diagnostic.c (finish_diagnostic): Define.Gabriel Dos Reis1-0/+1
* diagnostic.c (finish_diagnostic): Define. (output_do_printf): Use wrap_text instead of output_add_string. (default_print_error_function): Avoid embedded '\n'. * diagnostic.h (flush_diagnostic_buffer): Declare. cp/ * error.c (print_instantiation_context): Don't forget to flush the buffer. From-SVN: r35939
2000-08-23error.c (cp_print_error_function): Don't use embedded '\n' in output_printf.Gabriel Dos Reis1-5/+3
* error.c (cp_print_error_function): Don't use embedded '\n' in output_printf. From-SVN: r35906
2000-08-23decl.c (init_decl_processing): Remove bogus initialization.Gabriel Dos Reis1-0/+15
* decl.c (init_decl_processing): Remove bogus initialization. * error.c (lang_print_error_function): Restore here. (init_error): Initialize print_error_function. From-SVN: r35902
2000-08-22Makefile.in (error.o): Depends on diagnostic.hGabriel Dos Reis1-0/+169
* Makefile.in (error.o): Depends on diagnostic.h * cp-tree.h (problematic_instantiation_changed, record_last_problematic_instantiation, current_instantiation, print_instantiation_context): Declare. (maybe_print_template_context): Remove. * decl.c (init_decl_processing): Set print_error_function to NULL. (lang_print_error_function): Remove, since we're using a new machinery. * error.c: #include diagnostic.h (function_category): New function. (cp_diagnostic_starter): Likewise. (cp_diagnostic_finalizer): Likewise. (cp_print_error_function): Likewise. (maybe_print_instantiation_context): Likewise. (print_instantiation_full_context): Likewise. (print_instantiation_partial_context): Likewise. (print_instantiation_context): Define. (init_error): Initialize diagnostic pager and finalizer. * pt.c (problematic_instantiation_changed): Define. (record_last_problematic_instantiation): Likewise. (current_instantiation): Likewise. (maybe_print_template_context): Remove. (print_template_context): Likewise. (current_tinst_level): Make static to reflect Brendan Kehoe's change of 1995-04-13. (push_tinst_level): Call print_instantiation_context. From-SVN: r35893
2000-08-18cp-tree.h (enum_name_string): Remove prototype.Nathan Sidwell1-22/+42
* cp-tree.h (enum_name_string): Remove prototype. (report_case_error): Remove prototype. * cp/typeck2.c (enum_name_string): Remove. (report_case_error): Remove. * error.c (dump_expr): Deal with enum values directly. Correctly negate integer constant. From-SVN: r35774
2000-08-17cp-tree.h (CPTR_AGGR_TAG): New global tree node.Nathan Sidwell1-1/+1
* cp-tree.h (CPTR_AGGR_TAG): New global tree node. (current_aggr): Define. * decl.c (grokdeclarator): Make sure a friend class is an elaborated type specifier. * parse.y (current_aggr): Remove static definition. (cp_parse_init): Adjust. (structsp): Clear and restore current_aggr. (component_decl_list): Clear current_aggr. * error.c (dump_type, case TYPENAME_TYPE): Don't emit the aggregate tag on the typename's context. * pt.c (tsubst_friend_class): Return NULL, if parms becomes NULL. (instantiate_class_template): Ignore NULL friend types. From-SVN: r35755
2000-07-10init.c (build_new_1): Bail early if the call to new fails.Jason Merrill1-1/+9
* init.c (build_new_1): Bail early if the call to new fails. * decl.c (compute_array_index_type): Check specifically for an INTEGER_CST, not just TREE_CONSTANT. * decl.c (duplicate_decls): Don't call duplicate_decls on the DECL_TEMPLATE_RESULT. (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different codes. * error.c (dump_template_bindings): Don't crash if we had an invalid argument list. * typeck.c (c_expand_start_case): Do narrowing here. * semantics.c (finish_switch_cond): Not here. * parse.y (asm_clobbers): Do string concatenation. From-SVN: r34938
2000-06-30c-common.c: Include c-common.h, not c-lex.h or c-tree.h.Mark Mitchell1-1/+1
* c-common.c: Include c-common.h, not c-lex.h or c-tree.h. * c-common.h (flag_const_strings): Declare. (warn_format): Likewise. (flag_traditional): Likewise. (flag_isoc99): Likewise. (warn_parentheses): Likewise. (warn_conversion): Likewise. (C_TYPE_OBJECT_P): Likewise. (C_TYPE_INCOMPLETE_P): Likewise. (C_TYPE_FUNCTION_P): Likewise. (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. (C_EXP_ORIGINAL_CODE): Likewise. (build_unary_op): Likewise. (build_binary_op): Likewise. (lvalue_p): Likewise. (default_conversion): Likewise. (common_type): Likewise. * c-tree.h (C_TYPE_OBJECT_P): Remove. (C_TYPE_INCOMPLETE_P): Likewise. (C_TYPE_FUNCTION_P): Likewise. (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. (C_EXP_ORIGINAL_CODE): Likewise. (common_type): Likewise. (default_conversion): Likewise. (build_binary_op): Likewise. (build_unary_op): Likewise. (lvalue_p): Likewise. (flag_const_strings): Likewise. (warn_format): Likewise. (warn_conversion): Likewise. (flag_traditional): Likewise. (flag_isoc99): Likewise. (warn_parentheses): Likewise. * cp-tree.h (flag_const_strings): Remove. (warn_parentheses): Likewise. (warn_format): Likewise. (common_type): Likewise. (default_conversion): Likewise. (build_binary_op): Likewise. (cp_build_binary_op): New macro. * call.c (build_new_op): Use cp_build_binary_op instead of build_binary_op. * class.c (build_vtable_entry_ref): Likewise. * decl.c (expand_static_init): Likewise. (compute_array_index_type): Likewise. (build_enumerator): Likewise. * decl2.c (delete_sanity): Likewise. (start_static_initialization_or_destruction): Likewise. * error.c (dump_type_suffix): Likewise. * init.c (resolve_offset_ref): Likewise. (build_new): Likewise. (build_new_1): Likewise. (build_vec_delete_1): Likewise. (build_vec_init): Likewise. (build_delete): Likewise. * rtti.c (synthesize_tinfo_fn): Likewise. (synthesize_tinfo_var): Likewise. * search.c (expand_upcast_fixups): Likewise. (fixup_all_virtual_upcast_offsets): Likewise. * typeck.c (build_array_ref): Likewise. (get_member_function_from_ptrfunc): Likewise. (build_binary_op): Add parameter. (pointer_int_sum): Use cp_build_binary_op. (pointer_diff): Likewise. (build_modify_expr): Likewise. (get_delta_difference): Likewise. (build_ptrmemfunc): Likewise. From-SVN: r34796
2000-06-23cp-tree.h (BV_USE_VCALL_INDEX_P): New macro.Mark Mitchell1-1/+1
* cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset a tree, not an int. (THUNK_GENERATE_WITH_VTABLE_P): New macro. (make_thunk): Change prototype. (emit_thunk): Rename to use_thunk. (mangle_thunk): Change prototype. * class.c (get_derived_offset): Simplify. (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and BV_GENERATE_THUNK_WITH_VTABLE_P. (build_primary_vtable): Simplify. (add_virtual_function): Use BV_FN, rather than TREE_VALUE. (dfs_find_base): Remove. (update_vtable_entry_for_fn): Correct bug in finding the base where a virtual function was first declared. Figure out whether or not to emit a vcall-thunk with the vtables in which it appears. Correct logic for deciding whether to use an ordinary thunk, or a vcall thunk. (finish_struct_1): Remove unnecssary code. (build_vtbl_initializer): Use ssize_int for the running counter of negative indices. (build_vtbl_initializer): Only use vcall thunks where necessary. Mark thunks as needing to be emitted with their vtables, or not. (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in indices. Use size_binop. (dfs_build_vcall_offset_vtbl_entries): Don't rely on BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use size_binop. (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. (build_vtable_entry): Mark thunks as needing to be emitted with their vtables, or not. * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. * decl2.c (mark_vtable_entries): Use use_thunk instead of emit_thunk. * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk information. * error.c (dump_expr): Use BV_FN. * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, not an int. * method.c (make_thunk): Likewise. (emit_thunk): Rename to use_thunk. Allow callers to decide whether or not to actually emit the thunk. Adjust for changes in representation of vcall offsets. * search.c (dfs_get_pure_virtuals): Use BV_FN. * semantics.c (emit_associated_thunks): New function. (expand_body): Use it. * ir.texi: Adjust decriptions of thunks. From-SVN: r34656
2000-06-20call.c (build_conditional_expr): Use VOID_TYPE_P.Nathan Sidwell1-2/+4
* call.c (build_conditional_expr): Use VOID_TYPE_P. * cvt.c (cp_convert_to_pointer): Likewise. (convert_to_void): Likewise. * error.c (dump_expr): Likewise. * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. * init.c (build_delete): Likewise. * method.c (emit_thunk): Likewise. * optmize.c (declare_return_variable): Likewise. * rtti.c (get_tinfo_decl_dynamic): Likewise. (get_typeid): Likewise. (build_dynamic_cast_1): Likewise. * typeck.c (composite_pointer_type): Likewise. (common_type): Likewise. (build_indirect_ref): Likewise. (build_binary_op): Likewise. (build_x_compound_expr): Likewise. (check_return_expr): Likewise. * typeck2.c (add_exception_specifier): Likewise. * mangle.c (write_method_parms): Use direct comparison for end of parmlist. From-SVN: r34617
2000-06-16cp-tree.h (struct language_function): Remove x_base_init_list and ↵Mark Mitchell1-1/+6
x_member_init_list. * cp-tree.h (struct language_function): Remove x_base_init_list and x_member_init_list. (current_base_init_list): Remove. (current_member_init_list): Likewise. (setup_vtbl_ptr): Change prototype. (emit_base_init): Likewise. (expand_member_init): Likewise. (reinit_parse_for_function): Remove. * decl.c (save_function_data): Don't clear x_base_init_list and x_member_init_list. (mark_language_function): Don't mark them. * init.c (perform_member_init): Tweak comment. (sort_member_init): Take the list of initializers as an argument. (sort_base_init): Likewise. (emit_base_init): Likewise. (expand_member_init): Return the initializer. Don't use global variables. * lex.c (reinit_parse_for_function): Remove. * method.c (build_template_parm_names): Correct substitution. (do_build_copy_constructor): Don't use current_member_init_list and current_base_init_list. (synthesize_method): Likewise. * parse.y (base_init): Split mem-initializers into base-initializers and field-initializers. (member_init_list): Build up the list here. (member_init): Return the initializer. (fn.depfn): Don't use reinit_parse_for_function. * parse.c: Regenerated. * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the ERROR_MARK. (tsubst_expr): Don't use current_member_init_list and current_base_init_list. (tsubst_expr_values): Rename to ... (tsubst_initializer_list): ... this. Use convert_from_reference. * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list and current_base_init_list. (begin_function_definition): Don't call reinit_parse_for_function. * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE correctly. From-SVN: r34571
2000-06-03cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment.Mark Mitchell1-3/+8
* cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. (INNERMOST_TEMPLATE_ARGS): New macro. (innermost_args): Remove. (get_innermost_template_args): New function. * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. * error.c (dump_function_decl): Be caution when using most_general_template. * method.c (build_template_parm_names): Use INNERMOST_TEMPLATE_ARGS. * pt.c (add_to_template_args): Tidy comment (get_innermost_template_args): New function. (check_explicit_specialization): Clear DECL_INITIAL for a new specialization. (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. Tidy. (push_template_decl): Always register specializations of the most general template. (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. (coerce_template_parms): Likewise. (lookup_template_class): Likewise. (innermost_args): Remove. (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. (tsubst_decl): Handle tricky specializations. Use get_innermost_template_args. (instantiate_template): Simplify handling of partial instantiations. (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. (most_general_template): Reimplement, in a more straightforward manner. (regenerate_decl_from_template): Tweak formatting. Use TMPL_ARGS_DEPTH for clarity. (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. * dump.c (dequeue_and_dump): Dump information about thunks. From-SVN: r34384
2000-05-28cp-tree.h (ansi_opname): Make it a macro.Alex Samuel1-30/+10
2000-05-27 Alex Samuel <samuel@codesourcery.com> Mark Mitchell <mark@codesourcery.com> * cp-tree.h (ansi_opname): Make it a macro. (ansi_assopname): Likewise. (struct lang_decl_flags): Add assignment_operator_p. (struct lang_decl): Add operator_code. (DECL_VTT_PARM): Adjust. (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an overloaded operator. (SET_OVERLOADED_OPERATOR_CODE): New macro. (DECL_ASSIGNMENT_OPERATOR_P): New macro. (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. (opname_tab): Remove. (assignop_tab): Likewise. (operator_name_info_t): New type. (operator_name_info): New variable. (assignment_operator_name_info): Likewise. (build_cp_library_fn): Remove declaration. (push_cp_library_fn): Likewise. (operator_name_string): Likewise. (build_decl_overload): Likewise. * call.c (print_z_candidates): Simplify. (build_object_call): Adjust usage of ansi_opname. Use DECL_OVERLOADED_OPERATOR_P. (op_error): Adjust operator name lookup. (build_conditional_expr): Adjust usage of ansi_opname. (build_new_op): Likewise. (build_op_delete_call): Likewise. (build_over_call): Likewise. (joust): Use DECL_OVERLOADED_OPERATOR_P. * decl.c (duplicate_decls): Copy operator_code. (init_decl_processing): Adjust parameters to push_cp_library_fn. (builtin_function): Adjust parameters to build_library_fn_1. (build_library_fn_1): Accept an overloaded operator code. (build_library_fn): Pass ERROR_MARK. (build_cp_library_fn): Accept an overloaded operator code. (push_cp_library_fn): Likewise. (grokfndecl): Tweak. (grokdeclarator): Simplify code to compute names of overloaded operators. Adjust use of ansi_opname. (ambi_op_p): Work on tree_codes, not identifiers. (unary_op_p): Likewise. (grok_op_properties): Likewise. (start_function): Use DECL_OVERLOADED_OPERATOR_P. (lang_mark_tree): Don't try to mark the operator_code. * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. * error.c (dump_decl): Remove special handling for operator names. (dump_function_name): Likewise. (dump_expr): Adjust name lookup of operators. (op_to_string): Simplify. (assop_to_string): Likewise. * init.c (build_new_1): Adjust use of ansi_opname. * lex.c (opname_tab): Remove. (assignop_tab): Likewise. (ansi_opname): Likewise. (ansi_assopname): Likewise. (operator_name_string): Likewise. (reinit_lang_specific): Likewise. (operator_name_info): New variable. (assignment_operator_name_info): Likewise. (init_operators): New function. (init_parse): Use it. (do_identifier): Adjust use of ansi_opname. * method.c (mangle_expression): Don't use ansi_opname for mangling. (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. (build_decl_overload): Remove. (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. (do_build_assign_ref): Adjust use of ansi_opname. (synthesize_method): Likewise. (implicitly_declare_fn): Likewise. * operators.def: New file. * parse.y (operator): Adjust use of ansi_opname. * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. (set_mangled_name_for_template_decl): Don't play games with current_namespace. (special_function_p): Adjust use of ansi_opname. * typeck.c (check_return_expr): Likewise. * Make-lang.in (cc1plus): Depend on operators.def. * Makefile.in (lex.o): Likewise. (decl.o): Likewise. Co-Authored-By: Mark Mitchell <mark@codesourcery.com> From-SVN: r34223
2000-05-22cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp.Mark Mitchell1-2/+1
* cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. (DECL_CONV_FN_P): Simplify. (DECL_OPERATOR): Remove. (language_to_string): Declare. * decl.c (duplicate_decls): Fix typo in comment. (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. (grok_op_properties): Use DECL_CONV_FN_P instead of IDENTIFIER_TYPENAME_P. * dump.c (dequeue_and_dump): Dump the language linkage of declarations. * error.c (language_to_string): Give it external linkage. * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. (implicitly_declare_fn): Set DECL_LANGUAGE. * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not IDENTIFIER_TYPENAME_P. (tsubst_decl): Likewise. (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. * semantics.c (finish_member_declaration): Don't mark members of classes declared in an extern "C" region as extern "C". From-SVN: r34095
2000-04-11cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr to ↵Mark Mitchell1-2/+2
has_in_charge_parm_p. * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr to has_in_charge_parm_p. (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... (DECL_HAS_IN_CHARGE_PARM_P): ... this. (DECL_COPY_CONSTRUCTOR_P): New macro. * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. (build_user_type_conversion_1): Likewise. (convert_like_real): Likewise. (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. (copy_args_p): Likewise. (grok_ctor_properties): Likewise. (start_function): Likewise. * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. * method.c (do_build_copy_constructor): Use DECL_HAS_IN_CHARGE_PARM_P. (synthesize_method): Likewise. * pt.c (instantiate_template): Remove goto. * tree.c (build_cplus_method_type): Remove mention of obstacks in comment. From-SVN: r33080
2000-03-28Put RTTI entries at negative offsets in new ABI.Mark Mitchell1-1/+1
* class.c (dfs_build_vbase_offset_vtbl_entries): Put the first vbase offset at index -3, not -1. (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. (build_rtti_vtbl_entries): New function. (set_rtti_entry): Remove. (build_primary_vtable): Don't use it. (build_secondary_vtable): Likewise. (start_vtable): Remove. (first_vfun_index): New function. (set_vindex): Likewise. (add_virtual_function): Don't call start_vtable. Do call set_vindex. (set_primary_base): Rename parameter. (determine_primary_base): Likewise. (num_vfun_entries): Don't use skip_rtti_stuff. (num_extra_vtbl_entries): Include RTTI information. (build_vtbl_initializer): Use build_rtti_vtbl_entries. (skip_rtti_stuff): Remove. (dfs_modify_vtables): Don't use it. (modify_all_vtables): Don't use start_vtable. Do use set_vindex. (layout_nonempty_base_or_field): Update size handling. (create_vtable_ptr): Tweak. (layout_class_type): Adjust parameter names. (finish_struct_1): Simplify. * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. (skip_rtti_stuff): Remove. (first_vfun_index): New function. (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. (dfs_vtable_path_marked_real_bases_queue_p): Remove. (marked_vtable_pathp): Declare. (unmarked_vtable_pathp): Likewise. * error.c (dump_expr): Use first_vfun_index to calculate vtable offsets. * rtti.c (build_headof): Look for RTTI at negative offsets. (get_tinfo_decl_dynamic): Likewise. (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL here. (create_pseudo_type_info): Do it here instead. Adjust so that vptr points at first virtual function. * search.c (marked_vtable_pathp): Make it global. (unmarked_vtable_pathp): Likewise. (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. (dfs_vtable_path_marked_real_bases_queue_p): Likewise. (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. (get_pure_virtuals): Likewise. (expand_upcast_fixups): Likewise. * tree.c (debug_binfo): Likewise. * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate negative offset. From-SVN: r32787
2000-03-25Remove accidental commitMark Mitchell1-1/+1
From-SVN: r32740
2000-03-25Fix typo in ChangeLogMark Mitchell1-1/+1
From-SVN: r32739
2000-03-23builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.Theodore Papadopoulo1-6/+5
* builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros. * c-common.c (decl_attributes,check_format_info,truthvalue_conversion, c_get_alias_set): Likewise. * c-decl.c (duplicate_decls): Likewise. * c-typeck.c (default_conversion,build_unary_op): Likewise. * calls.c (initialize_argument_information): Likewise. * dwarf2out.c (decl_class_context,add_abstract_origin_attribute): Likewise. * dwarfout.c (decl_class_context,output_type): Likewise. * expr.c (get_inner_reference): Likewise. * fold-const.c (simple_operand_p,fold): Likewise. * function.c (aggregate_value_p): Likewise. * stmt.c (expand_asm_operands): Likewise. * varasm.c (named_section): Likewise. * call.c (check_dtor_name,build_new_method_call): Likewise. * decl.c (push_class_binding,poplevel,pushtag,lookup_namespace_name, make_typename_type,check_initializer,cp_finish_decl,xref_tag): Likewise. * decl2.c (grokfield,build_expr_from_tree,build_expr_from_tree, decl_namespace,arg_assoc_template_arg,arg_assoc, validate_nonmember_using_decl,do_class_using_decl): Likewise. * error.c (dump_template_argument,dump_expr,cp_file_of,cp_line_of, args_to_string): Likewise. * friend.c (is_friend): Likewise. * lex.c (note_got_semicolon,note_list_got_semicolon,is_global): Likewise. * method.c (build_overload_nested_name,build_overload_value, build_qualified_name,build_qualified_name,hack_identifier): Likewise. * parse.y (typename_sub,typename_sub1): Likewise. * pt.c (push_inline_template_parms_recursive,check_template_shadow, process_partial_specialization,convert_template_argument, template_args_equal,add_pending_template,lookup_template_class, for_each_template_parm_r,maybe_fold_nontype_arg, tsubst,instantiate_template,type_unification_real,unify, instantiate_pending_templates,set_mangled_name_for_template_decl): Likewise. * repo.c (repo_get_id,repo_template_used): Likewise. * search.c (lookup_field_1): Likewise. * tree.c (walk_tree,get_type_decl,cp_tree_equal,member_p): Likewise. * xref.c (classname): Likewise. From-SVN: r32698
2000-03-17* Clean up usages of TREE_INT_CST_LOW.Richard Kenner1-9/+6
* c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst. * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: Regenerated. * c-tree.h (min_precision): Move declaration to here. * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst. (build_unary_op, add_pending_init): Use bit_position. (pending_init_member, process_init_element): Likewise. (really_start_incremental_init, push_init_level, pop_init_level): Don't make copies of nodes or modify them in place, use consistent types when tracking positions, and use tree routines computations. (set_init_index, output_init_element): Likewise. (output_pending_init_elements, process_init_element): Likewise. * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp, tree_low_cst and int_bit_position; also minor cleanup. (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise. (print_cst_octal): Precision is unsigned. (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst. * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT. (simple_type_align_in_bits): Result is unsigned int. Use tree_int_low_cst and host_integerp. (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT. (field_byte_offset): Result is HOST_WIDE_INT. Change types of internal variables so alignments are unsigned int, offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT. Use host_integerp, tree_low_cst, and int_bit_position. (add_bit_offset_attribute): Likewise. (add_data_member_location_attribute): Use tree_cst_low. (add_bound_info): Use host_integerp, integer_zerop, and integer_onep. (add_bit_size_attribute): Use tree_low_cst. (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise. * dwarfout.c: Similar changes to dwarf2out.c. * expr.c (expand_expr, case ARRAY_REF): Remove redundant code. * genoutput.c (n_occurences): Return -1 for null string. (strip_whitespace): Accept null string and make into function. (scan_operands): Reflect above changes. * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst. (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position. * ssa.c (rename_registers): Add missing cast of arg to bzero. * tree.c (int_size_in_bytes): Check for too big to represent. (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns. * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position): New declarations. (min_precision): Delete from here. * varasm.c (decode_addr_const): Use host_integerp, bit_position, and int_bit_position. * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT. (encode_method_def): Likewise. (build_ivar_list_initializer): Use int_bit_position. (generate_shared_structures): Convert size. (encode_type, encode_complete_bitfield): Use integer_zerop. (encode_bitfield): Use tree_low_cst and int_bit_position. * ch/typeck.c (min_precision): New function. (build_chill_slice): Use host_integerp and tree_low_cst. (expand_constant_to_buffer): Likewise and also int_bit_position. LO is unsigned HOST_WIDE_INT (build_chill_array_ref_1): Make `i' be HOST_WIDE_INT; use tree_low_cst. (extract_constant_from_buffer): Sizes are now HOST_WIDE_INT. Use host_integerp and tree_low_cst. (build_chill_bin_type): Use host_integerp and tree_low_cst. (layout_chill_range_type): Use tree_int_cst_sgn, compare_tree_int, tree_low_cst, and min_precision. (apply_chill_array_layout): Cleanups for types of variables and use tree_int_cst_sgn, compare_tree_int, and tree_low_cst. (apply_chill_field_layout): Likewise. * cp/class.c (build_vbase_path): Use integer_zerop. (build_vtable_entry): Use tree_low_cst. (get_vfield_offset): Use bit_position. (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. Use tree_low_cst. (check_bitfield_decl): Set DECL_SIZE using convert. (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. Use tree_low_cst. (finish_struct_1): Use bit_position. (dump_class_hierarchy): Use tree_low_cst. * cp/cp-tree.h (min_precision): Add declaration. * cp/decl.c (xref_tag, xref_basetypes): Use tree_low_cst. * cp/error.c (dump_type_suffix): Use host_integerp and tree_low_cst. (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. * cp/expr.c (cplus_expand_constant): Use bit_position. * cp/init.c (build_vec_init): Use host_integerp and tree_low_cst. * cp/rtti.c (get_base_offset): Use bit_position. * cp/typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, host_integerp, and tree_low_cst. (pointer_int_sum): Use integer_zerop. (build_component_addr): Use bit_position. * java/class.c (make_field_value): Properly handle sizes. (get_dispatch_vector): Use tree_low_cst and host_integerp. (layout_class_method): Count using trees. * java/decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node. * java/expr.c (java_array_data_offset): Use int_bit_position. (build_newarray, build_anewarray): Use host_integerp and tree_low_cst. (build_invokevirtual): Use tree_low_cst and do computations with trees. From-SVN: r32607
2000-03-07tree.h (INT_CST_LT, [...]): Remove unneeded casts.Richard Kenner1-2/+3
* tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts. (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT. (attribute_hash_list, type_hash_canon): hashcode is now unsigned. (type_hash_lookup, type_hash_add, type_hash_list): Likewise. (min_precision): Result is unsignd. (add_double, neg_double, mul_double): Low word is unsigned. (lshift_double, rshift_double, lrotate_double): Likewise. (rrotate_double, div_and_round_double): Likewise. (tree_floor_log2, compare_tree_int): New functions. (preserve_rtl_expr_temps): New declaration. * c-common.c (declare_hidden_char_array): Use compare_tree_int. (decl_attributes): Use tree_log2 to find alignment. Check for TREE_INT_CST_HIGH for format args. (min_precision): Now unsigned. Use tree_floor_log2. (truthvalue_conversion): Delete long-disabled code. * c-decl.c (finish_struct): Clean up tests on field width. (finish_function): Use compare_tree_int. * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment. * c-typeck.c (comptypes): Use tree_int_cst_equal. (default_conversion, digest_init): Use compare_tree_int. (build_binary_op): Use integer_all_onesp and compare_tree_int. Fix type errors in forming masks. * calls.c (initialize_argument_information): Use compare_tree_int. * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. * except.c (expand_eh_region_start_tree): Use compare_tree_int. * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop. (store_field): Use compare_tree_int. (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT. (expand_expr, case ARRAY_REF): Use compare_tree_int. (do_jump, case BIT_AND_EXPR): Use tree_floor_log2. (do_store_flag): Use compare_tree_int. * fold-const.c (encode, decode): Low part is always unsigned. (force_fit_type, add_double, neg_double, mul_double): Likewise. (lshift_double, rshift_double, lrotate_double): Likewise. (rrotate_double, div_and_round_double, int_const_binop): Likewise. (fold_convert): Use compare_tree_int. (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal. (invert_truthvalue, case INTEGER_CST): Likewise. (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW. * mkdeps.c (deps_dummy_targets): Make I unsigned. * rtl.h (add_double, neg_double, mul_double): Low words are unsigned. (lshift_double, rshift_double, lrotate_double, rrotate_double): Likewise. * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree. (expand_end_case): Use compare_tree_int. (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. * stor-layout.c (mode_for_size_tree): Use compare_tree_int. (layout_decl): Likewise. (layout_record, layout_union): Make sizes unsigned. (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype. (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int. * tree.c (struct type_hash): hashcode is unsigned. (build_type_attribute_variant, type_hash_list): Likewise. (type_hash_lookup, type_hash_add, type_hash_canon): Likewise. (attribute_hash_list, build_array_type, build_method_type): Likewise. (build_complex_type): Likewise. (real_value_from_int_cst): Remove unneeded casts. (integer_all_onesp): Add casts. (tree_floor_log2, compare_tree_int): New functions. (build_index_type): Use tree_int_cst_sgn. * varasm.c (assemble_variable): Use compare_tree_int. * ch/actions.c (chill_convert_for_assignment): INDEX is unsigned HOST_WIDE_INT. * ch/ch-tree.h (DECL_NESTING_LEVEL): Use TREE_INT_CST_HIGH since unsigned. * ch/except.c (chill_handle_on_labels): ALTERNATIVE is unsigned. Use compare_tree_int. (expand_goto_except_cleanup): Likewise. * cp/class.c (dfs_modify_vtables): I is now unsigned. (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. * cp/error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. * cp/init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. * cp/method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. * cp/typeck.c (build_binary_op, case TRUNC_DIV_EXPR): Call integer_all_onesp. * cp/typeck2.c (process_init_constructor): Use compare_tree_int. * f/com.c (ffecom_f2c_set_lio_code_): Use compare_tree_int. (ffecom_sym_transform_, ffecom_transform_common_): Likewise. (ffecom_transform_equiv_): Likewise. * java/decl.c (emit_init_test_initialization): Mark KEY as unused. * java/expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. (build_anewarray): Likewise. * java/parse.y (patch_newarray): Likewise. * java/parse.c: Regenerated. From-SVN: r32383
2000-02-27builtins.c (c_strlen): Use size_diffop and return ssizetype value.Richard Kenner1-3/+3
* builtins.c (c_strlen): Use size_diffop and return ssizetype value. (expand_builtin_strcpy): Pass correct type to size_binop. (expand_builtin_strcmp): Likewise. Clean up conditional structure. * c-decl.c (init_decl_processing): Don't call set_sizetype twice. (complete_array_type): Don't use size_binop for MAXINDEX. * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT. (c_sizeof_nowarn, c_size_in_bytes): Likewise. (c_alignof): Use size_one_node. (build_unary_op): Pass arg of proper type to size_binop. (really_start_incremental_init, push_init_level): Use sizetype for constructor{,_bit,_unfilled}_index. (pop_init_label, output_init_element): Likewise. (output_pending_init_elements, process_init_element): Likewise. * calls.c (compute_argument_block_size): Field VAR is ssizetype. * expr.c (store_expr): Use size_int. (store_constructor): Use proper types for size_binop args. (get_inner_reference, expand_expr, case ARRAY_REF): Likewise. (expand_expr_unaligned): Likewise. (string_contant): Return object of sizetype. * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types. (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE. (ARGS_SIZE_TREE): Pass proper types to size_binop. * fold-const.c (int_const_binop): Refine when size_int is called. (fold_convert): Likewise. (size_int_wide): Rework to take KIND as arg, only take low order bits, handle new sizetype_tab datatype, and chain entries in size_table. (size_int_type_wide): New function. (size_binop): Validate types of arguments. (ssize_binop): Deleted. (size_diffop): New function. (extract_muldiv): Only fold division into multiplication for sizetypes. * function.c (assign_parms): Use size_diffop and make sure VAR field is of ssizetype; also pass proper type to size_binop. (locate_and_pad_parm, pad_to_arg_alignment): Likewise. (round_down): Deleted from here. * store-layout.c (sizetype_tab): Now an array. (sizetype_set, early_root_list): New variables. (variable_size): Use size_one_node. (round_up): Pass proper type to size_binop. (round_down): Moved to here and corrected as above. (layout_record): Pass proper arg types to size_binop. (layout_type): Likewise. If sizetype_set is zero, record the type just laid out. (make_unsigned_type): Don't call set_sizetype; (make_signed_type): Likewise; also, call fixup_signed_type. (initialize_sizetypes): New function. (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and set name of bitsizetype to "bit_size_type". Fix up type of sizes of all types made before call. * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro. * tree.c (fix_sizetype): Deleted. (build_common_tree_nodes): Call initialize_sizetypes. (build_common_tree_nodes_2): Don't call fix_sizetype. * tree.h (TYPE_IS_SIZETYPE): New macro. (initialize_sizetype): New declaration. (enum size_type_kind): New type. (struct sizetype_tab): Deleted. (sizetype_tab): Now array; adjust sizetype macros. (size_diffop, size_int_type_wide): New functions. (size_int_wide): Change number of args and type; access macros changed. (ssize_int, sbitsize_int): New macros. * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int. (ROUND_TYPE_SIZE_UNIT): New macro. * ch/actions.c (chill_convert_for_assignment): Don't use size_binop for things that aren't sizes. (expand_varying_length_assignment): Likewise. * ch/convert.c (digest_array_tuple, convert): Likewise. * ch/typeck.c (build_chill_slice, smash_dummy_type): Likewise. (build_chill_slice_with_range): Likewise. (build_chill_slice_with_length): Likewise. (build_array_from_set): Adjust types for size_binop. * ch/expr.c (build_concat_expr, build_chill_repetition_op): Likewise. (build_chill_sizeof): Use TYPE_SIZE_UNIT. * ch/tree.c (build_string_type): Pass proper type to size_binop. * cp/class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop on things that are not sizes; ssize_binop deleted. Call size_diffop when appropriate. (dfs_build_vcall_offset_vtbl_entries): Likewise. (build_primary_vtable, build_secondary_vtable): Likewise. (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. Variable I is HOST_WIDE_INT. (get_vfield_offset): Pass proper types to size_binop. (size_extra_vtbl_entries, layout_virtual_bases): Likewise. (finish_struct_1): Likewise. (skip_rtti_stuff): Arg N is now pointer to signed. (layout_class_type): Use size_zero_node. * cp/cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. * cp/cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. * cp/decl.c (complete_arry_type): Pass proper types to size_binop. (xref_basetypes): BINFO_OFFSET is sizetype. * cp/error.c (dump_expr): Don't use size_binop non-sizes. * cp/expr.c (cplus_expand_constant): Pass proper types to size_binop. * cp/init.c (construct_virtual_bases): Fix type error. (build_vec_delete_1): Pass proper type to size_binop and don't fold result. * cp/lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. * cp/rtti.c (get_base_offset): Pass proper type to size_binop. * cp/search.c (dfs_find_vbases): Fix type error. (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. (dfs_get_vbase_types): BINFO_OFFSET is sizetype. * cp/tree.c (debug_binfo): Variable N is signed. Use HOST_WIDE_INT_PRINT_DEC. * cp/typeck.c (comptypes): sizetype is same as equivalent integer type. (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, size_one_node and size_zero_node. (c_alignof): Use size_one_node. (build_component_addr): Pass proper types to size_binop. (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. * f/com.c (ffecom_arrayref_): Convert args to size_binop to proper type. (ffecom_tree_canonize_ptr_): Don't use size_binop for non-sizes. (ffecom_tree_canonize_ref_): Likewise. (type_for_mode): Handle TImode. * f/ste.c (ffeste_io_dofio_, ffeste_io_douio_): Use TYPE_SIZE_UNIT. (ffeste_io_ciclist_): Likewise. * java/expr.c (build_java_ret): Pass proper type to size_binop. From-SVN: r32225