ChangeLog revision 96263
196263Sobrien2002-05-03 Jason Merrill <jason@redhat.com> 296263Sobrien 396263Sobrien * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h. 496263Sobrien 596263Sobrien2002-05-02 Mark Mitchell <mark@codesourcery.com> 696263Sobrien 796263Sobrien * init.c (perform_base_cleanups): Correct order of base class 896263Sobrien cleanups. 996263Sobrien 1096263Sobrien2002-05-01 Mark Mitchell <mark@codesourcery.com> 1196263Sobrien 1296263Sobrien PR c++/6527 1396263Sobrien * init.c (perform_base_cleanups): Emit cleanups in reverse order 1496263Sobrien of construction. 1596263Sobrien 1696263Sobrien2002-05-01 Gabriel Dos Reis <gdr@codesourcery.com> 1796263Sobrien 1896263Sobrien * error.c (dump_type): Be careful about implicit typenames. 1996263Sobrien 2096263Sobrien2002-04-30 Mark Mitchell <mark@codesourcery.com> 2196263Sobrien 2296263Sobrien ABI change, returning simple classes from functions. 2396263Sobrien * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if 2496263Sobrien TYPE_HAS_TRIVIAL_INIT_REF is false or 2596263Sobrien TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true. 2696263Sobrien 2796263Sobrien2002-04-30 Jason Merrill <jason@redhat.com> 2896263Sobrien 2996263Sobrien * decl.c (grokdeclarator): Don't override TYPE_NAME of an 3096263Sobrien anonymous class with a typedef if there are attributes. 3196263Sobrien 3296263Sobrien2002-04-29 Paul Eggert <eggert@twinsun.com> 3396263Sobrien 3496263Sobrien * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$. 3596263Sobrien 3696263Sobrien2002-04-29 Jakub Jelinek <jakub@redhat.com> 3796263Sobrien 3896263Sobrien PR c++/6477 3996263Sobrien * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is 4096263Sobrien non-NULL first. 4196263Sobrien 4296263Sobrien2002-04-29 Mark Mitchell <mark@codesourcery.com> 4396263Sobrien 4496263Sobrien PR c++/6492 4596263Sobrien * pt.c (tsubst_friend_class): If the friend has an explicit scope, 4696263Sobrien enter that scope before name lookup. 4796263Sobrien 4896263Sobrien PR c++/6486 4996263Sobrien * method.c (do_build_copy_constructor): Avoid building 5096263Sobrien cv-qualified reference types. 5196263Sobrien 5296263Sobrien2002-04-29 Nathan Sidwell <nathan@codesourcery.com> 5396263Sobrien 5496263Sobrien PR c++/5719 5596263Sobrien * decl.c (grok_op_properties): Assignment ops don't have to return 5696263Sobrien by value. operator% should. 5796263Sobrien 5896263Sobrien2002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 5996263Sobrien 6096263Sobrien PR c/6343 6196263Sobrien * decl.c (duplicate_decls): Call merge_weak. 6296263Sobrien 6396263Sobrien2002-04-26 Mark Mitchell <mark@codesourcery.com> 6496263Sobrien 6596263Sobrien PR c++/6479 6696263Sobrien * method.c (do_build_assign_ref): Pass a derivation to 6796263Sobrien build_method_call when calling base class assignment operators. 6896263Sobrien 6996263Sobrien2002-04-24 Mark Mitchell <mark@codesourcery.com> 7096263Sobrien 7196263Sobrien * mangle.c (write_type): Don't use TYPE_MAIN_VARIANT when writing 7296263Sobrien out an array type. 7396263Sobrien (write_CV_qualifiers_for_type): Use TYPE_QUALS, not cp_type_quals, 7496263Sobrien to determine qualifiers. 7596263Sobrien 7696263Sobrien * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs 7796263Sobrien void. 7896263Sobrien 7996263Sobrien2002-04-24 Jason Merrill <jason@redhat.com> 8096263Sobrien 8196263Sobrien PR c++/6331 8296263Sobrien * method.c (do_build_copy_constructor): Use cp_build_qualified_type. 8396263Sobrien * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals. 8496263Sobrien The pedwarn for array assignment is now unconditional. 8596263Sobrien * tree.c (build_cplus_array_type_1): Still process simple array types 8696263Sobrien normally in templates. 8796263Sobrien 8896263Sobrien PR c++/6395 8996263Sobrien * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i 9096263Sobrien stuff for comdats. 9196263Sobrien 9296263Sobrien2002-04-23 Jason Merrill <jason@redhat.com> 9396263Sobrien 9496263Sobrien PR c++/5504 - but re-breaks c++/411 9596263Sobrien * init.c (push_base_cleanups): Rename to perform_base_cleanups. 9696263Sobrien Expand base cleanups now rather than pushing them. 9796263Sobrien * decl.c (begin_destructor_body): Don't call push_base_cleanups. 9896263Sobrien (finish_destructor_body): Call perform_base_cleanups. 9996263Sobrien * cp-tree.h: Adjust prototype. 10096263Sobrien 10196263Sobrien2002-04-23 Jakub Jelinek <jakub@redhat.com> 10296263Sobrien 10396263Sobrien * parse.y (check_class_key): Allow KEY to be union/enum/struct/class 10496263Sobrien node with attributes. 10596263Sobrien 10696263Sobrien2002-2-23 David O'Brien <obrien@FreeBSD.org> 10796263Sobrien 10896263Sobrien * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add. 10996263Sobrien Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given. 11096263Sobrien 11196263Sobrien2002-04-23 Mark Mitchell <mark@codesourcery.com> 11296263Sobrien 11396263Sobrien PR c++/6256: 11496263Sobrien * pt.c (tsubst_friend_class): Handle templates with explicit 11596263Sobrien nested names. 11696263Sobrien 11796263Sobrien PR c++/6331: 11896263Sobrien * typeck.c (merge_types): Remember the cv-qualification of pointer 11996263Sobrien types when merging them. 12096263Sobrien 12196263Sobrien2002-04-18 Jason Merrill <jason@redhat.com> 12296263Sobrien 12396263Sobrien PR c++/5658 12496263Sobrien * search.c (setup_class_bindings): A class template qualifies as a 12596263Sobrien type binding. 12696263Sobrien 12796263Sobrien2002-04-17 Jakub Jelinek <jakub@redhat.com> 12896263Sobrien 12996263Sobrien PR c++/6316 13096263Sobrien * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop 13196263Sobrien before expanding. 13296263Sobrien 13396263Sobrien2002-04-16 Mark Mitchell <mark@codesourcery.com> 13496263Sobrien 13596263Sobrien * init.c (begin_init_stmts): Remove commented out code. 13696263Sobrien (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. 13796263Sobrien * semantics.c (begin_gobal_stmt_expr): Adjust call to 13896263Sobrien expand_start_stmt_expr. 13996263Sobrien 14096263Sobrien2002-04-15 Mark Mitchell <mark@codesourcery.com> 14196263Sobrien 14296263Sobrien * decl.c (register_dtor_fn): Pass the address of dso_handle, not 14396263Sobrien dso_handle itself, to __cxa_atexit. 14496263Sobrien 14596263Sobrien2002-04-14 Jakub Jelinek <jakub@redhat.com> 14696263Sobrien 14796263Sobrien * class.c (layout_virtual_bases): Do all dsize computation on trees. 14896263Sobrien 14996263Sobrien2002-04-12 Mark Mitchell <mark@codesourcery.com> 15096263Sobrien 15196263Sobrien PR c++/5373. 15296263Sobrien * semantics.c (finish_expr_stmt): Remember the type of the 15396263Sobrien expression before any conversions are performed. 15496263Sobrien 15596263Sobrien PR c++/5189. 15696263Sobrien * call.c (add_template_candidate_real): Do not treat member 15796263Sobrien templates as copy constructors. 15896263Sobrien 15996263Sobrien * decl.c (duplicate_decls): Do not copy the RTL for a variable 16096263Sobrien declaration if the old variable had an incomplete type and the new 16196263Sobrien variable does not. 16296263Sobrien (complete_vars): Do not call layout_decl for completed variables. 16396263Sobrien 16496263Sobrien2002-04-11 Andrew Haley <aph@redhat.com> 16596263Sobrien 16696263Sobrien * typeck.c (type_after_usual_arithmetic_conversions): 16796263Sobrien If two types have the same variant, return immediately. 16896263Sobrien When two floating-point operands are the same precision: 16996263Sobrien convert to float if one of the operands is float; 17096263Sobrien if neither operand is one of the standard types, return the type 17196263Sobrien of the first operand. 17296263Sobrien 17396263Sobrien2002-04-12 Richard Sandiford <rsandifo@redhat.com> 17496263Sobrien 17596263Sobrien * decl.c (duplicate_decls): Don't try to unify an implicit typedef 17696263Sobrien with an explicit one. 17796263Sobrien (follow_tag_typedef): New. 17896263Sobrien (lookup_tag): Use it to extract the tag of an explicit typedef. 17996263Sobrien (xref_tag): Likewise. 18096263Sobrien 18196263Sobrien2002-04-10 Nathan Sidwell <nathan@codesourcery.com> 18296263Sobrien 18396263Sobrien PR c++/5507 18496263Sobrien * decl.c (make_typename_type): Remove implicit typenameness. 18596263Sobrien 18696263Sobrien2002-04-09 Jason Merrill <jason@redhat.com> 18796263Sobrien 18896263Sobrien PR optimization/6189 18996263Sobrien * semantics.c (genrtl_start_function): Don't free 19096263Sobrien DECL_SAVED_FUNCTION_DATA for inline functions. 19196263Sobrien 19296263Sobrien2002-04-08 Paolo Carlini <pcarlini@unitus.it> 19396263Sobrien 19496263Sobrien * parse.y (namespace_qualifier, maybe_identifier, 19596263Sobrien begin_explicit_instantiation, end_explicit_instantiation, 19696263Sobrien apparent_template_type, .finish_template_type, 19796263Sobrien do_id, maybe_init, defarg_again, component_decl_1): 19896263Sobrien Add ending ';', in accordance with POSIX. 19996263Sobrien 20096263Sobrien2002-04-06 Mark Mitchell <mark@codesourcery.com> 20196263Sobrien 20296263Sobrien PR c++/5571 20396263Sobrien * class.c (layout_class_type): Remember incomplete static 20496263Sobrien variables. 20596263Sobrien (finish_struct_1): Call complete_vars, not 20696263Sobrien hack_incomplete_structures. 20796263Sobrien * cp-tree.h (hack_incomplete_structures): Rename to ... 20896263Sobrien (complete_vars): ... this. 20996263Sobrien (struct saved_scope): Remove incomplete. 21096263Sobrien (namespace_scope_incomplete): Remove. 21196263Sobrien * decl.c (struct binding_level): Remove incomplete. 21296263Sobrien (incomplete_vars): New variable. 21396263Sobrien (mark_binding_level): Don't mark incomplete. 21496263Sobrien (print_binding_level): Don't print it. 21596263Sobrien (mark_saved_scope): Don't mark incomplete. 21696263Sobrien (pushdecl): Use maybe_register_incopmlete_var. 21796263Sobrien (cxx_init_decl_processing): Register incomplete_vars for GC. 21896263Sobrien (start_decl_1): Clarify error message. 21996263Sobrien (hack_incomplete_vars): Remove. 22096263Sobrien (maybe_register_incomplete_var): New function. 22196263Sobrien (complete_vars): Likewise. 22296263Sobrien 22396263Sobrien2002-04-06 Jason Merrill <jason@redhat.com> 22496263Sobrien 22596263Sobrien PR c++/4934 22696263Sobrien * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is 22796263Sobrien set before checking it. 22896263Sobrien 22996263Sobrien PR c++/6179 23096263Sobrien * method.c (implicitly_declare_fn): Pass unqualified type to 23196263Sobrien synthesize_exception_spec. 23296263Sobrien 23396263Sobrien2002-04-03 Jason Merrill <jason@redhat.com> 23496263Sobrien 23596263Sobrien PR c++/525 23696263Sobrien * init.c (build_member_call): Convert to intermediate base even 23796263Sobrien with -pedantic. 23896263Sobrien 23996263Sobrien PR c++/5636 24096263Sobrien * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on 24196263Sobrien cleanup for nrv. 24296263Sobrien 24396263Sobrien PR c++/5104 24496263Sobrien * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception 24596263Sobrien specifiers. 24696263Sobrien [METHOD_TYPE]: Use same code as FUNCTION_TYPE. 24796263Sobrien 24896263Sobrien2002-04-03 Roger Sayle <roger@eyesopen.com> 24996263Sobrien 25096263Sobrien PR c++/5998: 25196263Sobrien * decl.c (duplicate_decls): Don't mess with assembler names when 25296263Sobrien redeclaring builtin functions as static. 25396263Sobrien 25496263Sobrien2002-04-01 Roger Sayle <roger@eyesopen.com> 25596263Sobrien 25696263Sobrien PR c++/5998: 25796263Sobrien * decl.c (duplicate_decls): Overwrite the RTL when (and only 25896263Sobrien when) overwriting a built-in function. Don't use COPY_DECL_RTL, 25996263Sobrien but follow the SET_DECL_RTL idiom used elsewhere in the function. 26096263Sobrien 26196263Sobrien2002-03-28 Roger Sayle <roger@eyesopen.com> 26296263Sobrien 26396263Sobrien PR c++/5998: 26496263Sobrien * decl.c (cxx_init_decl_processing): Re-enable built-in functions 26596263Sobrien in the g++ front-end. 26696263Sobrien (duplicate_decl): Allow redefinition of anticipated built-ins. 26796263Sobrien Fix inlining problem by over-writing the old DECL_RTL. 26896263Sobrien (lookup_namespace_name): Fail to find an identifier in the 26996263Sobrien specified namespace if its still anticipated. 27096263Sobrien (builtin_function_1): New function split out from builtin_function 27196263Sobrien to create a builtin in the current namespace with given context. 27296263Sobrien (builtin_function): Call builtin_function_1 to define the 27396263Sobrien appropriate builtins in both the std and global namespaces. 27496263Sobrien (select_decl): Don't test for anticipated decls here. 27596263Sobrien (unqualified_namespace_lookup): Instead ignore them whilst 27696263Sobrien searching through scopes and namespaces. 27796263Sobrien * decl2.c (do_nonmember_using_decl): If a using declaration 27896263Sobrien specifies an anticipated built-in function, mark it as no longer 27996263Sobrien anticipated in that scope. 28096263Sobrien (ambiguous_decl): Avoid resolving to an anticipated decl. 28196263Sobrien * lex.c (do_scoped_id): Fail to find an identifier in the global 28296263Sobrien namespace if its still anticipated. 28396263Sobrien 28496263Sobrien2002-03-29 Jakub Jelinek <jakub@redhat.com> 28596263Sobrien 28696263Sobrien PR c++/6073 28796263Sobrien * class.c (finish_struct_1): Update static field's DECL_MODE even 28896263Sobrien if its type is a variant of t. 28996263Sobrien 29096263Sobrien2002-03-27 Mark Mitchell <mark@codesourcery.com> 29196263Sobrien 29296263Sobrien PR c++/4884 29396263Sobrien * call.c (build_op_delete_call): Allow for the fact the placement 29496263Sobrien may be a COMPOUND_EXPR. 29596263Sobrien 29696263Sobrien2002-03-26 Nathan Sidwell <nathan@codesourcery.com> 29796263Sobrien 29896263Sobrien PR c++/5682 29996263Sobrien * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. 30096263Sobrien (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 30196263Sobrien (dfs_skip_nonprimary_vbases_markedp): Remove. 30296263Sobrien * search.c (get_shared_vbase_if_not_primary): Remove. 30396263Sobrien (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 30496263Sobrien (dfs_skip_nonprimary_vbases_markedp): Remove. 30596263Sobrien (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. 30696263Sobrien (dfs_marked_real_bases_queue_p): Likewise. 30796263Sobrien 30896263Sobrien2002-03-26 Mark Mitchell <mark@codesourcery.com> 30996263Sobrien 31096263Sobrien PR c++/4884 31196263Sobrien * init.c (build_new_1): Allow for the fact the result of 31296263Sobrien build_function_call may be a COMPOUND_EXPR. 31396263Sobrien 31496263Sobrien2002-03-25 Jakub Jelinek <jakub@redhat.com> 31596263Sobrien 31696263Sobrien PR c++/6037 31796263Sobrien * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node. 31896263Sobrien 31996263Sobrien2002-03-22 Jeff Knaggs <jknaggs@redhat.com> 32096263Sobrien 32196263Sobrien * typeck.c (expand_ptrmemfunc_cst): Scale idx down to an index 32296263Sobrien into the vtable_entry array regardless of 32396263Sobrien TARGET_PTRMEMFUNC_VBIT_LOCATION. 32496263Sobrien 32596263Sobrien2002-03-21 Aldy Hernandez <aldyh@redhat.com> 32696263Sobrien 32796263Sobrien * tree.c (cp_cannot_inline_tree_fn): Same. 32896263Sobrien 32996263Sobrien2002-03-20 Jason Merrill <jason@redhat.com> 33096263Sobrien 33196263Sobrien PR c++/2136 33296263Sobrien * init.c (build_delete): Check access for a member op delete here. 33396263Sobrien * decl2.c (delete_sanity): Not here. 33496263Sobrien 33596263Sobrien2002-03-19 Jason Merrill <jason@redhat.com> 33696263Sobrien 33796263Sobrien PR c++/5118 33896263Sobrien * class.c (get_vfield_name): Use the constructor_name. 33996263Sobrien 34096263Sobrien2002-03-18 Eric Botcazou <ebotcazou@multimania.com> 34196263Sobrien 34296263Sobrien PR c++/3882 34396263Sobrien * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling... 34496263Sobrien (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer 34596263Sobrien only after recording the declaration. 34696263Sobrien 34796263Sobrien2002-03-18 Ashif Harji <asharji@uwaterloo.ca> 34896263Sobrien 34996263Sobrien * lang-specs.h (compiler default_compilers): Add 35096263Sobrien -no-integrated-cpp flag to invoke an external cpp. 35196263Sobrien 35296263Sobrien2002-03-18 Jason Merrill <jason@redhat.com> 35396263Sobrien 35496263Sobrien PR c++/2039 35596263Sobrien * init.c (resolve_offset_ref): Hand off to build_component_ref. 35696263Sobrien 35796263Sobrien PR c++/4222, c++/5995 35896263Sobrien * call.c (build_over_call): Fix empty class logic. 35996263Sobrien 36096263Sobrien PR c++/3870 36196263Sobrien * cp-tree.h (struct saved_scope): Add last_parms field. 36296263Sobrien * decl.c (maybe_push_to_top_level): Save last_function_parms. 36396263Sobrien (pop_from_top_level): Restore it. 36496263Sobrien 36596263Sobrien PR c++/4377 36696263Sobrien * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip 36796263Sobrien NON_LVALUE_EXPRs. 36896263Sobrien 36996263Sobrien PR c++/4003 37096263Sobrien * pt.c (tsubst_friend_function): Use decl_namespace_context. 37196263Sobrien 37296263Sobrien PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch. 37396263Sobrien * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a 37496263Sobrien type with a nontrivial destructor. 37596263Sobrien 37696263Sobrien2002-03-17 Jason Merrill <jason@redhat.com> 37796263Sobrien 37896263Sobrien PR c++/4460 37996263Sobrien * class.c (build_base_path): Virtual base layout is fixed in 38096263Sobrien in-charge [cd]tors. 38196263Sobrien 38296263Sobrien PR c++/5757 38396263Sobrien * init.c (build_new_1): Pass the right pointer to op delete. 38496263Sobrien 38596263Sobrien2002-03-15 Richard Henderson <rth@redhat.com> 38696263Sobrien 38796263Sobrien * init.c (build_new_1): Use size_binop instead of cp_build_binary_op. 38896263Sobrien 38996263Sobrien2002-03-15 Richard Henderson <rth@redhat.com> 39096263Sobrien 39196263Sobrien * decl.c (finish_function): Reapply accidentally reverted 39296263Sobrien 2002-02-28 patch. 39396263Sobrien 39496263Sobrien2002-03-15 Mark Mitchell <mark@codesourcery.com> 39596263Sobrien 39696263Sobrien * cp-tree.h (CLEANUP_DECL): Remove. 39796263Sobrien (CLEANUP_EXPR): Likewise. 39896263Sobrien * decl.c (destroy_local_var): Simplify. 39996263Sobrien (maybe_build_cleanup): Tidy. 40096263Sobrien * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. 40196263Sobrien * semantics.c (cp_expand_stmt): Likewise. 40296263Sobrien * cp/tree.c (cp_statement_code_p): Likewise. 40396263Sobrien 40496263Sobrien2002-03-15 Richard Henderson <rth@redhat.com> 40596263Sobrien 40696263Sobrien * decl.c: Include c-pragma.h. 40796263Sobrien (start_decl, start_function): Invoke maybe_apply_pragma_weak. 40896263Sobrien * Make-lang.in: Update dependencies. 40996263Sobrien 41096263Sobrien2002-03-15 Jason Merrill <jason@redhat.com> 41196263Sobrien 41296263Sobrien PR c++/5857 41396263Sobrien * decl.c (duplicate_decls): Use merge_types instead of common_type. 41496263Sobrien * typeck.c (common_type): Just hand off to 41596263Sobrien type_after_usual_arithmetic_conversions and 41696263Sobrien composite_pointer_type. 41796263Sobrien (merge_types): New fn. 41896263Sobrien (commonparms): Use it instead of common_type. 41996263Sobrien (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE. 42096263Sobrien (composite_pointer_type): Also handle attributes. 42196263Sobrien * cp-tree.h: Declare merge_types. 42296263Sobrien 42396263Sobrien * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT 42496263Sobrien variables. 42596263Sobrien * decl2.c (maybe_make_one_only): Also mark the decl as needed. 42696263Sobrien 42796263Sobrien2002-03-14 Jakub Jelinek <jakub@redhat.com> 42896263Sobrien 42996263Sobrien PR c++/5908 43096263Sobrien * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too. 43196263Sobrien * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING. 43296263Sobrien 43396263Sobrien2002-03-12 Richard Sandiford <rsandifo@redhat.com> 43496263Sobrien 43596263Sobrien * mangle.c (write_builtin_type): Handle 128-bit integers even if 43696263Sobrien they are not a standard integer type. 43796263Sobrien 43896263Sobrien2002-03-12 Nathan Sidwell <nathan@codesourcery.com> 43996263Sobrien 44096263Sobrien PR c++/5659 44196263Sobrien * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here. 44296263Sobrien * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for 44396263Sobrien definitions. 44496263Sobrien 44596263Sobrien2002-03-11 Nathan Sidwell <nathan@codesourcery.com> 44696263Sobrien 44796263Sobrien Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>, 44896263Sobrien DR209 is now not a defect. 44996263Sobrien * cp-tree.h (skip_type_access_control): Remove. 45096263Sobrien * decl.c (grokdeclarator): Do type access control for friend 45196263Sobrien declarations. 45296263Sobrien * semantics.c (decl_type_access_control): Don't reset 45396263Sobrien current_type_lookups. 45496263Sobrien (save_type_access_control): Always save the lookups. 45596263Sobrien (skip_type_access_control): Remove. 45696263Sobrien (finish_class_definition): Don't change type_lookups. 45796263Sobrien 45896263Sobrien2002-03-11 Nathan Sidwell <nathan@codesourcery.com> 45996263Sobrien 46096263Sobrien Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>, 46196263Sobrien It is incorrect. 46296263Sobrien * typeck.c (build_static_cast): Compare non-qualified types 46396263Sobrien with pointer to member conversions. 46496263Sobrien 46596263Sobrien2002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org> 46696263Sobrien 46796263Sobrien * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of 46896263Sobrien conditional return void. 46996263Sobrien 47096263Sobrien2002-03-02 Nathan Sidwell <nathan@codesourcery.com> 47196263Sobrien 47296263Sobrien PR c++/775 47396263Sobrien * decl.c (lookup_tag): Only reject enum/class mismatch, not 47496263Sobrien class/union mismatch. 47596263Sobrien * parse.y (check_class_key): New function. 47696263Sobrien (structsp): Call it. 47796263Sobrien 47896263Sobrien2002-03-01 Michael Matz <matz@suse.de> 47996263Sobrien 48096263Sobrien * typeck.c (cp_pointer_int_sum): Complete inner type which is 48196263Sobrien used later by size_in_bytes(). 48296263Sobrien 48396263Sobrien2002-03-01 Phil Edwards <pme@gcc.gnu.org> 48496263Sobrien 48596263Sobrien * cp-tree.h (build_init): Remove prototype. 48696263Sobrien 48796263Sobrien2002-03-01 Phil Edwards <pme@gcc.gnu.org> 48896263Sobrien 48996263Sobrien * cp-tree.h: Require __GNUC__ to be #defined. 49096263Sobrien (build_init): Add missing prototype. 49196263Sobrien 49296263Sobrien2002-02-28 Jason Merrill <jason@redhat.com> 49396263Sobrien 49496263Sobrien * search.c (lookup_base_r): Don't clear is_non_public just because 49596263Sobrien we found a friendly scope. 49696263Sobrien 49796263Sobrien * decl.c (finish_function): Only warn about missing return 49896263Sobrien statement with -Wreturn-type. 49996263Sobrien 50096263Sobrien2002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org> 50196263Sobrien 50296263Sobrien PR c++/4093 50396263Sobrien * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition 50496263Sobrien to void. 50596263Sobrien 50696263Sobrien2002-02-22 Jakub Jelinek <jakub@redhat.com> 50796263Sobrien 50896263Sobrien PR other/5746 50996263Sobrien * semantics.c (finish_switch_cond): Don't call get_unwidened 51096263Sobrien if error_mark_node. 51196263Sobrien 51296263Sobrien2002-02-22 Nathan Sidwell <nathan@codesourcery.com> 51396263Sobrien 51496263Sobrien PR c++/2645, DR 295 51596263Sobrien * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals, 51696263Sobrien tf_keep_type_decl. 51796263Sobrien (make_typename_type): Use tsubst_flags_t. 51896263Sobrien * decl.c (make_typename_type): Adjust. Return non-artificial 51996263Sobrien TYPE_DECLs, if required. 52096263Sobrien (grokdeclarator): Simplify CVR qualification handling. Allow bad 52196263Sobrien qualifiers on typedef types. 52296263Sobrien * decl2.c (handle_class_head): Adjust make_typename_type call. 52396263Sobrien * parse.y (nested_name_specifier): Likewise. 52496263Sobrien (typename_sub0): Likewise. 52596263Sobrien (typename_sub1): Likewise. 52696263Sobrien * pt.c (convert_template_argument): Adjust make_typename_type 52796263Sobrien return value. 52896263Sobrien (tsubst): Adjust cp_build_qualified_type_real calls. 52996263Sobrien (check_cv_quals_for_unify): Cope with alowing bad qualifications 53096263Sobrien on template type parms. 53196263Sobrien (instantiate_decl): Recheck substitutions to give warnings on bad 53296263Sobrien qualifications. 53396263Sobrien * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals. 53496263Sobrien 53596263Sobrien2002-02-21 Aldy Hernandez <aldyh@redhat.com> 53696263Sobrien 53796263Sobrien * cp/decl.c (duplicate_decls): Merge always_inline attribute. 53896263Sobrien 53996263Sobrien * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 54096263Sobrien unless DECL_ALWAYS_INLINE. 54196263Sobrien 54296263Sobrien2002-02-20 Jakub Jelinek <jakub@redhat.com> 54396263Sobrien 54496263Sobrien * typeck.c (cp_pointer_int_sum): Renamed from 54596263Sobrien pointer_int_sum, call pointer_int_sum. 54696263Sobrien 54796263Sobrien2002-02-20 Jakub Jelinek <jakub@redhat.com> 54896263Sobrien 54996263Sobrien * decl.c (duplicate_decls): Return 0 if issued error about 55096263Sobrien redeclaration. 55196263Sobrien 55296263Sobrien2002-02-19 Jason Merrill <jason@redhat.com> 55396263Sobrien 55496263Sobrien ABI change: Mangle `void (A::*)() const' as 55596263Sobrien M1AKFvvE, not MK1AFvvE. 55696263Sobrien * mangle.c (write_function_type): Write cv-quals for member 55796263Sobrien function type here. 55896263Sobrien (write_pointer_to_member_type): Not here. 55996263Sobrien 56096263Sobrien2002-02-18 Jason Merrill <jason@redhat.com> 56196263Sobrien 56296263Sobrien * pt.c (do_type_instantiation): Don't pedwarn if in_system_header. 56396263Sobrien (do_decl_instantiation): Likewise. 56496263Sobrien 56596263Sobrien2002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org> 56696263Sobrien 56796263Sobrien PR c++/5685 56896263Sobrien * decl.c (duplicate_decls): Make warning unconditional 56996263Sobrien if duplicate default argument declarations are present. 57096263Sobrien 57196263Sobrien2002-02-17 Jakub Jelinek <jakub@redhat.com> 57296263Sobrien 57396263Sobrien * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit 57496263Sobrien shortening. 57596263Sobrien 57696263Sobrien2002-02-15 Nathan Sidwell <nathan@codesourcery.com> 57796263Sobrien 57896263Sobrien * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs, 57996263Sobrien remove incorrect comment. Move #if 0'd code to common path. Use 58096263Sobrien IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication. 58196263Sobrien 58296263Sobrien2002-02-13 Jason Merrill <jason@redhat.com> 58396263Sobrien 58496263Sobrien * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns. 58596263Sobrien (finish_function): Don't warn if current_function_returns_null. 58696263Sobrien 58796263Sobrien * typeck2.c (digest_init): Do handle values of vector type. 58896263Sobrien 58996263Sobrien * typeck2.c (digest_init, process_init_constructor): Treat vectors 59096263Sobrien like arrays. 59196263Sobrien 59296263Sobrien2002-02-11 Jason Merrill <jason@redhat.com> 59396263Sobrien 59496263Sobrien * parse.y (reserved_declspecs): Don't handle attributes. 59596263Sobrien (reserved_typespecquals): Handle them here. 59696263Sobrien * Make-lang.in (parse.c): Adjust expected conflicts. 59796263Sobrien 59896263Sobrien2002-02-08 Jakub Jelinek <jakub@redhat.com> 59996263Sobrien 60096263Sobrien * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr 60196263Sobrien instead of compstmt. 60296263Sobrien (compstmt_or_stmtexpr): Renamed from compstmt. 60396263Sobrien (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type. 60496263Sobrien 60596263Sobrien2002-02-07 Nathan Sidwell <nathan@codesourcery.com> 60696263Sobrien 60796263Sobrien Rename instantiate_type_flags to tsubst_flags_t & expand use. 60896263Sobrien * cp-tree.h (instantiate_type_flags): Rename to ... 60996263Sobrien (tsubst_flags_t): ... here. Rename itf_complain to tf_error, 61096263Sobrien add tf_warning flag. 61196263Sobrien (instantiate_type): Adjust prototype. 61296263Sobrien (tsubst, tsubst_expr, tsubst_copy, lookup_template_class, 61396263Sobrien do_type_instantiation, cp_build_qualified_type_real): Likewise. 61496263Sobrien cp_build_qualified_type: Adjust. 61596263Sobrien * class.c (instantiate_type): Adjust parameter. Rename itf_* to 61696263Sobrien tf_*. 61796263Sobrien * call.c (standard_conversion): Rename itf_* to tf_*. 61896263Sobrien (reference_binding): Likewise. 61996263Sobrien (convert_like_real): Likewise. 62096263Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 62196263Sobrien (convert_to_reference): Likewise. 62296263Sobrien * decl.c (lookup_namespace_name): Use tf_* flags. 62396263Sobrien (make_typename_type): Likewise. 62496263Sobrien (grokdeclarator): Likewise. 62596263Sobrien * pt.c (convert_nontype_argument): Adjust COMPLAIN usage. 62696263Sobrien (coerce_template_template_parms, convert_template_argument, 62796263Sobrien coerce_template_parms, maybe_get_template_decl_from_type_decl, 62896263Sobrien lookup_template_class, tsubst_friend_function, tsubst_friend_class, 62996263Sobrien instantiate_class_template, tsubst_template_arg_vector, 63096263Sobrien tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 63196263Sobrien tsubst_decl, tsubst_arg_types, tsubst_function_type, 63296263Sobrien tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 63396263Sobrien instantiate_template, fn_type_unification, 63496263Sobrien resolve_overloaded_unification, verify_class_unification, 63596263Sobrien unify, get_bindings_real, do_type_instantiation, 63696263Sobrien regenerate_decl_from_template, instantiate_decl, 63796263Sobrien tsubst_initializer_list, tsubst_enum, 63896263Sobrien get_mostly_instantiated_function_type, 63996263Sobrien invalid_nontype_parm_type_p): Likewise. 64096263Sobrien * tree.c (cp_build_qualified_type_real): Likewise. 64196263Sobrien * typeck.c (build_binary_op): Rename itf_* to tf_*. 64296263Sobrien (build_ptrmemfunc): Likewise. 64396263Sobrien (convert_for_assignment): Likewise. 64496263Sobrien 64596263Sobrien2002-02-07 Nathan Sidwell <nathan@codesourcery.com> 64696263Sobrien 64796263Sobrien PR c++/109 64896263Sobrien * decl.c (grokdeclarator): Allow friend declarations from 64996263Sobrien dependent types. 65096263Sobrien * decl2.c (handle_class_head): Don't push into template parm contexts. 65196263Sobrien * pt.c (push_template_decl_real): Template parm contexts are never 65296263Sobrien being defined. 65396263Sobrien 65496263Sobrien2002-02-05 Alexandre Oliva <aoliva@redhat.com> 65596263Sobrien 65696263Sobrien * class.c: Include target.h. 65796263Sobrien (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, 65896263Sobrien BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS 65996263Sobrien bit-field layout. 66096263Sobrien * Make-lang.in: Adjust deps. 66196263Sobrien 66296263Sobrien2002-02-05 Jason Merrill <jason@redhat.com> 66396263Sobrien 66496263Sobrien * error.c (dump_type): Be more helpful about VECTOR_TYPE. 66596263Sobrien 66696263Sobrien2002-02-04 Jakub Jelinek <jakub@redhat.com> 66796263Sobrien 66896263Sobrien * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE. 66996263Sobrien (finish_switch_cond): Set SWITCH_TYPE. 67096263Sobrien 67196263Sobrien2002-02-04 Richard Henderson <rth@redhat.com> 67296263Sobrien 67396263Sobrien * method.c (use_thunk): Always initialize the block tree. Reindent. 67496263Sobrien * semantics.c (expand_body): Emit thunks after function, not before. 67596263Sobrien 67696263Sobrien2002-02-04 Jason Merrill <jason@redhat.com> 67796263Sobrien 67896263Sobrien * decl.c (start_function): Call cplus_decl_attributes immediately 67996263Sobrien after grokdeclarator. 68096263Sobrien 68196263Sobrien * decl.c (start_function): Combine DECL_RESULT handling code. 68296263Sobrien 68396263Sobrien2002-02-03 Jason Merrill <jason@redhat.com> 68496263Sobrien 68596263Sobrien * xref.c: Remove. 68696263Sobrien * Make-lang.in (CXX_OBJS): Remove cp/xref.o 68796263Sobrien (cp/xref.o): Remove dependencies. 68896263Sobrien * class.c (finish_struct_1, check_methods): Don't call xref fns. 68996263Sobrien (finish_struct_1): Likewise. 69096263Sobrien * friend.c (make_friend_class): Likewise. 69196263Sobrien * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. 69296263Sobrien * spew.c (read_process_identifier): Likewise. 69396263Sobrien 69490075Sobrien2002-02-01 Jason Merrill <jason@redhat.com> 69574473Sobrien 69696263Sobrien PR c++/4872 69796263Sobrien * decl.c (finish_function): Warn about a non-void function with 69896263Sobrien no return statement and no abnormal exit. 69996263Sobrien * cp-tree.h (struct cp_language_function): Add returns_abnormally. 70096263Sobrien (current_function_returns_abnormally): New macro. 70196263Sobrien * call.c (build_call): Set it. 70296263Sobrien 70396263Sobrien * typeck.c (build_component_ref): Always complain about offsetof 70496263Sobrien constructs on non-PODs. Only make it an error for members of 70596263Sobrien virtual bases. 70696263Sobrien 70790075Sobrien * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 70890075Sobrien (dump_function_decl): Always dump parms. 70974473Sobrien 71090075Sobrien * decl2.c (finish_static_data_member_decl): Complain about a local 71190075Sobrien class with a static data member. 71270635Sobrien 71390075Sobrien PR c++/4286 71490075Sobrien * search.c (lookup_field_1): Don't xref a static data member 71590075Sobrien just because we looked it up. 71670635Sobrien 71790075Sobrien2002-01-31 Jason Merrill <jason@redhat.com> 71870635Sobrien 71990075Sobrien * Make-lang.in (parse.c): Handle .output file. 72060967Sobrien 72190075Sobrien PR c++/3395 72290075Sobrien * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 72390075Sobrien not TREE_TYPE. 72490075Sobrien * semantics.c (finish_class_definition): Adjust. 72560967Sobrien 72690075Sobrien Allow attributes in parms and casts. 72790075Sobrien * parse.y (named_parm): Don't strip attrs. 72890075Sobrien (declmods): Remove 'attributes' production. 72990075Sobrien (nonempty_cv_qualifiers): Accept attributes. 73090075Sobrien (ATTRIBUTE): Give precedence. 73190075Sobrien * decl.c (groktypename): Handle attributes. 73290075Sobrien (grokparms): Likewise. 73360967Sobrien 73490075Sobrien2002-01-29 Jakub Jelinek <jakub@redhat.com> 73560967Sobrien 73690075Sobrien * decl2.c (cxx_decode_option): Pass 0 as last argument to 73790075Sobrien cpp_handle_option. 73890075Sobrien * lang-specs.h: Use cpp_unique_options instead of cpp_options 73990075Sobrien when used together with cc1_options. 74060967Sobrien 74190075Sobrien2002-01-29 Nathan Sidwell <nathan@codesourcery.com> 74260967Sobrien 74390075Sobrien PR c++/5132 74490075Sobrien * typeck2.c (digest_init): Make sure non-array core type is 74590075Sobrien instantiated. 74690075Sobrien * decl2.c (reparse_absdcl_as_casts): Just store the type in the 74790075Sobrien constructor, rather than build a new one. 74890075Sobrien (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 74990075Sobrien PURPOSE of constructor elts. 75060967Sobrien 75190075Sobrien2002-01-23 Zack Weinberg <zack@codesourcery.com> 75260967Sobrien 75390075Sobrien * Make-lang.in (parse.c): Adjust expected number of 75490075Sobrien shift-reduce conflicts. 75590075Sobrien (decl.o): Depend on diagnostic.h. 75690075Sobrien * decl.c: Include diagnostic.h. 75790075Sobrien (grokdeclarator): Check for null pointer. 75890075Sobrien (finish_function): Don't abort when 75990075Sobrien current_binding_level->parm_flag != 1, if errors have 76090075Sobrien occurred; throw away the statement tree and extra binding 76190075Sobrien levels, and continue. 76290075Sobrien * lex.c (note_list_got_semicolon): Check for null pointer. 76390075Sobrien * method.c (hack_identifier): Just return error_mark_node if 76490075Sobrien value is error_mark_node. 76590075Sobrien * parse.y (primary: TYPEID(type_id)): No need to use 76690075Sobrien TYPE_MAIN_VARIANT here. 76790075Sobrien (handler_seq): Accept an empty list of catch clauses and 76890075Sobrien generate a fake handler block to avoid later crashes. 76990075Sobrien (ansi_raise_identifier): Accept the error token too. 77090075Sobrien * semantics.c (begin_class_definition, 77190075Sobrien finish_class_definition): Check for error_mark_node. 77260967Sobrien 77390075Sobrien2002-01-23 Zack Weinberg <zack@codesourcery.com> 77460967Sobrien 77590075Sobrien * typeck2.c (friendly_abort): Delete definition. 77690075Sobrien * cp-tree.h (friendly_abort): Don't prototype. 77790075Sobrien (my_friendly_assert): Use fancy_abort. 77857844Sobrien 77990075Sobrien2002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 78057844Sobrien 78190075Sobrien * cp-tree.h (my_friendly_abort): Remove. 78256385Sobrien 78390075Sobrien2002-01-23 Jakub Jelinek <jakub@redhat.com> 78456385Sobrien 78590075Sobrien * spew.c (pending_inlines, pending_inlines_tail, 78690075Sobrien processing_these_inlines): Make static. 78790075Sobrien (mark_pending_inlines): Remove static. 78890075Sobrien (begin_parsing_inclass_inline): If in function, save pi 78990075Sobrien for GC to cp_function_chain->unparsed_inlines instead. 79090075Sobrien (process_next_inline): Likewise. 79190075Sobrien * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 79290075Sobrien (mark_pending_inlines): Add prototype. 79390075Sobrien * decl.c (spew_debug): Remove unused extern. 79490075Sobrien (mark_lang_function): Call mark_pending_inlines. 79552750Sobrien 79690075Sobrien2002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 79752750Sobrien 79890075Sobrien * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 79990075Sobrien init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 80090075Sobrien semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 80190075Sobrien Change my_fancy_abort() to abort(). 80252750Sobrien 80390075Sobrien2002-01-23 Jason Merrill <jason@redhat.com> 80452750Sobrien 80590075Sobrien PR c++/5453 80690075Sobrien * class.c (fixed_type_or_null): Fix thinko. 80752750Sobrien 80890075Sobrien PR c++/3331 80990075Sobrien * init.c (resolve_offset_ref): Use build_indirect_ref. 81052750Sobrien 81190075Sobrien * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 81252750Sobrien 81390075Sobrien2002-01-22 Jason Merrill <jason@redhat.com> 81452750Sobrien 81590075Sobrien * parse.y (function_body): Suppress the block for the outermost 81690075Sobrien curly braces. 81790075Sobrien * decl.c (pushdecl): Don't try to skip it. 81890075Sobrien (begin_function_body): Keep the block we create, not the next one. 81990075Sobrien * init.c (emit_base_init): Don't mess with keep_next_level. 82048743Sobrien 82190075Sobrien * class.c (build_base_path): Tweak formatting. 82248743Sobrien 82390075Sobrien2002-01-19 Nathan Sidwell <nathan@codesourcery.com> 82452284Sobrien 82590075Sobrien Fix regression introduced with patch for c++/775 82690075Sobrien * parse.y (class_head_defn): Check for template specializations 82790075Sobrien with a different class-key. 82852284Sobrien 82990075Sobrien2002-01-17 Jason Merrill <jason@redhat.com> 83052284Sobrien 83190075Sobrien * decl.c (begin_constructor_body, begin_destructor_body): New fns. 83290075Sobrien (begin_function_body): Call them and keep_next_level. 83390075Sobrien * init.c (emit_base_init): Call keep_next_level. 83490075Sobrien * semantics.c (setup_vtbl_ptr): Lose. 83590075Sobrien * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 83690075Sobrien (vtbls_set_up_p): Lose. 83790075Sobrien * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 83890075Sobrien * method.c (do_build_copy_constructor): Likewise. 83990075Sobrien (synthesize_method): Call finish_mem_initializers. 84090075Sobrien * parse.y (nodecls): Likewise. 84152284Sobrien 84290075Sobrien * error.c (dump_type_suffix): Print the exception specs before 84390075Sobrien recursing. 84490075Sobrien (dump_function_decl): Here, too. 84552284Sobrien 84690075Sobrien * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 84752284Sobrien 84890075Sobrien2002-01-10 Ira Ruben <ira@apple.com> 84952284Sobrien 85090075Sobrien PR c++/907 85190075Sobrien * decl.c (start_method): Handle attrlist. 85252284Sobrien 85390075Sobrien2002-01-10 Jakub Jelinek <jakub@redhat.com> 85452284Sobrien 85590075Sobrien * decl2.c (max_tinst_depth): Increase default limit to 500. 85652284Sobrien 85790075Sobrien2002-01-10 Graham Stott <grahams@redhat.com> 85852284Sobrien 85990075Sobrien * spew.c (YYCHAR): Uppercase macro parameter and add 86090075Sobrien parenthesis. 86190075Sobrien (YYCODE): Likewise. 86290075Sobrien (NAME): Uppercase macro parameter. 86352284Sobrien 86490075Sobrien2002-01-09 Graham Stott <grahams@redhat.com> 86552284Sobrien 86690075Sobrien * decl.h (grokdeclarator): Wrap long line. 86752284Sobrien 86890075Sobrien * semantics.c (FINISH_COND): Uppercase macro paramaters and 86990075Sobrien add parenthesis. 87052284Sobrien 87190075Sobrien2002-01-08 Graham Stott <grahams@redhat.com> 87252284Sobrien 87390075Sobrien * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 87490075Sobrien (PALLOC): Uppercase macro parameter and whitespace. 87590075Sobrien (SALLOC): Uppercase macro parameter. 87690075Sobrien (SFREE): Uppercase macros parameter, add parenthese and 87790075Sobrien whitespace. 87890075Sobrien (STREQL): Uppercase macro parameter and whitespace. 87990075Sobrien (STRNEQ): Likewise. 88090075Sobrien (STRLSS): Likewise. 88190075Sobrien (STRLEQ): Likewise. 88290075Sobrien (STRGTR): Likewise. 88390075Sobrien (STRGEQ): Likewise. 88452284Sobrien 88590075Sobrien * call.c (convert_like): Add parenthesis and wrap. 88690075Sobrien (convert_like_with_context): Likewise. 88790075Sobrien (ICS_RANK): Whitespace. 88890075Sobrien (NEED_TEMPORARY_P): Remove parenthesis. 88952284Sobrien 89090075Sobrien * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 89190075Sobrien whitespace. 89290075Sobrien (VTT_MARKED_BINFO_P): Likewise. 89352284Sobrien 89490075Sobrien * decl.c (BINDING_LEVEL): Add parenthesis. 89590075Sobrien (DEF_OPERATOR): Likewise. 89652284Sobrien 89790075Sobrien * mangle.c (MANGLE_TRACE): Add parenthesis. 89890075Sobrien (MANGLE_TRACE_TREE): Likewise. 89990075Sobrien (write_signed_number): Likewise. 90090075Sobrien (write_unsigned_number): Likewise. 90152284Sobrien 90290075Sobrien * pt.c (ccat): Uppercase macro parameter. 90390075Sobrien (cat): Likewise 90452284Sobrien 90590075Sobrien * search.c (SET_BINFO_ACCESS): Add parenthesis. 90652284Sobrien 90790075Sobrien2002-01-07 Jason Merrill <jason@redhat.com> 90852284Sobrien 90990075Sobrien * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 91090075Sobrien to pedwarn. 91152284Sobrien 91290075Sobrien PR c++/3536 91390075Sobrien * method.c (make_thunk): If !flag_weak, give the thunk the 91490075Sobrien function's linkage. 91590075Sobrien (use_thunk): Here, too. 91652284Sobrien 91790075Sobrien2002-01-07 Graham Stott <grahams@redhat.com> 91852284Sobrien 91990075Sobrien * error.c: Update copyright date. 92090075Sobrien (print_scope_operator): Add parenthesis. 92190075Sobrien (print_left_paren): Likewise. 92290075Sobrien (print_right_paren): Likewise. 92390075Sobrien (print_left_bracket): Likewise. 92490075Sobrien (print_right_bracket): Likewise. 92590075Sobrien (print_template_argument_list_start): Likewise. 92690075Sobrien (print_template_argument_list_end): Likewise. 92790075Sobrien (print_non_consecutive_character): Likewise. 92890075Sobrien (print_tree_identifier): Likewise. 92990075Sobrien (print_identifier): Likewise. 93090075Sobrien (NEXT_CODE): Uppercase macro parameter. 93190075Sobrien (ident_fndecl): Delete unused. 93290075Sobrien (GLOBAL_THING): Likewise. 93352284Sobrien 93490075Sobrien2002-01-06 Graham Stott <grahams@redhat.com> 93552284Sobrien 93690075Sobrien * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 93790075Sobrien (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 93890075Sobrien (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 93990075Sobrien (RECORD_OR_UNION_TYPE_CHECK): Likewise. 94090075Sobrien (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 94190075Sobrien (C_IS_RESERVED_WORD): Uppercase macro parameter. 94290075Sobrien (C_RID_YYCODE) Likewise. 94390075Sobrien (ptrmem_cst): Use rtx. 94490075Sobrien (LOCAL_BINDING_P): Add whitespace. 94590075Sobrien (INHERITED_VALUE_BINDING_P): Likewise. 94690075Sobrien (BINDING_SCOPE): Wrap long line. 94790075Sobrien (BINDING_HAS_LEVEL_P): Remove parenthesis. 94890075Sobrien (BINDING_VALUE): Wrap long line. 94990075Sobrien (BINDING_TYPE): Whitespace. 95090075Sobrien (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 95190075Sobrien (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 95290075Sobrien (IDENTIFIER_NAMESPACE_VALUE): Likewise. 95390075Sobrien (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 95490075Sobrien (same_type_p): Uppercase macro parameters. 95590075Sobrien (same_type_ignoring_top_level_qualifiers_p): Likewise. 95690075Sobrien (OVL_FUNCTION): Wrap long line. 95790075Sobrien (OVL_CHAIN): Whitespace. 95890075Sobrien (OVL_CURRENT): Add parenthesis and whitespace. 95990075Sobrien (OVL_NEXT): Whitespace. 96090075Sobrien (OVL_USED): Likewise. 96190075Sobrien (IDENTIFIER_TYPE_VALUE): Likewise. 96290075Sobrien (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 96390075Sobrien (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 96490075Sobrien (LANG_ID_FIELD): Whitespace. 96590075Sobrien (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 96690075Sobrien (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 96790075Sobrien (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 96890075Sobrien (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 96990075Sobrien (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 97090075Sobrien (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 97190075Sobrien (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 97290075Sobrien (IDENTIFIER_VIRTUAL_P): Likewise. 97390075Sobrien (IDENTIFIER_OPNAME_P): Likewise. 97490075Sobrien (IDENTIFIER_TYPENAME_P): Remove parenthesis. 97590075Sobrien (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 97690075Sobrien (C_SET_EXP_ORIGINAL_CODE): Likewise. 97790075Sobrien (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 97890075Sobrien (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 97990075Sobrien (IS_AGGR_TYPE): Uppercase macro parameter. 98090075Sobrien (CLASS_TYPE_P): Likewise. 98190075Sobrien (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 98290075Sobrien (IS_AGGR_TYPE_2): Whitespace. 98390075Sobrien (TAGGED_TYPE_P): Uppercase macro parameter. 98490075Sobrien (TYPE_BUILT_IN): Whitespace. 98590075Sobrien (TYPE_FOR_JAVA): Likewise. 98690075Sobrien (FUNCTION_ARG_CHAIN): Remove parenthesis. 98790075Sobrien (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 98890075Sobrien (FUNCTION_FIRST_USER_PARAM): Likewise. 98990075Sobrien (PROMOTES_TO_AGGR_TYPE): Whitespace. 99090075Sobrien (DERIVED_FROM_P): Add parenthesis and wrap. 99190075Sobrien (UNIQUELY_DERIVED_FROM_P): Likewise. 99290075Sobrien (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 99390075Sobrien (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 99490075Sobrien (CLASSTYPE_USE_TEMPLATE): Whitespace. 99590075Sobrien (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 99690075Sobrien (TYPE_GETS_DELETE): Add parenthesis. 99790075Sobrien (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 99890075Sobrien (TYPE_HAS_ASSIGN_REF): Likewise, 99990075Sobrien (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 100090075Sobrien (TYPE_HAS_INIT_REF): Likewise. 100190075Sobrien (TYPE_HAS_CONST_INIT_REF): Likewise. 100290075Sobrien (TYPE_BEING_DEFINED): Likewise. 100390075Sobrien (TYPE_LANG_SPECIFIC): Likewise. 100490075Sobrien (CLASSTYPE_RTTI): Likewise. 100590075Sobrien (TYPE_OVERLOADS_CALL_EXPR): Likewise. 100690075Sobrien (TYPE_OVERLOADS_ARRAY_REF): Likewise. 100790075Sobrien (TYPE_OVERLOADS_ARROW): Likewise. 100890075Sobrien (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 100990075Sobrien (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 101090075Sobrien (CLASSTYPE_METHOD_VEC): Likewise. 101190075Sobrien (CLASSTYPE_MARKED_N): Likewise. 101290075Sobrien (CLASSTYPE_MARKED): Likewise. 101390075Sobrien (CLASSTYPE_MARKED2): Likewise. 101490075Sobrien (CLASSTYPE_MARKED3): Likewise. 101590075Sobrien (CLASSTYPE_MARKED4): Likewise. 101690075Sobrien (CLASSTYPE_MARKED5): Likewise. 101790075Sobrien (CLASSTYPE_MARKED6): Likewise. 101890075Sobrien (SET_CLASSTYPE_MARKED): Whitespace. 101990075Sobrien (CLEAR_CLASSTYPE_MARKED): Likewise. 102090075Sobrien (SET_CLASSTYPE_MARKED2): Likewise. 102190075Sobrien (CLEAR_CLASSTYPE_MARKED2): Likewise. 102290075Sobrien (SET_CLASSTYPE_MARKED3): Likewise. 102390075Sobrien (CLEAR_CLASSTYPE_MARKED3): Likewise. 102490075Sobrien (SET_CLASSTYPE_MARKED4): Likewise. 102590075Sobrien (CLEAR_CLASSTYPE_MARKED4): Likewise. 102690075Sobrien (SET_CLASSTYPE_MARKED5): Likewise. 102790075Sobrien (CLEAR_CLASSTYPE_MARKED5): Likewise. 102890075Sobrien (SET_CLASSTYPE_MARKED6): Likewise. 102990075Sobrien (CLEAR_CLASSTYPE_MARKED6): Likewise. 103090075Sobrien (CLASSTYPE_TAGS): Likewise. 103190075Sobrien (CLASSTYPE_VSIZE): Likewise. 103290075Sobrien (CLASSTYPE_VBASECLASSES): Likewise. 103390075Sobrien (CANONICAL_BINFO): Add parenthesis. 103490075Sobrien (CLASSTYPE_SIZE(NODE): Likewise. 103590075Sobrien (CLASSTYPE_SIZE_UNIT): Likewise. 103690075Sobrien (CLASSTYPE_ALIGN(NODE): Likewise. 103790075Sobrien (CLASSTYPE_USER_ALIGN): Likewise. 103890075Sobrien (TYPE_JAVA_INTERFACE): Likewise. 103990075Sobrien (CLASSTYPE_PURE_VIRTUALS): Likewise. 104090075Sobrien (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 104190075Sobrien (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 104290075Sobrien (CLASSTYPE_HAS_MUTABLE): Likewise. 104390075Sobrien (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 104490075Sobrien (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 104590075Sobrien (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 104690075Sobrien (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 104790075Sobrien (CLASSTYPE_INTERFACE_ONLY): Likewise. 104890075Sobrien (CLASSTYPE_INTERFACE_KNOWN): Likewise. 104990075Sobrien (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 105090075Sobrien (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 105190075Sobrien (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 105290075Sobrien (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 105390075Sobrien (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 105490075Sobrien (BINFO_UNSHARED_MARKED): Whitespace. 105590075Sobrien (BINFO_MARKED): Whitespace and wrap. 105690075Sobrien (SET_BINFO_MARKED): Likewise. 105790075Sobrien (CLEAR_BINFO_MARKED): Likewise. 105890075Sobrien (BINFO_VTABLE_PATH_MARKED): Likewise. 105990075Sobrien (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 106090075Sobrien (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 106190075Sobrien (BINFO_SUBVTT_INDEX): Remove parenthesis. 106290075Sobrien (BINFO_VPTR_INDEX): Likewise. 106390075Sobrien (BINFO_PRIMARY_BASE_OF): Likewise, 106490075Sobrien (CLASSTYPE_VFIELDS): Whitespace. 106590075Sobrien (VF_DERIVED_VALUE): Wrap long line. 106690075Sobrien (NAMESPACE_LEVEL): Whitespace. 106790075Sobrien (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 106890075Sobrien (DEFARG_POINTER): Whitespace. 106990075Sobrien (DECL_NEEDED_P): Remove parenthesis. 107090075Sobrien (DECL_LANGUAGE): Whitespace. 107190075Sobrien (SET_DECL_LANGUAGE): Add parenthesis. 107290075Sobrien (DECL_CONSTRUCTOR_P): Whitespace and wrap. 107390075Sobrien (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 107490075Sobrien (DECL_IN_AGGR_P): Whitespace. 107590075Sobrien (DECL_FRIEND_P): Likewise. 107690075Sobrien (DECL_BEFRIENDING_CLASSES): Likewise. 107790075Sobrien (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 107890075Sobrien (DECL_NONCONVERTING_P): Whitespace. 107990075Sobrien (DECL_PURE_VIRTUAL_P): Likewise. 108090075Sobrien (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 108190075Sobrien (DECL_PENDING_INLINE_INFO): Whitespace. 108290075Sobrien (DECL_SORTED_FIELDS): Likewise. 108390075Sobrien (DECL_DEFERRED_FN): Likewise. 108490075Sobrien (DECL_TEMPLATE_INFO): Likewise. 108590075Sobrien (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 108690075Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 108790075Sobrien (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 108890075Sobrien (TMPL_ARGS_LEVEL): Likewise. 108990075Sobrien (SET_TMPL_ARGS_LEVEL): Likewise. 109090075Sobrien (INNERMOST_TEMPLATE_PARMS): Whitespace. 109190075Sobrien (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 109290075Sobrien (INTEGRAL_CODE_P(CODE): Add parenthesis. 109390075Sobrien (CP_INTEGRAL_TYPE_P): Remove parenthesis. 109490075Sobrien (TYPE_HAS_CONSTRUCTOR): Whitespace. 109590075Sobrien (TREE_HAS_CONSTRUCTOR): Likewise. 109690075Sobrien (TYPE_HAS_DESTRUCTOR): Likewise. 109790075Sobrien (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 109890075Sobrien (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 109990075Sobrien (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 110090075Sobrien (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 110190075Sobrien (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 110290075Sobrien (TYPE_PTRMEMFUNC_P): Likewise. 110390075Sobrien (TYPE_PTRMEMFUNC_FLAG): Likewise. 110490075Sobrien (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 110590075Sobrien (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 110690075Sobrien (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 110790075Sobrien (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 110890075Sobrien (DECL_ACCESS): Whitespace. 110990075Sobrien (DECL_GLOBAL_CTOR_P): Remove parenthesis. 111090075Sobrien (DECL_GLOBAL_DTOR_P): Likewise. 111190075Sobrien (GLOBAL_INIT_PRIORITY): Likewise. 111290075Sobrien (DECL_TEMPLATE_PARMS): Likewise. 111390075Sobrien (DECL_TEMPLATE_RESULT): Likewise. 111490075Sobrien (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 111590075Sobrien (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 111690075Sobrien (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 111790075Sobrien (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 111890075Sobrien (PRIMARY_TEMPLATE_P): Add parenthesis. 111990075Sobrien (DECL_USE_TEMPLATE): Whitespace. 112090075Sobrien (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 112190075Sobrien (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 112290075Sobrien (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 112390075Sobrien (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 112490075Sobrien (CALL_DECLARATOR_PARMS): Remove parenthesis. 112590075Sobrien (CALL_DECLARATOR_QUALS): Likewise. 112690075Sobrien (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 112790075Sobrien (TEMP_NAME_P): Wrap. 112890075Sobrien (VFIELD_NAME_P): Likewise. 112990075Sobrien (B_SET): Uppercase macro parameters and add parenthesis. 113090075Sobrien (B_CLR): Likewise. 113190075Sobrien (B_TST): Likewise. 113290075Sobrien (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 113390075Sobrien (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 113490075Sobrien (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 113590075Sobrien (same_or_base_type_p): Likewise. 113690075Sobrien (cp_deprecated): Likewise. 113752284Sobrien 113890075Sobrien2002-01-05 Richard Henderson <rth@redhat.com> 113952284Sobrien 114090075Sobrien * semantics.c (expand_body): Revert last change. 114152284Sobrien 114290075Sobrien2002-01-04 Jason Merrill <jason@redhat.com> 114352284Sobrien 114490075Sobrien PR c++/4122 114590075Sobrien * class.c (update_vtable_entry_for_fn): Set delta to zero for a 114690075Sobrien lost primary. 114752284Sobrien 114890075Sobrien * class.c (build_vtbl_initializer): Check for a lost primary 114990075Sobrien before calculating the vtable entry to throw away. 115052284Sobrien 115190075Sobrien2002-01-02 Jason Merrill <jason@redhat.com> 115252284Sobrien 115390075Sobrien * semantics.c (expand_body): Call outlining_inline_function when 115490075Sobrien emitting an inline function out of line. 115552284Sobrien 115690075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 115752284Sobrien 115890075Sobrien PR c++/5116, c++/764 reversion 115990075Sobrien * call.c (build_new_op): Revert the instantiations. They are 116090075Sobrien incorrect. 116152284Sobrien 116290075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 116352284Sobrien 116490075Sobrien PR c++/5089 116590075Sobrien * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 116652284Sobrien 116790075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 116852284Sobrien 116990075Sobrien PR c++/3716 117090075Sobrien * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 117190075Sobrien (tsubst, case POINTER_TYPE): Handle pmfs here. 117290075Sobrien (tsubst, case OFFSET_TYPE): Check it is not an offset to 117390075Sobrien reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 117452284Sobrien 117590075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 117652284Sobrien 117790075Sobrien PR c++/35 117890075Sobrien * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 117990075Sobrien (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 118090075Sobrien * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 118190075Sobrien PARM_DECL. 118290075Sobrien (tsubst_template_parms): Break up loop statements. 118390075Sobrien (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 118490075Sobrien parm PARM_DECLs don't get promoted. 118552284Sobrien 118690075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 118752284Sobrien 118890075Sobrien PR c++/5123 118990075Sobrien * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 119090075Sobrien (build_x_function_call): Cope with a COMPONENT_REF containing a 119190075Sobrien TEMPLATE_ID_EXPR. 119252284Sobrien 119390075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 119452284Sobrien 119590075Sobrien PR c++/5213 119690075Sobrien * pt.c (convert_template_argument): Be more careful determining 119790075Sobrien when RECORD_TYPE templates are or are not templates. 119852284Sobrien 119990075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 120052284Sobrien 120190075Sobrien PR c++/775 120290075Sobrien * cp-tree.h (handle_class_head): Adjust prototype. 120390075Sobrien * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 120490075Sobrien parameters. Use for all class heads. 120590075Sobrien * parse.y (named_class_head_sans_basetype, named_class_head, 120690075Sobrien named_complex_class_head_sans_basetype, 120790075Sobrien named_class_head_sans_basetype_defn, 120890075Sobrien unnamed_class_head): Remove. 120990075Sobrien (class_head, class_head_apparent_template): Recognize class heads 121090075Sobrien (class_head_decl, class_head_defn): New reductions. Process class 121190075Sobrien heads. 121290075Sobrien (structsp): Adjust class definition and class declaration 121390075Sobrien reductions. 121490075Sobrien (maybe_base_class_list): Give diagnostic on empty list. 121552284Sobrien 121690075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 121752284Sobrien 121890075Sobrien PR c++/4379 121990075Sobrien * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 122090075Sobrien single non-static member. 122190075Sobrien (unary_complex_lvalue): If it cannot be a pointer to member, don't 122290075Sobrien make it so. Check it is not pointer to reference. 122352284Sobrien 122490075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 122552284Sobrien 122690075Sobrien PR c++/5132 122790075Sobrien * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 122890075Sobrien are processing a template decl. 122952284Sobrien 123090075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 123152284Sobrien 123290075Sobrien PR c++/5116, c++/764 123390075Sobrien * call.c (build_new_op): Make sure template class operands are 123490075Sobrien instantiated. Simplify arglist construction. 123552284Sobrien 123690075Sobrien2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 123752284Sobrien 123890075Sobrien * call.c (build_user_type_conversion_1): Use my_friendly_assert 123990075Sobrien rather than if ... abort. 124090075Sobrien * cvt.c (convert_to_reference): Likewise. 124190075Sobrien * semantics.c (setup_vtbl_ptr): Likewise. 124290075Sobrien * pt.c (lookup_template_class): Comment typo. 124352284Sobrien 124490075Sobrien2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 124552284Sobrien 124690075Sobrien PR c++/5125 124790075Sobrien * pt.c (push_template_decl_real): Make sure DECL has 124890075Sobrien DECL_LANG_SPECIFIC. 124952284Sobrien 125090075Sobrien2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 125152284Sobrien 125290075Sobrien PR c++/335 125390075Sobrien * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 125490075Sobrien for non-reference fields. 125590075Sobrien * typeck.c (require_complete_type): Use resolve_offset_ref). 125652284Sobrien 125790075Sobrien2001-12-26 Nathan Sidwell <nathan@codesourcery.com> 125852284Sobrien 125990075Sobrien PR c++/196 126090075Sobrien * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 126152284Sobrien 126290075Sobrien2001-12-24 Nathan Sidwell <nathan@codesourcery.com> 126352284Sobrien 126490075Sobrien PR c++/160 126590075Sobrien * typeck.c (build_modify_expr): Remove old unreachable code & tidy 126690075Sobrien up. Don't stabilize_references when initializing a reference. 126752284Sobrien 126890075Sobrien2001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 126952284Sobrien 127090075Sobrien * decl2.c (lang_f_options): Const-ify. 127152284Sobrien 127290075Sobrien2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 127352284Sobrien 127490075Sobrien * config-lang.in (diff_excludes): Remove. 127552284Sobrien 127690075Sobrien2001-12-19 Nathan Sidwell <nathan@codesourcery.com> 127752284Sobrien 127890075Sobrien PR c++/90 127990075Sobrien * typeck.c (build_function_call_real): Use original function 128090075Sobrien expression for errors. 128152284Sobrien 128290075Sobrien2001-12-18 Jason Merrill <jason@redhat.com> 128352284Sobrien 128490075Sobrien PR c++/3242 128590075Sobrien * class.c (add_method): Do compare 'this' quals when trying to match a 128690075Sobrien used function. Don't defer to another used function. 128752284Sobrien 128890075Sobrien2001-12-18 Nathan Sidwell <nathan@codesourcery.com> 128952284Sobrien 129090075Sobrien * pt.c (instantiate_clone): Remove, fold into ... 129190075Sobrien (instantiate_template): ... here. Simplify by removing mutual 129290075Sobrien recursion. 129390075Sobrien * typeck2.c (build_m_component_ref): Don't cv qualify the function 129490075Sobrien pointed to by a pointer to function. 129590075Sobrien * class.c (delete_duplicate_fields_1): Typo. 129652284Sobrien 129790075Sobrien2001-12-18 Jason Merrill <jason@redhat.com> 129852284Sobrien 129990075Sobrien C++ ABI change: destroy value arguments in caller. 130090075Sobrien * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 130190075Sobrien create an extra binding level for the parameters. 130290075Sobrien * decl.c (store_parm_decls): Don't do parameter cleanups. 130352284Sobrien 130490075Sobrien2001-12-18 Nathan Sidwell <nathan@codesourcery.com> 130552284Sobrien 130690075Sobrien * call.c (build_new_method_call): Use '%#V'. 130790075Sobrien * error.c (cv_to_string): Use V parameter to determine padding. 130852284Sobrien 130990075Sobrien2001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 131052284Sobrien 131190075Sobrien * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 131290075Sobrien spellings in messages. 131352284Sobrien 131490075Sobrien2001-12-17 Zack Weinberg <zack@codesourcery.com> 131552284Sobrien 131690075Sobrien * cp-tree.h: Delete #defines for cp_error, cp_warning, 131790075Sobrien cp_pedwarn, and cp_compiler_error. 131890075Sobrien * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 131990075Sobrien except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 132090075Sobrien rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 132190075Sobrien typeck2.c: Change calls to the above macros to use their 132290075Sobrien language-independent equivalents: error, warning, pedwarn, and 132390075Sobrien internal_error respectively. 132452284Sobrien 132590075Sobrien2001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 132652284Sobrien 132790075Sobrien * decl2.c (finish_file): Remove back_end_hook. 132852284Sobrien 132990075Sobrien2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 133052284Sobrien 133190075Sobrien * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 133290075Sobrien cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 133390075Sobrien pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 133452284Sobrien 133590075Sobrien2001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 133652284Sobrien 133790075Sobrien * lang-options.h: Use American spelling in messages. 133852284Sobrien 133990075Sobrien2001-12-13 Jason Merrill <jason@redhat.com> 134052284Sobrien 134190075Sobrien * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 134252284Sobrien 134390075Sobrien Use cleanups to run base and member destructors. 134490075Sobrien * init.c (push_base_cleanups): New function, split out from... 134590075Sobrien (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 134690075Sobrien * decl.c (finish_destructor_body): Move vbase destruction code to 134790075Sobrien push_base_cleanups. 134890075Sobrien (begin_function_body, finish_function_body): New fns. 134990075Sobrien (finish_function): Move [cd]tor handling and call_poplevel to 135090075Sobrien finish_function_body. 135190075Sobrien (pushdecl): Skip the new level. 135290075Sobrien * semantics.c (genrtl_try_block): Don't call end_protect_partials. 135390075Sobrien (setup_vtbl_ptr): Call push_base_cleanups. 135490075Sobrien * method.c (synthesize_method): Call {begin,end}_function_body. 135590075Sobrien * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 135690075Sobrien * cp-tree.h: Declare new fns. 135790075Sobrien * parse.y (function_body, .begin_function_body): New nonterminals. 135890075Sobrien (fndef, pending_inline, function_try_block): Use function_body. 135990075Sobrien (ctor_initializer_opt, function_try_block): No longer has a value. 136090075Sobrien (base_init): Remove .set_base_init token. 136190075Sobrien (.set_base_init, compstmt_or_error): Remove. 136290075Sobrien * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 136352284Sobrien 136490075Sobrien * optimize.c (maybe_clone_body): Fix parameter updating. 136552284Sobrien 136690075Sobrien2001-12-12 Jason Merrill <jason@redhat.com> 136752284Sobrien 136890075Sobrien * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 136990075Sobrien * semantics.c (genrtl_start_function): Don't pass 137090075Sobrien parms_have_cleanups or push an extra binding level. 137190075Sobrien (genrtl_finish_function): Lose cleanup_label cruft. 137252284Sobrien 137390075Sobrien * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 137490075Sobrien (ctor_label): Remove. 137590075Sobrien * semantics.c (finish_return_stmt): Lose ctor_label support. 137690075Sobrien * decl.c (finish_constructor_body, mark_lang_function): Likewise. 137790075Sobrien * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 137890075Sobrien dtor_label. 137952284Sobrien 138090075Sobrien * call.c (build_new_method_call): Let resolves_to_fixed_type_p 138190075Sobrien check for [cd]tors. 138290075Sobrien * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 138352284Sobrien 138490075Sobrien * decl.c (finish_function): Check VMS_TARGET, not VMS. 138552284Sobrien 138690075Sobrien * decl.c (start_cleanup_fn): Remove redundant pushlevel. 138790075Sobrien (end_cleanup_fn): And poplevel. 138852284Sobrien 138990075Sobrien * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 139090075Sobrien if we're in a template. 139152284Sobrien 139290075Sobrien2001-12-12 Jakub Jelinek <jakub@redhat.com> 139352284Sobrien 139490075Sobrien * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 139590075Sobrien ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 139690075Sobrien THIS_NAME_P): Delete. 139790075Sobrien * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 139890075Sobrien THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 139990075Sobrien with internal naming scheme. 140090075Sobrien * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 140152284Sobrien 140290075Sobrien2001-12-12 Nathan Sidwell <nathan@codesourcery.com> 140352284Sobrien 140490075Sobrien * decl.c (grokdeclarator): Deprecated implicit typename use. 140552284Sobrien 140690075Sobrien2001-12-11 Nathan Sidwell <nathan@codesourcery.com> 140752284Sobrien 140890075Sobrien PR g++/51 140990075Sobrien * parse.y (frob_specs): Indicate it is a language linkage which 141090075Sobrien contained the extern. 141190075Sobrien * decl.c (grokdeclarator): Allow extern language linkage with 141290075Sobrien other specifiers. 141352284Sobrien 141490075Sobrien2001-12-10 Nathan Sidwell <nathan@codesourcery.com> 141552284Sobrien 141690075Sobrien PR g++/72 141790075Sobrien * decl.c (add_binding): Don't reject duplicate typedefs involving 141890075Sobrien template parameters. 141952284Sobrien 142090075Sobrien2001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 142152284Sobrien 142290075Sobrien * parse.y, semantics.c: Similarly. 142352284Sobrien 142490075Sobrien2001-12-09 Nathan Sidwell <nathan@codesourcery.com> 142552284Sobrien 142690075Sobrien PR g++/87 142790075Sobrien * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 142890075Sobrien (copy_args_p): Rename to ... 142990075Sobrien (copy_fn_p): ... here. 143090075Sobrien (grok_special_member_properties): New function. 143190075Sobrien (grok_op_properties): Lose VIRTUALP parameter. 143290075Sobrien (copy_assignment_arg_p): Remove. 143390075Sobrien * call.c (build_over_call): Use copy_fn_p. 143490075Sobrien * decl.c (grokfndecl): Reformat. Adjust call to 143590075Sobrien grok_op_properties. 143690075Sobrien (copy_args_p): Rename to ... 143790075Sobrien (copy_fn_p): ... here. Reject template functions. Check for pass 143890075Sobrien by value. 143990075Sobrien (grok_special_member_properties): Remember special functions. 144090075Sobrien (grok_ctor_properties): Don't remember them here, just check. 144190075Sobrien (grok_op_properties): Likewise. 144290075Sobrien (start_method): Call grok_special_member_properties. 144390075Sobrien * decl2.c (grokfield): Likewise. 144490075Sobrien (copy_assignment_arg_p): Remove. 144590075Sobrien (grok_function_init): Don't remember abstract assignment here. 144690075Sobrien * pt.c (instantiate_class_template): Call 144790075Sobrien grok_special_member_properties. 144890075Sobrien (tsubst_decl): Adjust grok_op_properties call. 144952284Sobrien 145090075Sobrien2001-12-08 Aldy Hernandez <aldyh@redhat.com> 145152284Sobrien 145290075Sobrien * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 145390075Sobrien RID_TYPES_COMPATIBLE_P. 145452284Sobrien 145590075Sobrien2001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 145652284Sobrien 145790075Sobrien * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 145890075Sobrien call to build_aggr_init. 145990075Sobrien * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 146052284Sobrien 146190075Sobrien2001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 146252284Sobrien 146390075Sobrien * parse.y: Replace uses of the string non-terminal with STRING. 146490075Sobrien Don't perform string concatentaion here. 146590075Sobrien (string): Remove non-terminal. 146690075Sobrien * semantics.c (finish_asm_stmt): Don't concatenate strings here. 146752284Sobrien 146890075Sobrien2001-12-05 Jason Merrill <jason@redhat.com> 146952284Sobrien 147090075Sobrien * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 147190075Sobrien (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 147290075Sobrien * tree.c (cp_start_inlining, cp_end_inlining): New fns. 147390075Sobrien * pt.c (push_tinst_level): No longer static. 147490075Sobrien * cp-tree.h: Declare them. 147552284Sobrien 147690075Sobrien * init.c (resolve_offset_ref): Don't check access for the base 147790075Sobrien conversion to access a FIELD_DECL. 147852284Sobrien 147990075Sobrien * cp-tree.h (TYPE_REFFN_P): New macro. 148090075Sobrien * decl.c (bad_specifiers): Check it, too. 148152284Sobrien 148290075Sobrien * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 148390075Sobrien on the __*_type_info type if we haven't seen a definition. 148452284Sobrien 148590075Sobrien2001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 148652284Sobrien 148790075Sobrien * decl.c: Include c-common.h. 148890075Sobrien (shadow_warning): Move to c-common.c. 148952284Sobrien 149090075SobrienWed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 149152284Sobrien 149290075Sobrien * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 149352284Sobrien 149490075Sobrien2001-12-04 Nathan Sidwell <nathan@codesourcery.com> 149552284Sobrien 149690075Sobrien * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 149752284Sobrien 149890075Sobrien2001-12-04 Nathan Sidwell <nathan@codesourcery.com> 149952284Sobrien 150090075Sobrien PR g++/164 150190075Sobrien * init.c (sort_base_init): Allow binfos to be directly specified. 150290075Sobrien * method.c (do_build_copy_constructor): Explicitly convert to the 150390075Sobrien base instance. 150490075Sobrien (do_build_assign_ref): Likewise. 150552284Sobrien 150690075Sobrien2001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 150752284Sobrien 150890075Sobrien * decl.c (xref_basetypes): Don't use C99 construct in tag_code 150990075Sobrien declaration and initialization. 151052284Sobrien 151190075Sobrien2001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 151252284Sobrien 151390075Sobrien * typeck2.c: Remove leading capital from diagnostic messages, as 151490075Sobrien per GNU coding standards. 151552284Sobrien 151690075Sobrien2001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 151752284Sobrien 151890075Sobrien PR c++/3394 151990075Sobrien * decl.c (xref_basetypes): Handle attributes between 152090075Sobrien 'class' and name. 152152284Sobrien 152290075Sobrien2001-12-03 Nathan Sidwell <nathan@codesourcery.com> 152352284Sobrien 152490075Sobrien PR g++/3381 152590075Sobrien * parse.y (named_complex_class_head_sans_basetype): Add new 152690075Sobrien reduction. 152790075Sobrien * Make-lang.in (parse.c): Adjust expected conflict count. 152852284Sobrien 152990075Sobrien2001-12-03 Jason Merrill <jason@redhat.com> 153052284Sobrien 153190075Sobrien * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 153290075Sobrien immediate binfos for our virtual bases. 153352284Sobrien 153490075Sobrien2001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 153552284Sobrien 153690075Sobrien * call.c (build_java_interface_fn_ref): Similarly. 153790075Sobrien * except.c (is_admissible_throw_operand): Similarly. 153890075Sobrien * init.c (build_java_class_ref): Similarly. 153990075Sobrien * xref.c (open_xref_file): Similarly. 154052284Sobrien 154190075Sobrien2001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 154252284Sobrien 154390075Sobrien * class.c (finish_struct): Remove trailing periods from messages. 154490075Sobrien * decl.c (check_tag_decl): Similarly. 154590075Sobrien * lex.c (cxx_set_yydebug): Similarly. 154690075Sobrien * typeck2.c (friendly_abort): Similarly. 154752284Sobrien 154890075Sobrien2001-11-29 Mark Mitchell <mark@codesourcery.com> 154952284Sobrien 155090075Sobrien PR c++/3048 155190075Sobrien * cp-tree.h (ovl_member): Remove. 155290075Sobrien * decl2.c (merge_functions): Handle extern "C" functions 155390075Sobrien specially. 155490075Sobrien * tree.c (ovl_member): Remove. 155552284Sobrien 155690075Sobrien2001-11-29 Mark Mitchell <mark@codesourcery.com> 155752284Sobrien 155890075Sobrien PR c++/4842 155990075Sobrien * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 156090075Sobrien FUNCTION_DECL, as input. 156190075Sobrien (mark_overriders): Remove. 156290075Sobrien (warn_hidden): Rework for the new ABI. 156352284Sobrien 156490075Sobrien2001-11-29 Mark Mitchell <mark@codesourcery.com> 156552284Sobrien 156690075Sobrien PR c++/3471 156790075Sobrien * call.c (convert_like_real): Do not build additional temporaries 156890075Sobrien for rvalues of class type. 156952284Sobrien 157090075Sobrien2001-11-28 Nathan Sidwell <nathan@codesourcery.com> 157152284Sobrien 157290075Sobrien * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 157390075Sobrien (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 157490075Sobrien (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 157590075Sobrien (DERIVED_FROM_P): Likewise. 157690075Sobrien (enum base_access): Renumber, add ba_quiet bit mask. 157790075Sobrien (get_binfo): Remove. 157890075Sobrien (get_base_distance): Remove. 157990075Sobrien (binfo_value): Remove. 158090075Sobrien (ACCESSIBLY_DERIVED_FROM_P): Remove. 158190075Sobrien * call.c (standard_conversion): Use lookup_base. 158290075Sobrien * class.c (strictly_overrides): Likewise. 158390075Sobrien (layout_virtual_bases): Likewise. 158490075Sobrien (warn_about_ambiguous_direct_bases): Likewise. 158590075Sobrien (is_base_of_enclosing_class): Likewise. 158690075Sobrien (add_vcall_offset_vtbl_entries_1): Likewise. 158790075Sobrien * cvt.c (build_up_reference): Adjust comment. 158890075Sobrien * init.c (build_member_call): Reformat. 158990075Sobrien * search.c (get_binfo): Remove. 159090075Sobrien (get_base_distance_recursive): Remove. 159190075Sobrien (get_base_distance): Remove. 159290075Sobrien (lookup_base_r): Tweak. 159390075Sobrien (lookup_base): Add ba_quiet control. Complete the types here. 159490075Sobrien (covariant_return_p): Use lookup_base. 159590075Sobrien * tree.c (binfo_value): Remove. 159690075Sobrien (maybe_dummy_object): Use lookup_base. 159790075Sobrien * typeck.c (build_static_cast): Use lookup_base. 159852284Sobrien (get_delta_difference): Likewise. 159990075Sobrien * typeck2.c (binfo_or_else): Use lookup_base. 160090075Sobrien (build_scoped_ref): Add back error_mark_check. 160190075Sobrien (build_m_component_ref): Use lookup_base. 160252284Sobrien 160390075Sobrien2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 160452284Sobrien 160590075Sobrien * Make-lang.in (c++.generated-manpages): New dummy target. 160652284Sobrien 160790075SobrienTue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 160852284Sobrien 160990075Sobrien * Make-lang.in (cp-lang.o): Depends on c-common.h. 161090075Sobrien * cp-lang.c (c-common.h): Include. 161190075Sobrien (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 161290075Sobrien * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 161390075Sobrien * expr.c (init_cplus_expand): Don't set lang_expand_constant. 161452284Sobrien 161590075Sobrien2001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 161652284Sobrien 161790075Sobrien * decl2.c (c_language): Move to c-common.c. 161890075Sobrien * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 161990075Sobrien functions. 162090075Sobrien (cxx_init): Update. 162152284Sobrien 162290075Sobrien2001-11-26 Jason Merrill <jason@redhat.com> 162352284Sobrien 162490075Sobrien * call.c (joust): Remove COND_EXPR hack. 162552284Sobrien 162690075Sobrien2001-11-25 Aldy Hernandez <aldyh@redhat.com> 162752284Sobrien 162890075Sobrien * search.c (lookup_base_r): Declare bk in variable declaration 162990075Sobrien space. 163052284Sobrien 163190075Sobrien2001-11-25 Nathan Sidwell <nathan@codesourcery.com> 163252284Sobrien 163390075Sobrien PR g++/3145 163490075Sobrien * class.c (build_vbase_pointer): Remove. 163590075Sobrien (build_vbase_path): Remove. 163690075Sobrien (build_base_path): New function. 163790075Sobrien * cp-tree.h (base_access, base_kind): New enumerations. 163890075Sobrien (build_base_path): Declare. 163990075Sobrien (convert_pointer_to_real): Remove. 164090075Sobrien (convert_pointer_to): Remove. 164190075Sobrien (lookup_base): Declare. 164290075Sobrien (convert_pointer_to_vbase): Remove. 164390075Sobrien * call.c (build_scoped_method_call): Use lookup_base & 164490075Sobrien build_base_path instead of convert_pointer_to_real, 164590075Sobrien get_base_distance & get_binfo. 164690075Sobrien (build_over_call): Likewise. 164790075Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 164890075Sobrien (convert_to_pointer_force): Likewise. 164990075Sobrien (build_up_reference): Likewise. 165090075Sobrien (convert_pointer_to_real): Remove. 165190075Sobrien (convert_pointer_to): Remove. 165290075Sobrien * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 165390075Sobrien instead of convert_pointer_to_vbase & build_vbase_path. 165490075Sobrien (emit_base_init): Use build_base_path instead of 165590075Sobrien convert_pointer_to_real. 165690075Sobrien (expand_virtual_init): Lose unrequired conversions. 165790075Sobrien (resolve_offset_ref): Use lookup_base and build_base_path 165890075Sobrien instead of convert_pointer_to. 165990075Sobrien * rtti.c (build_dynamic_cast_1): Use lookup_base & 166090075Sobrien build_base_path instead of get_base_distance & build_vbase_path. 166190075Sobrien * search.c (get_vbase_1): Remove. 166290075Sobrien (get_vbase): Remove. 166390075Sobrien (convert_pointer_to_vbase): Remove. 166490075Sobrien (lookup_base_recursive): New function. 166590075Sobrien (lookup_base): New function. 166690075Sobrien * typeck.c (require_complete_type): Use lookup_base & 166790075Sobrien build_base_path instead of convert_pointer_to. 166890075Sobrien (build_component_ref): Likewise. 166990075Sobrien (build_x_function_call): Likewise. 167090075Sobrien (get_member_function_from_ptrfunc): Likewise. 167190075Sobrien (build_component_addr): Likewise. 167290075Sobrien * typeck2.c (build_scoped_ref): Likewise. 167352284Sobrien 167490075Sobrien2001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 167552284Sobrien 167690075Sobrien * cp-tree.h (CP_TYPE_QUALS): Removed. 167790075Sobrien * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 167890075Sobrien * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 167990075Sobrien LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 168090075Sobrien * dump.c (cp_dump_tree): Use void* dump_info argument to match 168190075Sobrien lang-hooks prototype. 168290075Sobrien * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 168390075Sobrien rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 168490075Sobrien CP_TYPE_QUALS changed to cp_type_quals. 168590075Sobrien * Make-lang.in: References to c-dump.h changed to tree-dump.h. 168690075Sobrien (CXX_C_OBJS): Remove c-dump.o. 168752284Sobrien 168890075Sobrien2001-11-21 Mark Mitchell <mark@codesourcery.com> 168952284Sobrien 169090075Sobrien PR c++/3637 169190075Sobrien * pt.c (lookup_template_class): Ensure that all specializations 169290075Sobrien are registered on the list corresponding to the most general 169390075Sobrien template. 169452284Sobrien 169590075Sobrien2001-11-20 Mark Mitchell <mark@codesourcery.com> 169652284Sobrien 169790075Sobrien * call.c (non_reference): Add documentation. 169890075Sobrien (convert_class_to_reference): Do not strip reference types 169990075Sobrien from conversion operators. 170090075Sobrien (maybe_handle_ref_bind): Simplify. 170190075Sobrien (compare_ics): Correct handling of references. 170252284Sobrien 170390075Sobrien2001-11-19 John Wilkinson <johnw@research.att.com> 170452284Sobrien 170590075Sobrien * dump.c (dump_op): New function. 170690075Sobrien (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 170790075Sobrien dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 170890075Sobrien DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 170952284Sobrien 171090075Sobrien2001-11-19 Mark Mitchell <mark@codesourcery.com> 171152284Sobrien 171290075Sobrien PR4629 171390075Sobrien * semantics.c (finish_sizeof): Make sure that expression created 171490075Sobrien while processing a template do not have a type. 171590075Sobrien (finish_alignof): Likewise. 171690075Sobrien * typeck.c (c_sizeof): Likewise. 171790075Sobrien (expr_sizeof): Likewise. 171852284Sobrien 171990075Sobrien2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 172052284Sobrien 172190075Sobrien * lex.c (cxx_finish): Call c_common_finish. 172290075Sobrien (finish_parse): Remove. 172352284Sobrien 172490075Sobrien2001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 172552284Sobrien 172690075Sobrien * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 172790075Sobrien when displaying error message about missing array bounds. 172852284Sobrien 172990075Sobrien2001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 173052284Sobrien 173190075Sobrien * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 173290075Sobrien CONST_CAST_EXPR. 173390075Sobrien * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 173452284Sobrien 173590075Sobrien2001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 173652284Sobrien 173790075Sobrien * cp-tree.h (print_class_statistics): Restore. 173852284Sobrien 173990075Sobrien2001-11-15 Jason Merrill <jason@redhat.com> 174052284Sobrien 174190075Sobrien * method.c (use_thunk): Don't emit debugging information for thunks. 174252284Sobrien 174390075Sobrien * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 174490075Sobrien * decl.c (make_typename_type): Handle getting a class template. 174590075Sobrien * search.c (lookup_field_r): A class template is good enough for 174690075Sobrien want_type. 174752284Sobrien 174890075Sobrien * call.c (convert_like_real): Only use cp_convert for the bad part. 174990075Sobrien (standard_conversion): Also allow bad int->enum. 175090075Sobrien * typeck.c (ptr_reasonably_similar): Also allow functions to 175190075Sobrien interconvert. Pointers to same-size integers are reasonably 175290075Sobrien similar. 175352284Sobrien 175490075Sobrien * cvt.c (convert_to_void): If we build a new COND_EXPR, always 175590075Sobrien give it void type. 175652284Sobrien 175790075Sobrien2001-11-15 Nathan Sidwell <nathan@codesourcery.com> 175852284Sobrien 175990075Sobrien PR g++/3154 176090075Sobrien * init.c (sort_base_init): Remove unreachable code. 176190075Sobrien (expand_member_init): Adjust comment to reflect reality. Simplify 176290075Sobrien and remove unreachable code. 176352284Sobrien 176490075Sobrien2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 176552284Sobrien 176690075Sobrien * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 176790075Sobrien (cxx_init): Update prototype. 176890075Sobrien * decl.c (init_decl_processing): Rename. Move null node init 176990075Sobrien to its creation time. 177090075Sobrien * lex.c (cxx_init_options): Update. 177190075Sobrien (cxx_init): Combine with old init_parse; also call 177290075Sobrien cxx_init_decl_processing. 177352284Sobrien 177490075Sobrien2001-11-14 Richard Sandiford <rsandifo@redhat.com> 177552284Sobrien 177690075Sobrien * decl.c (check_initializer): Try to complete the type of an 177790075Sobrien array element before checking whether it's complete. Don't 177890075Sobrien complain about arrays with complete element types but an 177990075Sobrien unknown size. 178090075Sobrien (cp_finish_decl): Build the hierarchical constructor before 178190075Sobrien calling maybe_deduce_size_from_array_init. 178252284Sobrien 178390075Sobrien2001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 178452284Sobrien 178590075Sobrien * Make-lang.in: Change all uses of $(manext) to $(man1ext). 178652284Sobrien 178790075Sobrien2001-11-13 Nathan Sidwell <nathan@codesourcery.com> 178852284Sobrien 178990075Sobrien PR g++/4206 179090075Sobrien * parse.y (already_scoped_stmt): Remove. 179190075Sobrien (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 179252284Sobrien 179390075Sobrien2001-11-12 H.J. Lu <hjl@gnu.org> 179452284Sobrien 179590075Sobrien * cvt.c (ocp_convert): Don't warn the address of a weak 179690075Sobrien function is always `true'. 179752284Sobrien 179890075Sobrien2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 179952284Sobrien 180090075Sobrien * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 180190075Sobrien LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 180290075Sobrien LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 180390075Sobrien * cp-tree.h (print_class_statistics): Remove. 180490075Sobrien (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 180590075Sobrien cxx_print_identifier, cxx_set_yydebug): New. 180690075Sobrien * lex.c (set_yydebug): Rename c_set_yydebug. 180790075Sobrien * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 180890075Sobrien lang_print_xnode): Rename. 180990075Sobrien * tree.c (print_lang_statistics): Rename. 181052284Sobrien 181190075Sobrien2001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 181252284Sobrien 181390075Sobrien * class.c (dump_array): Fix format specifier warning. 181452284Sobrien 181590075Sobrien2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 181652284Sobrien 181790075Sobrien * cp-lang.c (LANG_HOOKS_NAME): Override. 181890075Sobrien (struct lang_hooks): Constify. 181990075Sobrien * lex.c (cxx_init_options): Update. 182090075Sobrien (lang_identify): Remove. 182190075Sobrien * parse.y (language_string): Remove. 182252284Sobrien 182390075Sobrien2001-11-08 Andreas Franck <afranck@gmx.de> 182452284Sobrien 182590075Sobrien * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 182690075Sobrien DEMANGLER_CROSS_NAME): Handle program_transform_name the way 182790075Sobrien suggested by autoconf. 182890075Sobrien (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 182990075Sobrien (c++.install-common): Use the transformed target alias names. 183052284Sobrien 183190075Sobrien2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 183252284Sobrien 183390075Sobrien * Make-lang.in: Update. 183490075Sobrien * cp-lang.c: Include langhooks-def.h. 183552284Sobrien 183690075Sobrien2001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 183752284Sobrien 183890075Sobrien * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 183952284Sobrien 184090075Sobrien2001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 184152284Sobrien 184290075Sobrien * lex.c (copy_lang_type): Add static prototype. 184352284Sobrien 184490075Sobrien2001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 184552284Sobrien 184690075Sobrien * pt.c (unify): Handle SCOPE_REF. 184752284Sobrien 184890075Sobrien2001-11-01 Jakub Jelinek <jakub@redhat.com> 184952284Sobrien 185090075Sobrien * tree.c (cp_copy_res_decl_for_inlining): Adjust 185190075Sobrien DECL_ABSTRACT_ORIGIN for the return variable. 185252284Sobrien 185390075Sobrien2001-10-31 Zack Weinberg <zack@codesourcery.com> 185452284Sobrien 185590075Sobrien * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 185652284Sobrien 185790075Sobrien2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 185852284Sobrien 185990075Sobrien * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 186090075Sobrien semantics.c, spew.c: Fix spelling errors. 186152284Sobrien 186290075Sobrien2001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 186352284Sobrien 186490075Sobrien * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 186552284Sobrien 186690075Sobrien2001-10-25 Zack Weinberg <zack@codesourcery.com> 186752284Sobrien 186890075Sobrien * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 186990075Sobrien pop_everything. 187052284Sobrien 187190075SobrienTue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 187252284Sobrien 187390075Sobrien * cp-lang.c (cxx_get_alias_set): New function. 187490075Sobrien Point LANG_HOOKS_GET_ALIAS_SET to it. 187552284Sobrien 187690075Sobrien2001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 187752284Sobrien 187890075Sobrien * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 187990075Sobrien * cp-tree.h (make_unbound_class_template): Prototype new function. 188090075Sobrien * decl.c (make_unbound_class_template): New function. 188190075Sobrien * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 188290075Sobrien * error.c (dump_type): Likewise. 188390075Sobrien * mangle.c (write_type): Likewise. 188490075Sobrien * parse.y (template_parm): Likewise. 188590075Sobrien (template_argument): Use make_unbound_class_template. 188690075Sobrien * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 188790075Sobrien (tsubst): Likewise. 188890075Sobrien (tsubst_copy): Likewise. 188990075Sobrien (unify): Likewise. 189090075Sobrien * tree.c (walk_tree): Likewise. 189190075Sobrien * typeck.c (comptypes): Likewise. 189252284Sobrien 189390075Sobrien2001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 189452284Sobrien 189590075Sobrien * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 189690075Sobrien extra calls into fewer ones. 189752284Sobrien 189890075Sobrien2001-10-18 Alexandre Oliva <aoliva@redhat.com> 189952284Sobrien 190090075Sobrien * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 190190075Sobrien Warn when merging inline with attribute noinline. 190290075Sobrien (start_decl, start_function): Warn if inline and attribute 190390075Sobrien noinline appear in the same declaration. 190452284Sobrien 190590075Sobrien2001-10-16 H.J. Lu <hjl@gnu.org> 190652284Sobrien 190790075Sobrien * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 190890075Sobrien for tree checking disabled. 190952284Sobrien 191090075Sobrien2001-10-16 Hans-Peter Nilsson <hp@axis.com> 191152284Sobrien 191290075Sobrien * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 191390075Sobrien NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 191452284Sobrien 191590075Sobrien2001-10-15 Richard Sandiford <rsandifo@redhat.com> 191652284Sobrien 191790075Sobrien * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 191890075Sobrien (unify): Only handle MINUS_EXPR specially if the above flag is set 191990075Sobrien and the subtracted constant is 1. Clear the flag on recursive calls. 192090075Sobrien Set it when unifying the maximum value in an INTEGER_TYPE's range. 192152284Sobrien 192290075Sobrien2001-10-15 Richard Sandiford <rsandifo@redhat.com> 192352284Sobrien 192490075Sobrien * decl.c (bad_specifiers): Don't allow exception specifications 192590075Sobrien on any typedefs. 192652284Sobrien 192790075Sobrien2001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 192852284Sobrien 192990075Sobrien * cp/lex.c (init_cp_pragma): Similarly. 193052284Sobrien 193190075Sobrien2001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 193252284Sobrien 193390075Sobrien * pt.c (lookup_template_class): Build complete template arguments 193490075Sobrien for BOUND_TEMPLATE_TEMPLATE_PARM. 193552284Sobrien 193690075Sobrien2001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 193752284Sobrien 193890075Sobrien * cp-tree.h (TYPE_BINFO): Update comment. 193990075Sobrien (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 194090075Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 194190075Sobrien (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 194290075Sobrien (copy_type): Prototype new function. 194390075Sobrien * lex.c (copy_lang_decl): Gather tree node statistics. 194490075Sobrien (copy_lang_type): New function. 194590075Sobrien (copy_type): Likewise. 194690075Sobrien (cp_make_lang_type): Create lang_type for 194790075Sobrien BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 194890075Sobrien and BOUND_TEMPLATE_TEMPLATE_PARM. 194990075Sobrien * pt.c (tsubst): Use copy_type instead of copy_node. 195090075Sobrien * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 195152284Sobrien 195290075Sobrien2001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 195352284Sobrien 195490075Sobrien * pt.c (determine_specialization): Ignore functions without 195590075Sobrien DECL_TEMPLATE_INFO. 195652284Sobrien 195790075Sobrien2001-10-12 Nathan Sidwell <nathan@codesourcery.com> 195852284Sobrien 195990075Sobrien PR g++/4476 196090075Sobrien * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 196152284Sobrien 196290075Sobrien2001-10-11 Jason Merrill <jason_merrill@redhat.com> 196352284Sobrien 196490075Sobrien * typeck2.c (store_init_value): Don't re-digest a bracketed 196590075Sobrien initializer. 196652284Sobrien 196790075Sobrien * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 196890075Sobrien ANON_AGGR_TYPE_P. 196952284Sobrien 197090075Sobrien2001-10-11 Richard Henderson <rth@redhat.com> 197152284Sobrien 197290075Sobrien * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 197390075Sobrien of an asm statement. 197490075Sobrien (build_vtbl_ref_1): Split out from build_vtbl_ref. 197590075Sobrien (build_vfn_ref): Use it to handle vtable descriptors before 197690075Sobrien calling build_vtable_entry_ref. 197790075Sobrien * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 197852284Sobrien 197990075Sobrien2001-10-10 Richard Henderson <rth@redhat.com> 198052284Sobrien 198190075Sobrien * parse.y (asm_operand): Allow named operands. 198290075Sobrien * semantics.c (finish_asm_stmt): Tweek for changed location 198390075Sobrien of the operand constrant. 198452284Sobrien 198590075Sobrien2001-10-09 Jason Merrill <jason_merrill@redhat.com> 198652284Sobrien 198790075Sobrien * call.c (standard_conversion): Add bad conversion between 198890075Sobrien integers and pointers. 198990075Sobrien (convert_like_real): Don't use convert_for_initialization for bad 199090075Sobrien conversions; complain here and use cp_convert. 199190075Sobrien (build_over_call): Don't handle bad conversions specially. 199290075Sobrien (perform_implicit_conversion): Allow bad conversions. 199390075Sobrien (can_convert_arg_bad): New fn. 199490075Sobrien * cp-tree.h: Declare it. 199590075Sobrien * typeck.c (convert_for_assignment): Use it. 199690075Sobrien (ptr_reasonably_similar): Any target type is similar to void. 199752284Sobrien 199890075Sobrien2001-10-08 Alexandre Oliva <aoliva@redhat.com> 199952284Sobrien 200090075Sobrien * Make-lang.in (CXX_OBJS): Added cp-lang.o. 200190075Sobrien (cp/cp-lang.o): New rule. 200290075Sobrien * cp-tree.h: Declare hooks. 200390075Sobrien * tree.c: Make hooks non-static. 200490075Sobrien (init_tree): Don't initialize hooks here. 200590075Sobrien * lex.c: Likewise. Move definition of lang_hooks to... 200690075Sobrien * cp-lang.c: ... new file. 200752284Sobrien 200890075Sobrien2001-10-08 Richard Henderson <rth@redhat.com> 200952284Sobrien 201090075Sobrien * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 201190075Sobrien (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 201252284Sobrien 201390075Sobrien2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 201452284Sobrien 201590075Sobrien * class.c (build_vtable_entry_ref): Const-ify. 201690075Sobrien * decl.c (predefined_identifier, 201790075Sobrien initialize_predefined_identifiers): Likewise. 201890075Sobrien * init.c (build_new_1): Likewise. 201990075Sobrien * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 202090075Sobrien Likewise. 202152284Sobrien 202290075Sobrien2001-10-05 Alexandre Oliva <aoliva@redhat.com> 202352284Sobrien 202490075Sobrien * optimize.c (struct inline_data): Moved to ../tree-inline.c. 202590075Sobrien (INSNS_PER_STMT): Likewise. 202690075Sobrien (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 202790075Sobrien (copy_body, initialize_inlined_parameters): Likewise. 202890075Sobrien (declare_return_variable, inlinable_function_p): Likewise. 202990075Sobrien (expand_call_inline, expand_calls_inline): Likewise. 203090075Sobrien (optimize_inline_calls, clone_body): Likewise. 203190075Sobrien * tree.c (walk_tree): Moved to ../tree-inline.c. 203290075Sobrien (walk_tree_without_duplicates): Likewise. 203390075Sobrien (copy_tree_r, remap_save_expr): Likewise. 203452284Sobrien 203590075Sobrien2001-10-04 Alexandre Oliva <aoliva@redhat.com> 203652284Sobrien 203790075Sobrien * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 203890075Sobrien (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 203990075Sobrien * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 204090075Sobrien (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 204190075Sobrien (flag_inline_trees): Moved declaration to ../tree-inline.h. 204290075Sobrien (walk_tree): Moved declaration to ../tree-inline.h. 204390075Sobrien (walk_tree_without_duplicates, copy_tree_r): Likewise. 204490075Sobrien (remap_save_expr): Likewise. 204590075Sobrien * decl.c: Include tree-inline.h. 204690075Sobrien (lang_mark_tree): Don't mark inlined_fns. 204790075Sobrien * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 204890075Sobrien * optimize.c: Include tree-inline.h. 204990075Sobrien (optimize_inline_calls): Move declaration to ../tree.h, as 205090075Sobrien non-static. 205190075Sobrien (remap_decl): Use language-independent constructs and hooks. 205290075Sobrien (remap_block, copy_body_r, declare_return_variable): Likewise. 205390075Sobrien (inlinable_function_p): Likewise. Don't test for 205490075Sobrien DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 205590075Sobrien no longer language-specific. 205690075Sobrien (optimize_inline_calls): Likewise. Make it non-static. Moved 205790075Sobrien call of dump_function to... 205890075Sobrien (optimize_function): Here... 205990075Sobrien (clone_body): New function, extracted from... 206090075Sobrien (maybe_clone_body): ... here. Build decl_map locally and pass 206190075Sobrien it on to clone_body. 206290075Sobrien * pt.c, semantics.c: Include tree-inline.h. 206390075Sobrien * tree.c: Likewise. 206490075Sobrien (cp_walk_subtrees): New language-specific hook for tree inlining. 206590075Sobrien (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 206690075Sobrien cp_is_overload_p, cp_auto_var_in_fn_p, 206790075Sobrien cp_copy_res_decl_for_inlining): Likewise. 206890075Sobrien (walk_tree): Move language-specific constructs into... 206990075Sobrien (cp_walk_subtrees): this new function. 207090075Sobrien (copy_tree_r): Use language-independent constructs and hooks. 207190075Sobrien (init_tree): Initialize tree inlining hooks. 207290075Sobrien (remap_save_expr): Adjust prototype so that the declaration 207390075Sobrien does not require the definition of splay_tree. 207452284Sobrien 207590075Sobrien2001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 207652284Sobrien 207790075Sobrien * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 207890075Sobrien to build the declaration instead of the declaration itself. 207952284Sobrien 208090075Sobrien2001-10-02 Jason Merrill <jason_merrill@redhat.com> 208152284Sobrien 208290075Sobrien * decl2.c (cxx_decode_option): Add 'else'. 208352284Sobrien 208490075Sobrien * spew.c (end_input): No longer static. 208590075Sobrien * cp-tree.h: Declare it. 208690075Sobrien * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 208752284Sobrien 208890075Sobrien2001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 208952284Sobrien 209090075Sobrien * call.c (build_over_call), typeck.c (build_function_call_real): 209190075Sobrien Pass type attributes to check_function_format rather than name or 209290075Sobrien assembler name. Don't require there to be a name or assembler 209390075Sobrien name to check formats. 209452284Sobrien 209590075Sobrien2001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 209652284Sobrien 209790075Sobrien * decl.c (init_decl_processing): Don't call 209890075Sobrien init_function_format_info. Initialize lang_attribute_table 209990075Sobrien earlier. 210090075Sobrien (builtin_function): Call decl_attributes. 210190075Sobrien (insert_default_attributes): New. 210252284Sobrien 210390075Sobrien2001-10-01 Jason Merrill <jason_merrill@redhat.com> 210452284Sobrien 210590075Sobrien * decl.c (grokdeclarator): Copy array typedef handling from C 210690075Sobrien frontend. 210752284Sobrien 210890075Sobrien * decl.c (grokdeclarator): Copy too-large array handling from C 210990075Sobrien frontend. 211052284Sobrien 211190075Sobrien2001-09-29 Alexandre Oliva <aoliva@redhat.com> 211252284Sobrien 211390075Sobrien * config-lang.in (target_libs): Added target-gperf, so that we 211490075Sobrien don't try to build it if C++ is disabled. 211552284Sobrien 211690075Sobrien2001-09-23 Zack Weinberg <zack@codesourcery.com> 211752284Sobrien 211890075Sobrien * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 211990075Sobrien (cp/errfn.o): Delete rule. 212090075Sobrien (cp/error.o): Depend on flags.h. 212190075Sobrien * errfn.c: Delete file. 212290075Sobrien * cp-tree.h: Declare warn_deprecated. Remove definitions of 212390075Sobrien TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 212490075Sobrien and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 212590075Sobrien cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 212690075Sobrien internal_error respectively. Make cp_deprecated into a macro. 212790075Sobrien Don't define cp_printer typedef or declare cp_printers. 212890075Sobrien * error.c: Include flags.h. 212990075Sobrien Delete: struct tree_formatting_info, print_function_argument_list, 213090075Sobrien print_declaration, print_expression, print_function_declaration, 213190075Sobrien print_function_parameter, print_type_id, print_cv_qualifier_seq, 213290075Sobrien print_type_specifier_seq, print_simple_type_specifier, 213390075Sobrien print_elaborated_type_specifier, print_rest_of_abstract_declarator, 213490075Sobrien print_parameter_declaration_clause, print_exception_specification, 213590075Sobrien print_nested_name_specifier, and definition of cp_printers. 213690075Sobrien (locate_error): New function. 213790075Sobrien (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 213890075Sobrien rewritten in terms of locate_error and diagnostic.c. 213990075Sobrien (cp_tree_printer): Rename cp_printer; wire up to *_to_string 214090075Sobrien instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 214190075Sobrien (init_error): Adjust to match. 214252284Sobrien 214390075SobrienSat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 214452284Sobrien 214590075Sobrien * Make-lang.in (CXX_C_OBJS): Add attribs.o. 214652284Sobrien 214790075Sobrien2001-09-21 Richard Henderson <rth@redhat.com> 214852284Sobrien 214990075Sobrien * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 215090075Sobrien (build_vtbl_initializer): Likewise. 215190075Sobrien (build_vfn_ref): New. 215290075Sobrien * cp-tree.h: Declare it. 215390075Sobrien * call.c (build_over_call): Use it. 215490075Sobrien * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 215590075Sobrien * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 215652284Sobrien 215790075SobrienFri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com> 215852284Sobrien 215990075Sobrien * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 216052284Sobrien 216190075Sobrien2001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 216252284Sobrien 216390075Sobrien Table-driven attributes. 216490075Sobrien * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 216590075Sobrien * decl2.c (cplus_decl_attributes): Only take one attributes 216690075Sobrien parameter. 216790075Sobrien * cp-tree.c (cplus_decl_attributes): Update prototype. 216890075Sobrien * class.c (finish_struct), decl.c (start_decl, start_function), 216990075Sobrien decl2.c (grokfield), friend.c (do_friend), parse.y 217090075Sobrien (parse_bitfield): Update calls to cplus_decl_attributes. 217190075Sobrien * decl.c (grokdeclarator): Take a pointer to a single ordinary 217290075Sobrien attribute list. 217390075Sobrien * decl.h (grokdeclarator): Update prototype. 217490075Sobrien * decl2.c (grokfield): Take a single ordinary attribute list. 217590075Sobrien * friend.c (do_friend): Likewise. 217690075Sobrien * decl.c (shadow_tag, groktypename, start_decl, 217790075Sobrien start_handler_parms, grokdeclarator, grokparms, start_function, 217890075Sobrien start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 217990075Sobrien parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 218090075Sobrien (process_template_parm, do_decl_instantiation): Pass single 218190075Sobrien ordinary attribute lists around. 218290075Sobrien * decl.c (grokdeclarator): Correct handling of nested attributes. 218390075Sobrien Revert the patch 218490075Sobrien 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 218590075Sobrien * decl.c (grokdeclarator): Embedded attrs bind to the right, 218690075Sobrien not the left. 218790075Sobrien . 218890075Sobrien * cp-tree.h (cp_valid_lang_attribute): Remove declaration 218990075Sobrien (cp_attribute_table): Declare. 219090075Sobrien * decl.c (valid_lang_attribute): Don't define. 219190075Sobrien (lang_attribute_table): Define. 219290075Sobrien (init_decl_processing): Initialize lang_attribute_table instead of 219390075Sobrien valid_lang_attribute. 219490075Sobrien * tree.c (cp_valid_lang_attribute): Remove. 219590075Sobrien (handle_java_interface_attribute, handle_com_interface_attribute, 219690075Sobrien handle_init_priority_attribute): New functions. 219790075Sobrien (cp_attribute_table): New array. 219890075Sobrien * decl2.c (import_export_class): Don't use 219990075Sobrien targetm.valid_type_attribute. 220052284Sobrien 220190075Sobrien2001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 220252284Sobrien 220396263Sobrien * Make-lang.in (cp/error.o): Depend on real.h 220496263Sobrien * error.c: #include "real.h" 220552284Sobrien 220690075Sobrien2001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 220752284Sobrien 220890075Sobrien * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 220990075Sobrien xmalloc/strcpy/strcat. 221052284Sobrien 221190075Sobrien2001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 221252284Sobrien 221390075Sobrien * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 221490075Sobrien Const-ification. 221590075Sobrien * pt.c (tsubst_decl): Likewise. 221652284Sobrien 221790075Sobrien2001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 221852284Sobrien 221990075Sobrien * decl2.c (lang_f_options): Const-ification. 222090075Sobrien * lex.c (cplus_tree_code_name): Likewise. 222190075Sobrien * spew.c (yyerror): Likewise. 222252284Sobrien 222390075Sobrien2001-09-06 Nathan Sidwell <nathan@codesourcery.com> 222452284Sobrien 222590075Sobrien PR c++/3986 222690075Sobrien * class.c (force_canonical_binfo_r): Check & move an indirect 222790075Sobrien primary base first. 222890075Sobrien (force_canonical_binfo): Check that it's not already 222990075Sobrien canonical. 223090075Sobrien (mark_primary_virtual_base): Remove BINFO parameter. 223190075Sobrien (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 223252284Sobrien 223390075Sobrien2001-09-06 Nathan Sidwell <nathan@codesourcery.com> 223452284Sobrien 223590075Sobrien Remove TYPE_NONCOPIED_PARTS. 223690075Sobrien * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 223790075Sobrien CLASSTYPE_PURE_VIRTUALS. 223890075Sobrien (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 223990075Sobrien * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 224090075Sobrien (layout_class_type): Don't call fixup_inline_methods here ... 224190075Sobrien (finish_struct_1): ... call it here. 224252284Sobrien 224390075Sobrien2001-09-04 Mark Mitchell <mark@codesourcery.com> 224452284Sobrien 224590075Sobrien * decl.c (duplicate_decls): Remove code deadling with 224690075Sobrien DECL_SAVED_INSNS. 224790075Sobrien * decl2.c (finish_file): Likewise. 224890075Sobrien * pt.c (instantiate_decl): Likewise. 224990075Sobrien * semantics.c (expand_body): Don't defer local functions if 225090075Sobrien they wouldn't be deferred for some other reason. Don't 225190075Sobrien generate RTL for functions that will not be emitted. 225290075Sobrien (genrtl_start_function): Remove code deadling with 225390075Sobrien DECL_SAVED_INSNS. 225490075Sobrien (genrtl_finish_function): Likewise. 225552284Sobrien 225690075Sobrien2001-09-04 Nathan Sidwell <nathan@codesourcery.com> 225752284Sobrien 225890075Sobrien PR c++/4203 225990075Sobrien * call.c (build_over_call): Do not optimize any empty base 226090075Sobrien construction. 226152284Sobrien 226290075Sobrien2001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 226352284Sobrien 226490075Sobrien * error.c (dump_template_decl): Output template parameters 226590075Sobrien together with their specifiers. 226690075Sobrien Output `class' prefix for template template parameter. 226790075Sobrien (dump_decl): Fix formatting. 226852284Sobrien 226990075Sobrien2001-08-30 Kurt Garloff <garloff@suse.de> 227052284Sobrien 227190075Sobrien * optimize.c (inlinable_function_p): Allow only smaller single 227290075Sobrien functions. Halve inline limit after reaching recursive limit. 227352284Sobrien 227490075Sobrien2001-08-30 Joern Rennecke <amylaar@redhat.com> 227590075Sobrien Jason Merrill <jason_merrill@redhat.com> 227652284Sobrien 227790075Sobrien * class.c (build_vtable_entry_ref): Subtract in char*, not 227890075Sobrien ptrdiff_t. 227952284Sobrien 228090075Sobrien2001-08-23 Jason Merrill <jason_merrill@redhat.com> 228152284Sobrien 228290075Sobrien * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 228390075Sobrien (build_cplus_array_type): Use cp_build_qualified_type, not 228490075Sobrien TYPE_MAIN_VARIANT, to get an unqualified version. 228552284Sobrien 228690075Sobrien * decl2.c (grok_alignof): Lose. 228790075Sobrien (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 228890075Sobrien * typeck.c (c_alignof): Lose. 228990075Sobrien * semantics.c (finish_sizeof, finish_alignof): New. 229090075Sobrien * parse.y: Use them. 229190075Sobrien * cp-tree.h: Declare them. 229252284Sobrien 229390075Sobrien2001-08-22 Jason Merrill <jason_merrill@redhat.com> 229452284Sobrien 229590075Sobrien * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 229690075Sobrien Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 229790075Sobrien * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 229852284Sobrien 229990075Sobrien2001-08-19 Jakub Jelinek <jakub@redhat.com> 230052284Sobrien 230190075Sobrien * typeck2.c (add_exception_specifier): Only require complete type if 230290075Sobrien not in processing template declaration. 230352284Sobrien 230490075Sobrien2001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 230552284Sobrien 230690075Sobrien * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 230790075Sobrien GNU_xref_start_scope and GNU_xref_end_scope. 230852284Sobrien 230990075Sobrien * tree.c (TYPE_HASH): Moved to ../tree.h. 231052284Sobrien 231190075Sobrien2001-08-16 Mark Mitchell <mark@codesourcery.com> 231252284Sobrien 231390075Sobrien * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 231490075Sobrien on COMPOUND_EXPRs. 231552284Sobrien 231690075Sobrien2001-08-14 Richard Henderson <rth@redhat.com> 231752284Sobrien 231890075Sobrien * class.c, cp-tree.h (build_vfn_ref): Remove. 231990075Sobrien * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 232052284Sobrien 232190075Sobrien2001-08-13 Mark Mitchell <mark@codesourcery.com> 232252284Sobrien 232390075Sobrien * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 232490075Sobrien empty class assignment as having side-effects to avoid 232590075Sobrien spurious warnings. 232652284Sobrien 232790075Sobrien2001-08-13 Zack Weinberg <zackw@panix.com> 232852284Sobrien 232990075Sobrien * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 233090075Sobrien * except.c: Include libfuncs.h. 233152284Sobrien 233290075Sobrien2001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 233352284Sobrien 233490075Sobrien * decl.c (grokdeclarator): Clarify diagnostic message. 233552284Sobrien 233690075Sobrien2001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 233752284Sobrien 233890075Sobrien * decl2.c (do_nonmember_using_decl): Replace using directive 233990075Sobrien with using declaration in the error message. 234052284Sobrien 234190075Sobrien2001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 234252284Sobrien 234390075Sobrien * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 234490075Sobrien criterion to avoid rebuilding expression tree instead of 234590075Sobrien processing_template_decl. 234652284Sobrien 234790075Sobrien2001-08-07 Jason Merrill <jason_merrill@redhat.com> 234852284Sobrien 234990075Sobrien Support named return value optimization for inlines, too. 235090075Sobrien * decl.c (finish_function): Nullify returns here. 235190075Sobrien * semantics.c (genrtl_start_function): Not here. 235290075Sobrien (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 235390075Sobrien (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 235490075Sobrien Also nullify the CLEANUP_STMT for the nrv. 235590075Sobrien * cp-tree.h: Declare it. 235690075Sobrien * optimize.c (declare_return_variable): Replace the nrv with the 235790075Sobrien return variable. 235890075Sobrien * typeck.c (check_return_expr): Be more flexible on alignment check. 235990075Sobrien Ignore cv-quals when checking for a matching type. 236052284Sobrien 236190075Sobrien2001-08-09 Richard Henderson <rth@redhat.com> 236252284Sobrien 236390075Sobrien * decl2.c (finish_objects): Use target hooks instead of 236490075Sobrien assemble_constructor and assemble_destructor. 236552284Sobrien 236690075Sobrien2001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 236752284Sobrien 236890075Sobrien * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 236952284Sobrien 237090075Sobrien2001-08-07 Nathan Sidwell <nathan@codesourcery.com> 237152284Sobrien 237290075Sobrien PR c++/3820 237390075Sobrien Stop using TYPE_NONCOPIED_PARTS. 237490075Sobrien * call.c (build_over_call): Be careful when copy constructing 237590075Sobrien or assigning to an empty class. 237690075Sobrien * class.c (check_bases_and_members): It has a 237790075Sobrien COMPLEX_ASSIGN_REF if it has a vptr. 237890075Sobrien (layout_class_type): Don't add empty class padding to 237990075Sobrien TYPE_NONCOPIED_PARTS. 238090075Sobrien (finish_struct_1): Don't add the VFIELD either. 238190075Sobrien * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 238290075Sobrien initialization. 238352284Sobrien 238490075Sobrien2001-08-07 Jason Merrill <jason_merrill@redhat.com> 238552284Sobrien 238690075Sobrien * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 238752284Sobrien 238890075Sobrien2001-08-06 Richard Henderson <rth@redhat.com> 238952284Sobrien 239090075Sobrien * decl2.c (finish_objects): Pass a symbol_ref and priority to 239190075Sobrien assemble_{constructor,destructor}. Remove priority handling. 239252284Sobrien 239390075Sobrien2001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 239452284Sobrien 239590075Sobrien Don't allow template-id in using-declaration. 239690075Sobrien * decl2.c (validate_nonmember_using_decl): Handle template-ids. 239790075Sobrien (do_class_using_decl): Likewise. 239852284Sobrien 239990075Sobrien2001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 240052284Sobrien 240190075Sobrien * cp/spew.c (read_token): No need to pop buffers. 240252284Sobrien 240390075Sobrien2001-08-02 Stan Shebs <shebs@apple.com> 240452284Sobrien 240590075Sobrien * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 240690075Sobrien (fnaddr_from_vtable_entry): Remove decl. 240790075Sobrien * method.c (use_thunk): Update comment. 240852284Sobrien 240990075Sobrien2001-08-01 Andrew Cagney <ac131313@redhat.com> 241052284Sobrien 241190075Sobrien * repo.c (get_base_filename): Change return value to const char 241290075Sobrien pointer. 241352284Sobrien 241490075Sobrien2001-08-02 Nathan Sidwell <nathan@codesourcery.com> 241552284Sobrien 241690075Sobrien Kill -fhonor-std. 241790075Sobrien * NEWS: Document. 241890075Sobrien * cp-tree.h (flag_honor_std): Remove. 241990075Sobrien (CPTI_FAKE_STD): Remove. 242090075Sobrien (std_node): Remove comment about it being NULL. 242190075Sobrien (fake_std_node): Remove. 242290075Sobrien * decl.c (in_fake_std): Remove. 242390075Sobrien (walk_namespaces_r): Remove fake_std_node check. 242490075Sobrien (push_namespace): Remove in_fake_std code. 242590075Sobrien (pop_namespace): Likewise. 242690075Sobrien (lookup_name_real): Remove fake_std_node check. 242790075Sobrien (init_decl_processing): Always create std_node. Always add 242890075Sobrien std:: things there. 242990075Sobrien (builtin_function): Always put non '_' fns in std. 243090075Sobrien * decl2.c (flag_honor_std): Remove. 243190075Sobrien (lang_f_options): Remove honor-std. 243290075Sobrien (unsupported_options): Add honor-std. 243390075Sobrien (set_decl_namespace): Remove fake_std_node check. 243490075Sobrien (validate_nonmember_using_decl): Likewise. 243590075Sobrien (do_using_directive): Likewise. 243690075Sobrien (handle_class_head): Likewise. 243790075Sobrien * dump.c (cp_dump_tree): Likewise. 243890075Sobrien * except.c (init_exception_processing): Adjust. 243990075Sobrien * init.c (build_member_call): Remove fake_std_node check. 244090075Sobrien (build_offset_ref): Likewise. 244190075Sobrien * lang-options.h: Remove -fhonor-std, -fno-honor-std. 244290075Sobrien * rtti.c (init_rtti_processing): Adjust. 244352284Sobrien 244490075Sobrien2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 244552284Sobrien 244690075Sobrien * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 244790075Sobrien operand while calling cp_tree_equal. 244852284Sobrien 244990075Sobrien2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 245052284Sobrien 245190075Sobrien The 3.0 ABI no longer has vbase pointer fields. 245290075Sobrien * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 245390075Sobrien FORMAT_VBASE_NAME): Remove. 245490075Sobrien * method.c (do_build_copy_constructor): Adjust. 245590075Sobrien (do_build_assign_ref): Adjust. 245690075Sobrien * search.c (lookup_field_r): Adjust. 245790075Sobrien * typeck.c (build_component_ref): Adjust. 245852284Sobrien 245990075Sobrien The 3.0 ABI always has a vtable pointer at the start of every 246090075Sobrien polymorphic class. 246190075Sobrien * rtti.c (build_headof_sub): Remove. 246290075Sobrien (build_headof): Adjust. 246390075Sobrien (get_tinfo_decl_dynamic): No need to check flag_rtti 246490075Sobrien here. Adjust. 246590075Sobrien (create_real_tinfo_var): Explain why we need a hidden name. 246652284Sobrien 246790075Sobrien2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 246852284Sobrien 246990075Sobrien PR c++/3631 247090075Sobrien * class.c (update_vtable_entry_for_fn): The fixed adjustment 247190075Sobrien of a virtual thunk should be from declaring base. 247252284Sobrien 247390075Sobrien2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 247452284Sobrien 247590075Sobrien * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 247690075Sobrien the shared virtual base, so preserving inheritance graph order. 247748743Sobrien 247890075Sobrien2001-07-30 Andreas Jaeger <aj@suse.de> 247948743Sobrien 248090075Sobrien * decl2.c: Remove unused var global_temp_name_counter. 248148743Sobrien 248290075Sobrien2001-07-28 Richard Henderson <rth@redhat.com> 248352284Sobrien 248490075Sobrien * method.c (pending_inlines): Remove. 248552284Sobrien 248690075Sobrien2001-07-27 Nathan Sidwell <nathan@codesourcery.com> 248752284Sobrien 248890075Sobrien * class.c (mark_primary_virtual_base): Don't adjust base 248990075Sobrien offsets here. 249090075Sobrien (dfs_unshared_virtual_bases): Adjust them here. 249190075Sobrien (mark_primary_bases): Explain why we adjust at the end. 249252284Sobrien 249390075Sobrien2001-07-27 Nathan Sidwell <nathan@codesourcery.com> 249452284Sobrien 249590075Sobrien * class.c (finish_struct_1): When copying the primary base's 249690075Sobrien VFIELD, make sure we find it is at offset zero. 249752284Sobrien 249890075Sobrien2001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 249952284Sobrien 250090075Sobrien * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 250190075Sobrien tsubst_expr for default template arguments. 250252284Sobrien 250390075Sobrien2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 250452284Sobrien 250590075Sobrien PR c++/3621 250690075Sobrien * spew.c (yylex): Only copy the token's lineno, if it is 250790075Sobrien non-zero. 250852284Sobrien 250990075Sobrien2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 251052284Sobrien 251190075Sobrien PR c++/3624 251290075Sobrien * call.c (resolve_args): Simplify, call 251390075Sobrien convert_from_reference. 251490075Sobrien (build_new_op): Resolve and convert from reference ARG1 251590075Sobrien earlier. Adjust ARG2 & ARG3 resolve and conversion. 251652284Sobrien 251790075Sobrien2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 251852284Sobrien 251990075Sobrien * decl.c (last_function_parm_tags): Remove. 252090075Sobrien (current_function_parm_tags): Remove. 252190075Sobrien (init_decl_processing): Adjust. 252290075Sobrien (start_function): Adjust. 252390075Sobrien (store_parm_decls): Adjust. 252452284Sobrien 252590075Sobrien PR c++/3152 252690075Sobrien * decl.c (grokdeclarator): Detect when a function typedef is 252790075Sobrien declaring a function, and create last_function_parms correctly. 252852284Sobrien 252990075Sobrien2001-07-25 Jason Merrill <jason_merrill@redhat.com> 253052284Sobrien 253190075Sobrien * call.c (joust): Only prefer a non-builtin candidate to a builtin 253290075Sobrien one if they have the same signature. 253352284Sobrien 253490075Sobrien * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 253590075Sobrien it rather than toplevel_bindings_p. Give it a mangled name if static. 253690075Sobrien (convert_to_reference): Adjust. 253790075Sobrien * decl2.c (get_temp_name): Lose. 253890075Sobrien * mangle.c (mangle_ref_init_variable): New fn. 253990075Sobrien (mangle_guard_variable): Strip the ref-init header. 254090075Sobrien * cp-tree.h: Adjust. 254190075Sobrien * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 254290075Sobrien initializer. 254390075Sobrien (grok_reference_init): Always use DECL_INITIAL. 254452284Sobrien 254590075Sobrien2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 254652284Sobrien 254790075Sobrien PR c++/3416 254890075Sobrien * call.c (build_conditional_expr): Recheck args after 254990075Sobrien conversions. 255090075Sobrien * cp-tree.h (build_conditional_expr): Move to correct file. 255190075Sobrien * typeck.c (decay_conversion): Diagnose any unknown types 255290075Sobrien reaching here. 255390075Sobrien (build_binary_op): Don't do initial decay or default 255490075Sobrien conversions on overloaded functions. 255590075Sobrien (build_static_cast): Don't do a decay conversion here. 255652284Sobrien 255790075Sobrien2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 255852284Sobrien 255990075Sobrien PR c++/3543 256090075Sobrien * typeck.c (condition_conversion): Resolve an OFFSET_REF. 256190075Sobrien * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 256252284Sobrien 256390075Sobrien2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 256452284Sobrien 256590075Sobrien * class.c (build_vtbl_or_vbase_field): Remove, move into ... 256690075Sobrien (create_vtbl_ptr): ... here. 256752284Sobrien 256890075Sobrien2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 256952284Sobrien 257090075Sobrien * class.c (build_vbase_offset_vbtl_entries): Look for 257190075Sobrien non-primary base of which we are a sub vtable. 257252284Sobrien 257390075Sobrien2001-07-24 Phil Edwards <pme@sources.redhat.com> 257452284Sobrien 257590075Sobrien * semantics.c (finish_this_expr): Remove unused code. 257652284Sobrien 257790075Sobrien2001-07-24 Nathan Sidwell <nathan@codesourcery.com> 257852284Sobrien 257990075Sobrien Simplify rtti, now we've only one ABI. 258090075Sobrien * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 258190075Sobrien CPTI_TINFO_VAR_ID. 258290075Sobrien (tinfo_decl_id, tinfo_var_id): Remove. 258390075Sobrien (get_typeid_1): Remove. 258490075Sobrien * rtti.c 258590075Sobrien (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 258690075Sobrien (typeid_ok_p): New function. 258790075Sobrien (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 258890075Sobrien (get_tinfo_decl): Remove old abi documentation. 258990075Sobrien (tinfo_from_decl): Remove. 259090075Sobrien (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 259190075Sobrien (get_typeid_1): Remove. 259290075Sobrien (get_base_offset): Remove. 259390075Sobrien (synthesize_tinfo_var): Absorb get_base_offset. 259490075Sobrien (create_real_tinfo_var): Don't use tinfo_decl_id. 259552284Sobrien 259690075Sobrien2001-07-23 Graham Stott <grahams@redhat.com> 259752284Sobrien 259890075Sobrien * cp/class.c (type_requires_array_cookie): Fix use of uninitialised 259990075Sobrien variable has_two_argument_delete_p. 260052284Sobrien 260190075Sobrien2001-07-21 Nathan Sidwell <nathan@codesourcery.com> 260252284Sobrien 260390075Sobrien Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 260490075Sobrien * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 260590075Sobrien (CPTI_INDEX_IDENTIFIER): Remove. 260690075Sobrien (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 260790075Sobrien (delta2_identifier): Remove. 260890075Sobrien (index_identifier): Remove. 260990075Sobrien (pfn_or_delta2_identifier): Remove. 261090075Sobrien (flag_vtable_thunks): Remove. 261190075Sobrien (VTABLE_DELTA2_NAME): Remove. 261290075Sobrien (VTABLE_INDEX_NAME): Remove. 261390075Sobrien (FNADDR_FROM_VTABLE_ENTRY): Adjust. 261490075Sobrien (vfunc_ptr_type_node): Adjust. 261590075Sobrien (VTABLE_NAME_PREFIX): Adjust. 261690075Sobrien (build_vfn_ref): Lose first parameter. 261790075Sobrien (fixup_all_virtual_upcast_offsets): Remove. 261890075Sobrien * decl.c (initialize_predefined_identifiers): Remove 261990075Sobrien delta2_identifier, index_identifier, pfn_or_delta2_identifier. 262090075Sobrien (init_decl_processing): Remove no-vtable-thunk code. 262190075Sobrien * decl2.c (flag_vtable_thunks): Remove. 262290075Sobrien (mark_vtable_entries): Remove no-vtable-thunk code. 262390075Sobrien * error.c (dump_decl): Remove no-vtable-thunk code. 262490075Sobrien (dump_expr): Adjust ptr to member function code. 262590075Sobrien * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 262690075Sobrien code. 262790075Sobrien * rtti.c (build_headof): Remove no-vtable-thunk code. 262890075Sobrien (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 262990075Sobrien * search.c (get_base_distance): Remove expand_upcast_fixups case. 263090075Sobrien (virtual_context) Remove. 263190075Sobrien (expand_upcast_fixups): Remove. 263290075Sobrien (fixup_virtual_upcast_offsets): Remove. 263390075Sobrien (fixup_all_virtual_upcast_offsets): Remove. 263490075Sobrien * typeck.c (get_member_function_from_ptrfunc): Remove 263590075Sobrien no-vtable-thunk code. 263690075Sobrien * call.c (build_over_call): Adjust call to build_vfn_ref. 263790075Sobrien * class.c (build_vfn_ref): Lose first parameter. Remove 263890075Sobrien no-vtable-thunk code. 263990075Sobrien (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 264090075Sobrien (build_vtable_entry): Remove no-vtable-thunk code. 264152284Sobrien 264290075Sobrien2001-07-20 Nathan Sidwell <nathan@codesourcery.com> 264352284Sobrien 264490075Sobrien Remove old-abi remnants. Remove comments about old abi 264590075Sobrien behaviour. Remove references to 'new-abi' in comments. 264690075Sobrien * cp-tree.h: Adjust comments. 264790075Sobrien (vbase_offsets_in_vtable_p): Delete. 264890075Sobrien (vcall_offsets_in_vtable_p): Delete. 264990075Sobrien (vptrs_present_everywhere_p): Delete. 265090075Sobrien (all_overridden_vfuns_in_vtables_p): Delete. 265190075Sobrien (merge_primary_and_secondary_vtables_p): Delete. 265290075Sobrien (TYPE_CONTAINS_VPTR_P): Adjust. 265390075Sobrien (VTT_NAME_PREFIX): Remove. 265490075Sobrien (CTOR_VTBL_NAME_PREFIX): Remove. 265590075Sobrien (init_vbase_pointers): Remove. 265690075Sobrien * class.c: Adjust coments. 265790075Sobrien (build_vbase_pointer_fields): Delete. 265890075Sobrien (build_vbase_pointer): Remove old-abi code. 265990075Sobrien (build_secondary_vtable): Likewise. 266090075Sobrien (modify_all_vtables): Likewise. 266190075Sobrien (create_vtable_ptr): Likewise. 266290075Sobrien (layout_class_type): Likewise. 266390075Sobrien (finish_struct_1): Likewise. 266490075Sobrien (finish_vtbls): Likewise. 266590075Sobrien (dfs_finish_vtbls): Delete. 266690075Sobrien (build_vbase_offset_vtbl_entries): Remove old-abi code. 266790075Sobrien * cvt.c: Adjust comments. 266890075Sobrien * decl.c: Adjust comments. 266990075Sobrien * decl2.c: Adjust comments. 267090075Sobrien * init.c: Adjust comments. 267190075Sobrien (construct_virtual_bases): Remove old-abi code. 267290075Sobrien * lang-specs.h: Remove -fno-new-abi. 267390075Sobrien * mangle.c: Adjust comments. 267490075Sobrien * rtti.c: Adjust comments. 267590075Sobrien (get_base_offset): Remove old-abi-code. 267690075Sobrien * search.c: Adjust comments. 267790075Sobrien (dfs_init_vbase_pointers): Remove. 267890075Sobrien (dfs_vtable_path_unmark): Remove. 267990075Sobrien (init_vbase_pointers): Remove. 268090075Sobrien * semantics.c: Adjust comments. 268190075Sobrien (emit_associated_thunks): Remove old-abi code. 268290075Sobrien * typeck.c: Adjust comments. 268352284Sobrien 268490075Sobrien2001-07-20 Daniel Berlin <dan@cgsoftware.com> 268552284Sobrien 268690075Sobrien * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 268790075Sobrien params.h. 268852284Sobrien 268990075Sobrien2001-07-19 Mark Mitchell <mark@codesourcery.com> 269052284Sobrien 269190075Sobrien * class.c (finish_struct_anon): Forbid nested classes. 269252284Sobrien 269390075Sobrien2001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 269452284Sobrien 269590075Sobrien * decl2.c: Don't include dwarfout.h and dwarf2out.h. 269690075Sobrien * optimize.c: Include debug.h. 269790075Sobrien (maybe_clone_body): Use debug hook. 269890075Sobrien * semantics.c: Include debug.h. 269990075Sobrien (expand_body): Use debug hook. 270052284Sobrien 270190075Sobrien2001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 270252284Sobrien 270390075Sobrien * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 270452284Sobrien 270590075Sobrien2001-07-18 Mark Mitchell <mark@codesourcery.com> 270652284Sobrien 270790075Sobrien * class.c (type_requires_array_cookie): New function. 270890075Sobrien (check_methods): Don't try to figure out whether the type needs a 270990075Sobrien cookie here. 271090075Sobrien (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 271190075Sobrien * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 271290075Sobrien (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 271390075Sobrien * pt.c (instantiate_class_template): Don't set 271490075Sobrien TYPE_VEC_DELETE_TAKES_SIZE. 271590075Sobrien * NEWS: Document ABI changes from GCC 3.0. 271652284Sobrien 271790075Sobrien2001-07-18 Xavier Delacour <xavier@fmaudio.net>, 271890075Sobrien Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 271952284Sobrien 272090075Sobrien * NEWS (Changes in GCC 3.0): Fix typo. 272152284Sobrien 272290075Sobrien2001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 272352284Sobrien 272490075Sobrien * decl2.c (cplus_decl_attributes): Take a pointer to the node to 272590075Sobrien which attributes are to be attached, and a flags argument. Update 272690075Sobrien call to decl_attributes. 272790075Sobrien (grokfield): Update call to decl_attributes. 272890075Sobrien * class.c (finish_struct): Update call to cplus_decl_attributes. 272990075Sobrien * cp-tree.h (cplus_decl_attributes): Update prototype. 273090075Sobrien * decl.c (start_decl, grokdeclarator, start_function): Update 273190075Sobrien calls to decl_attributes and cplus_decl_attributes. 273290075Sobrien * friend.c (do_friend): Update call to cplus_decl_attributes. 273390075Sobrien * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 273452284Sobrien 273590075Sobrien2001-07-12 Mark Mitchell <mark@codesourcery.com> 273652284Sobrien 273790075Sobrien * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 273890075Sobrien for `register' variables with an asm-specification. 273952284Sobrien 274090075Sobrien2001-07-11 Mark Mitchell <mark@codesourcery.com> 274152284Sobrien 274290075Sobrien * semantics.c (finish_asm_stmt): Mark the output operands 274390075Sobrien to an asm addressable, if necessary. 274452284Sobrien 274590075Sobrien2001-07-11 Ben Elliston <bje@redhat.com> 274648743Sobrien 274790075Sobrien * Revert this change -- there is a subtle bug. 274818334Speter 274990075Sobrien PR c++/80 275090075Sobrien * decl.c (finish_enum): New "attributes" argument; pass it to 275190075Sobrien cplus_decl_attributes. Use a narrower type if the enum is packed. 275290075Sobrien * cp-tree.h (finish_enum): Adjust prototype. 275390075Sobrien * parse.y (enum_head): New non-terminal. 275490075Sobrien (structsp): Use it. Enums now may be preceded or followed by 275590075Sobrien optional attributes -- pass their chained tree to finish_enum(). 275690075Sobrien * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 275718334Speter 275890075Sobrien2001-07-10 Mark Mitchell <mark@codesourcery.com> 275952284Sobrien 276090075Sobrien * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 276190075Sobrien variables. 276252284Sobrien 276390075Sobrien2001-07-10 Jason Merrill <jason_merrill@redhat.com> 276452284Sobrien 276590075Sobrien * semantics.c (cp_expand_stmt): Fix for null 276690075Sobrien current_function_return_value. 276752284Sobrien 276890075Sobrien2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 276952284Sobrien 277090075Sobrien * call.c (build_op_delete_call): Initialize fn. 277190075Sobrien (convert_like_real): Delete conditional. 277290075Sobrien (joust): Initialize *w and *l. 277390075Sobrien * class.c: Add prototype for binfo_ctor_vtable. 277490075Sobrien (get_primary_binfo): Initialize result. 277590075Sobrien * init.c (build_java_class_ref): Initialize name. 277652284Sobrien 277790075Sobrien2001-07-09 Erik Rozendaal <dlr@acm.org> 277852284Sobrien 277990075Sobrien * typeck.c (unary_complex_lvalue): Do not duplicate the 278090075Sobrien argument to modify, pre-, or post-increment when used as an 278190075Sobrien lvalue and when the argument has side-effects. 278252284Sobrien 278390075Sobrien2001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 278452284Sobrien 278590075Sobrien * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 278690075Sobrien (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 278790075Sobrien cplus_decl_attributes even if attrs is NULL. 278890075Sobrien * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 278952284Sobrien 279090075Sobrien2001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 279152284Sobrien 279290075Sobrien * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 279390075Sobrien calls to decl_attributes. 279452284Sobrien 279590075Sobrien2001-07-06 Ira Ruben <ira@apple.com> 279652284Sobrien 279790075Sobrien * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 279890075Sobrien be DECL_TEMPLATE_RESULT. 279952284Sobrien 280090075Sobrien2001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 280152284Sobrien 280290075Sobrien * cp-tree.h (copy_template_template_parm): Rename to ... 280390075Sobrien (bind_template_template_parm): ... here. 280490075Sobrien * tree.c (copy_template_template_parm): Rename to ... 280590075Sobrien (bind_template_template_parm): ... here. Remove the case when 280690075Sobrien NEWARGS is NULL_TREE. 280790075Sobrien (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 280890075Sobrien BOUND_TEMPLATE_TEMPLATE_PARM. 280990075Sobrien * pt.c (lookup_template_class): Adjust. 281052284Sobrien 281190075Sobrien2001-07-05 Jason Merrill <jason_merrill@redhat.com> 281252284Sobrien 281390075Sobrien * cvt.c (convert_lvalue): New fn. 281490075Sobrien * cp-tree.h: Declare it. 281590075Sobrien * method.c (do_build_assign_ref): Use it. 281690075Sobrien (do_build_copy_constructor): Convert parm to base types 281790075Sobrien before calling base constructors. 281852284Sobrien 281990075Sobrien * typeck.c (check_return_expr): Check DECL_ALIGN instead of 282090075Sobrien DECL_USER_ALIGN. Check flag_elide_constructors instead of 282190075Sobrien optimize. 282290075Sobrien * semantics.c (cp_expand_stmt): Don't destroy the named return value. 282352284Sobrien 282490075Sobrien2001-07-02 Nathan Sidwell <nathan@codesourcery.com> 282552284Sobrien 282690075Sobrien * optimize.c (optimize_inline_calls): New function, broken out 282790075Sobrien of ... 282890075Sobrien (optimize_function): ... here. Call it. Don't inline if it is 282990075Sobrien a thunk. 283090075Sobrien (dump_function): Print name of dump flag causing this dump. 283190075Sobrien * semantics.c (expand_body): Move thunk inline check to 283290075Sobrien optimize_function. 283352284Sobrien 283490075Sobrien2001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 283552284Sobrien 283690075Sobrien * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 283790075Sobrien (comptypes): Use target.comp_type_attributes. 283852284Sobrien 283990075Sobrien2001-06-29 Nathan Sidwell <nathan@codesourcery.com> 284052284Sobrien 284190075Sobrien * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 284252284Sobrien 284390075Sobrien2001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 284452284Sobrien 284590075Sobrien * error.c (lang_print_error_function): Add a `diagnostic_context *' 284690075Sobrien parameter. Tweak. 284752284Sobrien 284890075Sobrien2001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 284952284Sobrien 285090075Sobrien * decl2.c (import_export_class): Update. 285152284Sobrien 285290075Sobrien2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 285352284Sobrien 285490075Sobrien * error.c (init_error): Adjust settings. 285552284Sobrien 285690075Sobrien2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 285752284Sobrien 285890075Sobrien * error.c (init_error): Adjust settings. 285952284Sobrien 286090075Sobrien2001-06-19 Richard Sandiford <rsandifo@redhat.com> 286152284Sobrien 286290075Sobrien * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 286390075Sobrien return pointers to data members by reference rather than by value. 286452284Sobrien 286590075Sobrien2001-06-18 Jason Merrill <jason_merrill@redhat.com> 286652284Sobrien 286790075Sobrien Implement the Named Return Value optimization. 286890075Sobrien * cp-tree.h (struct cp_language_function): Add x_return_value. 286990075Sobrien (current_function_return_value): Now a macro. 287090075Sobrien * decl.c: Don't define it. 287190075Sobrien (define_label, finish_case_label): Don't clear it. 287290075Sobrien (init_decl_processing): Don't register it with GC. 287390075Sobrien * semantics.c (genrtl_finish_function): Don't check it for 287490075Sobrien no_return_label. Copy the RTL from the return value to 287590075Sobrien current_function_return_value and walk, calling... 287690075Sobrien (nullify_returns_r): ...this new fn. 287790075Sobrien * typeck.c (check_return_expr): Set current_function_return_value. 287852284Sobrien 287990075Sobrien2001-06-15 Jason Merrill <jason_merrill@redhat.com> 288052284Sobrien 288190075Sobrien * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 288290075Sobrien sharing a ctor vtable with. Merge code for cases 1 and 2. 288390075Sobrien (binfo_ctor_vtable): New fn. 288490075Sobrien (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 288552284Sobrien 288690075Sobrien2001-06-14 Jason Merrill <jason_merrill@redhat.com> 288752284Sobrien 288890075Sobrien * class.c (dfs_find_final_overrider): Fix logic. 288952284Sobrien 289090075Sobrien * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 289190075Sobrien virtual thunk instead of non-virtual. 289290075Sobrien (get_matching_virtual): Uncomment. 289352284Sobrien 289490075Sobrien * pt.c (unify): Don't recurse between the POINTER_TYPE and the 289590075Sobrien OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 289690075Sobrien PARM, not ARG. 289752284Sobrien 289890075Sobrien2001-06-14 Nathan Sidwell <nathan@codesourcery.com> 289952284Sobrien 290090075Sobrien * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 290190075Sobrien we've not emerged from the hierarchy of RTTI_BINFO on reaching 290290075Sobrien a non-virtual base. 290352284Sobrien 290490075Sobrien2001-06-13 Mark Mitchell <mark@codesourcery.com> 290552284Sobrien 290690075Sobrien * NEWS: Update release number. 290752284Sobrien 290890075Sobrien2001-06-12 Nathan Sidwell <nathan@codesourcery.com> 290952284Sobrien 291090075Sobrien PR c++/3130, c++/3131, c++/3132 291190075Sobrien * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 291290075Sobrien * class.c (force_canonical_binfo_r): Move 291390075Sobrien BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 291490075Sobrien virtual bases unless they're primary and what they're primary 291590075Sobrien too has been moved. 291690075Sobrien (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 291790075Sobrien with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 291890075Sobrien BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 291990075Sobrien derived binfo. 292090075Sobrien (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 292190075Sobrien (layout_nonempty_base_or_field): Add most derived type 292290075Sobrien parameter. Adjust. 292390075Sobrien (layout_empty_base): Likewise. 292490075Sobrien (build_base_field): Likewise. 292590075Sobrien (build_base_fields): Likewise. 292690075Sobrien (propagate_binfo_offsets): Add most derived type 292790075Sobrien parameter. Skip non canonical virtual bases too. 292890075Sobrien (dfs_set_offset_for_unshared_vbases): Don't skip primary 292990075Sobrien bases. Do skip canonical bases. 293090075Sobrien (layout_virtual_bases): Adjust. 293190075Sobrien (layout_class_type): Adjust. 293290075Sobrien (dfs_get_primary_binfo): Build list of virtual primary base 293390075Sobrien candidates. 293490075Sobrien (get_primary_binfo): Check that the shared virtual primary 293590075Sobrien base candidate was found first. 293690075Sobrien (accumulate_vtbl_inits): Don't do anything for non-vptr 293790075Sobrien containing binfos. For case 1 primary virtual bases, keep 293890075Sobrien checking that we've not emerged from the hierarchy of RTTI_BINFO. 293952284Sobrien 294090075Sobrien2001-06-12 Nathan Sidwell <nathan@codesourcery.com> 294152284Sobrien 294290075Sobrien PR c++/3089 294390075Sobrien * class.c (dfs_accumulate_vtbl_inits): Always walk down the 294490075Sobrien hierarchy looking for primary bases for a ctor 294590075Sobrien vtable. Recursively call oneself, if we meet our primary via 294690075Sobrien this route and haven't met it yet via inheritance graph order. 294752284Sobrien 294890075Sobrien2001-06-11 Mark Mitchell <mark@codesourcery.com> 294952284Sobrien 295090075Sobrien * lang-options.h: Emit documentation for -fno-honor-std, not 295190075Sobrien -fhonor-std. 295252284Sobrien 295390075Sobrien2001-06-10 Alexandre Oliva <aoliva@redhat.com> 295452284Sobrien 295590075Sobrien * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 295690075Sobrien Don't clobber delta. 295790075Sobrien (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 295852284Sobrien 295990075Sobrien2001-06-10 Mark Mitchell <mark@codesourcery.com> 296090075Sobrien Gabriel Dos Reis <gdr@codesourcery.com> 296152284Sobrien 296290075Sobrien * Make-lang.in (cp/call.o): Depend on diagnostic.h 296390075Sobrien (cp/typeck.o): Depend on diagnostic.h 296490075Sobrien (cp/typeck2.o): Depend on diagnostic.h 296590075Sobrien (cp/repo.o): Depend on dignostic.h 296690075Sobrien * typeck.c: #include diagnostic.h 296790075Sobrien (convert_for_initialization): Remove extern declaration for 296890075Sobrien warningcount and errorcount. 296952284Sobrien 297090075Sobrien * call.c: #include diagnostic.h 297190075Sobrien (convert_like_real): Remove extern declaration for warnincount and 297290075Sobrien errorcount. 297352284Sobrien 297490075Sobrien * repo.c: #include diagnostic.h 297590075Sobrien * typeck2.c: #include diagnostic.h 297652284Sobrien 297790075Sobrien2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 297852284Sobrien 297990075Sobrien * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 298090075Sobrien in previous change. 298152284Sobrien 298290075Sobrien2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 298352284Sobrien 298490075Sobrien PR c++/2929 298590075Sobrien * friend.c (do_friend): Use push_decl_namespace for classes at 298690075Sobrien namespace scope. 298752284Sobrien 298890075Sobrien2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 298990075Sobrien Jason Merrill <jason_merrill@redhat.com> 299052284Sobrien 299190075Sobrien PR c++/3061 299290075Sobrien * class.c (build_secondary_vtable): Use assert, rather than an error 299390075Sobrien message. 299490075Sobrien (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 299590075Sobrien (dfs_accumulate_vtbl_inits): A lost primary virtual base may 299690075Sobrien be between ORIG_BINFO and RTTI_BINFO, but neither of them. 299790075Sobrien Don't set BINFO_VTABLE for a primary virtual base. 299852284Sobrien 299990075Sobrien2001-06-07 Mark Mitchell <mark@codesourcery.com> 300052284Sobrien 300190075Sobrien * decl.c (duplicate_decls): Update source position information 300290075Sobrien when a template function is defined. 300352284Sobrien 300490075Sobrien2001-06-07 Phil Edwards <pme@sources.redhat.com> 300552284Sobrien 300690075Sobrien * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 300752284Sobrien 300890075Sobrien2001-06-07 Nathan Sidwell <nathan@codesourcery.com> 300952284Sobrien 301090075Sobrien PR c++/2914 301190075Sobrien * decl.c (pushtag): Don't push into a complete type's scope. 301252284Sobrien 301390075Sobrien2001-06-06 Jason Merrill <jason_merrill@redhat.com> 301452284Sobrien 301590075Sobrien * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 301690075Sobrien (struct lang_decl_flags): Lose generate_with_vtable_p. 301790075Sobrien (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 301890075Sobrien * class.c (copy_virtuals): Adjust. 301990075Sobrien * decl2.c (mark_vtable_entries): Adjust. 302090075Sobrien * method.c (make_thunk, build_vtable_entry): Adjust. 302190075Sobrien * class.c (update_vtable_entry_for_fn): Only look as far as the 302290075Sobrien first defining class. 302390075Sobrien (build_vtbl_initializer): Put nothing in the slot for a function only 302490075Sobrien defined in a lost primary virtual base. 302590075Sobrien (add_vcall_offset_vtbl_entries_1): Use the same code for 302690075Sobrien the lost primary case and the normal case. 302790075Sobrien (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 302890075Sobrien (get_vfield_offset, get_derived_offset): Lose. 302990075Sobrien (dfs_find_final_overrider): Use look_for_overrides_here. 303090075Sobrien (get_matching_virtual): New fn. 303190075Sobrien * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 303290075Sobrien not BV_VCALL_INDEX. 303390075Sobrien * search.c (look_for_overrides_here): Split out from... 303490075Sobrien (look_for_overrides_r): Here. 303552284Sobrien 303690075Sobrien * class.c (find_final_overrider): Return error_mark_node on error. 303752284Sobrien 303890075Sobrien * decl2.c (key_method): #if 0 accidental change. 303952284Sobrien 304090075Sobrien2001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 304152284Sobrien 304290075Sobrien * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 304390075Sobrien (build_over_call): Likewise. 304490075Sobrien * decl.c (grokparms): Likewise. 304590075Sobrien * pt.c (tsubst_decl): Likewise. 304690075Sobrien * typeck.c (convert_arguments): Likewise. 304752284Sobrien 304890075Sobrien2001-06-05 Mark Mitchell <mark@codesourcery.com> 304952284Sobrien 305090075Sobrien * semantics.c (begin_class_definition): Robustify. 305152284Sobrien 305290075Sobrien * pt.c (instantiate_decl): Tell the repository code about the 305390075Sobrien clones, not the cloned functions. 305490075Sobrien * repo.c (repo_template_used): Explicitly instantiate the cloned 305590075Sobrien function, not the clones. 305652284Sobrien 305790075Sobrien2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 305852284Sobrien 305990075Sobrien * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 306090075Sobrien ICS_BAD_FLAG on created conversion. 306190075Sobrien (compare_ics): Break out rank. 306252284Sobrien 306390075Sobrien2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 306452284Sobrien 306590075Sobrien * decl.c (xref_tag): Remove extraneous %s on dependent name 306690075Sobrien lookup warning. 306752284Sobrien 306890075Sobrien2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 306952284Sobrien 307090075Sobrien * class.c (layout_vtable_decl): Fix off by one error on 307190075Sobrien build_index_type. 307290075Sobrien (build_vtt): Likewise. 307390075Sobrien (build_ctor_vtbl_group): Likewise. 307452284Sobrien 307590075Sobrien2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 307652284Sobrien 307790075Sobrien * class.c (maybe_indent_hierarchy): New function. 307890075Sobrien (dump_class_hierarchy_r): Add flags. Dump extra binfo 307990075Sobrien information, if enabled. Use maybe_indent_hierarchy. Adjust 308090075Sobrien output format. 308190075Sobrien (dump_class_hierarchy): Adjust prototype. Adjust output format. 308290075Sobrien (dump_array, dump_vtable, dump_vtt): New functions. 308390075Sobrien (finish_struct_1): Adjust hierarchy dumping. 308490075Sobrien (initialize_vtable): Call dump_vtable. 308590075Sobrien (build_vtt): Call dump_vtt. 308690075Sobrien (build_ctor_vtbl_group): Call dump_vtable. 308790075Sobrien * decl2.c (flag_dump_class_layout): Remove. 308890075Sobrien (cxx_decode_option): Remove dump translation unit 308990075Sobrien and dump class hierarchy check. Call dump_switch_p. 309090075Sobrien (finish_file): Adjust dumping. 309190075Sobrien (dump.c): Only dump base classes if not TDF_SLIM. 309290075Sobrien Only dump namespace members if not TDF_SLIM. 309390075Sobrien * optimize.c (dump_function): New function. 309490075Sobrien (optimize_function): Call dump_function. 309590075Sobrien * semantics.c (expand_body): Use dump_enabled_p. 309652284Sobrien 309790075Sobrien2001-06-01 Nathan Sidwell <nathan@codesourcery.com> 309852284Sobrien 309990075Sobrien PR g++/2936 310090075Sobrien Part missed from first commit 310190075Sobrien * decl2.c (finish_anon_union): Copy context. 310252284Sobrien 310390075Sobrien2001-05-30 Nathan Sidwell <nathan@codesourcery.com> 310452284Sobrien 310590075Sobrien PR g++/2936 310690075Sobrien * optimize.c (remap_decl): Remap anonymous aggregate members too. 310752284Sobrien 310890075Sobrien2001-05-26 Nathan Sidwell <nathan@codesourcery.com> 310952284Sobrien 311090075Sobrien PR g++/2823 311190075Sobrien * semantics.c (expand_body): Don't optimize thunks. 311252284Sobrien 311390075Sobrien2001-05-25 Sam TH <sam@uchicago.edu> 311452284Sobrien 311590075Sobrien * cp-tree.h lex.h: Fix header include guards. 311652284Sobrien 311790075Sobrien2001-05-25 Mark Mitchell <mark@codesourcery.com> 311852284Sobrien 311990075Sobrien * decl.c (init_decl_processing): Tweak. 312052284Sobrien 312190075Sobrien2001-05-24 Mark Mitchell <mark@codesourcery.com> 312252284Sobrien 312390075Sobrien * decl.c (duplicate_decls): Tidy. 312490075Sobrien (init_decl_processing): Always set flag_no_builtin. 312552284Sobrien 312690075Sobrien2001-05-24 Nathan Sidwell <nathan@codesourcery.com> 312752284Sobrien 312890075Sobrien PR c++/2184 312990075Sobrien * decl2.c (do_local_using_decl): Push the decls, even in a 313090075Sobrien template. 313152284Sobrien 313290075Sobrien2001-05-22 Mark Mitchell <mark@codesourcery.com> 313352284Sobrien 313490075Sobrien * optimize.c (initialize_inlined_parameters): Don't set 313590075Sobrien TREE_READONLY for a VAR_DECL taking the place of an inlined 313690075Sobrien PARM_DECL. 313752284Sobrien 313890075Sobrien2001-05-22 Jason Merrill <jason_merrill@redhat.com> 313952284Sobrien 314090075Sobrien * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 314190075Sobrien * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 314290075Sobrien attribute. 314352284Sobrien 314490075Sobrien2001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 314552284Sobrien 314690075Sobrien * parse.y: Refer to compound literals as such, not as 314790075Sobrien constructor-expressions. 314852284Sobrien 314990075Sobrien2001-05-21 Mark Mitchell <mark@codesourcery.com> 315052284Sobrien 315190075Sobrien * call.c (build_op_delete_call): Ignore exception-specifications 315290075Sobrien when looking for matching delete operators. 315390075Sobrien * init.c (build_new_1): Compute whether or not the allocation 315490075Sobrien function used is a placement allocation function or not, and 315590075Sobrien communicate this information to build_op_delete_call. 315652284Sobrien 315790075Sobrien2001-05-21 Jason Merrill <jason_merrill@redhat.com> 315852284Sobrien 315990075Sobrien * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 316090075Sobrien (build_vtbl_ref): Adjust. 316190075Sobrien (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 316290075Sobrien * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 316390075Sobrien Re-add vtable-gc. 316490075Sobrien (unsupported_options): Correspondingly. 316552284Sobrien 316690075Sobrien * decl2.c (maybe_make_one_only): Check flag_weak, not 316790075Sobrien supports_one_only(). 316852284Sobrien 316990075Sobrien * cp-tree.def (START_CATCH_STMT): Lose. 317090075Sobrien * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 317190075Sobrien * tree.c (cp_statement_code_p): Don't case it. 317290075Sobrien * semantics.c (cp_expand_stmt): Likewise. 317390075Sobrien * cp-tree.h (START_CATCH_TYPE): Lose. 317490075Sobrien (HANDLER_TYPE): New. 317590075Sobrien * except.c (expand_start_catch_block): Don't start any blocks. 317690075Sobrien Return the type. 317790075Sobrien (expand_end_catch_block): Don't end any blocks. 317890075Sobrien * parse.y (handler): Don't pass anything from finish_handler_parms 317990075Sobrien to finish_handler. 318090075Sobrien * pt.c (tsubst_expr): Likewise. 318190075Sobrien * semantics.c (begin_handler): Call note_level_for_catch here. 318290075Sobrien (finish_handler_parms): Don't return anything. 318390075Sobrien (genrtl_catch_block, begin_catch_block): Lose. 318490075Sobrien (genrtl_handler): Call expand_start_catch here. 318552284Sobrien 318690075Sobrien2001-05-18 Jason Merrill <jason_merrill@redhat.com> 318752284Sobrien 318890075Sobrien * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 318990075Sobrien (get_vtable_decl, build_vtt): Not here. 319052284Sobrien 319190075Sobrien2001-05-20 Nathan Sidwell <nathan@codesourcery.com> 319252284Sobrien 319390075Sobrien PR c++/2781 319490075Sobrien * optimize.c (update_cloned_parm): Copy addressability and other 319590075Sobrien flags. 319652284Sobrien 319790075Sobrien2001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 319852284Sobrien 319990075Sobrien * pt.c (determine_specialization): Ignore artificial functions. 320052284Sobrien 320190075Sobrien2001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 320252284Sobrien 320390075Sobrien * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 320490075Sobrien (C_RID_CODE): Remove. 320590075Sobrien * lex.c (cxx_init_options): Call set_identifier_size. Update. 320690075Sobrien (init_parse): Don't do it here. 320752284Sobrien 320890075Sobrien2001-05-18 Diego Novillo <dnovillo@redhat.com> 320952284Sobrien 321090075Sobrien * decl2.c (finish_objects): Use the original SYMBOL_REF from the 321190075Sobrien function declaration to avoid stripping the symbol's attributes. 321252284Sobrien 321390075Sobrien2001-05-18 Nathan Sidwell <nathan@codesourcery.com> 321452284Sobrien 321590075Sobrien * decl.c (pushdecl): Adjust error string. 321690075Sobrien (xref_tag): Adjust friend class injection warning. Remove the 321790075Sobrien inherited name from the class shadowed scope. 321852284Sobrien 321990075Sobrien2001-05-17 Mark Mitchell <mark@codesourcery.com> 322052284Sobrien 322190075Sobrien * except.c (cp_protect_cleanup_actions): New function. 322290075Sobrien (init_exception_processing): Don't set protect_cleanup_actions 322390075Sobrien here. Do set lang_protect_cleanup_actions. 322452284Sobrien 322590075Sobrien2001-05-16 Nathan Sidwell <nathan@codesourcery.com> 322652284Sobrien 322790075Sobrien * spew.c (read_token): Call yyerror on all unexpected tokens. 322852284Sobrien 322990075Sobrien2001-05-16 Nathan Sidwell <nathan@codesourcery.com> 323052284Sobrien 323190075Sobrien * init.c (member_init_ok_or_else): Take a tree rather than 323290075Sobrien string for name. 323390075Sobrien (expand_member_init): Adjust. 323452284Sobrien 323590075Sobrien2001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 323652284Sobrien 323790075Sobrien * decl.c (duplicate_decls): Suppress warning about duplicate 323890075Sobrien decls if the first decl is a friend. 323952284Sobrien 324090075Sobrien2001-05-12 Zack Weinberg <zackw@stanford.edu> 324152284Sobrien 324290075Sobrien * except.c (choose_personality_routine): Export. Add 324390075Sobrien explanatory comment. Take an enum languages, not a boolean. 324490075Sobrien (initialize_handler_parm): Adjust to match. 324590075Sobrien * cp-tree.h: Prototype choose_personality_routine. 324690075Sobrien * lex.c (handle_pragma_java_exceptions): New function. 324790075Sobrien (init_cp_pragma): Register #pragma GCC java_exceptions. 324852284Sobrien 324990075Sobrien2001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 325052284Sobrien 325190075Sobrien * method.c (build_mangled_C99_name): Remove unused prototype. 325252284Sobrien 325390075Sobrien2001-05-12 Alexandre Oliva <aoliva@redhat.com> 325452284Sobrien 325590075Sobrien * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 325690075Sobrien * typeck.c (get_member_function_from_ptrfunc, 325790075Sobrien build_ptrmemfunc, expand_ptrmemfunc_cst): Take 325890075Sobrien TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 325952284Sobrien 326090075Sobrien Reverted Geoff Keating's 2001-05-03's patch. 326152284Sobrien 326290075Sobrien2001-05-11 Ira Ruben <ira@apple.com> 326352284Sobrien 326490075Sobrien * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 326552284Sobrien 326690075Sobrien2001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 326752284Sobrien 326890075Sobrien * cp-tree.h (finish_label_expr, lookup_label): Delete. 326990075Sobrien * parse.y: Update for '&&'; don't issue warning here. 327090075Sobrien * semantics.c (finish_label_expr): Delete. 327152284Sobrien 327290075Sobrien2001-05-07 Mark Mitchell <mark@codesourcery.com> 327352284Sobrien 327490075Sobrien * splay-tree.h (splay_tree_max): New function. 327590075Sobrien (splay_tree_min): Likewise. 327652284Sobrien 327790075Sobrien2001-05-03 Geoffrey Keating <geoffk@redhat.com> 327852284Sobrien 327990075Sobrien * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 328090075Sobrien (pfn_vflag_identifier): Define. 328190075Sobrien Update comment about layout of pointer functions. 328290075Sobrien (build_ptrmemfunc1): Update prototype. 328390075Sobrien (expand_ptrmemfunc_cst): Update prototype. 328490075Sobrien * decl.c (initialize_predefined_identifiers): Initialize 328590075Sobrien pfn_vflag_identifier. 328690075Sobrien (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 328790075Sobrien an extra field to the type. 328890075Sobrien * expr.c (cplus_expand_constant): Pass 'flag' between 328990075Sobrien expand_ptrmemfunc_cst and build_ptrmemfunc1. 329090075Sobrien * typeck.c (get_member_function_from_ptrfunc): When 329190075Sobrien FUNCTION_BOUNDARY < 16, look at additional field to determine 329290075Sobrien if a pointer-to-member is a real pointer or a vtable offset. 329390075Sobrien (build_ptrmemfunc1): Add new parameter to contain extra field. 329490075Sobrien (build_ptrmemfunc): Pass the extra field around. 329590075Sobrien (expand_ptrmemfunc_cst): Add new parameter to return extra field. 329690075Sobrien (pfn_from_ptrmemfunc): Ignore the extra field. 329752284Sobrien 329890075Sobrien2001-05-03 Mark Mitchell <mark@codesourcery.com> 329952284Sobrien 330090075Sobrien * cp-tree.h (flag_inline_trees): Update documentation. 330190075Sobrien * decl.c (init_decl_processing): Adjust handling of 330290075Sobrien flag_inline_functions and flag_inline_trees to support -O3. 330390075Sobrien (grokfndecl): Set DECL_INLINE on all functions if that's what 330490075Sobrien the user requested. 330590075Sobrien (save_function_data): Clear DECL_INLINE in 330690075Sobrien current_function_cannot_inline is non-NULL. 330790075Sobrien * decl2.c (flag_inline_trees): Update documentation. 330852284Sobrien 330990075Sobrien2001-05-03 Nathan Sidwell <nathan@codesourcery.com> 331052284Sobrien 331190075Sobrien * dump.c (cp_dump_tree, USING_STMT case): New case. 331290075Sobrien * tree.c (cp_statement_code_p): Add USING_STMT. 331390075Sobrien * decl2.c (do_using_directive): Add the using directive statement. 331452284Sobrien 331590075Sobrien * tree.c (walk_tree): Reformat an if block. 331652284Sobrien 331790075Sobrien2001-05-02 Mark Mitchell <mark@codesourcery.com> 331852284Sobrien 331990075Sobrien * decl.c (compute_array_index_type): Don't try to do anything with 332090075Sobrien the indices when processing a template. 332152284Sobrien 332290075Sobrien2001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 332352284Sobrien 332490075Sobrien * call.c: NULL_PTR -> NULL. 332590075Sobrien * class.c: Likewise. 332690075Sobrien * cvt.c: Likewise. 332790075Sobrien * decl.c: Likewise. 332890075Sobrien * decl2.c: Likewise. 332990075Sobrien * except.c: Likewise. 333090075Sobrien * init.c: Likewise. 333190075Sobrien * rtti.c: Likewise. 333290075Sobrien * search.c: Likewise. 333390075Sobrien * tree.c: Likewise. 333490075Sobrien * typeck.c: Likewise. 333590075Sobrien * typeck2.c: Likewise. 333652284Sobrien 333790075Sobrien2001-05-02 Mark Mitchell <mark@codesourcery.com> 333852284Sobrien 333990075Sobrien * decl2.c (do_using_directive): Revert previous patch. 334052284Sobrien 334190075Sobrien2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 334252284Sobrien 334390075Sobrien * cp-tree.def (USING_STMT): New statement node. 334490075Sobrien * cp-tree.h (USING_STMT_NAMESPACE): New macro. 334590075Sobrien * decl2.c (do_using_directive): Add USING_STMT to statement 334690075Sobrien tree. Don't emit errors when processing template decl. 334790075Sobrien * pt.c (tsubst_expr, USING_STMT case): New case. 334890075Sobrien * semantics.c (cp_expand_stmt, USING_STMT case): New case. 334952284Sobrien 335090075Sobrien2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 335152284Sobrien 335290075Sobrien * call.c (build_new_op): Convert args from reference here. 335390075Sobrien (build_conditional_expr): Don't convert here. 335452284Sobrien 335590075Sobrien2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 335652284Sobrien 335790075Sobrien * spew.c (last_token_id): New static variable. 335890075Sobrien (read_token): Set it here. 335990075Sobrien (yyerror): Use it here. 336052284Sobrien 336190075Sobrien2001-04-30 Richard Henderson <rth@redhat.com> 336252284Sobrien 336390075Sobrien * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 336490075Sobrien * decl.c: Likewise. 336552284Sobrien 336690075Sobrien2001-04-30 Mark Mitchell <mark@codesourcery.com> 336752284Sobrien 336890075Sobrien * gxxint.texi: Remove. 336990075Sobrien * Make-lang.in: Remove all traces of gxxint.texi. 337052284Sobrien 337190075SobrienMon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com> 337252284Sobrien 337390075Sobrien * decl2.c (start_static_initialization_or_destruction): Correct 337490075Sobrien logic to handle the -fno-use-cxa-atexit case. 337552284Sobrien 337690075Sobrien2001-04-30 Mark Mitchell <mark@codesourcery.com> 337752284Sobrien 337890075Sobrien * optimize.c (update_cloned_parm): New function. 337990075Sobrien (maybe_clone_body): Use it. Update the `this' parameter too. 338052284Sobrien 338190075Sobrien2001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 338252284Sobrien 338390075Sobrien * decl2.c (unsupported_options): Add new-abi. 338490075Sobrien * lang-options.h: Remove no longer supported options. 338552284Sobrien 338690075Sobrien2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 338752284Sobrien 338890075Sobrien * except.c (can_convert_eh): Don't check template parms, 338990075Sobrien typename types etc. 339052284Sobrien 339190075Sobrien2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 339252284Sobrien 339390075Sobrien * optimize.c (maybe_clone_body): Copy parameter names and locations. 339452284Sobrien 339590075Sobrien2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 339652284Sobrien 339790075Sobrien * cp-tree.h (adjust_clone_args): Prototype new function. 339890075Sobrien * class.c (adjust_clone_args): New function. 339990075Sobrien * decl.c (start_function): Call it for in charge ctors. 340052284Sobrien 340190075Sobrien2001-04-26 Mark Mitchell <mark@codesourcery.com> 340252284Sobrien 340390075Sobrien * method.c (use_thunk): Make sure that thunks really are emitted 340490075Sobrien when requested. 340552284Sobrien 340690075Sobrien2001-04-26 Nathan Sidwell <nathan@codesourcery.com> 340752284Sobrien 340890075Sobrien * mangle.c (write_chars): New macro. 340990075Sobrien (hwint_to_ascii): New function 341090075Sobrien (write_number): Use it. 341190075Sobrien (write_integer_cst): Deal with really big numbers. 341252284Sobrien 341390075Sobrien2001-04-25 Mark Mitchell <mark@codesourcery.com> 341452284Sobrien 341590075Sobrien * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 341690075Sobrien the clone. 341752284Sobrien 341890075Sobrien2001-04-25 Nathan Sidwell <nathan@codesourcery.com> 341952284Sobrien 342090075Sobrien * decl.c (grokdeclarator): Set context of namespace scope 342190075Sobrien TYPE_DECLS. 342252284Sobrien 342390075Sobrien2001-04-24 Zack Weinberg <zackw@stanford.edu> 342452284Sobrien 342590075Sobrien * cp/optimize.c: Include hashtab.h. 342690075Sobrien (struct inline_data): Add tree_pruner. 342790075Sobrien (expand_call_inline, expand_calls_inline): Use it when calling 342890075Sobrien walk_tree. 342990075Sobrien (optimize_function): Initialize and free tree_pruner. 343052284Sobrien 343190075Sobrien2001-04-24 Nathan Sidwell <nathan@codesourcery.com> 343252284Sobrien 343390075Sobrien Lazy __FUNCTION__ generation. 343490075Sobrien * cp-tree.def (FUNCTION_NAME): Remove. 343590075Sobrien * cp-tree.h (function_name_declared_p): Remove. 343690075Sobrien (cp_fname_init): Prototype. 343790075Sobrien * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 343890075Sobrien don't call declare_function_name. Call start_fname_decls. 343990075Sobrien (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 344090075Sobrien clobber the line number. 344190075Sobrien (cp_fname_init): New function. 344290075Sobrien (start_function): Call start_fname_decls. 344390075Sobrien (finish_function): Call finish_fname_decls. 344490075Sobrien * lex.c (reswords): Add slots for __FUNCTION__ et al. 344590075Sobrien (rid_to_yy): Add mappings for __FUNCTION__ et al. 344690075Sobrien * optimize.c (maybe_clone_body): Remove function_name_declared_p. 344790075Sobrien * parse.y (VAR_FUNC_NAME): New token. 344890075Sobrien (primary): Add VAR_FUNC_NAME. 344990075Sobrien * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 345090075Sobrien generation. 345190075Sobrien (tsubst, FUNCTION_NAME case): Remove. 345290075Sobrien (tsubst_copy, FUNCTION_NAME case): Remove. 345390075Sobrien (tsubst_expr, DECL_STMT case): Be careful with a 345490075Sobrien DECL_PRETTY_FUNCTION_P. 345590075Sobrien (instantiate_decl): Remove function_name_declared_p. 345690075Sobrien * semantics.c (begin_compound_statement): Don't call 345790075Sobrien declare_function_name here. 345890075Sobrien (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 345990075Sobrien (finish_translation_unit): Call finish_fname_decls. 346090075Sobrien (expand_body): Remove function_name_declared_p. 346190075Sobrien * typeck2.c (digest_init): Allow any ERROR_MARK. 346252284Sobrien 346390075Sobrien2001-04-24 Nathan Sidwell <nathan@codesourcery.com> 346452284Sobrien 346590075Sobrien * pt.c (tsubst_decl): Use VOID_TYPE_P. 346690075Sobrien * semantics.c: Fix some typos. 346752284Sobrien 346890075Sobrien2001-04-23 Phil Edwards <pme@sources.redhat.com> 346952284Sobrien 347090075Sobrien * cp/decl2.c (flag_honor_std): Always initialize to 1. 347152284Sobrien 347290075Sobrien2001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 347352284Sobrien 347490075Sobrien * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 347552284Sobrien 347690075Sobrien2001-04-23 Jason Merrill <jason_merrill@redhat.com> 347752284Sobrien 347890075Sobrien * except.c (build_throw): Wrap the initialization of the exception 347990075Sobrien object in a MUST_NOT_THROW_EXPR. 348090075Sobrien (do_free_exception): #if 0. 348152284Sobrien 348290075Sobrien2001-04-20 Mark Mitchell <mark@codesourcery.com> 348352284Sobrien 348490075Sobrien * cp-tree.h (finish_enum): Change prototype. 348590075Sobrien * decl.c (finish_enum): Reorganize. 348690075Sobrien * parse.y (structsp): Adjust calls to finish_enum. 348752284Sobrien 348890075Sobrien2001-04-20 Nathan Sidwell <nathan@codesourcery.com> 348952284Sobrien 349090075Sobrien * tree.c (cp_tree_equal): Adjust final switch formatting. Add 349190075Sobrien 't' case. 349252284Sobrien 349390075Sobrien2001-04-20 Nathan Sidwell <nathan@codesourcery.com> 349452284Sobrien 349590075Sobrien * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 349690075Sobrien (layout_empty_base): Return at end flag. 349790075Sobrien (build_base_field): Likewise. 349890075Sobrien (build_base_fields): Likewise. 349990075Sobrien (layout_virtual_bases): Don't add 1 to eoc value. 350090075Sobrien (end_of_class): Use full size for empty bases. 350190075Sobrien (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 350290075Sobrien empty bases. Don't add 1 to eoc value. Only add trailing padding 350390075Sobrien if we're an empty class with no empty bases. 350490075Sobrien (dump_class_hierarchy): Dump size and alignment. 350552284Sobrien 350690075Sobrien2001-04-20 Jakub Jelinek <jakub@redhat.com> 350752284Sobrien 350890075Sobrien * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 350990075Sobrien ICS_BAD_FLAG. 351052284Sobrien 351190075Sobrien2001-04-20 Jakub Jelinek <jakub@redhat.com> 351252284Sobrien 351390075Sobrien * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 351490075Sobrien is found, look first if name does not match the structure name. 351552284Sobrien 351690075Sobrien2001-04-19 Mark Mitchell <mark@codesourcery.com> 351752284Sobrien 351890075Sobrien * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 351990075Sobrien set. 352090075Sobrien (SET_DECL_LANGUAGE): New macro. 352190075Sobrien * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 352290075Sobrien (pushdecl): Likewise. 352390075Sobrien (build_library_fn_1): Likewise. 352490075Sobrien (build_cp_library_fn): Likewise. 352590075Sobrien (grokfndecl): Likewise. 352690075Sobrien (grokvardecl): Mark `extern "C"' variables as having C linkage. 352790075Sobrien * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 352890075Sobrien * lex.c (retrofit_lang_decl): Likewise. 352990075Sobrien * mangle.c (mangle_decl_string): Don't mangle the names of 353090075Sobrien variables declared with C language linkage. 353190075Sobrien * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 353252284Sobrien 353390075Sobrien2001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 353452284Sobrien 353590075Sobrien * semantics.c (simplify_aggr_init_exprs_r): Don't restore 353690075Sobrien flag_access_control from uninitialized storage. 353752284Sobrien 353890075Sobrien2001-04-15 Mark Mitchell <mark@codesourcery.com> 353918334Speter 354090075Sobrien * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 354190075Sobrien * mangle.c (write_pointer_to_member_type): Fix mangling of 354290075Sobrien pointers to cv-qualified member function types. 354318334Speter 354490075Sobrien * init.c (build_delete): Create a SAVE_EXPR for the address if 354590075Sobrien we're going to use it more than once. 354652284Sobrien 354790075Sobrien2001-04-13 Mark Mitchell <mark@codesourcery.com> 354852284Sobrien 354990075Sobrien * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 355090075Sobrien (expand_ptremfunc_cst): Change prototype. 355190075Sobrien (delta2_from_ptrmemfunc): Remove. 355290075Sobrien * expr.c (cplus_expand_constant): Adjust call to 355390075Sobrien expand_ptrmemfunc_cst. 355490075Sobrien * typeck.c (build_ptrmemfunc1): Simplify. 355590075Sobrien (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 355690075Sobrien results in a constant. 355790075Sobrien (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 355890075Sobrien (delta2_from_ptrmemfunc): Remove. 355990075Sobrien (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 356052284Sobrien 356190075Sobrien2001-04-12 Jason Merrill <jason_merrill@redhat.com> 356252284Sobrien 356390075Sobrien * cp-tree.h (decl_namespace_list): New macro. 356490075Sobrien (struct saved_scope): Add decl_ns_list. 356590075Sobrien * decl.c (mark_saved_scope): Mark it. 356690075Sobrien * decl2.c: Lose static decl_namespace_list. 356790075Sobrien (init_decl2): Don't save it. 356852284Sobrien 356990075Sobrien2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 357052284Sobrien 357190075Sobrien * cp-tree.h (warn_return_type, yylex): Delete redundant 357290075Sobrien declarations. 357352284Sobrien 357490075Sobrien * decl.c (current_class_depth, global_namespace): Likewise. 357552284Sobrien 357690075Sobrien * decl2.c (current_class_depth, flag_gnu_xref): Likewise 357752284Sobrien 357890075Sobrien * repo.c (flag_use_repository): Likewise. 357952284Sobrien 358090075Sobrien2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 358152284Sobrien 358290075Sobrien * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 358390075Sobrien set_block, pushdecl, getdecls, gettags, init_decl_processing, 358490075Sobrien maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 358590075Sobrien lvalue_or_else, print_lang_statistics, comp_target_types, 358690075Sobrien unsigned_type, signed_type, signed_or_unsigned_type, 358790075Sobrien build_function_call, mark_addressable, incomplete_type_error): 358890075Sobrien Delete redundant declarations. 358952284Sobrien 359090075Sobrien2001-04-11 Jason Merrill <jason_merrill@redhat.com> 359152284Sobrien 359290075Sobrien * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 359390075Sobrien (TYPE_ANONYMOUS_P): New macro. 359490075Sobrien (TAGGED_TYPE_P): New macro. 359590075Sobrien * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 359690075Sobrien (grokfndecl, grokvardecl, grokdeclarator): Likewise. 359790075Sobrien * tree.c (no_linkage_helper): Likewise. 359890075Sobrien * semantics.c (begin_class_definition): Likewise. 359990075Sobrien * pt.c (convert_template_argument): Likewise. 360090075Sobrien * lex.c (check_for_missing_semicolon): Likewise. 360152284Sobrien 360290075Sobrien2001-04-12 Nathan Sidwell <nathan@codesourcery.com> 360352284Sobrien 360490075Sobrien * class.c (dfs_unshared_virtual_bases): New function. 360590075Sobrien (mark_primary_bases): Call it. 360690075Sobrien (check_bases): Ignore virtual bases when determining 360790075Sobrien nearly-emptiness. 360852284Sobrien 360990075Sobrien2001-04-12 Nathan Sidwell <nathan@codesourcery.com> 361052284Sobrien 361190075Sobrien * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 361218334Speter 361390075Sobrien2001-04-11 Mark Mitchell <mark@codesourcery.com> 361418334Speter 361590075Sobrien * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 361690075Sobrien cloned function to the clone. 361718334Speter 361890075Sobrien2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 361918334Speter 362090075Sobrien * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 362152284Sobrien 362290075Sobrien * semantics.c: Include expr.h. 362352284Sobrien 362490075Sobrien2001-04-11 Nathan Sidwell <nathan@codesourcery.com> 362552284Sobrien 362690075Sobrien * method.c (implicitly_declare_fn): Commonize code for copy ctor 362790075Sobrien and assignment op. Set TREE_USED for parameter. 362852284Sobrien 362990075Sobrien2001-04-10 Mark Mitchell <mark@codesourcery.com> 363052284Sobrien 363190075Sobrien * class.c (find_final_overrider_data): Add `candidates'. 363290075Sobrien (dfs_find_final_overrider): Don't issue error messages 363390075Sobrien prematurely. 363490075Sobrien (find_final_overrider): Issue error messages here. 363590075Sobrien (build_base_field): Don't warn about amgibuous direct bases here. 363690075Sobrien (warn_about_ambiguous_direct_bases): New function. 363790075Sobrien (layout_class_type): Use it. 363818334Speter 363990075Sobrien2001-04-10 Richard Henderson <rth@redhat.com> 364018334Speter 364190075Sobrien * typeck.c (build_array_ref): Push the array reference inside 364290075Sobrien COMPOUND_EXPR and COND_EXPR. 364352284Sobrien 364490075Sobrien2001-04-05 Mark Mitchell <mark@codesourcery.com> 364552284Sobrien 364690075Sobrien * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 364790075Sobrien * decl.c (duplicate_decls): Adjust accordingly. 364890075Sobrien (maybe_commonize_var): Likewise. 364990075Sobrien (grokfndecl): Likewise. 365090075Sobrien (start_function): Likewise. 365190075Sobrien (start_method): Likewise. 365290075Sobrien * decl2.c (key_method): Likewise. 365390075Sobrien (import_export_decl): Likewise. 365490075Sobrien * method.c (implicitly_declare_fn): Likewise. 365590075Sobrien * optimize.c (maybe_clone_body): Likewise. 365652284Sobrien 365790075Sobrien2001-04-05 Benjamin Kosnik <bkoz@redhat.com> 365852284Sobrien 365990075Sobrien * lang-specs.h: Add __DEPRECATED. 366052284Sobrien 366190075SobrienThu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com> 366252284Sobrien 366390075Sobrien * search.c (get_dynamic_cast_base_type): When building a new 366490075Sobrien constant, set its type to ssizetype. 366552284Sobrien 366690075Sobrien2001-04-04 Jakub Jelinek <jakub@redhat.com> 366752284Sobrien 366890075Sobrien * optimize.c (expand_call_inline): Only add newly inlined statements 366990075Sobrien into inlined_stmts. 367052284Sobrien 367190075Sobrien2001-04-03 Mark Mitchell <mark@codesourcery.com> 367252284Sobrien 367390075Sobrien * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 367490075Sobrien (OPERATOR_FORMAT): Likewise. 367590075Sobrien (OPERATOR_TYPENAME_FORMAT): Likewise. 367690075Sobrien * operators.def: Remove old name-mangling information. 367790075Sobrien * decl.c (grok_op_properties): Adjust accordingly. 367890075Sobrien * lex.c (init_operators): Likewise. 367990075Sobrien * rtti.c (get_tinfo_decl): Issue error messages about types that 368090075Sobrien have variable size. 368152284Sobrien 368290075Sobrien2001-04-03 Mark Mitchell <mark@codesourcery.com> 368352284Sobrien 368490075Sobrien * decl2.c (import_export_decl): Don't call import_export_class 368590075Sobrien when processing an inline member function. 368690075Sobrien * semantics.c (expand_body): Call import_export_decl before 368790075Sobrien emitting inline functions. 368852284Sobrien 368990075Sobrien2001-03-28 Richard Henderson <rth@redhat.com> 369052284Sobrien 369190075Sobrien IA-64 ABI Exception Handling: 369290075Sobrien * cp-tree.def (EH_SPEC_BLOCK): New. 369390075Sobrien (MUST_NOT_THROW_EXPR): New. 369490075Sobrien * cp-tree.h: Update changed function declarations. 369590075Sobrien (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 369690075Sobrien (CPTI_CALL_UNEXPECTED): New. 369790075Sobrien (struct cp_language_function): Rename x_eh_spec_try_block 369890075Sobrien to x_eh_spec_block. 369990075Sobrien (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 370090075Sobrien * decl.c (current_binding_level): If no current function 370190075Sobrien bindings, revert to scope_chain. 370290075Sobrien (initialize_predefined_identifiers): Remove __cp_push_exception. 370390075Sobrien (store_parm_decls): Use begin_eh_spec_block. 370490075Sobrien (finish_function): Use finish_eh_spec_block. 370590075Sobrien (mark_lang_function): Update for name changes. 370690075Sobrien * decl2.c (finish_file): No mark_all_runtime_matches. 370790075Sobrien * dump.c (cp_dump_tree): Handle new tree codes. 370890075Sobrien * error.c (dump_expr) [BIND_EXPR]: Fix typo. 370990075Sobrien * except.c (catch_language_init, catch_language): Remove. 371090075Sobrien (init_exception_processing): Don't set language code. 371190075Sobrien Initialize call_unexpected_node, protect_cleanup_actions, 371290075Sobrien eh_personality_libfunc, lang_eh_runtime_type. 371390075Sobrien (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 371490075Sobrien (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 371590075Sobrien (prepare_eh_type): Split out type canonicalizations ... 371690075Sobrien (build_eh_type_type): ... from here. 371790075Sobrien (build_eh_type_type_ref): Remove. 371890075Sobrien (mark_all_runtime_matches): Remove. 371990075Sobrien (build_exc_ptr): New. 372090075Sobrien (do_begin_catch, do_end_catch): New. 372190075Sobrien (do_pop_exception): Remove. 372290075Sobrien (build_terminate_handler): Remove. 372390075Sobrien (choose_personality_routine): Split out language choice from ... 372490075Sobrien (initialize_handler_parm): ... here. 372590075Sobrien Use MUST_NOT_THROW_EXPR. 372690075Sobrien (expand_start_catch_block): Use do_begin_catch. Simplify Java 372790075Sobrien exception object handling. 372890075Sobrien (expand_start_eh_spec, expand_end_eh_spec): Remove. 372990075Sobrien (expand_exception_blocks, alloc_eh_object): Remove. 373090075Sobrien (begin_eh_spec_block, finish_eh_spec_block): New. 373190075Sobrien (do_allocate_exception, do_free_exception): New. 373290075Sobrien (expand_throw): Merge into ... 373390075Sobrien (build_throw): ... here. Update for abi. 373490075Sobrien * expr.c (cplus_expand_expr): No expand_internal_throw. 373590075Sobrien Handle MUST_NOT_THROW_EXPR. 373690075Sobrien * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 373790075Sobrien * semantics.c (*) Update for except.h name changes. 373890075Sobrien (genrtl_try_block): No protect_with_terminate. 373990075Sobrien (genrtl_eh_spec_block): New. 374090075Sobrien (genrtl_handler): Don't emit the goto here. 374190075Sobrien (cp_expand_stmt): Handle EH_SPEC_BLOCK. 374290075Sobrien (genrtl_finish_function): Don't expand_exception_blocks. 374390075Sobrien * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 374418334Speter 374590075Sobrien2001-03-28 Richard Henderson <rth@redhat.com> 374652284Sobrien 374790075Sobrien * decl.c (struct named_label_list): Rename eh_region to 374890075Sobrien in_try_scope, add in_catch_scope. 374990075Sobrien (struct binding_level): Rename eh_region to is_try_scope, 375090075Sobrien add is_catch_scope. 375190075Sobrien (note_level_for_try): Rename from note_level_for_eh. 375290075Sobrien (note_level_for_catch): New. 375390075Sobrien (poplevel): Copy both is_try_scope and is_catch_scope to 375490075Sobrien the named_label_list struct. 375590075Sobrien (check_previous_goto_1): Don't check for catch block via 375690075Sobrien DECL_ARTIFICIAL; use in_try_scope instead. 375790075Sobrien (check_goto): Likewise. 375890075Sobrien * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 375990075Sobrien * except.c (expand_start_catch_block): Call note_level_for_catch. 376090075Sobrien * semantics.c (begin_compound_stmt): Update for note_level_for_try. 376118334Speter 376290075Sobrien2001-03-27 Richard Henderson <rth@redhat.com> 376352284Sobrien 376490075Sobrien * except.c: Use USING_SJLJ_EXCEPTIONS instead of 376590075Sobrien exceptions_via_longjmp. 376652284Sobrien 376790075Sobrien2001-03-27 Phil Edwards <pme@sources.redhat.com> 376852284Sobrien 376990075Sobrien * pt.c (check_default_tmpl_args): Make error messages clearer. 377052284Sobrien 377190075Sobrien2001-03-26 Phil Edwards <pme@sources.redhat.com> 377252284Sobrien 377390075Sobrien * error.c: Also undefine 'A' macro used for cp_printers definition. 377452284Sobrien 377590075Sobrien2001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 377652284Sobrien 377790075Sobrien * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 377852284Sobrien 377990075Sobrien2001-03-26 Mike Yang <yang@research.att.com> 378090075Sobrien Mark Mitchell <mark@codesourcery.com> 378152284Sobrien 378290075Sobrien * dump.c (dump_access): New function. 378390075Sobrien (cp_dump_tree): Use it. Dump basetype information for class 378490075Sobrien types. 378552284Sobrien 378690075Sobrien2001-03-26 Mark Mitchell <mark@codesourcery.com> 378752284Sobrien 378890075Sobrien * Makefile.in (optimize.o): Depend on params.h. 378990075Sobrien (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 379090075Sobrien (init_decl_processing): Set flag_no_inline when doing 379190075Sobrien inlining-on-trees. 379290075Sobrien * optimize.c: Include params.h. 379390075Sobrien (struct inline_data): Improve documentation of FNS. Add 379490075Sobrien FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 379590075Sobrien (INSNS_PER_STMT): New macro. 379690075Sobrien (remap_block): Use CLONING_P. 379790075Sobrien (inlinable_function_p): Don't inline big functions. 379890075Sobrien (expand_call_inline): Keep track of how much inlining we've done. 379990075Sobrien (optimize_function): Set FIRST_INLINED_FN. 380090075Sobrien (maybe_clone_body): Set CLONING_P. 380190075Sobrien * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 380290075Sobrien tree nodes. 380390075Sobrien (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 380490075Sobrien rest_of_compilation. Clear DECL_RTL for local variables 380590075Sobrien afterwards. 380690075Sobrien (clear_decl_rtl): New function. 380752284Sobrien 380890075Sobrien2001-03-26 Nathan Sidwell <nathan@codesourcery.com> 380952284Sobrien 381090075Sobrien Implement DR 209 381190075Sobrien * cp-tree.h (skip_type_access_control, 381290075Sobrien reset_type_access_control): Prototype. 381390075Sobrien * decl.c (grokdeclarator): Access of friends is not checked. 381490075Sobrien * parse.y (component_decl_list): Reset type access control. 381590075Sobrien * semantics.c (decl_type_access_control): Clear 381690075Sobrien current_type_lookups. 381790075Sobrien (save_type_access_control): Don't save if not deferring. 381890075Sobrien (skip_type_access_control, reset_type_access_control): New 381990075Sobrien functions. 382090075Sobrien (begin_class_definition): Do type access control for basetypes. 382190075Sobrien Start deferred access control. 382290075Sobrien (finish_class_definition): Resume immediate access control if 382390075Sobrien this is a local class. 382452284Sobrien 382590075Sobrien2001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 382652284Sobrien 382790075Sobrien * class.c (add_method): Use memcpy/memmove, not bcopy. 382852284Sobrien 382990075Sobrien * decl.c (duplicate_decls): Likewise. 383052284Sobrien 383190075Sobrien2001-03-23 Jakub Jelinek <jakub@redhat.com> 383252284Sobrien 383390075Sobrien * mangle.c (write_discriminator): Use `_0' for discriminator 1, 383490075Sobrien not `_'. 383552284Sobrien 383690075Sobrien2001-03-23 Jakub Jelinek <jakub@redhat.com> 383718334Speter 383890075Sobrien * decl.c (local_names): Define. 383990075Sobrien (push_local_name): New. 384090075Sobrien (grok_reference_init): Return init if initializing static reference 384190075Sobrien variable with non-constant instead of emitting it. 384290075Sobrien Move expand_static_init call to cp_finish_decl. 384390075Sobrien (layout_var_decl): Call push_local_name. 384490075Sobrien (maybe_commonize_var): Allow inlining functions even if they have 384590075Sobrien static local variables, use comdat_linkage for them if flag_weak. 384690075Sobrien (check_initializer): Call obscure_complex_init if 384790075Sobrien grok_reference_init returned non-zero. 384890075Sobrien (save_function_data): Clear x_local_names. 384990075Sobrien (pop_cp_function_context): Free x_local_names. 385090075Sobrien (mark_inlined_fns): Remove. 385190075Sobrien (mark_lang_function): Mark x_local_names. 385290075Sobrien (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 385390075Sobrien Mark inlined_fns as tree, remove call to mark_inlined_fns. 385490075Sobrien * class.c (alter_access): Ensure DECL_ACCESS is never set if 385590075Sobrien DECL_DISCRIMINATOR_P. 385690075Sobrien * cp-tree.h (cp_language_function): Add x_local_names. 385790075Sobrien (lang_decl_flags): Add discriminator into u2. 385890075Sobrien (lang_decl_inlined_fns): Remove. 385990075Sobrien (lang_decl): inlined_fns is now a TREE_VEC. 386090075Sobrien (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 386190075Sobrien * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 386290075Sobrien TREE_VEC, not a custom structure. 386390075Sobrien (optimize_function): Likewise. 386490075Sobrien * mangle.c (discriminator_for_local_entity): Discriminate among 386590075Sobrien VAR_DECL local entities. 386690075Sobrien * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 386790075Sobrien is not valid. 386852284Sobrien 386990075Sobrien2001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 387018334Speter 387190075Sobrien Add support for Java interface method calls. 387290075Sobrien * cp-tree.h (struct lang_type): Add java_interface flag. 387390075Sobrien (TYPE_JAVA_INTERFACE): New macro. 387490075Sobrien * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 387590075Sobrien by setting TYPE_JAVA_INTERFACE. 387690075Sobrien * call.c (java_iface_lookup_fn): New static. 387790075Sobrien (build_over_call): If calling a method declared in a 387890075Sobrien TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 387990075Sobrien expression which resolves the function address. 388090075Sobrien (build_java_interface_fn_ref): New function. 388118334Speter 388290075Sobrien2001-03-22 Richard Henderson <rth@redhat.com> 388352284Sobrien 388490075Sobrien * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 388590075Sobrien * except.c: Don't include it. 388652284Sobrien 388790075Sobrien2001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 388890075Sobrien based on an idea from Joe Buck <jbuck@synopsys.com> 388952284Sobrien 389090075Sobrien * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 389190075Sobrien New nonterminals. 389290075Sobrien (data_def, component_decl): Add reductions to bad_decl. 389352284Sobrien 389490075Sobrien2001-03-22 Jakub Jelinek <jakub@redhat.com> 389552284Sobrien 389690075Sobrien * method.c (do_build_assign_ref): Don't use build_modify_expr for 389790075Sobrien anonymous aggregates, since they don't have assignment operator 389890075Sobrien method. 389990075Sobrien * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 390090075Sobrien assignment operators for anonymous structure fields. 390152284Sobrien 390290075Sobrien2001-03-21 Jason Merrill <jason@redhat.com> 390352284Sobrien 390490075Sobrien * pt.c (instantiate_decl): Abort if we see a member constant 390590075Sobrien instantiation that doesn't already have its initializer. 390690075Sobrien Downgrade explicit instantiation without definition to pedwarn. 390752284Sobrien 390890075Sobrien * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 390990075Sobrien * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 391090075Sobrien (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 391152284Sobrien 391290075Sobrien * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 391390075Sobrien (pending_vtables): Remove. 391490075Sobrien * decl2.c (pending_vtables): Remove. 391590075Sobrien (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 391690075Sobrien CLASSTYPE_VTABLE_NEEDS_WRITING. 391790075Sobrien (import_export_class): Likewise. 391890075Sobrien (init_decl2): Don't mark pending_vtables. 391990075Sobrien * lex.c (handle_pragma_vtable): Just sorry. 392090075Sobrien * pt.c (instantiate_class_template): Don't mess with 392190075Sobrien CLASSTYPE_VTABLE_NEEDS_WRITING. 392290075Sobrien (mark_class_instantiated): Likewise. 392390075Sobrien * ptree.c (print_lang_type): Don't print it. 392490075Sobrien * semantics.c (begin_class_definition): Don't set it. 392552284Sobrien 392690075Sobrien * pt.c (template_tail): Replace with last_pending_template. 392790075Sobrien (maybe_templates, maybe_template_tail): Remove. 392890075Sobrien (add_pending_template): Adjust. 392990075Sobrien (instantiate_pending_templates): Adjust. 393052284Sobrien 393190075Sobrien * cp-tree.h (struct saved_scope): Remove lang_stack field. 393290075Sobrien (current_lang_stack): Remove. 393390075Sobrien * decl.c (maybe_push_to_top_level): Don't initialize it. 393490075Sobrien (duplicate_decls): Use current_lang_depth. 393590075Sobrien (xref_basetypes): Likewise. 393690075Sobrien * class.c (current_lang_depth): New fn. 393790075Sobrien (push_lang_context): Use more varray functionality. 393890075Sobrien (pop_lang_context): Likewise. 393952284Sobrien 394090075Sobrien * error.c (GLOBAL_THING): Always use '__'. 394152284Sobrien 394290075Sobrien2001-03-21 Mark Mitchell <mark@codesourcery.com> 394352284Sobrien 394490075Sobrien * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 394552284Sobrien 394690075Sobrien * mangle.c (mangle_decl_string): Mangle the names of overloaded 394790075Sobrien operators, even when they have `extern "C"' linkage. 394852284Sobrien 394990075Sobrien2001-03-19 Mark Mitchell <mark@codesourcery.com> 395052284Sobrien 395190075Sobrien * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 395290075Sobrien COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 395390075Sobrien where it's not necessary. 395490075Sobrien (add_method): Remove optimization involving comparison of 395590075Sobrien DECL_ASSEMBLER_NAME. 395690075Sobrien (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 395790075Sobrien COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 395890075Sobrien where it's not necessary. 395990075Sobrien (check_methods): Likewise. 396090075Sobrien (build_clone): Likewise. 396190075Sobrien (built_vtt): Likewise. 396290075Sobrien * cp-tree.h (DECL_NEEDED_P): Likewise. 396390075Sobrien * decl.c (pushtag): Likewise. 396490075Sobrien (duplicate_decls): Likewise. 396590075Sobrien (pushdecl): Likewise. 396690075Sobrien (builtin_function): Likewise. 396790075Sobrien (build_library_fn_1): Set DECL_LANGUAGE for library functions. 396890075Sobrien (build_cp_library_fn): Likewise. 396990075Sobrien (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 397090075Sobrien COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 397190075Sobrien where it's not necessary. 397290075Sobrien (make_rtl_for_nonlocal_decl): Likewise. 397390075Sobrien (cp_finish_decl): Likewise. 397490075Sobrien (grokfndecl): Likewise. 397590075Sobrien (grokvardecl): Likewise. 397690075Sobrien (grokdeclarator): Likewise. 397752284Sobrien (start_function): Likewise. 397890075Sobrien (cp_missing_return_ok_p): Likewise. 397990075Sobrien * decl2.c (grokclassfn): Likewise. 398090075Sobrien (check_classfn): Likewise. 398190075Sobrien (finish_static_data_member_decl): Likewise. 398252284Sobrien (grokfield): Likewise. 398390075Sobrien * error.c (GLOBAL_IORD_P): Remove. 398490075Sobrien (dump_global_iord): Improve output. 398590075Sobrien (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 398690075Sobrien * except.c (nothrow_libfn_p): Summarily reject any function not in 398790075Sobrien namespace-scope. 398890075Sobrien * init.c (build_java_class_ref): Don't explicitly set 398990075Sobrien DECL_ASSEMBLER_NAME after calling mangle_decl. 399090075Sobrien * mangle.c (mangle_decl_string): Handle extern "C" functions. 399190075Sobrien (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 399290075Sobrien * method.c (set_mangled_name_for_decl): Don't explicitly set 399390075Sobrien DECL_ASSEMBLER_NAME after calling mangle_decl. 399490075Sobrien (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 399590075Sobrien IDENTIFIER_GLOBAL_VALUE for the thunk. 399690075Sobrien * pt.c (set_mangled_name_for_template_decl): Remove. 399790075Sobrien (check_explicit_specialization): Don't use it. 399890075Sobrien (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 399990075Sobrien (tsubst_friend_function): Likewise. 400090075Sobrien (tsubst_decl): Likewise. 400190075Sobrien (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 400290075Sobrien * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 400390075Sobrien COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 400490075Sobrien where it's not necessary. 400590075Sobrien (tinfo_base_init): Likewise. 400690075Sobrien (create_real_tinfo_var): Likewise. 400790075Sobrien * search.c (looup_field_1): Likewise. 400890075Sobrien * semantics.c (finish_named_return_value): Likewise. 400990075Sobrien * tree.c (init_tree): Set lang_set_decl_assembler_name. 401052284Sobrien 401190075Sobrien2001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 401252284Sobrien 401390075Sobrien Correct semantics restrictions checking in throw-expression. 401490075Sobrien * except.c (is_admissible_throw_operand): New function. 401590075Sobrien (build_throw): Use it. 401652284Sobrien 401790075Sobrien2001-03-14 Mark Mitchell <mark@codesourcery.com> 401852284Sobrien 401990075Sobrien * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 402090075Sobrien and its ilk. 402152284Sobrien 402290075Sobrien2001-03-14 Mark Mitchell <mark@codesourcery.com> 402352284Sobrien 402490075Sobrien * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 402590075Sobrien * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 402690075Sobrien * decl.c (duplicate_decls): Likewise. 402790075Sobrien (builtin_function): Likewise. 402890075Sobrien (build_library_fn): Likewise. 402990075Sobrien (build_cp_library_fn): Likewise. 403090075Sobrien (check_initializer): Likewise. 403190075Sobrien (cp_finish_decl): Likewise. 403290075Sobrien * decl2.c (grokfield): Likewise. 403390075Sobrien (grok_function_init): Remove #if 0'd code. 403490075Sobrien (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 403590075Sobrien * friend.c (do_friend): Likewise. 403690075Sobrien * init.c (get_temp_regvar): Likewise. 403790075Sobrien * method.c (make_thunk): Likewise. 403890075Sobrien * pt.c (tsubst_friend_function): Likewise. 403990075Sobrien (tsubst_decl): Likewise. 404090075Sobrien (regenerate_decl_from_template): Likewise. 404190075Sobrien * semantics.c (genrtl_named_return_value): Likewise. 404290075Sobrien (expand_body): Likewise. 404390075Sobrien (genrtl_finish_function): Likewise. 404490075Sobrien * tree.c (cp_tree_equal): Likewise. 404552284Sobrien 404690075Sobrien2001-03-12 Nathan Sidwell <nathan@codesourcery.com> 404752284Sobrien 404890075Sobrien * call.c (convert_like_real): Add extra semantics to INNER 404990075Sobrien parameter. Don't convert to temporary if a user conversion 405090075Sobrien gives us an lvalue that we're about to bind to a reference. 405190075Sobrien Set INNER to indicate pending reference binding on recursive 405290075Sobrien calls. 405352284Sobrien 405490075Sobrien2001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 405552284Sobrien 405690075Sobrien * cp/lex.c: Delete duplicate pending_lang_change. 405752284Sobrien 405890075Sobrien2001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 405952284Sobrien 406090075Sobrien * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 406190075Sobrien Similarly. 406290075Sobrien * cp/repo.c (get_base_filename, open_repo_file): Similarly. 406390075Sobrien * cp/cp-tree.h: Remove file_name_nondirectory prototype. 406418334Speter 406590075Sobrien2001-03-09 Zack Weinberg <zackw@stanford.edu> 406618334Speter 406790075Sobrien * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 406818334Speter 406990075Sobrien2001-03-08 Stan Shebs <shebs@apple.com> 407052284Sobrien 407190075Sobrien * cp-tree.h (set_identifier_local_value): Remove unused decl. 407252284Sobrien 407390075Sobrien2001-03-06 Zack Weinberg <zackw@stanford.edu> 407452284Sobrien 407590075Sobrien * spew.c: Remove references to CPP_OSTRING. 407652284Sobrien 407790075Sobrien2001-03-06 Andrew Haley <aph@redhat.com> 407852284Sobrien 407990075Sobrien * typeck.c (convert_arguments): Check that we have an fndecl. 408052284Sobrien 408190075Sobrien2001-03-05 Andrew Haley <aph@redhat.com> 408252284Sobrien 408390075Sobrien * typeck.c (convert_arguments): Don't do ellipsis conversion for 408490075Sobrien __built_in_constant_p. 408552284Sobrien 408690075Sobrien2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 408752284Sobrien 408890075Sobrien * typeck.c (build_static_cast): Allow enum to enum conversions 408990075Sobrien as per DR 128. 409052284Sobrien 409190075Sobrien2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 409252284Sobrien 409390075Sobrien * class.c (check_field_decls): Pointers to member do not a 409490075Sobrien non-pod struct make, as per DR 148. 409552284Sobrien 409690075Sobrien2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 409752284Sobrien 409890075Sobrien * call.c (joust): cp_pedwarn when using gnu extension concerning 409990075Sobrien worst conversion sequences. 410052284Sobrien 410190075Sobrien2001-03-01 Zack Weinberg <zackw@stanford.edu> 410252284Sobrien 410390075Sobrien * decl.c: Replace all uses of 'boolean' with 'bool'. 410452284Sobrien 410590075Sobrien2001-03-01 Zack Weinberg <zackw@stanford.edu> 410652284Sobrien 410790075Sobrien * lang-specs.h: Add zero initializer for cpp_spec field to 410890075Sobrien all array elements that need one. Don't put an #ifdef inside 410990075Sobrien the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 411090075Sobrien use it. 411152284Sobrien 411290075Sobrien2001-03-01 Nathan Sidwell <nathan@codesourcery.com> 411352284Sobrien 411490075Sobrien Implement using decls inside template functions. 411590075Sobrien * decl2.c (validate_nonmember_using_decl): Don't special case 411690075Sobrien fake_std_node in the global namespace. Don't reject early when 411790075Sobrien processing a template. 411890075Sobrien (do_local_using_decl): Add to statement tree. Don't do further 411990075Sobrien processing when building a template. 412090075Sobrien * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 412152284Sobrien 412290075Sobrien2001-03-01 Nathan Sidwell <nathan@codesourcery.com> 412352284Sobrien 412490075Sobrien * decl2.c (do_nonmember_using_decl): Don't complain if we find 412590075Sobrien same function. Do complain about ambiguating extern "C" 412652284Sobrien declarations. 412752284Sobrien 412890075Sobrien2001-02-28 Nathan Sidwell <nathan@codesourcery.com> 412952284Sobrien 413090075Sobrien Remove floating point and complex type template constant parms. 413190075Sobrien * pt.c (convert_nontype_argument): Remove REAL_TYPE and 413290075Sobrien COMPLEX_TYPE extensions. 413390075Sobrien (invalid_nontype_parm_type_p): Likewise. 413452284Sobrien 413590075Sobrien2001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 413618334Speter 413790075Sobrien * except.c (call_eh_info): Revert "match_function"'s type. 413818334Speter 413990075Sobrien2001-02-27 Nathan Sidwell <nathan@codesourcery.com> 414052284Sobrien 414190075Sobrien Fix ctor vtable vcall offsets. 414290075Sobrien * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 414390075Sobrien (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 414490075Sobrien (get_matching_base): Remove. 414590075Sobrien (get_original_base): New function. 414690075Sobrien (build_vtbl_initializer): Initialize vid.rtti_binfo. 414790075Sobrien Use a virtual thunk for a ctor vtable with an index 414890075Sobrien (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 414990075Sobrien primary base within a constructor vtable. Only set 415090075Sobrien BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 415190075Sobrien when primary base has been lost. 415290075Sobrien * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 415352284Sobrien 415490075Sobrien2001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 415518334Speter 415690075Sobrien * call.c (joust): Ensure more_specialized()'s argument length 415790075Sobrien parameter has correct value for constructors. 415818334Speter 415990075Sobrien2001-02-26 Nathan Sidwell <nathan@codesourcery.com> 416018334Speter 416190075Sobrien * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 416252284Sobrien 416390075Sobrien * decl.c (mark_inlined_fns): Prototype. 416452284Sobrien 416590075Sobrien2001-02-22 Mark Mitchell <mark@codesourcery.com> 416652284Sobrien 416790075Sobrien * spew.c (yylex): Correct handling of friends. 416852284Sobrien 416990075Sobrien2001-02-22 Mark Mitchell <mark@codesourcery.com> 417052284Sobrien 417190075Sobrien * mangle.c (write_encoding): Pass write_function_type the 417290075Sobrien FUNCTION_DECL for the function being encoded. 417390075Sobrien (write_function_type): Pass it along to write_bare_function_type. 417490075Sobrien (write_bare_function_type): Pass it along to write_method_parms. 417590075Sobrien (write_method_parms): Don't mangle the compiler-generated 417690075Sobrien parameters to a constructor or destructor. 417752284Sobrien 417890075Sobrien2001-02-22 Andreas Jaeger <aj@suse.de> 417952284Sobrien 418090075Sobrien * optimize.c: Include toplev.h for 418190075Sobrien note_deferral_of_defined_inline_function prototype. 418252284Sobrien 418390075Sobrien2001-02-22 Jakub Jelinek <jakub@redhat.com> 418452284Sobrien 418590075Sobrien * cp-tree.h (struct lang_decl_inlined_fns): New. 418690075Sobrien (struct lang_decls): Add inlined_fns. 418790075Sobrien (DECL_INLINED_FNS): New macro. 418890075Sobrien * optimize.c (struct inline_data): Add inlined_fns. 418990075Sobrien (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 419090075Sobrien (inlinable_function_p): Likewise, fix typo in comment, 419190075Sobrien function is not inlinable if it already inlined function currently 419290075Sobrien being optimized. 419390075Sobrien (expand_call_inline): Add fn to inlined_fns if necessary. 419490075Sobrien (optimize_function): Initialize inlined_fns. 419590075Sobrien Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 419690075Sobrien * decl.c (mark_inlined_fns): New function. 419790075Sobrien (lang_mark_tree): Call it. 419852284Sobrien 419990075Sobrien2001-02-21 Jason Merrill <jason@redhat.com> 420052284Sobrien 420190075Sobrien * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 420290075Sobrien (DECL_UNINLINABLE): Move to middle-end. 420352284Sobrien 420490075Sobrien * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 420590075Sobrien * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 420690075Sobrien * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 420790075Sobrien * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 420890075Sobrien parms and outer BLOCK. note_deferral_of_defined_inline_function. 420952284Sobrien 421090075Sobrien * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 421190075Sobrien second parm of op=. 421252284Sobrien 421390075Sobrien2001-02-19 Mark Mitchell <mark@codesourcery.com> 421452284Sobrien 421590075Sobrien * decl2.c (set_decl_namespace): Allow explicit instantiations in 421690075Sobrien any namespace. 421752284Sobrien 421890075Sobrien2001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 421952284Sobrien 422090075Sobrien * optimize.c (expand_call_inline): Don't walk subtrees of type 422190075Sobrien nodes. 422252284Sobrien 422390075Sobrien2001-02-18 Mark Mitchell <mark@codesourcery.com> 422452284Sobrien 422590075Sobrien * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 422690075Sobrien for a destructor. 422752284Sobrien 422890075Sobrien2001-02-18 Jason Merrill <jason@redhat.com> 422952284Sobrien 423090075Sobrien Do put the VTT parameter in DECL_ARGUMENTS. 423190075Sobrien * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 423290075Sobrien (current_vtt_parm): New macro. 423390075Sobrien (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 423490075Sobrien (DECL_HAS_VTT_PARM_P): New macro. 423590075Sobrien (DECL_VTT_PARM): Remove. 423690075Sobrien (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 423790075Sobrien * decl.c (duplicate_decls): Only copy the operator code if 423890075Sobrien appropriate. 423990075Sobrien (start_function): Set current_vtt_parm. 424090075Sobrien (lang_mark_tree): Don't mark vtt_parm. 424190075Sobrien * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 424290075Sobrien DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 424390075Sobrien * class.c (build_clone): Maybe remove the VTT parm. 424490075Sobrien * optimize.c (maybe_clone_body): Set up the VTT parm. 424590075Sobrien * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 424690075Sobrien * call.c (build_over_call): Just allow the VTT arg. 424790075Sobrien * method.c (make_thunk): Don't set DECL_VTT_PARM. 424890075Sobrien (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 424990075Sobrien (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 425090075Sobrien * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 425190075Sobrien * error.c (dump_function_decl): Likewise. 425290075Sobrien * call.c (build_user_type_conversion_1, convert_like_real): Abort 425390075Sobrien if we try to call a constructor with in-charge or VTT parms. 425490075Sobrien * method.c (skip_artificial_parms_for): New fn. 425590075Sobrien * call.c (add_function_candidate, build_over_call): Call it. 425690075Sobrien * call.c (build_new_method_call): Use current_vtt_parm. 425790075Sobrien * init.c (expand_virtual_init): Likewise. 425890075Sobrien * class.c (same_signature_p): No longer static. 425990075Sobrien * cp-tree.h: Declare it. 426090075Sobrien * search.c (look_for_overrides_r): Use it. 426152284Sobrien 426290075Sobrien2001-02-17 Mark Mitchell <mark@codesourcery.com> 426352284Sobrien 426490075Sobrien * cp-tree.h (new_abi_rtti_p): Remove. 426590075Sobrien (name_mangling_version): Likewise. 426690075Sobrien (flag_do_squangling): Likewise. 426790075Sobrien * class.c (build_rtti_vtbl_entries): Remove old ABI support. 426890075Sobrien * decl.c (grokfndecl): Likewise. 426990075Sobrien * decl2.c (name_mangling_version): Remove. 427090075Sobrien (flag_do_squangling): Likewise. 427190075Sobrien (lang_f_options): Remove `squangle'. 427290075Sobrien (unsupported_options): Add `squangle'. 427390075Sobrien (cxx_decode_option): Issue a warning about uses of 427490075Sobrien -fname-mangling-version. 427590075Sobrien (finish_file): Remove old ABI support. 427690075Sobrien * pt.c (check_explicit_specialization): Likewise. 427790075Sobrien (tsubst_decl): Likewise. 427890075Sobrien * rtti.c (init_rtti_processing): Likewise. 427990075Sobrien (build_headof): Likewise. 428090075Sobrien (get_tinfo_decl_dynamic): Likewise. 428190075Sobrien (tinfo_from_decl): Likewise. 428290075Sobrien (build_dynamic_cast_1): Likewise. 428390075Sobrien (synthesize_tinfo_var): Likewise. 428490075Sobrien * init.c (build_new): Allow enumeration types for the array-bounds 428590075Sobrien in a direct-new-declarator. 428652284Sobrien 428790075Sobrien * semantics.c (finish_typeof): Resolve OFFSET_REFs. 428852284Sobrien 428990075Sobrien * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 429090075Sobrien TREE_PROTECTED from the template being specialized. 429152284Sobrien 429290075Sobrien2001-02-17 Jason Merrill <jason@redhat.com> 429352284Sobrien 429490075Sobrien * decl2.c (build_artificial_parm): Set TREE_READONLY. 429552284Sobrien 429690075Sobrien * decl.c (bad_specifiers): Allow throw specs on things with 429790075Sobrien pointer-to-function or -member-function type. 429890075Sobrien * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 429990075Sobrien a pmf. 430052284Sobrien 430190075Sobrien2001-02-17 Mark Mitchell <mark@codesourcery.com> 430252284Sobrien 430390075Sobrien * call.c (check_dtor_name): Handle template names correctly. 430452284Sobrien 430590075Sobrien2001-02-16 Jason Merrill <jason@redhat.com> 430618334Speter 430790075Sobrien * cp-tree.h (DECL_USE_VTT_PARM): Remove. 430890075Sobrien * decl2.c (maybe_retrofit_in_chrg): Don't create it. 430990075Sobrien * optimize.c (maybe_clone_body): Don't substitute it. 431090075Sobrien * call.c (build_new_method_call): Check in_chrg instead. 431190075Sobrien * init.c (expand_virtual_init): Likewise. 431218334Speter 431390075Sobrien2001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 431452284Sobrien 431590075Sobrien * decl.c (check_tag_decl): Make sure a typedef for an anonymous 431690075Sobrien class-type introduces at least a type-name. 431752284Sobrien 431890075Sobrien2001-02-16 Jakub Jelinek <jakub@redhat.com> 431952284Sobrien 432090075Sobrien * call.c (convert_like_real): Create a temporary for non-lvalue. 432152284Sobrien 432290075Sobrien2001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 432352284Sobrien 432490075Sobrien * cp-tree.h: Fix typos in comments. 432552284Sobrien 432690075Sobrien2001-02-16 Jason Merrill <jason@redhat.com> 432718334Speter 432890075Sobrien * optimize.c (remap_block): If we're compiling a clone, pass the 432990075Sobrien new block to insert_block. 433052284Sobrien 433190075Sobrien2001-02-16 Mark Mitchell <mark@codesourcery.com> 433218334Speter 433390075Sobrien * semantics.c (finish_asm_stmt): Robustify. 433452284Sobrien 433590075Sobrien2001-02-15 Mark Mitchell <mark@codesourcery.com> 433652284Sobrien 433790075Sobrien * pt.c (push_template_decl_real): Don't remangle the name of a 433890075Sobrien class template. 433952284Sobrien 434090075Sobrien2001-02-15 Jim Meyering <meyering@lucent.com> 434152284Sobrien 434290075Sobrien * Make-lang.in (c++.install-common): Depend on installdirs. 434390075Sobrien (c++.install-info): Likewise. 434490075Sobrien (c++.install-man): Likewise. 434552284Sobrien 434690075Sobrien2001-02-15 Mark Mitchell <mark@codesourcery.com> 434752284Sobrien 434890075Sobrien * typeck2.c (build_m_component_ref): Robustify. 434918334Speter 435090075Sobrien2001-02-15 Alexandre Oliva <aoliva@redhat.com> 435150397Sobrien 435290075Sobrien * friend.c (do_friend): Don't take the nested [template] class 435390075Sobrien into account when deciding whether to warn about the friend 435490075Sobrien function not referring to a template function. 435552284Sobrien 435690075Sobrien2001-02-14 Jakub Jelinek <jakub@redhat.com> 435752284Sobrien 435890075Sobrien * typeck.c (build_unary_op): Clarify error message. 435950397Sobrien 436090075Sobrien2001-02-08 Aldy Hernandez <aldyh@redhat.com> 436150397Sobrien 436290075Sobrien * parse.y (component_constructor_declarator): allow optional 436390075Sobrien parentheses around constructor class name. 436452284Sobrien 436590075Sobrien2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 436652284Sobrien 436790075Sobrien * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 436890075Sobrien section. 436990075Sobrien * init.c (emit_base_init): Remove incorrect comment about 437090075Sobrien virtual bases. 437190075Sobrien * method.c (make_thunk): Fix comment alignment. 437252284Sobrien 437390075Sobrien2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 437452284Sobrien 437590075Sobrien Kill remnants of this is variable. 437690075Sobrien * cp-tree.h (flag_this_is_variable): Remove. 437790075Sobrien * decl2.c (flag_this_is_variable): Remove. 437890075Sobrien * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 437990075Sobrien (build_vbase_path): The path is non-static, even in a cdtor. 438090075Sobrien (resolves_to_fixed_type_p): Add additional return value. 438190075Sobrien * search.c (init_vbase_pointers): Adjust. 438290075Sobrien * tree.c (lvalue_p_1): Adjust. 438390075Sobrien * typeck.c (mark_addressable): Adjust. 438452284Sobrien 438590075Sobrien2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 438652284Sobrien 438790075Sobrien * pt.c (unify): Don't check cv quals of array types. 438852284Sobrien 438990075Sobrien2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 439052284Sobrien 439190075Sobrien * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 439290075Sobrien check whether we already have the type. 439352284Sobrien 439490075Sobrien2001-02-13 Mark Mitchell <mark@codesourcery.com> 439552284Sobrien 439690075Sobrien * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 439790075Sobrien * call.c (build_op_delete_call): Simplify to remove duplicate 439890075Sobrien code. 439990075Sobrien * class.c (clone_function_decl): Don't build the deleting variant 440090075Sobrien of a non-virtual destructor. 440190075Sobrien * decl.c (finish_destructor_body): Don't call delete if this is a 440290075Sobrien non-virtual destructor. 440390075Sobrien * init.c (build_delete): Explicitly call `operator delete' when 440490075Sobrien deleting an object with a non-virtual destructor. 440552284Sobrien 440690075Sobrien2001-02-13 Jason Merrill <jason@redhat.com> 440752284Sobrien 440890075Sobrien * lang-specs.h: Add more __EXCEPTIONS. 440952284Sobrien 441090075Sobrien2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 441152284Sobrien 441290075Sobrien * typeck2.c (process_init_constructor): Check 441390075Sobrien TREE_HAS_CONSTRUCTOR before issuing missing init warning. 441452284Sobrien 441590075Sobrien2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 441652284Sobrien 441790075Sobrien * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 441890075Sobrien Remove spurious information in comment. Allow further 441990075Sobrien adjustments of REFERENCE_TYPE args. 442052284Sobrien 442190075Sobrien2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 442252284Sobrien 442390075Sobrien * errfn.c (cp_deprecated): Tweak diagnostic text. 442490075Sobrien * parse.y (new_initializer): Deprecate initializer lists 442590075Sobrien extension. 442652284Sobrien 442790075Sobrien2001-02-12 Mark Mitchell <mark@codesourcery.com> 442852284Sobrien 442990075Sobrien Remove old ABI support. 443052284Sobrien 443190075Sobrien2001-02-11 Mark Mitchell <mark@codesourcery.com> 443252284Sobrien 443390075Sobrien * decl2.c (flag_vtable_thunks): Always set it to 1. 443490075Sobrien (flag_new_abi): Likewise. 443590075Sobrien * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 443652284Sobrien 443790075Sobrien * Makefile.in (g++spec.o): Fix typo. 443852284Sobrien 443990075Sobrien2001-02-09 Jason Merrill <jason@redhat.com> 444052284Sobrien 444190075Sobrien * lang-specs.h: Restore definition of __EXCEPTIONS. 444252284Sobrien 444390075Sobrien2001-02-08 Jason Merrill <jason@redhat.com> 444452284Sobrien 444590075Sobrien * search.c (shared_member_p): New function. 444690075Sobrien (lookup_field_r): Use it. 444790075Sobrien * cp-tree.h (SHARED_MEMBER_P): Remove. 444852284Sobrien 444990075Sobrien * method.c (process_overload_item): Handle template-dependent array 445090075Sobrien bounds. 445190075Sobrien * pt.c (type_unification_real): If we end up with undeduced nontype 445290075Sobrien parms, try again. 445352284Sobrien 445490075Sobrien * decl.c (lookup_name_real): Tweak warning to refer to decls, not 445590075Sobrien types. 445652284Sobrien 445790075Sobrien * typeck2.c (friendly_abort): Don't say anything if we have 445890075Sobrien earlier errors or sorries. 445952284Sobrien 446090075Sobrien * decl.c (check_tag_decl): Notice attempts to redefine bool and 446190075Sobrien wchar_t. Ignore if in_system_header. 446252284Sobrien 446390075Sobrien * decl.c (maybe_push_cleanup_level): New fn... 446490075Sobrien (start_decl_1): ...split out from here. 446590075Sobrien * cvt.c (build_up_reference): Use it. 446690075Sobrien * cp-tree.h: Declare it. 446752284Sobrien 446890075Sobrien2001-02-07 Mark Mitchell <mark@codesourcery.com> 446952284Sobrien 447090075Sobrien * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 447190075Sobrien spec. 447252284Sobrien 447390075Sobrien2001-02-06 Nathan Sidwell <nathan@codesourcery.com> 447452284Sobrien 447590075Sobrien * pt.c (lookup_template_class): Make sure it's a primary 447690075Sobrien template or template_template_parm when called from the parser. 447790075Sobrien (instantiate_template_class): Add assertion. 447852284Sobrien 447990075Sobrien2001-02-05 Alexandre Oliva <aoliva@redhat.com> 448052284Sobrien 448190075Sobrien * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 448290075Sobrien from error_mark_node. 448352284Sobrien 448490075Sobrien2001-02-05 Nathan Sidwell <nathan@codesourcery.com> 448552284Sobrien 448690075Sobrien Fix specification and implementation bugs in V3 ABI 448790075Sobrien construction vtables. 448890075Sobrien * cp-tree.h (flag_dump_class_layout): New flag. 448990075Sobrien (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 449090075Sobrien (BINFO_LOST_PRIMARY_P): New flag. 449190075Sobrien (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 449290075Sobrien (BINFO_PRIMARY_MARKED_P): Rename to ... 449390075Sobrien (BINFO_PRIMARY_P): ... here. 449490075Sobrien (binfo_via_virtual): New prototype. 449590075Sobrien * decl2.c (flag_dump_class_layout): New flag. 449690075Sobrien (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 449790075Sobrien use `=' as a file name separator. 449890075Sobrien * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 449990075Sobrien bases. 450090075Sobrien (build_vtbl_address): If this is a virtual primary base, then 450190075Sobrien get the vtbl of what it is ultimately primary for. 450290075Sobrien * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 450390075Sobrien for BINFO_PRIMARY_P. 450490075Sobrien (dfs_skip_nonprimary_vbases_markedp): Likewise. 450590075Sobrien (get_shared_vbase_if_not_primary): Likewise. 450690075Sobrien (dfs_get_pure_virtuals): Likewise. 450790075Sobrien (expand_upcast_fixups): Likewise. 450890075Sobrien (fixup_virtual_upcast_offsets): Likewise. 450990075Sobrien (dfs_find_vbase_instance): Likewise. 451090075Sobrien (find_vbase_instance): Likewise. 451190075Sobrien (binfo_from_vbase): Adjust comment to reflect reality. 451290075Sobrien (binfo_via_virtual): New function. 451390075Sobrien * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 451490075Sobrien for binfo walking during VTT construction. 451590075Sobrien (dfs_mark_primary_bases): Remove. 451690075Sobrien (force_canonical_binfo_r): New function. 451790075Sobrien (force_canonical_binfo): New function. 451890075Sobrien (mark_primary_virtual_base): New function. 451990075Sobrien (mark_primary_bases): Walk in inheritance graph order, use 452090075Sobrien mark_primary_virtual_base. 452190075Sobrien (determine_primary_base): Use some more intermediate variables. 452290075Sobrien (dfs_find_final_overrider): Don't check for overriding along a 452390075Sobrien virtual path. 452490075Sobrien (dfs_modify_vtables): Walk into primary virtual bases too. 452590075Sobrien (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 452690075Sobrien (build_base_fields): Likewise. 452790075Sobrien (dfs_set_offset_for_unshared_vbases): Likewise. 452890075Sobrien (layout_virtual_bases): Likewise. 452990075Sobrien (end_of_class): Likewise. 453090075Sobrien (finish_struct_1): Call dump_class_hierarchy, if requested. 453190075Sobrien (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 453290075Sobrien (dump_class_hierarchy_r): Add stream parameter. Emit more information. 453390075Sobrien (dump_class_hierarchy): Add file parameter. Append to file, if 453490075Sobrien required. 453590075Sobrien (finish_vtbls): Adjust accumulate_vtbl_inits call. 453690075Sobrien Use canonical base for virtual bases. 453790075Sobrien (build_vtt): Add more comments. Adjust build_vtt_inits call. 453890075Sobrien (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 453990075Sobrien Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 454090075Sobrien VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 454190075Sobrien virtual VTTs. 454290075Sobrien (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 454390075Sobrien from DATA. We want virtual primary bases and all bases via virtual. 454490075Sobrien Only set BINFO_VPTR_INDEX for top level. Look up from a primary 454590075Sobrien virtual base when not a construction vtable. 454690075Sobrien (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 454790075Sobrien (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 454890075Sobrien Use canonical bases when processing virtual bases. 454990075Sobrien (accumulate_vtbl_inits): We're interested in any base via a 455090075Sobrien virtual path. 455190075Sobrien (dfs_accumulate_vtbl_inits): If this is a primary virtual base 455290075Sobrien within a construction vtable, determine what is being overridden. 455390075Sobrien (build_vtbl_initializer): Add more comments 455490075Sobrien (add_vcall_offset_vtbl_entries_1): Adjust comment. 455590075Sobrien (build_rtti_vtbl_entries): Check if the base has lost its 455690075Sobrien primary. 455752284Sobrien 455890075Sobrien2001-02-05 Mark Mitchell <mark@codesourcery.com> 455952284Sobrien 456090075Sobrien * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 456152284Sobrien 456290075SobrienSun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 456352284Sobrien 456490075Sobrien * decl.c (pushdecl): Call abort instead of fatal. 456590075Sobrien * except.c (decl_is_java_type): Call fatal_error instead of fatal. 456690075Sobrien * init.c (build_new_1): Likewise. 456790075Sobrien (build_java_class_ref): Call internal_error and fatal_error, not fatal. 456890075Sobrien * decl.c (build_typename_type): hash_table_init now returns void. 456990075Sobrien decl.c (init_decl_processing): Make an error non-fatal. 457052284Sobrien 457190075Sobrien2001-02-04 Mark Mitchell <mark@codesourcery.com> 457252284Sobrien 457390075Sobrien * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 457490075Sobrien Document. 457590075Sobrien (CLASSTYPE_INTERFACE_KNOWN): Likewise. 457690075Sobrien (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 457790075Sobrien (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 457890075Sobrien (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 457990075Sobrien * decl.c (maybe_commonize_var): Use the new name-mangling where 458090075Sobrien appropriate. 458190075Sobrien * decl2.c (comdat_linkage): Enhance comments. Make all 458290075Sobrien compiler-generated things static, if COMDAT is not available. 458390075Sobrien (get_tinfo_decl): Do not make typeinfo objects that belong in the 458490075Sobrien library COMDAT. 458590075Sobrien (tinfo_base_init): Use the correct mangled name for typeinfo 458690075Sobrien strings, and push them into the global scope. 458790075Sobrien (typeinfo_in_lib_p): New function. 458890075Sobrien (synthesize_tinfo_var): Use it. 458990075Sobrien (create_real_tinfo_var): Likewise. 459052284Sobrien 459190075Sobrien2001-02-03 Jakub Jelinek <jakub@redhat.com> 459252284Sobrien 459390075Sobrien * decl.c (push_class_binding): Use context_for_name_lookup instead 459490075Sobrien of CP_DECL_CONTEXT. 459590075Sobrien * search.c (context_for_name_lookup): Remove static. Check for NULL 459690075Sobrien context in the loop. 459790075Sobrien * cp-tree.h (context_for_name_lookup): Add prototype. 459852284Sobrien 459990075Sobrien2001-02-02 Jakub Jelinek <jakub@redhat.com> 460052284Sobrien 460190075Sobrien * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 460290075Sobrien * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 460390075Sobrien Remove. 460490075Sobrien * call.c (convert_class_to_reference, build_user_type_conversion_1, 460590075Sobrien add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 460652284Sobrien 460790075Sobrien2001-02-02 Mark Mitchell <mark@codesourcery.com> 460852284Sobrien 460990075Sobrien * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 461090075Sobrien of macros used when compiling g++spec.c. 461190075Sobrien * g++spec.c (lang_specific_driver): Link with the shared 461290075Sobrien libgcc by default. 461352284Sobrien 461490075Sobrien2001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 461552284Sobrien 461690075Sobrien * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 461790075Sobrien make_reference_declarator, make_call_declarator), method.c 461890075Sobrien (implicitly_declare_fn), parse.y (namespace_using_decl, 461990075Sobrien notype_unqualified_id, expr_or_declarator, new_type_id, 462090075Sobrien after_type_declarator, direct_after_type_declarator, 462190075Sobrien notype_declarator, complex_notype_declarator, 462290075Sobrien complex_direct_notype_declarator, qualified_id, 462390075Sobrien notype_qualified_id, overqualified_id, direct_new_declarator, 462490075Sobrien absdcl, direct_abstract_declarator, conversion_declarator), pt.c 462590075Sobrien (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 462690075Sobrien instead of build_parse_node. 462752284Sobrien 462890075Sobrien2001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 462952284Sobrien 463090075Sobrien * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 463190075Sobrien (minus_one_node): Moved to top level gcc directory. Renamed 463290075Sobrien to integer_minus_one_node. 463352284Sobrien 463490075Sobrien * init.c (init_init_processing): Don't set minus_one_node. 463590075Sobrien (build_vec_init): Use integer_minus_one_node. 463652284Sobrien 463790075Sobrien * rtti.c (get_tinfo_decl_dynamic): Likewise. 463852284Sobrien 463990075Sobrien2001-01-28 Jakub Jelinek <jakub@redhat.com> 464052284Sobrien 464190075Sobrien * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 464290075Sobrien identical and they would be replaced with constant, remove 464390075Sobrien MODIFY_EXPR from the tree. 464452284Sobrien 464590075Sobrien2001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 464652284Sobrien 464790075Sobrien * Make-lang.in: Remove all dependencies on defaults.h. 464890075Sobrien * call.c: Don't include defaults.h. 464990075Sobrien * decl.c: Likewise. 465090075Sobrien * decl2.c: Likewise. 465190075Sobrien * except.c: Likewise. 465290075Sobrien * pt.c: Likewise. 465390075Sobrien * rtti.c: Likewise. 465490075Sobrien * tree.c: Likewise. 465590075Sobrien * typeck.c: Likewise. 465652284Sobrien 465790075Sobrien2001-01-25 Jakub Jelinek <jakub@redhat.com> 465852284Sobrien 465990075Sobrien * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 466090075Sobrien operators even in "C" linkage. 466190075Sobrien * method.c (set_mangled_name_for_decl): Likewise. 466290075Sobrien * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 466390075Sobrien overloaded operators in "C" linkage. 466452284Sobrien 466590075Sobrien2001-01-24 Nathan Sidwell <nathan@codesourcery.com> 466652284Sobrien 466790075Sobrien * pt.c (tsubst_decl): Remove IN_DECL parameter. 466890075Sobrien (tsubst_arg_types): Check parameter is not void. 466990075Sobrien (tsubst): Adjust tsubst_decl call. 467052284Sobrien 467190075Sobrien2001-01-24 Nathan Sidwell <nathan@codesourcery.com> 467252284Sobrien 467390075Sobrien * call.c (add_builtin_candidate): Quote std properly, from 467490075Sobrien previous change. 467552284Sobrien 467690075Sobrien2001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 467752284Sobrien 467890075Sobrien * pt.c (check_explicit_specialization): Clone constructors and 467990075Sobrien destructors. 468052284Sobrien 468190075Sobrien2001-01-23 Nathan Sidwell <nathan@codesourcery.com> 468252284Sobrien 468390075Sobrien * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 468490075Sobrien indicates anything special about template depth. Make sure we 468590075Sobrien only count the user visible template classes. 468652284Sobrien 468790075Sobrien2001-01-23 Nathan Sidwell <nathan@codesourcery.com> 468852284Sobrien 468990075Sobrien * call.c (build_conv): Typo in comment. 469090075Sobrien (add_builtin_candidate): Add more explanation. 469190075Sobrien Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 469290075Sobrien Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 469390075Sobrien when we have enumeral types. 469490075Sobrien (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 469590075Sobrien candidates for relops and eqops. 469690075Sobrien (joust): Simplify control flow. Allow a non-template user 469790075Sobrien function to hide a builtin. 469850397Sobrien 469990075Sobrien2001-01-22 Nathan Sidwell <nathan@codesourcery.com> 470052284Sobrien 470190075Sobrien * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 470290075Sobrien (more_specialized): Add deduction parameter. 470390075Sobrien * call.c (joust): Adjust more_specialized call. 470490075Sobrien * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 470590075Sobrien UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 470690075Sobrien (get_bindings_order): Remove. 470790075Sobrien (get_bindings_real): Add DEDUCE parameter. 470890075Sobrien (maybe_adjust_types_for_deduction): Return extra unify flags. Do 470990075Sobrien REFERENCE_TYPE jig for DEDUCE_ORDER. 471090075Sobrien (type_unification_real): Deal with DEDUCE_ORDER. Use result of 471190075Sobrien maybe_adjust_types_for_deduction. 471290075Sobrien (more_specialized): Add DEDUCE parameter. Call get_bindings_real 471390075Sobrien directly. 471490075Sobrien (try_one_overload): Use result of maybe_adjust_types_for_deduction. 471590075Sobrien (check_cv_quals_for_unify): Use new unify qualifier flags. 471690075Sobrien (unify): Clear new unify qualifier flags. 471790075Sobrien (get_bindings_real): Add DEDUCE parameter. 471890075Sobrien (get_bindings): Adjust call to get_bindings_real. 471990075Sobrien (get_bindings_overload): Likewise. 472090075Sobrien (most_specialized_instantiation): Adjust call to 472190075Sobrien more_specialized. 472252284Sobrien 472390075Sobrien2001-01-19 Jason Merrill <jason@redhat.com> 472452284Sobrien 472590075Sobrien * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 472652284Sobrien 472790075Sobrien * decl.c (init_decl_processing): Just force -fvtable-thunks on if 472890075Sobrien -fnew-abi. 472952284Sobrien 473090075Sobrien2001-01-19 Ute Pelkmann <scope.muc@t-online.de> 473152284Sobrien 473290075Sobrien * decl2.c (arg_assoc_class): Fix double iteration logic. 473352284Sobrien 473490075Sobrien2001-01-19 Jason Merrill <jason@redhat.com> 473552284Sobrien 473690075Sobrien * init.c (build_delete): Always call convert_force to strip cv-quals. 473752284Sobrien 473890075Sobrien * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 473990075Sobrien * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 474090075Sobrien * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 474152284Sobrien 474290075Sobrien2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 474352284Sobrien 474490075Sobrien * search.c (get_vbase_1): Count only virtual bases. 474552284Sobrien 474690075Sobrien2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 474752284Sobrien 474890075Sobrien * class.c (duplicate_tag_error): Robustify flag clearing. 474952284Sobrien 475090075Sobrien2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 475152284Sobrien 475290075Sobrien * cp-tree.h (lookup_template_class): Add complain parm. 475390075Sobrien * decl.c (lookup_namespace_name): Adjust call to 475490075Sobrien lookup_template_class. 475590075Sobrien (make_typename_type): Likewise. 475690075Sobrien * semantics.c (finish_template_type): Likewise. 475790075Sobrien * pt.c (lookup_template_class): Add complain parm. Adjust. 475890075Sobrien (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 475990075Sobrien (tsubst): Likewise. 476052284Sobrien 476190075Sobrien2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 476252284Sobrien 476390075Sobrien * pt.c (copy_default_args_to_explicit_spec): Preserve 476490075Sobrien object's CV quals. Reorganize. 476552284Sobrien 476690075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 476752284Sobrien 476890075Sobrien * typeck.c (build_modify_expr): Say `initialization' for 476990075Sobrien INIT_EXPRs. 477090075Sobrien * init.c (build_default_init): Convert to enumeral type, if 477190075Sobrien needed. 477252284Sobrien 477390075Sobrien2001-01-18 Jakub Jelinek <jakub@redhat.com> 477452284Sobrien 477590075Sobrien * parse.y (nomods_initdcl0): Properly set things up for 477690075Sobrien initdcl0_innards. 477752284Sobrien 477890075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 477952284Sobrien 478090075Sobrien * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 478190075Sobrien (type_unification_real): Set it. 478290075Sobrien (unify): Use it. 478352284Sobrien 478490075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 478552284Sobrien 478690075Sobrien * decl.c (finish_destructor_body): Convert to vbase pointer here. 478752284Sobrien 478890075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 478952284Sobrien 479090075Sobrien * semantics.c (begin_class_definition): Check we're not inside a 479190075Sobrien template parm list. 479252284Sobrien 479390075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 479452284Sobrien 479590075Sobrien * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 479690075Sobrien BASELINK_P. 479752284Sobrien 479890075Sobrien2001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 479952284Sobrien 480090075Sobrien * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 480190075Sobrien * call.c (build_over_call): Add comment. 480252284Sobrien 480390075Sobrien2001-01-16 Daniel Berlin <dberlin@redhat.com> 480452284Sobrien 480590075Sobrien * cvt.c (ocp_convert): Handle vector type conversion 480690075Sobrien * typeck2.c (digest_init): Handle vector type initializations 480752284Sobrien 480890075Sobrien2001-01-16 Phil Edwards <pme@sources.redhat.com> 480952284Sobrien 481090075Sobrien * g++spec.c: Don't add libraries needlessly if -fsyntax-only 481190075Sobrien was given. 481252284Sobrien 481390075Sobrien2001-01-15 Nathan Sidwell <nathan@codesourcery.com> 481452284Sobrien 481590075Sobrien * pt.c (check_nontype_parm): Rename to ... 481690075Sobrien (invalid_nontype_parm_type_p): ... here. 481790075Sobrien (process_template_parm): Adjust. 481890075Sobrien (convert_template_argument): Adjust. 481952284Sobrien 482090075Sobrien2001-01-15 Nathan Sidwell <nathan@codesourcery.com> 482152284Sobrien 482290075Sobrien * pt.c (check_nontype_parm): New function. 482390075Sobrien (process_template_parm): Use it. 482490075Sobrien (convert_template_argument): Use it. 482590075Sobrien (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 482690075Sobrien member. 482752284Sobrien 482890075Sobrien2001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 482952284Sobrien 483090075Sobrien * tree.c: Add defaults.h 483190075Sobrien (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 483290075Sobrien * Make-lang.in (cp/tree.o): Add defaults.h. 483352284Sobrien 483490075Sobrien2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 483552284Sobrien 483690075Sobrien * Make-lang.in (CXX_C_OBJS): Add c-format.o. 483752284Sobrien 483890075Sobrien2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 483952284Sobrien 484090075Sobrien * g++.1: Change to be ".so man1/gcc.1". 484152284Sobrien 484290075Sobrien2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 484352284Sobrien 484490075Sobrien * Make-lang.in (c++.info, c++.install-info): Build and install g++ 484590075Sobrien internals info. 484690075Sobrien (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 484790075Sobrien ($(srcdir)/cp/g++int.info): New target. 484890075Sobrien * gxxint.texi: Add info directory entry. Use @@ in email address. 484990075Sobrien * .cvsignore: Update. 485052284Sobrien 485190075Sobrien2001-01-12 Nathan Sidwell <nathan@codesourcery.com> 485252284Sobrien 485390075Sobrien * typeck.c (build_c_cast): Do template processing earlier. 485490075Sobrien Always pedwarn on array casts. 485552284Sobrien 485690075Sobrien2001-01-12 Nathan Sidwell <nathan@codesourcery.com> 485752284Sobrien 485890075Sobrien * friend.c (make_friend_class): Make sure a templated class is 485990075Sobrien actually a template. 486052284Sobrien 486190075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 486252284Sobrien 486390075Sobrien * decl2.c (get_guard): Set linkage from guarded decl. 486452284Sobrien 486590075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 486652284Sobrien 486790075Sobrien * call.c (convert_default_arg): Check for unprocessed 486890075Sobrien DEFAULT_ARG. 486990075Sobrien * cp-tree.h (replace_defarg): Move to spew.c. 487090075Sobrien (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 487190075Sobrien spew.c, which is where they really are. 487290075Sobrien (done_pending_defargs): Declare. 487390075Sobrien (unprocessed_defarg_fn): Declare. 487490075Sobrien * decl.c (replace_defarg): Move to spew.c 487590075Sobrien * parse.y (structsp): Call done_pending_defargs. 487690075Sobrien * spew.c (defarg_fns): Rearrange list structure. 487790075Sobrien (defarg_fnsdone): New static variable. 487890075Sobrien (defarg_depfns): New static variable. 487990075Sobrien (init_spew): Adjust. 488090075Sobrien (add_defarg_fn): Store the type in TREE_TYPE. 488190075Sobrien (do_pending_defargs): Detect and deal with ordering constraints 488290075Sobrien and circularity. 488390075Sobrien (done_pending_defargs): New function. 488490075Sobrien (unprocessed_defarg_fn): New function. 488590075Sobrien (replace_defarg): Moved from decl.c. Robustify. Don't save 488690075Sobrien if circularity detected. 488752284Sobrien 488890075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 488952284Sobrien 489090075Sobrien * pt.c (unify): Check array has a domain, before checking 489190075Sobrien whether it is variable sized. 489252284Sobrien 489390075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 489452284Sobrien 489590075Sobrien * decl.c (grokparms): Unobfuscate and get correct diagnostic for 489690075Sobrien parameters with pointers to arrays of unknown bound. 489752284Sobrien 489890075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 489952284Sobrien 490090075Sobrien * parse.y (template_parm_header, template_spec_header): New 490190075Sobrien reductions. Split out from ... 490290075Sobrien (template_header): ... here. Use them. 490390075Sobrien (template_template_parm): Use template_parm_header. 490490075Sobrien * semantics.c (finish_template_template_parm): Add assert. 490552284Sobrien 490690075Sobrien2001-01-10 Mark Mitchell <mark@codesourcery.com> 490752284Sobrien 490890075Sobrien * mangle.c (write_builtin_type): Fix thinko. 490952284Sobrien 491090075Sobrien * pt.c (copy_default_args_to_explicit_spec_1): New function. 491190075Sobrien (copy_default_args_to_explicit_spec): Likewise. 491290075Sobrien (check_explicit_specialization): Use it. 491352284Sobrien 491490075Sobrien * class.c (finish_struct_1): Remove last argument in call to 491590075Sobrien make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 491690075Sobrien * decl.c (builtin_function): Likewise. 491790075Sobrien (build_cp_library_fn): Likewise. 491890075Sobrien (check_initializer): Likewise. 491990075Sobrien (make_rtl_for_nonlocal_decl): Likewise. 492090075Sobrien (cp_finish_decl): Likewise. 492190075Sobrien (start_function): Likewise. 492290075Sobrien * decl2.c (finish_anon_union): Likewise. 492352284Sobrien * friend.c (do_friend): Likewise. 492490075Sobrien * init.c (build_java_class_ref): Likewise. 492590075Sobrien * method.c (make_thunk): Likewise. 492690075Sobrien * pt.c (tsubst_friend_function): Likewise. 492790075Sobrien * semantics.c (expand_body): Likewise. 492852284Sobrien 492990075Sobrien2001-01-10 Mark Mitchell <mark@codesourcery.com> 493052284Sobrien 493190075Sobrien * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 493290075Sobrien looking at DECL_CLONED_FUNCTION for non-functions. 493352284Sobrien 493490075Sobrien2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 493552284Sobrien 493690075Sobrien * error.c (dump_template_parameter): Use parm to determine how 493790075Sobrien to print default value. 493852284Sobrien 493990075Sobrien2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 494052284Sobrien 494190075Sobrien * class.c (duplicate_tag_error): Clear more flags. 494252284Sobrien 494390075Sobrien2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 494452284Sobrien 494590075Sobrien * call.c (build_new_method_call): Use binfo_for_vbase. 494652284Sobrien 494790075Sobrien2001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 494852284Sobrien 494990075Sobrien * cp-tree.h (flag_cond_mismatch): Don't declare. 495090075Sobrien * decl2.c (flag_cond_mismatch): Don't define. 495190075Sobrien (lang_f_options): Remove cond-mismatch. 495290075Sobrien (unsupported_options): Add cond-mismatch. 495352284Sobrien 495490075Sobrien2001-01-09 Nathan Sidwell <nathan@codesourcery.com> 495552284Sobrien 495690075Sobrien * class.c (handle_using_decl): Reject using of constructor name 495790075Sobrien of sourcing class. Allow injecting of a method with same name as 495890075Sobrien nested class. Fixup error messages. 495952284Sobrien 496090075Sobrien2001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 496152284Sobrien 496290075Sobrien * decl2.c (lang_decode_option): Handle -Wformat=2. 496350397Sobrien 496490075Sobrien2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 496552284Sobrien 496690075Sobrien * cp-tree.h (lang_decl_flags): Rename defined_in_class to 496790075Sobrien initialized_in_class. 496890075Sobrien (DECL_DEFINED_IN_CLASS_P): Rename to ... 496990075Sobrien (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 497090075Sobrien * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 497190075Sobrien (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 497290075Sobrien * pt.c (check_default_tmpl_args): Adjust for 497390075Sobrien DECL_INITIALIZED_IN_CLASS_P. 497490075Sobrien (instantiate_class_template): Likewise. 497590075Sobrien (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 497652284Sobrien 497790075Sobrien * class.c (finish_struct): Constify saved_filename. 497852284Sobrien 497990075Sobrien2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 498052284Sobrien 498190075Sobrien * class.c (duplicate_tag_error): Adjust diagnostic. 498290075Sobrien (finish_struct): Locally set location to start of struct. 498390075Sobrien * decl.c (fixup_anonymous_aggr): Use cp_error_at. 498452284Sobrien 498590075Sobrien2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 498650397Sobrien 498790075Sobrien * decl.c (struct binding_level): Adjust class_shadowed comments 498890075Sobrien to reflect reality. 498990075Sobrien (push_class_level_binding): Adjust comments to reflect reality. 499090075Sobrien Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 499190075Sobrien Don't set TREE_VALUE on the class_shadowed list. 499252284Sobrien 499390075Sobrien2001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 499452284Sobrien 499590075Sobrien * decl2.c (acceptable_java_type): Allow references too. 499690075Sobrien * init.c (build_java_class_ref): When using the new ABI, search 499790075Sobrien `class$' and have it mangled with `mangle_decl.' 499890075Sobrien * mangle.c (write_java_integer_type_codes): New function. 499990075Sobrien (write_builtin_type): Detect and mangle Java integer and real 500090075Sobrien types. 500152284Sobrien 500290075Sobrien2001-01-07 Mark Mitchell <mark@codesourcery.com> 500352284Sobrien 500490075Sobrien * decl2.c (grokfield): Don't accept `asm' specifiers for 500590075Sobrien non-static data members. 500652284Sobrien 500790075Sobrien2001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 500852284Sobrien 500990075Sobrien * expr.c (cplus_expand_expr): Don't reset `target'. 501050397Sobrien 501190075Sobrien2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 501250397Sobrien 501390075Sobrien * cp/decl2.c (cxx_post_options): Call cpp_post_options. 501452284Sobrien 501590075Sobrien2001-01-05 Nathan Sidwell <nathan@codesourcery.com> 501652284Sobrien 501790075Sobrien * parse.y (template_datadef): Check for error_mark_node. 501852284Sobrien 501990075Sobrien2001-01-05 Nathan Sidwell <nathan@codesourcery.com> 502052284Sobrien 502190075Sobrien * cp-tree.def (DEFAULT_ARG): Make `x' class. 502252284Sobrien 502390075Sobrien2001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 502452284Sobrien 502590075Sobrien * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 502690075Sobrien (record_builtin_type): Make non-static. 502790075Sobrien (flag_short_double): Don't declare. 502890075Sobrien (init_decl_processing): Remove the creation of many tree nodes now 502990075Sobrien in c_common_nodes_and_builtins. 503090075Sobrien (build_void_list_node): New function. 503190075Sobrien * decl2.c (flag_short_double, flag_short_wchar): Don't define. 503290075Sobrien * cp-tree.h (flag_short_wchar): Don't declare. 503352284Sobrien 503490075Sobrien2001-01-04 Mark Mitchell <mark@codesourcery.com> 503552284Sobrien 503690075Sobrien * call.c (build_conv): Don't use build1 for USER_CONV. 503790075Sobrien * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 503852284Sobrien 503990075Sobrien2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 504052284Sobrien 504190075Sobrien * lex.c (lang_init): Call c_common_lang_init. 504252284Sobrien 504390075Sobrien2001-01-03 Nathan Sidwell <nathan@codesourcery.com> 504452284Sobrien 504590075Sobrien * search.c (lookup_fnfields_here): Remove. 504690075Sobrien (look_for_overrides_r): Use lookup_fnfields_1. 504790075Sobrien Ignore functions from using declarations. 504852284Sobrien 504990075Sobrien2001-01-03 Nathan Sidwell <nathan@codesourcery.com> 505052284Sobrien 505190075Sobrien Implement exceptions specifiers for implicit member functions. 505290075Sobrien * cp-tree.h (merge_exceptions_specifiers): Declare new function. 505390075Sobrien * method.c (synthesize_exception_spec): New function. 505490075Sobrien (locate_dtor, locate_ctor, locate_copy): New functions. 505590075Sobrien (implicitly_declare_fn): Generate the exception spec too. 505690075Sobrien * search.c (check_final_overrider): Check artificial functions 505790075Sobrien too. 505890075Sobrien * typeck2.c (merge_exception_specifiers): New function. 505950397Sobrien 506090075Sobrien2001-01-03 Jason Merrill <jason@redhat.com> 506152284Sobrien 506290075Sobrien * init.c (build_default_init): New fn. 506390075Sobrien (perform_member_init): Split out from here. 506490075Sobrien (build_new_1): Use it. Simplify initialization logic. 506590075Sobrien (build_vec_init): Take an array, rather than a pointer and maxindex. 506690075Sobrien Speed up simple initializations. Don't clean up if we're assigning. 506790075Sobrien * cp-tree.h: Adjust. 506890075Sobrien * decl2.c (do_static_initialization): Remove TREE_VEC case. 506990075Sobrien * parse.y (new_initializer): Return void_zero_node for (). 507090075Sobrien * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 507190075Sobrien * typeck2.c (digest_init): Only complain about user-written 507290075Sobrien CONSTRUCTORs. 507350397Sobrien 507490075Sobrien2000-12-22 Mike Stump <mrs@wrs.com> 507552284Sobrien 507690075Sobrien * decl2.c: (max_tinst_depth): Increase to 50. 507752284Sobrien 507890075Sobrien2001-01-02 Mark Mitchell <mark@codesourcery.com> 507952284Sobrien 508090075Sobrien * class.c (invalidate_class_lookup_cache): Zero the 508190075Sobrien previous_class_values. 508290075Sobrien * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 508390075Sobrien TREE_INT_CST_HIGH. 508490075Sobrien (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 508590075Sobrien * decl.c (free_bindings): New variable. 508690075Sobrien (push_binding): Don't create a new binding if we have one on the 508790075Sobrien free list. 508890075Sobrien (pop_binding): Put old bindings on the free list. 508990075Sobrien (init_decl_processing): Use size_int, not build_int_2. 509090075Sobrien Register free_bindings as a GC root. 509190075Sobrien (cp_make_fname_decl): Use size_int, not build_int_2. 509290075Sobrien (push_inline_template_parms_recursive): Likewise. 509390075Sobrien (end_template_parm_list): Likewise. 509490075Sobrien (for_each_tempalte_parm): Do not use walk_tree_without_duplicates. 509590075Sobrien (tsubst_template_parms): Use size_int, not build_int_2. 509652284Sobrien (tsubst): Likewise. 509790075Sobrien * rtti.c (get_vmi_pseudo_type_info): Likewise. 509852284Sobrien 509990075Sobrien2001-01-02 Richard Henderson <rth@redhat.com> 510052284Sobrien 510190075Sobrien * parse.y (asm): Set ASM_INPUT_P. 510252284Sobrien 510390075Sobrien2001-01-02 Jason Merrill <jason@redhat.com> 510452284Sobrien 510590075Sobrien * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 510690075Sobrien for v3 ABI. 510752284Sobrien 510890075Sobrien * typeck.c (cp_truthvalue_conversion): New fn. 510990075Sobrien * cvt.c (ocp_convert): Use it. 511052284Sobrien 511190075Sobrien * cp-tree.h: Lose c-common.c decls. 511252284Sobrien 511390075Sobrien * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 511490075Sobrien * cvt.c (convert_to_void): Use type_unknown_p. 511552284Sobrien 511690075Sobrien * typeck.c (strip_all_pointer_quals): Also strip quals from 511790075Sobrien pointer-to-member types. 511852284Sobrien 511990075Sobrien * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 512090075Sobrien parse.y as C. 512152284Sobrien 512290075Sobrien * call.c (build_new_method_call): Do evaluate the object parameter 512390075Sobrien when accessing a static member. 512490075Sobrien * typeck.c (build_component_ref): Likewise. 512552284Sobrien 512690075Sobrien2001-01-02 Andreas Jaeger <aj@suse.de> 512752284Sobrien 512890075Sobrien * decl.c (cp_missing_noreturn_ok_p): New. 512990075Sobrien (init_decl_processing): Set lang_missing_noreturn_ok_p. 513052284Sobrien 513190075Sobrien2000-12-29 Jakub Jelinek <jakub@redhat.com> 513252284Sobrien 513390075Sobrien * decl.c (init_decl_processing): Fix sign of wchar_type_node. 513452284Sobrien 513590075Sobrien2000-12-29 Mark Mitchell <mark@codesourcery.com> 513652284Sobrien 513790075Sobrien * class.c (pushclass): Remove #if 0'd code. 513890075Sobrien * cp-tree.h (overload_template_name): Remove. 513990075Sobrien * decl.c (store_bindings): Simplify. 514090075Sobrien (pop_from_top_level): Likewise. 514190075Sobrien * pt.c (overload_template_name): Remove. 514290075Sobrien (instantiate_decl): Don't call push_to_top_level if it's not 514390075Sobrien needed. 514452284Sobrien 514590075Sobrien2000-12-28 Mark Mitchell <mark@codesourcery.com> 514650397Sobrien 514790075Sobrien * pt.c (register_local_specialization): Don't return a value. 514890075Sobrien (lookup_template_class): Use move-to-front heuristic when looking 514990075Sobrien up template instantiations. 515090075Sobrien (instantiate_decl): Only push_to_top_level when we're actually 515190075Sobrien going to instantiate the template. 515250397Sobrien 515390075Sobrien2000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 515450397Sobrien 515590075Sobrien * search.c (binfo_for_vtable): Return least derived class, not 515690075Sobrien most. Handle secondary vtables. 515752284Sobrien 515890075Sobrien2000-12-22 Jason Merrill <jason@redhat.com> 515952284Sobrien 516090075Sobrien * pt.c (more_specialized): Don't optimize len==0. 516190075Sobrien (fn_type_unification): If we're adding the return type, increase len. 516250397Sobrien 516390075Sobrien * typeck.c (build_binary_op): Fix pmf comparison logic. 516450397Sobrien 516590075Sobrien * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 516690075Sobrien DECL_STATIC_FUNCTION_P. 516752284Sobrien 516890075Sobrien * semantics.c (genrtl_finish_function): Don't try to jump to 516990075Sobrien return_label unless it exists. 517052284Sobrien 517190075Sobrien In partial ordering for a call, ignore parms for which we don't have 517290075Sobrien a real argument. 517390075Sobrien * call.c (joust): Pass len to more_specialized. 517490075Sobrien (add_template_candidate_real): Strip 'this', pass len. 517590075Sobrien * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 517690075Sobrien (get_bindings_order): New fn. Pass len down. 517790075Sobrien (get_bindings_real): Strip 'this', pass len. 517890075Sobrien (fn_type_unification): Likewise. 517990075Sobrien (type_unification_real): Succeed after checking 'len' args. 518090075Sobrien (most_specialized_instantiation): Lose explicit_args parm. 518190075Sobrien * class.c (resolve_address_of_overloaded_function): Strip 'this', 518290075Sobrien pass len. 518350397Sobrien 518490075Sobrien2000-12-21 Jason Merrill <jason@redhat.com> 518550397Sobrien 518690075Sobrien * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 518790075Sobrien DECL_TEMPLATE_RESULT. 518850397Sobrien 518990075Sobrien * search.c (lookup_field_r): Call lookup_fnfields_1, not 519090075Sobrien lookup_fnfields_here. 519150397Sobrien 519290075Sobrien * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 519350397Sobrien 519490075Sobrien * call.c (build_object_call): Also allow conversions that return 519590075Sobrien reference to pointer to function. 519690075Sobrien (add_conv_candidate): Handle totype being ref to ptr to fn. 519790075Sobrien (build_field_call): Also allow members of type reference to function. 519890075Sobrien Lose support for calling pointer to METHOD_TYPE fields. 519952284Sobrien 520090075Sobrien * error.c (dump_expr): Handle *_CAST_EXPR. 520152284Sobrien 520290075Sobrien * typeck2.c (build_scoped_ref): Always convert to the naming class. 520350397Sobrien 520490075Sobrien * tree.c (break_out_cleanups): Lose. 520590075Sobrien * cp-tree.h: Remove prototype. 520690075Sobrien * typeck.c (build_component_ref): Don't break_out_cleanups. 520790075Sobrien (build_compound_expr): Likewise. 520890075Sobrien * semantics.c (finish_expr_stmt): Likewise. 520950397Sobrien 521090075Sobrien2000-12-20 Richard Henderson <rth@redhat.com> 521150397Sobrien 521290075Sobrien * cp-tree.h: Update declarations. 521390075Sobrien * decl.c (finish_case_label): Return the new stmt node. 521490075Sobrien * semantics.c (finish_goto_stmt): Likewise. 521590075Sobrien (finish_expr_stmt, finish_return_stmt): Likewise. 521690075Sobrien (finish_break_stmt, finish_continue_stmt): Likewise. 521790075Sobrien (finish_asm_stmt): Likewise. 521890075Sobrien * parse.y (already_scoped_stmt): Set STMT_LINENO. 521990075Sobrien (compstmt, implicitly_scoped_stmt, stmt): Likewise. 522090075Sobrien (simple_if, simple_stmt): Return the new stmt node. 522190075Sobrien (save_lineno): New. 522250397Sobrien 522390075Sobrien2000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 522450397Sobrien 522590075Sobrien * cp-tree.h: Don't declare warn_long_long. 522650397Sobrien 522790075Sobrien2000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 522850397Sobrien 522990075Sobrien * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 523090075Sobrien IS_AGGR_TYPE. 523150397Sobrien 523290075Sobrien2000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 523350397Sobrien 523490075Sobrien * pt.c (unify): Handle when both ARG and PARM are 523590075Sobrien BOUND_TEMPLATE_TEMPLATE_PARM. 523650397Sobrien 523790075Sobrien2000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 523850397Sobrien 523990075Sobrien * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 524090075Sobrien DECL_TEMPLATE_PARM_P. 524150397Sobrien 524290075Sobrien2000-12-15 Jason Merrill <jason@redhat.com> 524350397Sobrien 524490075Sobrien * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 524550397Sobrien 524690075Sobrien * init.c (build_new_1): Don't strip quals from type. 524750397Sobrien 524890075Sobrien * decl.c (pushdecl): Don't check for linkage on a non-decl. 524950397Sobrien 525090075Sobrien * call.c (build_op_delete_call): See through ARRAY_TYPEs. 525150397Sobrien 525290075Sobrien * call.c (build_new_function_call): Lose space before paren in 525390075Sobrien error message. 525490075Sobrien (build_new_method_call): Likewise. 525550397Sobrien 525690075Sobrien * typeck2.c (build_m_component_ref): Propagate quals from datum. 525750397Sobrien 525890075Sobrien2000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 525950397Sobrien 526090075Sobrien * pt.c (check_explicit_specialization): Propagate default 526190075Sobrien function arguments to explicit specializations. 526252284Sobrien 526390075Sobrien2000-12-13 DJ Delorie <dj@redhat.com> 526452284Sobrien 526590075Sobrien * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 526690075Sobrien and <? operators. 526750397Sobrien 526890075Sobrien2000-12-08 Jason Merrill <jason@redhat.com> 526950397Sobrien 527090075Sobrien * error.c (dump_function_name): Don't let the user see __comp_ctor. 527150397Sobrien 527290075Sobrien Clean up copy-initialization in overloading code. 527390075Sobrien * call.c (build_user_type_conversion_1): Die if we are asked to 527490075Sobrien convert to the same or a base type. 527590075Sobrien (implicit_conversion): Avoid doing so. Lose reference binding code. 527690075Sobrien (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 527790075Sobrien direct-initialization. Also do direct-init part of copy-init. 527890075Sobrien (build_user_type_conversion): Don't provide context to convert_like. 527990075Sobrien * cvt.c (ocp_convert): build_user_type_conversion will now provide 528090075Sobrien the constructor call for copy-init. 528150397Sobrien 528290075Sobrien * pt.c (tsubst_decl): Call clone_function_decl here if this is an 528390075Sobrien instantiation of a member template. 528490075Sobrien (do_decl_instantiation): Not here. 528552284Sobrien 528690075Sobrien2000-12-07 Nathan Sidwell <nathan@codesourcery.com> 528718334Speter 528890075Sobrien * class.c (check_field_decls): Don't special case anonymous 528990075Sobrien fields in error messages. 529090075Sobrien (note_name_declared_in_class): Use %D on diagnostic. 529118334Speter 529290075Sobrien * tree.c (pod_type_p): Use strip_array_types. 529390075Sobrien (cp_valid_lang_attribute): Likewise. 529490075Sobrien * typeck.c (cp_type_quals): Strip arrays separately, to avoid 529590075Sobrien multiple evaluations. 529690075Sobrien (cp_has_mutable_p): Use strip_array_types. 529718334Speter 529890075Sobrien2000-12-07 Nathan Sidwell <nathan@codesourcery.com> 529918334Speter 530090075Sobrien * cp-tree.h (sufficient_parms_p): Declare new function. 530190075Sobrien * call.c (sufficient_parms_p): New function, broken out of ... 530290075Sobrien (add_function_candidate): ... here. Use it. 530390075Sobrien (add_conv_candidate): Use it. 530490075Sobrien * decl.c (grok_ctor_properties): Use it. 530518334Speter 530690075Sobrien2000-12-07 Jakub Jelinek <jakub@redhat.com> 530718334Speter 530890075Sobrien * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 530918334Speter 531090075Sobrien2000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 531118334Speter 531290075Sobrien * decl2.c (lang_decode_option): Handle -Wformat-security. 531318334Speter 531490075Sobrien2000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 531518334Speter 531690075Sobrien * pt.c (verify_class_unification): New function. 531790075Sobrien (get_class_bindings): Use it. 531890075Sobrien (try_class_unification): Tidy. 531990075Sobrien (unify): Handle when argument of a template-id is not 532090075Sobrien template parameter dependent. 532190075Sobrien (template_args_equal): Handle when TREE_CODE's do not match. 532218334Speter 532390075Sobrien2000-12-06 Alexandre Oliva <aoliva@redhat.com> 532418334Speter 532590075Sobrien * lang-specs.h (c++): When invoking the stand-alone preprocessor 532690075Sobrien for -save-temps, pass all relevant -Defines to it, and then don't 532790075Sobrien pass them to cc1plus. 532818334Speter 532990075Sobrien2000-12-05 Will Cohen <wcohen@redhat.com> 533018334Speter 533190075Sobrien * decl.c (finish_case_label): Cleared 533290075Sobrien more_cleanups_ok in surrounding function scopes. 533390075Sobrien (define_label): Likewise. 533418334Speter 533590075Sobrien2000-12-05 Nathan Sidwell <nathan@codesourcery.com> 533618334Speter 533790075Sobrien * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 533890075Sobrien (get_matching_virtual): Remove. 533990075Sobrien (look_for_overrides): Declare new function. 534090075Sobrien * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 534190075Sobrien DECL_VINDEX here. 534290075Sobrien * class.c (check_for_override): Move base class iteration code 534390075Sobrien to look_for_overrides. 534490075Sobrien * search.c (next_baselink): Remove. 534590075Sobrien (get_virtuals_named_this): Remove. 534690075Sobrien (get_virtual_destructor): Remove. 534790075Sobrien (tree_has_any_destructors_p): Remove. 534890075Sobrien (struct gvnt_info): Remove. 534990075Sobrien (check_final_overrider): Remove `virtual' from error messages. 535090075Sobrien (get_matching_virtuals): Remove. Move functionality to ... 535190075Sobrien (look_for_overrides): ... here, and ... 535290075Sobrien (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 535390075Sobrien to be overriding. 535418334Speter 535590075Sobrien2000-12-05 Nathan Sidwell <nathan@codesourcery.com> 535618334Speter 535790075Sobrien * typeck.c (get_delta_difference): If via a virtual base, 535890075Sobrien return zero. 535990075Sobrien * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 536090075Sobrien adjustment. 536118334Speter 536290075Sobrien2000-12-04 Richard Henderson <rth@redhat.com> 536318334Speter 536490075Sobrien * error.c (dump_tree): Use output_add_string not OB_PUTS. 536518334Speter 536690075Sobrien2000-12-04 Jason Merrill <jason@redhat.com> 536718334Speter 536890075Sobrien * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 536990075Sobrien (write_builtin_type): Pass intSI_type_node and the like through 537090075Sobrien type_for_mode. 537190075Sobrien * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 537290075Sobrien Pass intSI_type_node and the like through type_for_mode. 537390075Sobrien * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 537490075Sobrien * pt.c (tsubst, unify): Likewise. 537590075Sobrien * tree.c (walk_tree): Likewise. 537690075Sobrien * error.c (dump_type): Likewise. 537790075Sobrien (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 537818334Speter 537990075Sobrien * Make-lang.in: Tweak top comment for emacs. 538090075Sobrien (cp/TAGS): Restore. 538118334Speter 538290075Sobrien * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 538318334Speter 538490075Sobrien * class.c (clone_function_decl): Robustify. 538518334Speter 538690075Sobrien2000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 538718334Speter 538890075Sobrien * decl.c (store_bindings): Only search in the non modified 538990075Sobrien old_bindings for duplicates. 539018334Speter 539190075Sobrien2000-12-04 Nathan Sidwell <nathan@codesourcery.com> 539218334Speter 539390075Sobrien * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 539490075Sobrien TYPE_POLYMORPHIC_P. 539518334Speter 539690075Sobrien * typeck.c (build_static_cast): Remove unused variable. 539718334Speter 539890075Sobrien2000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 539918334Speter 540090075Sobrien * pt.c: Fix typo in comment. 540118334Speter 540290075Sobrien2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 540318334Speter 540490075Sobrien * decl2.c (warn_format): Remove definition. 540590075Sobrien (lang_decode_option): Handle -Wformat-nonliteral, 540690075Sobrien -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 540718334Speter 540890075Sobrien2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 540918334Speter 541090075Sobrien * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 541190075Sobrien (init_decl_processing): Don't create string_type_node, 541290075Sobrien const_string_type_node, wint_type_node, intmax_type_node, 541390075Sobrien uintmax_type_node, default_function_type, ptrdiff_type_node and 541490075Sobrien unsigned_ptrdiff_type_node. Adjust position of call to 541590075Sobrien c_common_nodes_and_builtins. 541690075Sobrien (identifier_global_value): New function. 541718334Speter 541890075Sobrien2000-12-01 Nathan Sidwell <nathan@codesourcery.com> 541918334Speter 542090075Sobrien * call.c (standard_conversion): Reject pointer to member 542190075Sobrien conversions from ambiguous, inaccessible or virtual bases. 542290075Sobrien * typeck.c (build_static_cast): Don't check pointers to members 542390075Sobrien specially. 542418334Speter 542590075Sobrien2000-11-30 Nathan Sidwell <nathan@codesourcery.com> 542618334Speter 542790075Sobrien * method.c (do_build_copy_constructor): Preserve cv 542890075Sobrien qualifications when accessing source object members. 542990075Sobrien (do_build_assign_ref): Likewise. Remove separate diagnostics for 543090075Sobrien unnamed fields. 543118334Speter 543290075Sobrien2000-11-30 Nathan Sidwell <nathan@codesourcery.com> 543318334Speter 543490075Sobrien * method.c (do_build_assign_ref): Construct appropriately 543590075Sobrien CV-qualified base reference. Don't allow const casts in base 543690075Sobrien conversion. 543718334Speter 543890075Sobrien2000-11-30 Nathan Sidwell <nathan@codesourcery.com> 543918334Speter 544090075Sobrien * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 544190075Sobrien incomplete return type. 544218334Speter 544390075Sobrien2000-11-28 Nathan Sidwell <nathan@codesourcery.com> 544418334Speter 544590075Sobrien * parse.y (base_class.1): Produce a _TYPE not a _DECL. 544690075Sobrien * semantics.c (finish_base_specifier): Accept a _TYPE not a 544790075Sobrien _DECL. 544852284Sobrien 544990075Sobrien2000-11-28 Nathan Sidwell <nathan@codesourcery.com> 545052284Sobrien 545190075Sobrien * spew.c (yyerror): Cope if yylval.ttype is NULL. 545252284Sobrien 545390075Sobrien2000-11-28 Nathan Sidwell <nathan@codesourcery.com> 545418334Speter 545590075Sobrien * decl.c (grokdeclarator): Diagnose undefined template contexts. 545618334Speter 545790075Sobrien2000-11-28 Nathan Sidwell <nathan@codesourcery.com> 545818334Speter 545990075Sobrien * decl.c (grokdeclarator): Do type access control on friend 546090075Sobrien class. 546118334Speter 546290075Sobrien2000-11-27 Nathan Sidwell <nathan@codesourcery.com> 546318334Speter 546490075Sobrien * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 546590075Sobrien bison parser ickiness. 546690075Sobrien * pt.c (tsubst_friend_function): Enter namespace scope when 546790075Sobrien tsubsting the function name. 546890075Sobrien * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 546918334Speter 547090075Sobrien2000-11-27 Nathan Sidwell <nathan@codesourcery.com> 547118334Speter 547290075Sobrien * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 547390075Sobrien * cvt.c (cp_convert_to_pointer): Add force parameter. 547490075Sobrien Allow conversions via virtual base if forced. 547590075Sobrien (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 547690075Sobrien (ocp_convert): Likewise. 547790075Sobrien * search.c (binfo_from_vbase): Return the virtual base's binfo. 547890075Sobrien * typeck.c (get_delta_difference): Adjust handling of virtual 547990075Sobrien bases. 548018334Speter 548190075Sobrien2000-11-26 Mark Mitchell <mark@codesourcery.com> 548252284Sobrien 548390075Sobrien * tree.c (struct list_hash): Remove. 548490075Sobrien (list_hash_table): Make it be an htab. 548590075Sobrien (struct list_proxy): New type. 548690075Sobrien (list_hash_eq): New function. 548790075Sobrien (list_hash_pieces): Renamed from ... 548890075Sobrien (list_hash): ... this. 548990075Sobrien (list_hash_lookup): Remove. 549090075Sobrien (list_hash_add): Remove. 549190075Sobrien (hash_tree_cons): Use the generic hashtable. 549290075Sobrien (mark_list_hash): Remove. 549390075Sobrien (init_tree): Create the hashtable. 549418334Speter 549590075Sobrien2000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 549618334Speter 549790075Sobrien * method.c (build_mangled_C9x_name): Rename to 549890075Sobrien build_mangled_C99_name. Change C9X references in comments to 549990075Sobrien refer to C99. 550018334Speter 550190075Sobrien2000-11-24 Nathan Sidwell <nathan@codesourcery.com> 550218334Speter 550390075Sobrien * parse.y (unary_expr): Move VA_ARG from here ... 550490075Sobrien (primary): ... to here. 550518334Speter 550690075Sobrien2000-11-24 Nathan Sidwell <nathan@codesourcery.com> 550718334Speter 550890075Sobrien * semantics.c (finish_id_expr): If type is error_mark, return 550990075Sobrien error_mark. 551018334Speter 551190075Sobrien2000-11-23 Nathan Sidwell <nathan@codesourcery.com> 551218334Speter 551390075Sobrien * pt.c (lookup_template_class): Simplify loop exit constructs. 551490075Sobrien Cope when there is no partial instantiation of a template 551590075Sobrien template member. 551618334Speter 551790075SobrienThu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com> 551818334Speter 551990075Sobrien * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 552018334Speter 552190075Sobrien2000-11-22 Mark Mitchell <mark@codesourcery.com> 552218334Speter 552390075Sobrien * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 552490075Sobrien prefix. 552518334Speter 552690075Sobrien * pt.c (do_decl_instantiate): Explicitly clone constructors and 552790075Sobrien destructors that haven't already been cloned. 552818334Speter 552990075Sobrien2000-11-20 Richard Henderson <rth@redhat.com> 553018334Speter 553190075Sobrien * parse.y (yyparse_1): Rename the parser entry point. 553218334Speter 553390075Sobrien2000-11-20 Alex Samuel <samuel@codesourcery.com> 553418334Speter 553590075Sobrien * mangle.c (write_name): Use <unscoped-name> for names directly in 553690075Sobrien function scope. 553790075Sobrien (write_unscoped_name): Accept names directly in function scope. 553818334Speter 553990075Sobrien2000-11-20 Nathan Sidwell <nathan@codesourcery.com> 554018334Speter 554190075Sobrien * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 554290075Sobrien * parse.y (extdef): Add EXPORT reduction. 554390075Sobrien * spew.c (yylex): Don't skip export here. 554418334Speter 554590075Sobrien2000-11-19 Mark Mitchell <mark@codesourcery.com> 554618334Speter 554790075Sobrien * decl.c (init_decl_processing): Correct name of pure virtual 554890075Sobrien function under the new ABI. 554990075Sobrien * rtti.c (throw_bad_cast): Likewise, for bad cast function. 555090075Sobrien (throw_bad_typeid): Likewise for bad typeid function. 555118334Speter 555290075Sobrien2000-11-18 Mark Mitchell <mark@codesourcery.com> 555318334Speter 555490075Sobrien * decl.c (grokparms): Don't even function types of `void' type, 555590075Sobrien either. 555690075Sobrien * mangle.c (write_type): Don't crash when confronted with the 555790075Sobrien error_mark_node. 555818334Speter 555990075Sobrien * decl.c (grokparms): Don't create parameters of `void' type. 556018334Speter 556190075Sobrien2000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 556218334Speter 556390075Sobrien * lex.c (mark_impl_file_chain): Delete. 556490075Sobrien (init_parse): Remove call to ggc_add_string_root. No need to 556590075Sobrien ggc_strdup a string constant. Do not add impl_file_chain to GC 556690075Sobrien roots. 556790075Sobrien (handle_pragma_implementation): No need to ggc_strdup main_filename. 556818334Speter 556990075Sobrien2000-11-17 Nathan Sidwell <nathan@codesourcery.com> 557018334Speter 557190075Sobrien * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 557218334Speter 557390075Sobrien2000-11-17 Nathan Sidwell <nathan@codesourcery.com> 557418334Speter 557590075Sobrien * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 557690075Sobrien * decl.c (grokdeclarator): Don't reject void parms here. 557790075Sobrien (require_complete_types_for_parms): Simplify, use 557890075Sobrien complete_type_or_else. 557990075Sobrien (grokparms): Remove bitrot. Remove funcdef parm. 558090075Sobrien Deal with ellipsis parm lists here. 558190075Sobrien * semantics.c (finish_parmlist): Don't append void_list_node 558290075Sobrien here. Set PARMLIST_ELLIPSIS_P. 558318334Speter 558490075Sobrien2000-11-17 Nathan Sidwell <nathan@codesourcery.com> 558518334Speter 558690075Sobrien * typeck2.c (incomplete_type_error): Reorganise to avoid 558790075Sobrien excessive diagnostics. 558818334Speter 558990075Sobrien2000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 559018334Speter 559190075Sobrien * lex.c (struct impl_files, internal_filename): Constify a char *. 559218334Speter 559390075Sobrien2000-11-16 Mark Mitchell <mark@codesourcery.com> 559418334Speter 559590075Sobrien * mangle.c (write_special_name_constructor): Don't generate 559690075Sobrien assembler junk when confronted with an old-style constructor. 559790075Sobrien (write_special_name_destructor): Likewise. 559890075Sobrien (mangle_decl_string): Do it here instead. 559918334Speter 560090075Sobrien2000-11-16 Nathan Sidwell <nathan@codesourcery.com> 560118334Speter 560290075Sobrien * call.c (op_error): Make error messages clearer. 560318334Speter 560490075Sobrien2000-11-15 Mark Mitchell <mark@codesourcery.com> 560518334Speter 560690075Sobrien * decl.c (wrapup_globals_for_namespace): Don't mark things 560790075Sobrien TREE_ASM_WRITTEN when they're not. 560818334Speter 560990075Sobrien2000-11-15 Jason Merrill <jason@redhat.com> 561018334Speter 561190075Sobrien * typeck2.c (friendly_abort): Uncount the error before handing 561290075Sobrien off to fancy_abort. 561318334Speter 561490075Sobrien2000-11-15 Nathan Sidwell <nathan@codesourcery.com> 561518334Speter 561690075Sobrien * typeck.c (lookup_anon_field): Cope with qv qualifiers. 561718334Speter 561890075Sobrien2000-11-14 Mark Mitchell <mark@codesourcery.com> 561918334Speter 562090075Sobrien * class.c (build_vtbl_initializer): Fix typo in comment. 562190075Sobrien * typeck.c (expr_sizeof): Don't crash on errors. 562218334Speter 562390075Sobrien2000-11-14 Jim Wilson <wilson@redhat.com> 562418334Speter 562590075Sobrien * lang-specs.h: Add %2 after %(cc1_options). 562618334Speter 562790075Sobrien2000-11-14 Richard Henderson <rth@redhat.com> 562818334Speter 562990075Sobrien * typeck.c (c_sizeof): Be strict about casting result value 563090075Sobrien back to c_size_type_node. 563190075Sobrien (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 563218334Speter 563390075Sobrien2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 563418334Speter 563590075Sobrien * typeck.c (build_unary_op): Use boolean_increment from 563690075Sobrien c-common.c, moving the relevant code there. 563718334Speter 563890075Sobrien2000-11-11 Jason Merrill <jason@redhat.com> 563918334Speter 564090075Sobrien * typeck.c (mark_addressable): Don't call put_var_into_stack. 564118334Speter 564290075Sobrien * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 564390075Sobrien in inlines. 564418334Speter 564590075Sobrien2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 564618334Speter 564790075Sobrien * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 564890075Sobrien * lex.c (copy_lang_decl): Likewise. 564918334Speter 565090075Sobrien2000-11-09 Mark Mitchell <mark@codesourcery.com> 565118334Speter 565290075Sobrien * dump.c (cp_dump_tree): Don't dump function bodies here. 565318334Speter 565490075Sobrien * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 565590075Sobrien (dump.o): Update dependency list. 565690075Sobrien * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 565790075Sobrien (flag_dump_translation_unit): Likewise. 565890075Sobrien (CP_TYPE_QUALS): Adjust definition. 565990075Sobrien (DECL_C_BIT_FIELD): Remove. 566090075Sobrien (SET_DECL_C_BIT_FIELD): Likewise. 566190075Sobrien (CLEAR_DECL_C_BIT_FIELD): Likewise. 566290075Sobrien (add_maybe_template): Likewise. 566390075Sobrien (strip_array_types): Likewise. 566490075Sobrien (dump_node_to_file): Likewise. 566590075Sobrien (cp_dump_tree): New function. 566690075Sobrien * decl.c (init_decl_processing): Set lang_dump_tree. 566790075Sobrien * decl2.c (flag_dump_translation_unit): Remove. 566890075Sobrien * dump.c: Move most of it to ../c-dump.c. 566990075Sobrien (cp_dump_tree): New function. 567090075Sobrien * pt.c (add_maybe_template): Remove. 567190075Sobrien * typeck.c (strip_array_types): Likewise. 567218334Speter 567390075Sobrien2000-11-07 Eric Christopher <echristo@redhat.com> 567418334Speter 567590075Sobrien * decl.c (init_decl_processing): Change definition of 567690075Sobrien __wchar_t to wchar_t. Remove artificial declaration of 567790075Sobrien wchar_t. 567890075Sobrien * lex.c: Change instances of __wchar_t to wchar_t. 567918334Speter 568090075Sobrien2000-11-09 Nathan Sidwell <nathan@codesourcery.com> 568118334Speter 568290075Sobrien * lex.c (do_identifier): Don't lookup_name for operators. 568390075Sobrien * parse.y (operator): Save looking_for_typename. 568490075Sobrien (unoperator): Restore it. 568590075Sobrien * spew.c (frob_opname): Use nth_token for lookahead. 568618334Speter 568790075Sobrien2000-11-08 Nathan Sidwell <nathan@codesourcery.com> 568818334Speter 568990075Sobrien * decl.c (grok_op_properties): Always use coerce_new_type and 569090075Sobrien coerce_delete_type. 569190075Sobrien * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 569290075Sobrien exception specification. Tidy up. 569390075Sobrien (coerce_delete_type): Preserve exception specification. Tidy up. 569418334Speter 569590075Sobrien2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 569618334Speter 569790075Sobrien * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 569890075Sobrien (push_binding_level), error.c (cp_tree_printer), pt.c 569990075Sobrien (process_partial_specialization, tsubst_template_arg_vector), 570090075Sobrien search.c (lookup_member): Use memset () instead of bzero (). 570118334Speter 570290075Sobrien2000-11-07 Nathan Sidwell <nathan@codesourcery.com> 570318334Speter 570490075Sobrien * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 570518334Speter 570690075Sobrien2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 570718334Speter 570890075Sobrien * Make-lang.in (c++.distdir): Remove. 570918334Speter 571090075Sobrien2000-11-04 Mark Mitchell <mark@codesourcery.com> 571118334Speter 571290075Sobrien * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 571390075Sobrien declarations from different namespaces to be combined. 571418334Speter 571590075Sobrien2000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 571618334Speter 571790075Sobrien * decl.c: Include tm_p.h. 571818334Speter 571990075Sobrien2000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 572018334Speter 572190075Sobrien * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 572218334Speter 572390075Sobrien2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 572418334Speter 572590075Sobrien * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 572690075Sobrien (build_overload_value), repo.c (open_repo_file), xref.c 572790075Sobrien (open_xref_file): Use strchr () and strrchr () instead of index () 572890075Sobrien and rindex (). 572918334Speter 573090075Sobrien2000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 573118334Speter 573290075Sobrien * call.c (build_over_call): Call fold on the CALL_EXPR. 573318334Speter 573490075Sobrien2000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 573518334Speter 573690075Sobrien * error.c (dump_template_decl): Separate template hearders with 573790075Sobrien space not comma. 573818334Speter 573990075Sobrien2000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 574018334Speter 574190075Sobrien * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 574290075Sobrien TS_* flags with corresponding TFF_*. Adjust prototypes of 574390075Sobrien functions (which used to take a tree_string_flags) to take an int. 574418334Speter 574590075Sobrien * cp-tree.h (enum tree_string_flags): Remove 574690075Sobrien (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 574790075Sobrien TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 574890075Sobrien TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 574990075Sobrien TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 575090075Sobrien TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 575190075Sobrien TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 575290075Sobrien (type_as_string, decl_as_string, expr_as_string, 575390075Sobrien context_as_string): Adjust prototype. 575418334Speter 575590075Sobrien * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 575690075Sobrien instead of TS_PLAIN. 575718334Speter 575890075Sobrien * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 575990075Sobrien instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 576090075Sobrien plain `0'. 576118334Speter 576290075Sobrien2000-10-30 Mark Mitchell <mark@codesourcery.com> 576318334Speter 576490075Sobrien * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 576590075Sobrien (linkage_kind): New enumeration. 576690075Sobrien (decl_linkage): New function. 576790075Sobrien * decl2.c (comdat_linkage): Extend comment. 576890075Sobrien * error.c (dump_function_decl): Print the arguments used to 576990075Sobrien instantiate a template, even when not printing the type of the 577090075Sobrien function. 577190075Sobrien * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 577290075Sobrien not TREE_PUBLIC, to test for external linkage. 577390075Sobrien * tree.c (decl_linkage): New function. 577418334Speter 577590075Sobrien2000-10-28 Mark Mitchell <mark@codesourcery.com> 577618334Speter 577790075Sobrien * pt.c (instantiate_decl): Always instantiate static data members 577890075Sobrien initialized in-class. 577918334Speter 578090075Sobrien2000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 578118334Speter 578290075Sobrien * Make-lang.in: Move all build rules here from Makefile.in, 578390075Sobrien adapt to new context. Wrap all rules that change the current 578490075Sobrien directory in parentheses. Expunge all references to $(P). 578590075Sobrien When one command depends on another and they're run all at 578690075Sobrien once, use && to separate them, not ;. Add OUTPUT_OPTION to 578790075Sobrien all object-file generation rules. Delete obsolete variables. 578818334Speter 578990075Sobrien * Makefile.in: Delete. 579090075Sobrien * config-lang.in: Delete outputs= line. 579118334Speter 579290075Sobrien2000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 579318334Speter 579490075Sobrien * error.c (dump_function_decl): Print no space between 579590075Sobrien `ptr-operator' the `type-specifier' of the return type. 579690075Sobrien (dump_type_prefix): Make sure we put space at the appropriate 579790075Sobrien place. 579818334Speter 579990075Sobrien2000-10-23 Jason Merrill <jason@redhat.com> 580018334Speter 580190075Sobrien * call.c (equal_functions): Also call decls_match for extern "C" fns. 580218334Speter 580390075Sobrien2000-10-22 Jason Merrill <jason@redhat.com> 580418334Speter 580590075Sobrien * call.c (build_conditional_expr): Use ocp_convert to force 580690075Sobrien rvalue conversion. 580718334Speter 580890075Sobrien2000-10-22 Mark Mitchell <mark@codesourcery.com> 580918334Speter 581090075Sobrien * call.c (standard_conversion): Use RVALUE_CONVs for all 581190075Sobrien expressions that satisfy lvalue_p, not just those that satisfy 581290075Sobrien real_lvalue_p. 581352284Sobrien 581490075Sobrien * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 581518334Speter 581690075Sobrien * typeck.c (c_sizeof): Return an expression of `size_t' type, 581790075Sobrien not one with TYPE_IS_SIZETYPE set. 581890075Sobrien (dubious_conversion_warnings): Remove special-case code. 581918334Speter 582090075Sobrien2000-10-21 Geoffrey Keating <geoffk@cygnus.com> 582118334Speter 582290075Sobrien * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 582390075Sobrien * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 582490075Sobrien (dump_type_prefix): Print vector-of-int as 'int vector'. 582590075Sobrien (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 582690075Sobrien * tree.c (walk_tree): Handle VECTOR_TYPE. 582718334Speter 582890075Sobrien * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 582918334Speter 583090075Sobrien2000-10-21 Jason Merrill <jason@redhat.com> 583118334Speter 583290075Sobrien * parse.y (operator): Set got_object from got_scope. 583390075Sobrien Set looking_for_typename. 583490075Sobrien * decl.c (lookup_name_real): Clear val after setting from_obj. 583590075Sobrien Reorganize diagnostic. 583618334Speter 583790075Sobrien2000-10-20 Jason Merrill <jason@redhat.com> 583818334Speter 583990075Sobrien * tree.c (walk_tree): Don't walk into default args. 584018334Speter 584190075Sobrien * error.c (dump_expr): Use host_integerp. 584218334Speter 584390075Sobrien2000-10-20 David Edelsohn <edelsohn@gnu.org> 584418334Speter 584590075Sobrien * typeck2.c (abstract_virtuals_error): Use "because" instead of 584690075Sobrien "since" in error message. 584718334Speter 584890075SobrienFri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 584918334Speter 585090075Sobrien * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 585118334Speter 585290075Sobrien2000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 585318334Speter 585490075Sobrien * decl.c (revert_static_member_fn): Fixed typo. 585518334Speter 585690075Sobrien2000-10-19 Mark Mitchell <mark@codesourcery.com> 585718334Speter 585890075Sobrien * class.c (subobject_offset_fn): New type. 585990075Sobrien (dfs_record_base_offsets): Remove. 586090075Sobrien (record_base_offsets): Likewise. 586190075Sobrien (dfs_search_base_offsets): Likewise. 586290075Sobrien (record_subobject_offset): New function. 586390075Sobrien (check_subobject_offset): Likewise. 586490075Sobrien (walk_subobject_offsets): Likewise. 586590075Sobrien (record_subobject_offsets): Likewise. 586690075Sobrien (layout_conflict_p): Reimplement. 586790075Sobrien (layout_nonempty_base_or_field): Correct handling of type 586890075Sobrien conflicts during layout. 586990075Sobrien (layout_empty_base): Likewise. 587090075Sobrien (build_base_field): Adjust to handle new representation of empty 587190075Sobrien base offset table. 587290075Sobrien (build_base_fields): Likewise. 587390075Sobrien (layout_virtual_bases): Likewise. 587490075Sobrien (splay_tree_compare_integer_csts): New function. 587590075Sobrien (layout_class_type): Use a splay_tree, rather than a varray, to 587690075Sobrien represent the offsets of empty bases. 587718334Speter 587890075Sobrien * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 587990075Sobrien * decl.c (select_decl): Don't return declarations that are 588090075Sobrien DECL_ANTICIPATED. 588118334Speter 588290075Sobrien2000-10-18 Mark Mitchell <mark@codesourcery.com> 588318334Speter 588490075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 588590075Sobrien (fake_std_node): New macro. 588690075Sobrien * decl.c (in_std): Rename to ... 588790075Sobrien (in_fake_std): ... this. 588890075Sobrien (flag_no_builtin): Remove. 588990075Sobrien (flag_no_nonansi_builtin): Likewise. 589090075Sobrien (walk_namespaces_r): Use fake_std_node. 589190075Sobrien (push_namespace): Use std_identifier. 589290075Sobrien (pop_namespace): Use in_fake_std. 589390075Sobrien (lookup_name_real): Use fake_std_node. 589490075Sobrien (init_decl_processing): When -fhonor-std, create the `std' 589590075Sobrien namespace. Don't create a dummy fake_std_node in that case. 589690075Sobrien Adjust call to c_common_nodes_and_builtins. Use std_identifier. 589790075Sobrien (builtin_function): Put builtins whose names don't begin 589890075Sobrien with `_' in the std namespace. 589990075Sobrien * decl2.c (flag_no_builtin): Remove. 590090075Sobrien (flag_no_nonansi_builtin): Likewise. 590190075Sobrien (set_decl_namespace): Use fake_std_node. 590290075Sobrien (validate_nonmember_using_decl): Likewise. 590350397Sobrien (do_using_directive): Likewise. 590490075Sobrien (handle_class_head): Likewise. 590590075Sobrien * dump.c (dequeue_and_dump): Likewise. 590690075Sobrien * except.c (init_exception_processing): Use std_identifier. 590790075Sobrien * init.c (build_member_call): Use fake_std_node. 590890075Sobrien * rtti.c (init_rtti_processing): Use std_identifier. 590918334Speter 591090075Sobrien2000-10-17 Mark Mitchell <mark@codesourcery.com> 591118334Speter 591290075Sobrien * cp-tree.h (back_end_hook): Remove declaration. 591390075Sobrien * decl2.c (back_end_hook): Remove definition. 591418334Speter 591590075Sobrien * dump.c (dequeue_and_dump): Dump TREE_USED. 591618334Speter 591790075SobrienTue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> 591818334Speter 591990075Sobrien * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 592018334Speter 592190075Sobrien2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 592218334Speter 592390075Sobrien * decl.c (WINT_TYPE): Define. 592490075Sobrien (init_decl_processing): Create types unsigned_ptrdiff_type_node, 592590075Sobrien c_size_type_node, signed_size_type_node and wint_type_node. 592618334Speter 592790075Sobrien2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 592818334Speter 592990075Sobrien * decl2.c (warn_missing_format_attribute): New variable. 593090075Sobrien (lang_decode_option): Decode -Wmissing-format-attribute. 593118334Speter 593290075Sobrien2000-10-16 Mark Mitchell <mark@codesourcery.com> 593318334Speter 593490075Sobrien * typeck.c (qualify_type): Remove. 593590075Sobrien (composite_pointer_type): Fix handling of conversions to `cv void*'. 593618334Speter 593790075Sobrien2000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 593818334Speter 593990075Sobrien * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 594018334Speter 594190075Sobrien2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 594218334Speter 594390075Sobrien * Makefile.in (parse.c, parse.h): Create atomically. 594418334Speter 594590075Sobrien2000-10-12 Mark Mitchell <mark@codesourcery.com> 594618334Speter 594790075Sobrien * class.c (current_obstack): Remove. 594890075Sobrien * decl.c (ggc_p): Remove. 594990075Sobrien (start_decl): Don't use decl_tree_cons. 595090075Sobrien (grokdeclarator): Don't use build_decl_list. 595190075Sobrien (start_function): Don't use decl_tree_cons. 595290075Sobrien (finish_function): Don't mess with obstacks. 595390075Sobrien * decl2.c (grok_x_components): Don't use build_decl_list. 595490075Sobrien * lex.c (make_call_declarator): Don't call decl_tree_cons. 595590075Sobrien (implicitly_declare_fn): Don't call build_decl_list. 595690075Sobrien * parse.y (frob_specs): Don't call build_decl_list or 595790075Sobrien decl_tree_cons. 595890075Sobrien (expr_or_declarator_intern): Don't call decl_tree_cons. 595990075Sobrien (primary): Don't call build_decl_list. 596090075Sobrien (fcast_or_absdcl): Likewise. 596190075Sobrien (typed_declspecs): Don't call decl_tree_cons. 596290075Sobrien (reserved_declspecs): Don't call build_decl_list. 596390075Sobrien (declmods): Likewise. 596490075Sobrien (reserved_typespecquals): Likewise. 596590075Sobrien (aggr): Likewise. 596690075Sobrien (new_type_id): Likewise. 596790075Sobrien (cv_qualifiers): Likewise. 596890075Sobrien (after_type_declarator_intern): Likewise. 596990075Sobrien (notype_declarator_intern): Likewise. 597090075Sobrien (absdcl_intern): Likewise. 597190075Sobrien (named_parm): Likewise. 597290075Sobrien * pt.c (most_specialized_class): Likewise. 597390075Sobrien * repo.c (temporary_obstack): Make it a structure, not a pointer. 597490075Sobrien (init_repo): Initialize it. 597590075Sobrien * search.c (current_obstack): Remove. 597690075Sobrien * typeck2.c (add_exception_specifier): Don't call build_decl_list. 597718334Speter 597890075Sobrien2000-10-09 Richard Henderson <rth@cygnus.com> 597918334Speter 598090075Sobrien * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 598190075Sobrien (c++ language support bits for libgcc): Remove. 598290075Sobrien (c++.clean): Remove cplib2.txt cleanup. 598390075Sobrien * config-lang.in (headers, lib2funcs): Remove. 598418334Speter 598590075Sobrien * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 598690075Sobrien * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 598790075Sobrien * inc/cxxabi.h, inc/exception, inc/new: Remove files. 598890075Sobrien * inc/new.h, inc/typeinfo: Remove files. 598918334Speter 599090075Sobrien2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 599118334Speter 599290075Sobrien * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 599390075Sobrien defined. 599490075Sobrien (init_decl_processing): Initialize intmax_type_node and 599590075Sobrien uintmax_type_node. 599618334Speter 599790075Sobrien2000-10-06 Richard Henderson <rth@cygnus.com> 599818334Speter 599990075Sobrien * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 600090075Sobrien (original_result_rtx): Remove. 600190075Sobrien * decl.c (save_function_data): Don't clear x_result_rtx. 600290075Sobrien (mark_lang_function): Don't mark it either. 600390075Sobrien * expr.c (fixup_result_decl): Remove. 600490075Sobrien * semantics.c (genrtl_named_return_value): Frob the return decl 600590075Sobrien before calling emit_local_var. 600690075Sobrien (genrtl_finish_function): Don't call fixup_result_decl. 600790075Sobrien Always emit the jump to return_label. 600818334Speter 600990075Sobrien2000-10-06 Nathan Sidwell <nathan@codesourcery.com> 601018334Speter 601190075Sobrien * pt.c (lookup_template_class): Set current access for enum. 601290075Sobrien (tsubst_enum): Set file & line for enum decl. 601318334Speter 601490075Sobrien * spew.c (yylex): Remove unused variable. 601518334Speter 601690075Sobrien2000-10-05 Richard Henderson <rth@cygnus.com> 601718334Speter 601890075Sobrien * semantics.c (genrtl_finish_function): Don't init or check 601990075Sobrien can_reach_end; remove noreturn and return value checks. 602018334Speter 602190075Sobrien2000-10-05 Tom Tromey <tromey@cygnus.com> 602218334Speter 602390075Sobrien * init.c (build_java_class_ref): Use `build_static_name' with a 602490075Sobrien suffix, not a prefix, to build the class object's name. 602518334Speter 602690075Sobrien2000-10-05 Nathan Sidwell <nathan@codesourcery.com> 602718334Speter 602890075Sobrien * cp-tree.h (access_kind): Fix comment typo. 602990075Sobrien * decl2.c (grokfield): Fix diagnostic typo. 603090075Sobrien * semantics.c (finish_template_type): Fix comment typo. 603190075Sobrien (finish_qualified_object_call_expr): Likewise. 603218334Speter 603390075Sobrien2000-10-05 Nathan Sidwell <nathan@codesourcery.com> 603418334Speter 603590075Sobrien * pt.c (tsubst_expr, DECL_STMT case): Don't process if 603690075Sobrien tsubsting fails. 603718334Speter 603890075Sobrien2000-10-05 Nathan Sidwell <nathan@codesourcery.com> 603918334Speter 604090075Sobrien * spew.c (frob_id): New static function. 604190075Sobrien (frob_opname): Use it. 604290075Sobrien (yylex): Use it. 604318334Speter 604490075Sobrien2000-10-01 Mark Mitchell <mark@codesourcery.com> 604518334Speter 604690075Sobrien * decl.c (lang_mark_false_label_stack): Remove. 604790075Sobrien * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 604818334Speter 604990075Sobrien2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 605018334Speter 605190075Sobrien * gxxint.texi: Use @email for formatting email addresses. 605218334Speter 605390075Sobrien2000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 605418334Speter 605590075Sobrien * error.c: Remove direct obstack manipulation. Replace with 605690075Sobrien output_buffer-based formatting. Adjust calls to removed macros. 605790075Sobrien (obstack_chunk_alloc, obstack_chunk_free): Remove. 605890075Sobrien (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 605990075Sobrien OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 606018334Speter 606190075Sobrien2000-09-24 Mark Mitchell <mark@codesourcery.com> 606218334Speter 606390075Sobrien * ir.texi: Move to ../c-tree.texi. 606418334Speter 606590075Sobrien2000-09-20 Jason Merrill <jason@redhat.com> 606618334Speter 606790075Sobrien * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 606818334Speter 606990075Sobrien2000-09-21 Andreas Jaeger <aj@suse.de> 607018334Speter 607190075Sobrien * errfn.c: Move declaration of cp_printer and cp_printers to ... 607290075Sobrien * cp-tree.h: ... here. 607318334Speter 607490075Sobrien * error.c: Remove declaration of cp_printer. 607518334Speter 607690075Sobrien2000-09-20 Mark Mitchell <mark@codesourcery.com> 607718334Speter 607890075Sobrien * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 607918334Speter 608090075Sobrien2000-09-20 Hans-Peter Nilsson <hp@axis.com> 608118334Speter 608290075Sobrien * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 608390075Sobrien users. 608418334Speter 608590075Sobrien2000-09-18 Mark Mitchell <mark@codesourcery.com> 608618334Speter 608790075Sobrien * decl.c (start_function): Robustify. 608818334Speter 608990075Sobrien2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 609018334Speter 609190075Sobrien * cp-tree.h (check_function_format): Accept a `status' parameter. 609218334Speter 609390075Sobrien * call.c, typeck.c: Updates calls to `check_function_format'. 609418334Speter 609590075Sobrien2000-09-17 Geoffrey Keating <geoffk@cygnus.com> 609618334Speter 609790075Sobrien * decl2.c (handle_class_head): Always push some scope even 609890075Sobrien in the error case. 609918334Speter 610090075Sobrien2000-09-16 Mark Mitchell <mark@codesourcery.com> 610118334Speter 610290075Sobrien * cp-tree.h (struct cp_language_function): Remove 610390075Sobrien x_scope_stmt_stack and name_declared. 610490075Sobrien (current_scope_stmt_stack): Remove. 610590075Sobrien (function_name_declared_p): New macro. 610690075Sobrien (struct lang_decl_flags): Use c_lang_decl as a base class. 610790075Sobrien (context): Remove. 610890075Sobrien (struct lang_decl): Replace saved_tree with context. 610990075Sobrien (DECL_FRIEND_CONTEXT): Adjust accordingly. 611090075Sobrien (SET_DECL_FRIEND_CONTEXT): Likewise. 611190075Sobrien (DECL_VIRTUAL_CONTEXT): Likewise. 611290075Sobrien (DECL_SAVED_TREE): Remove. 611390075Sobrien (C_DECLARED_LABEL_FLAG): Likewise. 611490075Sobrien (cplus_expand_expr_stmt): Don't declare. 611590075Sobrien (add_decl_stmt): Likewise. 611690075Sobrien (add_scope_stmt): Likewise. 611790075Sobrien * decl.c (mark_stmt_tree): Remove. 611890075Sobrien (case_compare): Likewise. 611990075Sobrien (finish_case_label): Use c_add_case_label. 612090075Sobrien (init_decl_processing): Set more language-specific hooks. 612190075Sobrien (build_enumerator): Fix typo in comment. 612290075Sobrien (cplus_expand_expr_stmt): Remove. 612390075Sobrien (mark_lang_function): Use mark_c_language_function. 612490075Sobrien (lang_mark_tree): Use c_mark_lang_decl. 612590075Sobrien * decl2.c: Change order of inclusion. 612690075Sobrien * except.c: Likewise. 612790075Sobrien * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 612890075Sobrien back on c_expand_expr. 612990075Sobrien * friend.c: Include expr.h. 613090075Sobrien * init.c: Change order of inclusion. 613190075Sobrien * Makefile.in: Update dependencies. 613290075Sobrien * lex.h (free_lang_decl_chain): Remove. 613390075Sobrien * optimize.c (maybe_clone_body): Use function_name_declared_p. 613490075Sobrien * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 613590075Sobrien it doesn't exist. 613690075Sobrien (instantiate_decl): Use function_name_declared_p. 613790075Sobrien * semantics.c (lang_expand_expr_stmt): Remove. 613890075Sobrien (set_current_function_name_declared): Likewise. 613990075Sobrien (current_function_name_declared): Likewise. 614090075Sobrien (begin_compound_stmt): Use function_name_declared_p. 614190075Sobrien (add_decl_stmt): Remove. 614290075Sobrien (setup_vtbl_ptr): Use function_name_declared_p. 614390075Sobrien (add_scope_stmt): Remove. 614490075Sobrien (current_scope_stmt_stack): New function. 614590075Sobrien (cp_expand_stmt): Don't handle SCOPE_STMTs. 614690075Sobrien (expand_body): Use function_name_declared_p. 614790075Sobrien * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 614890075Sobrien * typeck.c: Change order of includes. 614990075Sobrien (convert_sequence): Remove. 615018334Speter 615190075Sobrien2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 615218334Speter 615390075Sobrien * lex.c (reswords): Add _Complex. 615418334Speter 615590075SobrienThu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 615618334Speter 615790075Sobrien * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 615818334Speter 615990075Sobrien2000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 616018334Speter 616190075Sobrien * init.c (begin_init_stmts): Don't use // comments. 616218334Speter 616390075Sobrien2000-09-12 Jason Merrill <jason@redhat.com> 616418334Speter 616590075Sobrien * decl.c (maybe_deduce_size_from_array_init): Set do_default for 616690075Sobrien all non-extern arrays. 616718334Speter 616890075Sobrien * decl.c (grokdeclarator): Complain about 'friend T' for implicit 616990075Sobrien typenames, too. Downgrade complaint to pedwarn. 617090075Sobrien (xref_tag): Warn about surprising behavior of 'friend struct T'. 617190075Sobrien * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 617290075Sobrien 'class This::Inherited'. 617318334Speter 617490075Sobrien2000-09-12 Mark Mitchell <mark@codesourcery.com> 617518334Speter 617690075Sobrien * decl.c (finish_case_label): Given the LABEL_DECL a 617790075Sobrien DECL_CONTEXT. 617818334Speter 617990075Sobrien2000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 618052284Sobrien 618190075Sobrien * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 618290075Sobrien TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 618390075Sobrien TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 618490075Sobrien TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 618590075Sobrien TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 618690075Sobrien New macros. 618790075Sobrien (sorry_for_unsupported_tree, print_scope_operator, 618890075Sobrien print_left_paren, print_right_paren, print_left_bracket, 618990075Sobrien print_right_bracket, print_whitespace): Likewise. 619090075Sobrien (aggr_variety): Rename to class_key_or_enum. 619190075Sobrien (print_type): Rename to print_type_id. 619290075Sobrien (print_type_specifier_seq, print_simple_type_specifier, 619390075Sobrien print_elaborated_type_specifier, 619490075Sobrien print_rest_of_abstract_declarator, 619590075Sobrien print_parameter_declaration_clause, print_exception_specification, 619690075Sobrien print_nested_name_specifier, print_template_id, 619790075Sobrien typedef_original_name, print_template_argument_list_start, 619890075Sobrien print_template_argument_list_end): New functions. 619918334Speter 620090075Sobrien2000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 620118334Speter 620290075Sobrien * ir.texi: Add more documentation. 620318334Speter 620490075Sobrien2000-09-11 Mark Mitchell <mark@codesourcery.com> 620518334Speter 620690075Sobrien * cp-tree.h (struct saved_scope): Remove x_function_parms. 620790075Sobrien (current_function_parms): Don't define. 620890075Sobrien (struct cp_language_function): Remove parms_stored. 620990075Sobrien (current_function_just_assigned_this): Don't define. 621090075Sobrien (current_function_parms_stored): Likewise. 621190075Sobrien (static_ctors): Declare. 621290075Sobrien (static_dtors): Likewise. 621390075Sobrien (SF_EXPAND): Don't define. 621490075Sobrien (expand_start_early_try_stmts): Remove declaration. 621590075Sobrien (store_parm_decls): Likewise. 621690075Sobrien * decl.c (static_ctors): Don't declare. 621790075Sobrien (static_dtors): Likewise. 621890075Sobrien (struct binding_level): Remove this_block. 621990075Sobrien (poplevel): Remove dead code. 622090075Sobrien (set_block): Likewise. 622190075Sobrien (mark_binding_level): Don't mark this_block. 622290075Sobrien (mark_saved_scope): Don't mark x_function_parms. 622390075Sobrien (init_decl_processing): Don't add current_function_parms as a GC 622490075Sobrien root. 622590075Sobrien (check_function_type): Change prototype. 622690075Sobrien (start_function): Remove RTL-generation code. 622790075Sobrien (expand_start_early_try_stmts): Remove. 622890075Sobrien (store_parm_decls): Give it internal linkage. Remove 622990075Sobrien RTL-generation code. 623090075Sobrien (finish_function): Remove RTL-generation code. 623190075Sobrien * decl2.c (static_ctors): Fix formatting. 623290075Sobrien (static_dtors): Likewise. 623390075Sobrien * method.c (use_thunk): Don't call store_parm_decls. 623490075Sobrien (synthesize_method): Likewise. 623590075Sobrien * optimize.c (maybe_clone_body): Likewise. 623690075Sobrien * parse.y (fn.def2): Likewise. 623790075Sobrien (.set_base_init): Likewise. 623890075Sobrien (nodecls): Likewise. 623990075Sobrien * pt.c (instantiate_decl): Likewise. 624090075Sobrien * rtti.c (synthesize_tinfo_fn): Likewise. 624190075Sobrien * semantics.c (genrtl_try_block): Simplify. 624290075Sobrien (expand_body): Use genrtl_start_function and 624390075Sobrien genrtl_finish_function. 624490075Sobrien (genrtl_start_function): New function. 624590075Sobrien (genrtl_finish_function): Likewise. 624618334Speter 624790075Sobrien2000-09-11 Nathan Sidwell <nathan@codesourcery.com> 624818334Speter 624990075Sobrien * error.c (cp_tree_printer, case 'P'): Append break. 625018334Speter 625190075Sobrien2000-09-11 Nathan Sidwell <nathan@codesourcery.com> 625218334Speter 625390075Sobrien * cp-tree.h (frob_opname): Declare. 625490075Sobrien * parse.y (saved_scopes): New static variable. 625590075Sobrien (cp_parse_init): Adjust. 625690075Sobrien (do_id): If lastiddecl is NULL, do do_identifier. 625790075Sobrien (operator): Save scope information. 625890075Sobrien (unoperator): New reduction. Restore scope information. 625990075Sobrien (operator_name): Append unoperator. Call frob_opname. 626090075Sobrien * spew.c (frob_opname): Define. 626118334Speter 626290075Sobrien2000-09-10 Zack Weinberg <zack@wolery.cumb.org> 626318334Speter 626490075Sobrien * decl.c, rtti.c: Include defaults.h if not already included. 626590075Sobrien Don't define the *_TYPE_SIZE macros. 626618334Speter 626790075Sobrien2000-09-09 Mark Mitchell <mark@codesourcery.com> 626818334Speter 626990075Sobrien * cp-tree.h (push_switch): Change prototype. 627090075Sobrien (check_cp_case_value): Remove declaration. 627190075Sobrien (decl_constant_value): Likewise. 627290075Sobrien * decl.c (struct cp_switch): Add switch_stmt and cases. 627390075Sobrien (case_compare): New function. 627490075Sobrien (push_switch): Set switch_stmt. Initialize cases. 627590075Sobrien (pop_switch): Clean up cases. 627690075Sobrien (define_case_label): Rename to ... 627790075Sobrien (finish_case_label): ... this. Do semantic analysis for case 627890075Sobrien labels here. 627990075Sobrien (start_function): Correct comment. 628090075Sobrien * decl2.c (check_cp_case_value): Remove. 628190075Sobrien * expr.c (do_case): Remove. 628290075Sobrien * pt.c (tsubst_expr): Adjust call to finish_case_label. 628390075Sobrien * semantics.c (genrtl_do_poplevel): Remove declaration. 628490075Sobrien (RECHAIN_STMTS): Remove. 628590075Sobrien (finish_break_stmt): Use build_break_stmt. 628690075Sobrien (finish_continue_stmt): Use build_continue_stmt. 628790075Sobrien (finish_switch_cond): Adjust condition here, rater than in 628890075Sobrien c_expand_start_case. 628990075Sobrien (finish_case_label): Remove. 629090075Sobrien * typeck.c (c_expand_return): Remove. 629190075Sobrien (c_expand_start_case): Likewise. 629218334Speter 629390075Sobrien2000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 629418334Speter 629590075Sobrien * ir.texi: Document type nodes. 629618334Speter 629790075Sobrien2000-09-06 Mark Mitchell <mark@codesourcery.com> 629818334Speter 629990075Sobrien * cp-tree.h (init_cp_semantics): Declare. 630090075Sobrien (genrtl_try_block): Don't declare. 630190075Sobrien (genrtl_handler): Likewise. 630290075Sobrien (genrtl_catch_block): Likewise. 630390075Sobrien (genrtl_ctor_stmt): Likewise. 630490075Sobrien (genrtl_subobject): Likewise. 630590075Sobrien (genrtl_do_poplevel): Likewise. 630690075Sobrien (genrtl_named_return_value): Likewise. 630790075Sobrien * lex.c (init_parse): Call init_cp_semantics. 630890075Sobrien * semantics.c (genrtl_try_block): Give it internal linkage. 630990075Sobrien (genrtl_handler): Likewise. 631090075Sobrien (genrtl_catch_block): Likewise. 631190075Sobrien (genrtl_ctor_stmt): Likewise. 631290075Sobrien (genrtl_subobject): Likewise. 631390075Sobrien (genrtl_do_poplevel): Likewise. 631490075Sobrien (genrtl_named_return_value): Likewise. 631590075Sobrien (lang_expand_stmt): Rename to ... 631690075Sobrien (cp_expand_stmt): ... this. Only handle C++-specific nodes. 631790075Sobrien (init_cp_semantics): Define. 631818334Speter 631990075Sobrien * decl.c (initialize_local_var): Remove RTL-generating code. 632090075Sobrien * semantics.c (genrtl_try_block): Fix formatting. 632118334Speter 632290075Sobrien Move statement-tree facilities from C++ to C front-end. 632390075Sobrien * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 632490075Sobrien (void_zero_node): Remove. 632590075Sobrien (stmt_tree): Likewise. 632690075Sobrien (scope_chain): Adjust. 632790075Sobrien (language_function): Rename to cp_language_function. 632890075Sobrien (cp_function_chain): Adjust. 632990075Sobrien (current_stmt_tree): Remove. 633090075Sobrien (last_tree): Likewise. 633190075Sobrien (last_expr_type): Likewise. 633290075Sobrien (struct lang_decl): Adjust. 633390075Sobrien (STMT_IS_FULL_EXPR_P): Remove. 633490075Sobrien (add_tree): Remove. 633590075Sobrien (begin_stmt_tree): Likewise. 633690075Sobrien (finish_stmt_tree): Likewise. 633790075Sobrien (walk_tree_fn): Likewise. 633890075Sobrien (walk_stmt_tree): Likewise. 633990075Sobrien * class.c (finish_struct): Replace use of add_tree with add_stmt. 634090075Sobrien * decl.c (mark_stmt_tree): Adjust type. 634190075Sobrien (init_decl_processing): Don't build void_zero_node. 634290075Sobrien (initialize_local_var): Adjust usage of current_stmt_tree. 634390075Sobrien (finish_enum): Use add_stmt, not add_tree. 634490075Sobrien (save_function_data): Adjust use of language_function. 634590075Sobrien (finish_constructor_body): Use add_stmt, not add_tree. 634690075Sobrien (finish_destructor_body): Likewise. 634790075Sobrien (push_cp_function_context): Adjust use of language_function. 634890075Sobrien (pop_cp_function_context): Likewise. 634990075Sobrien (mark_lang_function): Likewise. 635090075Sobrien (mark_cp_function_context): Likewise. 635190075Sobrien * init.c (build_aggr_init): Adjust use of current_stmt_tree. 635290075Sobrien (build_vec_init): Likewise. 635390075Sobrien * semantics.c (SET_LAST_STMT): Remove. 635490075Sobrien (RECHAIN_STMTS): Don't use it. 635590075Sobrien (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 635690075Sobrien (current_stmt_tree): Define. 635790075Sobrien (add_tree): Remove. 635890075Sobrien (finish_goto_stmt): Use add_stmt, not add_tree. 635990075Sobrien (finish_expr_stmt): Likewise. 636090075Sobrien (begin_if_stmt): Likewise. 636190075Sobrien (finish_then_clause): Likewise. 636290075Sobrien (begin_while_stmt): Likewise. 636390075Sobrien (begin_do_stmt): Likewise. 636490075Sobrien (finish_return_stmt): Likewise. 636590075Sobrien (begin_for_stmt): Likewise. 636690075Sobrien (finish_break_stmt): Likewise. 636790075Sobrien (finish_continue_stmt): Likewise. 636890075Sobrien (begin_switch_stmt): Likewise. 636990075Sobrien (finish_case_label): Likewise. 637090075Sobrien (begin_try_block): Likewise. 637190075Sobrien (begin_function_try_block): Likewise. 637290075Sobrien (begin_handler): Likewise. 637390075Sobrien (begin_catch_block): Likewise. 637490075Sobrien (begin_compound_stmt): Likewise. 637590075Sobrien (begin_asm_stmt): Likewise. 637690075Sobrien (finish_asm_stmt): Likewise. 637790075Sobrien (finish_label_stmt): Likewise. 637890075Sobrien (add_decl_stmt): Likewise. 637990075Sobrien (finish_subobject): Likewise. 638090075Sobrien (finish_decl_cleanup): Likewise. 638190075Sobrien (finish_named_return_value): Likewise. 638290075Sobrien (setup_vtbl_ptr): Likewise. 638390075Sobrien (add_scope_stmt): Likewise. 638490075Sobrien (finish_stmt_expr): Likewise. 638590075Sobrien (prune_unused_decls): Remove. 638690075Sobrien (begin_stmt_tree): Likewise. 638790075Sobrien (finish_stmt_tree): Likewise. 638890075Sobrien (prep_stmt): Adjust use of current_stmt_tree. 638990075Sobrien (lang_expand_stmt): Likewise. 639090075Sobrien * tree.c (statement_code_p): Remove. 639190075Sobrien (cp_statement_code_p): New function. 639290075Sobrien (walk_stmt_tree): Remove. 639390075Sobrien (init_tree): Set lang_statement_code_p. 639418334Speter 639590075Sobrien2000-09-06 Zack Weinberg <zack@wolery.cumb.org> 639618334Speter 639790075Sobrien Integrated preprocessor. 639818334Speter 639990075Sobrien * Make-lang.in, Makefile.in: Remove all references to input.c, 640090075Sobrien gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 640190075Sobrien * gxx.gperf, hash.h, input.c: Delete. 640290075Sobrien * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 640390075Sobrien initialized properly. 640418334Speter 640590075Sobrien * class.c (fixup_pending_inline): Take a tree, not a 640690075Sobrien struct pending_inline *. All callers changed. 640790075Sobrien (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 640890075Sobrien RID_PROTECTED entries in ridpointers[] array here. 640990075Sobrien * decl.c (duplicate_decls): Do not refer to struct 641090075Sobrien pending_inline. 641190075Sobrien (record_builtin_type, init_decl_processing): Use RID_MAX not 641290075Sobrien CP_RID_MAX. 641390075Sobrien (grokdeclarator): Use C_IS_RESERVED_WORD. 641490075Sobrien * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 641590075Sobrien cpplib. 641690075Sobrien (grok_x_components): Do not inspect pending_inlines chain. 641718334Speter 641890075Sobrien * cp-tree.h (struct lang_identifier): Add rid_code entry. 641990075Sobrien (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 642090075Sobrien (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 642190075Sobrien (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 642290075Sobrien TIME_IDENTIFIER_FILEINFO): Kill. 642390075Sobrien Update prototypes. 642490075Sobrien * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 642590075Sobrien single 32-bit word. 642690075Sobrien * parse.y: Call do_pending_inlines unconditionally. 642790075Sobrien reinit_parse_for_method is now snarf_method. fn.defpen is no 642890075Sobrien longer necessary. Remove unnecessary <itype> annotation on 642990075Sobrien SCOPE. Do not refer to end_of_file or struct pending_inline. 643090075Sobrien * semantics.c (begin_inline_definitions): Call 643190075Sobrien do_pending_inlines unconditionally. 643218334Speter 643390075Sobrien * lex.c: Remove all code now shared with C front end. 643490075Sobrien Initialize cpplib properly if USE_CPPLIB. Put reserved words 643590075Sobrien into the get_identifier table. Rewrite pragma handling to 643690075Sobrien work with the registry. Move code to save tokens for later 643790075Sobrien processing to spew.c. 643818334Speter 643990075Sobrien * spew.c: Rewrite everything in terms of token streams instead 644090075Sobrien of text. Move routines here from lex.c / input.c as 644190075Sobrien appropriate. GC-mark trees hanging off the pending inlines 644290075Sobrien chain. 644318334Speter 644490075Sobrien2000-09-06 Mark Mitchell <mark@codesourcery.com> 644518334Speter 644690075Sobrien * NEWS: Mention that the named return value extension has been 644790075Sobrien deprecated. 644890075Sobrien * cp-tree.h (original_result_rtx): Define. 644990075Sobrien (TREE_REFERENCE_EXPR): Remove. 645090075Sobrien (DECL_VPARENT): Likewise. 645190075Sobrien (pushdecl_nonclass_level): Likewise. 645290075Sobrien (store_return_init): Likewise. 645390075Sobrien (reinit_lang_specific): Likewise. 645490075Sobrien (genrtl_named_return_value): Change prototype. 645590075Sobrien * decl.c (original_result_rtx): Remove. 645690075Sobrien (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 645790075Sobrien Do not generate RTL for local variables here. 645890075Sobrien (store_return_init): Remove. 645990075Sobrien * semantics.c (genrtl_named_return_value): Simplify. Fold in 646090075Sobrien store_return_init. 646190075Sobrien (finish_named_return_value): Adjust accordingly. Warn that this 646290075Sobrien extension is deprecated. 646390075Sobrien (lang_expand_stmt): Adjust call to genrtl_named_return_value. 646418334Speter 646590075Sobrien2000-09-06 Nathan Sidwell <nathan@codesourcery.com> 646618334Speter 646790075Sobrien * pt.c (type_unification_real): Replace switch with if. 646890075Sobrien (unify): Tsubst non-type parms before comparing. 646918334Speter 647090075Sobrien2000-09-06 Nathan Sidwell <nathan@codesourcery.com> 647118334Speter 647290075Sobrien * error.c (dump_typename): New function, broken out of ... 647390075Sobrien (dump_type): ... here. Use it. 647490075Sobrien * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 647518334Speter 647690075Sobrien2000-09-06 Nathan Sidwell <nathan@codesourcery.com> 647718334Speter 647890075Sobrien * init.c (build_offset_ref): Deal with namespace scoped 647990075Sobrien TEMPLATE_ID_EXPRs. 648018334Speter 648190075Sobrien2000-09-06 Nathan Sidwell <nathan@codesourcery.com> 648218334Speter 648390075Sobrien * class.c (resolve_address_of_overloaded_function): Add 648490075Sobrien explanation message. 648590075Sobrien * decl.c (define_case_label): Reformat explanation. 648690075Sobrien * decl2.c (finish_static_data_member_decl): Likewise. 648790075Sobrien (grokfield): Likewise. 648850397Sobrien * friend.c (do_friend): Likewise. 648918334Speter 649090075Sobrien2000-09-05 Zack Weinberg <zack@wolery.cumb.org> 649118334Speter 649290075Sobrien * tree.c (walk_tree): Expose tail recursion. 649390075Sobrien (walk_stmt_tree): New function. 649490075Sobrien * cp-tree.h: Prototype walk_stmt_tree. 649590075Sobrien * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 649690075Sobrien the BLOCKs directly. If a BLOCK has no variables after 649790075Sobrien pruning, discard it. 649890075Sobrien (finish_stmt_tree): Use walk_stmt_tree. No need to save and 649990075Sobrien restore the line number. 650018334Speter 650190075Sobrien2000-09-05 Mark Mitchell <mark@codesourcery.com> 650218334Speter 650390075Sobrien * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 650490075Sobrien (pt.o): Remove dependency on HTAB_H. 650590075Sobrien * cp-tree.h: Include hashtab.h. 650690075Sobrien (walk_tree): Change prototype. 650790075Sobrien (walk_tree_without_duplicates): New function. 650890075Sobrien * decl.c (check_default_argument): Use it. 650990075Sobrien * optimize.c (remap_decl): Adjust calls to walk_tree. 651090075Sobrien (copy_body): Likewise. 651190075Sobrien (expand_calls_inline): Likewise. 651290075Sobrien (calls_setjmp_p): Use walk_tree_without_duplicates. 651390075Sobrien * pt.c: Don't include hashtab.h. 651490075Sobrien (for_each_template_parm): Use walk_tree_without_duplicates. 651590075Sobrien * semantics.c (finish-stmt_tree): Likewise. 651690075Sobrien (expand_body): Likewise. 651790075Sobrien * tree.c (walk_tree): Add additional parameter. 651890075Sobrien (walk_tree_without_duplicates): New function. 651990075Sobrien (count_trees): Use it. 652090075Sobrien (verify_stmt_tree): Adjust call to walk_tree. 652190075Sobrien (find_tree): Use walk_tree_without_duplicates. 652290075Sobrien (no_linkage_check): Likewise. 652390075Sobrien (break_out_target_exprs): Adjust call to walk_tree. 652490075Sobrien (cp_unsave): Likewise. 652518334Speter 652690075Sobrien2000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 652718334Speter 652890075Sobrien * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 652990075Sobrien (TEMPLATE_TEMPLATE_PARM): Adjust comment. 653090075Sobrien * cp-tree.h (TYPE_BINFO): Adjust comment. 653190075Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 653290075Sobrien (TEMPLATE_TYPE_PARM_INDEX): Likewise. 653390075Sobrien (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 653490075Sobrien (TYPE_TEMPLATE_INFO): Likewise. 653590075Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 653690075Sobrien * class.c (push_nested_class): Likewise. 653790075Sobrien * decl.c (lookup_name_real): Likewise. 653890075Sobrien (grokdeclarator): Likewise. 653990075Sobrien (grok_op_properties): Likewise. 654090075Sobrien (xref_tag): Likewise. 654190075Sobrien (xref_basetypes): Likewise. 654250397Sobrien * decl2.c (constructor_name_full): Likewise. 654390075Sobrien (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 654490075Sobrien (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 654590075Sobrien * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 654690075Sobrien (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 654790075Sobrien (dump_type_suffix): Likewise. 654890075Sobrien * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 654990075Sobrien instead. 655090075Sobrien (get_aggr_from_typedef): Likewise. 655190075Sobrien * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 655290075Sobrien (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 655390075Sobrien (write_template_parm): Likewise. 655490075Sobrien (write_template_template_parm): Check tree code instead of 655590075Sobrien using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 655690075Sobrien * method.c (build_overload_nested_name): Add 655790075Sobrien BOUND_TEMPLATE_TEMPLATE_PARM. 655890075Sobrien (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 655990075Sobrien * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 656090075Sobrien * pt.c (convert_template_argument): Check tree code instead of 656190075Sobrien using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 656290075Sobrien (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 656390075Sobrien (for_each_template_parm): Adjust comment. 656490075Sobrien (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 656590075Sobrien (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 656690075Sobrien (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 656790075Sobrien template_args_equal to compare template template parameter cases. 656890075Sobrien * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 656990075Sobrien * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 657090075Sobrien instead. 657190075Sobrien * tree.c (copy_template_template_parm): Decide whether to create 657290075Sobrien a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 657390075Sobrien (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 657490075Sobrien (copy_tree_r): Likewise. 657590075Sobrien * typeck.c (comptypes): Likewise. Check tree code instead of 657690075Sobrien using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 657718334Speter 657890075Sobrien2000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 657918334Speter 658090075Sobrien * decl.c (finish_function): Move the code for handling functions 658190075Sobrien marked with the constructor and destructor attributes inside the 658290075Sobrien expand_p block. 658318334Speter 658490075Sobrien2000-09-04 Nathan Sidwell <nathan@codesourcery.com> 658518334Speter 658690075Sobrien * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 658718334Speter 658890075Sobrien2000-09-04 Nathan Sidwell <nathan@codesourcery.com> 658918334Speter 659090075Sobrien * pt.c (lookup_template_class): Remove abort. 659190075Sobrien * tree.c (get_type_decl): Allow error_mark_node. 659218334Speter 659390075Sobrien2000-09-04 Nathan Sidwell <nathan@codesourcery.com> 659418334Speter 659590075Sobrien * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 659690075Sobrien TEMPLATE_ID_EXPRs. 659718334Speter 659890075Sobrien2000-09-03 Mark Mitchell <mark@codesourcery.com> 659918334Speter 660090075Sobrien * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 660190075Sobrien new ABI mangling. 660218334Speter 660390075Sobrien2000-09-01 Nathan Sidwell <nathan@codesourcery.com> 660418334Speter 660590075Sobrien * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 660690075Sobrien union tag mismatch error reporting. 660718334Speter 660890075Sobrien2000-09-01 Nathan Sidwell <nathan@codesourcery.com> 660918334Speter 661090075Sobrien * call.c (build_scoped_method_call): Check it is not a namespace. 661118334Speter 661290075Sobrien2000-08-30 Jason Merrill <jason@redhat.com> 661318334Speter 661490075Sobrien * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 661518334Speter 661690075Sobrien * tree.c (bot_manip): Check TREE_CONSTANT rather than 661790075Sobrien !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 661890075Sobrien build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 661918334Speter 662090075Sobrien * decl.c (start_function): Always call make_function_rtl. 662118334Speter 662290075Sobrien2000-08-29 Zack Weinberg <zack@wolery.cumb.org> 662318334Speter 662490075Sobrien * semantics.c (prune_unused_decls): New function. 662590075Sobrien (finish_stmt_tree): Call it via walk_tree. 662618334Speter 662790075Sobrien2000-08-29 Zack Weinberg <zack@wolery.cumb.org> 662818334Speter 662990075Sobrien * class.c (build_secondary_vtable): Constify a char *. 663090075Sobrien * decl.c (init_decl_processing): Initialize function_id_node, 663190075Sobrien pretty_function_id_node, and func_id_node. 663290075Sobrien * input.c (struct input_source): Constify 'str'. 663390075Sobrien (feed_input): Constify first argument. 663490075Sobrien * mangle.c (write_identifier): Constify argument. 663590075Sobrien * pt.c (mangle_class_name_for_template): Constify argument. 663618334Speter 663790075Sobrien2000-08-29 Mark Mitchell <mark@codesourcery.com> 663818334Speter 663990075Sobrien * typeck.c (mark_addressable): Remove code that pokes around in 664090075Sobrien RTL. 664118334Speter 664290075Sobrien2000-08-28 Jason Merrill <jason@redhat.com> 664318334Speter 664490075Sobrien * lex.c (file_name_nondirectory): Move to toplev.c. 664518334Speter 664690075Sobrien * cp-tree.h (LOCAL_CLASS_P): New macro. 664790075Sobrien * class.c (finish_struct_1): Use it. 664818334Speter 664990075Sobrien2000-08-27 Alex Samuel <samuel@codesourcery.com> 665018334Speter 665190075Sobrien * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 665290075Sobrien (write_encoding): Pass another argument to write_name. 665390075Sobrien (write_name): Add ignore_local_scope parameter. Fix handling of 665490075Sobrien local names. 665590075Sobrien (write_nested_name): Use write_unqualified_name. 665690075Sobrien (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 665790075Sobrien (write_template_prefix): Use write_unqualified_name. 665890075Sobrien (write_component): Remove. 665990075Sobrien (write_local_name): Add parameter. Use direct local entity to 666090075Sobrien discriminator calculation. 666190075Sobrien (write_class_enum_type): Pass another argument to write_name. 666290075Sobrien (write_template_template_arg): Likewise. 666390075Sobrien (make_guard_variable): Likewise. 666418334Speter 666590075Sobrien2000-08-27 Jason Merrill <jason@redhat.com> 666618334Speter 666790075Sobrien * decl.c (pushdecl): Matching decls for local externs are found in 666890075Sobrien the current level. Propagate linkage information from previous 666990075Sobrien declarations. 667018334Speter 667190075Sobrien2000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 667218334Speter 667390075Sobrien * ir.texi (Expressions): Fix typo. 667418334Speter 667590075Sobrien2000-08-25 Greg McGary <greg@mcgary.org> 667618334Speter 667790075Sobrien * tree.c (init_tree): Use ARRAY_SIZE. 667818334Speter 667990075Sobrien2000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 668018334Speter 668190075Sobrien * error.c (cp_tree_printer): Rework. 668218334Speter 668390075Sobrien2000-08-25 Mark Mitchell <mark@codesourcery.com> 668418334Speter 668590075Sobrien * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 668690075Sobrien dyn-string.o. 668790075Sobrien (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 668890075Sobrien (cp-demangle.o): Remove target. 668990075Sobrien (dyn-string.o): Likewise. 669018334Speter 669190075Sobrien * decl.c (grokfndecl): Require that `main' return an `int'. 669290075Sobrien * mangle.c (write_encoding): Don't mangle return types for 669390075Sobrien conversion functions. 669418334Speter 669590075Sobrien2000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 669618334Speter 669790075Sobrien * error.c (tree_formatting_info): New data type. 669890075Sobrien (tree_being_formatted): New macro. 669990075Sobrien (tree_formatting_flags): Likewise. 670090075Sobrien (put_whitespace): Likewise. 670190075Sobrien (print_tree_identifier): Likewise. 670290075Sobrien (print_identifier): Likewise. 670390075Sobrien (cp_tree_printer, print_function_argument_list, print_declaration, 670490075Sobrien print_expression, print_function_declaration, 670590075Sobrien print_function_parameter, print_type, print_cv_qualifier): New 670690075Sobrien functions. 670790075Sobrien (init_error): Initialize lang_printer. 670818334Speter 670990075Sobrien2000-08-24 Jason Merrill <jason@redhat.com> 671018334Speter 671190075Sobrien * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 671290075Sobrien adjustment necessary. 671318334Speter 671490075Sobrien2000-08-24 Greg McGary <greg@mcgary.org> 671518334Speter 671690075Sobrien * cp-tree.h (MAIN_NAME_P): Remove macro. 671718334Speter 671890075Sobrien2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 671918334Speter 672090075Sobrien * error.c (print_instantiation_context): Don't forget to flush the 672190075Sobrien buffer. 672218334Speter 672390075Sobrien2000-08-23 Jason Merrill <jason@redhat.com> 672418334Speter 672590075Sobrien * typeck.c (build_ptrmemfunc): Save the input pmf. 672618334Speter 672790075Sobrien * method.c (process_modifiers): Use same_type_p. 672818334Speter 672990075Sobrien2000-08-23 Mark Mitchell <mark@codesourcery.com> 673018334Speter 673190075Sobrien * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 673290075Sobrien * mangle.c (write_function_type): Change prototype. 673390075Sobrien (write_encoding): Don't mangle return types for 673490075Sobrien constructors or destructors. 673590075Sobrien (write_type): Adjust call to write_function_type. 673690075Sobrien * pt.c (instantiate_template): Instantiate alternate entry points 673790075Sobrien when instantiating the main function. 673818334Speter 673990075Sobrien2000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 674018334Speter 674190075Sobrien * error.c (cp_print_error_function): Don't use embedded '\n' in 674290075Sobrien output_printf. 674318334Speter 674490075Sobrien2000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 674518334Speter 674690075Sobrien * decl.c (init_decl_processing): Remove bogus initialization. 674790075Sobrien * error.c (lang_print_error_function): Restore here. 674890075Sobrien (init_error): Initialize print_error_function. 674918334Speter 675090075Sobrien2000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 675118334Speter 675290075Sobrien * decl2.c (arg_assoc): Revert my 2000-08-11 change. 675318334Speter 675490075Sobrien2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 675518334Speter 675690075Sobrien * Makefile.in (error.o): Depends on diagnostic.h 675718334Speter 675890075Sobrien * cp-tree.h (problematic_instantiation_changed, 675990075Sobrien record_last_problematic_instantiation, current_instantiation, 676090075Sobrien print_instantiation_context): Declare. 676190075Sobrien (maybe_print_template_context): Remove. 676218334Speter 676390075Sobrien * decl.c (init_decl_processing): Set print_error_function to NULL. 676490075Sobrien (lang_print_error_function): Remove, since we're using a new 676590075Sobrien machinery. 676618334Speter 676790075Sobrien * error.c: #include diagnostic.h 676890075Sobrien (function_category): New function. 676990075Sobrien (cp_diagnostic_starter): Likewise. 677090075Sobrien (cp_diagnostic_finalizer): Likewise. 677190075Sobrien (cp_print_error_function): Likewise. 677290075Sobrien (maybe_print_instantiation_context): Likewise. 677390075Sobrien (print_instantiation_full_context): Likewise. 677490075Sobrien (print_instantiation_partial_context): Likewise. 677590075Sobrien (print_instantiation_context): Define. 677690075Sobrien (init_error): Initialize diagnostic pager and finalizer. 677718334Speter 677890075Sobrien * pt.c (problematic_instantiation_changed): Define. 677990075Sobrien (record_last_problematic_instantiation): Likewise. 678090075Sobrien (current_instantiation): Likewise. 678190075Sobrien (maybe_print_template_context): Remove. 678290075Sobrien (print_template_context): Likewise. 678390075Sobrien (current_tinst_level): Make static to reflect Brendan Kehoe's 678490075Sobrien change of 1995-04-13. 678590075Sobrien (push_tinst_level): Call print_instantiation_context. 678618334Speter 678790075Sobrien2000-08-21 Nix <nix@esperi.demon.co.uk> 678818334Speter 678990075Sobrien * lang-specs.h: Do not process -o or run the assembler if 679090075Sobrien -fsyntax-only. 679118334Speter 679290075Sobrien2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 679318334Speter 679490075Sobrien * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 679590075Sobrien variables. 679690075Sobrien * decl2.c (lang_decode_option): Disable gettext attributes for 679790075Sobrien -ansi. 679818334Speter 679990075Sobrien2000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 680018334Speter 680190075Sobrien * lex.c (lang_init_options): Default diagnostic message maximum 680290075Sobrien length to 80, when line-wrapping. 680318334Speter 680490075Sobrien2000-08-20 Mark Mitchell <mark@codesourcery.com> 680518334Speter 680690075Sobrien * class.c (build_vtbl_initializer): Clear the entire 680790075Sobrien vtbl_init_data. Start keeping track of the functions for which we 680890075Sobrien have created vcall offsets here. 680990075Sobrien (dfs_build_vcall_offset_vtbl_entries): Remove. 681090075Sobrien (build_vcall_offset_vtbl_entries): Reimplement. 681190075Sobrien (add_vcall_offset_vtbl_entries_r): New function. 681290075Sobrien (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 681390075Sobrien computing when vcall offsets are necessary. 681418334Speter 681590075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 681618334Speter 681790075Sobrien * decl.c (member_function_or_else): Use cp_error ... %T. 681852284Sobrien (grokdeclarator): Likewise. 681952284Sobrien (start_method): Likewise. 682090075Sobrien * friend.c (make_friend_class): Use cp_pedwarn ... %T. 682118334Speter 682290075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 682318334Speter 682490075Sobrien * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 682590075Sobrien TYPE_DECLs. 682618334Speter 682790075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 682818334Speter 682990075Sobrien * cp-tree.h (PTRMEM_OK_P): New macro. 683090075Sobrien (itf_ptrmem_ok): New enumeration value. 683190075Sobrien * class.c (resolve_address_of_overloaded_function): Add PTRMEM 683290075Sobrien argument. Diagnose implicit pointer to member. 683390075Sobrien (instantiate_type): Don't diagnose implicit pointer to member 683490075Sobrien here. Pass itf_ptrmem_ok if ok. Adjust calls to 683590075Sobrien resolve_address_of_overloaded_function. 683690075Sobrien * init.c (build_offset_ref): Set PTRMEM_OK_P. 683790075Sobrien (resolve_offset_ref): Don't diagnose implicit pointer to member here. 683890075Sobrien * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 683990075Sobrien * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 684090075Sobrien (build_unary_op): Deal with single non-static member in 684190075Sobrien microsoft-land. 684218334Speter 684390075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 684418334Speter 684590075Sobrien * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 684618334Speter 684790075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 684818334Speter 684990075Sobrien * cp-tree.h (enum_name_string): Remove prototype. 685090075Sobrien (report_case_error): Remove prototype. 685190075Sobrien * cp/typeck2.c (enum_name_string): Remove. 685290075Sobrien (report_case_error): Remove. 685390075Sobrien * error.c (dump_expr): Deal with enum values directly. 685490075Sobrien Correctly negate integer constant. 685518334Speter 685690075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 685718334Speter 685890075Sobrien * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 685990075Sobrien (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 686090075Sobrien * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 686190075Sobrien (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 686290075Sobrien (__cxa_vec_new): Use __cxa_vec_new2. 686390075Sobrien (__cxa_vec_delete): Use __cxa_vec_delete2. 686418334Speter 686590075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 686618334Speter 686790075Sobrien * vec.cc (__cxa_vec_new): Set "C" linkage. 686890075Sobrien (__cxa_vec_ctor): Likewise. 686990075Sobrien (__cxa_vec_cctor): Likewise. 687090075Sobrien (__cxa_vec_dtor): Likewise. 687190075Sobrien (__cxa_vec_delete): Likewise. 687290075Sobrien * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 687390075Sobrien (__cxa_vec_ctor): Likewise. 687490075Sobrien (__cxa_vec_cctor): Likewise. 687590075Sobrien (__cxa_vec_dtor): Likewise. 687690075Sobrien (__cxa_vec_delete): Likewise. 687718334Speter 687890075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 687918334Speter 688090075Sobrien * class.c (instantiate_type): Reinstate local variable 688190075Sobrien deleted in previous change. 688218334Speter 688390075Sobrien * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 688490075Sobrien itf_no_attributes. 688518334Speter 688690075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 688718334Speter 688890075Sobrien * cp-tree.h (instantiate_type_flags): New enumeration. 688990075Sobrien (instantiate_type): Change parameter. 689090075Sobrien * class.c (instantiate_type): Adjust prototype. Adjust. 689190075Sobrien * call.c (standard_conversion): Adjust instantiate_type call. 689290075Sobrien (reference_binding): Likewise. 689350397Sobrien (build_op_delete_call): Likewise. 689490075Sobrien (convert_like_real): Likewise. 689590075Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 689690075Sobrien (convert_to_reference): Likewise. 689790075Sobrien * pt.c (convert_nontype_argument): Likewise. 689890075Sobrien * typeck.c (build_binary_op): Likewise. 689990075Sobrien (build_ptrmemfunc): Likewise. 690090075Sobrien (convert_for_assignment): Likewise. 690118334Speter 690290075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 690318334Speter 690490075Sobrien * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 690590075Sobrien (current_aggr): Define. 690690075Sobrien * decl.c (grokdeclarator): Make sure a friend class is an 690790075Sobrien elaborated type specifier. 690890075Sobrien * parse.y (current_aggr): Remove static definition. 690990075Sobrien (cp_parse_init): Adjust. 691090075Sobrien (structsp): Clear and restore current_aggr. 691190075Sobrien (component_decl_list): Clear current_aggr. 691218334Speter 691390075Sobrien * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 691490075Sobrien aggregate tag on the typename's context. 691518334Speter 691690075Sobrien * pt.c (tsubst_friend_class): Return error_mark_node, if 691790075Sobrien parms becomes NULL. 691890075Sobrien (instantiate_class_template): Ignore error_mark_node friend types. 691918334Speter 692090075Sobrien2000-08-14 Nathan Sidwell <nathan@codesourcery.com> 692118334Speter 692290075Sobrien * cvt.c (warn_ref_binding): New static function, broken out of ... 692390075Sobrien (convert_to_reference): ... here. Use it. 692418334Speter 692590075Sobrien2000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 692618334Speter 692790075Sobrien * parse.y (template_arg): Add rule for template qualified with 692890075Sobrien global scope. 692918334Speter 693090075Sobrien2000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 693118334Speter 693290075Sobrien * decl2.c (add_function): Reorganize. 693390075Sobrien (arg_assoc): Do not consider function template decls. 693418334Speter 693590075Sobrien2000-08-11 Jason Merrill <jason@redhat.com> 693618334Speter 693790075Sobrien * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 693890075Sobrien looking inside. 693918334Speter 694090075Sobrien2000-08-11 Nathan Sidwell <nathan@codesourcery.com> 694118334Speter 694290075Sobrien * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 694390075Sobrien (lookup_nested_tag): Likewise. 694418334Speter 694590075Sobrien * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 694690075Sobrien can be produced. 694718334Speter 694890075Sobrien2000-08-11 Nathan Sidwell <nathan@codesourcery.com> 694918334Speter 695090075Sobrien * parse.y (named_complex_class_head_sans_basetype): Remove 695190075Sobrien always true if. 695218334Speter 695390075Sobrien2000-08-11 Nathan Sidwell <nathan@codesourcery.com> 695418334Speter 695590075Sobrien * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 695690075Sobrien explicit TEMPLATE_ID_EXPR args. 695790075Sobrien (build_expr_from_tree, case CALL_EXPR): Likewise. 695818334Speter 695990075Sobrien2000-08-11 Nathan Sidwell <nathan@codesourcery.com> 696018334Speter 696190075Sobrien * decl.c (check_tag_decl): Diagnose typename's which don't 696290075Sobrien declare anything. 696318334Speter 696490075Sobrien2000-08-10 Nathan Sidwell <nathan@codesourcery.com> 696518334Speter 696690075Sobrien * init.c (build_aggr_init): Reject bogus array initializers 696790075Sobrien early. 696818334Speter 696990075Sobrien2000-08-09 Nathan Sidwell <nathan@codesourcery.com> 697018334Speter 697190075Sobrien * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 697290075Sobrien runtime. 697390075Sobrien * cp/tinfo.cc (__dynamic_cast): Likewise. 697490075Sobrien * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 697518334Speter 697690075Sobrien2000-08-09 Nathan Sidwell <nathan@codesourcery.com> 697718334Speter 697890075Sobrien * cvt.c (convert_to_pointer_force): Fix error message when 697990075Sobrien attempting to cast from ambiguous base. 698018334Speter 698190075Sobrien2000-08-08 Jason Merrill <jason@redhat.com> 698218334Speter 698390075Sobrien * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 698490075Sobrien (tsubst_template_arg_vector): Likewise. 698518334Speter 698690075Sobrien * decl2.c (build_anon_union_vars): Choose the largest field; don't 698790075Sobrien assume that one will be as large as the union. 698818334Speter 698990075Sobrien2000-08-07 Kazu Hirata <kazu@hxi.com> 699018334Speter 699190075Sobrien * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 699290075Sobrien * decl.c (pop_labels): Likewise. 699318334Speter 699490075Sobrien2000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 699518334Speter 699690075Sobrien * inc/cxxabi.h (__pbase_type_info): Changed member names to match 699790075Sobrien specifications. 699890075Sobrien (__pointer_to_member_type_info): Likewise. 699990075Sobrien (__base_class_info): Likewise. 700090075Sobrien (__class_type_info): Likewise. 700190075Sobrien (__si_class_type_info): Likewise. 700290075Sobrien (__vmi_class_type_info): Likewise. 700390075Sobrien * tinfo.cc (__si_class_type_info::__do_find_public_src): 700490075Sobrien Changed member names to match specifications. 700590075Sobrien (__vmi_class_type_info::__do_find_public_src): Likewise. 700690075Sobrien (__si_class_type_info::__do_dyncast): Likewise. 700790075Sobrien (__vmi_class_type_info::__do_dyncast): Likewise. 700890075Sobrien (__si_class_type_info::__do_upcast): Likewise. 700990075Sobrien (__vmi_class_type_info::__do_upcast): Likewise. 701090075Sobrien * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 701190075Sobrien (__pbase_type_info::__pointer_catch): Likewise. 701290075Sobrien (__pointer_type_info::__pointer_catch): Likewise. 701390075Sobrien (__pointer_to_member_type_info::__pointer_catch): Likewise. 701418334Speter 701590075Sobrien2000-08-04 Zack Weinberg <zack@wolery.cumb.org> 701618334Speter 701790075Sobrien * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 701890075Sobrien * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 701990075Sobrien (cc1plus): Link with $(BACKEND) and $(C_OBJS). 702018334Speter 702190075Sobrien2000-08-04 Mark Mitchell <mark@codesourcery.com> 702218334Speter 702390075Sobrien * cp-tree.h (add_method): Change prototype. 702490075Sobrien * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 702590075Sobrien Don't double the size of the method vector in the error case. 702690075Sobrien (handle_using_decl): Adjust call to add_method. 702790075Sobrien (add_implicitly_declared_members): Likewise. 702890075Sobrien (clone_function_decl): Likewise. 702990075Sobrien * decl2.c (check_classfn): Likewise. 703090075Sobrien * semantics.c (finish_member_declaration): Likewise. 703118334Speter 703290075Sobrien2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 703318334Speter 703490075Sobrien * decl.c (flag_isoc94): New variable. 703518334Speter 703690075Sobrien2000-08-02 Jason Merrill <jason@redhat.com> 703718334Speter 703890075Sobrien * pt.c (do_type_instantiation): Add complain parm; don't complain 703990075Sobrien if called recursively. 704090075Sobrien * cp-tree.h, parse.y: Adjust. 704118334Speter 704290075Sobrien2000-08-02 Zack Weinberg <zack@wolery.cumb.org> 704318334Speter 704490075Sobrien * decl2.c: Silently ignore -Wstrict-prototypes; warn about 704590075Sobrien -Wno-strict-prototypes. 704618334Speter 704790075Sobrien * g++spec.c: Adjust type of second argument to 704890075Sobrien lang_specific_driver, and update code as necessary. 704918334Speter 705090075Sobrien * cp-tree.h: Don't prototype min_precision here. 705190075Sobrien (my_friendly_assert): Cast expression to void. 705290075Sobrien * semantics.c (do_poplevel): Initialize scope_stmts. 705318334Speter 705490075Sobrien2000-08-02 Mark Mitchell <mark@codesourcery.com> 705518334Speter 705690075Sobrien * cp-tree.h (DECL_NEEDED_P): Tweak. 705718334Speter 705890075Sobrien2000-07-28 Jason Merrill <jason@redhat.com> 705952284Sobrien 706090075Sobrien * lang-specs.h: Use %i in rule for .ii files. 706118334Speter 706290075Sobrien2000-07-31 Zack Weinberg <zack@wolery.cumb.org> 706318334Speter 706490075Sobrien * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 706518334Speter 706690075Sobrien2000-07-30 Mark Mitchell <mark@codesourcery.com> 706718334Speter 706890075Sobrien Allow indirect primary bases. 706990075Sobrien * cp-tree.h (struct lang_type): Remove vfield_parent. Add 707090075Sobrien primary_base. 707190075Sobrien (CLASSTYPE_VFIELD_PARENT): Remove. 707290075Sobrien (CLASSTYPE_PRIMARY_BINFO): Reimplement. 707390075Sobrien (BINFO_PRIMARY_BINFO): Remove. 707490075Sobrien (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 707590075Sobrien (BINFO_VBASE_PRIMARY_P): Likewise. 707690075Sobrien (BINFO_PRIMARY_BASE_OF): New macro. 707790075Sobrien (BINFO_INDIRECT_PRIMARY_P): Likewise. 707890075Sobrien (get_primary_binfo): New function. 707990075Sobrien * decl.c (lang_mark_tree): Make lang_type::primary_base. 708090075Sobrien * class.c (vcall_offset_data_s): Rename to ... 708190075Sobrien (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 708290075Sobrien and add ctor_vtbl_p. 708390075Sobrien (get_derived_offset): Use get_primary_binfo. 708490075Sobrien (dfs_mark_primary_bases): Adjust handling of virtual primary 708590075Sobrien bases. 708690075Sobrien (mark_primary_bases): Likewise. 708790075Sobrien (set_primary_base): Take a binfo, not an integer, as a 708890075Sobrien representation of the primary base. 708990075Sobrien (indirect_primary_base_p): Remove. 709090075Sobrien (determine_primary_base): Adjust for indirect primary bases. 709190075Sobrien (dfs_find_final_overrider): Fix typo in coment. 709290075Sobrien (update_vtable_entry_for_fn): Use get_primary_binfo. 709390075Sobrien (layout_nonempty_base_or_field): Tweak. 709490075Sobrien (build_base_fields): Adjust for new primary base semantics. 709590075Sobrien (dfs_propagate_binfo_offsets): Remove. 709690075Sobrien (propagate_binfo_offsets): Rewrite. 709790075Sobrien (dfs_set_offset_for_shared_vbases): Remove. 709890075Sobrien (layout_virtual_bases): Don't use it. 709990075Sobrien (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 710090075Sobrien ABI. 710190075Sobrien (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 710290075Sobrien CLASSTYPE_VFIELD_PARENT. 710390075Sobrien (dfs_get_primary_binfo): New function. 710490075Sobrien (get_primary_binfo): Likewise. 710590075Sobrien (dump_class_hierarchy_r): Tweak printing of primary bases. 710690075Sobrien (build_vtbl_initializer): Fix typo in comments. Use 710790075Sobrien vtbl_init_data. 710890075Sobrien (build_vcall_and_vbase_vtbl_entries): Likewise. 710990075Sobrien (build_vbaes_offset_vtbl_entries): Likewise. 711090075Sobrien (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 711190075Sobrien BV_VCALL_INDEX to handle indirect primary bases. 711290075Sobrien (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 711390075Sobrien (build_rtti_vtbl_entries): Likewise. 711490075Sobrien * search.c (get_shared_vbase_if_not_primary): Tweak. 711590075Sobrien (find_vbase_instance): Likewise. 711690075Sobrien (binfo_for_vtable): Simplify. 711790075Sobrien * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 711890075Sobrien (make_binfo): Make it have 11 entries. 711918334Speter 712090075Sobrien2000-07-30 Alex Samuel <samuel@codesourcery.com> 712118334Speter 712290075Sobrien * mangle.c (DECL_TEMPLATE_ID_P): Remove. 712390075Sobrien (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 712490075Sobrien ascertaining primaryness. 712590075Sobrien (G): Remove template_args. 712690075Sobrien (decl_is_template_id): New function. 712790075Sobrien (write_encoding): Use decl_is_template_id. 712890075Sobrien (write_name): Likewise. Handle type_decls. Get main variant of 712990075Sobrien type decls. 713090075Sobrien (write_nested_name): Likewise. 713190075Sobrien (write_prefix): Likewise. 713290075Sobrien (write_template_prefix): Likewise. 713390075Sobrien (write_special_name_constructor): Remove defunct production from 713490075Sobrien comment. 713590075Sobrien (write_bare_function_type): Remove comment about absent parameter. 713690075Sobrien (write_template_template_arg): Add missing grammar production to 713790075Sobrien comment. 713818334Speter 713990075Sobrien2000-07-27 Jason Merrill <jason@redhat.com> 714018334Speter 714190075Sobrien * decl.c (duplicate_decls): If common_type produces a non-typedef 714290075Sobrien type for a typedef, just use the old type. 714318334Speter 714490075Sobrien2000-07-27 Mark Mitchell <mark@codesourcery.com> 714518334Speter 714690075Sobrien * cp-tree.h (function_depth): Declare. 714790075Sobrien (verify_stmt_tree): Likewise. 714890075Sobrien (find_tree): Likewise. 714990075Sobrien * decl.c (function_depth): Give it external linkage. 715090075Sobrien * optimize.c (optimize_function): Increment and decrement it. 715190075Sobrien * tree.c (verify_stmt_tree_r): New function. 715290075Sobrien (verify_stmt_tree): Likewise. 715390075Sobrien (find_tree_r): Likewise. 715490075Sobrien (find_tree): Likewise. 715518334Speter 715690075Sobrien2000-07-27 Jason Merrill <jason@redhat.com> 715718334Speter 715890075Sobrien * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 715990075Sobrien TYPE_PTRMEMFUNC_P. 716090075Sobrien * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 716150397Sobrien 716290075Sobrien2000-07-26 Mark Mitchell <mark@codesourcery.com> 716350397Sobrien 716490075Sobrien * decl.c (start_cleanup_fn): Mark the function as `inline'. 716590075Sobrien * decl2.c (get_guard): Call cp_finish_decl, not 716690075Sobrien rest_of_decl_compilation, for local guards. 716790075Sobrien * lex.c (do_identifier): Remove unused variable. 716850397Sobrien 716990075SobrienWed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 717050397Sobrien 717190075Sobrien * parse.y: Add missing ';'. 717250397Sobrien 717390075Sobrien2000-07-26 Mark Mitchell <mark@codesourcery.com> 717450397Sobrien 717590075Sobrien * parse.y (empty_parms): Use `()', not `(...)', when in the scope 717690075Sobrien of `extern "C++"'. 717752284Sobrien 717890075Sobrien2000-07-25 Nathan Sidwell <nathan@codesourcery.com> 717918334Speter 718090075Sobrien Kill strict_prototype. Backwards compatibility only for 718190075Sobrien non NO_IMPLICIT_EXTERN_C systems. 718290075Sobrien * cp-tree.h (flag_strict_prototype): Remove. 718390075Sobrien (strict_prototype): Remove. 718490075Sobrien (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 718590075Sobrien * decl.c (maybe_push_to_top_level): Adjust. 718690075Sobrien (pop_from_top_level): Adjust. 718790075Sobrien (decls_match): Only allow sloppy parm matching for ancient 718890075Sobrien system headers. 718990075Sobrien (init_decl_processing): Adjust. 719090075Sobrien (grokdeclarator): Adjust. 719190075Sobrien * decl2.c (flag_strict_prototype): Remove. 719290075Sobrien (strict_prototype): Remove. 719390075Sobrien (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 719490075Sobrien (lang_f_options): Remove "strict-prototype". 719590075Sobrien (unsupported-options): Add "strict-prototype". 719690075Sobrien * lex.c (do_identifier): Adjust. 719790075Sobrien (do_scoped_id): Adjust. 719890075Sobrien * parse.y (empty_parms): Adjust. 719990075Sobrien * class.c (push_lang_context): Adjust. 720090075Sobrien (pop_lang_context): Adjust. 720190075Sobrien * typeck.c (comp_target_parms): Adjust. 720218334Speter 720390075Sobrien2000-07-25 Nathan Sidwell <nathan@codesourcery.com> 720418334Speter 720590075Sobrien * decl.c (poplevel): Deal with anonymous variables at for scope. 720690075Sobrien (maybe_inject_for_scope_var): Likewise. 720718334Speter 720890075Sobrien2000-07-25 Zack Weinberg <zack@wolery.cumb.org> 720918334Speter 721090075Sobrien * decl.c: Remove all signal handling code, now done in toplev.c. 721118334Speter 721290075Sobrien2000-07-23 Mark Mitchell <mark@codesourcery.com> 721318334Speter 721490075Sobrien * decl.c (make_rtl_for_nonlocal_decl): Rework. 721518334Speter 721690075Sobrien * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 721790075Sobrien correctly. 721852284Sobrien 721990075Sobrien2000-07-20 Zack Weinberg <zack@wolery.cumb.org> 722018334Speter 722190075Sobrien * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 722290075Sobrien Define my_friendly_assert and my_friendly_abort as macros 722390075Sobrien which may call friendly_abort. Prototype friendly abort, not 722490075Sobrien my_friendly_abort or my_friendly_assert. 722590075Sobrien * decl.c (signal_catch): Report the signal caught in the error 722690075Sobrien message. Call fatal directly. 722790075Sobrien * typeck2.c (ack, my_friendly_assert): Delete. 722890075Sobrien (my_friendly_abort): Rename to friendly_abort. Expect file, 722990075Sobrien line, and function parameters. Report the abort code, then 723090075Sobrien call fancy_abort. Do not mask an abort if errors have 723190075Sobrien already occurred. 723218334Speter 723390075Sobrien2000-07-18 Nathan Sidwell <nathan@codesourcery.com> 723418334Speter 723590075Sobrien * typeck.c (comp_target_parms): Remove obsolete parameter. 723690075Sobrien (comp_target_types): Adjust. 723718334Speter 723890075Sobrien2000-07-17 Jason Merrill <jason@redhat.com> 723918334Speter 724090075Sobrien * typeck.c (mark_addressable): Never set TREE_USED. 724190075Sobrien * call.c (build_call): Don't abort on calls to library functions 724290075Sobrien that have been declared normally. 724318334Speter 724490075Sobrien * typeck.c (build_binary_op): Fix grammar in warning. 724518334Speter 724690075Sobrien * exception.cc (__eh_free): Fix prototype. 724718334Speter 724890075Sobrien * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 724918334Speter 725090075Sobrien * decl.c (pushdecl): Handle seeing an OVERLOAD in 725190075Sobrien IDENTIFIER_NAMESPACE_VALUE. 725218334Speter 725390075Sobrien2000-07-16 Mark Mitchell <mark@codesourcery.com> 725418334Speter 725590075Sobrien * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 725690075Sobrien * method.c (use_thunk): Correct handling of vcall offsets. 725718334Speter 725890075Sobrien2000-07-14 Zack Weinberg <zack@wolery.cumb.org> 725918334Speter 726090075Sobrien * .cvsignore: parse.h and parse.c have no cp- prefix. 726118334Speter 726290075Sobrien2000-07-13 Mark Mitchell <mark@codesourcery.com> 726318334Speter 726490075Sobrien * .cvsignore: New file. 726518334Speter 726690075Sobrien2000-07-13 Zack Weinberg <zack@wolery.cumb.org> 726718334Speter 726890075Sobrien * lang-specs.h: Use the new named specs. Remove unnecessary braces. 726918334Speter 727090075Sobrien2000-07-12 Mark Mitchell <mark@codesourcery.com> 727118334Speter 727290075Sobrien * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 727390075Sobrien * parse.c: Remove. 727490075Sobrien * parse.h: Likewise. 727518334Speter 727690075Sobrien2000-07-11 Mark Mitchell <mark@codesourcery.com> 727718334Speter 727890075Sobrien * class.c (layout_class_type): Add pointers to virtual bases after 727990075Sobrien base classes under the old ABI. 728018334Speter 728190075Sobrien2000-07-10 Benjamin Chelf <chelf@codesourcery.com> 728218334Speter 728390075Sobrien * semantics.c (finish_for_stmt): Remove call to emit_line_note. 728490075Sobrien (finish_continue_stmt): Likewise. 728590075Sobrien (begin_for_stmt): Remove call to note_level_for_for. 728690075Sobrien (finish_goto_stmt): Change call from build_min_nt 728790075Sobrien to build_stmt. 728890075Sobrien (finish_expr_stmt): Likewise. 728990075Sobrien (begin_if_stmt): Likewise. 729090075Sobrien (begin_while_stmt): Likewise. 729190075Sobrien (finish_while_stmt): Likewise. 729290075Sobrien (finish_return_stmt): Likewise. 729390075Sobrien (begin_for_stmt): Likewise. 729490075Sobrien (finish_for_stmt): Likewise. 729590075Sobrien (finish_break_stmt): Likewise. 729690075Sobrien (begin_switch_stmt): Likewise. 729790075Sobrien (finish_case_label): Likewise. 729890075Sobrien (genrtl_try_block): Likewise. 729990075Sobrien (begin_try_block): Likewise. 730090075Sobrien (begin_handler): Likewise. 730190075Sobrien (begin_compound_stmt): Likewise. 730290075Sobrien (finish_asm_stmt): Likewise. 730390075Sobrien (finish_label_stmt): Likewise. 730490075Sobrien (add_decl_stmt): Likewise. 730590075Sobrien (finish_subobject): Likewise. 730690075Sobrien (finish_decl_cleanup): Likewise. 730790075Sobrien (finish_named_return_value): Likewise. 730890075Sobrien (setup_vtbl_ptr): Likewise. 730990075Sobrien (add_scope_stmt): Likewise. 731090075Sobrien * decl.c (finish_constructor_body): Likewise. 731190075Sobrien (finish_destructor_body): Likewise. 731290075Sobrien * optimize.c (copy_body_r): Likewise. 731390075Sobrien (initialize_inlined_parameters): Likewise. 731490075Sobrien (declare_return_variable): Likewise. 731590075Sobrien (expand_call_inline): Likewise. 731618334Speter 731790075Sobrien2000-07-10 Jakub Jelinek <jakub@redhat.com> 731818334Speter 731990075Sobrien * semantics.c (expand_body): Sync interface information 732090075Sobrien at the end of function body expansion. 732118334Speter 732290075Sobrien2000-07-09 Jason Merrill <jason@redhat.com> 732352284Sobrien 732490075Sobrien * init.c (build_new_1): Bail early if the call to new fails. 732518334Speter 732690075Sobrien * decl.c (compute_array_index_type): Check specifically for 732790075Sobrien an INTEGER_CST, not just TREE_CONSTANT. 732818334Speter 732990075Sobrien * decl.c (duplicate_decls): Don't call duplicate_decls on 733090075Sobrien the DECL_TEMPLATE_RESULT. 733190075Sobrien (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 733290075Sobrien codes. 733318334Speter 733490075Sobrien * error.c (dump_template_bindings): Don't crash if we had an 733590075Sobrien invalid argument list. 733618334Speter 733790075Sobrien * typeck.c (c_expand_start_case): Do narrowing here. 733890075Sobrien * semantics.c (finish_switch_cond): Not here. 733918334Speter 734090075Sobrien2000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 734118334Speter 734290075Sobrien * parse.y (asm_clobbers): Do string concatenation. 734318334Speter 734490075Sobrien2000-07-09 Mark Mitchell <mark@codesourcery.com> 734518334Speter 734690075Sobrien * decl.c (pushtag): Don't put local classes in template functions 734790075Sobrien on the local_classes list. 734818334Speter 734990075Sobrien2000-07-04 Scott Snyder <snyder@fnal.gov> 735018334Speter 735190075Sobrien * decl2.c (get_guard): Add missing return for old ABI local 735290075Sobrien variable case. 735318334Speter 735490075Sobrien2000-07-09 Mark Mitchell <mark@codesourcery.com> 735518334Speter 735690075Sobrien * cp-tree.h (char_type_p): New function. 735790075Sobrien * decl.c (init_decl_processing): Don't initialize 735890075Sobrien signed_wchar_type_node or unsigned_wchar_type_node. 735990075Sobrien (complete_array_type): Handle brace-enclosed string-constants. 736090075Sobrien * rtti.c (emit_support_tinfos): Remove #if 0'd code. 736190075Sobrien * tree.c (char_type_p): New function. 736290075Sobrien * typeck2.c (digest_init): Use char_type_p. 736318334Speter 736490075Sobrien2000-07-06 Nathan Sidwell <nathan@codesourcery.com> 736518334Speter 736690075Sobrien * pt.c (tsubst): Don't layout type, if it's error_mark. 736718334Speter 736890075Sobrien2000-07-06 Nathan Sidwell <nathan@codesourcery.com> 736918334Speter 737090075Sobrien * pt.c (instantiate_pending_templates): Reset template level. 737118334Speter 737290075Sobrien2000-07-05 Jason Merrill <jason@redhat.com> 737318334Speter 737490075Sobrien * call.c (joust): Don't complain about `operator char *()' beating 737590075Sobrien `operator const char *() const'. 737618334Speter 737790075Sobrien2000-07-04 scott snyder <snyder@fnal.gov> 737890075Sobrien Jason Merrill <jason@redhat.com> 737918334Speter 738090075Sobrien * repo.c (repo_get_id): Handle the case where a class with virtual 738190075Sobrien bases has a null TYPE_BINFO_VTABLE. 738218334Speter 738390075Sobrien2000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 738490075Sobrien Jason Merrill <jason@redhat.com> 738518334Speter 738690075Sobrien * parse.y (member_init): Just pass in the type. 738790075Sobrien * init.c (expand_member_init): Handle getting a type. 738818334Speter 738990075Sobrien2000-07-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 739090075Sobrien Jason Merrill <jason@redhat.com> 739118334Speter 739290075Sobrien * decl.c (finish_function): Warn if a function has no return 739390075Sobrien statement. 739490075Sobrien Suggested by Andrew Koenig. 739590075Sobrien * typeck.c (check_return_expr): Do set current_function_returns_value 739690075Sobrien if we got an error_mark_node. 739718334Speter 739890075Sobrien2000-07-03 Nathan Sidwell <nathan@codesourcery.com> 739918334Speter 740090075Sobrien * decl2.c (push_decl_namespace): Push the original namespace. 740118334Speter 740290075Sobrien2000-07-03 Nathan Sidwell <nathan@codesourcery.com> 740318334Speter 740490075Sobrien * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 740590075Sobrien * semantics.c (begin_class_definition): Clear it. 740618334Speter 740790075Sobrien2000-07-02 Benjamin Chelf <chelf@codesourcery.com> 740818334Speter 740990075Sobrien * cp-tree.h (genrtl_goto_stmt): Remove declaration. 741090075Sobrien (genrtl_expr_stmt): Likewise. 741190075Sobrien (genrtl_decl_stmt): Likewise. 741290075Sobrien (genrtl_if_stmt): Likewise. 741390075Sobrien (genrtl_while_stmt): Likewise. 741490075Sobrien (genrtl_do_stmt): Likewise. 741590075Sobrien (genrtl_return_stmt): Likewise. 741690075Sobrien (genrtl_for_stmt): Likewise. 741790075Sobrien (genrtl_break_stmt): Likewise. 741890075Sobrien (genrtl_continue_stmt): Likewise. 741990075Sobrien (genrtl_scope_stmt): Likewise. 742090075Sobrien (genrtl_switch_stmt): Likewise. 742190075Sobrien (genrtl_case_label): Likewise. 742290075Sobrien (genrtl_begin_compound_stmt): Likewise. 742390075Sobrien (genrtl_finish_compound_stmt): Likewise. 742490075Sobrien (genrtl_compound_stmt): Likewise. 742590075Sobrien (genrtl_asm_stmt): Likewise. 742618334Speter 742790075Sobrien * init.c (begin_init_stmts): Remove call to 742890075Sobrien genrtl_begin_compound_stmt. 742990075Sobrien (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 743018334Speter 743190075Sobrien * semantics.c (lang_expand_stmt): Changed call to 743290075Sobrien genrtl_compound_stmt to ignore return value. 743318334Speter 743490075Sobrien2000-07-02 Mark Mitchell <mark@codesourcery.com> 743518334Speter 743690075Sobrien * mangle.c (canonicalize_for_substitution): Return the canonical 743790075Sobrien variant of a type. 743818334Speter 743990075Sobrien * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 744090075Sobrien TYPE_DECL. 744190075Sobrien * typeck.c (commonparms): Remove obstack manipulations. 744218334Speter 744390075Sobrien2000-07-01 Benjamin Chelf <chelf@codesourcery.com> 744418334Speter 744590075Sobrien * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 744618334Speter 744790075Sobrien * Makefile.in (OBJS): Added ../c-semantics.o. 744890075Sobrien (OBJDEPS): Likewise. 744918334Speter 745090075Sobrien * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 745190075Sobrien ../c-common.h. 745290075Sobrien (struct stmt_tree): Added comment. 745390075Sobrien (current_function_name_declared): Removed. 745490075Sobrien (stmts_are_full_exprs_p): Likewise. 745590075Sobrien (genrtl_do_pushlevel): Likewise. 745690075Sobrien (genrtl_clear_out_block): Likewise. 745790075Sobrien (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 745890075Sobrien (DECL_ANON_UNION_ELEMS): Likewise. 745990075Sobrien (emit_local_var): Likewise. 746090075Sobrien (make_rtl_for_local_static): Likewise. 746190075Sobrien (do_case): Likewise. 746290075Sobrien (expand_stmt): Likewise. 746390075Sobrien (genrtl_decl_cleanup): Likewise. 746490075Sobrien (c_expand_asm_operands): Likewise. 746590075Sobrien (c_expand_return): Likewise. 746690075Sobrien (c_expand_start_case): Likewise. 746718334Speter 746890075Sobrien * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 746990075Sobrien (emit_local_var): Likewise. 747090075Sobrien (initialize_local_var): Change reference to 747190075Sobrien stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 747290075Sobrien Change reference to stmts_are_full_exprs_p to 747390075Sobrien current_stmt_tree->stmts_are_full_exprs_p. 747490075Sobrien (push_cp_function_context): Likewise. 747518334Speter 747690075Sobrien * expect.c (expand_throw): Change reference to 747790075Sobrien stmts_are_full_exprs_p. 747818334Speter 747990075Sobrien * init.c (build_aggr_init): Change reference to 748090075Sobrien stmts_are_full_exprs_p. 748190075Sobrien (build_vec_init): Likewise. 748218334Speter 748390075Sobrien * optimize.c (maybe_clone_body): Change reference to 748490075Sobrien current_function_name_declared to 748590075Sobrien cp_function_chain->name_declared. 748618334Speter 748790075Sobrien * pt.c (instantiate_decl): Change reference to 748890075Sobrien current_function_name_declared to 748990075Sobrien cp_function_chain->name_declared. 749018334Speter 749190075Sobrien * semantics.c (expand_cond): Moved declaration to c-common.h. 749290075Sobrien (genrtl_do_pushlevel): Moved to c-semantics.c. 749390075Sobrien (genrtl_clear_out_block): Likewise. 749490075Sobrien (genrtl_goto_stmt): Likewise. 749590075Sobrien (genrtl_expr_stmt): Likewise. 749690075Sobrien (genrtl_decl_stmt): Likewise. 749790075Sobrien (gerntl_if_stmt): Likewise. 749890075Sobrien (genrtl_while_stmt): Likewise. 749990075Sobrien (genrtl_do_stmt): Likewise. 750090075Sobrien (genrtl_return_stmt): Likewise. 750190075Sobrien (genrtl_for_stmt): Likewise. 750290075Sobrien (genrtl_break_stmt): Likewise. 750390075Sobrien (genrtl_continue_stmt): Likewise. 750490075Sobrien (genrtl_scope_stmt): Likewise. 750590075Sobrien (genrtl_switch_stmt): Likewise. 750690075Sobrien (genrtl_case_label): Likewise. 750790075Sobrien (genrtl_begin_compound_stmt): Likewise. 750890075Sobrien (genrtl_finish_compound_stmt): Likewise. 750990075Sobrien (genrtl_compound_stmt): Likewise. 751090075Sobrien (genrtl_asm_stmt): Likewise. 751190075Sobrien (genrtl_decl_cleanup): Likewise. 751290075Sobrien (expand_cond): Likewise. 751390075Sobrien (expand_stmt): Renamed to ... 751490075Sobrien (lang_expand_stmt): ... this. 751590075Sobrien (lang_expand_expr_stmt): Initialize. 751690075Sobrien (set_current_function_name_declared): Likewise. 751790075Sobrien (stmts_are_full_exprs_p): Likewise. 751890075Sobrien (current_function_name_declared): Likewise. 751990075Sobrien (anon_aggr_type_p): Likewise. 752090075Sobrien (do_poplevel): Change reference to 752190075Sobrien stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 752290075Sobrien Change reference to stmts_are_full_exprs_p to 752390075Sobrien current_stmt_tree->stmts_are_full_exprs_p. 752490075Sobrien (add_tree): Likewise. 752590075Sobrien (finish_expr_stmt): Likewise. 752690075Sobrien (prep_stmt): Likewise. 752790075Sobrien (lang_expand_stmt): Likewise. 752890075Sobrien (begin_compound_stmt): Change reference to 752990075Sobrien current_function_name_declared to 753090075Sobrien cp_function_chain->name_declared and call to 753190075Sobrien current_function_name_declared(). 753290075Sobrien (setup_vtbl_ptr): Likewise. 753390075Sobrien (genrtl_do_poplevel): Removed. 753418334Speter 753590075Sobrien2000-06-30 Jason Merrill <jason@redhat.com> 753618334Speter 753790075Sobrien * init.c (init_init_processing): Go back to aligning like 753890075Sobrien double_type_node for old ABI. 753990075Sobrien (get_cookie_size): Make cookie larger if we get a type that needs 754090075Sobrien more alignment. 754190075Sobrien (build_vec_delete): Call it. 754218334Speter 754390075Sobrien * typeck.c (qualify_type_recursive): New fn. 754490075Sobrien (composite_pointer_type): Use it. 754590075Sobrien (build_binary_op): Use composite_pointer_type. 754652284Sobrien 754790075Sobrien2000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 754890075Sobrien Jason Merrill <jason@redhat.com> 754952284Sobrien 755090075Sobrien * typeck.c (check_return_expr): Don't complain about returning 755190075Sobrien NULL from operator new if -fcheck-new. 755290075Sobrien * cp-tree.h: Declare flag_check_new here. 755390075Sobrien * init.c: Not here. 755418334Speter 755590075Sobrien2000-06-28 Alex Samuel <samuel@codesourcery.com> 755618334Speter 755790075Sobrien * mangle.c (find_substitution): Use same_type_p. 755890075Sobrien (write_encoding): Don't check for substitutions. 755918334Speter 756090075Sobrien2000-06-30 Nathan Sidwell <nathan@codesourcery.com> 756118334Speter 756290075Sobrien * parse.y (expr_no_comma_rangle): New non-terminal. 756390075Sobrien (template_parm): Use it for default parameter case. 756490075Sobrien (template_arg): Use it. 756590075Sobrien (expr_no_commas): Remove commented out undefined extensions. 756690075Sobrien * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 756790075Sobrien * parse.h, parse.c: Rebuilt. 756818334Speter 756990075Sobrien2000-06-30 Mark Mitchell <mark@codesourcery.com> 757018334Speter 757190075Sobrien * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 757290075Sobrien (finish_asm_stmt): Do it here, instead. 757318334Speter 757490075Sobrien * cp-tree.h (ridpointers): Don't declare. 757590075Sobrien * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 757690075Sobrien (record_builtin_java_type): Likewise. 757790075Sobrien (init_decl_processing): Likewise. 757890075Sobrien * lex.c: Move inclusion of lex.h. 757990075Sobrien (ridpointers): Don't define. 758090075Sobrien (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 758190075Sobrien RID_MAX. 758290075Sobrien * lex.h (enum rid): Rename to ... 758390075Sobrien (enum cp_rid): ... this. 758490075Sobrien (ridpointers): Don't declare. 758590075Sobrien * parse.y: Move inclusion of lex.h. 758650397Sobrien * parse.c: Regenerated. 758790075Sobrien * spew.c: Move inclusion of lex.h. 758852284Sobrien 758990075Sobrien * cp-tree.h (struct language_function): Remove temp_name_counter. 759090075Sobrien (temp_name_counter): Remove. 759190075Sobrien (get_temp_name): Change prototype. 759290075Sobrien (get_guard): New function. 759390075Sobrien (get_guard_cond): Likewise. 759490075Sobrien (set_guard): Likewise. 759590075Sobrien * cvt.c (build_up_reference): Adjust call to get_temp_name. 759690075Sobrien * decl.c (expand_static_init): Use get_guard and friends to 759790075Sobrien implement guard variables. 759890075Sobrien * decl2.c (get_temp_name): Assume that the variables created are 759990075Sobrien always static. 760090075Sobrien (get_sentry): Rename to ... 760190075Sobrien (get_guard): ... this. Implement new ABI guard variables. 760290075Sobrien (get_guard_bits): New function. 760390075Sobrien (get_guard_cond): Likewise. 760490075Sobrien (set_guard): Likewise. 760590075Sobrien (start_static_initialization_or_destruction): Use them. 760690075Sobrien (do_static_initialization): Replace sentry with guard throughout. 760790075Sobrien (do_static_destruction): Likewise. 760890075Sobrien * init.c (create_temporary_var): Add comment. 760918334Speter 761090075Sobrien2000-06-28 Alex Samuel <samuel@codesourcery.com> 761118334Speter 761290075Sobrien * mangle.c (find_substitution): Use same_type_p. 761390075Sobrien (write_encoding): Don't check for substitutions. 761418334Speter 761590075Sobrien2000-06-30 Nathan Sidwell <nathan@codesourcery.com> 761618334Speter 761790075Sobrien * parse.y (expr_no_comma_rangle): New non-terminal. 761890075Sobrien (template_parm): Use it for default parameter case. 761990075Sobrien (template_arg): Use it. 762090075Sobrien (expr_no_commas): Remove commented out undefined extensions. 762190075Sobrien * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 762290075Sobrien * parse.h, parse.c: Rebuilt. 762318334Speter 762490075Sobrien2000-06-29 Mark Mitchell <mark@codesourcery.com> 762518334Speter 762690075Sobrien * cp-tree.h (flag_const_strings): Remove. 762790075Sobrien (warn_parentheses): Likewise. 762890075Sobrien (warn_format): Likewise. 762990075Sobrien (common_type): Likewise. 763090075Sobrien (default_conversion): Likewise. 763190075Sobrien (build_binary_op): Likewise. 763290075Sobrien (cp_build_binary_op): New macro. 763390075Sobrien * call.c (build_new_op): Use cp_build_binary_op instead of 763490075Sobrien build_binary_op. 763590075Sobrien * class.c (build_vtable_entry_ref): Likewise. 763690075Sobrien * decl.c (expand_static_init): Likewise. 763790075Sobrien (compute_array_index_type): Likewise. 763890075Sobrien (build_enumerator): Likewise. 763990075Sobrien * decl2.c (delete_sanity): Likewise. 764090075Sobrien (start_static_initialization_or_destruction): Likewise. 764190075Sobrien * error.c (dump_type_suffix): Likewise. 764290075Sobrien * init.c (resolve_offset_ref): Likewise. 764390075Sobrien (build_new): Likewise. 764490075Sobrien (build_new_1): Likewise. 764590075Sobrien (build_vec_delete_1): Likewise. 764690075Sobrien (build_vec_init): Likewise. 764790075Sobrien (build_delete): Likewise. 764890075Sobrien * rtti.c (synthesize_tinfo_fn): Likewise. 764990075Sobrien (synthesize_tinfo_var): Likewise. 765090075Sobrien * search.c (expand_upcast_fixups): Likewise. 765190075Sobrien (fixup_all_virtual_upcast_offsets): Likewise. 765290075Sobrien * typeck.c (build_array_ref): Likewise. 765390075Sobrien (get_member_function_from_ptrfunc): Likewise. 765490075Sobrien (build_binary_op): Add parameter. 765590075Sobrien (pointer_int_sum): Use cp_build_binary_op. 765690075Sobrien (pointer_diff): Likewise. 765790075Sobrien (build_modify_expr): Likewise. 765890075Sobrien (get_delta_difference): Likewise. 765990075Sobrien (build_ptrmemfunc): Likewise. 766018334Speter 766190075Sobrien2000-06-29 Nathan Sidwell <nathan@codesourcery.com> 766218334Speter 766390075Sobrien * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 766490075Sobrien * decl.c (create_implicit_typedef): Adjust. 766590075Sobrien * decl2.c (build_artificial_parm): Adjust. 766690075Sobrien * method.c (implicitly_declare_fn): Adjust. 766790075Sobrien * pt.c (push_inline_template_parms_recursive): Adjust. 766890075Sobrien (process_template_parm): Adjust. 766990075Sobrien (overloaded_template_name): Adjust. 767090075Sobrien * semantics.c (finish_template_template_parm): Adjust. 767118334Speter 767290075Sobrien2000-06-28 Mark Mitchell <mark@codesourcery.com> 767318334Speter 767490075Sobrien * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 767590075Sobrien * class.c (update_vtable_entry_for_fn): Correct logic for deciding 767690075Sobrien where to emit thunks. 767790075Sobrien (build_vtt): Adjust call to build_vtt_inits. 767890075Sobrien (build_vtt_inits): Add parameter to indicate whether or not 767990075Sobrien sub-VTTs for virtual bases should be included. Adjust handling of 768090075Sobrien construction vtables. 768190075Sobrien (get_matching_base): New function. 768290075Sobrien (dfs_build_vtt_inits): Rename to ... 768390075Sobrien (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 768490075Sobrien construction vtables. 768590075Sobrien (dfs_fixup_binfo_vtbls): Likewise. 768690075Sobrien (build_ctor_vtbl_groups): Build construction vtables for virtual 768790075Sobrien bases, too. 768890075Sobrien (accumulate_vtbl_inits): Tweak logic for deciding whether or not 768990075Sobrien to build construction vtbls. 769090075Sobrien (dfs_accumulate_vtbl_inits): Adjust handling of 769190075Sobrien construction vtables. 769218334Speter 769390075Sobrien * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 769490075Sobrien types correctly. 769518334Speter 769690075Sobrien2000-06-27 Mark Mitchell <mark@codesourcery.com> 769718334Speter 769890075Sobrien * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 769918334Speter 770090075Sobrien2000-06-26 Nathan Sidwell <nathan@codesourcery.com> 770118334Speter 770290075Sobrien * search.c (hides): Remove. 770390075Sobrien (is_subobject_of_p): Add most_derived parameter. Use 770490075Sobrien CANONICAL_BINFO. 770590075Sobrien (lookup_field_queue_p): Adjust. 770690075Sobrien (lookup_field_r): Adjust. 770718334Speter 770890075Sobrien2000-06-26 Nathan Sidwell <nathan@codesourcery.com> 770918334Speter 771090075Sobrien * decl2.c (handle_class_head): Bash typedefs to the type's main 771152284Sobrien decl. 771218334Speter 771390075Sobrien2000-06-25 Mark Mitchell <mark@codesourcery.com> 771418334Speter 771590075Sobrien * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 771690075Sobrien (begin_global_stmt_expr): ... this. 771790075Sobrien (genrtl_finish_stmt_expr): Rename to ... 771890075Sobrien (finish_global_stmt_expr): ... this. 771990075Sobrien * init.c (begin_init_stmts): Adjust calls. 772090075Sobrien (finish_init_stmts): Likewise. 772190075Sobrien * semantics.c (genrtl_begin_stmt_expr): Rename to ... 772290075Sobrien (begin_global_stmt_expr): ... this. 772390075Sobrien (genrtl_finish_stmt_expr): Rename to ... 772490075Sobrien (finish_global_stmt_expr): ... this. 772518334Speter 772690075Sobrien2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 772718334Speter 772890075Sobrien * search.c (lookup_member): Fix typo in comment. 772918334Speter 773090075Sobrien2000-06-24 Jason Merrill <jason@redhat.com> 773118334Speter 773290075Sobrien * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 773390075Sobrien (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 773418334Speter 773590075Sobrien2000-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 773618334Speter 773790075Sobrien * parse.y (complex_direct_notype_declarator): Support global_scope. 773890075Sobrien * Makefile.in: Adjust conflict count. 773918334Speter 774090075Sobrien2000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 774118334Speter 774290075Sobrien * parse.y (template_arg): Convert TEMPLATE_DECL 774390075Sobrien that is a template template parameter to 774490075Sobrien TEMPLATE_TEMPLATE_PARM here. 774518334Speter 774690075Sobrien * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 774790075Sobrien * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 774890075Sobrien (copy_template_template_parm): Adjust prototype. 774990075Sobrien * decl.c (grokdeclarator): Remove dead code. 775090075Sobrien * pt.c (process_template_parm): Tidy. 775190075Sobrien (lookup_template_class): Construct nodes in 775290075Sobrien copy_template_template_parm. 775390075Sobrien (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 775490075Sobrien lookup_template_class. Use TYPE_TI_TEMPLATE. 775590075Sobrien * tree.c (copy_template_template_parm): Add NEWARGS 775690075Sobrien parameter. 775790075Sobrien (mapcar): Adjust call to copy_template_template_parm. 775890075Sobrien * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 775990075Sobrien * method.c (build_template_template_parm_names): Change error 776090075Sobrien code to avoid compilation warning. 776118334Speter 776290075Sobrien * gxxint.texi: Document template template parameter 776390075Sobrien name mangling. 776418334Speter 776590075Sobrien2000-06-21 Alex Samuel <samuel@codesourcery.com> 776618334Speter 776790075Sobrien * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 776890075Sobrien (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 776990075Sobrien (cp-demangle.o): New rule. 777090075Sobrien (dyn-string.o): Likewise. 777190075Sobrien * inc/cxxabi.h (__cxa_demangle): New declaration. 777218334Speter 777390075Sobrien2000-06-22 Mark Mitchell <mark@codesourcery.com> 777418334Speter 777590075Sobrien * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 777690075Sobrien (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 777790075Sobrien (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 777890075Sobrien a tree, not an int. 777990075Sobrien (THUNK_GENERATE_WITH_VTABLE_P): New macro. 778090075Sobrien (make_thunk): Change prototype. 778190075Sobrien (emit_thunk): Rename to use_thunk. 778290075Sobrien (mangle_thunk): Change prototype. 778390075Sobrien * class.c (get_derived_offset): Simplify. 778490075Sobrien (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 778590075Sobrien BV_GENERATE_THUNK_WITH_VTABLE_P. 778690075Sobrien (build_primary_vtable): Simplify. 778790075Sobrien (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 778890075Sobrien (dfs_find_base): Remove. 778990075Sobrien (update_vtable_entry_for_fn): Correct bug in finding the base 779090075Sobrien where a virtual function was first declared. Figure out whether 779190075Sobrien or not to emit a vcall-thunk with the vtables in which it appears. 779290075Sobrien Correct logic for deciding whether to use an ordinary thunk, or a 779390075Sobrien vcall thunk. 779490075Sobrien (finish_struct_1): Remove unnecssary code. 779590075Sobrien (build_vtbl_initializer): Use ssize_int for the running counter of 779690075Sobrien negative indices. 779790075Sobrien (build_vtbl_initializer): Only use vcall thunks where necessary. 779890075Sobrien Mark thunks as needing to be emitted with their vtables, or not. 779990075Sobrien (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 780090075Sobrien indices. Use size_binop. 780190075Sobrien (dfs_build_vcall_offset_vtbl_entries): Don't rely on 780290075Sobrien BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 780390075Sobrien size_binop. 780490075Sobrien (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 780590075Sobrien (build_vtable_entry): Mark thunks as needing to be emitted with 780690075Sobrien their vtables, or not. 780790075Sobrien * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 780890075Sobrien * decl2.c (mark_vtable_entries): Use use_thunk instead of 780990075Sobrien emit_thunk. 781090075Sobrien * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 781190075Sobrien information. 781290075Sobrien * error.c (dump_expr): Use BV_FN. 781390075Sobrien * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 781490075Sobrien not an int. 781590075Sobrien * method.c (make_thunk): Likewise. 781690075Sobrien (emit_thunk): Rename to use_thunk. Allow callers to decide 781790075Sobrien whether or not to actually emit the thunk. Adjust for changes in 781890075Sobrien representation of vcall offsets. 781990075Sobrien * search.c (dfs_get_pure_virtuals): Use BV_FN. 782090075Sobrien * semantics.c (emit_associated_thunks): New function. 782190075Sobrien (expand_body): Use it. 782290075Sobrien * ir.texi: Adjust decriptions of thunks. 782318334Speter 782490075Sobrien2000-06-22 Jason Merrill <jason@redhat.com> 782518334Speter 782690075Sobrien * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 782790075Sobrien (tsubst_friend_function): Copy it here. 782818334Speter 782990075Sobrien * decl.c (grok_op_properties): Fix typo. 783018334Speter 783190075Sobrien * decl2.c (delete_sanity): Clarify warning, avoid failure on 783290075Sobrien deleting void*. 783318334Speter 783490075Sobrien * pt.c (check_explicit_specialization): Clarify error. 783518334Speter 783690075Sobrien * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 783790075Sobrien an old OVERLOAD when we're declaring a non-function. 783890075Sobrien (pushdecl, destroy_local_var): Check for error_mark_node. 783990075Sobrien (warn_extern_redeclared_static): Also bail early if 784090075Sobrien we're a CONST_DECL. 784190075Sobrien (push_overloaded_decl): Ignore an old error_mark_node. 784218334Speter 784390075Sobrien2000-06-22 Nathan Sidwell <nathan@codesourcery.com> 784418334Speter 784590075Sobrien * call.c (build_x_va_arg): Check if in a template decl. 784690075Sobrien * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 784718334Speter 784890075Sobrien2000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 784918334Speter 785090075Sobrien * class.c (push_lang_context): TYPE_NAME gets you to the Java 785190075Sobrien types DECLs. 785290075Sobrien * decl.c (check_goto): Computed gotos assumed OK. 785318334Speter 785490075Sobrien2000-06-20 Jason Merrill <jason@redhat.com> 785552284Sobrien 785690075Sobrien * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 785790075Sobrien for which we don't need to look for instantiations. 785818334Speter 785990075Sobrien2000-06-21 Nathan Sidwell <nathan@codesourcery.com> 786018334Speter 786190075Sobrien * parse.y (program): Always call finish_translation_unit. 786290075Sobrien * parse.c, parse.h: Rebuilt. 786352284Sobrien 786490075Sobrien2000-06-20 Zack Weinberg <zack@wolery.cumb.org> 786518334Speter 786690075Sobrien * method.c: Don't include hard-reg-set.h. 786718334Speter 786890075Sobrien2000-06-20 Nathan Sidwell <nathan@codesourcery.com> 786918334Speter 787090075Sobrien * rtti.c (get_base_offset): Cope when vbase field is in a base. 787118334Speter 787290075Sobrien2000-06-20 Nathan Sidwell <nathan@codesourcery.com> 787318334Speter 787490075Sobrien * call.c (build_conditional_expr): Use VOID_TYPE_P. 787590075Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 787690075Sobrien (convert_to_void): Likewise. 787750397Sobrien * error.c (dump_expr): Likewise. 787890075Sobrien * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 787990075Sobrien * init.c (build_delete): Likewise. 788090075Sobrien * method.c (emit_thunk): Likewise. 788190075Sobrien * optmize.c (declare_return_variable): Likewise. 788290075Sobrien * rtti.c (get_tinfo_decl_dynamic): Likewise. 788390075Sobrien (get_typeid): Likewise. 788490075Sobrien (build_dynamic_cast_1): Likewise. 788590075Sobrien * typeck.c (composite_pointer_type): Likewise. 788690075Sobrien (common_type): Likewise. 788790075Sobrien (build_indirect_ref): Likewise. 788890075Sobrien (build_binary_op): Likewise. 788990075Sobrien (build_x_compound_expr): Likewise. 789090075Sobrien (check_return_expr): Likewise. 789190075Sobrien * typeck2.c (add_exception_specifier): Likewise. 789252284Sobrien 789390075Sobrien * mangle.c (write_method_parms): Use direct comparison for end 789490075Sobrien of parmlist. 789518334Speter 789690075Sobrien2000-06-19 Benjamin Chelf <chelf@codesourcery.com> 789752284Sobrien 789890075Sobrien * cp-tree.h (genrtl_try_block): Declare function. 789990075Sobrien (genrtl_handler): Likewise. 790090075Sobrien (genrtl_catch_block): Likewise. 790190075Sobrien (genrtl_ctor_stmt): Likewise. 790290075Sobrien (genrtl_subobject): Likewise. 790390075Sobrien (genrtl_decl_cleanup): Likewise. 790490075Sobrien (genrtl_do_poplevel): Likewise. 790590075Sobrien (genrtl_do_pushlevel): Likewise. 790690075Sobrien (genrtl_clear_out_block): Likewise. 790790075Sobrien (genrtl_goto_stmt): Likewise. 790890075Sobrien (genrtl_expr_stmt): Likewise. 790990075Sobrien (genrtl_decl_stmt): Likewise. 791090075Sobrien (genrtl_if_stmt): Likewise. 791190075Sobrien (genrtl_while_stmt): Likewise. 791290075Sobrien (genrtl_do_stmt): Likewise. 791390075Sobrien (genrtl_return_stmt): Likewise. 791490075Sobrien (genrtl_for_stmt): Likewise. 791590075Sobrien (genrtl_break_stmt): Likewise. 791690075Sobrien (genrtl_continue_stmt): Likewise. 791790075Sobrien (genrtl_scope_stmt): Likewise. 791890075Sobrien (genrtl_switch_stmt): Likewise. 791990075Sobrien (genrtl_case_label): Likewise. 792090075Sobrien (genrtl_begin_compound_stmt): Likewise. 792190075Sobrien (genrtl_finish_compound_stmt): Likewise. 792290075Sobrien (genrtl_compound_stmt): Likewise. 792390075Sobrien (genrtl_asm_stmt): Likewise. 792490075Sobrien (genrtl_named_return_value): Likewise. 792590075Sobrien (genrtl_begin_stmt_expr): Likewise. 792690075Sobrien (genrtl_finish_stmt_expr): Likewise. 792790075Sobrien (finish_for_stmt): Removed first argument. 792890075Sobrien (finish_switch_stmt): Likewise. 792918334Speter 793090075Sobrien * semantics.c (genrtl_try_block): Define function. 793190075Sobrien (genrtl_handler): Likewise. 793290075Sobrien (genrtl_catch_block): Likewise. 793390075Sobrien (genrtl_ctor_stmt): Likewise. 793490075Sobrien (genrtl_subobject): Likewise. 793590075Sobrien (genrtl_decl_cleanup): Likewise. 793690075Sobrien (genrtl_do_poplevel): Likewise. 793790075Sobrien (genrtl_do_pushlevel): Likewise. 793890075Sobrien (genrtl_clear_out_block): Likewise. 793990075Sobrien (genrtl_goto_stmt): Likewise. 794090075Sobrien (genrtl_expr_stmt): Likewise. 794190075Sobrien (genrtl_decl_stmt): Likewise. 794290075Sobrien (genrtl_if_stmt): Likewise. 794390075Sobrien (genrtl_while_stmt): Likewise. 794490075Sobrien (genrtl_do_stmt): Likewise. 794590075Sobrien (genrtl_return_stmt): Likewise. 794690075Sobrien (genrtl_for_stmt): Likewise. 794790075Sobrien (genrtl_break_stmt): Likewise. 794890075Sobrien (genrtl_continue_stmt): Likewise. 794990075Sobrien (genrtl_scope_stmt): Likewise. 795090075Sobrien (genrtl_switch_stmt): Likewise. 795190075Sobrien (genrtl_case_label): Likewise. 795290075Sobrien (genrtl_begin_compound_stmt): Likewise. 795390075Sobrien (genrtl_finish_compound_stmt): Likewise. 795490075Sobrien (genrtl_compound_stmt): Likewise. 795590075Sobrien (genrtl_asm_stmt): Likewise. 795690075Sobrien (genrtl_named_return_value): Likewise. 795790075Sobrien (genrtl_begin_stmt_expr): Likewise. 795890075Sobrien (genrtl_finish_stmt_expr): Likewise. 795990075Sobrien (finish_for_stmt): Removed first argument and generate rtl 796090075Sobrien specific code. 796190075Sobrien (finish_switch_stmt): Likewise. 796290075Sobrien (do_poplevel): Removed generate rtl specific code. 796390075Sobrien (do_pushlevel): Likewise. 796490075Sobrien (add_tree): Likewise. 796590075Sobrien (finish_goto_stmt): Likewise. 796690075Sobrien (finish_expr_stmt): Likewise. 796790075Sobrien (begin_if_stmt): Likewise. 796890075Sobrien (finish_if_stmt_cond): Likewise. 796990075Sobrien (finish_then_clause): Likewise. 797090075Sobrien (begin_else_clause): Likewise. 797190075Sobrien (finish_else_clause): Likewise. 797290075Sobrien (finish_if_stmt): Likewise. 797390075Sobrien (clear_out_block): Likewise. 797490075Sobrien (begin_while_stmt): Likewise. 797590075Sobrien (finish_while_stmt_cond): Likewise. 797690075Sobrien (finish_while_stmt): Likewise. 797790075Sobrien (begin_do_stmt): Likewise. 797890075Sobrien (finish_do_body): Likewise. 797990075Sobrien (finish_do_stmt): Likewise. 798090075Sobrien (finish_return_stmt): Likewise. 798190075Sobrien (begin_for_stmt): Likewise. 798290075Sobrien (finish_for_init_stmt): Likewise. 798390075Sobrien (finish_for_cond): Likewise. 798490075Sobrien (finish_for_expr): Likewise. 798590075Sobrien (finish_break_stmt): Likewise. 798690075Sobrien (finish_continue_stmt): Likewise. 798790075Sobrien (begin_switch_stmt): Likewise. 798890075Sobrien (finish_switch_cond): Likewise. 798990075Sobrien (finish_case_label): Likewise. 799090075Sobrien (begin_try_block): Likewise. 799190075Sobrien (begin_function_try_block): Likewise. 799290075Sobrien (finish_try_block): Likewise. 799390075Sobrien (finish_cleanup_try_block): Likewise. 799490075Sobrien (finish_cleanup): Likewise. 799590075Sobrien (finish_function_try_block): Likewise. 799690075Sobrien (finish_handler_sequence): Likewise. 799790075Sobrien (finish_function_handler_sequence): Likewise. 799890075Sobrien (begin_handler): Likewise. 799990075Sobrien (finish_handler_parms): Likewise. 800090075Sobrien (begin_catch_block): Likewise. 800190075Sobrien (finish_handler): Likewise. 800290075Sobrien (begin_compound_stmt): Likewise. 800390075Sobrien (finish_compound_stmt): Likewise. 800490075Sobrien (finish_asm_stmt): Likewise. 800590075Sobrien (finish_label_stmt): Likewise. 800690075Sobrien (finish_label_decl): Likewise. 800790075Sobrien (finish_subobject): Likewise. 800890075Sobrien (finish_decl_cleanup): Likewise. 800990075Sobrien (finish_named_return_value): Likewise. 801090075Sobrien (begin_stmt_expr): Likewise. 801190075Sobrien (finish_stmt_expr): Likewise. 801218334Speter 801390075Sobrien * decl.c (initialize_local_var): Changed call to finish_expr_stmt 801490075Sobrien to call genrtl_expr_stmt when appropriate. 801518334Speter 801690075Sobrien * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 801790075Sobrien begin_compound_expr to call genrtl_begin_stmt_expr and 801890075Sobrien genrtl_begin_compound_expr when appropriate. 801990075Sobrien (finish_init_stmts): Changed calls to finish_compound_expr and 802090075Sobrien finish_stmt_expr to call genrtl_finish_compound_expr and 802190075Sobrien genrtl_finish_stmt_expr when appropriate. 802290075Sobrien (expand_default_init): Changed call to finish_expr_stmt to call 802390075Sobrien genrtl_expr_stmt when appropriate. 802490075Sobrien (build_vec_init): Likewise. 802518334Speter 802690075Sobrien * parse.y (simple_stmt): Removed first argument from call to 802790075Sobrien finish_for_stmt. Removed first argument from call to 802890075Sobrien finish_switch_stmt. 802918334Speter 803090075Sobrien * parse.c: Regenerated. 803118334Speter 803290075Sobrien * pt.c (tsubst_expr): Removed first argument from call to 803390075Sobrien finish_for_stmt. Removed first argument from call to 803490075Sobrien finish_switch_stmt. 803518334Speter 803690075Sobrien2000-06-16 Benjamin Chelf <chelf@codesourcery.com> 803718334Speter 803890075Sobrien * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 803990075Sobrien CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 804018334Speter 804190075Sobrien * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 804290075Sobrien (cplus_tree_code_length[]): Likewise. 804390075Sobrien (cplus_tree_code_name[]): Likewise. 804490075Sobrien (init_parse): Added call to add_c_tree_codes. Changed 804590075Sobrien LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 804618334Speter 804790075Sobrien2000-06-16 Mark Mitchell <mark@codesourcery.com> 804818334Speter 804990075Sobrien * cp-tree.h (finish_mem_initializers): Declare. 805090075Sobrien (count_trees): Likewise. 805190075Sobrien * parse.y (base_init): Use finish_mem_initializers. 805290075Sobrien * semantics.c (finish_mem_initializers): New function. 805318334Speter 805490075Sobrien * tree.c (count_trees_r): Prototype. Use DATA parameter to store 805590075Sobrien the number of trees. 805690075Sobrien (n_trees): Remove. 805790075Sobrien (count_trees): Don't use it. 805818334Speter 805990075Sobrien2000-06-15 Jason Merrill <jason@redhat.com> 806018334Speter 806190075Sobrien * tree.c (count_trees): New debugging function. 806218334Speter 806390075Sobrien * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 806490075Sobrien * init.c (build_member_call): Pull out the name of a DECL. 806518334Speter 806690075Sobrien * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 806790075Sobrien * semantics.c (expand_body): Push to TV_INTEGRATION here. 806890075Sobrien * optimize.c (optimize_function): Not here. 806990075Sobrien * pt.c (instantiate_decl): Push to TV_PARSE. 807018334Speter 807190075Sobrien2000-06-15 Mark Mitchell <mark@codesourcery.com> 807218334Speter 807390075Sobrien * cp-tree.h (struct language_function): Remove x_base_init_list 807490075Sobrien and x_member_init_list. 807590075Sobrien (current_base_init_list): Remove. 807690075Sobrien (current_member_init_list): Likewise. 807790075Sobrien (setup_vtbl_ptr): Change prototype. 807890075Sobrien (emit_base_init): Likewise. 807990075Sobrien (expand_member_init): Likewise. 808090075Sobrien (reinit_parse_for_function): Remove. 808190075Sobrien * decl.c (save_function_data): Don't clear x_base_init_list and 808290075Sobrien x_member_init_list. 808390075Sobrien (mark_language_function): Don't mark them. 808490075Sobrien * init.c (perform_member_init): Tweak comment. 808590075Sobrien (sort_member_init): Take the list of initializers as an argument. 808690075Sobrien (sort_base_init): Likewise. 808790075Sobrien (emit_base_init): Likewise. 808890075Sobrien (expand_member_init): Return the initializer. Don't use global 808990075Sobrien variables. 809090075Sobrien * lex.c (reinit_parse_for_function): Remove. 809190075Sobrien * method.c (build_template_parm_names): Correct substitution. 809290075Sobrien (do_build_copy_constructor): Don't use current_member_init_list 809390075Sobrien and current_base_init_list. 809490075Sobrien (synthesize_method): Likewise. 809590075Sobrien * parse.y (base_init): Split mem-initializers into 809690075Sobrien base-initializers and field-initializers. 809790075Sobrien (member_init_list): Build up the list here. 809890075Sobrien (member_init): Return the initializer. 809990075Sobrien (fn.depfn): Don't use reinit_parse_for_function. 810090075Sobrien * parse.c: Regenerated. 810190075Sobrien * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 810290075Sobrien ERROR_MARK. 810390075Sobrien (tsubst_expr): Don't use current_member_init_list 810490075Sobrien and current_base_init_list. 810590075Sobrien (tsubst_expr_values): Rename to ... 810690075Sobrien (tsubst_initializer_list): ... this. Use convert_from_reference. 810790075Sobrien * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 810890075Sobrien and current_base_init_list. 810990075Sobrien (begin_function_definition): Don't call reinit_parse_for_function. 811018334Speter 811190075Sobrien * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 811218334Speter 811390075Sobrien * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 811452284Sobrien correctly. 811552284Sobrien 811690075Sobrien * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 811718334Speter 811890075Sobrien2000-06-14 Benjamin Chelf <chelf@codesourcery.com> 811918334Speter 812090075Sobrien * cp-tree.h (IF_COND): Move to c-common.h. 812190075Sobrien (THEN_CLAUSE): Likewise. 812290075Sobrien (ELSE_CLAUSE): Likewise. 812390075Sobrien (WHILE_COND): Likewise. 812490075Sobrien (WHILE_BODY): Likewise. 812590075Sobrien (DO_COND): Likewise. 812690075Sobrien (DO_BODY): Likewise. 812790075Sobrien (RETURN_EXPR): Likewise. 812890075Sobrien (EXPR_STMT_EXPR): Likewise. 812990075Sobrien (FOR_INIT_STMT): Likewise. 813090075Sobrien (FOR_COND): Likewise. 813190075Sobrien (FOR_EXPR): Likewise. 813290075Sobrien (FOR_BODY): Likewise. 813390075Sobrien (SWITCH_COND): Likewise. 813490075Sobrien (SWITCH_BODY): Likewise. 813590075Sobrien (CASE_LOW): Likewise. 813690075Sobrien (CASE_HIGH): Likewise. 813790075Sobrien (GOTO_DESTINATION): Likewise. 813890075Sobrien (COMPOUND_BODY): Likewise. 813990075Sobrien (ASM_CV_QUAL): Likewise. 814090075Sobrien (ASM_STRING): Likewise. 814190075Sobrien (ASM_OUTPUTS): Likewise. 814290075Sobrien (ASM_INPUTS): Likewise. 814390075Sobrien (ASM_CLOBBERS): Likewise. 814490075Sobrien (DECL_STMT_DECL): Likewise. 814590075Sobrien (STMT_EXPR_STMT): Likewise. 814690075Sobrien (LABEL_STMT_LABEL): Likewise. 814790075Sobrien (SCOPE_BEGIN_P): Likewise. 814890075Sobrien (SCOPE_END_P): Likewise. 814990075Sobrien (SCOPE_STMT_BLOCK): Likewise. 815090075Sobrien (SCOPE_NULLIFIED_P): Likewise. 815190075Sobrien (SCOPE_NO_CLEANUPS_P): Likewise. 815290075Sobrien (SCOPE_PARTIAL_P): Likewise. 815390075Sobrien (ASM_VOLATILE_P): Likewise. 815490075Sobrien (STMT_LINENO): Likewise. 815590075Sobrien (STMT_LINENO_FOR_FN_P): Likewise. 815652284Sobrien 815790075Sobrien * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 815890075Sobrien ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 815990075Sobrien FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 816090075Sobrien CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 816190075Sobrien SCOPE_STMT, CASE_LABEL, STMT_EXPR. 816218334Speter 816390075Sobrien * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 816418334Speter 816590075Sobrien * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 816690075Sobrien (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 816718334Speter 816890075Sobrien * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 816990075Sobrien (cplus_tree_code_length[]): Added '#include "c-common.def"'. 817090075Sobrien (cplus_tree_code_name[]): Added '#include "c-common.def"'. 817118334Speter 817290075Sobrien2000-06-14 Mark Mitchell <mark@codesourcery.com> 817318334Speter 817490075Sobrien * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 817590075Sobrien * class.c (dfs_find_final_overrider): Set it appropriately. 817690075Sobrien (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 817790075Sobrien avoid unneeded secondary vptrs. 817818334Speter 817990075Sobrien2000-06-13 Jakub Jelinek <jakub@redhat.com> 818018334Speter 818190075Sobrien * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 818290075Sobrien (check_bitfield_decl, check_field_decl): Likewise. 818390075Sobrien (build_vtbl_or_vbase_field, build_base_field): Likewise. 818490075Sobrien (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 818590075Sobrien * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 818690075Sobrien (xfer_tag, finish_enum): Likewise. 818790075Sobrien * decl2.c (finish_builtin_type): Likewise. 818890075Sobrien * init.c (init_init_processing): Likewise. 818990075Sobrien * pt.c (instantiate_class_template): Likewise. 819090075Sobrien * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 819190075Sobrien * cp-tree.h (struct lang_type): Add user_align member. 819290075Sobrien (CLASSTYPE_USER_ALIGN): Define. 819318334Speter 819490075SobrienTue Jun 13 15:48:03 2000 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 819518334Speter 819690075Sobrien * Make-lang.in (c++.install-common): Install g++-cross in 819790075Sobrien $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 819890075Sobrien $(target_alias)-g++ and $(target_alias)-c++. 819918334Speter 820090075Sobrien2000-06-12 Mark Mitchell <mark@codesourcery.com> 820118334Speter 820290075Sobrien * class.c (vcall_offset_data_s): Add last_init and fns. 820390075Sobrien (overrides): Rename to same_signature_p. 820490075Sobrien (dfs_find_final_overrider): Adjust accordingly. 820590075Sobrien (mark_overriders): Likewise. 820690075Sobrien (warn_hidden): Likewise. 820790075Sobrien (build_vtbl_initializer): Reorganize machinery for building things 820890075Sobrien at negative offsets. 820990075Sobrien (build_vcall_and_vbase_vtbl_entries): Likewise. 821090075Sobrien (build_vbase_offset_vtbl_entries): Likewise. 821190075Sobrien (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 821290075Sobrien offset entries. Do not create two entries for functions with the 821390075Sobrien same signature. 821490075Sobrien (build_vcall_offset_vtbl_entries): Initialize vod->fns. 821590075Sobrien (build_rtti_vtbl_entries): Reorganize machinery for building things 821690075Sobrien at negative offsets. 821718334Speter 821890075Sobrien * optimize.c (expand_call_inline): Don't recurse into the code 821990075Sobrien used to initialize the parameters more than once. 822018334Speter 822190075Sobrien2000-06-11 Mark Mitchell <mark@codesourcery.com> 822252284Sobrien 822390075Sobrien * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 822490075Sobrien (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 822590075Sobrien (find_substitution): Only use the `Sa' substitution for 822690075Sobrien std::allocator, not instantiations of it. 822790075Sobrien (write_template_prefix): Move comment. Only use a TREE_LIST to 822890075Sobrien represent substitutions for a member template. 822990075Sobrien (write_array_type): Mangle array dimensions correctly. 823090075Sobrien * optimize.c (maybe_clone_body): Copy more information from the 823190075Sobrien cloned function. 823290075Sobrien * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 823390075Sobrien on the regenerated declaration. 823418334Speter 823590075Sobrien2000-06-11 Chip Salzenberg <chip@valinux.com> 823690075Sobrien Mark Mitchell <mark@codesourcery.com> 823718334Speter 823890075Sobrien * class.c (build_vtable): Clarify comment. 823990075Sobrien (build_ctor_vtbl_group): Pass the most derived type to 824090075Sobrien build_vtable. 824118334Speter 824290075Sobrien2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 824318334Speter 824490075Sobrien * decl2.c (compare_options): Don't needlessly cast away const-ness. 824518334Speter 824690075Sobrien2000-06-10 Mark Mitchell <mark@codesourcery.com> 824718334Speter 824890075Sobrien * decl.c (add_binding): Handle duplicate declarations of external 824990075Sobrien variables. 825018334Speter 825190075Sobrien2000-06-09 Chip Salzenberg <chip@valinux.com> 825290075Sobrien Mark Mitchell <mark@codesourcery.com> 825318334Speter 825490075Sobrien * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 825590075Sobrien argument. 825690075Sobrien (write_signed_number): New macro. 825790075Sobrien (write_unsigned_number): Likewise. 825890075Sobrien (write_source_name): Use them. 825990075Sobrien (write_number): Handle signed and unsigned values. 826090075Sobrien (write_integer_cst): Use tree_int_cst_sgn, and use 826190075Sobrien write_unsigned_number or write_signed_number as appropriate. 826290075Sobrien (write_discriminator): Use write_unsigned_number or 826390075Sobrien write_signed_number as appropriate. 826490075Sobrien (write_template_arg_literal): Likewise. 826590075Sobrien (write_array_type): Use tree_low_cst. 826690075Sobrien (write_template_parm): Use write_unsigned_number or 826790075Sobrien write_signed_number as appropriate. 826890075Sobrien (write_substitution): Adjust call to write_number. 826990075Sobrien (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 827090075Sobrien (write_expression): Handle non-type template arguments of 827190075Sobrien reference type correctly. 827290075Sobrien (mangle_thunk): Use write_signed_number. 827318334Speter 827490075Sobrien2000-06-09 Chip Salzenberg <chip@valinux.com> 827518334Speter 827690075Sobrien * mangle.c (find_substition): Don't mangle objects with typename 827790075Sobrien substitutions (e.g. "cin" as "Si"). 827818334Speter 827990075Sobrien2000-06-09 Zack Weinberg <zack@wolery.cumb.org> 828018334Speter 828190075Sobrien * call.c (add_candidate): Use ggc_alloc_cleared. 828290075Sobrien * decl.c (lookup_label): Likewise. 828390075Sobrien * lex.c (retrofit_lang_decl): Likewise. 828418334Speter 828590075Sobrien2000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 828618334Speter 828790075Sobrien * semantics.c (expand_body): Push to TV_EXPAND. 828890075Sobrien * optimize.c (optimize_function): Push to TV_INTEGRATION. 828990075Sobrien * decl.c (start_function): Always call announce_function. 829018334Speter 829190075Sobrien * tinfo2.cc: Just declare abort. 829218334Speter 829390075Sobrien2000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 829418334Speter 829590075Sobrien * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 829690075Sobrien whenever @ is a symbolic name. 829718334Speter 829890075Sobrien2000-06-08 Jakub Jelinek <jakub@redhat.com> 829918334Speter 830090075Sobrien * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 830118334Speter 830290075Sobrien2000-06-07 Mark Mitchell <mark@codesourcery.com> 830318334Speter 830490075Sobrien * decl.c (pushdecl): Look up functions by DECL_NAME, not 830590075Sobrien DECL_ASSEMBLER_NAME. 830618334Speter 830790075Sobrien2000-06-06 Mark Mitchell <mark@codesourcery.com> 830818334Speter 830990075Sobrien * decl2.c (c_language): Define. 831018334Speter 831190075Sobrien2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 831218334Speter 831390075Sobrien * lex.c (lang_init_options): Tweak. 831418334Speter 831590075Sobrien * decl2.c: Remove #inclusion of diagnostic.h 831690075Sobrien (lang_decode_option): Move diagnostic formatting options to 831790075Sobrien toplevel. 831818334Speter 831990075Sobrien * lang-options.h: Remove documentation for diagnostic options. 832018334Speter 832190075Sobrien * Makefile.in (lex.o): Depends upon diagnostic.h 832218334Speter 832390075Sobrien2000-06-06 Mark Mitchell <mark@codesourcery.com> 832418334Speter 832590075Sobrien * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 832690075Sobrien the same DECL_RESULT, it's not a redefinition. 832790075Sobrien * pt.c (tsubst_decl): Remove code to handle illegal 832850397Sobrien specializations. 832918334Speter 833090075Sobrien2000-06-06 Nathan Sidwell <nathan@codesourcery.com> 833118334Speter 833290075Sobrien * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 833318334Speter 833490075Sobrien2000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 833518334Speter 833690075Sobrien * search.c (maybe_suppress_debug_info): Don't check 833790075Sobrien CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 833818334Speter 833990075Sobrien * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 834090075Sobrien here if extern_p. 834118334Speter 834290075Sobrien Remember instantiation context in deferred instantiations. 834390075Sobrien * cp-tree.h (struct tinst_level): Remove. 834490075Sobrien (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 834590075Sobrien * pt.c (current_tinst_level): Now a tree. 834690075Sobrien (print_template_context, push_tinst_level, pop_tinst_level, 834790075Sobrien tinst_for_decl): Adjust. 834890075Sobrien (reopen_tinst_level): New fn. 834990075Sobrien (init_pt): Register current_tinst_level as a root. 835090075Sobrien (add_pending_template): Put current_tinst_level in TREE_PURPOSE 835190075Sobrien of the pending templates list. 835290075Sobrien (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 835390075Sobrien * lex.c (extract_interface_info): Adjust. 835490075Sobrien * decl2.c (warn_if_unknown_interface): Adjust. 835518334Speter 835690075Sobrien2000-06-05 Mark Mitchell <mark@codesourcery.com> 835718334Speter 835890075Sobrien * class.c (indirect_primary_base_p): New function. 835990075Sobrien (determine_primary_base): Use it. 836018334Speter 836190075Sobrien2000-06-05 Nathan Sidwell <nathan@codesourcery.com> 836218334Speter 836390075Sobrien Update new-abi dynamic cast algorithm. 836490075Sobrien * tinfo.cc (__class_type_info::__dyncast_result): Add 836590075Sobrien whole_details. Adjust constructor. 836690075Sobrien (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 836790075Sobrien Avoid unnecessary searching. 836890075Sobrien (__dynamic_cast): Adjust for __dyncast_result::whole_details. 836918334Speter 837090075SobrienMon Jun 5 06:48:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 837118334Speter 837290075Sobrien * decl.c (init_decl_processing): Don't call record_component_aliases. 837390075Sobrien * tree.c (build_cplus_array_type_1): Likewise. 837418334Speter 837590075Sobrien2000-06-04 Mark Mitchell <mark@codesourcery.com> 837618334Speter 837790075Sobrien * ir.texi: Correct typo. 837890075Sobrien * mangle.c (write_expression): Handle non-type template arguments 837990075Sobrien with reference type. 838090075Sobrien * method.c (build_overload_value): Likewise. 838190075Sobrien * pt.c (convert_nontype_argument): Explicitly represent conversion 838290075Sobrien to a reference with an ADDR_EXPR. 838390075Sobrien (unify): Always unify arguments in left-to-right order. 838418334Speter 838590075Sobrien2000-06-03 Alex Samuel <samuel@codesourcery.com> 838690075Sobrien Mark Mitchell <mark@codesourcery.com> 838718334Speter 838890075Sobrien * Make-lang.in (CXX_SRCS): Add mangle.c. 838990075Sobrien * Makefile.in (CXX_OBJS): Add mangle.o. 839090075Sobrien (mangle.o): New rule. 839118334Speter 839290075Sobrien * class.c (local_classes): New variable. 839390075Sobrien * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 839490075Sobrien (get_vtt_name): Use mangle_vtt_name for new ABI. 839590075Sobrien (init_class_processing): Initialize local_classes. 839690075Sobrien (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 839790075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 839890075Sobrien (std_identifier): New macro. 839990075Sobrien (DECL_VOLATILE_MEMFUNC_P): New macro. 840090075Sobrien (DECL_NAMESPACE_STD_P): Likewise. 840190075Sobrien (local_classes): Declare. 840290075Sobrien (get_mostly_instantiated_function_type): Declare. 840390075Sobrien (init_mangle): Declare. 840490075Sobrien (mangle_decl): Likewise. 840590075Sobrien (mangle_type_string): Likewise. 840690075Sobrien (mangle_type): Likewise. 840790075Sobrien (mangle_typeinfo_for_type): Likewise. 840890075Sobrien (mangle_typeinfo_string_for_type): Likewise. 840990075Sobrien (mangle_vtbl_for_type): Likewise. 841090075Sobrien (mangle_vtt_for_type): Likewise. 841190075Sobrien (mangle_ctor_vtbl_for_type): Likewise. 841290075Sobrien (mangle_thunk): Likewise. 841390075Sobrien (mangle_conv_op_name_for_type): Likewise. 841490075Sobrien (mangle_guard_variable): Likewise. 841590075Sobrien * decl.c (pushtag): Keep track of local classes. 841690075Sobrien (initialize_predefined_identifiers): Initialize std_identifier. 841790075Sobrien (init_decl_processing): Use std_identifier. 841890075Sobrien (start_decl): Don't treat instantiations as specializations. 841990075Sobrien (grokdeclarator): Likewise. 842090075Sobrien (grokvardecl): Call mangle_decl for new ABI. Only set mangled 842190075Sobrien name for fully-instantiated templates. 842290075Sobrien * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 842390075Sobrien destructors with the new ABI. 842490075Sobrien (finish_static_data_member_decl): Use mangle_decl under the new ABI. 842590075Sobrien (grokfield): Use mangle_type for new ABI. 842690075Sobrien (grokoptypename): Use mangle_conv_op_for_type for new ABI. 842790075Sobrien (get_sentry): Use mangle_guard_variable for new ABI. 842890075Sobrien (start_static_initialization_or_destruction): Likewise. 842990075Sobrien * expr.c (extract_aggr_init): Remove. 843090075Sobrien (extract_scalar_init): Likewise. 843190075Sobrien (extract_init): Remove #if 0'd code. 843290075Sobrien * mangle.c: New function. 843390075Sobrien * method.c (build_mangled_name): Assert not flag_new_abi. 843490075Sobrien (build_static_name): Likewise. 843590075Sobrien (build_decl_overload_real): Likewise. 843690075Sobrien (build_typename_overload): Likewise. 843790075Sobrien (build_overload_with_type): Likewise. 843890075Sobrien (build_overload_name): Likewise. 843990075Sobrien (get_ctor_vtbl_name): Likewise. 844090075Sobrien (start_squangling): Likewise. 844190075Sobrien (get_id_2): Likewise. 844290075Sobrien (set_mangled_name_for_decl): Call mangle_decl for new ABI. 844390075Sobrien (init_method): Call init_mangle for new ABI. 844490075Sobrien (make_thunk): Call mangle_thunk for new ABI. 844590075Sobrien * operators.def: Correct new ABI manglings for the `%' operator. 844690075Sobrien Add `::' operator. 844790075Sobrien * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 844890075Sobrien DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 844990075Sobrien (lookup_template_class): Call mangle_decl for new ABI. 845090075Sobrien (get_mostly_instantiated_function_type): New function. 845190075Sobrien (set_mangled_name_for_template_decl): Use it. 845290075Sobrien (tsubst_decl): Use set_mangled_name_for_decl for destructors with 845390075Sobrien the new ABI. Use mangle_conv_op_name_for_type for instantiated 845490075Sobrien conversion op names. 845590075Sobrien * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 845690075Sobrien (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 845790075Sobrien (tinfo_base_init): Likewise. Mangle typeinfo string name with 845890075Sobrien mangle_typeinfo_string_for_type. 845918334Speter 846090075Sobrien2000-06-03 Mark Mitchell <mark@codesourcery.com> 846118334Speter 846290075Sobrien * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 846390075Sobrien (INNERMOST_TEMPLATE_ARGS): New macro. 846490075Sobrien (innermost_args): Remove. 846590075Sobrien (get_innermost_template_args): New function. 846690075Sobrien * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 846790075Sobrien * error.c (dump_function_decl): Be caution when using 846890075Sobrien most_general_template. 846990075Sobrien * method.c (build_template_parm_names): Use 847090075Sobrien INNERMOST_TEMPLATE_ARGS. 847190075Sobrien * pt.c (add_to_template_args): Tidy comment 847290075Sobrien (get_innermost_template_args): New function. 847390075Sobrien (check_explicit_specialization): Clear DECL_INITIAL for a new 847490075Sobrien specialization. 847590075Sobrien (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 847690075Sobrien Tidy. 847790075Sobrien (push_template_decl): Always register specializations of the most 847890075Sobrien general template. 847990075Sobrien (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 848090075Sobrien (coerce_template_parms): Likewise. 848190075Sobrien (lookup_template_class): Likewise. 848290075Sobrien (innermost_args): Remove. 848390075Sobrien (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 848490075Sobrien (tsubst_decl): Handle tricky specializations. Use 848590075Sobrien get_innermost_template_args. 848690075Sobrien (instantiate_template): Simplify handling of partial 848752284Sobrien instantiations. 848890075Sobrien (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 848990075Sobrien (most_general_template): Reimplement, in a more straightforward 849090075Sobrien manner. 849190075Sobrien (regenerate_decl_from_template): Tweak formatting. Use 849290075Sobrien TMPL_ARGS_DEPTH for clarity. 849390075Sobrien (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 849418334Speter 849590075Sobrien * dump.c (dequeue_and_dump): Dump information about thunks. 849618334Speter 849790075Sobrien2000-06-01 Richard Henderson <rth@cygnus.com> 849818334Speter 849990075Sobrien * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 850018334Speter 850190075Sobrien2000-06-01 Richard Henderson <rth@cygnus.com> 850218334Speter 850390075Sobrien * decl2.c (unsupported_options): Fix typo, make const. 850490075Sobrien (lang_decode_option): Fix bsearch argument order. 850518334Speter 850690075Sobrien2000-06-01 Mark Mitchell <mark@codesourcery.com> 850718334Speter 850890075Sobrien * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 850990075Sobrien on FIELD_DECLs. 851018334Speter 851190075SobrienWed May 31 14:09:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 851218334Speter 851390075Sobrien * cp-tree.h (c_get_alias_set): Deleted. 851490075Sobrien * Makefile.in (decl.o): Include ../expr.h. 851590075Sobrien * decl.c (expr.h): Include. 851690075Sobrien (init_decl_processing): Call record_component_aliases for arrays. 851790075Sobrien (grokdeclarator): Likewise. 851890075Sobrien Set TREE_ADDRESSABLE for fields that aren't bitfields. 851990075Sobrien * tree.c (build_cplus_array_type_1): Call record_component_aliases. 852018334Speter 852190075Sobrien2000-05-31 Mark Mitchell <mark@codesourcery.com> 852218334Speter 852390075Sobrien Remove guiding declaration support. 852490075Sobrien * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 852590075Sobrien (flag_guiding_decls): Remove. 852690075Sobrien * call.c (build_user_type_conversion_1): Remove support for 852790075Sobrien guiding decls. 852850397Sobrien (build_new_function_call): Likewise. 852950397Sobrien (build_new_op): Likewise. 853050397Sobrien (build_new_method_call): Likewise. 853190075Sobrien * decl.c (start_function): Likewise. 853290075Sobrien * friend.c (is_friend): Likewise. 853390075Sobrien (do_friend): Likewise. 853490075Sobrien * decl2.c ((flag_dump_translation_unit): Make it const. 853590075Sobrien (flag_guiding_decls): Remove. 853690075Sobrien (unsupported_options): New variable 853790075Sobrien (compare_options): New function. 853890075Sobrien (lang_decode_option): Use them. 853952284Sobrien 854090075Sobrien * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 854152284Sobrien 854290075Sobrien * method.c (mangle_expression): Adjust test for legal expression 854352284Sobrien operators. 854418334Speter 854590075Sobrien * pt.c (instantiate_decl): Save and restore the local 854690075Sobrien specializations list. 854718334Speter 854890075Sobrien2000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 854952284Sobrien 855090075Sobrien * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 855118334Speter 855290075Sobrien2000-05-30 Mark Mitchell <mark@codesourcery.com> 855318334Speter 855490075Sobrien * call.c (add_template_candidate_real): Handle member template 855590075Sobrien constructors for classes with virtual bases. 855690075Sobrien (build_user_type_conversion_1): Use in_charge_arg_for_name. 855790075Sobrien (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 855818334Speter 855990075Sobrien * ir.texi: Update thunk documentation. 856018334Speter 856190075Sobrien * call.c (joust): Fix handling of overloaded builtin operators. 856218334Speter 856390075Sobrien2000-05-30 Zack Weinberg <zack@wolery.cumb.org> 856418334Speter 856590075Sobrien * cp-tree.h (DECL_ANTICIPATED): New macro. 856690075Sobrien Document new use of DECL_LANG_FLAG_7. 856790075Sobrien * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 856890075Sobrien in the user namespace. 856990075Sobrien * lex.c (do_identifier): If the identifier's declaration has 857090075Sobrien DECL_ANTICIPATED on, it has not yet been declared. But do not 857190075Sobrien replace it with an ordinary implicit declaration. 857218334Speter 857390075Sobrien * tinfo2.cc: Include stdlib.h. 857418334Speter 857590075Sobrien2000-05-29 Mark Mitchell <mark@codesourcery.com> 857618334Speter 857790075Sobrien * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 857890075Sobrien * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 857990075Sobrien CLASSTYPE_ALIGN. 858018334Speter 858190075Sobrien2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 858218334Speter 858390075Sobrien * decl2.c (lang_decode_option): Use skip_leading_substring instead 858490075Sobrien of plain strncmp. 858518334Speter 858690075Sobrien2000-05-28 Alexandre Oliva <aoliva@cygnus.com> 858718334Speter 858890075Sobrien * operators.def (<?): Duplicated, should have been... 858990075Sobrien (>?): this. Fixed. 859018334Speter 859190075Sobrien2000-05-27 Alex Samuel <samuel@codesourcery.com> 859290075Sobrien Mark Mitchell <mark@codesourcery.com> 859318334Speter 859490075Sobrien * cp-tree.h (ansi_opname): Make it a macro. 859590075Sobrien (ansi_assopname): Likewise. 859690075Sobrien (struct lang_decl_flags): Add assignment_operator_p. 859790075Sobrien (struct lang_decl): Add operator_code. 859890075Sobrien (DECL_VTT_PARM): Adjust. 859990075Sobrien (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 860090075Sobrien overloaded operator. 860190075Sobrien (SET_OVERLOADED_OPERATOR_CODE): New macro. 860290075Sobrien (DECL_ASSIGNMENT_OPERATOR_P): New macro. 860390075Sobrien (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 860490075Sobrien (opname_tab): Remove. 860590075Sobrien (assignop_tab): Likewise. 860690075Sobrien (operator_name_info_t): New type. 860790075Sobrien (operator_name_info): New variable. 860890075Sobrien (assignment_operator_name_info): Likewise. 860990075Sobrien (build_cp_library_fn): Remove declaration. 861090075Sobrien (push_cp_library_fn): Likewise. 861190075Sobrien (operator_name_string): Likewise. 861290075Sobrien (build_decl_overload): Likewise. 861390075Sobrien * call.c (print_z_candidates): Simplify. 861490075Sobrien (build_object_call): Adjust usage of ansi_opname. Use 861590075Sobrien DECL_OVERLOADED_OPERATOR_P. 861690075Sobrien (op_error): Adjust operator name lookup. 861790075Sobrien (build_conditional_expr): Adjust usage of ansi_opname. 861850397Sobrien (build_new_op): Likewise. 861990075Sobrien (build_op_delete_call): Likewise. 862090075Sobrien (build_over_call): Likewise. 862190075Sobrien (joust): Use DECL_OVERLOADED_OPERATOR_P. 862290075Sobrien * decl.c (duplicate_decls): Copy operator_code. 862390075Sobrien (init_decl_processing): Adjust parameters to push_cp_library_fn. 862490075Sobrien (builtin_function): Adjust parameters to build_library_fn_1. 862590075Sobrien (build_library_fn_1): Accept an overloaded operator code. 862690075Sobrien (build_library_fn): Pass ERROR_MARK. 862790075Sobrien (build_cp_library_fn): Accept an overloaded operator code. 862890075Sobrien (push_cp_library_fn): Likewise. 862990075Sobrien (grokfndecl): Tweak. 863090075Sobrien (grokdeclarator): Simplify code to compute names of overloaded 863190075Sobrien operators. Adjust use of ansi_opname. 863290075Sobrien (ambi_op_p): Work on tree_codes, not identifiers. 863390075Sobrien (unary_op_p): Likewise. 863490075Sobrien (grok_op_properties): Likewise. 863590075Sobrien (start_function): Use DECL_OVERLOADED_OPERATOR_P. 863690075Sobrien (lang_mark_tree): Don't try to mark the operator_code. 863790075Sobrien * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 863890075Sobrien * error.c (dump_decl): Remove special handling for operator 863990075Sobrien names. 864090075Sobrien (dump_function_name): Likewise. 864190075Sobrien (dump_expr): Adjust name lookup of operators. 864290075Sobrien (op_to_string): Simplify. 864390075Sobrien (assop_to_string): Likewise. 864490075Sobrien * init.c (build_new_1): Adjust use of ansi_opname. 864590075Sobrien * lex.c (opname_tab): Remove. 864690075Sobrien (assignop_tab): Likewise. 864790075Sobrien (ansi_opname): Likewise. 864890075Sobrien (ansi_assopname): Likewise. 864990075Sobrien (operator_name_string): Likewise. 865090075Sobrien (reinit_lang_specific): Likewise. 865190075Sobrien (operator_name_info): New variable. 865290075Sobrien (assignment_operator_name_info): Likewise. 865390075Sobrien (init_operators): New function. 865490075Sobrien (init_parse): Use it. 865590075Sobrien (do_identifier): Adjust use of ansi_opname. 865690075Sobrien * method.c (mangle_expression): Don't use ansi_opname for 865790075Sobrien mangling. 865890075Sobrien (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 865990075Sobrien (build_decl_overload): Remove. 866090075Sobrien (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 866190075Sobrien (do_build_assign_ref): Adjust use of ansi_opname. 866290075Sobrien (synthesize_method): Likewise. 866390075Sobrien (implicitly_declare_fn): Likewise. 866490075Sobrien * operators.def: New file. 866590075Sobrien * parse.y (operator): Adjust use of ansi_opname. 866690075Sobrien * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 866790075Sobrien (set_mangled_name_for_template_decl): Don't play games with 866890075Sobrien current_namespace. 866990075Sobrien (special_function_p): Adjust use of ansi_opname. 867090075Sobrien * typeck.c (check_return_expr): Likewise. 867190075Sobrien * Make-lang.in (cc1plus): Depend on operators.def. 867290075Sobrien * Makefile.in (lex.o): Likewise. 867390075Sobrien (decl.o): Likewise. 867418334Speter 867590075Sobrien2000-05-27 Zack Weinberg <zack@wolery.cumb.org> 867618334Speter 867790075Sobrien * Make-lang.in (cplib2.ready): Eradicate. 867818334Speter 867990075SobrienSat May 27 11:25:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 868018334Speter 868190075Sobrien * method.c (mangle_expression): Use TREE_CODE_LENGTH. 868290075Sobrien * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 868390075Sobrien (built_min, cp_tree_equal): Likewise. 868418334Speter 868590075Sobrien2000-05-26 Mark Mitchell <mark@codesourcery.com> 868618334Speter 868790075Sobrien * class.c (layout_nonempty_base_or_field): Replace 868890075Sobrien `record_layout_info' with `record_layout_info_s'. 868918334Speter 869090075Sobrien2000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 869118334Speter 869290075Sobrien Fix goto checking. 869390075Sobrien * cp-tree.h (struct language_function): x_named_labels is now 869490075Sobrien a struct named_label_list*. 869590075Sobrien * decl.c (struct named_label_use_list): Renamed from... 869690075Sobrien (struct named_label_list): ...this. New struct. 869790075Sobrien (push_binding_level): Don't set eh_region. 869890075Sobrien (note_level_for_eh): New fn. 869990075Sobrien (pop_label): Take label and old value directly. 870090075Sobrien (pop_labels): Adjust for new named_labels format. 870190075Sobrien (lookup_label): Likewise. 870290075Sobrien (poplevel): Note characteristics of a binding level containing a 870390075Sobrien named label. Mess with named label lists earlier. 870490075Sobrien (mark_named_label_lists): New fn. 870590075Sobrien (mark_lang_function): Call it. 870690075Sobrien (use_label): New fn, split out from... 870790075Sobrien (make_label_decl): ...here. Don't call it. 870890075Sobrien (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 870990075Sobrien check_previous_gotos): New fns, split out from... 871090075Sobrien (define_label): ...here. 871190075Sobrien (check_switch_goto): New fn. 871290075Sobrien (define_case_label): Call it. 871390075Sobrien (check_goto): New fn. 871490075Sobrien * semantics.c (finish_goto_stmt): Call it and use_label. 871590075Sobrien (begin_compound_stmt): If we're a try block, call note_level_for_eh. 871690075Sobrien (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 871718334Speter 871890075Sobrien2000-05-26 Mark Mitchell <mark@codesourcery.com> 871918334Speter 872090075Sobrien * class.c (build_vtable_entry_ref): Correct usage of 872190075Sobrien get_vtbl_decl_for_binfo. 872218334Speter 872390075Sobrien * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 872490075Sobrien * method.c (implicitly_declare_fn): Not here. 872518334Speter 872690075Sobrien2000-05-26 Nathan Sidwell <nathan@codesourcery.com> 872718334Speter 872890075Sobrien * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 872990075Sobrien (CPTI_PTMD_DESC_TYPE): ... here. 873090075Sobrien (ptmd_desc_type_node): Rename to ... 873190075Sobrien (ptm_desc_type_node): ... here. 873290075Sobrien * decl.c: Likewise. 873390075Sobrien * rtti.c (ptmd_initializer): Rename to ... 873490075Sobrien (ptm_initializer): ... here. 873590075Sobrien (sythesize_tinfo_var): Adjust. Deal with pointer to member 873690075Sobrien function. 873790075Sobrien (create_tinfo_types): Adjust. 873818334Speter 873990075Sobrien2000-05-25 Mark Mitchell <mark@codesourcery.com> 874018334Speter 874190075Sobrien Finish implementation of VTTs. 874290075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 874390075Sobrien CPTI_VTT_PARM_IDENTIFIER. 874490075Sobrien (vtt_parm_identifier): New macro. 874590075Sobrien (vtt_parm_type): Likewise. 874690075Sobrien (BINFO_SUBVTT_INDEX): Likewise. 874790075Sobrien (BINFO_VPTR_INDEX): Likewise. 874890075Sobrien (struct lang_decl): Add vtt_parm. 874990075Sobrien (DECL_VTT_PARM): New macro. 875090075Sobrien (DECL_USE_VTT_PARM): Likewise. 875190075Sobrien (DECL_NEEDS_VTT_PARM_P): Likewise. 875290075Sobrien (get_vtt_name): Declare. 875390075Sobrien (build_artificial_parm): Likewise. 875490075Sobrien (fixup_all_virtual_upcast_offsets): Likewise. 875590075Sobrien (expand_indirect_vtbls_init): Remove. 875690075Sobrien * call.c (build_new_method_call): Pass the vtt to subobject 875790075Sobrien constructors and destructors. 875890075Sobrien * class.c (get_vtt_name): Give it external linkage. 875990075Sobrien (build_clone): Handle the magic VTT parameters for clones. 876090075Sobrien (clone_function_decl): Fix typo in comment. 876190075Sobrien (build_vtt): Keep track of the indices in the VTTs where various 876290075Sobrien entities are stored. 876390075Sobrien (build_vtt_inits): Likewise. 876490075Sobrien (dfs_build_vtt_inits): Likewise. 876590075Sobrien (build_ctor_vtbl_group): Tweak type of construction vtables. 876690075Sobrien (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 876790075Sobrien primary bases, when building construction vtables. 876890075Sobrien * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 876990075Sobrien (initialize_predefined_identifiers): Add vtt_parm_identifier. 877090075Sobrien (init_decl_processing): Initialize vtt_parm_type. 877190075Sobrien (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 877290075Sobrien (lang_mark_tree): Make vtt_parm. 877390075Sobrien * decl2.c (build_artificial_parm): New function. 877490075Sobrien (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 877590075Sobrien (grokclassfn): Use build_artificial_parm. 877690075Sobrien * init.c (initialize_vtbl_ptrs): Call 877790075Sobrien fixup_all_virtual_upcast_offsets directly. 877890075Sobrien (perform_member_init): Use the complete subobject destructor for 877990075Sobrien member cleanups. 878090075Sobrien (build_vtbl_address): New function. 878190075Sobrien (expand_virtual_init): Handle VTTs. 878290075Sobrien * optimize (maybe_clone_body): Likewise. 878390075Sobrien * search.c (fixup_all_virtual_upcast_offsets): Give it external 878490075Sobrien linkage. 878590075Sobrien (expand_indirect_vtbls_init): Remove. 878690075Sobrien * semantics.c (setup_vtbl_ptr): Fix typos in comment. 878790075Sobrien * tree.c (make_binfo): Make them bigger. 878818334Speter 878990075Sobrien2000-05-25 Nathan Sidwell <nathan@codesourcery.com> 879018334Speter 879190075Sobrien * inc/cxxabi.h (__pbase_type_info): Define, based on 879290075Sobrien __pointer_type_info. 879390075Sobrien (__pointer_type_info): Derive from __pbase_type_info. Adjust. 879490075Sobrien (__pointer_to_member_type_info): Likewise. 879590075Sobrien * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 879690075Sobrien (__pointer_to_member_type_info::__is_pointer_p): Remove. 879790075Sobrien (__pointer_type_info::__do_catch): Rename to ... 879890075Sobrien (__pbase_type_info::__do_catch): ... here. Adjust. 879990075Sobrien (__pbase_type_info::__pointer_catch): Implement. 880090075Sobrien (__pointer_type_info::__pointer_catch): Adjust. 880190075Sobrien (__pointer_to_member_type_info::__pointer_catch): Adjust. 880218334Speter 880390075Sobrien2000-05-25 Nathan Sidwell <nathan@codesourcery.com> 880418334Speter 880590075Sobrien * tinfo.h (__user_type_info::contained_virtual_p): New 880690075Sobrien predicate. 880790075Sobrien * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 880890075Sobrien shaped hierarchy. 880990075Sobrien (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 881090075Sobrien diamond shaped hierarchy. Add early out for mixed diamond and 881190075Sobrien duplicate shaped hierarchy. 881218334Speter 881390075Sobrien2000-05-24 Mark Mitchell <mark@codesourcery.com> 881418334Speter 881590075Sobrien * cp-tree.h (build_delete): Change prototype. 881690075Sobrien (build_vec_delete): Likewise. 881790075Sobrien * call.c (build_scoped_method_call): Use special_function_kind 881890075Sobrien values to indicate the kind of destruction to be done. 881990075Sobrien (build_method_call): Likewise. 882090075Sobrien * decl.c (finish_destructor_body): Likewise. 882190075Sobrien (maybe_build_cleanup_1): Likewise. Rename to ... 882290075Sobrien (maybe_build_cleanup): ... this. 882390075Sobrien * decl2.c (delete_sanity): Use special_function_kind 882490075Sobrien values to indicate the kind of destruction to be done. 882590075Sobrien (build_cleanup): Likewise. 882690075Sobrien * init.c (perform_member_init): Likewise. 882790075Sobrien (build_vec_delete_1): Likewise. 882890075Sobrien (build_dtor_call): Simplify. 882990075Sobrien (build_delete): Use special_function_kind 883090075Sobrien values to indicate the kind of destruction to be done. 883190075Sobrien (build_vbase_delete): Likewise. 883290075Sobrien (build_vec_delete): Likewise. 883318334Speter 883490075Sobrien * init.c (sort_member_init): Fix typo in error message generation 883590075Sobrien code. 883618334Speter 883790075SobrienMon May 15 11:46:29 2000 Donald Lindsay <dlindsay@cygnus.com> 883818334Speter 883990075Sobrien * semantics.c (begin_class_definition): make the packed 884090075Sobrien attribute be sensitive to the "-fpack-struct" command line flag 884118334Speter 884290075Sobrien2000-05-24 Nathan Sidwell <nathan@codesourcery.com> 884318334Speter 884490075Sobrien Update new-abi upcast algorithm. 884590075Sobrien * inc/cxxabi.h (__class_type_info::__do_upcast): Change 884690075Sobrien prototype and meaning of return value. 884790075Sobrien (__si_class_type_info::__do_upcast): Likewise. 884890075Sobrien (__vmi_class_type_info::__do_upcast): Likewise. 884990075Sobrien * tinfo.cc (__class_type_info::__upcast_result): Replace 885090075Sobrien whole2dst with part2dst. Adjust ctor. 885190075Sobrien (__class_type_info::__do_upcast): Adjust call of worker function. 885290075Sobrien (__class_type_info::__do_upcast): Adjust. 885390075Sobrien (__si_class_type_info::__do_upcast): Adjust. Use parent's 885490075Sobrien __do_upcast. 885590075Sobrien (__vmi_class_type_info::__do_upcast): Likewise. Fix private 885690075Sobrien virtual base in diamond hierarchy bug. 885718334Speter 885890075Sobrien2000-05-23 Mark Mitchell <mark@codesourcery.com> 885918334Speter 886090075Sobrien * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 886190075Sobrien and bitfield to tinfo_fn_p. 886290075Sobrien (DECL_TINFO_FN_P): Adjust. 886390075Sobrien (SET_DECL_TINFO_FN_P): Likewise. 886490075Sobrien (DECL_MUTABLE_P): Likewise. 886590075Sobrien (DECL_C_BIT_FIELD): Likewise. 886690075Sobrien (SET_DECL_C_BIT_FIELD): Likewise. 886790075Sobrien (CLEAR_DECL_C_BIT_FIELD): Likewise. 886890075Sobrien (DECL_UNINLINABLE): Likewise. 886990075Sobrien * class.c (alter_access): Call retrofit_lang_decl if ncessary. 887090075Sobrien (handle_using_decl): Remove assertion. 887190075Sobrien (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 887290075Sobrien to build FIELD_DECLs. 887390075Sobrien (build_base_field): Likewise. 887490075Sobrien (layout_class_type): Likewise. 887590075Sobrien * decl.c (init_decl_processing): Likewise. 887690075Sobrien (build_ptrmemfunc_type): Likewise. 887790075Sobrien (grokdeclarator): Likewise. 887890075Sobrien * decl2.c (grok_x_components): Likewise. 887990075Sobrien * except.c (call_eh_info): Likewise. 888090075Sobrien * init.c (init_init_processing): Likewise. 888190075Sobrien * rtti.c (expand_class_desc): Likewise. 888290075Sobrien (create_pseudo_type_info): Likewise. 888390075Sobrien (get_vmi_pseudo_type_info): Likewise. 888490075Sobrien (create_tinfo_types): Likewise. 888590075Sobrien * ptree.c (print_lang_decl): Adjust. 888690075Sobrien * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 888790075Sobrien before checking DECL_MUTABLE_P. 888818334Speter 888990075Sobrien * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 889090075Sobrien parameters for template functions. 889190075Sobrien * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 889290075Sobrien destructors as well as constructors. 889318334Speter 889490075Sobrien2000-05-22 Mark Mitchell <mark@codesourcery.com> 889518334Speter 889690075Sobrien * class.c (build_ctor_vtbl_group): Set inits. 889790075Sobrien * optimize.c (maybe_clone_body): Set DECL_INLINE and 889890075Sobrien DECL_THIS_INLINE appropriately for clones. 889918334Speter 890090075Sobrien * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 890190075Sobrien (DECL_CONV_FN_P): Simplify. 890290075Sobrien (DECL_OPERATOR): Remove. 890390075Sobrien (language_to_string): Declare. 890490075Sobrien * decl.c (duplicate_decls): Fix typo in comment. 890590075Sobrien (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 890690075Sobrien (grok_op_properties): Use DECL_CONV_FN_P instead of 890790075Sobrien IDENTIFIER_TYPENAME_P. 890890075Sobrien * dump.c (dequeue_and_dump): Dump the language linkage of 890990075Sobrien declarations. 891090075Sobrien * error.c (language_to_string): Give it external linkage. 891190075Sobrien * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 891290075Sobrien (implicitly_declare_fn): Set DECL_LANGUAGE. 891390075Sobrien * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 891490075Sobrien IDENTIFIER_TYPENAME_P. 891590075Sobrien (tsubst_decl): Likewise. 891690075Sobrien (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 891790075Sobrien * semantics.c (finish_member_declaration): Don't mark members of 891890075Sobrien classes declared in an extern "C" region as extern "C". 891918334Speter 892090075Sobrien2000-05-22 Martin v. L�wis <loewis@informatik.hu-berlin.de> 892118334Speter 892290075Sobrien * decl2.c (qualified_lookup_using_namespace): Look through 892390075Sobrien namespace aliases. 892418334Speter 892590075Sobrien * decl.c (push_using_decl): Return the old decl on namespace level. 892618334Speter 892790075Sobrien2000-05-21 Mark Mitchell <mark@codesourcery.com> 892818334Speter 892990075Sobrien * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 893090075Sobrien (VTT_NAME_PREFIX): New macro. 893190075Sobrien (CTOR_VTBL_NAME_PREFIX): Likewise. 893290075Sobrien (get_ctor_vtbl_name): New function. 893390075Sobrien * class.c (get_vtable_name): Simplify. 893490075Sobrien (get_vtt_name): New function. 893590075Sobrien (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 893690075Sobrien (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 893790075Sobrien when a virtual base becomes primary. 893890075Sobrien (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 893990075Sobrien VTTs. 894090075Sobrien (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 894190075Sobrien additional parameters. 894290075Sobrien (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 894390075Sobrien (initialize_array): New function. 894490075Sobrien (build_vtt): Likewise. 894590075Sobrien (build_vtt_inits): Likewise. 894690075Sobrien (dfs_build_vtt_inits): Likewise. 894790075Sobrien (dfs_fixup_binfo_vtbls): Likewise. 894890075Sobrien (build_ctor_vtbl_group): Likewise. 894990075Sobrien (initialize_vtable): Use initialize_array. 895090075Sobrien (accumulate_vtbl_inits): Reimplement to handle construction 895190075Sobrien vtables. 895290075Sobrien (dfs_accumulate_vtbl_inits): Likewise. 895390075Sobrien (bulid_vtbl_initializer): Adjust parameter name. 895490075Sobrien * method.c (build_typename_overload): Remove #if 0'd code. 895590075Sobrien (get_ctor_vtbl_name): New function. 895690075Sobrien * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 895790075Sobrien (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 895818334Speter 895990075Sobrien * cp-tree.h (struct lang_type): Remove search_slot. 896090075Sobrien (CLASSTYPE_SEARCH_SLOT): Remove. 896190075Sobrien (emit_base_init): Change prototype. 896290075Sobrien (initialize_vtbl_ptrs): Likewise. 896390075Sobrien (expand_indirect_vtbls_init): Likewise. 896490075Sobrien (clear_search_slots): Remove. 896590075Sobrien * decl.c (lang_mark_tree): Don't mark search_slot. 896690075Sobrien * init.c (initialize_vtbl_ptrs): Simplify. 896750397Sobrien (emit_base_init): Likewise. 896890075Sobrien * search.c (struct vbase_info): Document decl_ptr. 896990075Sobrien (convert_pointer_to_single_level): Remove. 897090075Sobrien (dfs_find_vbases): Remove. 897190075Sobrien (dfs_init_base_pointers): Simplify. 897290075Sobrien (dfs_clear_vbase_slots): Remove. 897390075Sobrien (dfs_vtable_path_unmark): New function. 897490075Sobrien (init_vbase_pointers): Simplify. 897590075Sobrien (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 897690075Sobrien (expand_indirect_vtbls_init): Simplify. Don't call 897790075Sobrien mark_all_temps_used. 897890075Sobrien * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 897990075Sobrien initialize_vtbl_ptrs. 898052284Sobrien 898190075Sobrien2000-05-20 Zack Weinberg <zack@wolery.cumb.org> 898218334Speter 898390075Sobrien * except.c: Add static prototypes. 898418334Speter 898590075Sobrien2000-05-20 H.J. Lu <hjl@gnu.org> 898652284Sobrien 898790075Sobrien * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 898818334Speter 898990075Sobrien2000-05-19 Mark Mitchell <mark@codesourcery.com> 899018334Speter 899190075Sobrien Don't create a separate copy of virtual bases for the 899290075Sobrien CLASSTYPE_VBASECLASSES list. 899390075Sobrien * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 899490075Sobrien (BINFO_FOR_VBASE): Remove. 899590075Sobrien (CANONICAL_BINFO): Adjust. 899690075Sobrien (binfo_for_vbase): New function. 899790075Sobrien * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 899890075Sobrien instead of BINFO_FOR_VBASE. 899990075Sobrien (build_vbase_pointer): Likewise. 900090075Sobrien (build_secondary_vtable): Likewise. 900190075Sobrien (dfs_mark_primary_bases): Likewise. 900290075Sobrien (mark_primary_bases): Likewise. 900390075Sobrien (layout_nonempty_base_or_field): Likewise. 900490075Sobrien (dfs_set_offset_for_shared_vbases): Likewise. 900590075Sobrien (dfs_set_offset_for_unshared_vbases): Likewise. 900690075Sobrien (layout_virtual_bases): Likewise. Adjust for changes to the 900790075Sobrien CLASSTYPE_VBASECLASSES list. 900890075Sobrien (dump_class_hierarchy_r): Use binfo_for_vbase 900990075Sobrien instead of BINFO_FOR_VBASE. 901090075Sobrien (dump_class_hierarchy): Likewise. 901190075Sobrien (finish_vtbls): Likewise. 901290075Sobrien (build_vtbl_initializer): Adjust for changes to the 901390075Sobrien CLASSTYPE_VBASECLASSES list. 901490075Sobrien (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 901590075Sobrien * decl.c (finish_destructor_body): Adjust for changes to the 901690075Sobrien CLASSTYPE_VBASECLASSES list. 901790075Sobrien * init.c (sort_base_init): Use binfo_for_vbase. 901890075Sobrien (construct_virtual_bases): Adjust for changes to the 901990075Sobrien CLASSTYPE_VBASECLASSES list. 902090075Sobrien (expand_member_init): Use binfo_for_vbase. 902190075Sobrien (build_vbase_delete): Adjust for changes to the 902290075Sobrien CLASSTYPE_VBASECLASSES list. 902390075Sobrien * method.c (do_build_copy_constructor): Likewise. 902490075Sobrien * rtti.c (get_base_offset): Use binfo_for_vbase. 902590075Sobrien (expand_class_desc): Remove #if 0'd code. 902690075Sobrien * search.c (struct vbase_info): Remove vbase_types. 902790075Sobrien (get_base_distance): Use binfo_for_vbase. 902890075Sobrien (lookup_field_queue_p): Use CANONICAL_BINFO. 902990075Sobrien (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 903090075Sobrien (get_pure_virtuals): Adjust for changes to the 903190075Sobrien CLASSTYPE_VBASECLASSES list. 903290075Sobrien (dfs_find_vbases): Use binfo_for_vbase. 903390075Sobrien (dfs_init_vbase_pointers): Likewise. 903490075Sobrien (init_vbase_pointers): Don't initialize vi.vbase_types. 903590075Sobrien (virtual_context): Use binfo_for_vbase. 903690075Sobrien (fixup_all_virtual_upcast_offsets): Adjust for changes to the 903790075Sobrien CLASSTYPE_VBASECLASSES list. 903890075Sobrien (expand_indirect_vtbls_init): Simplify. 903990075Sobrien (dfs_get_vbase_types): Don't replicate virtual bases. 904090075Sobrien (find_vbase_instance): Use binfo_for_vbase. 904190075Sobrien (binfo_for_vbase): New function. 904290075Sobrien * typeck.c (get_delta_difference): Use binfo_for_vbase. 904318334Speter 904490075Sobrien2000-05-17 Mark Mitchell <mark@codesourcery.com> 904518334Speter 904690075Sobrien * decl2.c (finish_anon_union): Generalize error messages to handle 904790075Sobrien anonymous structures. 904890075Sobrien * init.c (perform_member_init): Remove `name' parameter. 904990075Sobrien (build_field_list): New function. 905090075Sobrien (sort_member_init): Handle anonymous union initialization order 905190075Sobrien correctly. Check for multiple initializations of the same union. 905290075Sobrien (emit_base_init): Don't look up fields by name here. 905390075Sobrien (expand_member_init): Record the result of name lookup for future 905490075Sobrien reference. 905590075Sobrien * typeck.c (build_component_ref): Fix formatting. 905618334Speter 905790075SobrienWed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> 905818334Speter 905990075Sobrien * decl.c (pop_label): Replace warn_unused with warn_unused_label. 906090075Sobrien * typeck.c (build_x_compound_expr): Replace warn_unused with 906190075Sobrien warn_unused_value. 906218334Speter 906390075Sobrien * decl2.c (lang_decode_option): Update -Wall unused flags by 906490075Sobrien calling set_Wunused. 906518334Speter 906690075Sobrien2000-05-16 Mark Mitchell <mark@codesourcery.com> 906718334Speter 906890075Sobrien * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 906990075Sobrien * init.c (dfs_vtable_path_unmark): Remove. 907090075Sobrien * search.c (marked_new_vtable_p): Likewise. 907190075Sobrien (unmarked_new_vtable_p): Likewise. 907290075Sobrien (dfs_search_slot_nonempty_p): Likewise. 907390075Sobrien (dfs_mark): Likewise. 907490075Sobrien (dfs_vtable_path_unmark): Likewise. 907590075Sobrien (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 907690075Sobrien (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 907790075Sobrien (dfs_init_vbase_pointers): Remove special-case new ABI code. 907890075Sobrien (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 907990075Sobrien (init_vbase_pointers): Simplify. 908090075Sobrien (expand_indirect_vtbls_init): Likewise. 908118334Speter 908290075Sobrien * class.c (copy_virtuals): New function. 908390075Sobrien (build_primary_table): Use it. 908490075Sobrien (build_secondary_vtable): Likewise. 908590075Sobrien (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 908690075Sobrien indicate that no vcall offset is required. 908790075Sobrien (add_virtual_function): Likewise. 908890075Sobrien (modify_all_vtables): Likewise. 908990075Sobrien (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 909090075Sobrien (dfs_accumulate_vtbl_inits): Likewise. 909190075Sobrien (build_vtbl_initializer): Make changes to handle construction 909290075Sobrien vtables. 909390075Sobrien (dfs_build_vcall_offset_vtbl_entries): Likewise. 909490075Sobrien (build_rtti_vtbl_entries): Likewise. 909590075Sobrien (build_vtable_entries): Handle a NULL vcall_index. 909618334Speter 909790075Sobrien2000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 909818334Speter 909990075Sobrien * decl2.c (lang_decode_option): Fix thinko. 910018334Speter 910190075Sobrien2000-05-14 Jason Merrill <jason@casey.cygnus.com> 910218334Speter 910390075Sobrien * except.c (check_handlers): New fn. 910490075Sobrien * cp-tree.h: Declare it. 910590075Sobrien * semantics.c (finish_handler_sequence): Call it. 910690075Sobrien (finish_function_handler_sequence): Likewise. 910790075Sobrien (finish_handler_parms): Set TREE_TYPE on the handler. 910890075Sobrien * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 910990075Sobrien * search.c (get_base_distance_recursive): If protect>1, ignore 911090075Sobrien special access. 911190075Sobrien (get_base_distance): Don't reduce watch_access. 911218334Speter 911390075Sobrien2000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 911418334Speter 911590075Sobrien * lex.c: #include diagnostic.h. 911690075Sobrien (lang_init_options): Set default prefixing rules. 911718334Speter 911890075Sobrien * lang-options.h: Add -fdiagnostics-show-location=. 911918334Speter 912090075Sobrien * decl2.c: #include diagnostic.h. 912190075Sobrien (lang_decode_option): Handle -fdiagnostics-show-location=. 912218334Speter 912390075Sobrien2000-05-12 Nathan Sidwell <nathan@codesourcery.com> 912418334Speter 912590075Sobrien * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 912690075Sobrien * vec.cc: Revert my 2000-05-07 change. 912718334Speter 912890075Sobrien2000-05-11 Jason Merrill <jason@casey.cygnus.com> 912952284Sobrien 913090075Sobrien * class.c (check_field_decls): Complain about non-static data 913190075Sobrien members with same name as class in class with constructor. 913218334Speter 913390075Sobrien2000-05-10 Jason Merrill <jason@casey.cygnus.com> 913418334Speter 913590075Sobrien * decl.c (grokdeclarator): Allow non-static data members with 913690075Sobrien same name as class. 913718334Speter 913890075Sobrien2000-05-09 Zack Weinberg <zack@wolery.cumb.org> 913918334Speter 914090075Sobrien * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 914190075Sobrien and pending_inline.filename. Update prototypes. 914290075Sobrien * decl.c (define_label): Constify filename parameter. 914390075Sobrien * decl2.c (warn_if_unknown_interface): Constify local char *. 914490075Sobrien * input.c Constify input_source.filename. Don't declare 914590075Sobrien input_filename or lineno. Constify filename parameter to feed_input. 914690075Sobrien * lex.c (init_parse): Constify parameter and return value. 914790075Sobrien (cp_pragma_interface, cp_pragma_implementation): Constify 914890075Sobrien filename argument. 914990075Sobrien (reinit_parse_for_method, reinit_parse_for_block, 915090075Sobrien reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 915190075Sobrien Constify local char *. 915290075Sobrien * pt.c: Don't declare lineno or input_filename. 915390075Sobrien (print_template_context, tsubst_friend_function, tsubst_decl, 915490075Sobrien tsubst, instantiate_decl): Constify local char *. 915590075Sobrien * semantics.c (expand_body): Constify local char *. 915690075Sobrien * tree.c (build_srcloc): Constify filename parameter. 915790075Sobrien * typeck.c (c_expand_asm_operands): Constify filename 915890075Sobrien parameter. 915918334Speter 916090075Sobrien2000-05-08 Nathan Sidwell <nathan@codesourcery.com> 916118334Speter 916290075Sobrien * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 916390075Sobrien offsetof expansion. 916418334Speter 916590075Sobrien2000-05-08 Branko Cibej <branko.cibej@hermes.si> 916618334Speter 916790075Sobrien * inc/cxxabi.h: Fix typos in comment. 916890075Sobrien (__base_class_info::__offset): Use a static_cast. 916918334Speter 917090075Sobrien2000-05-07 Nathan Sidwell <nathan@codesourcery.com> 917118334Speter 917290075Sobrien * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 917390075Sobrien of std::size_t and std::ptrdiff_t respectively. 917490075Sobrien * tinfo.cc: Likewise. 917590075Sobrien * vec.cc: Likewise. 917618334Speter 917790075Sobrien2000-05-06 Richard Henderson <rth@cygnus.com> 917818334Speter 917990075Sobrien * typeck.c (build_c_cast): Don't warn integer->pointer size 918090075Sobrien mismatch for constants. 918118334Speter 918290075Sobrien2000-05-06 Nathan Sidwell <nathan@codesourcery.com> 918318334Speter 918490075Sobrien * rtti.c (ptmd_initializer): Set non-public, if class is 918590075Sobrien incomplete. 918618334Speter 918790075Sobrien * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 918890075Sobrien (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 918990075Sobrien __cxa_vec_delete): Likewise. 919090075Sobrien * tinfo.cc (__dynamic_cast): Likewise. 919190075Sobrien * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 919290075Sobrien __cxa_vec_delete): Likewise. 919318334Speter 919490075Sobrien2000-05-04 Mark Mitchell <mark@codesourcery.com> 919518334Speter 919690075Sobrien * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 919790075Sobrien (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 919890075Sobrien (lang_decl_flags): Add vcall_offset. 919990075Sobrien (THUNK_VCALL_OFFSET): Use it. 920090075Sobrien * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 920190075Sobrien * method.c (make_thunk): Create the lang_decl here, not in 920290075Sobrien emit_thunk. 920390075Sobrien (emit_thunk): Make generic thunks into ordinary functions once 920490075Sobrien they have been fed to expand_body. 920590075Sobrien * semantics.c (expand_body): Set current_function_is_thunk here. 920618334Speter 920790075Sobrien2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 920818334Speter 920990075Sobrien * class.c (update_vtable_entry_for_fn): Prototype. 921018334Speter 921190075Sobrien * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 921290075Sobrien and `tmpl'. 921318334Speter 921490075Sobrien * search.c (dfs_build_inheritance_graph_order): Prototype. 921518334Speter 921690075Sobrien2000-05-04 Mark Mitchell <mark@codesourcery.com> 921718334Speter 921890075Sobrien * cp-tree.h (special_function_kind): Add various kinds of 921990075Sobrien destructors. 922090075Sobrien (special_function_p): New function. 922190075Sobrien * class.c (overrides): Don't let one kind of destructor override 922290075Sobrien another. 922390075Sobrien * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 922490075Sobrien whether or not to instantiate a template. 922590075Sobrien * tree.c (special_function_p): Define. 922618334Speter 922790075Sobrien2000-05-03 Mark Mitchell <mark@codesourcery.com> 922818334Speter 922990075Sobrien * cp-tree.def (THUNK_DECL): Remove. 923090075Sobrien * cp-tree.h (DECL_THUNK_P): New macro. 923190075Sobrien (DECL_NON_THUNK_FUNCTION_P): Likewise. 923290075Sobrien (DECL_EXTERN_C_FUNCTION_P): Likewise. 923390075Sobrien (SET_DECL_THUNK_P): Likewise. 923490075Sobrien (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 923590075Sobrien (FNADDR_FROM_VTABLE_ENTRY): Likewise. 923690075Sobrien (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 923790075Sobrien * decl.c (decls_match): Use DECL_EXTERN_C_P. 923850397Sobrien (duplicate_decls): Likewise. 923990075Sobrien (pushdecl): Likewise. Adjust thunk handling. 924090075Sobrien (grokfndecl): Use DECL_EXTERN_C_P. 924190075Sobrien * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 924290075Sobrien * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 924390075Sobrien * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 924490075Sobrien * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 924590075Sobrien * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 924690075Sobrien DECL_NO_STATIC_CHAIN. 924790075Sobrien (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 924890075Sobrien set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 924990075Sobrien * search.c (covariant_return_p): Remove THUNK_DECL handling. 925090075Sobrien * ir.texi: Update. 925118334Speter 925290075Sobrien2000-05-01 Jason Merrill <jason@casey.cygnus.com> 925318334Speter 925490075Sobrien * tree.c (walk_tree): Set lineno. 925518334Speter 925690075Sobrien2000-05-01 Mark Mitchell <mark@codesourcery.com> 925718334Speter 925890075Sobrien * exception.cc: Update license notice. 925990075Sobrien * new.cc: Likewise. 926090075Sobrien * new1.cc: Likewise. 926190075Sobrien * new2.cc: Likewise. 926290075Sobrien * tinfo.cc: Likewise. 926390075Sobrien * tinfo2.cc: Likewise. 926490075Sobrien * vec.cc: Likewise. 926590075Sobrien * inc/cxxabi.h: Likewise. 926690075Sobrien * inc/exception: Likewise. 926790075Sobrien * inc/new: Likewise. 926890075Sobrien * inc/new.h: Likewise. 926990075Sobrien * inc/typeinfo: Likewise. 927018334Speter 927190075Sobrien2000-05-01 Jason Merrill <jason@casey.cygnus.com> 927218334Speter 927390075Sobrien * tree.c (build_target_expr_with_type): If we already have a 927490075Sobrien TARGET_EXPR, just return it. 927518334Speter 927690075Sobrien * optimize.c (initialize_inlined_parameters): Don't generate an 927790075Sobrien EXPR_STMT if we can just use DECL_INITIAL. 927890075Sobrien * decl.c (emit_local_var): Only make the initialization a 927990075Sobrien full-expression if stmts_are_full_exprs_p. 928018334Speter 928190075Sobrien2000-05-01 Mark Mitchell <mark@codesourcery.com> 928218334Speter 928390075Sobrien * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 928490075Sobrien macro. 928590075Sobrien * call.c (standard_conversion): Use it. 928690075Sobrien (direct_reference_binding): Likewise. 928790075Sobrien (build_over_call): Likewise. 928890075Sobrien (is_properly_derived_from): Likewise. 928990075Sobrien (compare_ics): Likewise. 929090075Sobrien * class.c (resolves_to_fixed_type_p): Likewise. 929190075Sobrien * optimize.c (declare_return_variable): Likewise. 929290075Sobrien * pt.c (is_specialization_of): Likewise. 929390075Sobrien (unify): Likewise. 929490075Sobrien * typeck.c (comp_target_parms): Likeiwse. 929590075Sobrien (build_static_cast): Likewise. 929690075Sobrien (build_reinterpret_cast): Likewise. 929790075Sobrien (build_const_cast): Likewise. 929890075Sobrien (comp_ptr_ttypes_real): Likewise. 929990075Sobrien (comp_ptr_ttypes_const): Likewise. 930090075Sobrien * typeck2.c (process_init_constructor): Likewise. 930118334Speter 930290075Sobrien2000-04-30 Scott Snyder <snyder@fnal.gov> 930318334Speter 930490075Sobrien * decl.c (finish_destructor_body): Use the base destructor when 930590075Sobrien destroying virtual bases. 930618334Speter 930790075Sobrien2000-04-30 Mark Mitchell <mark@codesourcery.com> 930818334Speter 930990075Sobrien * expr.c (cplus_expand_expr): Preserve temporaries when expanding 931090075Sobrien STMT_EXPRs. 931190075Sobrien * optimize.c (struct inline_data): Add target_exprs field. 931290075Sobrien (declare_return_variable): When a function returns an aggregate, 931390075Sobrien use the variable declared in the TARGET_EXPR as the remapped 931490075Sobrien DECL_RESULT. 931590075Sobrien (expand_call_inline): Update the pending target_exprs stack. 931690075Sobrien (optimize_function): Initialize the stack. 931718334Speter 931890075Sobrien * decl2.c (finish_file): Fix typo in comment. 931918334Speter 932090075Sobrien * method.c (emit_thunk): Don't try to return a `void' value. 932118334Speter 932290075Sobrien * optimize.c (initialize_inlined_parameters): If the parameter is 932390075Sobrien addressable, we need to make a new VAR_DECL, even if the 932490075Sobrien initializer is constant. 932518334Speter 932690075Sobrien2000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 932718334Speter 932890075Sobrien * decl.c (grok_op_properties): Add an extra check of argtypes. 932918334Speter 933090075Sobrien2000-04-27 Mark Mitchell <mark@codesourcery.com> 933118334Speter 933290075Sobrien * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 933390075Sobrien variables. 933490075Sobrien (initialize_inlined_parameters): Try to avoid creating new 933590075Sobrien VAR_DECLs. 933618334Speter 933790075Sobrien2000-04-27 Alex Samuel <samuel@codesourcery.com> 933818334Speter 933990075Sobrien * lex.c (my_get_run_time): Remove. 934090075Sobrien (init_filename_times): Use get_run_time instead of my_get_run_time. 934190075Sobrien (check_newline): Likewise. 934290075Sobrien (dump_time_statistics): Likewise. 934390075Sobrien * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 934490075Sobrien of computing elapsed time explicitly. 934518334Speter 934690075Sobrien2000-04-26 Mark Mitchell <mark@codesourcery.com> 934718334Speter 934890075Sobrien * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 934990075Sobrien * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 935090075Sobrien * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 935190075Sobrien before calling decl_constant_value. 935290075Sobrien * class.c (check_bitfield_decl): Likewise. 935390075Sobrien * cvt.c (ocp_convert): Likewise. 935490075Sobrien (convert): Likewise. 935590075Sobrien * decl.c (compute_array_index_type): Likewise. 935690075Sobrien (build_enumerator): Likewise. 935790075Sobrien * decl2.c (check_cp_case_value): Likewise. 935890075Sobrien * pt.c (convert_nontype_argument): Likewise. 935990075Sobrien (tsubst): Likewise. 936090075Sobrien * typeck.c (decay_conversion): Likewise. 936190075Sobrien (build_compound_expr): Likewise. 936290075Sobrien (build_reinterpret_cast): Likewise. 936390075Sobrien (build_c_cast): Likewise. 936490075Sobrien (convert_for_assignment): Likewise. 936518334Speter 936690075Sobrien2000-04-26 Jason Merrill <jason@casey.cygnus.com> 936718334Speter 936890075Sobrien * decl.c (finish_function): Don't play games with DECL_INLINE. 936918334Speter 937090075Sobrien2000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 937118334Speter 937290075Sobrien * ir.texi: Correct typo. 937318334Speter 937490075Sobrien2000-04-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 937518334Speter 937690075Sobrien * decl.c (grokdeclarator): Reject VLAs as members. 937718334Speter 937890075Sobrien2000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 937918334Speter 938090075Sobrien * call.c (standard_conversion): Accept conversion between 938190075Sobrien COMPLEX_TYPEs. 938218334Speter 938390075Sobrien * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 938418334Speter 938590075Sobrien2000-04-24 Zack Weinberg <zack@wolery.cumb.org> 938618334Speter 938790075Sobrien * decl2.c (finish_file): Remove double setup for accounting 938890075Sobrien compile time. 938918334Speter 939090075Sobrien2000-04-24 Robert Lipe <robertlipe@usa.net> 939118334Speter 939290075Sobrien * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 939318334Speter 939490075Sobrien2000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 939518334Speter 939690075Sobrien * new.cc (set_new_handler): Needs to be in std::. 939718334Speter 939890075Sobrien2000-04-23 Mark Mitchell <mark@codesourcery.com> 939918334Speter 940090075Sobrien * cp-tree.h (lang_decl): Remove pretty_function_p. 940190075Sobrien (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 940290075Sobrien language-specific node. 940390075Sobrien * decl.c (cp_make_fname_decl): Use build_decl, not 940490075Sobrien build_lang_decl, to build the variables. 940590075Sobrien (grokvardecl): Don't call build_lang_decl for local variables in 940650397Sobrien templates. 940790075Sobrien (grokdeclarator): Don't call build_lang_decl for local type 940890075Sobrien declarations in templates. 940990075Sobrien * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 941090075Sobrien zero'd memory, rather than calling memset. 941190075Sobrien * pt.c: Include hashtab.h. 941290075Sobrien (local_specializations): New variable. 941390075Sobrien (retrieve_local_specialization): Use it. 941490075Sobrien (register_local_specialization): Likewise. 941590075Sobrien (tsubst_decl): Don't assume local variables have 941690075Sobrien DECL_LANG_SPECIFIC. 941790075Sobrien (instantiate_decl): Set up local_specializations. 941890075Sobrien * Makefile.in (HTAB_H): New variable. 941918334Speter 942090075Sobrien2000-04-23 Richard Henderson <rth@cygnus.com> 942118334Speter 942290075Sobrien * typeck.c (c_expand_asm_operands): Restore the original 942390075Sobrien contents of the output list. 942418334Speter 942590075Sobrien2000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 942618334Speter 942790075Sobrien * ir.texi: Document complex number representation. 942818334Speter 942990075Sobrien2000-04-20 Nathan Sidwell <nathan@codesourcery.com> 943018334Speter 943190075Sobrien * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 943290075Sobrien (target_incomplete_p): New function. 943390075Sobrien (tinfo_base_init): Create comdat NTBS name variable. 943490075Sobrien (ptr_initializer): Add non_public parameter. Calculate it. 943590075Sobrien (ptmd_initializer): Likewise. 943690075Sobrien (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 943790075Sobrien (create_real_tinfo_var): Add non_public parameter. Use it. 943890075Sobrien Push proxy into global namespace. 943990075Sobrien * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 944090075Sobrien New enumeration. 944190075Sobrien * inc/typeinfo (type_info::before, type_info::operator==): 944290075Sobrien Compare __name addresses. 944318334Speter 944490075Sobrien * tinfo2.cc: Remove new-abi builtins comment. 944518334Speter 944690075Sobrien2000-04-20 Jason Merrill <jason@casey.cygnus.com> 944718334Speter 944890075Sobrien * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 944918334Speter 945090075Sobrien * call.c (joust): Exit early if we get the same function, too. 945118334Speter 945290075Sobrien * decl2.c (key_method): Return NULL_TREE for template classes. 945390075Sobrien (import_export_class): Don't need to check for template classes. 945418334Speter 945590075Sobrien2000-04-18 Zack Weinberg <zack@wolery.cumb.org> 945618334Speter 945790075Sobrien * lex.c: Remove references to cccp.c. 945818334Speter 945990075Sobrien2000-04-18 Mark Mitchell <mark@codesourcery.com> 946018334Speter 946190075Sobrien * cp-tree.h (lang_decl_flags): Remove const_memfunc and 946290075Sobrien volatile_memfunc. Add destructor_attr. Adjust dummy. 946390075Sobrien (DECL_DESTRUCTOR_P): Use destructor_attr. 946490075Sobrien (DECL_CONST_MEMFUNC_P): Reimplement. 946590075Sobrien (DECL_VOLATILE_MEMFUNC_P): Remove. 946690075Sobrien * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 946790075Sobrien (overrides): Use DECL_DESTRUCTOR_P. 946890075Sobrien (check_for_override): Likewise. 946990075Sobrien * decl.c (start_function): Likewise. 947090075Sobrien * decl2.c (grokfclassfn): Likewise. 947190075Sobrien (check_classfn): Likewise. 947290075Sobrien (grok_function_init): Likewise. 947318334Speter 947490075Sobrien2000-04-17 Mark Mitchell <mark@codesourcery.com> 947518334Speter 947690075Sobrien * decl2.c (grokfield): Issue error on illegal data member 947790075Sobrien declaration. 947818334Speter 947990075SobrienMon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com> 948018334Speter 948190075Sobrien * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 948218334Speter 948390075Sobrien2000-04-16 Mark Mitchell <mark@codesourcery.com> 948418334Speter 948590075Sobrien * class.c (build_vtable_entry): Don't build thunks for type-info 948650397Sobrien functions. 948750397Sobrien 948890075Sobrien2000-04-16 Jason Merrill <jason@casey.cygnus.com> 948950397Sobrien 949090075Sobrien * decl.c (decls_match): Allow a redeclaration of a builtin to 949190075Sobrien specify args while the builtin did not. 949218334Speter 949390075Sobrien2000-04-15 Mark Mitchell <mark@codesourcery.com> 949418334Speter 949590075Sobrien * cp-tree.def (THUNK_DECL): Add to documentation. 949690075Sobrien * cp-tree.h (flag_huge_objects): Declare. 949790075Sobrien * class.c (modify_vtable_entry): Tidy. 949890075Sobrien (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 949990075Sobrien Calculate delta appropriately for the new ABI. 950090075Sobrien (dfs_modify_vtables): Use it. 950190075Sobrien (modify_all_vtables): Fix thinko in code to add overriding copies 950290075Sobrien of functions to primary vtables. 950390075Sobrien (build_clone): Fix typo in comment. 950490075Sobrien (clone_function_decl): Correct order of destructors in vtable. 950590075Sobrien (build_vbase_offset_vtbl_entries): Adjust comment. 950690075Sobrien (dfs_vcall_offset_queue_p): Remove. 950790075Sobrien (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 950890075Sobrien (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 950990075Sobrien (build_vtable_entry): Correct check for pure virtual functions. 951090075Sobrien Don't declare flag_huge_objects. 951190075Sobrien * decl.c (flag_huge_objects): Remove declaration. 951290075Sobrien * method.c (make_thunk): Tweak mangling for vcall offset thunks. 951390075Sobrien Use int_size_in_bytes. 951490075Sobrien (emit_thunk): Handle vcall offset thunks. 951518334Speter 951690075SobrienSat Apr 15 16:00:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 951718334Speter 951890075Sobrien * decl2.c (parse_time, varconst_time): Delete declarations. 951990075Sobrien (finish_file): Delete LINENO declaration. 952090075Sobrien START_TIME and THIS_TIME now long. 952118334Speter 952290075Sobrien2000-04-13 Nathan Sidwell <nathan@codesourcery.com> 952318334Speter 952490075Sobrien * class.c (build_base_field): Reformat comment. 952518334Speter 952690075Sobrien * inc/cxxabi.h (stddef.h): Comment inclusion. 952790075Sobrien (__base_class_info::__offset): Comment shift. 952818334Speter 952990075Sobrien2000-04-12 Mark Mitchell <mark@codesourcery.com> 953018334Speter 953190075Sobrien * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 953290075Sobrien (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 953390075Sobrien (cp_push_exception_identifier): New macro. 953490075Sobrien (DECL_COMPLETE_DESTRUCTOR_P): New macro. 953590075Sobrien (DECL_BASE_DESTRUCTOR_P): Likewise. 953690075Sobrien (DECL_DELETING_DESTRUCTOR_P): Likewise. 953790075Sobrien (get_vtbl_decl_for_binfo): Fix formatting. 953890075Sobrien (in_charge_arg_for_name): New macro. 953990075Sobrien (maybe_build_cleanup_and_delete): Remove declaration. 954090075Sobrien * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 954190075Sobrien (in_charge_arg_for_name): New function. 954290075Sobrien (build_new_method_call): Use it. Handle cloned destructors. 954390075Sobrien (build_clone): Don't make the base constructor virtual. 954490075Sobrien Automatically defer generated functions. 954590075Sobrien (clone_function_decl): Handle destructors, too. 954690075Sobrien (clone_constructors_and_destructors): Likewise. 954790075Sobrien (create_vtable_ptr): Don't create a vtable entry for a cloned 954890075Sobrien function. 954990075Sobrien * decl.c (predefined_identifier): Add ctor_or_dtor_p. 955090075Sobrien (initialize_predefined_identifiers): Update appropriately. 955190075Sobrien (finish_destructor_body): Simplify. 955290075Sobrien (maybe_build_cleanup_and_delete): Remove. 955390075Sobrien * except.c (expand_throw): Handle new-ABI destructors. 955490075Sobrien * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 955590075Sobrien (build_dtor_call): New function. 955690075Sobrien (build_delete): Use it. Simplify. 955790075Sobrien * optimize.c (maybe_clone_body): Handle destructors. 955890075Sobrien * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 955918334Speter 956090075Sobrien * exception.cc (cleanup_fn): New typedef. 956190075Sobrien (CALL_CLEANUP): New macro. 956290075Sobrien (cp_eh_info): Use them. 956390075Sobrien (__cp_push_exception): Likewise. 956490075Sobrien (__cp_pop_exception): Likewise. 956518334Speter 956690075Sobrien2000-04-11 Mark Mitchell <mark@codesourcery.com> 956718334Speter 956890075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 956990075Sobrien (complete_dtor_identifier): New macro. 957090075Sobrien (CLASSTYPE_FIRST_CONVERSION): Remove. 957190075Sobrien (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 957290075Sobrien (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 957390075Sobrien (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 957490075Sobrien (CLASSTYPE_CONSTRUCTORS): Likewise. 957590075Sobrien (CLASSTYPE_DESTRUCTORS): Likewise. 957690075Sobrien (lang_decl): Add cloned_function. 957790075Sobrien (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 957890075Sobrien (DECL_BASE_CONSTRUCTOR_P): Likewise. 957990075Sobrien (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 958090075Sobrien (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 958190075Sobrien (DECL_CLONED_FUNCTION_P): Likewise. 958290075Sobrien (DECL_CLONED_FUNCTION): Likewise. 958390075Sobrien (clone_function_decl): Declare. 958490075Sobrien (maybe_clone_body): Likewise. 958590075Sobrien * call.c (build_user_type_conversion_1): Call complete object 958690075Sobrien constructors in the new ABI. 958790075Sobrien (build_new_method_call): Don't add in-charge parameters under the 958890075Sobrien new ABI. 958990075Sobrien * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 959090075Sobrien DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 959190075Sobrien CLASSTYPE_DESTRUCTOR_SLOT. 959290075Sobrien (build_clone): New function. 959390075Sobrien (clone_function_decl): Likewise. 959490075Sobrien (clone_constructors_and_destructors): Likewise. 959590075Sobrien (check_bases_and_members): Use it. 959690075Sobrien * decl.c (iniitialize_predefined_identifiers): Initialize 959790075Sobrien complete_dtor_identifier. 959890075Sobrien (finish_function): Don't add extra code to a clone. 959990075Sobrien (lang_mark_tree): Mark cloned_function. 960090075Sobrien * decl2.c (mark_used): Don't bother trying to instantiate things 960190075Sobrien we synthesized. 960290075Sobrien * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 960390075Sobrien * method.c (set_mangled_name_for_decl): Don't treat clones as 960490075Sobrien constructors. 960590075Sobrien (synthesize_method): Sythesize cloned functions, not the clones. 960690075Sobrien * optimize.c (inline_data): Update comment on ret_label. 960790075Sobrien (remap_block): Don't assume DECL_INITIAL exists. 960890075Sobrien (copy_body_r): Allow ret_label to be NULL. 960990075Sobrien (maybe_clone_body): Define. 961090075Sobrien * pt.c (tsubst_decl): Handle clones. 961190075Sobrien (instantiate_clone): New function. 961290075Sobrien (instantiate_template): Use it. 961390075Sobrien (set_mangled_name_for_template_decl): Don't treat clones as 961490075Sobrien constructors. 961590075Sobrien * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 961690075Sobrien CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 961790075Sobrien * semantics.c (expand_body): Clone function bodies as necessary. 961818334Speter 961990075Sobrien * optimize.c (remap_decl): Avoid sharing structure for arrays 962090075Sobrien whose size is only known at run-time. 962190075Sobrien * tree.c (copy_tree_r): Don't copy PARM_DECLs. 962218334Speter 962390075Sobrien * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 962490075Sobrien to has_in_charge_parm_p. 962590075Sobrien (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 962690075Sobrien (DECL_HAS_IN_CHARGE_PARM_P): ... this. 962790075Sobrien (DECL_COPY_CONSTRUCTOR_P): New macro. 962890075Sobrien * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 962990075Sobrien (build_user_type_conversion_1): Likewise. 963090075Sobrien (convert_like_real): Likewise. 963190075Sobrien (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 963290075Sobrien * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 963390075Sobrien (copy_args_p): Likewise. 963490075Sobrien (grok_ctor_properties): Likewise. 963550397Sobrien (start_function): Likewise. 963690075Sobrien * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 963790075Sobrien * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 963890075Sobrien * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 963990075Sobrien * method.c (do_build_copy_constructor): Use 964090075Sobrien DECL_HAS_IN_CHARGE_PARM_P. 964190075Sobrien (synthesize_method): Likewise. 964290075Sobrien * pt.c (instantiate_template): Remove goto. 964390075Sobrien * tree.c (build_cplus_method_type): Remove mention of obstacks in 964490075Sobrien comment. 964550397Sobrien 964690075Sobrien * cp-tre.h (finish_function): Change prototype. 964790075Sobrien * decl.c (end_cleanup_fn): Adjust caller. 964890075Sobrien (finish_function): Take only one parameter. 964990075Sobrien * decl2.c (finish_objects): Adjust caller. 965090075Sobrien (finish_static_storage_duration_function): Likewise. 965190075Sobrien * method.c (emit_thunk): Likewise. 965250397Sobrien * parse.y: Likewise. 965390075Sobrien * parse.c: Regenerated. 965490075Sobrien * pt.c (instantiate_decl): Likewise. 965590075Sobrien * rtti.c (synthesize_tinfo_fn): Likewise. 965690075Sobrien * semantics.c (expand_body): Likewise. 965752284Sobrien 965890075Sobrien * cp-tree.h (copy_decl): New function. 965990075Sobrien * class.c (finish_struct_1): Use it. 966090075Sobrien * lex.c (copy_decl): Define it. 966190075Sobrien * pt.c (tsubst_decl): Likewise. 966290075Sobrien * tree.c (copy_template_template_parm): Likewise. 966318334Speter 966490075Sobrien * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 966590075Sobrien has_nonpublic_assign_ref. 966690075Sobrien (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 966790075Sobrien (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 966890075Sobrien * class.c (finish_struct_methods): Don't set 966990075Sobrien TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 967090075Sobrien (interface_only): Don't declare. 967190075Sobrien (interface_unknown): Likewise. 967218334Speter 967390075Sobrien2000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 967418334Speter 967590075Sobrien * tree.h (HAVE_TEMPLATES): Remove definition. 967690075Sobrien * lang-options.h (-fthis-is-variable): Remove documentation. 967752284Sobrien 967890075Sobrien2000-04-10 Jason Merrill <jason@casey.cygnus.com> 967952284Sobrien 968090075Sobrien * class.c (instantiate_type): Handle object-relative template-id. 968118334Speter 968290075Sobrien * semantics.c (finish_expr_stmt): Call convert_to_void here. 968390075Sobrien * decl.c (cplus_expand_expr_stmt): Not here. 968418334Speter 968590075Sobrien * rtti.c (build_dynamic_cast_1): Call non_lvalue. 968690075Sobrien Initialize exprtype earlier. 968718334Speter 968890075Sobrien * parse.y (fn.def1): Check for defining types in return types. 968918334Speter 969090075Sobrien * decl.c (check_tag_decl): Notice extra fundamental types. 969190075Sobrien Diagnose empty decls in classes, too. 969218334Speter 969390075Sobrien * decl.c (grokdeclarator): Don't override an anonymous name if no 969490075Sobrien declarator was given. 969518334Speter 969690075Sobrien * cvt.c (convert_to_void): Call resolve_offset_ref. 969718334Speter 969890075Sobrien * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 969918334Speter 970090075Sobrien * decl2.c (decl_namespace): Handle getting a type. 970118334Speter 970290075Sobrien * typeck.c (build_c_cast): Re-enable warning for cast between 970390075Sobrien pointer and integer of different size. 970418334Speter 970590075Sobrien2000-04-10 Nathan Sidwell <nathan@codesourcery.com> 970618334Speter 970790075Sobrien * inc/cxxabi.h (__pointer_type_info): Add restrict and 970890075Sobrien incomplete flags. 970990075Sobrien (__pointer_type_info::__pointer_catch): New virtual function. 971090075Sobrien (__pointer_to_member_type_info): Derive from 971190075Sobrien __pointer_type_info. Adjust. 971290075Sobrien (__pointer_to_member_type_info::__do_catch): Remove. 971390075Sobrien (__pointer_to_member_type_info::__is_pointer_p): Declare. 971490075Sobrien (__pointer_to_member_type_info::__pointer_catch): Declare. 971590075Sobrien * rtti.c (qualifier_flags): Add restrict flag. 971690075Sobrien (ptmd_initializer): Reorder members. 971790075Sobrien (create_tinfo_types): Expand comments. Reorder 971890075Sobrien ptmd_desc_type_node members. 971990075Sobrien * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 972090075Sobrien Implement. 972190075Sobrien (__pointer_type_info::__do_catch): Move specific code into 972290075Sobrien __pointer_catch. Call it. 972390075Sobrien (__pointer_type_info::__pointer_catch): Non-pointer-to-member 972490075Sobrien specific catch checking. Fix void conversion check. 972590075Sobrien (__pointer_to_member_type_info::__do_catch): Remove. 972690075Sobrien (__pointer_to_member_type_info::__pointer_catch): Implement. 972718334Speter 972890075Sobrien2000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 972918334Speter 973090075Sobrien * lex.c (init_parse): Remove traces of classof and headof. 973190075Sobrien * decl2.c (flag_operator_names): Default to 1. 973290075Sobrien (lang_decode_option): Do not set it for -ansi. 973318334Speter 973490075Sobrien2000-04-09 Mark Mitchell <mark@codesourcery.com> 973518334Speter 973690075Sobrien * cp-tree.h (struct lang_decl): Remove main_decl_variant. 973790075Sobrien (DECL_MAIN_VARIANT): Remove. 973890075Sobrien * decl.c (duplicate_decls): Don't set it. 973990075Sobrien (start_function): Likewise. 974090075Sobrien (lang_mark_tree): Don't mark it. 974190075Sobrien * decl2.c (defer_fn): Don't use it. 974290075Sobrien * lex.c (retrofit_lang_decl): Don't set it. 974390075Sobrien * pt.c (tsubst_decl): Likewise. 974490075Sobrien * ptree.c (print_lang_decl): Don't print it. 974590075Sobrien * typeck.c (mark_addressable): Don't use it. 974618334Speter 974790075Sobrien2000-04-09 Nathan Sidwell <nathan@codesourcery.com> 974818334Speter 974990075Sobrien * vec.cc: Include <new> and <exception>. 975090075Sobrien (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 975190075Sobrien (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 975290075Sobrien terminate. 975390075Sobrien (__cxa_vec_delete): Catch dtor exceptions. 975418334Speter 975590075Sobrien2000-04-09 Nathan Sidwell <nathan@codesourcery.com> 975618334Speter 975790075Sobrien Prepend __ to implementation defined names. 975890075Sobrien * inc/typeinfo (type_info): Rename _name to __name. 975990075Sobrien (type_info::type_info): Rename parameter. 976090075Sobrien (type_info::operator==, type_info::operator!=, 976190075Sobrien type_info::before): Likewise. 976290075Sobrien (type_info::is_pointer_p, type_info::is_function_p, 976390075Sobrien type_info::do_catch, type_info::do_upcast): Prepend __. Rename 976490075Sobrien parameters. 976590075Sobrien * inc/cxxabi.h 976690075Sobrien (__fundamental_type_info::__fundamental_type_info) Rename parameters. 976790075Sobrien (__pointer_type_info::__pointer_type_info): Likewise. 976890075Sobrien (__pointer_type_info::is_pointer_p, 976990075Sobrien __pointer_type_info::do_catch): Prepend __. Rename parameters. 977090075Sobrien (__array_type_info::__array_type_info): Rename parameters. 977190075Sobrien (__function_type_info::__function_type_info): Likewise. 977290075Sobrien (__function_type_info::is_function_p): Prepend __. 977390075Sobrien (__enum_type_info::__enum_type_info): Rename parameters. 977490075Sobrien (__pointer_to_member_type_info::__pointer_to_member_type_info): 977590075Sobrien Likewise. 977690075Sobrien (__pointer_to_member_type_info::do_catch): Prepend __. Rename 977790075Sobrien parameters. 977890075Sobrien (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 977990075Sobrien (__class_type_info::__class_type_info): Rename parameters. 978090075Sobrien (__class_type_info::sub_kind): Prepend __. Adjust member names. 978190075Sobrien (__class_type_info::upcast_result, 978290075Sobrien __class_type_info::dyncast_result): Prepend __. Move definition 978390075Sobrien into tinfo.cc. 978490075Sobrien (__class_type_info::do_upcast, __class_type_info::do_catch, 978590075Sobrien __class_type_info::find_public_src, 978690075Sobrien __class_type_info::do_dyncast, 978790075Sobrien __class_type_info::do_find_public_src): Prepend __. Rename 978890075Sobrien parameters. 978990075Sobrien (__si_class_type_info::__si_class_type_info): Rename parameters. 979090075Sobrien (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 979190075Sobrien __si_class_type_info::do_find_public_src): Prepent __. Rename 979290075Sobrien parameters. 979390075Sobrien (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 979490075Sobrien (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 979590075Sobrien __vmi_class_type_info::do_find_public_src): Prepent __. Rename 979690075Sobrien parameters. 979790075Sobrien (__dynamic_cast): Rename parameters. 979890075Sobrien * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 979990075Sobrien type_info::do_catch, type_info::do_upcast): Prepend __. 980090075Sobrien (contained_p, public_p, virtual_p, contained_public_p, 980190075Sobrien contained_nonpublic_p, contained_nonvirtual_p): Adjust. 980290075Sobrien (__class_type_info::do_catch, 980390075Sobrien __class_type_info::do_upcast): Prepend __. Adjust. 980490075Sobrien (__class_type_info::__upcast_result, 980590075Sobrien __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 980690075Sobrien Adjust. 980790075Sobrien (__class_type_info::find_public_src): Prepend __. Adjust. 980890075Sobrien (__class_type_info::do_find_public_src, 980990075Sobrien __si_class_type_info::do_find_public_src, 981090075Sobrien __vmi_class_type_info::do_find_public_src): Likewise. 981190075Sobrien (__class_type_info::do_dyncast, 981290075Sobrien __si_class_type_info::do_dyncast, 981390075Sobrien __vmi_class_type_info::do_dyncast): Likewise. 981490075Sobrien (__class_type_info::do_upcast, 981590075Sobrien __si_class_type_info::do_upcast, 981690075Sobrien __vmi_class_type_info::do_upcast): Likewise. 981790075Sobrien (__dynamic_cast): Adjust. 981890075Sobrien * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 981990075Sobrien (__function_type_info::is_function_p): Likewise. 982090075Sobrien (__pointer_type_info::do_catch): Likewise. Adjust. 982190075Sobrien (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 982290075Sobrien (__throw_type_match_rtti_2): Adjust. 982390075Sobrien (__is_pointer): Adjust. 982418334Speter 982590075Sobrien2000-04-08 Mark Mitchell <mark@codesourcery.com> 982618334Speter 982790075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 982890075Sobrien (complete_ctor_identifier): New macro. 982990075Sobrien (special_function_kind): Add sfk_copy_constructor and 983090075Sobrien sfk_assignment_operator. 983190075Sobrien (LOOKUP_HAS_IN_CHARGE): Remove. 983290075Sobrien (cons_up_default_function): Rename to ... 983390075Sobrien (implicitly_declare_fn): ... this. 983490075Sobrien * call.c (build_new_method_call): Add in-charge parameters for 983590075Sobrien constructors here. 983690075Sobrien * class.c (add_implicitly_declared_members): Change parameter name 983790075Sobrien from cant_have_assignment to cant_have_const_assignment. 983890075Sobrien Replace calls to cons_up_default_function to implicitly_declare_fn. 983990075Sobrien * cvt.c (ocp_convert): Use complete_ctor_identifier. 984090075Sobrien * decl.c (initialize_predefined_identifiers): Initialize it. 984190075Sobrien (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 984290075Sobrien complex expression. 984390075Sobrien * init.c (expand_default_init): Don't calculate the in-charge 984490075Sobrien parameter here. 984590075Sobrien (build_new_1): Likewise. 984690075Sobrien * lex.c (cons_up_default_function): Move to method.c. 984790075Sobrien * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 984890075Sobrien (implicitly_declare_fn): New function. 984990075Sobrien * typeck.c (build_static_cast): Use complete_ctor_identifier. 985090075Sobrien (build_modify_expr): Likewise. 985190075Sobrien * typeck2.c (build_functional_cast): Likewise. 985218334Speter 985390075Sobrien Under the new ABI, constructors don't return `this'. 985490075Sobrien * cp-tree.h (warn_reorder): Declare. 985590075Sobrien (special_function_kind): New enum. 985690075Sobrien (global_base_init_list): Remove declaration. 985790075Sobrien (emit_base_init): Don't return a value. 985890075Sobrien (check_base_init): Don't declare. 985990075Sobrien (is_aggr_typedef): Likewise. 986090075Sobrien * decl.c (check_special_function_return_type): New function. 986190075Sobrien (return_types): Remove. 986290075Sobrien (grokdeclarator): Use check_special_function_return_type. 986390075Sobrien (start_function): Don't initialize ctor_label under the new ABI. 986490075Sobrien (finish_construtor_body): Don't create a corresponding LABEL_STMT. 986590075Sobrien * init.c (begin_init_stmts): Move to top of file. 986690075Sobrien (finish_init_stmts): Likewise. 986790075Sobrien (warn_reorder): Don't declare. 986890075Sobrien (emit_base_init): Don't create a STMT_EXPR here. Don't return a 986990075Sobrien value. 987090075Sobrien (check_base_init): Remove. 987190075Sobrien (is_aggr_typedef): Likewise. 987290075Sobrien (build_new_1): Don't use the return value of a constructor. 987390075Sobrien * semantics.c (setup_vtbl_ptr): Don't use the return value 987490075Sobrien of emit_base_init. 987590075Sobrien * typeck.c (check_return_expr): Don't magically convert return 987690075Sobrien statements into `return this' in constructors under the new ABI. 987718334Speter 987890075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 987990075Sobrien CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 988090075Sobrien (base_ctor_identifier): New macro. 988190075Sobrien (base_dtor_identifier): Likewise. 988290075Sobrien (deleting_dtor_identifier): Likewise. 988390075Sobrien * decl.c: Don't include obstack.h. 988490075Sobrien (obstack_chunk_alloc): Don't define. 988590075Sobrien (obstack_chunk_free): Likewise. 988690075Sobrien (struct predefined_identifier): New type. 988790075Sobrien (initialize_predefined_identifiers): New function. 988890075Sobrien (init_decl_processing): Use it. 988990075Sobrien (debug_temp_inits): Remove. 989090075Sobrien (start_method): Don't call preserve_data. 989190075Sobrien (hack_incomplete_structures): Update comment. 989290075Sobrien * init.c (init_init_processing): Don't initialize 989390075Sobrien nelts_identifier. 989490075Sobrien (build_offset_rf): Remove dead code. 989590075Sobrien (build_delete): Use CLASSTYPE_N_BASECLASSES. 989690075Sobrien * search.c (init_search_processing): Don't initialize 989790075Sobrien vptr_identifier. 989818334Speter 989990075Sobrien2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 990018334Speter 990190075Sobrien * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 990290075Sobrien some sign_compare warnings. 990318334Speter 990490075Sobrien2000-04-07 Nathan Sidwell <nathan@codesourcery.com> 990518334Speter 990690075Sobrien Rename abi::__vmi_class_type_info members. 990790075Sobrien * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 990890075Sobrien base_list, detail_masks members to vmi_flags, vmi_base_count, 990990075Sobrien vmi_bases and vmi_flags_masks respectively. 991090075Sobrien (__vmi_class_type_info::vmi_flags_masks): Rename 991190075Sobrien details_unknown_mask to flags_unknown_mask. 991290075Sobrien * tinfo.cc (__class_type_info::do_upcast): Adjust. 991390075Sobrien (__vmi_class_type_info::do_find_public_src): Adjust. 991490075Sobrien (__vmi_class_type_info::do_dyncast): Adjust. 991590075Sobrien (__vmi_class_type_info::do_upcast): Adjust. 991618334Speter 991790075Sobrien2000-04-07 Nathan Sidwell <nathan@codesourcery.com> 991818334Speter 991990075Sobrien * tinfo.cc (convert_to_base): New function. 992090075Sobrien (get_vbase_offset): Remove. Move into convert_to_base. 992190075Sobrien (__vmi_class_type_info::do_find_public_src): Adjust. 992290075Sobrien (__vmi_class_type_info::do_dyncast): Adjust. 992390075Sobrien (__vmi_class_type_info::do_upcast): Adjust. 992418334Speter 992590075Sobrien2000-04-06 Jason Merrill <jason@yorick.cygnus.com> 992618334Speter 992790075Sobrien * tinfo.cc (operator=): Use __builtin_strcmp. 992890075Sobrien * tinfo2.cc (before): Likewise. 992918334Speter 993090075Sobrien2000-04-06 Mark Mitchell <mark@codesourcery.com> 993118334Speter 993290075Sobrien * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 993390075Sobrien (DECL_SAVED_INLINE): Rename to ... 993490075Sobrien (DECL_DEFERRED_FN): ... this. 993590075Sobrien (in_function_p): Remove declaration. 993690075Sobrien (mark_inline_for_output): Rename to ... 993790075Sobrien (defer_fn): ... this. 993890075Sobrien * decl.c (finish_function): Adjust call to mark_inline_for_output. 993990075Sobrien (in_function_p): Remove definition. 994090075Sobrien * decl2.c (saved_inlines): Rename to ... 994190075Sobrien (deferred_fns): ... this. 994290075Sobrien (saved_inlines_used): Rename to ... 994390075Sobrien (deferred_fns_used): ... this. 994490075Sobrien (mark_inline_for_output): Rename to ... 994590075Sobrien (defer_fn): ... this. 994690075Sobrien (finish_file): Adjust accordingly. 994790075Sobrien (init_decl2): Likewise. 994890075Sobrien * lex.c (cons_up_default_function): Likewise. 994990075Sobrien * pt.c (mark_decl_instantiated): Likewise. 995090075Sobrien (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 995190075Sobrien circumstances. 995290075Sobrien * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 995390075Sobrien * semantics.c (expand_body): Defer more functions. 995418334Speter 995590075Sobrien2000-04-06 Nathan Sidwell <nathan@codesourcery.com> 995618334Speter 995790075Sobrien * vec.cc: New file. 995890075Sobrien * Make-lang.in (CXX_LIB2FUNCS): Add it. 995990075Sobrien (vec.o): Build it. 996090075Sobrien * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 996190075Sobrien __cxa_vec_delete): Declare. 996218334Speter 996390075Sobrien2000-04-06 Nathan Sidwell <nathan@codesourcery.com> 996418334Speter 996590075Sobrien * rtti.c (dfs_class_hint_mark): New static function. 996690075Sobrien (dfs_class_hint_unmark): New static function. 996790075Sobrien (class_hint_flags): Use them. 996818334Speter 996990075Sobrien2000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 997018334Speter 997190075Sobrien * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 997218334Speter 997390075Sobrien2000-04-05 Mark Mitchell <mark@codesourcery.com> 997418334Speter 997590075Sobrien * cp-tree.h (instantiate_decl): Change prototype. 997690075Sobrien * decl2.c (mark_used): Adjust call. 997790075Sobrien * optimize.c (inlinable_function_p): Adjust handling of templates. 997890075Sobrien * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 997990075Sobrien (do_type_instantiation): Likewise. 998090075Sobrien (instantiate_decl): Defer more templates. 998190075Sobrien (instantiate_pending_templates): Adjust logic to handle inline 998290075Sobrien friend functions. 998318334Speter 998490075Sobrien * Makefile.in (GGC_H): New variable. Use it throughout in place 998590075Sobrien of ggc.h. 998618334Speter 998790075Sobrien * call.c: Don't include obstack.h. Include ggc.h. 998890075Sobrien (obstack_chunk_alloc): Don't define. 998990075Sobrien (obstack_chunk_free): Likewise. 999090075Sobrien (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 999190075Sobrien * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 999290075Sobrien (pop_switch): Free it. 999318334Speter 999490075Sobrien * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 999518334Speter 999690075Sobrien * dump.c (dequeue_and_dump): Don't try to print the bit_position 999790075Sobrien if we don't have a DECL_FIELD_OFFSET. 999818334Speter 999990075SobrienWed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 1000018334Speter 1000190075Sobrien * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 1000290075Sobrien special_function_p. 1000318334Speter 1000490075Sobrien2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1000518334Speter 1000690075Sobrien * cfns.gperf (hash, libc_name_p): Prototype. 1000718334Speter 1000890075Sobrien * rtti.c (build_dynamic_cast_1): Constification. 1000918334Speter 1001090075Sobrien * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 1001118334Speter 1001290075Sobrien * semantics.c (deferred_type_access_control): Prototype. 1001318334Speter 1001490075Sobrien2000-04-04 Mark Mitchell <mark@codesourcery.com> 1001518334Speter 1001690075Sobrien Correct many new ABI issues regarding vbase and vcall offset 1001790075Sobrien layout. 1001890075Sobrien * cp-tree.h (BINFO_VTABLE): Document. 1001990075Sobrien (struct lang_type): Tweak formatting. 1002090075Sobrien (BINFO_PRIMARY_BINFO): Add to documentation. 1002190075Sobrien (CLASSTYPE_VSIZE): Fix typo in comment. 1002290075Sobrien (CLASSTYPE_VBASECLASSES): Update documentation. 1002390075Sobrien (BINFO_VBASE_MARKED): Remove. 1002490075Sobrien (SET_BINFO_VBASE_MARKED): Likewise. 1002590075Sobrien (CLEAR_BINFO_VBASE_MARKED): Likewise. 1002690075Sobrien (BINFO_FIELDS_MARKED): Remove. 1002790075Sobrien (SET_BINFO_FIELDS_MARKED): Likewise. 1002890075Sobrien (CLEAR_BINFO_FIELDS_MARKED): Likewise. 1002990075Sobrien (enum access_kind): New enumeration. 1003090075Sobrien (num_extra_vtbl_entries): Remove declaration. 1003190075Sobrien (size_extra_vtbl_entries): Likewise. 1003290075Sobrien (get_vtbl_decl_for_binfo): New function. 1003390075Sobrien (dfs_vbase_unmark): Remove declaration. 1003490075Sobrien (mark_primary_bases): Likewise. 1003590075Sobrien * class.c (SAME_FN): Remove. 1003690075Sobrien (struct vcall_offset_data_s): Move definition. 1003790075Sobrien (build_vbase_pointer): Use `build', not `build_binary_op', to 1003890075Sobrien access the vbase pointer under the new ABI. 1003990075Sobrien (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 1004090075Sobrien (build_primary_vtable): Likewise. 1004190075Sobrien (dfs_mark_primary_bases): Move here from search.c. 1004290075Sobrien (mark_primary_bases): Likewise. 1004390075Sobrien (determine_primary_bases): Under the new ABI, don't make a base 1004490075Sobrien class a primary base just because we don't yet have any virtual 1004590075Sobrien functions. 1004690075Sobrien (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 1004790075Sobrien (num_vfun_entries): Remove. 1004890075Sobrien (dfs_count_virtuals): Likewise. 1004990075Sobrien (num_extra_vtbl_entries): Likewise. 1005090075Sobrien (size_extra_vtbl_entries): Likewise. 1005190075Sobrien (layout_virtual_bases): Iterate in inheritance graph order under 1005290075Sobrien the new ABI. 1005390075Sobrien (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 1005490075Sobrien indicate that a vfield is present. 1005590075Sobrien (init_class_processing): Initialize access_public_node, etc., from 1005690075Sobrien ak_public, etc. 1005790075Sobrien (get_vtbl_decl_for_binfo): New function. 1005890075Sobrien (dump_class_hierarchy_r): Likewise. 1005990075Sobrien (dump_class_hierarchy): Use it. 1006090075Sobrien (finish_vtbls): Build the vtbls in inheritance graph order. 1006190075Sobrien (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 1006290075Sobrien (initialize_vtable): Use get_vtbl_decl_for_binfo. 1006390075Sobrien (accumulate_vtbl_inits): Add comments explaining why a pre-order 1006490075Sobrien walk is required. 1006590075Sobrien (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 1006690075Sobrien where the vptr points, even for primary vtables. 1006790075Sobrien (build_vtbl_initializer): Adjust handling of vbase and vcall 1006890075Sobrien offsets. 1006990075Sobrien (build_vcall_and_vbase_vtable_entries): New function. 1007090075Sobrien (dfs_build_vbase_offset_vtbl_entries): Remove. 1007190075Sobrien (build_vbase_offset_vtbl_entries): Reimplement. 1007290075Sobrien (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 1007390075Sobrien were already handled in a primary base class vtable. 1007490075Sobrien (build_vcall_offset_vtbl_entries): Adjust. 1007590075Sobrien (build_rtti_vtbl_entries): Adjust. 1007690075Sobrien * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 1007790075Sobrien * init.c (expand_virtual_init): Simplify. 1007890075Sobrien * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 1007990075Sobrien * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 1008090075Sobrien * search.c (BINFO_ACCESS): New macro. 1008190075Sobrien (SET_BINFO_ACCESS): Likewise. 1008290075Sobrien (dfs_access_in_type): Manipulate access_kinds, not access nodes. 1008390075Sobrien (access_in_type): Likewise. 1008490075Sobrien (dfs_accessible_p): Likewise. 1008590075Sobrien (protected_accessible_p): Likewise. 1008690075Sobrien (lookup_fnfields_1): Adjust documentation. 1008790075Sobrien (dfs_mark_primary_bases): Move to class.c 1008890075Sobrien (mark_primary_bases): Likewise. 1008990075Sobrien (dfs_vbase_unmark): Remove. 1009090075Sobrien (virtual_context): Use BINFO_FOR_VBASE. 1009190075Sobrien (dfs_get_vbase_types): Simplify. 1009290075Sobrien (dfs_build_inheritance_graph_order): New function. 1009390075Sobrien (get_vbase_types): Use it. 1009490075Sobrien * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 1009518334Speter 1009690075Sobrien * tinfo.cc (get_vbase_offset): New function. 1009790075Sobrien (__vmi_class_type_info::do_find_public_src): Use it. 1009890075Sobrien (__vmi_class_type_info::do_dyncast): Likewise. 1009990075Sobrien (__vmi_class_type_info::do_upcast): Likewise. 1010018334Speter 1010190075Sobrien2000-04-03 Zack Weinberg <zack@wolery.cumb.org> 1010218334Speter 1010390075Sobrien * lang-specs.h: Pass -fno-show-column to the preprocessor. 1010418334Speter 1010590075Sobrien2000-03-30 Nathan Sidwell <nathan@codesourcery.com> 1010618334Speter 1010790075Sobrien * rtti.c (class_hint_flags): Rename flags. 1010890075Sobrien (class_initializer): Remove flags. 1010990075Sobrien (synthesize_tinfo_var): Combine offset and flags. Add flags 1011090075Sobrien for __vmi_class_type_info. 1011190075Sobrien (create_tinfo_types): Remove flags from __class_type_info and 1011290075Sobrien __si_class_type_info. Merge flags and offset from 1011390075Sobrien base_class_type_info. 1011490075Sobrien * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 1011590075Sobrien (__base_class_info::is_virtual_p): Adjust. 1011690075Sobrien (__base_class_info::is_public_p): Adjust. 1011790075Sobrien (__base_class_info::offset): New accessor. 1011890075Sobrien (__class_type_info::details): Remove member. 1011990075Sobrien (__class_type_info::__class_type_info): Lose details. 1012090075Sobrien (__class_type_info::detail_masks): Remove. 1012190075Sobrien (__si_class_type_info::__si_class_type_info): Lose details. 1012290075Sobrien (__vmi_class_type_info::details): New member. 1012390075Sobrien (__vmi_class_type_info::__vmi_class_type_info): Adjust. 1012490075Sobrien (__vmi_class_type_info::detail_masks): New member. 1012590075Sobrien * tinfo.cc (__class_type_info::do_upcast): Initialize result 1012690075Sobrien with unknown_details_mask. 1012790075Sobrien (__vmi_class_type_info::do_find_public_src): Adjust 1012890075Sobrien (__vmi_class_type_info::do_dyncast): Adjust. 1012990075Sobrien (__vmi_class_type_info::do_upcast): Set result details, if 1013090075Sobrien needed. Adjust. 1013190075Sobrien (__dynamic_cast): Temporarily #if out optimization. 1013218334Speter 1013390075Sobrien2000-03-29 Nathan Sidwell <nathan@codesourcery.com> 1013418334Speter 1013590075Sobrien * rtti.c (get_tinfo_decl): Mark used. 1013690075Sobrien (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 1013790075Sobrien mark as dealt with, if we output it. 1013818334Speter 1013990075Sobrien2000-03-28 Mark Mitchell <mark@codesourcery.com> 1014018334Speter 1014190075Sobrien * class.c: Reorganize to put virtual function table initialization 1014290075Sobrien machinery at the end of the file. 1014318334Speter 1014490075Sobrien2000-03-28 Jason Merrill <jason@casey.cygnus.com> 1014518334Speter 1014690075Sobrien * class.c (finish_struct): Use bitsize_zero_node. 1014790075Sobrien * pt.c (instantiate_class_template): Likewise. 1014818334Speter 1014990075Sobrien2000-03-28 Mark Mitchell <mark@codesourcery.com> 1015018334Speter 1015190075Sobrien Put RTTI entries at negative offsets in new ABI. 1015290075Sobrien * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 1015390075Sobrien vbase offset at index -3, not -1. 1015490075Sobrien (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 1015590075Sobrien dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 1015690075Sobrien (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 1015790075Sobrien (build_rtti_vtbl_entries): New function. 1015890075Sobrien (set_rtti_entry): Remove. 1015990075Sobrien (build_primary_vtable): Don't use it. 1016090075Sobrien (build_secondary_vtable): Likewise. 1016190075Sobrien (start_vtable): Remove. 1016290075Sobrien (first_vfun_index): New function. 1016390075Sobrien (set_vindex): Likewise. 1016490075Sobrien (add_virtual_function): Don't call start_vtable. Do call 1016590075Sobrien set_vindex. 1016690075Sobrien (set_primary_base): Rename parameter. 1016790075Sobrien (determine_primary_base): Likewise. 1016890075Sobrien (num_vfun_entries): Don't use skip_rtti_stuff. 1016990075Sobrien (num_extra_vtbl_entries): Include RTTI information. 1017090075Sobrien (build_vtbl_initializer): Use build_rtti_vtbl_entries. 1017190075Sobrien (skip_rtti_stuff): Remove. 1017290075Sobrien (dfs_modify_vtables): Don't use it. 1017390075Sobrien (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 1017490075Sobrien (layout_nonempty_base_or_field): Update size handling. 1017590075Sobrien (create_vtable_ptr): Tweak. 1017690075Sobrien (layout_class_type): Adjust parameter names. 1017790075Sobrien (finish_struct_1): Simplify. 1017890075Sobrien * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 1017990075Sobrien (skip_rtti_stuff): Remove. 1018090075Sobrien (first_vfun_index): New function. 1018190075Sobrien (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 1018290075Sobrien (dfs_vtable_path_marked_real_bases_queue_p): Remove. 1018390075Sobrien (marked_vtable_pathp): Declare. 1018490075Sobrien (unmarked_vtable_pathp): Likewise. 1018590075Sobrien * error.c (dump_expr): Use first_vfun_index to calculate vtable 1018690075Sobrien offsets. 1018790075Sobrien * rtti.c (build_headof): Look for RTTI at negative offsets. 1018890075Sobrien (get_tinfo_decl_dynamic): Likewise. 1018990075Sobrien (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 1019090075Sobrien here. 1019190075Sobrien (create_pseudo_type_info): Do it here instead. Adjust so that 1019290075Sobrien vptr points at first virtual function. 1019390075Sobrien * search.c (marked_vtable_pathp): Make it global. 1019490075Sobrien (unmarked_vtable_pathp): Likewise. 1019590075Sobrien (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 1019690075Sobrien (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 1019790075Sobrien (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 1019890075Sobrien (get_pure_virtuals): Likewise. 1019990075Sobrien (expand_upcast_fixups): Likewise. 1020090075Sobrien * tree.c (debug_binfo): Likewise. 1020190075Sobrien * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 1020290075Sobrien negative offset. 1020318334Speter 1020490075SobrienSun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1020518334Speter 1020690075Sobrien * class.c (check_field_decl): Fix typo. 1020790075Sobrien (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 1020890075Sobrien (check_methods): Likewise. 1020990075Sobrien (check_field_decls): Likewise. 1021090075Sobrien Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 1021190075Sobrien * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 1021290075Sobrien Use DECL_RESULT_FLD, not DECL_RESULT. 1021390075Sobrien * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 1021490075Sobrien * lex.c (identifier_type): Likewise. 1021590075Sobrien * pt.c (determine_specialization, lookup_template_class): Likewise. 1021690075Sobrien (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 1021790075Sobrien (resolve_overloaded_unification, more_specialized): Likewise. 1021890075Sobrien * semantics.c (finish_member_declaration): Likewise. 1021990075Sobrien * typeck.c (build_x_function_call): Likewise. 1022018334Speter 1022190075Sobrien2000-03-26 Mark Mitchell <mark@codesourcery.com> 1022218334Speter 1022390075Sobrien * class.c (layout_empty_base): Handle empty bases with non-byte 1022490075Sobrien alignment. 1022590075Sobrien (build_base_field): Likewise. 1022690075Sobrien (layout_virtual_bases): Likewise. 1022718334Speter 1022890075Sobrien * class.c (finish_struct_1): Fix typo in this change: 1022918334Speter 1023090075Sobrien Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1023118334Speter 1023290075Sobrien2000-03-25 Mark Mitchell <mark@codesourcery.com> 1023318334Speter 1023490075Sobrien * decl.c (grokdeclarator): Count partial specializations when 1023590075Sobrien keeping track of how many template classes have been seen. 1023618334Speter 1023790075Sobrien * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 1023818334Speter 1023990075SobrienSat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1024018334Speter 1024190075Sobrien * class.c (build_vbase_pointer_fields): layout_field now place_field. 1024290075Sobrien (get_vfield_offset): Use byte_position. 1024390075Sobrien (set_rtti_entry): Set OFFSET to ssizetype zero. 1024490075Sobrien (get_binfo_offset_as_int): Deleted. 1024590075Sobrien (dfs_record_base_offsets): Use tree_low_cst. 1024690075Sobrien (dfs_search_base_offsets): Likewise. 1024790075Sobrien (layout_nonempty_base_or_field): Reflect changes in RLI format 1024890075Sobrien and call byte_position. 1024990075Sobrien (layout_empty_base): Convert offset to ssizetype. 1025090075Sobrien (build_base_field): use rli_size_unit_so_far. 1025190075Sobrien (dfs_propagate_binfo_offsets): Do computation in proper type. 1025290075Sobrien (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 1025390075Sobrien (layout_class_type): Reflect changes in RLI names and fields. 1025490075Sobrien (finish_struct_1): Set DECL_FIELD_OFFSET. 1025590075Sobrien * dump.c (dequeue_and_dump): Call bit_position. 1025690075Sobrien * expr.c (cplus_expand_constant): Use byte_position. 1025790075Sobrien * rtti.c (expand_class_desc): Use bitsize_one_node. 1025890075Sobrien * typeck.c (build_component_addr): Use byte_position and don't 1025990075Sobrien special case for zero offset. 1026018334Speter 1026190075Sobrien2000-03-24 Nathan Sidwell <nathan@codesourcery.com> 1026218334Speter 1026390075Sobrien * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 1026418334Speter 1026590075Sobrien * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 1026690075Sobrien tinfo object. 1026790075Sobrien (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 1026890075Sobrien vtable. 1026918334Speter 1027090075Sobrien2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1027118334Speter 1027290075Sobrien * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 1027390075Sobrien DECL_P macros. 1027490075Sobrien * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 1027590075Sobrien make_typename_type, check_initializer, cp_finish_decl, 1027690075Sobrien xref_tag): Likewise. 1027790075Sobrien * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 1027890075Sobrien decl_namespace, arg_assoc_template_arg, arg_assoc, 1027990075Sobrien validate_nonmember_using_decl, do_class_using_decl): Likewise. 1028090075Sobrien * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 1028190075Sobrien args_to_string): Likewise. 1028290075Sobrien * friend.c (is_friend): Likewise. 1028390075Sobrien * lex.c (note_got_semicolon, note_list_got_semicolon, 1028490075Sobrien is_global): Likewise. 1028590075Sobrien * method.c (build_overload_nested_name, build_overload_value, 1028690075Sobrien build_qualified_name, build_qualified_name, hack_identifier): Likewise. 1028790075Sobrien * parse.y (typename_sub, typename_sub1): Likewise. 1028890075Sobrien * pt.c (push_inline_template_parms_recursive, check_template_shadow, 1028990075Sobrien process_partial_specialization, convert_template_argument, 1029090075Sobrien template_args_equal, add_pending_template, lookup_template_class, 1029190075Sobrien for_each_template_parm_r, maybe_fold_nontype_arg, 1029290075Sobrien tsubst, instantiate_template, type_unification_real, unify, 1029390075Sobrien instantiate_pending_templates, set_mangled_name_for_template_decl): 1029490075Sobrien Likewise. 1029590075Sobrien * repo.c (repo_get_id, repo_template_used): Likewise. 1029690075Sobrien * search.c (lookup_field_1): Likewise. 1029790075Sobrien * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 1029890075Sobrien * xref.c (classname): Likewise. 1029918334Speter 1030090075Sobrien2000-03-22 Mark Mitchell <mark@codesourcery.com> 1030118334Speter 1030290075Sobrien * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 1030390075Sobrien (CANONICAL_BINFO): New macro. 1030490075Sobrien (BINFO_NEW_VTABLE_MARKED): Use it. 1030590075Sobrien (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 1030690075Sobrien (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 1030790075Sobrien * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 1030890075Sobrien not TREE_TYPE. 1030990075Sobrien (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 1031090075Sobrien (build_secondary_vtable): Likewise. 1031190075Sobrien (dfs_finish_vtbls): Likewise. 1031290075Sobrien (dfs_accumulate_vtbl_inits): Likewise. 1031390075Sobrien (accumulate_vtbl_inits): New function. 1031490075Sobrien (finish_vtbls): Make sure that virtual bases come after 1031590075Sobrien non-virtual bases in the vtable group. 1031690075Sobrien (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 1031790075Sobrien (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 1031890075Sobrien * search.c (struct vbase_info): Move definition. 1031990075Sobrien (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 1032090075Sobrien (unmarked_new_vtable_p): Likewise. 1032190075Sobrien (dfs_mark_vtable_path): Remove. 1032290075Sobrien (dfs_mark_new_vtable): Remove. 1032390075Sobrien (dfs_unmark_new_vtable): Likewise. 1032490075Sobrien (dfs_clear_search_slot): Likewise. 1032590075Sobrien (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 1032690075Sobrien (dfs_clear_vbase_slots): Likewise. 1032790075Sobrien (init_vbase_pointers): LIkewise. 1032818334Speter 1032990075Sobrien2000-03-22 Jason Merrill <jason@casey.cygnus.com> 1033018334Speter 1033190075Sobrien * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 1033290075Sobrien SIZETYPE to a non-SIZETYPE. 1033318334Speter 1033490075Sobrien2000-03-21 Mark Mitchell <mark@codesourcery.com> 1033518334Speter 1033690075Sobrien * class.c (layout_virtual_bases): Adjust names in conditionally 1033790075Sobrien compiled code. 1033818334Speter 1033990075Sobrien * class.c (record_base_offsets): New function. 1034090075Sobrien (layout_conflict_p): Likewise. 1034190075Sobrien (layout_nonempty_base_or_field): Use it. 1034290075Sobrien (layout_empty_base): New function. 1034390075Sobrien (build_base_field): Use it. 1034490075Sobrien (build_base_fields): Update comment. 1034590075Sobrien (layout_virtual_bases): Fold in a little code form 1034690075Sobrien layout_basetypes. Use layout_empty_base. 1034790075Sobrien (layout_basetypes): Remove. 1034890075Sobrien (end_of_class): New function. 1034990075Sobrien (layout_class_type): Use it. Adjust. 1035018334Speter 1035190075Sobrien * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 1035290075Sobrien (fntype_p): Remove. 1035390075Sobrien * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 1035490075Sobrien comment. 1035590075Sobrien (dfs_skip_nonprimary_vbases_markedp): Likewise. 1035690075Sobrien * typeck.c (fntype_p): Remove. 1035718334Speter 1035890075Sobrien * cp-tree.h (TI_SPEC_INFO): Remove. 1035990075Sobrien (CLASSTYPE_TI_SPEC_INFO): Likewise. 1036090075Sobrien * pt.c (process_partial_specialization): Likewise. 1036118334Speter 1036290075Sobrien * class.c (build_base_field): Fix thinko in computation of binfo 1036390075Sobrien offsets. 1036418334Speter 1036590075Sobrien * tree.c (mark_local_for_remap_p): Mark variables declared in 1036690075Sobrien TARGET_EXPRs as well. 1036718334Speter 1036890075Sobrien2000-03-21 Nathan Sidwell <nathan@codesourcery.com> 1036918334Speter 1037090075Sobrien * typeck.c (require_complete_type, complete_type, 1037190075Sobrien complete_type_or_else, c_sizeof, c_sizeof_nowarn, 1037290075Sobrien build_array_ref, convert_arguments, pointer_diff, 1037390075Sobrien build_x_unary_op, build_unary_op, build_c_cast, 1037490075Sobrien build_modify_expr): Use COMPLETE_TYPE_P etc. 1037590075Sobrien * call.c (is_complete, convert_like_real, 1037690075Sobrien build_new_method_call): Likewise. 1037790075Sobrien * class.c (build_vbase_pointer_fields, check_bases, 1037890075Sobrien build_base_field, finish_struct_1, pushclass): Likewise. 1037990075Sobrien * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 1038090075Sobrien * decl.c (maybe_process_template_type_declaration, pushtag, 1038190075Sobrien pushdecl, redeclaration_error_message, start_decl, start_decl_1, 1038290075Sobrien layout_var_decl, check_initializer, cp_finish_decl, 1038390075Sobrien grokdeclarator, require_complete_types_for_parms, 1038490075Sobrien grok_op_properties, xref_tag, xref_basetypes, 1038590075Sobrien check_function_type): Likewise. 1038690075Sobrien * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 1038790075Sobrien * friend.c (do_friend): Likewise. 1038890075Sobrien * init.c (build_offset_ref): Likewise. 1038990075Sobrien * parse.y (structsp): Likewise. 1039090075Sobrien * pt.c (maybe_process_partial_specialization, 1039190075Sobrien tsubst_friend_function, instantiate_class_template, tsubst, 1039290075Sobrien do_type_instantiation, instantiate_pending_templates): Likewise. 1039390075Sobrien * repo.c (repo_get_id): Likewise. 1039490075Sobrien * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 1039590075Sobrien synthesize_tinfo_var, emit_support_tinfos): Likewise. 1039690075Sobrien * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 1039790075Sobrien * semantics.c (begin_class_definition): Likewise. 1039890075Sobrien * tree.c (build_cplus_method_type): Likewise. 1039990075Sobrien * typeck2.c (digest_init, build_functional_cast, 1040090075Sobrien add_exception_specifier): Likewise. 1040190075Sobrien * parse.h, parse.c: Regenerated. 1040218334Speter 1040390075Sobrien2000-03-21 Nathan Sidwell <nathan@codesourcery.com> 1040418334Speter 1040590075Sobrien * inc/cxxabi.h: New header file. Define new-abi entry points. 1040690075Sobrien (__pointer_type_info::target): Rename member to ... 1040790075Sobrien (__pointer_type_info::type): ... here. 1040890075Sobrien (__base_class_info::type): Rename member to ... 1040990075Sobrien (__base_class_info::base): ... here. 1041090075Sobrien * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 1041190075Sobrien * cp-tree.h (CPTI_ABI): New global tree enumeration. 1041290075Sobrien (abi_node): New global tree node. 1041390075Sobrien * decl.c (abi_node): Document. 1041490075Sobrien (init_decl_processing): Initialize abi_node. 1041590075Sobrien * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 1041690075Sobrien (get_vmi_pseudo_type_info): Likewise. 1041790075Sobrien (create_tinfo_types): Likewise. 1041890075Sobrien (emit_support_tinfos): Likewise. 1041990075Sobrien * tinfo.h (cxxabi.h): Include for new-abi. 1042090075Sobrien Move rtti class definitions to new header file. 1042190075Sobrien * tinfo.cc (abi): Use the namespace. 1042290075Sobrien (std): Move new abi rtti classes from here ... 1042390075Sobrien (__cxxabiv1): ... to here. 1042490075Sobrien * tinfo2.cc (cxxabi.h): Include for new-abi. 1042590075Sobrien Move rtti class definitions to new header file. 1042690075Sobrien (std): Move new abi rtti classes from here ... 1042790075Sobrien (__cxxabiv1): ... to here. 1042890075Sobrien * inc/typeinfo (__class_type_info): Move into __cxxabiv1 1042990075Sobrien namespace. 1043018334Speter 1043190075Sobrien2000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 1043290075Sobrien Jason Merrill <jason@casey.cygnus.com> 1043318334Speter 1043490075Sobrien * method.c (build_overload_int): Use host_integerp. 1043518334Speter 1043690075Sobrien2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1043718334Speter 1043890075Sobrien * init.c (build_offset_ref): Handle the case of a templated member 1043990075Sobrien function. 1044018334Speter 1044190075Sobrien2000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1044218334Speter 1044390075Sobrien * except.c (expand_exception_blocks): Clear catch_clauses_last. 1044418334Speter 1044590075Sobrien2000-03-18 Mark Mitchell <mark@codesourcery.com> 1044618334Speter 1044790075Sobrien * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 1044890075Sobrien * class.c (check_bitfield_decl): Turn illegal bitfields into 1044990075Sobrien non-bitfields. 1045090075Sobrien (dfs_propagate_binfo_offsets): Adjust for new size_binop 1045190075Sobrien semantics. 1045290075Sobrien (dfs_offset_for_unshared_vbases): Likewise. 1045390075Sobrien * cvt.c (cp_convert_to_pointer): Convert NULL to a 1045490075Sobrien pointer-to-member correctly under the new ABI. 1045590075Sobrien * expr.c (cplus_expand_constant): Don't use cp_convert when 1045690075Sobrien turning an offset into a pointer-to-member. 1045790075Sobrien * init.c (resolve_offset_ref): Don't adjust pointers-to-members 1045890075Sobrien when dereferencing them under the new ABI. 1045990075Sobrien * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 1046090075Sobrien of pointers-to-members under the new ABI. 1046118334Speter 1046290075Sobrien * class.c (check_bitfield_decl): Remove restriction on really long 1046390075Sobrien bitfields. 1046490075Sobrien (layout_class_type): Implement new ABI handling of bitfields 1046590075Sobrien longer than their types. 1046618334Speter 1046790075Sobrien2000-03-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1046818334Speter 1046990075Sobrien * parse.y (extdefs): Call ggc_collect. 1047090075Sobrien * parse.c: Regenerated. 1047118334Speter 1047290075Sobrien2000-03-18 Nathan Sidwell <nathan@codesourcery.com> 1047318334Speter 1047490075Sobrien * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 1047590075Sobrien (note_name_declared_in_class): Use OVL_CURRENT to get at a 1047690075Sobrien potential overload. 1047718334Speter 1047890075SobrienFri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1047918334Speter 1048090075Sobrien * class.c (build_vbase_path): Use integer_zerop. 1048190075Sobrien (build_vtable_entry): Use tree_low_cst. 1048290075Sobrien (get_vfield_offset): Use bit_position. 1048390075Sobrien (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 1048490075Sobrien Use tree_low_cst. 1048590075Sobrien (check_bitfield_decl): Set DECL_SIZE using convert. 1048690075Sobrien (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 1048790075Sobrien (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 1048890075Sobrien Use tree_low_cst. 1048990075Sobrien (finish_struct_1): Use bit_position. 1049090075Sobrien (dump_class_hierarchy): Use tree_low_cst. 1049190075Sobrien * cp-tree.h (min_precision): Add declaration. 1049290075Sobrien * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 1049390075Sobrien * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 1049490075Sobrien (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 1049590075Sobrien * expr.c (cplus_expand_constant): Use bit_position. 1049690075Sobrien * init.c (build_vec_init): Use host_integerp and tree_low_cst. 1049790075Sobrien * rtti.c (get_base_offset): Use bit_position. 1049890075Sobrien * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 1049990075Sobrien host_integerp, and tree_low_cst. 1050090075Sobrien (pointer_int_sum): Use integer_zerop. 1050190075Sobrien (build_component_addr): Use bit_position. 1050218334Speter 1050390075Sobrien2000-03-17 Nathan Sidwell <nathan@codesourcery.com> 1050418334Speter 1050590075Sobrien * typeck.c (require_complete_type): Don't assume size_zero_node. 1050690075Sobrien (complete_type_or_else): Likewise. 1050718334Speter 1050890075Sobrien2000-03-16 Steven Grady <grady@digitaldeck.com> 1050990075Sobrien Jason Merrill <jason@casey.cygnus.com> 1051018334Speter 1051190075Sobrien * rtti.c (build_dynamic_cast_1): Improve diagnostics. 1051218334Speter 1051390075Sobrien2000-03-16 Nathan Sidwell <nathan@codesourcery.com> 1051418334Speter 1051590075Sobrien * decl2.c (grokfield): Bail out if type is error_mark_node. 1051618334Speter 1051790075Sobrien2000-03-15 Nathan Sidwell <nathan@codesourcery.com> 1051818334Speter 1051990075Sobrien * tinfo2.cc (__ptr_to_member_data): Rename to ... 1052090075Sobrien (__pointer_to_member_data): ... here. Adjust. 1052190075Sobrien * rtti.c (create_tinfo_types): Adjust. 1052218334Speter 1052390075Sobrien2000-03-15 Nathan Sidwell <nathan@codesourcery.com> 1052418334Speter 1052590075Sobrien * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 1052690075Sobrien * decl.c (ref_desc_type_node): Undocument. 1052790075Sobrien * rtti.c (ptr_ref_initializer): Rename to ... 1052890075Sobrien (ptr_initializer): ... here. Adjust comments. 1052990075Sobrien (ptmd_initializer): Fix comment thinko. 1053090075Sobrien (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 1053190075Sobrien (create_tinfo_types): Remove ref_desc_type_node init. 1053290075Sobrien * tinfo2.cc (__reference_type_info): Remove. 1053318334Speter 1053490075Sobrien2000-03-15 Nathan Sidwell <nathan@codesourcery.com> 1053518334Speter 1053690075Sobrien * decl.c (cp_finish_decl): Remove obsolete comment. 1053718334Speter 1053890075Sobrien * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 1053918334Speter 1054090075Sobrien2000-03-14 Mark Mitchell <mark@codesourcery.com> 1054118334Speter 1054290075Sobrien * cp-tree.h: Tweak documentation. 1054390075Sobrien * class.c (build_vbase_pointer_fields): Layout the fields, too. 1054490075Sobrien (avoid_overlap): Remove. 1054590075Sobrien (get_binfo_offset_as_int): New function. 1054690075Sobrien (dfs_serach_base_offsets): Likewise. 1054790075Sobrien (layout_nonempty_base_or_field): Likewise. 1054890075Sobrien (build_base_field): Layout fields here. Avoid placing two objects 1054990075Sobrien of the same type at the same address, under the new ABI. 1055090075Sobrien (build_base_fields): Adjust accordingly. 1055190075Sobrien (create_vtable_ptr): Return the new field, but don't attach it to 1055290075Sobrien TYPE_FIELDS. 1055390075Sobrien (remove_base_field): Remove. 1055490075Sobrien (remove_base_fields): Remove. 1055590075Sobrien (layout_basetypes): Adjust accordingly. 1055690075Sobrien (layout_class_type): Call layout_field for each field, rather than 1055790075Sobrien just making a wholesale call to layout_type. 1055818334Speter 1055990075Sobrien2000-03-14 Jeff Sturm <jsturm@sigma6.com> 1056018334Speter 1056190075Sobrien * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 1056218334Speter 1056390075Sobrien2000-03-13 Jason Merrill <jason@casey.cygnus.com> 1056418334Speter 1056590075Sobrien * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 1056618334Speter 1056790075Sobrien * except.c (dtor_nothrow): New fn. 1056890075Sobrien (do_pop_exception): Use it. Take type parm. 1056990075Sobrien (push_eh_cleanup): Take type parm. 1057090075Sobrien (expand_start_catch_block): Pass it. 1057190075Sobrien (build_eh_type_type_ref): Accept null type. 1057218334Speter 1057390075Sobrien2000-03-12 Mark Mitchell <mark@codesourcery.com> 1057418334Speter 1057590075Sobrien * cp-tree.h (revert_static_member_fn): Change prototype. 1057690075Sobrien * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 1057790075Sobrien (grok_op_properties): Likewise. 1057890075Sobrien (start_function): Likewise. 1057990075Sobrien (revert_static_member_fn): Simplify. 1058090075Sobrien * pt.c (check_explicit_specialization): Adjust call to 1058190075Sobrien revert_static_member_fn. 1058218334Speter 1058390075Sobrien2000-03-11 Mark Mitchell <mark@codesourcery.com> 1058418334Speter 1058590075Sobrien * cp-tree.h (scope_kind): New type. 1058690075Sobrien (tmpl_spec_kind): Likewise. 1058790075Sobrien (declare_pseudo_global_level): Remove. 1058890075Sobrien (pseudo_global_level_p): Rename to template_parm_scope_p. 1058990075Sobrien (pushlevel): Remove declaration. 1059090075Sobrien (begin_scope): New function. 1059190075Sobrien (finish_scope): Likewise. 1059290075Sobrien (current_tmpl_spec_kind): Likewise. 1059390075Sobrien * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 1059490075Sobrien Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 1059590075Sobrien Add template_spec_p. 1059690075Sobrien (toplevel_bindings_p): Adjust. 1059790075Sobrien (declare_pseudo_global_level): Remove. 1059890075Sobrien (pseudo_global_level_p): Rename to template_parm_scope_p. 1059990075Sobrien (current_tmpl_spec_kind): New function. 1060090075Sobrien (begin_scope): Likewise. 1060190075Sobrien (finish_scope): Likewise. 1060290075Sobrien (maybe_push_to_top_level): Adjust. 1060390075Sobrien (maybe_process_template_type_declaration): Likewise. 1060490075Sobrien (pushtag): Likewise. 1060590075Sobrien (pushdecl_nonclass_level): Likewise. 1060690075Sobrien (lookup_tag): Likewise. 1060790075Sobrien (grokfndecl): Handle member template specializations. Share 1060890075Sobrien constructor and non-constructor code. 1060990075Sobrien * decl2.c (check_classfn): Handle member template specializations. 1061090075Sobrien * pt.c (begin_template_parm_list): Use begin_scope. 1061190075Sobrien (begin_specialization): Likewise. 1061290075Sobrien (end_specialization): Likewise. 1061390075Sobrien (check_explicit_specialization): Use current_tmpl_spec_kind. 1061490075Sobrien Handle member template specializations. 1061590075Sobrien (end_template_decl): Use finish_scope. Remove call to 1061690075Sobrien get_pending_sizes. 1061790075Sobrien (push_template_decl_real): Remove bogus error message. 1061890075Sobrien (tsubst_decl): Fix typo in code contained in comment. 1061990075Sobrien (instantiate_template): Handle member template specializations. 1062090075Sobrien (most_general_template): Likewise. 1062118334Speter 1062290075Sobrien2000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 1062318334Speter 1062490075Sobrien * lex.c (whitespace_cr): Compress consecutive calls to warning(). 1062590075Sobrien (do_identifier): Ditto for error(). 1062618334Speter 1062790075Sobrien * pt.c (convert_nontype_argument): Ditto for cp_error(). 1062890075Sobrien (convert_template_argument): Ditto for cp_pedwarn(). 1062918334Speter 1063090075Sobrien2000-03-11 Jason Merrill <jason@casey.cygnus.com> 1063118334Speter 1063290075Sobrien * exception.cc (__check_null_eh_spec): New fn. 1063390075Sobrien * except.c (expand_end_eh_spec): Call it if the spec is throw(). 1063418334Speter 1063590075Sobrien2000-03-10 Jason Merrill <jason@casey.cygnus.com> 1063618334Speter 1063790075Sobrien * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 1063890075Sobrien * except.c (expand_end_eh_spec): Add the return type. 1063990075Sobrien * rtti.c (throw_bad_cast): Add the parmtypes. 1064090075Sobrien (throw_bad_typeid): Likewise. 1064118334Speter 1064290075Sobrien * semantics.c (expand_stmt): Only leave out rtl for unused 1064390075Sobrien artificials, and set DECL_IGNORED_P on them as well. 1064490075Sobrien * decl.c (wrapup_globals_for_namespace): Likewise. 1064518334Speter 1064690075Sobrien2000-03-09 Nathan Sidwell <nathan@codesourcery.com> 1064718334Speter 1064890075Sobrien * decl.c (maybe_commonize_var): Skip all artificial decls. 1064990075Sobrien * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 1065018334Speter 1065190075Sobrien2000-03-10 Jason Merrill <jason@casey.cygnus.com> 1065218334Speter 1065390075Sobrien * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 1065490075Sobrien * cp-tree.h: Declare flag_enforce_eh_specs. 1065590075Sobrien * decl.c (store_parm_decls, finish_function): Check it. 1065618334Speter 1065790075Sobrien C library functions don't throw. 1065890075Sobrien * Makefile.in (cfns.h): New target. 1065990075Sobrien (except.o): Depend on it. 1066090075Sobrien * Make-lang.in (cc1plus): Depend on cfns.gperf. 1066190075Sobrien * cfns.gperf: New file. 1066290075Sobrien * cfns.h: Generated. 1066390075Sobrien * except.c: Include it. 1066490075Sobrien (nothrow_libfn_p): New fn. 1066590075Sobrien * decl.c (grokfndecl): Use it. 1066690075Sobrien * cp-tree.h: Declare it. 1066718334Speter 1066890075Sobrien * decl.c (push_overloaded_decl_1, auto_function, 1066990075Sobrien define_function): Lose. 1067090075Sobrien (build_library_fn_1): New static fn. 1067190075Sobrien (builtin_function): Use it. 1067290075Sobrien (get_atexit_node): Use build_library_fn_ptr. 1067390075Sobrien (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 1067490075Sobrien build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 1067590075Sobrien push_void_library_fn, push_throw_library_fn): New fns. 1067690075Sobrien * cp-tree.h: Declare them. 1067790075Sobrien (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 1067890075Sobrien (throw_bad_cast_node, throw_bad_typeid_node): Lose. 1067990075Sobrien * except.c (init_exception_processing, call_eh_info, do_pop_exception, 1068090075Sobrien (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 1068190075Sobrien * rtti.c (build_runtime_decl): Lose. 1068290075Sobrien (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 1068390075Sobrien build_dynamic_cast_1, expand_si_desc, expand_class_desc, 1068490075Sobrien expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 1068518334Speter 1068690075Sobrien * call.c (build_call): Remove result_type parm. 1068790075Sobrien Call mark_used on unused artificial fns. 1068890075Sobrien * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 1068918334Speter 1069090075Sobrien2000-03-09 Jason Merrill <jason@casey.cygnus.com> 1069118334Speter 1069290075Sobrien * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 1069390075Sobrien appropriate. 1069490075Sobrien * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 1069590075Sobrien * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 1069690075Sobrien TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 1069790075Sobrien * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 1069890075Sobrien expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 1069990075Sobrien expand_generic_desc): Likewise. 1070018334Speter 1070190075Sobrien2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 1070218334Speter 1070390075Sobrien * exception.cc (__cp_pop_exception): Cleanup the original object. 1070418334Speter 1070590075Sobrien2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 1070618334Speter 1070790075Sobrien * decl.c (grok_op_properties): Merge conversion to void warning 1070890075Sobrien with other silly op warnings. 1070918334Speter 1071090075Sobrien2000-03-08 Jason Merrill <jason@casey.cygnus.com> 1071118334Speter 1071290075Sobrien * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 1071390075Sobrien array CONSTRUCTOR elements. Don't use expr_tree_cons. 1071418334Speter 1071590075Sobrien2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 1071618334Speter 1071790075Sobrien * decl.c (cp_make_fname_decl): New function. 1071890075Sobrien (wrapup_globals_for_namespace): Don't emit unused static vars. 1071990075Sobrien (init_decl_processing): Remove comment about use of 1072090075Sobrien array_domain_type. Set make_fname_decl. 1072190075Sobrien (cp_finish_decl): Remove __FUNCTION__ nadgering. 1072290075Sobrien * semantics.c (begin_compound_stmt): Remove 1072390075Sobrien current_function_name_declared flagging. 1072490075Sobrien (expand_stmt): Don't emit unused local statics. 1072590075Sobrien * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 1072690075Sobrien specially. 1072718334Speter 1072890075Sobrien2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 1072918334Speter 1073090075Sobrien * typeck.c (convert_for_assignment): Don't look at array 1073190075Sobrien initializer. 1073290075Sobrien * call.c (convert_like_real): Likewise. 1073350397Sobrien 1073490075Sobrien2000-03-07 Jason Merrill <jason@casey.cygnus.com> 1073550397Sobrien 1073690075Sobrien Add initial support for '\uNNNN' specifier. 1073790075Sobrien * lex.c (read_ucs): New fn. 1073890075Sobrien (readescape, skip_white_space): Call it. 1073990075Sobrien (is_extended_char, is_extended_char_1): New fns. 1074090075Sobrien (utf8_extend_token): New fn, #if 0'd out. 1074190075Sobrien (real_yylex): Treat extended chars like letters. 1074250397Sobrien 1074390075Sobrien * search.c (note_debug_info_needed): Walk the bases even if we 1074490075Sobrien weren't deferring the type itself. 1074550397Sobrien 1074690075Sobrien2000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1074750397Sobrien 1074890075Sobrien * decl2.c (finish_objects): Constify a char*. 1074950397Sobrien 1075090075Sobrien * method.c (emit_thunk): Likewise. 1075150397Sobrien 1075290075Sobrien2000-03-06 Nathan Sidwell <nathan@codesourcery.com> 1075350397Sobrien 1075490075Sobrien * typeck.c (dubious_conversion_warnings): Look through 1075590075Sobrien REFERENCE_TYPE. 1075650397Sobrien 1075790075SobrienMon Mar 6 08:46:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1075818334Speter 1075990075Sobrien * class.c (dfs_modify_vtables): I is now unsigned. 1076090075Sobrien (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 1076190075Sobrien (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 1076290075Sobrien * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 1076390075Sobrien * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 1076490075Sobrien * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 1076590075Sobrien * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 1076690075Sobrien Call integer_all_onesp. 1076790075Sobrien * typeck2.c (process_init_constructor): Use compare_tree_int. 1076818334Speter 1076990075Sobrien * lang-specs.h (as): Don't call if -syntax-only. 1077018334Speter 1077190075Sobrien2000-03-06 Mark Mitchell <mark@codesourcery.com> 1077218334Speter 1077390075Sobrien * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 1077490075Sobrien RTL_EXPR_HAS_NO_SCOPE after all. 1077518334Speter 1077690075Sobrien2000-03-05 Mark Mitchell <mark@codesourcery.com> 1077718334Speter 1077890075Sobrien * expr.c (cplus_expand_expr, case STMT_EXPR): Use 1077990075Sobrien expand_start_stmt_expr and expand_end_stmt_expr directly. Set 1078090075Sobrien RTL_EXPR_HAS_NO_SCOPE. 1078118334Speter 1078290075Sobrien * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 1078350397Sobrien later. 1078418334Speter 1078590075Sobrien * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 1078618334Speter 1078790075Sobrien2000-03-05 Nathan Sidwell <nathan@codesourcery.com> 1078818334Speter 1078990075Sobrien * call.c (convert_like): Macrofy. 1079090075Sobrien (convert_like_with_context): New macro. 1079190075Sobrien (convert_like_real): Renamed from convert_like. Add calling 1079290075Sobrien context parameters, for diagnostics. Add recursive flag. Call 1079390075Sobrien dubious_conversion_warnings for outer conversion. 1079490075Sobrien (build_user_type_conversion): Use convert_like_with_context. 1079590075Sobrien (build_over_call): Likewise. Don't warn about dubious 1079690075Sobrien conversions here. Adjust convert_default_arg calls. 1079790075Sobrien (convert_default_arg): Add context parameters for diagnostics. 1079890075Sobrien Pass through to convert_like_with_context. 1079990075Sobrien * cp-tree.h (convert_default_arg): Add context parameters. 1080090075Sobrien (dubious_conversion_warnings): Prototype new function. 1080190075Sobrien * typeck.c (convert_arguments): Adjust convert_default_arg call. 1080290075Sobrien (dubious_conversion_warnings): New function, broken 1080390075Sobrien out of convert_for_assignment. 1080490075Sobrien (convert_for_assignment): Adjust. 1080518334Speter 1080690075Sobrien2000-03-03 Jason Merrill <jason@casey.cygnus.com> 1080718334Speter 1080890075Sobrien * decl2.c (key_method): Break out from... 1080990075Sobrien (import_export_vtable, import_export_class): ...here. 1081018334Speter 1081190075Sobrien * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 1081290075Sobrien * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 1081318334Speter 1081490075Sobrien * search.c (note_debug_info_needed, dfs_debug_mark, 1081590075Sobrien dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 1081690075Sobrien * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 1081718334Speter 1081890075Sobrien2000-03-03 Nathan Sidwell <nathan@codesourcery.com> 1081918334Speter 1082090075Sobrien * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 1082190075Sobrien typos. 1082218334Speter 1082390075Sobrien2000-03-02 Mark Mitchell <mark@codesourcery.com> 1082418334Speter 1082590075Sobrien * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 1082690075Sobrien (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 1082790075Sobrien (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 1082890075Sobrien (lang_type): Split gets_new into has_new and has_array_new. 1082990075Sobrien (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1083090075Sobrien (TYPE_GETS_NEW): Split into ... 1083190075Sobrien (TYPE_HAS_NEW_OPERATOR): ... this, and ... 1083290075Sobrien (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 1083390075Sobrien (DECL_ARRAY_DELETE_OPERATOR_P): New macro 1083490075Sobrien (build_op_new_call): Don't declare. 1083590075Sobrien (build_new_1): Likewise. 1083690075Sobrien * call.c (build_op_new_call): Remove. 1083790075Sobrien * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 1083890075Sobrien instead of TYPE_NEEDS_DESTRUCTOR. 1083990075Sobrien (finish_struct_bits): Likewise. 1084090075Sobrien (add_implicitly_declared_members): Likewise. 1084190075Sobrien (check_field_decl): Likewise. 1084290075Sobrien (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 1084390075Sobrien correctly under the new ABI. 1084490075Sobrien * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 1084590075Sobrien instead of TYPE_NEEDS_DESTRUCTOR. 1084690075Sobrien (initialize_local_var): Likewise. 1084790075Sobrien (destroy_local_var): Likewise. 1084890075Sobrien (cp_finish_decl): Likewise. 1084990075Sobrien (register_dtor_fn): Likewise. 1085090075Sobrien (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 1085190075Sobrien TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 1085290075Sobrien TYPE_VEC_DELETE_TAKES_SIZE here. 1085390075Sobrien (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 1085490075Sobrien TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 1085590075Sobrien (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1085690075Sobrien (finish_destructor_body): Likewise. 1085790075Sobrien (maybe_build_cleanup_1): Likewise. 1085890075Sobrien * decl2.c (do_static_destruction): Likewise. 1085990075Sobrien * init.c (build_new_1): Make it static. 1086090075Sobrien (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1086190075Sobrien (expand_cleanup_for_base): Likewise. 1086290075Sobrien (get_cookie_size): New function. 1086390075Sobrien (build_new_1): Handle array-new cookies correctly under the new 1086490075Sobrien ABI. 1086590075Sobrien (build_vec_delete_1): Likewise. 1086690075Sobrien (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1086790075Sobrien (build_delete): Likewise. 1086890075Sobrien (build_vec_delete): Handle array-new cookies correctly under the new 1086990075Sobrien ABI. 1087090075Sobrien * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1087190075Sobrien * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 1087290075Sobrien TYPE_HAS_ARRAY_NEW_OPERATOR. 1087390075Sobrien * ptree.c (print_lang_type): Check them. 1087490075Sobrien * search.c (context_for_name_lookup): Fix typo in comment. 1087590075Sobrien (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1087690075Sobrien * tree.c (break_out_cleanups): Likewise. 1087790075Sobrien (build_cplus_array_test_1): Likewise. 1087890075Sobrien (cp_build_qualified_type_real): Likewise. 1087990075Sobrien * typeck.c (complete_type): Likewise. 1088018334Speter 1088190075Sobrien * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 1088290075Sobrien the command-line, not the end. 1088318334Speter 1088490075Sobrien2000-03-01 Jason Merrill <jason@casey.cygnus.com> 1088518334Speter 1088690075Sobrien * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 1088718334Speter 1088890075Sobrien2000-03-02 Tom Tromey <tromey@cygnus.com> 1088918334Speter 1089090075Sobrien * cp-tree.h (build_java_class_ref): Declare. 1089190075Sobrien * init.c (build_java_class_ref): No longer static. 1089290075Sobrien * except.c (expand_throw): Generate a Java-style `throw' if the 1089390075Sobrien thrown object is a "Java" object. 1089490075Sobrien (initialize_handler_parm): Generate a Java-style lookup of 1089590075Sobrien exception info if the caught object is a "Java" object. 1089690075Sobrien (catch_language, catch_language_init): New globals. 1089790075Sobrien (decl_is_java_type): New function. 1089890075Sobrien (expand_start_catch_block): Don't call push_eh_info() or 1089990075Sobrien push_eh_cleanup() when handling a Java-style "catch". Pass Java 1090090075Sobrien class reference to build_catch_block. 1090118334Speter 1090290075SobrienThu Mar 2 13:32:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1090318334Speter 1090490075Sobrien * typeck.c (comptypes): Treat sizetype like its language equivalent. 1090518334Speter 1090690075Sobrien2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 1090718334Speter 1090890075Sobrien * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 1090990075Sobrien to merge reference/pointer code and fix incorrect warnings. 1091018334Speter 1091190075Sobrien2000-02-29 Jason Merrill <jason@casey.cygnus.com> 1091218334Speter 1091390075Sobrien * search.c (protected_accessible_p): Use context_for_name_lookup. 1091418334Speter 1091590075Sobrien * init.c (construct_virtual_bases): Fix thinko. 1091690075Sobrien * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 1091718334Speter 1091890075Sobrien2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 1091918334Speter 1092090075Sobrien * decl.c (current_function_decl): Move to toplev.c. 1092118334Speter 1092290075Sobrien2000-02-29 Nathan Sidwell <nathan@codesourcery.com> 1092318334Speter 1092490075Sobrien * pt.c (fn_type_unification): Unify return type, whenever 1092590075Sobrien provided. 1092690075Sobrien (get_bindings_real): Only pass return type when necessary. 1092790075Sobrien Remove explicit return type check. 1092890075Sobrien * class.c (resolve_address_of_overloaded_function): Pass desired 1092990075Sobrien return type to fn_type_unification. 1093018334Speter 1093190075SobrienMon Feb 28 08:15:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1093218334Speter 1093390075Sobrien * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 1093490075Sobrien DECL_FIELD_SIZE. 1093590075Sobrien (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 1093690075Sobrien DECL_FIELD_SIZE. 1093790075Sobrien * rtti.c (expand_class_desc): Likewise. 1093890075Sobrien * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 1093990075Sobrien (THUNK_VCALL_OFFSET): Likewise. 1094090075Sobrien (THUNK_DELTA): Reflect changes in ../tree.h. 1094118334Speter 1094290075Sobrien2000-02-28 Jason Merrill <jason@casey.cygnus.com> 1094352284Sobrien 1094490075Sobrien * search.c (protected_accessible_p): Also allow the access if 1094590075Sobrien the member is public in DERIVED. Lose TYPE parm. 1094690075Sobrien (friend_accessible_p): Lose TYPE parm. 1094790075Sobrien (accessible_p): Adjust. 1094818334Speter 1094990075SobrienSun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1095018334Speter 1095190075Sobrien * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 1095290075Sobrien on things that are not sizes; ssize_binop deleted. 1095390075Sobrien Call size_diffop when appropriate. 1095490075Sobrien (dfs_build_vcall_offset_vtbl_entries): Likewise. 1095590075Sobrien (build_primary_vtable, build_secondary_vtable): Likewise. 1095690075Sobrien (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 1095790075Sobrien Variable I is HOST_WIDE_INT. 1095890075Sobrien (get_vfield_offset): Pass proper types to size_binop. 1095990075Sobrien (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 1096090075Sobrien (finish_struct_1): Likewise. 1096190075Sobrien (skip_rtti_stuff): Arg N is now pointer to signed. 1096290075Sobrien (layout_class_type): Use size_zero_node. 1096390075Sobrien * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 1096490075Sobrien * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 1096590075Sobrien * decl.c (complete_arry_type): Pass proper types to size_binop. 1096690075Sobrien (xref_basetypes): BINFO_OFFSET is sizetype. 1096790075Sobrien * error.c (dump_expr): Don't use size_binop non-sizes. 1096890075Sobrien * expr.c (cplus_expand_constant): Pass proper types to size_binop. 1096990075Sobrien * init.c (construct_virtual_bases): Fix type error. 1097090075Sobrien (build_vec_delete_1): Pass proper type to size_binop and don't 1097190075Sobrien fold result. 1097290075Sobrien * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 1097390075Sobrien * rtti.c (get_base_offset): Pass proper type to size_binop. 1097490075Sobrien * search.c (dfs_find_vbases): Fix type error. 1097590075Sobrien (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 1097690075Sobrien (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 1097790075Sobrien * tree.c (debug_binfo): Variable N is signed. 1097890075Sobrien Use HOST_WIDE_INT_PRINT_DEC. 1097990075Sobrien * typeck.c (comptypes): sizetype is same as equivalent integer type. 1098090075Sobrien (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 1098190075Sobrien size_one_node and size_zero_node. 1098290075Sobrien (c_alignof): Use size_one_node. 1098390075Sobrien (build_component_addr): Pass proper types to size_binop. 1098490075Sobrien (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 1098518334Speter 1098690075Sobrien2000-02-26 Jason Merrill <jason@casey.cygnus.com> 1098718334Speter 1098890075Sobrien Implement class scope using-declarations for functions. 1098990075Sobrien * class.c (handle_using_decl): Call add_method for used functions. 1099090075Sobrien Use IDENTIFIER_CLASS_VALUE to check for conflicts. 1099190075Sobrien (add_method): Used functions are hidden by local functions. 1099290075Sobrien (check_bases_and_members): Handle using-decls before finalizing 1099390075Sobrien CLASSTYPE_METHOD_VEC. 1099490075Sobrien * call.c (add_function_candidate): Add ctype parm; if non-zero, 1099590075Sobrien override the type of 'this' accordingly. 1099690075Sobrien (add_template_candidate, add_template_candidate_real): Add ctype parm. 1099790075Sobrien (convert_class_to_reference, build_user_type_conversion_1, 1099890075Sobrien build_new_function_call, build_object_call, build_new_op, 1099990075Sobrien build_new_method_call): Pass ctype parm. 1100018334Speter 1100190075Sobrien * search.c (lookup_member): Put rval_binfo, not basetype_path, in 1100290075Sobrien the baselink. 1100390075Sobrien * call.c (convert_class_to_reference, build_user_type_conversion_1, 1100490075Sobrien build_new_function_call, build_object_call, build_new_op, 1100590075Sobrien build_new_method_call, build_op_delete_call): Don't get basetype_path 1100690075Sobrien from a baselink. 1100790075Sobrien * typeck.c (build_component_ref): Likewise. 1100890075Sobrien * init.c (build_offset_ref): Likewise. 1100990075Sobrien (resolve_offset_ref): Don't call enforce_access. 1101090075Sobrien Call build_scoped_ref. 1101190075Sobrien * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 1101290075Sobrien would cause an error or if -pedantic. 1101390075Sobrien * class.c (alter_access): Lose binfo parm. 1101418334Speter 1101590075Sobrien2000-02-26 Mark Mitchell <mark@codesourcery.com> 1101618334Speter 1101790075Sobrien * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 1101890075Sobrien types. 1101918334Speter 1102090075Sobrien2000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 1102118334Speter 1102290075Sobrien * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 1102390075Sobrien pseudo_type_info creation into the std namespace 1102418334Speter 1102590075Sobrien2000-02-26 Mark Mitchell <mark@codesourcery.com> 1102618334Speter 1102790075Sobrien * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 1102890075Sobrien (import_export_class): Remove declaration. 1102990075Sobrien * decl2.c (import_export_class): Make it static. 1103090075Sobrien * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 1103190075Sobrien PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 1103290075Sobrien EXPR_WITH_FILE_LOCATION. 1103390075Sobrien * lex.c (check_newline): Tweak filename/lineno setting. 1103490075Sobrien * semantics.c (begin_while_stmt): Fix typo in comment. 1103518334Speter 1103690075SobrienSat Feb 26 19:50:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1103718334Speter 1103890075Sobrien * lang-options.h (-fmessage-length=): Add missing option. 1103918334Speter 1104090075Sobrien * Make-lang.in (CXX_SRCS): Add .h files and sort list. 1104118334Speter 1104290075Sobrien2000-02-26 Zack Weinberg <zack@wolery.cumb.org> 1104318334Speter 1104490075Sobrien * Make-lang.in: Delete refs to LIBGCC2_DEPS. 1104518334Speter 1104690075SobrienFri Feb 25 14:52:33 2000 Jim Wilson <wilson@cygnus.com> 1104718334Speter 1104890075Sobrien * optimize.c (expand_call_inline): Emit the return label before 1104990075Sobrien evaluating the return value. 1105018334Speter 1105190075Sobrien2000-02-24 Mark Mitchell <mark@codesourcery.com> 1105218334Speter 1105390075Sobrien * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 1105490075Sobrien than duplicating functionality here. 1105590075Sobrien * optimize.c: Include input.h. 1105690075Sobrien (expand_call_inline): Use push_srcloc and pop_srcloc. 1105790075Sobrien * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 1105890075Sobrien * parse.c: Regenerated. 1105990075Sobrien * Makefile.in (lex.o): Depend on input.h. 1106090075Sobrien (optimize.o): Likewise. 1106118334Speter 1106290075Sobrien2000-02-24 Nathan Sidwell <nathan@codesourcery.com> 1106318334Speter 1106490075Sobrien * decl.c (grokdeclarator): Diagnose qualifiers on non-member 1106590075Sobrien function type, rather than ICE. 1106618334Speter 1106790075Sobrien2000-02-23 Jason Merrill <jason@casey.cygnus.com> 1106818334Speter 1106990075Sobrien * decl.c (grokdeclarator): Call decl_type_access_control. 1107090075Sobrien * parse.y (parse_end_decl): Don't call decl_type_access_control if 1107190075Sobrien decl is null. 1107218334Speter 1107390075Sobrien2000-02-23 Nathan Sidwell <nathan@codesourcery.com> 1107452284Sobrien 1107590075Sobrien * decl.c (decls_match): Remove obsolete static member nadgering. 1107618334Speter 1107790075Sobrien2000-02-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1107818334Speter 1107990075Sobrien * decl.c (grokdeclarator): Change ANSI to ISO. 1108090075Sobrien * lex.c (consume_string, readescape, do_identifier): Likewise. 1108190075Sobrien (parse_float, real_yylex): Likewise. 1108290075Sobrien * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 1108390075Sobrien (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 1108490075Sobrien new_type_id, maybe_label_decls, simple_stmt, 1108590075Sobrien for.init.statement): Likewise. 1108690075Sobrien * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 1108790075Sobrien * semantics.c (finish_named_return_value): Likewise. 1108890075Sobrien * parse.c: Regenerate. 1108918334Speter 1109090075Sobrien2000-02-21 Mark Mitchell <mark@codesourcery.com> 1109118334Speter 1109290075Sobrien * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 1109390075Sobrien (CPTI_CLASS_STAR_TYPE): Remove. 1109490075Sobrien (vtable_index_type): Likewise. 1109590075Sobrien (class_star_type_node): Remove. 1109690075Sobrien (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 1109790075Sobrien (build_binary_op_nodefault): Remove. 1109890075Sobrien * call.c (build_new_op): Use build_binary_op instead of 1109990075Sobrien build_binary_op_nodefault. 1110090075Sobrien * decl.c (init_decl_processing): Remove class_star_type_node 1110190075Sobrien initialization. Make delta_type_node ptrdiff_type_node under the 1110290075Sobrien new ABI. Initialize vtable_index_type. 1110390075Sobrien (build_ptrmemfunc_type): Build different structures for the new 1110490075Sobrien ABI. 1110590075Sobrien (build_enumerator): Use build_binary_op instead of 1110690075Sobrien build_binary_op_nodefault. 1110790075Sobrien * method.c (build_overload_value): Mangle pointers-to-members 1110890075Sobrien appropriately under the new ABI. 1110990075Sobrien * typeck.c (build_array_ref): Use build_binary_op instead of 1111090075Sobrien build_binary_op_nodefault. 1111190075Sobrien (get_member_function_from_ptrfunc): Adjust for the new ABI. 1111290075Sobrien (build_binary_op_nodefault): Rename to ... 1111390075Sobrien (build_binary_op): ... this. Remove old version. Adjust for 1111490075Sobrien pointer-to-member comparisons under the new ABI. 1111590075Sobrien (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 1111690075Sobrien (build_ptrmemfunc): Adjust for the new ABI. 1111790075Sobrien (expand_ptrmemfunc_cst): Likewise. 1111890075Sobrien (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 1111990075Sobrien (pfn_from_ptrmemfunc): Adjust for the new ABI. 1112018334Speter 1112190075Sobrien2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 1112218334Speter 1112390075Sobrien * call.c (build_object_call): Compress consecutive calls to 1112490075Sobrien cp_error. 1112590075Sobrien (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 1112690075Sobrien (build_op_delete_call): Adjust message formatting. 1112718334Speter 1112890075Sobrien * class.c (check_bases): Compress consecutive calls to 1112990075Sobrien cp_pedwarn. 1113090075Sobrien (finish_struct_anon): Say 'ISO C++'. 1113118334Speter 1113290075Sobrien * decl.c (start_decl): Same here. 1113390075Sobrien (grok_reference_init): Likewise. 1113490075Sobrien (grokfndecl): Correct message formatting. 1113590075Sobrien (grokfndecl): Improve diagnostic. 1113690075Sobrien (check_static_variable_definition): Likewise. Say 'ISO C++' 1113790075Sobrien (compute_array_index_type): Say 'ISO C++' 1113890075Sobrien (create_array_type_for_decl): Compress consecutive calls to 1113990075Sobrien cp_error. 1114090075Sobrien (grokdeclarator): Say 'ISO C++' 1114190075Sobrien (grok_op_properties): Likewise. 1114218334Speter 1114390075Sobrien * decl2.c (delete_sanity): Clairify diagnostic. 1114490075Sobrien (check_member_template): Same here. 1114590075Sobrien (grok_function_init): Use consistent terminology. 1114618334Speter 1114790075Sobrien * expr.c (do_case): Say 'ISO C++' 1114818334Speter 1114990075Sobrien * friend.c (do_friend): Compress consecutive calls to warning. 1115018334Speter 1115190075Sobrien2000-02-20 Mark Mitchell <mark@codesourcery.com> 1115218334Speter 1115390075Sobrien * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 1115490075Sobrien * class.c (build_secondary_vtable): Reorganize. Don't create a 1115590075Sobrien new vtable under the new ABI. 1115690075Sobrien (layout_vtable_decl): Don't add num_extra_vtbl_entries when 1115790075Sobrien computing the size. 1115890075Sobrien (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 1115990075Sobrien the initializing elements. 1116090075Sobrien (initialize_vtable): New function. 1116190075Sobrien (dfs_finish_vtbls): Use it. 1116290075Sobrien (dfs_accumulate_vtbl_inits): New function. 1116390075Sobrien (finish_vtbls): Merge primary and secondary vtables under the new 1116490075Sobrien ABI. 1116590075Sobrien (finish_struct_1): Remove redundant call to layout_vtable_decl. 1116690075Sobrien * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 1116790075Sobrien aren't VAR_DECLs. 1116818334Speter 1116990075Sobrien * class.c (build_vtable): New function, split out from ... 1117090075Sobrien (get_vtable_decl): ... here, and ... 1117190075Sobrien (build_secondary_vtable): ... here. 1117218334Speter 1117390075Sobrien * pt.c (tsubst_decl): Fix formatting. 1117418334Speter 1117590075SobrienSat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1117618334Speter 1117790075Sobrien * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 1117890075Sobrien (avoid_overlap, build_base_field): Likewise. 1117990075Sobrien (build_base_field, build_base_fields, is_empty_class): 1118090075Sobrien Test DECL_SIZE with integer_zero. 1118190075Sobrien (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 1118290075Sobrien * cp-tree.h (struct lang_type): New field size_unit. 1118390075Sobrien (CLASSTYPE_SIZE_UNIT): New macro. 1118490075Sobrien * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 1118590075Sobrien (cp_finish_decl): Delete -Wlarger-than processing. 1118690075Sobrien * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 1118790075Sobrien * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 1118890075Sobrien * tree.c (make_binfo): binfo vector is one entry longer. 1118990075Sobrien (walk_tree): Walk DECL_SIZE_UNIT. 1119018334Speter 1119190075Sobrien2000-02-19 Mark Mitchell <mark@codesourcery.com> 1119218334Speter 1119390075Sobrien * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 1119490075Sobrien comment. 1119590075Sobrien (build_vtable_entry): Don't assume all vtable entries are 1119650397Sobrien functions. 1119790075Sobrien (build_vtbl_initializer): Adjust accordingly. 1119890075Sobrien (get_vtable_decl): Fix formatting. 1119918334Speter 1120090075Sobrien2000-02-18 Jason Merrill <jason@casey.cygnus.com> 1120118334Speter 1120290075Sobrien * semantics.c (deferred_type_access_control): Walk the entire 1120390075Sobrien type_lookups list. 1120490075Sobrien (save_type_access_control): Rename from 1120590075Sobrien initial_deferred_type_access_control. Just remember the value. 1120690075Sobrien (decl_type_access_control): New fn. 1120790075Sobrien (begin_function_definition): Use deferred_type_access_control, after 1120890075Sobrien we've started the function. Set type_lookups to error_mark_node. 1120990075Sobrien * parse.y (frob_specs, fn.def1): Adjust. 1121090075Sobrien (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 1121190075Sobrien (parse_end_decl, parse_bitfield0, parse_method): New fns. 1121290075Sobrien (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 1121390075Sobrien (after_type_component_declarator0): Likewise. 1121490075Sobrien (after_type_component_declarator): Likewise. 1121590075Sobrien (notype_component_declarator): Likewise. 1121650397Sobrien * cp-tree.h: Adjust. 1121718334Speter 1121890075Sobrien * decl.c (redeclaration_error_message): Allow redeclaration of 1121990075Sobrien namespace-scope decls. 1122018334Speter 1122190075Sobrien2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 1122218334Speter 1122390075Sobrien * typeck2.c (my_friendly_abort): Use GCCBUGURL. 1122418334Speter 1122590075Sobrien2000-02-17 Mark Mitchell <mark@codesourcery.com> 1122618334Speter 1122790075Sobrien * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 1122890075Sobrien * decl2.c (grokclassfn): Likewise. 1122918334Speter 1123090075Sobrien * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 1123118334Speter 1123290075Sobrien * decl2.c (lang_decode_option): Don't set default message length 1123390075Sobrien here. 1123490075Sobrien * lex.c (lang_init_options): Set it here. 1123518334Speter 1123690075Sobrien2000-02-16 Mark Mitchell <mark@codesourcery.com> 1123718334Speter 1123890075Sobrien Make DECL_CONTEXT mean the class in which a member function was 1123990075Sobrien declared, even for a virtual function. 1124090075Sobrien * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 1124190075Sobrien (DECL_FRIEND_CONTEXT): New macro. 1124290075Sobrien (DECL_REAL_CONTEXT): Remove. 1124390075Sobrien (SET_DECL_FRIEND_CONTEXT): Likewise. 1124490075Sobrien (DECL_VIRTUAL_CONTEXT): Adjust. 1124590075Sobrien (DECL_CLASS_SCOPE_P): Use TYPE_P. 1124690075Sobrien (add_friends): Remove. 1124790075Sobrien (hack_decl_function_context): Likewise. 1124890075Sobrien * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 1124990075Sobrien CP_DECL_CONTEXT. 1125090075Sobrien (build_over_call): Fix indentation. Use DECL_CONTEXT 1125190075Sobrien instead of DECL_CLASS_CONTEXT. 1125290075Sobrien * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 1125390075Sobrien (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 1125490075Sobrien (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1125590075Sobrien (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 1125690075Sobrien (build_base_field): Likewise. 1125750397Sobrien (finish_struct_1): Likewise. 1125890075Sobrien (build_self_reference): Likewise. 1125990075Sobrien * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 1126090075Sobrien DECL_REAL_CONTEXT. 1126190075Sobrien (pushtag): Use decl_function_context, not 1126250397Sobrien hack_decl_function_context. 1126390075Sobrien (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 1126490075Sobrien (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 1126590075Sobrien (pushdecl): Remove bogus code. 1126690075Sobrien (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 1126790075Sobrien (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 1126890075Sobrien (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1126990075Sobrien Use decl_function_context, nothack_decl_function_context. 1127090075Sobrien (grokvardecl): Don't set DECL_CLASS_CONTEXT. 1127190075Sobrien (grokdeclarator): Likewise. Use decl_function_context, not 1127290075Sobrien hack_decl_function_context. 1127390075Sobrien (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 1127490075Sobrien (start_function): Use DECL_FRIEND_CONTEXT, not 1127590075Sobrien DECL_CLASS_CONTEXT. Use decl_function_context, not 1127690075Sobrien hack_decl_function_context. 1127790075Sobrien (finish_function): Use decl_function_context, not 1127890075Sobrien hack_decl_function_context. 1127990075Sobrien (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 1128090075Sobrien DECL_CLASS_CONTEXT. 1128190075Sobrien (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 1128290075Sobrien (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 1128390075Sobrien (grokfield): Likewise. 1128490075Sobrien (finish_builtin_type): Likewise. 1128590075Sobrien (finish_vtable_vardec): Use decl_function_context, not 1128690075Sobrien hack_decl_function_context. 1128790075Sobrien (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1128890075Sobrien (start_static_initialization_or_destruction): Likewise. 1128990075Sobrien (finish_static_initialization_or_destruction): Likewise. 1129090075Sobrien (mark_used): Adjust logic for deciding when to synthesize methods. 1129190075Sobrien * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 1129290075Sobrien DECL_REAL_CONTEXT. 1129390075Sobrien * error.c (dump_function_decl): Use DECL_CONTEXT, not 1129490075Sobrien DECL_CLASS_CONTEXT. 1129590075Sobrien * friend.c (is_friend): Likewise. 1129690075Sobrien (add_friends): Remove. 1129790075Sobrien (do_friend): Use SET_DECL_FRIEND_CONTEXT. 1129890075Sobrien * lex.c (begin_definition_of_inclass_inline): Use 1129990075Sobrien decl_function_context, not hack_decl_function_context. 1130090075Sobrien (process_next_inline): Likewise. 1130190075Sobrien (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 1130290075Sobrien * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 1130390075Sobrien DECL_CLASSS_CONTEXT. 1130490075Sobrien (hack_identifier): Likewise. 1130590075Sobrien (synthesize_method): Use decl_function_context, not 1130690075Sobrien hack_decl_function_context. 1130790075Sobrien * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 1130890075Sobrien DECL_REAL_CONTEXT. 1130990075Sobrien (is_member_template): Use decl_function_context, not 1131090075Sobrien hack_decl_function_context. Use DECL_CONTEXT, not 1131190075Sobrien DECL_CLASS_CONTEXT. 1131290075Sobrien (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 1131390075Sobrien DECL_CLASS_CONTEXT. 1131490075Sobrien (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 1131590075Sobrien DECL_REAL_CONTEXT. 1131690075Sobrien (push_template_decl_real): Likewise. 1131790075Sobrien (instantiate_class_template): Don't call add_friends. 1131890075Sobrien (tsubst_default_argument): Use DECL_CONTEXT, not 1131990075Sobrien DECL_REAL_CONTEXT. 1132090075Sobrien (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 1132190075Sobrien Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1132290075Sobrien (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 1132390075Sobrien DECL_CLASS_CONTEXT. 1132490075Sobrien * repo.c (repo_inline_used): Likewise. 1132590075Sobrien * search.c (current_scope): Adjust for new _CONTEXT macros. 1132690075Sobrien (context_for_name_lookup): Use CP_DECL_CONTEXT, not 1132790075Sobrien DECL_REAL_CONTEXT. 1132890075Sobrien (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1132990075Sobrien (lookup_fnfields_here):Likewise. 1133090075Sobrien (check_final_overrider): Likewise. 1133190075Sobrien (init_vbase_pointers): Likewise. 1133290075Sobrien (virtual_context): Likewise. 1133390075Sobrien * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 1133490075Sobrien (expand_body): Use decl_function_context, not 1133590075Sobrien hack_decl_function_context. 1133690075Sobrien * tree.c (hack_decl_function_context): Remove. 1133790075Sobrien * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 1133890075Sobrien DECL_CLASS_CONTEXT. 1133990075Sobrien * typeck2.c (error_not_base_type): Likewise. 1134018334Speter 1134190075Sobrien2000-02-15 Jason Merrill <jason@casey.cygnus.com> 1134218334Speter 1134390075Sobrien * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 1134418334Speter 1134590075Sobrien2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1134618334Speter 1134790075Sobrien * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 1134818334Speter 1134990075Sobrien2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 1135018334Speter 1135190075Sobrien * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 1135218334Speter 1135390075Sobrien2000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 1135418334Speter 1135590075Sobrien * decl2.c (lang_decode_option): Enable automatic line wrapping. 1135618334Speter 1135790075Sobrien2000-02-13 Jason Merrill <jason@casey.cygnus.com> 1135818334Speter 1135990075Sobrien * parse.y (frob_specs): Split out... 1136090075Sobrien (parse_decl): From here. 1136190075Sobrien (fn.def2): Call initial_deferred_type_access_control. 1136290075Sobrien (after_type_component_declarator0): Call frob_specs. 1136390075Sobrien (notype_component_declarator0): Likewise. 1136490075Sobrien * search.c (friend_accessible_p): Nested classes are friends of their 1136590075Sobrien enclosing classes. 1136618334Speter 1136790075Sobrien2000-02-10 Mark Mitchell <mark@codesourcery.com> 1136818334Speter 1136990075Sobrien * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 1137090075Sobrien used to create an implicit temporary. 1137118334Speter 1137290075Sobrien * class.c (dfs_modify_vtables): Tweak calculation of functions to 1137390075Sobrien override. 1137418334Speter 1137590075Sobrien2000-02-08 Nathan Sidwell <nathan@acm.org> 1137618334Speter 1137790075Sobrien * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 1137890075Sobrien strip array element qualifiers too. 1137918334Speter 1138090075Sobrien2000-02-07 Mark Mitchell <mark@codesourcery.com> 1138118334Speter 1138290075Sobrien * decl.c (store_parm_decls): Don't build cleanups for parameters 1138390075Sobrien while processing_template_decl. 1138418334Speter 1138590075Sobrien2000-02-07 Jason Merrill <jason@casey.cygnus.com> 1138618334Speter 1138790075Sobrien * cp-tree.h (struct saved_scope): Add incomplete field. 1138890075Sobrien (namespace_scope_incomplete): New macro. 1138990075Sobrien * decl.c (pushdecl): Use it. 1139090075Sobrien (hack_incomplete_structures): Use it. See through artificial 1139190075Sobrien binding levels. 1139290075Sobrien (mark_saved_scope): Mark it. 1139318334Speter 1139490075Sobrien Implement access control for nested types. 1139590075Sobrien * search.c (type_access_control): New fn. 1139690075Sobrien (accessible_p): Now we do perform access control for types. 1139790075Sobrien * semantics.c (deferred_type_access_control): New fn. 1139890075Sobrien (initial_deferred_type_access_control): New fn. 1139990075Sobrien (begin_function_definition): Call it. Add lookups parm. 1140090075Sobrien * decl.c (struct binding_level): Add this_class field. 1140190075Sobrien (pushlevel_class): Set it. 1140290075Sobrien (mark_binding_level): Mark it. 1140390075Sobrien (lookup_name_real): Use it. Call type_access_control. 1140490075Sobrien (mark_saved_scope): Mark lookups field. 1140590075Sobrien * cp-tree.h (flagged_type_tree): Add lookups field. 1140690075Sobrien (struct saved_scope): Add lookups field. 1140790075Sobrien (type_lookups): New macro. 1140890075Sobrien * parse.y (declmods): Now <ftype>. 1140990075Sobrien (parse_decl): Add lookups parm. Call 1141090075Sobrien initial_deferred_type_access_control. 1141190075Sobrien (lang_extdef): Clear type_lookups. 1141290075Sobrien (typed_declspecs, declmods, typespec): Set lookups field. 1141390075Sobrien (initdcl): Call deferred_type_access_control. 1141490075Sobrien (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 1141590075Sobrien component_decl_1, named_parm): Adjust. 1141690075Sobrien * friend.c (is_friend): Nested classes are friends of their 1141790075Sobrien enclosing classes. 1141818334Speter 1141990075Sobrien * class.c (currently_open_derived_class): New fn. 1142090075Sobrien * method.c (hack_identifier): Use it. 1142118334Speter 1142290075Sobrien * lex.c (do_identifier): Remove obsolete code. 1142318334Speter 1142490075Sobrien * parse.y (typed_typespecs): Propagate new_type_flag properly. 1142518334Speter 1142690075Sobrien2000-02-05 Zack Weinberg <zack@wolery.cumb.org> 1142718334Speter 1142890075Sobrien * tinfo.h: Remove apostrophes from C++ comment (xgettext 1142990075Sobrien thinks this file is plain C). 1143018334Speter 1143190075Sobrien2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1143218334Speter 1143390075Sobrien * Makefile.in (call.o): Depend on $(EXPR_H). 1143418334Speter 1143590075Sobrien * call.c: Include "expr.h". 1143618334Speter 1143790075Sobrien * class.c (dump_class_hierarchy): Add prototype. 1143818334Speter 1143990075Sobrien * search.c (dfs_get_pure_virtuals): Likewise. 1144018334Speter 1144190075Sobrien2000-02-1 Ulrich Drepper <drepper@redhat.com> 1144218334Speter 1144390075Sobrien * parse.y (simple_stmt): Allow :: token in asm parameter list. 1144490075Sobrien * parse.c: Rebuilt. 1144518334Speter 1144690075SobrienMon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com> 1144718334Speter 1144890075Sobrien * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 1144990075Sobrien Store it in DECL_FCONTEXT. 1145090075Sobrien (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 1145118334Speter 1145290075Sobrien2000-01-31 Jason Merrill <jason@casey.cygnus.com> 1145318334Speter 1145490075Sobrien * tinfo.h (old abi): #include "tconfig.h". 1145590075Sobrien * tinfo.cc (convert_to_base): Move into old abi section. 1145618334Speter 1145790075Sobrien2000-01-31 Mark Mitchell <mark@codesourcery.com> 1145818334Speter 1145990075Sobrien * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 1146090075Sobrien (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 1146190075Sobrien (BINFO_PRIMARY_BINFO): New macro. 1146290075Sobrien (BF_DELTA): Rename to ... 1146390075Sobrien (BV_DELTA): ... this. 1146490075Sobrien (BF_VCALL_INDEX): Rename to ... 1146590075Sobrien (BV_VCALL_INDEX): ... this. 1146690075Sobrien (BF_FN): Rename to ... 1146790075Sobrien (BV_FN): ... this. 1146890075Sobrien * class.c (build_vbase_path): Adjust for changes to reverse_path. 1146990075Sobrien (set_rtti_entry): Rename BF_ macros to BV_ variants. 1147090075Sobrien (modify_vtable_entry): Simplify. 1147190075Sobrien (add_virtual_function): Rename BF_ macros to BV_ variants. 1147290075Sobrien (build_vtable_initializer): Likewise. 1147390075Sobrien (get_class_offset_1): Remove. 1147490075Sobrien (dfs_get_class_offset): Likewise. 1147590075Sobrien (get_class_offset): Likewise. 1147690075Sobrien (dfs_find_final_overrider): New function. 1147790075Sobrien (find_final_overrider): Likewise. 1147890075Sobrien (modify_one_vtable): Remove. 1147990075Sobrien (dfs_find_base): New function. 1148090075Sobrien (dfs_modify_vtables): Fold modify_one_vtable in here. Use 1148190075Sobrien find_final_overrider. 1148290075Sobrien (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 1148390075Sobrien virtuals. 1148490075Sobrien (dfs_fixup_vtable_deltas): Remove. 1148590075Sobrien (override_one_vtable): Remove. 1148690075Sobrien (merge_overrides): Likewise. 1148790075Sobrien (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 1148890075Sobrien unreal chilren of virtual bases. 1148990075Sobrien (finish_struct_1): Don't use merge_overrides. Don't use 1149090075Sobrien dfs_fixup_vtable_deltas. 1149190075Sobrien * tree.c (reverse_path): Return a TREE_LIST, not a chain of 1149290075Sobrien BINFOs. 1149318334Speter 1149490075Sobrien2000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 1149590075Sobrien Jason Merrill <jason@yorick.cygnus.com> 1149618334Speter 1149790075Sobrien * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 1149818334Speter 1149990075Sobrien2000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 1150018334Speter 1150190075Sobrien * exception.cc (__throw_bad_typeid): Add missing std::. 1150250397Sobrien 1150390075Sobrien2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1150450397Sobrien 1150590075Sobrien * cp-tree.h (make_thunk): PROTO -> PARAMS. 1150650397Sobrien 1150790075Sobrien2000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 1150850397Sobrien 1150990075Sobrien * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 1151050397Sobrien 1151190075Sobrien Runtime support for new-abi rtti. 1151290075Sobrien * inc/typeinfo (type_info::operator!=): Define in class. 1151390075Sobrien (type_info::before, type_info::name, type_info::operator==, 1151490075Sobrien type_info::operator!=): Define new ABI implementations. 1151590075Sobrien (type_info::is_pointer_p, type_info::is_function_p): Declare 1151690075Sobrien new virtual functions. 1151790075Sobrien (type_info::do_catch, type_info::do_upcast): Likewise. 1151850397Sobrien 1151990075Sobrien * tinfo.h (__base_class_info): Define new class. 1152090075Sobrien (__class_type_info): Likewise. 1152190075Sobrien (__si_class_type_info): Likewise. 1152290075Sobrien (__vmi_class_type_info): Likewise. 1152390075Sobrien (__dynamic_cast): Prototype. 1152450397Sobrien 1152590075Sobrien * tinfo.cc: Conditionalize old and new rtti mechanisms. 1152690075Sobrien (type_info::is_pointer_p): Define new function. 1152790075Sobrien (type_info::is_function_p): Likewise. 1152890075Sobrien (type_info::do_catch): Likewise. 1152990075Sobrien (type_info::do_upcast): Likewise. 1153090075Sobrien (vtable_prefix): New structure for vtable access. 1153190075Sobrien (adjust_pointer): Define new template function. 1153290075Sobrien (contained_p, public_p, virtual_p, contained_public_p, 1153390075Sobrien contained_nonpublic_p, contained_nonvirtual_p): Define new 1153450397Sobrien functions. 1153590075Sobrien (nonvirtual_base_type): New local variable. 1153690075Sobrien (__class_type_info::~__class_type_info): Define. 1153790075Sobrien (__si_class_type_info::~__si_class_type_info): Likewise. 1153890075Sobrien (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 1153990075Sobrien (__class_type_info::do_catch): Define new function. 1154090075Sobrien (__class_type_info::do_upcast): Likewise. 1154190075Sobrien (__class_type_info::find_public_src): Likewise. 1154290075Sobrien (__class_type_info::do_find_public_src): Likewise. 1154390075Sobrien (__si_class_type_info::do_find_public_src): Likewise. 1154490075Sobrien (__vmi_class_type_info::do_find_public_src): Likewise. 1154590075Sobrien (__class_type_info::do_dyncast): Likewise. 1154690075Sobrien (__si_class_type_info::do_dyncast): Likewise. 1154790075Sobrien (__vmi_class_type_info::do_dyncast): Likewise. 1154890075Sobrien (__class_type_info::do_upcast): Likewise. 1154990075Sobrien (__si_class_type_info::do_upcast): Likewise. 1155090075Sobrien (__vmi_class_type_info::do_upcast): Likewise. 1155190075Sobrien (__dynamic_cast): Likewise. 1155218334Speter 1155390075Sobrien * tinfo2.cc (__fundamental_type_info): Define new class. 1155490075Sobrien (__pointer_type_info): Likewise. 1155590075Sobrien (__reference_type_info): Likewise. 1155690075Sobrien (__array_type_info): Likewise. 1155790075Sobrien (__function_type_info): Likewise. 1155890075Sobrien (__enum_type_info): Likewise. 1155990075Sobrien (__ptr_to_member_type_info): Likewise. 1156090075Sobrien (__fundamental_type_info::~__fundamental_type_info): Define. 1156190075Sobrien (__pointer_type_info::~__pointer_type_info): Likewise. 1156290075Sobrien (__reference_type_info::~__reference_type_info): Likewise. 1156390075Sobrien (__array_type_info::~__array_type_info): Likewise. 1156490075Sobrien (__function_type_info::~__function_type_info): Likewise. 1156590075Sobrien (__enum_type_info::~__enum_type_info): Likewise. 1156690075Sobrien (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 1156790075Sobrien (__pointer_type_info::do_catch): Define new function. 1156890075Sobrien (__ptr_to_member_type_info::do_catch): Define new function. 1156918334Speter 1157090075Sobrien (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 1157190075Sobrien (__is_pointer): Likewise. 1157218334Speter 1157390075Sobrien * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 1157418334Speter 1157590075Sobrien2000-01-30 Mark Mitchell <mark@codesourcery.com> 1157618334Speter 1157790075Sobrien * cp/class.c (build_vtable): Rename to build_primary_vtable. 1157890075Sobrien (prepare_fresh_vtable): Rename to build_secondary_vtable. 1157990075Sobrien (make_new_vtable): New function. 1158090075Sobrien (modify_vtable_entry): Handle generation of new vtables correctly. 1158190075Sobrien (modify_one_vtable): Remove unused parameter. 1158290075Sobrien (dfs_fixup_vtable_deltas): Likewise. 1158390075Sobrien (override_one_vtable): Use build_secondary_vtable. 1158490075Sobrien (finish_struct_1): Use build_primary_vtable and 1158590075Sobrien build_secondary_vtable. 1158618334Speter 1158790075Sobrien2000-01-28 Ulrich Drepper <drepper@redhat.com> 1158818334Speter 1158990075Sobrien * cp/decl.c: Adjust variable names, comments, help strings. 1159018334Speter 1159190075Sobrien2000-01-29 Nathan Sidwell <nathan@acm.org> 1159218334Speter 1159390075Sobrien * new2.cc (operator delete[]): Use operator delete, don't assume 1159490075Sobrien implementation. 1159518334Speter 1159690075Sobrien2000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 1159718334Speter 1159890075Sobrien * class.c (build_vtbl_initializer): Add argument to 1159990075Sobrien build_vtable_entry call. 1160018334Speter 1160190075Sobrien2000-01-27 Mark Mitchell <mark@codesourcery.com> 1160218334Speter 1160390075Sobrien * cp-tree.def (THUNK_DECL): Discuss vcall indices. 1160490075Sobrien * cp-tree.h (BINFO_VIRTUALS): Update documentation. 1160590075Sobrien (BF_DELTA): New macro. 1160690075Sobrien (BF_VCALL_INDEX): Likewise. 1160790075Sobrien (BF_FN): Likewise. 1160890075Sobrien (THUNK_VCALL_OFFSET): Likewise. 1160990075Sobrien (make_thunk): Change prototype. 1161090075Sobrien * class.c (build_vtable_entry): Integrate 1161190075Sobrien build_vtable_entry_for_fn. Handle vcall indices. 1161290075Sobrien (build_vtable_entry_for_fn): Remove. 1161390075Sobrien (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 1161490075Sobrien BF_VCALL_INDEX, BF_FN. 1161590075Sobrien (modify_vtable_entry): Integrate common code from 1161690075Sobrien modify_one_vtable and dfs_fixup_vtable_deltas. 1161790075Sobrien (add_virtual_function): Set BF_VCALL_INDEX. 1161890075Sobrien (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 1161990075Sobrien and BF_FN. 1162090075Sobrien (modify_one_vtable): Simplify. 1162190075Sobrien (dfs_fixup_vtable_deltas): Likewise. 1162290075Sobrien (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 1162390075Sobrien * method.c (make_thunk): Handle vcall indices. 1162418334Speter 1162590075Sobrien2000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 1162618334Speter 1162790075Sobrien Compiler side new abi rtti (not enabled). 1162890075Sobrien * cp-tree.h (new_abi_rtti_p): New macro. 1162990075Sobrien (emit_support_tinfos): Prototype new function. 1163090075Sobrien (tinfo_decl_p): Likewise. 1163190075Sobrien (emit_tinfo_decl): Likwise. 1163290075Sobrien * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 1163390075Sobrien macros. 1163490075Sobrien (doing_runtime): New local static. 1163590075Sobrien (init_rtti_processing): Add new-abi initializer. 1163690075Sobrien (get_tinfo_decl): Add new-abi logic. 1163790075Sobrien (tinfo_from_decl): Likewise. 1163890075Sobrien (build_dynamic_cast_1): Likewise. 1163990075Sobrien (qualifier_flags): New static function. 1164090075Sobrien (tinfo_base_init): Likewise. 1164190075Sobrien (generic_initializer): Likewise. 1164290075Sobrien (ptr_ref_initializer): Likewise. 1164390075Sobrien (ptmd_initializer): Likewise. 1164490075Sobrien (class_hint_flags): Likewise. 1164590075Sobrien (class_initializer): Likewise. 1164690075Sobrien (synthesize_tinfo_var): Likewise. 1164790075Sobrien (create_real_tinfo_var): Likewise. 1164890075Sobrien (create_pseudo_type_info): Likewise. 1164990075Sobrien (get_vmi_pseudo_type_info): Likewise. 1165090075Sobrien (create_tinfo_types): Likewise. 1165190075Sobrien (emit_support_tinfos): New global function. 1165290075Sobrien (tinfo_decl_p): New global predicate. 1165390075Sobrien (emit_tinfo_decl): New global function. 1165490075Sobrien * class.c (set_rtti_entry): Generalize for old and new rtti. 1165590075Sobrien (build_vtbl_initializer): Likewise. 1165690075Sobrien * decl2.c (finish_file): Likewise. 1165718334Speter 1165890075SobrienThu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com> 1165918334Speter 1166090075Sobrien * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 1166190075Sobrien and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 1166218334Speter 1166390075SobrienThu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com> 1166418334Speter 1166590075Sobrien * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 1166690075Sobrien for scopes. 1166718334Speter 1166890075Sobrien2000-01-26 Jason Merrill <jason@casey.cygnus.com> 1166918334Speter 1167090075Sobrien * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 1167118334Speter 1167290075SobrienWed Jan 26 22:19:14 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 1167318334Speter 1167490075Sobrien * optimize.c (calls_setjmp_r): Supply new argument 1167590075Sobrien to special_function_p. 1167652284Sobrien 1167790075Sobrien2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1167818334Speter 1167990075Sobrien * call.c: PROTO -> PARAMS. 1168090075Sobrien * class.c: Likewise. 1168190075Sobrien * cp-tree.h: Likewise. 1168290075Sobrien * cvt.c: Likewise. 1168390075Sobrien * decl.c: Likewise. 1168490075Sobrien * decl.h: Likewise. 1168590075Sobrien * decl2.c: Likewise. 1168690075Sobrien * dump.c: Likewise. 1168790075Sobrien * errfn.c: Likewise. 1168890075Sobrien * error.c: Likewise. 1168990075Sobrien * except.c: Likewise. 1169090075Sobrien * expr.c: Likewise. 1169190075Sobrien * init.c: Likewise. 1169290075Sobrien * input.c: Likewise. 1169390075Sobrien * lex.c: Likewise. 1169490075Sobrien * lex.h: Likewise. 1169590075Sobrien * method.c: Likewise. 1169690075Sobrien * optimize.c: Likewise. 1169790075Sobrien * parse.y: Likewise. 1169890075Sobrien * pt.c: Likewise. 1169990075Sobrien * repo.c: Likewise. 1170090075Sobrien * rtti.c: Likewise. 1170190075Sobrien * search.c: Likewise. 1170290075Sobrien * semantics.c: Likewise. 1170390075Sobrien * spew.c: Likewise. 1170490075Sobrien * tree.c: Likewise. 1170590075Sobrien * typeck.c: Likewise. 1170690075Sobrien * typeck2.c: Likewise. 1170790075Sobrien * xref.c: Likewise. 1170818334Speter 1170990075Sobrien2000-01-25 Richard Henderson <rth@cygnus.com> 1171018334Speter 1171190075Sobrien * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 1171218334Speter 1171390075Sobrien2000-01-25 Mark Mitchell <mark@codesourcery.com> 1171418334Speter 1171590075Sobrien * cp-tree.h (vcall_offset_in_vtable_p): New macro. 1171690075Sobrien * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 1171790075Sobrien (struct vcall_offset_data_s): New type. 1171890075Sobrien (dfs_vcall_offset_queue_p): New function. 1171990075Sobrien (dfs_build_vcall_offset_vtbl_entries): Likewise. 1172090075Sobrien (build_vcall_offset_vtbl_entries): Likewise. 1172190075Sobrien (layout_vtable_decl): Likewise. 1172290075Sobrien (num_vfun_entries): Likewise. 1172390075Sobrien (num_extra_vtbl_entries): Add the entries for vcall offsets. 1172490075Sobrien (build_vtbl_initializer): Likewise. 1172590075Sobrien (dfs_finish_vtabls): Use layout_vtable_decl. 1172690075Sobrien (modify_one_vtables): Always duplicate vtables under the new ABI. 1172790075Sobrien (finish_struct_1): Use layout_vtable_decl. 1172818334Speter 1172990075Sobrien2000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1173018334Speter 1173190075Sobrien * decl.c (member_function_or_else): Change third arg from a format 1173290075Sobrien specifier to an `enum overload_flags'. Callers changed. 1173318334Speter 1173490075Sobrien2000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 1173518334Speter 1173690075Sobrien * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 1173790075Sobrien build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 1173890075Sobrien build_const_cast, get_delta_difference, check_return_expr): Avoid 1173990075Sobrien ANSI string concatenation usage. 1174018334Speter 1174190075Sobrien2000-01-24 Mark Mitchell <mark@codesourcery.com> 1174218334Speter 1174390075Sobrien * class.c (layout_class_type): Put the fields required to make a 1174490075Sobrien class non-empty at the end, not the beginning, of the TYPE_FIELDs 1174590075Sobrien list. 1174618334Speter 1174790075Sobrien2000-01-24 Jason Merrill <jason@casey.cygnus.com> 1174818334Speter 1174990075Sobrien * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 1175090075Sobrien template. 1175118334Speter 1175290075Sobrien * decl2.c (mark_used): Do instantiate inlines that have been 1175390075Sobrien explicitly instantiated. 1175418334Speter 1175590075Sobrien2000-01-24 Richard Henderson <rth@cygnus.com> 1175618334Speter 1175790075Sobrien * call.c (build_over_call): Use expand_tree_builtin. 1175890075Sobrien * typeck.c (build_function_call_real): Likewise. 1175990075Sobrien (build_binary_op_nodefault): Handle unordered compares. 1176018334Speter 1176190075Sobrien2000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 1176218334Speter 1176390075Sobrien * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 1176490075Sobrien cp_tree_index values. 1176590075Sobrien (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 1176690075Sobrien New global node #defines for them. 1176790075Sobrien * rtti.c (call_void_fn): Replace with ... 1176890075Sobrien (build_runtime_decl): ... new static function. 1176990075Sobrien (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 1177090075Sobrien (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 1177190075Sobrien (build_dynamic_cast_1): Always produce correctly typed result. 1177290075Sobrien Explicitly produce type_info addresses. Use dynamic_cast_node. 1177390075Sobrien * exception.cc (__throw_bad_cast): Return `void *'. 1177490075Sobrien (__throw_bad_typeid): Return `const type_info &'. 1177518334Speter 1177690075Sobrien2000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 1177718334Speter 1177890075Sobrien * cp-tree.h (get_vtable_decl): Prototype new function. 1177990075Sobrien * class.c (get_vtable_decl): New function. Broken out from ... 1178090075Sobrien (build_vtable): ... here. Use it. 1178190075Sobrien * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 1178290075Sobrien by get_vtable_decl. 1178318334Speter 1178490075Sobrien2000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 1178518334Speter 1178690075Sobrien * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 1178790075Sobrien CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 1178890075Sobrien CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 1178990075Sobrien (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 1179090075Sobrien CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 1179190075Sobrien CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 1179290075Sobrien (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 1179390075Sobrien (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 1179490075Sobrien (CPTI_TINFO_VAR_ID): New enumeration. 1179590075Sobrien (__tp_desc_type_node, __access_mode_type_node, 1179690075Sobrien __bltn_desc_type_node, __user_desc_type_node, 1179790075Sobrien __class_desc_type_node, __ptr_desc_type_node, 1179890075Sobrien __attr_desc_type_node, __func_desc_type_node, 1179990075Sobrien __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 1180090075Sobrien (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 1180190075Sobrien ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 1180290075Sobrien enum_desc_type_node, class_desc_type_node, 1180390075Sobrien si_class_desc_type_node, vmi_class_desc_type_node, 1180490075Sobrien ptmd_desc_type_node, base_desc_type_node): New #defines. 1180590075Sobrien (tinfo_fn_id, tinfo_fn_type): Rename to ... 1180690075Sobrien (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 1180790075Sobrien (tinfo_var_id): New enumeration. 1180890075Sobrien (DECL_TINFO_FN_P): Augment comment. 1180990075Sobrien * decl.c (cp_global_trees): Adjust documentation. 1181090075Sobrien * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 1181190075Sobrien tinfo_decl_type and tinfo_var_id. 1181290075Sobrien (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 1181390075Sobrien (build_typeid): Remove unused variable. 1181490075Sobrien (get_tinfo_var): Use tinfo_var_id. 1181590075Sobrien (tinfo_name): New static function. 1181690075Sobrien (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 1181790075Sobrien (tinfo_from_decl): Likewise. 1181890075Sobrien (get_base_offset): New static function, broken out of 1181990075Sobrien expand_class_desc. 1182090075Sobrien (expand_si_desc): Use tinfo_name. 1182190075Sobrien (expand_class_desc): Likewise. Lose local static variable. 1182290075Sobrien Use base_desc_type_node. Use get_base_offset. 1182390075Sobrien (expand_ptr_desc): Use tinfo_name. 1182490075Sobrien (expand_attr_desc): Likewise. 1182590075Sobrien (expand_generic_desc): Likewise. 1182618334Speter 1182790075Sobrien * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 1182890075Sobrien * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 1182918334Speter 1183090075Sobrien2000-01-23 Mark Mitchell <mark@codesourcery.com> 1183118334Speter 1183290075Sobrien * cp-tree.h (__eprintf): Remove declaration. 1183390075Sobrien * tree.c (__eprintf): Remove definition. 1183418334Speter 1183590075Sobrien2000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 1183690075Sobrien Mark Mitchell <mark@codesourcery.com> 1183718334Speter 1183890075Sobrien * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 1183990075Sobrien CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 1184018334Speter 1184190075Sobrien2000-01-23 Brad Lucier <lucier@math.purdue.edu> 1184218334Speter 1184390075Sobrien * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 1184418334Speter 1184590075Sobrien2000-01-23 Mark Mitchell <mark@codesourcery.com> 1184618334Speter 1184790075Sobrien * cp-tree.h (register_dtor_fn): New function. 1184890075Sobrien * decl.c (destroy_local_static): Rename to ... 1184990075Sobrien (register_dtor_fn): ... this. Give it external linkage. 1185090075Sobrien (expand_static_init): Use it. 1185190075Sobrien * decl2.c (do_static_initialization): Likewise, if using 1185290075Sobrien __cxa_atexit. 1185390075Sobrien (do_static_destruction): Check that __cxa_atexit is not in use. 1185490075Sobrien (finish_file): Don't call do_static_destruction if using 1185590075Sobrien __cxa_atexit. 1185618334Speter 1185790075Sobrien * typeck.c (convert_arguments): Restore two-message error 1185890075Sobrien reporting. 1185918334Speter 1186090075Sobrien2000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 1186118334Speter 1186290075Sobrien Remap dynamic cast hint values to be consistent across ABIs. 1186390075Sobrien * search.c (dynamic_cast_base_recurse): Remap generated value. 1186490075Sobrien (get_dynamic_cast_base_type): Adjust documentation. 1186590075Sobrien * tinfo.h (__user_type_info::dyncast): Likewise. 1186690075Sobrien (__user_type_info::find_public_subobj): Remap BOFF meaning. 1186790075Sobrien * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 1186890075Sobrien (__class_type_info::do_dyncast): Likewise. 1186990075Sobrien (__class_type_info::do_find_public_subobj): Likewise. 1187090075Sobrien * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 1187118334Speter 1187290075Sobrien2000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 1187318334Speter 1187490075Sobrien * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 1187518334Speter 1187690075Sobrien * typeck2.c (incomplete_type_error): Restore previous 1187790075Sobrien cp_error and cp_error_at call sequence. 1187818334Speter 1187990075Sobrien2000-01-20 Brad Lucier <lucier@math.purdue.edu> 1188018334Speter 1188190075Sobrien * class.c (dump_class_hierarchy): Make format agree with argument; 1188290075Sobrien cast pointer to unsigned long and print with %lx. 1188318334Speter 1188490075Sobrien2000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 1188518334Speter 1188690075Sobrien * decl2.c (lang_decode_option): Set default line-wrap length to 72. 1188718334Speter 1188890075Sobrien * typeck.c (composite_pointer_type, common_type, 1188990075Sobrien comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 1189090075Sobrien build_function_call_real, convert_arguments, 1189190075Sobrien build_binary_op_nodefault, pointer_int_sum, pointer_diff, 1189290075Sobrien build_unary_op, mark_addressable, build_compound_expr, 1189390075Sobrien build_static_cast, build_reinterpret_cast, build_const_cast, 1189490075Sobrien build_c_cast, build_modify_expr, get_delta_difference, 1189590075Sobrien build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 1189690075Sobrien 'ISO C++'. Fusion consecutive calls to diagnostic message routines 1189790075Sobrien into a single one. 1189890075Sobrien * typeck2.c (readonly_error, abstract_virtuals_error, 1189990075Sobrien process_init_constructor, check_for_new_type): Likewise. 1190018334Speter 1190190075Sobrien2000-01-19 Mark Mitchell <mark@codesourcery.com> 1190218334Speter 1190390075Sobrien * tree.c (bot_manip): Set DECL_CONTEXT for newly created 1190490075Sobrien VAR_DECLs. 1190518334Speter 1190690075Sobrien2000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 1190718334Speter 1190890075Sobrien * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 1190990075Sobrien (build_x_typeid): Likewise. 1191090075Sobrien (get_tinfo_fn): Likewise. 1191190075Sobrien (get_tinfo_fn_unused): Rename to ... 1191290075Sobrien (get_tinfo_decl): ... here. 1191390075Sobrien * rtti.c (build_headof): Replace logic error with assertion. 1191490075Sobrien (get_tinfo_fn_dynamic): Rename to ... 1191590075Sobrien (get_tinfo_decl_dynamic): ... here. Make static. Use 1191690075Sobrien complete_type_or_else. 1191790075Sobrien (build_x_typeid): Move into ... 1191890075Sobrien (build_typeid): ... here. Adjust call to 1191990075Sobrien get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 1192090075Sobrien throw_bad_typeid expression. 1192190075Sobrien (get_tinfo_fn_unused): Rename to ... 1192290075Sobrien (get_tinfo_decl): ... here. Adjust comment. 1192390075Sobrien (get_tinfo_fn): Delete. 1192490075Sobrien (tinfo_from_decl): New static function. 1192590075Sobrien (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 1192690075Sobrien (get_typeid): Use complete_type_or_else. 1192790075Sobrien (build_dynamic_cast_1): Adjust calls to 1192890075Sobrien get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 1192990075Sobrien * parse.y (primary): Adjust call to build_typeid. 1193090075Sobrien * except.c (build_eh_type_type_ref): Adjust call to 1193190075Sobrien get_tinfo_decl. Mark as used. 1193290075Sobrien * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 1193390075Sobrien * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 1193490075Sobrien * parse.c: Regenerated. 1193518334Speter 1193690075Sobrien2000-01-17 Mark Mitchell <mark@codesourcery.com> 1193718334Speter 1193890075Sobrien * class.c (fixed_type_or_null): Don't clear NONNULL. Document 1193990075Sobrien calling convention. 1194090075Sobrien (resolves_to_fixed_type_p): Document calling convention. 1194190075Sobrien * rtti.c (build_x_typeid): Initialize NONNULL. 1194218334Speter 1194390075Sobrien * cp-tree.h (build_shared_int_cst): New function. 1194490075Sobrien * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 1194590075Sobrien * class.c (modify_vtable_entry): Likewise. 1194690075Sobrien (add_virtual_function): Split out code to generated shared 1194790075Sobrien INTEGER_CSTs to build_share_int_cst. 1194890075Sobrien (modify_all_vtables): Handle all the overridden functions here. 1194990075Sobrien Add overridden functions from non-primary virtual bases to the 1195090075Sobrien primary vtable. 1195190075Sobrien (finish_struct_1): Adjust call to modify_all_vtables. Add 1195290075Sobrien overridden functions from non-primary bases to the vtable. 1195390075Sobrien * tree.c (build_shared_int_cst): New function. 1195418334Speter 1195590075Sobrien * cp-tree.h (scratchalloc): Remove. 1195690075Sobrien (build_scratch_list): Likewise. 1195790075Sobrien * call.c (convert_class_to_reference): Replace build_scratch_list 1195890075Sobrien and build_expr_list with build_tree_list. 1195990075Sobrien (add_candidate): Replace scratchalloc with expralloc. Note memory 1196090075Sobrien leak. 1196190075Sobrien (build_user_type_conversion_1): Replace build_scratch_list 1196290075Sobrien and build_expr_list with build_tree_list. 1196390075Sobrien (build_new_op): Likewise. 1196490075Sobrien (build_op_delete_call): Likewise. 1196590075Sobrien (convert_like): Likewise. 1196690075Sobrien * cvt.c (ocp_convert): Likewise. 1196790075Sobrien * decl.c (start_decl): Likewise. 1196850397Sobrien (start_function): Likewise. 1196990075Sobrien (finish_destructor_body): Likewise. 1197090075Sobrien (maybe_build_cleanup_1): Likewise. 1197190075Sobrien * decl2.c (reparse_decl_as_expr): Likewise. 1197290075Sobrien * init.c (perform_member_init): Likewise. 1197390075Sobrien (expand_cleanup_for_base): Likewise. 1197490075Sobrien (build_builtin_delete_call): Likewise. 1197590075Sobrien (build_new_1): Likewise. 1197690075Sobrien (build_delete): Likewise. 1197750397Sobrien * method.c (do_build_assign_ref): Likewise. 1197890075Sobrien * parse.y (already_scoped_stmt): Likewise. 1197990075Sobrien (nontrivial_exprlist): Likewise. 1198090075Sobrien (net_initializer): Likewise. 1198190075Sobrien (initlist): Likewise. 1198290075Sobrien * parse.c: Regenerated. 1198390075Sobrien * rtti.c (build_x_typeid): Likewise. 1198490075Sobrien (build_dynamic_cast_1): Likewise. 1198590075Sobrien * typeck.c (build_x_compound_expr): Likewise. 1198690075Sobrien (build_static_cast): Likewise. 1198790075Sobrien (build_modify_expr): Likewise. 1198818334Speter 1198990075Sobrien * cp-tree.h (DECL_VINDEX): Add documentation. 1199090075Sobrien * class.c (build_vtable_entry): Likewise. 1199190075Sobrien (start_vtable): Add comment. 1199290075Sobrien (add_virtual_function): Replace pending_hard_virtuals with 1199390075Sobrien overridden_virtuals and pending_virtuals with new_virtuals. 1199490075Sobrien Replace redundant assignments with assertions. 1199590075Sobrien (check_for_override): Add comment. 1199690075Sobrien (check_bases_and_members): Replace pending_hard_virtuals with 1199790075Sobrien overridden_virtuals and pending_virtuals with new_virtuals. 1199890075Sobrien (create_vtbl_ptr): Likewise. 1199990075Sobrien (layout_class_type): Likewise. 1200090075Sobrien (finish_struct_1): Likewise. Add comments. 1200118334Speter 1200290075Sobrien2000-01-16 Mark Mitchell <mark@codesourcery.com> 1200318334Speter 1200490075Sobrien * class.c (finish_struct_1): Replace redundant code with 1200590075Sobrien assertions. 1200618334Speter 1200790075Sobrien * cp-tree.h (flag_new_abi): Move. 1200890075Sobrien (flag_use_cxa_atexit): Likewise. 1200990075Sobrien (flag_honor_std): Likewise. 1201090075Sobrien (flag_rtti): Likewise. 1201190075Sobrien (vbase_offsets_in_vtable_p): Define. 1201290075Sobrien (vptrs_present_everywhere_p): Likewise. 1201390075Sobrien (TYPE_CONTAINS_VPTR_P): Likewise. 1201490075Sobrien (dfs_walk_real): Declare. 1201590075Sobrien * class.c (build_vbase_pointer_fields): Check 1201690075Sobrien vbase_offsets_in_vtable_p. 1201790075Sobrien (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 1201890075Sobrien BINFO_VPTR_FIELD. 1201990075Sobrien (build_vbase_offset_vtbl_entries): Simplify. 1202090075Sobrien (build_vbase_offset_vtbl_entries): Adjust. 1202190075Sobrien (build_vbase_pointer): Add ability to look up vbase offsets in 1202290075Sobrien vtable. 1202390075Sobrien (start_vtable): New function. 1202490075Sobrien (add_virtual_function): Use it. 1202590075Sobrien (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 1202690075Sobrien (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 1202790075Sobrien (build_vtbl_initializer): Take the type of the complete object as 1202890075Sobrien input. Use it to correctly calculate vbase offsets. 1202990075Sobrien (dfs_finish_vtbls): Pass the complete type to 1203090075Sobrien build_vtbl_initializer. 1203190075Sobrien (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 1203290075Sobrien (create_vtable_ptr): Create a vtable even if there are no 1203390075Sobrien new virtual functions, under the new ABI. 1203490075Sobrien (finish_struct_1): Likewise. 1203590075Sobrien (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 1203690075Sobrien * decl.c (exapnd_static_init): Remove call to 1203790075Sobrien preserve_initializer. 1203890075Sobrien * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 1203990075Sobrien vtables. 1204090075Sobrien * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 1204190075Sobrien (expand_virtual_init): Use vbase_offsets_in_vtable_p. 1204290075Sobrien (construct_virtual_bases): Don't initialize virtual base pointers 1204390075Sobrien under the new ABI. 1204490075Sobrien (build_aggr_init): Clean up comment. 1204590075Sobrien (expand_aggr_init_1): Likewise. 1204690075Sobrien * rtti.c (expand_class_desc): Store the virtual function table 1204790075Sobrien index where the vbase offset lives in the offset field. 1204890075Sobrien * search.c (dfs_walk_real): Make it global. 1204990075Sobrien (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 1205090075Sobrien * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 1205118334Speter 1205290075Sobrien * tinfo.h (USItype): Make it signed under the new ABI. 1205390075Sobrien * tinfo.cc (convert_to_base): New function. Encapsulate base 1205490075Sobrien conversion logic here. 1205590075Sobrien (__class_type_info::do_upcast): Use it. 1205690075Sobrien (__class_type_info::do_dyncast): Likewise. 1205790075Sobrien (__class_type_info::do_find_public_subobj): Likewise. 1205818334Speter 1205990075Sobrien * init.c (construct_virtual_bases): Don't look up the addresses of 1206090075Sobrien virtual bases at run-time. 1206118334Speter 1206290075Sobrien * class.c (build_vbase_pointer): Relocate. 1206390075Sobrien (build_vbase_pointer_fields): Likewise. 1206490075Sobrien (dfs_build_vbase_offset_vtbl_entries): Likewise. 1206590075Sobrien (build_vbase_offset_vtbl_entries): Likewise. 1206618334Speter 1206790075Sobrien * decl.c (init_decl_processing): Complain if -fnew-abi 1206890075Sobrien -fno-vtable-thunks is used. 1206918334Speter 1207090075Sobrien * decl2.c (lang_decode_option): Don't couple flag_honor_std to 1207190075Sobrien flag_new_abi. 1207218334Speter 1207390075Sobrien2000-01-15 Mark Mitchell <mark@codesourcery.com> 1207418334Speter 1207590075Sobrien * cp-tree.h (num_extra_vtbl_entries): New function. 1207690075Sobrien (size_extra_vtbl_entries): Likewise. 1207790075Sobrien (dfs_vtable_path_unmark): Likewise. 1207890075Sobrien (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 1207990075Sobrien (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 1208090075Sobrien * class.c (num_extra_vtbl_entries): New function. 1208190075Sobrien (size_extra_vtbl_entries): Likewise. 1208290075Sobrien (dfs_build_vbase_offset_vtbl_entries): New function. 1208390075Sobrien (build_vbase_offset_vtbl_entries): Likewise. 1208490075Sobrien (build_vtbl_initializer): Use it. 1208590075Sobrien (finish_struct_1): Adjust vtable sizes (using 1208690075Sobrien num_extra_vtbl_entries). 1208790075Sobrien * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 1208890075Sobrien THUNK_DECL is non-NULL before expanding it. 1208990075Sobrien * init.c (expand_virtual_init): Adjust the vtable pointer by 1209090075Sobrien size_extra_vtbl_entries before storing it. 1209190075Sobrien * search.c (get_shared_vase_if_not_primary): Adjust prototype. 1209290075Sobrien Handle TREE_LIST parameters here, not in the dfs_* functions. 1209390075Sobrien (dfs_unmarked_real_bases_queue_p): Adjust. 1209490075Sobrien (dfs_marked_real_bases_queue_p): Likewise. 1209590075Sobrien (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 1209690075Sobrien (dfs_vtable_path_marked_real_bases_queue_p): New function. 1209790075Sobrien (dfs_vtable_path_unmark): Likewise. 1209818334Speter 1209990075Sobrien2000-01-14 Mark Mitchell <mark@codesourcery.com> 1210018334Speter 1210190075Sobrien * optimize.c (copy_body_r): Clear the operand three of a 1210290075Sobrien TARGET_EXPR when copying it. 1210318334Speter 1210490075Sobrien2000-01-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1210518334Speter 1210690075Sobrien * method.c (build_decl_overload_real): Check whether we are in :: 1210790075Sobrien before returning __builtin_new/delete. 1210818334Speter 1210990075Sobrien2000-01-13 Mark Mitchell <mark@codesourcery.com> 1211018334Speter 1211190075Sobrien * pt.c (tsubst_friend_function): Improve comment. 1211290075Sobrien (instantiate_decl): Avoid crashing when a "nested" function is 1211390075Sobrien instantiated from the top level. 1211418334Speter 1211590075Sobrien * dump.c (dqeueue_and_dump): Dump 1211690075Sobrien DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 1211718334Speter 1211890075Sobrien2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1211918334Speter 1212090075Sobrien * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 1212118334Speter 1212290075Sobrien2000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 1212318334Speter 1212490075Sobrien * g++spec.c (lang_specific_driver): Add -fnew-abi if 1212590075Sobrien ENABLE_NEW_GXX_ABI defined. 1212690075Sobrien * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 1212790075Sobrien opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 1212890075Sobrien opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 1212918334Speter 1213090075Sobrien2000-01-12 Mark Mitchell <mark@codesourcery.com> 1213118334Speter 1213290075Sobrien * decl.c (start_cleanup_fn): Call pushdecl. 1213318334Speter 1213490075Sobrien * call.c (convert_class_to_reference): Fix typos. 1213590075Sobrien (build_conditional_expr): Handle errors gracefully. 1213690075Sobrien * class.c (push_nested_class): Likewise. 1213790075Sobrien * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 1213890075Sobrien (DECL_THIS_EXTERN): Use it. 1213990075Sobrien (DECL_THIS_STATIC): Likewise. 1214090075Sobrien * cvt.c (convert_to_void): Handle errors gracefully. 1214190075Sobrien (build_expr_type_conversion): Likewise. 1214290075Sobrien * decl.c (maybe_push_decl): Likewise. 1214390075Sobrien (start_decl_1): Likewise. 1214490075Sobrien (require_complete_types_for_parms): Likewise. 1214590075Sobrien * parse.y (structsp): Likewise. 1214690075Sobrien (base_class): Likewise. 1214790075Sobrien * parse.c: Regenerated. 1214890075Sobrien * pt.c (finish_member_template_decl): Likewise. 1214990075Sobrien * typeck.c (decay_conversion): Likewise. 1215018334Speter 1215190075Sobrien * cp-tree.h (dfs_skip_vbases): New function. 1215290075Sobrien (find_vbase_instance): Likewise. 1215390075Sobrien * class.c (determine_primary_base): Allow a nearly empty base to 1215490075Sobrien serve as a primary base class under the new ABI. 1215590075Sobrien (get_class_offset_1): Rename to ... 1215690075Sobrien (dfs_get_class_offset): ... this. Simplify. Don't issue error 1215790075Sobrien messages here. 1215890075Sobrien (get_class_offset): Use it. Issue error messages here. 1215990075Sobrien (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 1216090075Sobrien find the right copies of virtual bases. 1216190075Sobrien (fixup_vtable_deltas1): Rename to ... 1216290075Sobrien (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 1216390075Sobrien bases as primary bases. 1216490075Sobrien (fixup_vtable_deltas): Remove. 1216590075Sobrien (override_one_vtable): Handle virtual bases as primary bases. 1216690075Sobrien (merge_overrides): Likewise. 1216790075Sobrien (finish_struct_1): Likewise. 1216890075Sobrien (dump_class_hierarchy): Dump primary-ness of bases as well. 1216990075Sobrien * search.c (mark_primary_bases): Use a pre-order traversal to 1217090075Sobrien handle primary virtual bases. 1217190075Sobrien (dfs_skip_vbases): New fiunction. 1217290075Sobrien (expand_upcast_fixups): Adjust to handle primary virtual bases. 1217390075Sobrien (fixup_virtual_upcast_offsets): Likewise. 1217490075Sobrien (fixup_all_virtual_upcast_offsets): Likewise. 1217590075Sobrien (dfs_find_vbase_instances): New function. 1217690075Sobrien (find_vbase_instance): Likewise. 1217718334Speter 1217890075Sobrien2000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 1217918334Speter 1218090075Sobrien * lex.c (DIR_SEPARATOR): Delete macro. 1218118334Speter 1218290075Sobrien2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 1218318334Speter 1218490075Sobrien * decl2.c (lang_decode_option): Handle automatic line wrapping 1218590075Sobrien option. 1218618334Speter 1218790075Sobrien2000-01-11 Mark Mitchell <mark@codesourcery.com> 1218818334Speter 1218990075Sobrien * friend.c (do_friend): Don't resolve scopes when processing 1219090075Sobrien template declarations, even if the qualifying scope doesn't 1219190075Sobrien involve template parameters. 1219218334Speter 1219390075Sobrien2000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 1219418334Speter 1219590075Sobrien * class.c (dfs_modify_vtables_queue_p): Remove. 1219690075Sobrien (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 1219790075Sobrien and dfs_marked_real_bases_queue_p instead of 1219890075Sobrien dfs_modify_vtables_queue_p. 1219918334Speter 1220090075Sobrien * class.c (build_vbase_path): Simplify. 1220190075Sobrien (dfs_propagate_binfo_offsets): New function. 1220290075Sobrien (propagate_binfo_offsets): Use it. 1220390075Sobrien (remove_base_field): Simplify. 1220490075Sobrien (dfs_set_offset_for_vbases): Remove. 1220590075Sobrien (dfs_set_offset_for_shared_vbases): New function. 1220690075Sobrien (dfs_set_offset_for_unshared_vbases): Likewise. 1220790075Sobrien (layout_virtual_bases): Use them. 1220890075Sobrien (layout_basetypes): Don't call propagate_binfo_offsets. 1220990075Sobrien * search.c (dfs_get_vbase_types): Clone completely fresh binfos 1221090075Sobrien for the vbases. 1221118334Speter 1221290075Sobrien * class.c (build_base_field): New function, split out from ... 1221390075Sobrien (build_base_fields): ... here. Use it. Allocate primary bases 1221490075Sobrien first, under the new ABI. 1221590075Sobrien (get_vtable_entry): Remove. 1221690075Sobrien (remove_base_field): New function, split out from ... 1221790075Sobrien (remove_base_fields): ... here. Adjust since primary bases come 1221890075Sobrien first under the new ABI. 1221918334Speter 1222090075Sobrien * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 1222190075Sobrien (initialize_vtbl_ptrs): New function. 1222290075Sobrien (expand_indirect_vtbls_init): Change prototype. 1222390075Sobrien (convert_pointer_to_vbase): Declare. 1222490075Sobrien * init.c (expand_direct_vtbls_init): Remove. 1222590075Sobrien (dfs_initialize_vtbl_ptrs): New function. 1222690075Sobrien (initialize_vtbl_ptrs): Likewise. 1222790075Sobrien (emit_base_init): Use initialize_vtbl_ptrs. 1222890075Sobrien * search.c (convert_pointer_to_vbase): Make it global. 1222990075Sobrien (expand_indirect_vtbls_init): Remove vtable initialization code. 1223090075Sobrien * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 1223118334Speter 1223290075Sobrien * class.c (dfs_finish_vtbls): New function. 1223390075Sobrien (finish_vtbls): Use it. 1223490075Sobrien (dump_class_hierarchy): New function. 1223518334Speter 1223690075Sobrien * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 1223790075Sobrien (BINFO_VBASE_PRIMARY_P): New macro. 1223890075Sobrien (BINFO_VIRTUALS): Add to documentation. 1223990075Sobrien (SET_BINFO_PRIMARY_MARKED_P): Remove. 1224090075Sobrien (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 1224190075Sobrien (dfs_mark_primary_bases_queue_p): Likewise. 1224290075Sobrien (dfs_unmarked_real_bases_queue_p): New function. 1224390075Sobrien (dfs_marked_real_bases_queue_p): Likewise. 1224490075Sobrien * search.c (dfs_mark_primary_bases): Adjust. 1224590075Sobrien (mark_primary_bases): Likewise. 1224690075Sobrien (get_shared_vbase_if_not_primary): New function. 1224790075Sobrien (dfs_unmarked_real_bases_queue_p): Likewise. 1224890075Sobrien (dfs_marked_real_bases_queue_p): Likewise. 1224990075Sobrien (dfs_get_pure_virtuals): Simplify. 1225090075Sobrien (get_pure_virtuals): Likewise. 1225118334Speter 1225290075Sobrien2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1225318334Speter 1225490075Sobrien * lex.c: Include tm_p.h. 1225518334Speter 1225690075Sobrien2000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 1225718334Speter 1225890075Sobrien * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 1225918334Speter 1226090075Sobrien2000-01-06 Jason Merrill <jason@casey.cygnus.com> 1226118334Speter 1226290075Sobrien * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 1226390075Sobrien * pt.c (instantiate_decl): Defer comdat templates that might not be 1226490075Sobrien needed. 1226518334Speter 1226690075Sobrien * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 1226790075Sobrien * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 1226890075Sobrien (finish_file): Likewise. 1226918334Speter 1227090075Sobrien * decl2.c (import_export_class): Undo 12/14 change. 1227118334Speter 1227290075Sobrien * error.c (dump_decl): operator new, not operatornew. 1227318334Speter 1227490075Sobrien * class.c (field_decl_cmp): A nontype is "greater" than a type. 1227590075Sobrien * search.c (lookup_field_1): Look for the last field with the 1227690075Sobrien desired name. 1227718334Speter 1227890075Sobrien2000-01-05 Nathan Sidwell <nathan@acm.org> 1227918334Speter 1228090075Sobrien * decl2.c (lookup_arg_dependent): Deal with FNS not being a 1228190075Sobrien FUNCTION_DECL. 1228218334Speter 1228390075Sobrien2000-01-05 Nathan Sidwell <nathan@acm.org> 1228452284Sobrien 1228590075Sobrien * typeck.c (build_static_cast): Don't strip target qualifiers 1228690075Sobrien when casting from a class. 1228718334Speter 1228890075Sobrien2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1228918334Speter 1229090075Sobrien * class.c (warn_hidden): Initialize variable `fndecl'. 1229118334Speter 1229290075Sobrien2000-01-03 Ulrich Drepper <drepper@cygnus.com> 1229318334Speter 1229490075Sobrien * decl.c (flag_isoc9x): New variable to be able to use code in 1229590075Sobrien c-common.c. For now always zero. 1229618334Speter 1229790075Sobrien2000-01-03 Mark Mitchell <mark@codesourcery.com> 1229818334Speter 1229990075Sobrien * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 1230090075Sobrien * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 1230190075Sobrien or unshare_base_binfos for virtual bases here. 1230290075Sobrien * search.c (dfs_get_vbase_types): Do it here. 1230390075Sobrien (get_vbase_types): Adjust. 1230418334Speter 1230590075Sobrien2000-01-02 Mark Mitchell <mark@codesourcery.com> 1230618334Speter 1230790075Sobrien * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 1230890075Sobrien (BINFO_PRIMARY_MARKED_P): Use flag 5. 1230990075Sobrien (SET_BINFO_PRIMARY_MARKED_P): Likewise. 1231090075Sobrien (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 1231190075Sobrien (unmark_primary_bases): Remove declaration. 1231290075Sobrien (unmarkedp): Declare. 1231390075Sobrien (dfs_vbase_unmark): Likewise. 1231490075Sobrien * class.c (determine_primary_base): Return immediately if there 1231590075Sobrien are no base classes. Call mark_primary_bases here. 1231690075Sobrien (modify_all_direct_vtables): Remove. 1231790075Sobrien (modify_all_indirect_vtables): Remove. 1231890075Sobrien (dfs_modify_vtables_queue_p): New function. 1231990075Sobrien (dfs_modify_vtables): New function. 1232090075Sobrien (modify_all_vtables): Use them. 1232190075Sobrien (build_base_fields): Build FIELD_DECLs for primary virtual base 1232290075Sobrien classes. 1232390075Sobrien (create_vtable_ptr): Don't call determine_primary_base here. 1232490075Sobrien (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 1232590075Sobrien (dfs_set_offset_for_vbases): ... this. 1232690075Sobrien (layout_virtual_bases): Use it. 1232790075Sobrien (layout_class_type): Call determine_primary_base here. 1232890075Sobrien * search.c (unmarkedp): Make it global. 1232990075Sobrien (shared_marked_p): Simplify. 1233090075Sobrien (shared_unmarked_p): Likewise. 1233190075Sobrien (dfs_primary_bases_queue_p): Remove. 1233290075Sobrien (dfs_unmark_primary_bases): Likewise. 1233390075Sobrien (unmark_primary_bases): Likewise. 1233490075Sobrien (mark_primary_bases): Simplify. 1233590075Sobrien (get_pure_virtuals): Don't call mark_primary_bases here. 1233690075Sobrien (dfs_vbase_unmark): New function. 1233790075Sobrien (get_vbase_types): Simplify. 1233818334Speter 1233990075Sobrien * class.c (struct base_info): Remove. 1234090075Sobrien (determine_primary_base): Take has_virtual_p rather than a 1234190075Sobrien base_info as input. Don't calculate max_has_virtual. 1234290075Sobrien (finish_struct_bits): Remove max_has_virtual argument. 1234390075Sobrien (create_vtable_ptr): Remove max_has_virtual_p argument. 1234490075Sobrien (layout_virtual_bases): Remove max argument. 1234590075Sobrien (layout_basetypes): Likewise. 1234690075Sobrien (layout_class_type): Remove max_has_virtual_p argument. 1234790075Sobrien (finish_struct_1): Remove max_has_virtual. 1234818334Speter 1234990075Sobrien * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 1235090075Sobrien (layout_basetypes): Remove. 1235190075Sobrien * class.c (propagate_binfo_offsets): Moved here from tree.c. 1235290075Sobrien Update to handle primary virtual bases. 1235390075Sobrien (remove_base_fields): New function, split out from 1235490075Sobrien layout_basetypes. 1235590075Sobrien (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 1235690075Sobrien (layout_virtual_bases): New function, split out from 1235790075Sobrien layout_basetypes. Update to handle primary virtual bases. 1235890075Sobrien (layout_basetypes): Moved here from tree.c. Use 1235990075Sobrien remove_base_fields and layout_virtual_bases. 1236090075Sobrien * search.c (dfs_mark_primary_bases_queue_p): New function. 1236190075Sobrien (mark_primary_bases): Use it. 1236290075Sobrien * tree.c (CEIL): Remove. 1236390075Sobrien (propagate_binfo_offsets): Remove. 1236490075Sobrien (layout_basetypes): Remove. 1236518334Speter 1236690075Sobrien2000-01-01 Mark Mitchell <mark@codesourcery.com> 1236718334Speter 1236890075Sobrien * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 1236990075Sobrien (BINFO_PRIMARY_MARKED_P): New macro. 1237090075Sobrien (SET_BINFO_PRIMARY_MARKED_P): Likewise. 1237190075Sobrien (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 1237290075Sobrien (mark_primary_bases): New function. 1237390075Sobrien (unmark_primary_bases): Likewise. 1237490075Sobrien * search.c (get_abstract_virtuals_1): Remove. 1237590075Sobrien (dfs_mark_primary_bases): New function. 1237690075Sobrien (mark_primary_bases): Likewise. 1237790075Sobrien (dfs_unmark_primary_bases): Likewise. 1237890075Sobrien (unmark_primary_bases): Likewise. 1237990075Sobrien (dfs_get_pure_virtuals): Likewise. 1238018334Speter 1238190075Sobrien2000-01-01 Mark Mitchell <mark@codesourcery.com> 1238218334Speter 1238390075Sobrien * cp-tree.h (skip_rtti_stuff): Adjust prototype. 1238490075Sobrien * class.c (skip_rtti_stuff): Reorganize parameters and return value. 1238590075Sobrien (modify_one_vtable): Adjust. 1238690075Sobrien (fixup_vtable_deltas1): Likewise. 1238790075Sobrien (override_one_vtable): Likewise. 1238890075Sobrien * search.c (get_abstract_virtuals_1): Likewise. 1238990075Sobrien (get_pure_virtuals): Likewise. 1239090075Sobrien (expand_upcast_fixups): Likewise. 1239190075Sobrien * tree.c (debug_binfo): Likewise. 1239218334Speter 1239390075Sobrien * class.c (build_vtable): Don't return a value. Don't rebuild 1239490075Sobrien vtables for bases that have already been handled. 1239590075Sobrien (prepare_fresh_vtable): Don't rebuild vtables for bases that have 1239690075Sobrien already been handled. 1239790075Sobrien (modify_one_vtable): Adjust accordingly. 1239890075Sobrien (fixup_vtable_deltas1): Likewise. 1239990075Sobrien (finish_struct_1): Likewise. 1240018334Speter 1240190075Sobrien2000-01-01 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1240218334Speter 1240390075Sobrien * call.c (build_new_method_call): Also check destructors. 12404