ChangeLog revision 52750
152750SobrienSun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com) 252750Sobrien 352750Sobrien * gcc-2.95.2 Released. 452750Sobrien 552750Sobrien1999-09-06 Mark Mitchell <mark@codesourcery.com> 652750Sobrien 752750Sobrien * pt.c (tsubst): Back out 1999-08-06 patch. Use fold and 852750Sobrien decl_constant_value to simplify array bounds. 952750Sobrien 1052750Sobrien1999-08-19 Jason Merrill <jason@yorick.cygnus.com> 1152750Sobrien 1252750Sobrien * cp-tree.h: Declare flag_use_repository. 1352750Sobrien * pt.c (do_decl_instantiation): Don't complain about duplicate 1452750Sobrien instantiation with -frepo. 1552750Sobrien (do_type_instantiation): Likewise. 1652750Sobrien 1752750Sobrien1999-08-14 Jason Merrill <jason@yorick.cygnus.com> 1852750Sobrien 1952750Sobrien * decl2.c (lookup_arg_dependent): Note that we've already checked 2052750Sobrien the current namespace. 2152750Sobrien 2252284SobrienMon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com) 2348743Sobrien 2452284Sobrien * gcc-2.95.1 Released. 2548743Sobrien 2652284Sobrien1999-08-12 Mark Mitchell <mark@codesourcery.com> 2752284Sobrien 2852284Sobrien * decl2.c (lang_decode_option): Deprecate signatures. 2952284Sobrien 3052284Sobrien1999-08-11 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> 3152284Sobrien 3252284Sobrien * lex.c (do_identifier): If we find a hidden type after a global 3352284Sobrien was selected already, continue using the global. 3452284Sobrien 3552284Sobrien1999-08-10 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> 3652284Sobrien 3752284Sobrien * decl2.c (set_decl_namespace): Do not complain about non-matching 3852284Sobrien decls if processing a template. 3952284Sobrien 4052284Sobrien1999-08-09 Jason Merrill <jason@yorick.cygnus.com> 4152284Sobrien 4252284Sobrien * parse.y (function_try_block): Call end_protect_partials 4352284Sobrien before expand_start_all_catch. 4452284Sobrien 4552284Sobrien1999-08-06 Jason Merrill <jason@yorick.cygnus.com> 4652284Sobrien 4752284Sobrien * pt.c (maybe_get_template_decl_from_type_decl): Make sure that 4852284Sobrien we're looking at a class. 4952284Sobrien 5052284Sobrien * decl.c (lookup_name_real): Set the complain flag if we're 5152284Sobrien looking for a namespace member. 5252284Sobrien 5352284Sobrien * decl.c (pushdecl): Only give an error for shadowing a parm 5452284Sobrien from *this* function. 5552284Sobrien 5652284Sobrien * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only 5752284Sobrien build_expr_from_tree on the args of a TEMPLATE_ID_EXPR. 5852284Sobrien 5952284Sobrien * class.c (mark_overriders): Fix order of args to overrides. 6052284Sobrien (warn_hidden): Likewise. Fix for having virtual and non-virtual 6152284Sobrien functions with the same name. 6252284Sobrien 6352284Sobrien * cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro. 6452284Sobrien * typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for 6552284Sobrien virtual functions and MI. Simplify. 6652284Sobrien 6752284Sobrien * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL 6852284Sobrien from op new to warning. 6952284Sobrien 7052284Sobrien * decl2.c (reparse_absdcl_as_casts): Don't warn about old-style 7152284Sobrien casts in system headers or extern "C" blocks. 7252284Sobrien 7352284Sobrien * pt.c (do_decl_instantiation): Downgrade duplicate instantiation 7452284Sobrien errors to pedwarn. 7552284Sobrien 7652284Sobrien * error.c (dump_type_real): Handle TREE_LIST again. 7752284Sobrien 7852284Sobrien * typeck.c (comp_target_parms): Don't complain about 7952284Sobrien converting from () to (...) if !flag_strict_prototype. 8052284Sobrien 8152284Sobrien * class.c (instantiate_type): Downgrade errors for object-dependent 8252284Sobrien memfn refs to pedwarn. 8352284Sobrien 8452284Sobrien1999-08-06 Alexandre Oliva <oliva@dcc.unicamp.br> 8552284Sobrien 8652284Sobrien * pt.c (tsubst): Use build_index_type to build in-template array 8752284Sobrien index type. Fixes g++.oliva/dwarf1.C. 8852284Sobrien * decl.c (grokdeclarator): Likewise, just for consistency, as it 8952284Sobrien doesn't seem to trigger the bug without it. 9052284Sobrien 9152284SobrienThu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) 9252284Sobrien 9352284Sobrien * typeck2.c: Update URLs and mail addresses. 9452284Sobrien 9552284Sobrien1999-08-03 Mumit Khan <khan@xraylith.wisc.edu> 9652284Sobrien 9752284Sobrien * decl.c (start_decl): Set attributes before duplicate_decls call. 9852284Sobrien 9952284SobrienWed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com) 10052284Sobrien 10152284Sobrien * gcc-2.95 Released. 10252284Sobrien 10352284SobrienSun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com) 10452284Sobrien 10552284Sobrien * g++FAQ.texi: Deleted per Joe Buck's request. 10652284Sobrien * Makefile.in: Corresponding changes. 10752284Sobrien 10852284SobrienSat Jul 17 23:50:47 1999 Jeffrey A Law (law@cygnus.com) 10952284Sobrien 11052284Sobrien * Makefile.in (INTERFACE): Bump to 2. 11152284Sobrien 11252284Sobrien1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br> 11352284Sobrien 11452284Sobrien * typeck2.c (my_friendly_abort): Updated URL with bug reporting 11552284Sobrien instructions to gcc.gnu.org. Removed e-mail address. 11652284Sobrien 11752284Sobrien1999-07-15 Mark Mitchell <mark@codesourcery.com> 11852284Sobrien 11952284Sobrien * pt.c (check_default_tmpl_args): Handle friends defined in the 12052284Sobrien class just like member functions defined in the class. 12152284Sobrien 12252284SobrienThu Jul 15 01:26:49 1999 H.J. Lu <hjl@gnu.org> 12352284Sobrien 12452284Sobrien * decl.c (duplicate_decls): Relax restriction for exception 12552284Sobrien checks on duplicate symbols. 12652284Sobrien 12752284Sobrien1999-07-07 Jason Merrill <jason@yorick.cygnus.com> 12852284Sobrien 12952284Sobrien * decl.c (grokdeclarator): Update the names of all variants when 13052284Sobrien de-anonymizing. 13152284Sobrien 13252284SobrienWed Jul 7 01:26:47 1999 Alexandre Oliva <oliva@dcc.unicamp.br> 13352284Sobrien 13452284Sobrien * decl2.c (mark_vtable_entries): Fix check for rtti offset. 13552284Sobrien 13652284Sobrien1999-06-26 Richard Henderson <rth@cygnus.com> 13752284Sobrien 13852284Sobrien * decl.c (cp_finish_decl): Fix typo in cp_warning_at call. 13952284Sobrien 14052284Sobrien1999-06-21 Mark Mitchell <mark@codesourcery.com> 14152284Sobrien 14252284Sobrien * init.c (expand_aggr_vbase_init): Rename to 14352284Sobrien construct_virtual_bases. Conditionalize construction here, 14452284Sobrien rather than ... 14552284Sobrien (emit_base_init): Here. 14652284Sobrien 14752284Sobrien1999-06-19 Mark Mitchell <mark@codesourcery.com> 14852284Sobrien 14952284Sobrien * semantics.c (finish_asm_statement): Apply decay conversions to 15052284Sobrien input operands. 15152284Sobrien 15252284Sobrien * decl.c (expand_static_init): When building an anonymous function 15352284Sobrien for use with atexit, compute its body before and after entering 15452284Sobrien the function. 15552284Sobrien 15652284Sobrien1999-06-18 Mark Mitchell <mark@codesourcery.com> 15752284Sobrien 15852284Sobrien * init.c (expand_aggr_vbase_init): Add flag parameter. 15952284Sobrien (build_partial_cleanup_for): Remove, inlining into .. 16052284Sobrien (expand_cleanup_for_base): ... here. Take flag parameter. 16152284Sobrien (emit_base_init): Pass the in_chrg parameter to 16252284Sobrien emit_aggr_vbase_init. 16352284Sobrien (emit_aggr_vbase_init): Pass it to expand_cleanup_for_base. 16452284Sobrien 16552284Sobrien1999-06-16 Mark Mitchell <mark@codesourcery.com> 16652284Sobrien 16752284Sobrien * decl2.c (import_export_decl): Use same_type_p, rather than 16852284Sobrien relying on pointer-equality for types. 16952284Sobrien 17052284Sobrien * method.c (do_build_copy_constructor): Simplify. 17152284Sobrien 17252284Sobrien * call.c (build_method_call): Remove bogus code for two-argument 17352284Sobrien delete. 17452284Sobrien * init.c (build_new_1): Expand on comment, and remove dead code. 17552284Sobrien 17652284Sobrien * init.c (expand_cleanup_for_base): New function, split out 17752284Sobrien from ... 17852284Sobrien (emit_base_init): Here. 17952284Sobrien (expand_aggr_vbase_init): Use it. 18052284Sobrien 18152284Sobrien1999-06-15 Mark Mitchell <mark@codesourcery.com> 18252284Sobrien 18352284Sobrien * cp-tree.h (class_cache_firstobj): Declare. 18452284Sobrien (maybe_push_cache_obstack): Rename to push_cache_obstack. 18552284Sobrien * class.c (permanent_obstack): Remove declaration. 18652284Sobrien (class_cache_firstobj): Make it global. 18752284Sobrien (add_method): Don't use permanent_obstack directly. 18852284Sobrien (pushclass): Only free the class_cache_obstack if we know how far 18952284Sobrien back to free it. 19052284Sobrien (maybe_push_cache_obstack): Rename to push_cache_obstack. 19152284Sobrien * decl.c: Remove dead comment. 19252284Sobrien (saved_scope): Add class_cache_firstobj. 19352284Sobrien (push_to_top_level): Save it. 19452284Sobrien (pop_from_top_level): Restore it. 19552284Sobrien (push_class_level_binding): Use push_cache_obstack, not 19652284Sobrien maybe_push_cache_obstack. 19752284Sobrien * search.c (push_class_decls): Likewise. 19852284Sobrien 19952284Sobrien1999-06-14 Nathan Sidwell <nathan@acm.org> 20052284Sobrien 20152284Sobrien * call.c (build_new_op): Remove REF_BIND from all operands. 20252284Sobrien 20352284Sobrien1999-06-07 Mark Mitchell <mark@codesourcery.com> 20452284Sobrien 20552284Sobrien * search.c (convert_pointer_to_single_level): Reimplement without 20652284Sobrien using get_binfo. 20752284Sobrien 20852284Sobrien1999-06-06 Mark Mitchell <mark@codesourcery.com> 20952284Sobrien 21052284Sobrien * method.c (is_back_referenceable_type): Back-reference bools when 21152284Sobrien not squangling. 21252284Sobrien 21352284Sobrien1999-06-04 Jason Merrill <jason@yorick.cygnus.com> 21452284Sobrien 21552284Sobrien * semantics.c (finish_if_stmt_cond): Copy cond to permanent_obstack. 21652284Sobrien (finish_while_stmt_cond, finish_do_stmt, finish_for_cond): Likewise. 21752284Sobrien 21852284Sobrien1999-05-30 Mark Mitchell <mark@codesourcery.com> 21952284Sobrien 22052284Sobrien * lex.c (make_lang_type): Create TYPE_BINFO for 22152284Sobrien TEMPLATE_TYPE_PARMs just like for non-template types. 22252284Sobrien 22352284Sobrien1999-05-28 Nathan Sidwell <nathan@acm.org> 22452284Sobrien 22552284Sobrien * decl.c (complete_array_type): Allocate off same obstack. Fix 22652284Sobrien DO_DEFAULT comment to match reality. 22752284Sobrien 22852284Sobrien1999-05-22 Mark Mitchell <mark@codesourcery.com> 22952284Sobrien 23052284Sobrien * tree.c (mapcar): Handle NON_LVALUE_EXPR. 23152284Sobrien 23252284Sobrien1999-05-21 Mark Mitchell <mark@codesourcery.com> 23352284Sobrien 23452284Sobrien * typeck.c (build_ptrmemfunc): Handle PTRMEM_CSTs carefully to 23552284Sobrien reveal optimization opportunities. 23652284Sobrien 23752284Sobrien1999-05-20 Mark Mitchell <mark@codesourcery.com> 23852284Sobrien 23952284Sobrien * decl.c (grokdeclarator): Don't treat [] as indicating a 24052284Sobrien zero-sized array in a typedef. 24152284Sobrien 24252284Sobrien * call.c (build_object_call): Don't look at DECL_NAME for a type. 24352284Sobrien (pt.c): Or CP_TYPE_QUALS for an ERROR_MARK. 24452284Sobrien (typeck.c): Or TYPE_MAIN_VARIANT for a type. 24552284Sobrien 24652284Sobrien1999-05-20 Jason Merrill <jason@yorick.cygnus.com> 24752284Sobrien 24852284Sobrien * tree.c (lvalue_p_1): A NOP_EXPR can be an lvalue. 24952284Sobrien (build_cplus_new): Make sure that what we return is of the right type. 25052284Sobrien 25152284Sobrien1999-05-20 Mark Mitchell <mark@codesourcery.com> 25252284Sobrien 25352284Sobrien * cp-tree.h (make_ptrmem_cst): New function. 25452284Sobrien * expr.c (cplus_expand_constant): Split out from ... 25552284Sobrien (cplus_expand_expr): Here. Use cplus_expand_constant. 25652284Sobrien (init_cplus_expand): Set lang_expand_constant. 25752284Sobrien * pt.c (convert_nontype_argument): Use make_ptrmem_cst. 25852284Sobrien * tree.c (make_ptrmem_cst): Define. 25952284Sobrien * typeck.c (unary_complex_lvalue): Use make_ptrmem_cst. 26052284Sobrien * typeck2.c (initializer_constant_valid_p): Use make_ptrmem_cst. 26152284Sobrien 26252284Sobrien1999-05-19 Mark Mitchell <mark@codesourcery.com> 26352284Sobrien 26452284Sobrien * decl2.c (start_static_storage_duration_function): Fix comment. 26552284Sobrien (finish_file): Create static storage duration functions lazily. 26652284Sobrien 26752284SobrienWed May 19 02:50:53 1999 Arvind Sankar <arvinds@mit.edu> 26852284Sobrien 26952284Sobrien * gxxint.texi: Fix typo. 27052284Sobrien 27152284Sobrien1999-05-18 Jason Merrill <jason@yorick.cygnus.com> 27252284Sobrien 27352284Sobrien * call.c (joust): Compare the types of the conv ops, not the 27452284Sobrien target types of the conversions. 27552284Sobrien 27652284SobrienTue May 18 00:21:34 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> 27752284Sobrien 27852284Sobrien * lang-specs.h: Define __GNUC__ and __GNUC_MINOR__ only if -no-gcc 27952284Sobrien was not given. 28052284Sobrien 28152284Sobrien1999-05-17 Mark Mitchell <mark@codesourcery.com> 28252284Sobrien 28352284Sobrien * cp-tree.def (TEMPLATE_ID_EXPR): Update documentation. 28452284Sobrien * decl.c (grokfndecl): Don't allow inline declarations of friend 28552284Sobrien template specializations, or friend template specializations with 28652284Sobrien default arguments. 28752284Sobrien * pt.c (tsubst): Handle substitution into array types that does 28852284Sobrien not yield a fixed upper bound, even when not processing a 28952284Sobrien template. 29052284Sobrien (tsubst_copy): Deal with the fact that the second operand to a 29152284Sobrien TEMPLATE_ID_EXPR may be NULL_TREE, a TREE_LIST, or a TREE_VEC. 29252284Sobrien * search.c (marked_pushdecls_p): Don't descend into 29352284Sobrien TEMPLATE_TYPE_PARMs and the like. 29452284Sobrien (unmarked_pushdecls_p): Likewise. 29552284Sobrien 29652284Sobrien * call.c (build_over_call): Don't throw away 29752284Sobrien initializations/copies of empty classes; use MODIFY_EXPR and 29852284Sobrien INIT_EXPR as for non-empty classes. 29952284Sobrien * class.c (finish_struct_1): Put the padding byte for an empty 30052284Sobrien class on the TYPE_NONCOPIED_PARTS list for the class. 30152284Sobrien 30252284Sobrien1999-05-16 Mark Mitchell <mark@codesourcery.com> 30352284Sobrien 30452284Sobrien * decl2.c (build_expr_from_tree): Handle COMPONENT_REFs that 30552284Sobrien indicate a reference to a field that is a qualified name. 30652284Sobrien 30752284Sobrien1999-05-16 Jason Merrill <jason@yorick.cygnus.com> 30852284Sobrien 30952284Sobrien * decl2.c (finish_objects): Don't use .?tors.* if we don't have 31052284Sobrien ASM_OUTPUT_CONSTRUCTOR. 31152284Sobrien 31252284Sobrien * friend.c (do_friend): Add attrlist arg. Remove support for 31352284Sobrien getting a non-decl as 'decl'. 31452284Sobrien * decl.c (grokfndecl): Remove attrlist arg. Don't set attrs or 31552284Sobrien rtl. 31652284Sobrien (grokdeclarator): Adjust. 31752284Sobrien * cp-tree.h: Adjust. 31852284Sobrien 31952284Sobrien1999-05-16 Mark Mitchell <mark@codesourcery.com> 32052284Sobrien 32152284Sobrien * cp-tree.h (permanent_p): New function. 32252284Sobrien * init.c (build_new_1): Use mapcar, not copy_node, to copy a 32352284Sobrien possibly complex tree node. 32452284Sobrien * tree.c (mapcar): Adjust comments, and follow coding standards in 32552284Sobrien conditional. 32652284Sobrien (permanent_p): New function. 32752284Sobrien 32852284Sobrien1999-05-13 Per Bothner <bothner@cygnus.com> 32952284Sobrien 33052284Sobrien * class.c (push_lang_context): Turn off DECL_IGNORED_P for 33152284Sobrien primitive Java types, if we actually see `extern "Java"'. 33252284Sobrien 33352284Sobrien1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> 33452284Sobrien 33552284Sobrien * lang-specs.h: Pass -$ to the preprocessor. 33652284Sobrien 33752284Sobrien1999-05-10 Jason Merrill <jason@yorick.cygnus.com> 33852284Sobrien 33952284Sobrien * init.c (build_offset_ref): Wrap baselinks in OFFSET_REF, too. 34052284Sobrien Don't bother wrapping an OFFSET_TYPE around unknown_type_node. 34152284Sobrien (resolve_offset_ref): Don't handle a raw baselink. 34252284Sobrien * cvt.c (build_expr_type_conversion): Likewise. 34352284Sobrien * typeck.c (decay_conversion, build_c_cast, convert_for_assignment, 34452284Sobrien convert_for_initialization): Likewise. 34552284Sobrien * class.c (instantiate_type): Handle seeing a baselink under an 34652284Sobrien OFFSET_REF. 34752284Sobrien * error.c (dump_expr): Likewise. 34852284Sobrien * pt.c (for_each_template_parm): Likewise. 34952284Sobrien (resolve_overloaded_unification): Likewise. 35052284Sobrien * tree.c (is_overloaded_fn, really_overloaded_fn): Likewise. 35152284Sobrien * typeck.c (expr_sizeof): Also complain about other permutations 35252284Sobrien of overloaded functions. 35352284Sobrien 35452284Sobrien1999-05-07 Jason Merrill <jason@yorick.cygnus.com> 35552284Sobrien 35652284Sobrien * init.c (resolve_offset_ref): Don't return a raw method. 35752284Sobrien Use BASELINK_P. 35852284Sobrien * typeck.c (decay_conversion): Don't handle a raw method. 35952284Sobrien Resolve all OFFSET_REFs. 36052284Sobrien (get_member_function_from_ptrfunc): 0 is a valid vtable index. 36152284Sobrien (build_binary_op_nodefault): Handle resolving overloaded fns. Use 36252284Sobrien same_type_p for pmf bits. Don't use build_binary_op to compare 36352284Sobrien raw pointers to methods. 36452284Sobrien (convert_for_assignment): Check for OFFSET_REF, not OFFSET_TYPE, 36552284Sobrien to decide when to call resolve_offset_ref. 36652284Sobrien (build_c_cast, convert_for_initialization): Likewise. 36752284Sobrien * cvt.c (build_expr_type_conversion): Likewise. 36852284Sobrien 36952284Sobrien1999-05-06 Nathan Sidwell <nathan@acm.org> 37052284Sobrien 37152284Sobrien * call.c (build_new_method_call): Use TYPE_MAIN_VARIANT of class. 37252284Sobrien 37352284Sobrien1999-05-05 Mark Mitchell <mark@codesourcery.com> 37452284Sobrien 37552284Sobrien * decl2.c (start_objects): Don't let static constructors and 37652284Sobrien destructors get inlined. 37752284Sobrien 37852284Sobrien * parse.y (nested_name_specifier): Make sure ordinary types are 37952284Sobrien complete, just like template types. 38052284Sobrien * parse.c: Regenerated. 38152284Sobrien 38252284Sobrien * pt.c (check_explicit_specialization): Improve error messages. 38352284Sobrien 38452284Sobrien1999-05-04 Martin von L�wis <loewis@informatik.hu-berlin.de> 38552284Sobrien 38652284Sobrien * typeck.c (string_conv_p): Use same_type_p to check whether we 38752284Sobrien try to convert between char and wchar_t. 38852284Sobrien 38952284Sobrien1999-05-03 Mark Mitchell <mark@codesourcery.com> 39052284Sobrien 39152284Sobrien * search.c (lookup_field_r): Set the TREE_TYPE of an ambiguous 39252284Sobrien lookup to error_mark_node here. 39352284Sobrien (lookup_member): Revise documentation. Add comments. Don't set 39452284Sobrien the TREE_TYPE to error_mark_node here, and don't build up an extra 39552284Sobrien TREE_LIST for ambiguous lookups. 39652284Sobrien (setup_class_bindings): Adjust accordingly. 39752284Sobrien (push_class_decls): Revise out-of-date comments. 39852284Sobrien 39952284Sobrien * typeck.c (build_const_cast): Tighten checks for legality. 40052284Sobrien 40152284Sobrien1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 40252284Sobrien 40352284Sobrien * init.c (build_member_call): Lookup names coming from 40452284Sobrien namespace-scoped LOOKUP_EXPR. 40552284Sobrien 40652284Sobrien1999-05-03 Jim Blandy <jimb@zwingli.cygnus.com> 40752284Sobrien 40852284Sobrien * gxxint.texi: Add documentation for 'I'. 40952284Sobrien 41052284Sobrien1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 41152284Sobrien 41252284Sobrien * tinfo.cc (operator==): Qualify type_info with std::. 41352284Sobrien 41452284Sobrien1999-05-02 Mark Mitchell <mark@codesourcery.com> 41552284Sobrien 41652284Sobrien * cp-tree.h (lang_decl_flags): Remove comdat. Updated dummy. 41752284Sobrien (DECL_COMDAT): Remove definition. 41852284Sobrien 41952284Sobrien1999-05-01 Mark Mitchell <mark@codesourcery.com> 42052284Sobrien 42152284Sobrien * decl.c (wrapup_globals_for_namespace): Fix thinko in previous 42252284Sobrien change. 42352284Sobrien 42452284Sobrien1999-04-30 Mark Mitchell <mark@codesourcery.com> 42552284Sobrien 42652284Sobrien * class.c (build_vtable): Use build_lang_decl when building 42752284Sobrien vtables, not just build_decl. 42852284Sobrien (prepare_fresh_vtable): Likewise. 42952284Sobrien * decl.c (wrapup_globals_for_namespace): Mark vtables as 43052284Sobrien DECL_EXTERNAL when calling wrapup_global_declarations. 43152284Sobrien * decl2.c (priority_info_s): Add initializations_p and 43252284Sobrien destructions_p members. 43352284Sobrien (finish_vtable_vardecl): Use TREE_SYMBOL_REFERENCED, not TREE_USED, 43452284Sobrien when deciding what vtables to write out. 43552284Sobrien (ssdf_decls): New variable. 43652284Sobrien (ssdf_decls_used): Likewise. 43752284Sobrien (start_static_storage_duration_function): Deal with being called 43852284Sobrien multiple times. Avoid inlining this function. 43952284Sobrien (generate_inits_for_priority): Deal with reuse of priority map. 44052284Sobrien (get_priority_info): Clear initializations_p and destructions_p. 44152284Sobrien (do_static_initialization): Tweak comment. 44252284Sobrien (do_static_destruction): Likewise. Fix condition on sentries for 44352284Sobrien destruction. 44452284Sobrien (generate_ctor_or_dtor_function): Call all of the static storage 44552284Sobrien duration functions. 44652284Sobrien (generate_ctor_or_dtor_function_for_priority): Check 44752284Sobrien initializations_p and destructions_p to see what priorities need 44852284Sobrien initialization functions. 44952284Sobrien (finish_file): Rework to generate multiple static storage duration 45052284Sobrien functions, rather than just one. 45152284Sobrien 45252284Sobrien * typeck.c (build_const_cast): Tweak last change to handle 45352284Sobrien templates correctly. 45452284Sobrien 45552284Sobrien * typeck.c (build_const_cast): Disallow use of const_cast to 45652284Sobrien anything but a pointer or reference type. 45752284Sobrien 45852284Sobrien1999-04-30 Nathan Sidwell <nathan@acm.org> 45952284Sobrien 46052284Sobrien * decl.c (cp_finish_decl): Don't permit arrays of abstract or 46152284Sobrien signature type. 46252284Sobrien 46352284Sobrien1999-04-29 Mark Mitchell <mark@codesourcery.com> 46452284Sobrien 46552284Sobrien * decl2.c (do_static_destruction): Remove obsolete FIXME comment. 46652284Sobrien (finish_file): Indent comments properly. 46752284Sobrien 46852284Sobrien1999-04-29 Richard Henderson <rth@cygnus.com> 46952284Sobrien 47052284Sobrien * decl2.c (do_static_initialization): Call do_pending_stack_adjust. 47152284Sobrien (do_static_destruction): Likewise. 47252284Sobrien 47352284Sobrien1999-04-29 Nathan Sidwell <nathan@acm.org> 47452284Sobrien 47552284Sobrien * cp-tree.h (TYPE_NOTHROW_P): New macro. 47652284Sobrien * decl2.c (delete_sanity): Warn on deleting void *. 47752284Sobrien * init.c (build_new_1): Use TYPE_NOTHROW_P. 47852284Sobrien * typeck.c (c_expand_return): cp_pedwarn on returning NULL from 47952284Sobrien throwing operator new. 48052284Sobrien 48152284Sobrien1999-04-28 Nathan Sidwell <nathan@acm.org> 48252284Sobrien 48352284Sobrien * cp-tree.h (build_component_addr): Remove prototype. 48452284Sobrien * typeck.c (build_component_addr): Make static. Remove MSG 48552284Sobrien argument. 48652284Sobrien (build_component_addr): Remove MSG parameter, clean up 48752284Sobrien comment. 48852284Sobrien (build_x_function_call): Use cp_error. 48952284Sobrien (build_unary_op): Adjust call of build_component_addr. 49052284Sobrien 49152284Sobrien1999-04-28 Mark Mitchell <mark@codesourcery.com> 49252284Sobrien 49352284Sobrien * pt.c (tsubst_friend_class): Check for NULL. 49452284Sobrien 49552284SobrienWed Apr 28 11:42:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> 49652284Sobrien 49752284Sobrien * search.c (binfo_for_vtable): Initialize bfvi.var. 49852284Sobrien 49952284Sobrien1999-04-27 Nathan Sidwell <nathan@acm.org> 50052284Sobrien 50152284Sobrien * rtti.c (build_x_typeid): Check rtti is enabled. 50252284Sobrien 50352284Sobrien1999-04-26 Mark Mitchell <mark@codesourcery.com> 50452284Sobrien 50552284Sobrien * search.c (is_subobject_of_p): Make sure we're looking at the 50652284Sobrien right baseclasses. 50752284Sobrien 50852284Sobrien1999-04-26 Marc Espie <espie@cvs.openbsd.org> 50952284Sobrien 51052284Sobrien * Make-lang.in (cplib2.ready): Don't depend on phony targets. 51152284Sobrien 51252284Sobrien1999-04-23 Mark Mitchell <mark@codesourcery.com> 51352284Sobrien 51452284Sobrien * decl2.c (finish_file): Tweak handling of extern inlines so that 51552284Sobrien they are not unnecessarily put out. 51652284Sobrien 51752284Sobrien * search.c (is_subobject_of_p): Handle TEMPLATE_TYPE_PARMs and 51852284Sobrien such as base classes. 51952284Sobrien 52052284Sobrien1999-04-22 Brendan Kehoe <brendan@cygnus.com> 52152284Sobrien 52252284Sobrien * tree.c (build_exception_variant): Fix typo: use the chain of U, 52352284Sobrien not trying V, while cycling through U. 52452284Sobrien 52552284Sobrien1999-04-22 Mark Mitchell <mark@codesourcery.com> 52652284Sobrien 52752284Sobrien * cp-tree.h (lang_decl_flags): Remove returns_first_arg and 52852284Sobrien preserves_first_arg. Enlarge dummy accordingly. 52952284Sobrien (DECL_TINFO_FN_P): New macro. 53052284Sobrien (SET_DECL_TINFO_FN_P): Likeiwse. 53152284Sobrien (DECL_RETURNS_FIRST_ARG): Remove. 53252284Sobrien (DECL_PRESERVES_THIS): Likewise. 53352284Sobrien (DECL_INIT_PRIORITY): New macro. 53452284Sobrien (finish_struct_1): Change prototype. 53552284Sobrien (cat_namespace_levels): Remove prototype. 53652284Sobrien (vtable_decl_p): New prototype. 53752284Sobrien (vtype_decl_p): Likewise. 53852284Sobrien (sigtable_decl_p): Likewise. 53952284Sobrien (walk_globals_pred): New typedef. 54052284Sobrien (walk_globals_fn): Likewise. 54152284Sobrien (walk_globals): New prototype. 54252284Sobrien (walk_namespaces_fn): New typedef. 54352284Sobrien (walk_namespaces): New prototype. 54452284Sobrien (wrapup_globals_for_namespace): Likewise. 54552284Sobrien (walk_vtables): Remove prototype. 54652284Sobrien (walk_sigtables): Likewise. 54752284Sobrien (instantiate_pending_templates): New prototype. 54852284Sobrien * class.c (finish_struct_1): Don't return a value. 54952284Sobrien * decl.h (pending_statics): Remove declaration. 55052284Sobrien * decl.c (walk_namespaces_r): New function. 55152284Sobrien (walk_globals_r): Likewise. 55252284Sobrien (vtable_decl_p): Likewise. 55352284Sobrien (vtype_decl_p): Likewise. 55452284Sobrien (sigtable_decl_p): Likewise. 55552284Sobrien (walk_namespaces): Likewise. 55652284Sobrien (walk_globals_data): New type. 55752284Sobrien (walk_globals): New function. 55852284Sobrien (wrapup_globals_for_namespace): Likewise. 55952284Sobrien (expand_static_init): Remove assertion. Remove redundancy in 56052284Sobrien conditional. Don't put static data members in static_aggregates 56152284Sobrien Tidy. 56252284Sobrien (finish_function): Remove redundancy in conditional. Don't set 56352284Sobrien DECL_RETURNS_FIRST_ARG. 56452284Sobrien (cat_namespace_levels): Remove. 56552284Sobrien * decl2.c: Include splay-tree.h and varray.h. 56652284Sobrien (priority_info_s): New structure. 56752284Sobrien (finish_vtable_vardecl): Change prototype. Adjust for new calling 56852284Sobrien conventions. 56952284Sobrien (prune_vtable_vardecl): Likewise. 57052284Sobrien (finish_sigtable_vardecl): Likewise. 57152284Sobrien (setup_initp): Remove. 57252284Sobrien (do_dtors): Remove. 57352284Sobrien (do_ctors): Remove. 57452284Sobrien (start_static_storage_duration_function): New function. 57552284Sobrien (generate_inits_for_priority): Likewise. 57652284Sobrien (finish_static_storage_duration_function): Likewise. 57752284Sobrien (get_priority_info): Likewise. 57852284Sobrien (do_static_initialization): Likewise. 57952284Sobrien (do_static_destruction): Likewise. 58052284Sobrien (do_static_initialization_and_destruction): Likewise. 58152284Sobrien (generate_ctor_or_dtor_function): Likewise. 58252284Sobrien (generate_ctor_and_dtor_functions_for_priority): Likewise. 58352284Sobrien (pending_statics): Make it a varray. 58452284Sobrien (pending_statics_used): New variable. 58552284Sobrien (saved_inlines): Make it a varray. 58652284Sobrien (saved_inlines_used): New variable. 58752284Sobrien (finish_static_data_member): Change method of updating 58852284Sobrien pending_statics. 58952284Sobrien (mark_inline_for_output): Remove #if 0'd code. Change method of 59052284Sobrien updating saved_inlines. 59152284Sobrien (walk_vtables): Remove. 59252284Sobrien (walk_sigtables): Likewise. 59352284Sobrien (import_export_decl): Use DECL_TINFO_FN_P. 59452284Sobrien (pending_templates): Remove declaration. 59552284Sobrien (maybe_templates): Likewise. 59652284Sobrien (static_aggregates_initp): Likewise. 59752284Sobrien (setup_initp): Likewise. 59852284Sobrien (finish_objects): Simplify. 59952284Sobrien (INITIALIZE_P_IDENTIFIER): New macro. 60052284Sobrien (PRIORITY_IDENTIFIER): New macro. 60152284Sobrien (SSDF_IDENTIFIER): New macro. 60252284Sobrien (initialize_p_decl): New variable. 60352284Sobrien (priority_decl): Likewise. 60452284Sobrien (ssdf_decl): Likewise. 60552284Sobrien (priority_info_map): Likewise. 60652284Sobrien (finish_file): Recode output of static intializers and other 60752284Sobrien file-scope finalization tasks. 60852284Sobrien * error.c (OB_END_TEMPLATE_ID): New macro. 60952284Sobrien (dump_type_real): Use it. 61052284Sobrien (dump_decl): Likewise. 61152284Sobrien (dump_function_name): Likewise. 61252284Sobrien * lex.c (set_typedecl_interface_info): Adjust for new walk_globals 61352284Sobrien interface. 61452284Sobrien (check_newline): Use walk_globals, not walk_vtables. 61552284Sobrien * pt.c (pending_tempalte_expansions): Remove. 61652284Sobrien (set_vardecl_interface_info): Likewise. 61752284Sobrien (pending_templates): Make static. 61852284Sobrien (maybe_templates): Likewise. 61952284Sobrien (instantiate_class_template): Adjust call to finish_struct_1. 62052284Sobrien (instantiate_pending_templates): New function. 62152284Sobrien * rtti.c (get_tinfo_fn): Use SET_DECL_TINFO_FN_P. 62252284Sobrien * tree.c (static_aggregates_initp): Remove. 62352284Sobrien (cp_valid_lang_attribute): Don't use it; use DECL_INIT_PRIORITY 62452284Sobrien instead. 62552284Sobrien * Makefile.in (decl2.o): Depend on varray.h and splay-tree.h. 62652284Sobrien 62752284Sobrien * gxx.gperf (RETURN): Rename to RETURN_KEYWORD to avoid clashes 62852284Sobrien with the RTL code RETURN. 62952284Sobrien * hash.h: Regenerated. 63052284Sobrien * lex.c (reinit_parse_for_block): Use RETURN_KEYWORD. 63152284Sobrien * parse.y: Replace RETURN with RETURN_KEYWORD throughout. 63252284Sobrien * parse.c: Regenerated. 63352284Sobrien * pt.c: Include varray.h. Include rtl.h since varray.h requires 63452284Sobrien it. 63552284Sobrien (inline_parm_levels): New variable. 63652284Sobrien (inline_parm_levels_used): Likewise. 63752284Sobrien (maybe_begin_member_template_processing): Update them. 63852284Sobrien (maybe_end_member_template_processing): Use them, rather than 63952284Sobrien guessing how many levels to pop. 64052284Sobrien 64152284Sobrien * decl.c (make_typename_type): Tighten error-checking. 64252284Sobrien 64352284Sobrien1999-04-20 Mark Mitchell <mark@codesourcery.com> 64452284Sobrien 64552284Sobrien * cp-tree.h (build_binary_op): Remove unneeded parameter. 64652284Sobrien * class.c (build_vrable_entry_ref): Adjust call to 64752284Sobrien build_binary_op. 64852284Sobrien * decl.c (expand_static_init): Likewise. 64952284Sobrien (grokdeclarator): Likewise. 65052284Sobrien (finish_function): Likewise. 65152284Sobrien * decl2.c (delete_sanity): Likewise. 65252284Sobrien (do_dtors): Likewise. 65352284Sobrien (do_ctors): Likewise. 65452284Sobrien * error.c (dump_type_suffix): Likewise. 65552284Sobrien * expr.c (cplus_expand_expr): Likewise. 65652284Sobrien * init.c (resolve_offset_ref): Likewise. 65752284Sobrien (build_new): Likewise. 65852284Sobrien (build_new_1): Likewise. 65952284Sobrien (build_vec_delete_1): Likewise. 66052284Sobrien (expand_vec_init_catch_clause): Likewise. 66152284Sobrien (build_delete): Likewise. 66252284Sobrien * pt.c (tsubst): Likewise. 66352284Sobrien * rtti.c (synthesize_tinfo_fn): Likewise. 66452284Sobrien * search.c (expand_upcast_fixups): Likewise. 66552284Sobrien (expand_direct_vtbls_init): Likewise. 66652284Sobrien * typeck.c (get_member_function_from_ptrfunc): Likewise. 66752284Sobrien (build_binary_op_nodefault): Likewise. 66852284Sobrien (point_int_sum): Likewise. 66952284Sobrien (pointer_diff): Likewise. 67052284Sobrien (build_unary_op): Likewise. 67152284Sobrien (build_modify_expr): Likewise. 67252284Sobrien (get_delta_difference): Likewise. 67352284Sobrien (build_ptrmemfunc): Likewise. 67452284Sobrien (expand_ptrmemfunc_cst): Likewise. 67552284Sobrien 67652284Sobrien1999-04-20 Jason Merrill <jason@yorick.cygnus.com> 67752284Sobrien 67852284Sobrien * decl.c (grokfndecl): Always call cplus_decl_attributes. 67952284Sobrien * decl2.c (grokfield): Pass attrlist to grokdeclarator. 68052284Sobrien 68152284Sobrien1999-04-19 Mark Mitchell <mark@codesourcery.com> 68252284Sobrien 68352284Sobrien * cp-tree.h (finish_static_data_member_decl): New function. 68452284Sobrien * decl2.c (finish_static_data_member_decl): Split out from ... 68552284Sobrien (grokfield): Here. 68652284Sobrien * pt.c (instantiate_class_template): Use it here instead of 68752284Sobrien trying to fake it. 68852284Sobrien (tsubst_decl): Don't set DECL_ASSEMBLER_NAME; 68952284Sobrien finish_static_data_member_decl will do that. Explicit set 69052284Sobrien DECL_EXTERNAL to match non-template processing. 69152284Sobrien 69252284Sobrien1999-04-18 Mark Mitchell <mark@codesourcery.com> 69352284Sobrien 69452284Sobrien * cp-tree.h (finish_class_definition): Add parameter. 69552284Sobrien * parse.y (structsp): Use it. Don't call pop_scope here. 69652284Sobrien * parse.c: Regenerated. 69752284Sobrien * semantics.c (finish_class_definition): Pop it here. 69852284Sobrien 69952284Sobrien1999-04-17 Mark Mitchell <mark@codesourcery.com> 70052284Sobrien 70152284Sobrien * decl.c (xref_tag): Revise handling of nested template 70252284Sobrien declarations. 70352284Sobrien * pt.c (check_explicit_specialization): Tweak handling of friend 70452284Sobrien templates in template classes. 70552284Sobrien (tsubst_friend_class): Handle friend declarations for nested 70652284Sobrien member template classes. 70752284Sobrien 70852284Sobrien1999-04-16 Mark Mitchell <mark@codesourcery.com> 70952284Sobrien 71052284Sobrien * class.c (finish_struct): Remove unused variable. 71152284Sobrien (pushclass): Likewise. 71252284Sobrien (invalidate_class_lookup_cache): Likewise. 71352284Sobrien * cp-tree.def (TYPENAME_TYPE): Improve documentation. 71452284Sobrien * decl.c (build_typename_type): Make sure TYPENAME_TYPE_FULLNAME 71552284Sobrien doesn't get obliterated. 71652284Sobrien (make_typename_type): Handle template classes correctly. 71752284Sobrien 71852284Sobrien * cp-tree.h (TREE_NONLOCAL_FLAG): Remove. 71952284Sobrien (storetags): Declare. 72052284Sobrien * class.c (finish_struct): Don't use TREE_NONLOCAL_FLAG. 72152284Sobrien (pushclass): Likewise. Use storetags to install tag declarations, 72252284Sobrien not pushtag. 72352284Sobrien (invalidate_class_lookup_cache): Don't use TREE_NONLOCAL_FLAG. 72452284Sobrien * decl.c (storetags): Make it global. 72552284Sobrien (push_class_binding): Set INHERITED_VALUE_BINDING_P for an 72652284Sobrien implicit typename declaration. 72752284Sobrien (pushtag): Tidy. Don't use TREE_NONLOCAL_FLAG. 72852284Sobrien * method.c (hack_identifier): Likewise. 72952284Sobrien * search.c (lookup_member): Likewise. 73052284Sobrien 73152284Sobrien * decl.c (warn_about_implicit_typename_lookup): New function. 73252284Sobrien (lookup_name_real): Use it. Rework handling of implicit typename 73352284Sobrien extension. 73452284Sobrien 73552284Sobrien1999-04-15 Mark Mitchell <mark@codesourcery.com> 73652284Sobrien 73752284Sobrien * cp-tree.h (lookup_nested_field): Remove. 73852284Sobrien * class.c (push_nested_class): Handle UNION_TYPEs. 73952284Sobrien (pop_nested_class): Likewise. 74052284Sobrien * decl.c (lookup_name_real): Don't call lookup_nested_field. 74152284Sobrien (start_decl): Use push_nested_class, not just pushclass. 74252284Sobrien (cp_finish_decl): Use pop_nested_class, not just popclass. 74352284Sobrien * search.c (lookup_nested_field): Remove. 74452284Sobrien 74552284Sobrien * cp-tree.h (lang_type): Add documentation. 74652284Sobrien * decl2.c (handle_class_head): Create template declarations here, 74752284Sobrien as appropriate. 74852284Sobrien * parse.y (class_head): Return whether or not we entered a new 74952284Sobrien scope, as well as the type named. 75052284Sobrien (named_class_head): Likewise. 75152284Sobrien (named_complex_class_head_sans_basetype): Likewise. 75252284Sobrien (structsp): Adjust accordingly. Pop scope when required. 75352284Sobrien * parse.c: Regenerated. 75452284Sobrien * pt.c (check_default_tmpl_args): Robustify. 75552284Sobrien (redeclare_class_template): Likewise. 75652284Sobrien (instantiate_class_template): An instantiation of an 75752284Sobrien anonymous union is itself an anonymous union. 75852284Sobrien * semantics.c (begin_class_definition): Don't create template 75952284Sobrien declarations here. 76052284Sobrien 76152284Sobrien1999-04-15 Jason Merrill <jason@yorick.cygnus.com> 76252284Sobrien 76352284Sobrien * parse.y (after_type_declarator_intern): New nonterminal. 76452284Sobrien (after_type_declarator): Use it. 76552284Sobrien (direct_after_type_declarator): Likewise. Move above 76652284Sobrien nonnested_type to fix reduce/reduce conflict resolution. 76752284Sobrien (declmods): Reducing from just 'attributes' has EMPTY precedence. 76852284Sobrien * Makefile.in (CONFLICTS): Update. 76952284Sobrien 77052284Sobrien * decl.c (define_label): Downgrade error for jumping over a 77152284Sobrien non-POD decl to pedwarn. 77252284Sobrien 77352284Sobrien1999-04-14 Mark Mitchell <mark@codesourcery.com> 77452284Sobrien 77552284Sobrien * cp-tree.h (popclass): Change declaration. 77652284Sobrien (pop_nested_class): Likewise. 77752284Sobrien (poplevel_class): Remove declaration. 77852284Sobrien * call.c (convert_default_argument): Pass no arguments to 77952284Sobrien popclass. 78052284Sobrien * class.c (finish_struct_1): Likewise. 78152284Sobrien (finish_struct): Likewise. 78252284Sobrien (popclass): Remove argument. Simplify code accordingly. 78352284Sobrien (pop_nested_class): Likewise. 78452284Sobrien * decl.c (poplevel_class): Declare it here, and make it static. 78552284Sobrien (poplevel): Handle class scopes. 78652284Sobrien (poplevel_class): Don't take an rgument. Simplify. 78752284Sobrien (pop_everything): Pass no arguments to pop_nested_class. 78852284Sobrien (cp_finish_decl): Pass no arguments to popclass. 78952284Sobrien (grokdeclarator): Pass no arguments to pop_nested_class. 79052284Sobrien (finish_function): Likewise. 79152284Sobrien * decl2.c (grokfield): Likewise. 79252284Sobrien (pop_scope): Pass no arguments to popclass. 79352284Sobrien * lex.c (do_pending_defargs): Pass no arguments to pop_nested_class. 79452284Sobrien * pt.c (instantiate_class_template): Move call to pushclass, and 79552284Sobrien document. Pass no arguments to popclass. 79652284Sobrien (regenerate_decl_from_template): Likewise. 79752284Sobrien 79852284Sobrien1999-04-14 Jason Merrill <jason@yorick.cygnus.com> 79952284Sobrien 80052284Sobrien * typeck.c (build_unary_op): Handle taking the address of a unique 80152284Sobrien bound non-static member function. 80252284Sobrien 80352284Sobrien1999-04-13 Martin von Loewis <loewis@informatik.hu-berlin.de> 80452284Sobrien 80552284Sobrien * lang-options.h (-Wdeprecated): New flag. 80652284Sobrien * decl2.c (warn_deprecated): New flag. 80752284Sobrien (lang_decode_option): Deprecated this-is-variable, 80852284Sobrien external-templates, alt-external-templates. 80952284Sobrien Support -Wdeprecated. 81052284Sobrien * errfn.c (cp_deprecated): New function. 81152284Sobrien 81252284Sobrien1999-04-13 Jason Merrill <jason@yorick.cygnus.com> 81352284Sobrien 81452284Sobrien * decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead 81552284Sobrien of the decls themselves. 81652284Sobrien 81752284Sobrien * pt.c (tsubst_function_type): Copy attributes over. 81852284Sobrien 81952284Sobrien * tree.c (cp_valid_lang_attribute): New fn. Handle init_priority 82052284Sobrien and com_interface. 82152284Sobrien * cp-tree.h: Add prototype. 82252284Sobrien * decl.c (init_decl_processing): Set valid_lang_attribute. 82352284Sobrien 82452284Sobrien1999-04-13 Mark Mitchell <mark@codesourcery.com> 82552284Sobrien 82652284Sobrien * class.c (finish_struct_1): Look at the const-ness of the field's 82752284Sobrien type, not the TREE_READONLY-ness of the declaration. 82852284Sobrien * method.c (synthesize_method): Likewise. 82952284Sobrien * pt.c (tsubst_decl): Call c_apply_type_quals_to_decl when 83052284Sobrien creating new declarations. 83152284Sobrien 83252284Sobrien1999-04-13 Mike Stump <mrs@wrs.com> 83352284Sobrien 83452284Sobrien * decl2.c (import_export_decl): Because vtables always reference 83552284Sobrien virtual functions, even if they are inlined, don't allow 83652284Sobrien -fno-implement-inlines to not emit them, instead, emit them with 83752284Sobrien the vtable. 83852284Sobrien * decl.c (start_function): Likewise. 83952284Sobrien 84052284Sobrien1999-04-12 Jason Merrill <jason@yorick.cygnus.com> 84152284Sobrien 84252284Sobrien * cp-tree.h (struct lang_type): Add com_interface. 84352284Sobrien (CLASSTYPE_COM_INTERFACE): New macro. 84452284Sobrien * class.c (set_rtti_entry): COM interface classes have no RTTI 84552284Sobrien entries in their vtables; adjust. 84652284Sobrien (add_virtual_function, finish_base_struct, skip_rtti_stuff, 84752284Sobrien modify_one_vtable, fixup_vtable_deltas1, override_one_vtable, 84852284Sobrien finish_struct_1): Likewise. 84952284Sobrien * decl2.c (mark_vtable_entries): Likewise. 85052284Sobrien * rtti.c (build_headof, get_tinfo_fn_dynamic): Likewise. 85152284Sobrien * search.c (get_abstract_virtuals_1, get_abstract_virtuals, 85252284Sobrien expand_upcast_fixups): Likewise. 85352284Sobrien * tree.c (debug_binfo): Likewise. 85452284Sobrien 85552284Sobrien * cp-tree.h (COMPARE_NO_ATTRIBUTES): New macro. 85652284Sobrien * typeck.c (comptypes): If we get it, ignore attributes. 85752284Sobrien * class.c (instantiate_type): Use BASELINK_P. Change complain 85852284Sobrien parameter to flags; 2 means ignore attributes. 85952284Sobrien * call.c (build_op_delete_call): Pass it. 86052284Sobrien 86152284Sobrien * decl.c (xref_tag): Only complain once about using a typedef-name 86252284Sobrien with 'struct'. Downgrade to pedwarn. 86352284Sobrien 86452284Sobrien * decl.c (grokdeclarator): Allow [] syntax for zero-length array. 86552284Sobrien 86652284Sobrien * parse.y (absdcl_intern): New nonterminal. 86752284Sobrien (absdcl, direct_abstract_declarator): Use it. 86852284Sobrien 86952284Sobrien * pt.c (lookup_template_class): Look through implict typename. 87052284Sobrien 87152284Sobrien1999-04-11 Mark Mitchell <mark@codesourcery.com> 87252284Sobrien 87352284Sobrien * friend.c (add_friend): Deal gracefully with error_mark_node. 87452284Sobrien * method.c (build_overload_value): Handle pointers-to-members as 87552284Sobrien template parameters. 87652284Sobrien 87752284Sobrien * decl.c (push_binding): Fix typo in comment. 87852284Sobrien 87952284Sobrien1999-04-10 Mark Mitchell <mark@codesourcery.com> 88052284Sobrien 88152284Sobrien * error.c (dump_type_real): If a typename is a template-id, put 88252284Sobrien out the template arguments. 88352284Sobrien (dump_expr): Handle TEMPLATE_ID_EXPR. 88452284Sobrien * pt.c (lookup_template_class): Now that full arguments are 88552284Sobrien available everywhere, remove code that tried to guess them. 88652284Sobrien 88752284Sobrien1999-04-09 Mark Mitchell <mark@codesourcery.com> 88852284Sobrien 88952284Sobrien * decl.c (make_typename_type): Complain if we don't find a type 89052284Sobrien when trying to make a typename type for a non-template type. 89152284Sobrien 89252284Sobrien1999-04-09 Jason Merrill <jason@yorick.cygnus.com> 89352284Sobrien 89452284Sobrien * decl.c (start_decl): Pass attributes to grokdeclarator. 89552284Sobrien (grokdeclarator): Handle attributes on constructor-syntax 89652284Sobrien initializers. 89752284Sobrien 89852284Sobrien1999-04-08 Mark Mitchell <mark@codesourcery.com> 89952284Sobrien 90052284Sobrien * error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands 90152284Sobrien don't have types. 90252284Sobrien 90352284Sobrien * search.c (template_self_reference_p): Tweak. 90452284Sobrien 90552284Sobrien1999-04-07 Mark Mitchell <mark@codesourcery.com> 90652284Sobrien 90752284Sobrien * init.c (build_offset_ref): Don't build yet another weird data 90852284Sobrien structure to describe overloaded functions. 90952284Sobrien 91052284Sobrien1999-04-06 Mark Mitchell <mark@codesourcery.com> 91152284Sobrien 91252284Sobrien * cp-tree.h (BASELINK_P): New macro. 91352284Sobrien (SET_BASELINK_P): Likewise. 91452284Sobrien * init.c (build_member_call): Remove needless assignment in if 91552284Sobrien statement. 91652284Sobrien * search.c (lookup_field_r): Fix handling when we are looking 91752284Sobrien specifically for a type; these are not hidden by functions and 91852284Sobrien variables. 91952284Sobrien (lookup_member): Use SET_BASELINK_P. 92052284Sobrien * tree.c (is_overloaded_fn): Use BASELINK_P. 92152284Sobrien (really_overloaed_fn): Likewise. 92252284Sobrien (get_first_fn): Likewise. 92352284Sobrien 92452284Sobrien1999-04-05 Mark Mitchell <mark@codesourcery.com> 92552284Sobrien 92652284Sobrien * decl.c (lookup_name_current_level): Tweak, and improve 92752284Sobrien documentation. 92852284Sobrien 92952284Sobrien * class.c (maybe_fixup_vptrs): Remove declaration. 93052284Sobrien (build_class_init_list): Likewise. 93152284Sobrien * decl.c (pushdecl_class_level): Call check_template_shadow here 93252284Sobrien ... 93352284Sobrien (push_class_level_binding): ... not here. 93452284Sobrien * search.c (dfs_push_type_decls): Only avoid 93552284Sobrien template-self-reference TYPE_DECLs if they are from base classes. 93652284Sobrien 93752284Sobrien1999-04-04 Mark Mitchell <mark@codesourcery.com> 93852284Sobrien 93952284Sobrien * pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL 94052284Sobrien nodes. Tidy. 94152284Sobrien 94252284Sobrien1999-04-03 Jason Merrill <jason@yorick.cygnus.com> 94352284Sobrien 94452284Sobrien * class.c (maybe_fixup_vptrs, build_class_init_list): Lose. 94552284Sobrien (finish_struct_1): Don't call build_class_init_list. 94652284Sobrien 94752284Sobrien1999-04-02 Mark Mitchell <mark@codesourcery.com> 94852284Sobrien 94952284Sobrien * tinfo.h (__class_type_info): Fix illegal declaration. 95052284Sobrien 95152284Sobrien * cp-tree.def (TEMPLATE_ID_EXPR): Update comment. 95252284Sobrien * cp-tree.h (INHERITED_VALUE_BINDING_P): New macro. 95352284Sobrien (IDENTIFIER_CLASS_VALUE): Improve documentation. 95452284Sobrien (is_properly_derived_from): Declare. 95552284Sobrien (invalidate_class_lookup_cache): Likewise. 95652284Sobrien (maybe_maybe_note_name_used_in_class): Likewise. 95752284Sobrien (note_name_declared_in_class): Likewise. 95852284Sobrien (push_using_decl): Remove duplicate declaration. 95952284Sobrien (id_in_current_class): Remove declaration. 96052284Sobrien (push_class_binding): Change prototype. 96152284Sobrien (clear_identitifer_class_values): Declare. 96252284Sobrien * call.c (is_properly_derived_from): Make it global. 96352284Sobrien (build_new_function_call): Be careful about updating candidates. 96452284Sobrien (build_new_method_call): Handle COMPONENT_REFs. Don't crash when 96552284Sobrien asked to make illegal calls. 96652284Sobrien * class.c: Include splay-tree.h. 96752284Sobrien (class_stack_node): Add names_used slot. 96852284Sobrien (check_member_decl_is_same_in_complete_scope): Remove. 96952284Sobrien (add_method): Fix comment. Push the declaration into class 97052284Sobrien scope. 97152284Sobrien (finish_struct_1): When popping the class, pop the bindings too. 97252284Sobrien Remove check for data member/function member conflict. 97352284Sobrien (finish_struct): Remove calls to 97452284Sobrien check_member_decl_is_same_in_complete_scope. Change calls to 97552284Sobrien popclass. 97652284Sobrien (pushclass): Clear names_used in the class stack entry. 97752284Sobrien Use invalidate_class_lookup_cache to remove cached entries, rather 97852284Sobrien than magic values with popclass. Clear IDENTIFIER_CLASS_VALUE 97952284Sobrien before entering a new class. Remove dead code. Don't mess with 98052284Sobrien current_function_decl when pushing declarations. 98152284Sobrien (invalidate_class_lookup_cache): New function, split out from ... 98252284Sobrien (popclass): Here. Clean up names_used on our way out. 98352284Sobrien (instantiate_type): Adjust. 98452284Sobrien (build_self_reference): Don't push the declaration here. 98552284Sobrien (maybe_note_name_used_in_class): New function. 98652284Sobrien (note_name_declared_in_class): Likewise. 98752284Sobrien * decl.c (add_binding): Change prototype. 98852284Sobrien (find_class_binding_level): New function. 98952284Sobrien (innermost_nonclass_level): Likewise. 99052284Sobrien (current_binding_level): Update documentation. 99152284Sobrien (inner_binding_level): Remove. Replace with current_binding_level 99252284Sobrien throughout. 99352284Sobrien (push_binding_level): Remove special handling of 99452284Sobrien class_binding_level. 99552284Sobrien (pop_binding_level): Likewise. Use find_class_binding_level. 99652284Sobrien (suspend_binding_level): Likewise. 99752284Sobrien (global_bindings_p): Use innermost_nonclass_level. 99852284Sobrien (toplevel_bindings_p): Likewise. 99952284Sobrien (namespace_bindings_p): Likewise. 100052284Sobrien (pseudo_global_level_p): Likewise. 100152284Sobrien (push_binding): Clear INHERITED_VALUE_BINDING_P. 100252284Sobrien (add_binding): Check for illegal multiple declarations. Return a 100352284Sobrien value indicating whether or not the new binding was legal. 100452284Sobrien (push_local_binding): Skip over class binding levels. Check 100552284Sobrien return value from add_binding. 100652284Sobrien (push_class_binding): Set INHERITED_VALUE_BINDING_P. Call 100752284Sobrien note_name_declared_in_class. 100852284Sobrien (pushlevel_class): Remove "fake out the rest of the compiler" 100952284Sobrien code. 101052284Sobrien (poplevel_class): Reset IDENTIFIER_CLASS_VALUEs. 101152284Sobrien (clear_identifier_class_values): New function. 101252284Sobrien (pop_from_top_level): Use it. 101352284Sobrien (pop_everything): Tweak. 101452284Sobrien (maybe_process_template_type_declaration): Don't push the 101552284Sobrien declaration for the template here. 101652284Sobrien (pushtag): Don't push tag declarations into class scope here. 101752284Sobrien (pushdecl): Apply DeMorgan's law for readability. 101852284Sobrien (pushdecl_class_level): Remove special-case code for 101952284Sobrien TYPE_BEING_DEFINED. Handle OVERLOADs and anonymous unions. 102052284Sobrien (push_class_level_bindng): Deal with inherited bindings. 102152284Sobrien (lookup_name_real): Remove special-case code for 102252284Sobrien TYPE_BEING_DEFINED, and some implicit typename magic. 102352284Sobrien (grokdeclarator): Handle COMPONENT_REF for a template function. 102452284Sobrien (build_enumerator): Don't call pushdecl_class_level here. 102552284Sobrien (id_in_current_class): Remove. 102652284Sobrien * decl2.c (grokfield): Don't call pushdecl_class_level or 102752284Sobrien check_template_shadow. 102852284Sobrien * errfn.c (cp_file_of): Don't declare. 102952284Sobrien (cp_line_of): Likewise. 103052284Sobrien * error.c (dump_decl): Handle an OVERLOAD. 103152284Sobrien (cp_file_of): Likewise. 103252284Sobrien (cp_line_of): Likewise. 103352284Sobrien * init.c (build_member_call): Handle a COMPONENT_REF. 103452284Sobrien * lex.c (do_identifier): Call maybe_note_name_used_in_class, not 103552284Sobrien pushdecl_class_level. 103652284Sobrien * method.c (hack_identifier): Build COMPONENT_REFs for references 103752284Sobrien to member templates as well as member functions. Remove dead 103852284Sobrien code. 103952284Sobrien * parse.y (left_curly): Remove. 104052284Sobrien (nonnested_type): Call maybe_note_name_used_in_class, not 104152284Sobrien pushdecl_class_level. 104252284Sobrien * parse.c: Regenerated. 104352284Sobrien (nested_name_specifier_1): Likewise. 104452284Sobrien * pt.c (check_explicit_specialization): Adjust, for robustness. 104552284Sobrien (check_template_shadow): Handle OVERLOADs. 104652284Sobrien (build_template_decl): Set DECL_CONSTRUCTOR_P on the 104752284Sobrien TEMPLATE_DECL, if appropriate. 104852284Sobrien * search.c (envelope_add_decl): Remove. 104952284Sobrien (dfs_pushdecls): Likewise. 105052284Sobrien (dfs_compress_decls): Likewise. 105152284Sobrien (dfs_push_decls): New function. 105252284Sobrien (dfs_push_type_decls): Likewise. 105352284Sobrien (setup_class_bindings): Likewise. 105452284Sobrien (template_self_reference_p): Likewise. 105552284Sobrien (lookup_field_r): Use it. 105652284Sobrien (looup_member): Remove old comment. Deal with ambiguity. 105752284Sobrien (push_class_decls): Use dfs_push_decls and dfs_push_type_decls, 105852284Sobrien and remove envelope processing. 105952284Sobrien * semantics.c (begin_class_definition): Let pushclass push 106052284Sobrien declarations for base classes. 106152284Sobrien (finish_member_declaration): Push declarations into class scope. 106252284Sobrien * typeck.c (build_component_ref): Just put an OVERLOAD into the 106352284Sobrien COMPONENT_REF, not a TREE_LIST of an OVERLOAD. 106452284Sobrien (build_x_function_call): Deal with OVERLOAD. Handle template-ids. 106552284Sobrien * Makefile.in (class.o): Depend on splay-tree.h. 106652284Sobrien 106752284SobrienWed Mar 31 11:30:43 1999 Nathan Sidwell <nathan@acm.org> 106852284Sobrien 106952284Sobrien * cvt.c (convert_pointer_to_real): Use same_type_p. 107052284Sobrien * typeck.c (comp_target_types): Use same_type_p. 107152284Sobrien 107252284Sobrien1999-03-31 Jason Merrill <jason@yorick.cygnus.com> 107352284Sobrien 107452284Sobrien * semantics.c (begin_inline_definitions, 107552284Sobrien finish_inline_definitions): Rename from finish_default_args and 107652284Sobrien begin_inline_definitions, respectively, to something that isn't a 107752284Sobrien total lie. :) 107852284Sobrien * parse.y (structsp): Adjust. 107952284Sobrien 108052284Sobrien * tree.c (hash_tree_cons): Remove obsolete via_* parms. 108152284Sobrien (list_hash_lookup): Likewise. 108252284Sobrien (hash_tree_chain): Adjust. 108352284Sobrien * pt.c (tsubst): Adjust. 108452284Sobrien (tsubst_arg_types): Use plain hash_tree_cons. 108552284Sobrien * cp-tree.h (hash_tree_cons_simple): Lose. 108652284Sobrien * parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons. 108752284Sobrien 108852284SobrienWed Mar 31 10:48:29 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 108952284Sobrien 109052284Sobrien * Makefile.in (hash.h): Generate using gperf language 'C', not 109152284Sobrien 'KR-C', so gperf uses the `const' keyword on strings. 109252284Sobrien 109352284Sobrien * gxx.gperf (resword): Const-ify a char*. 109452284Sobrien 109552284Sobrien1999-03-30 Jason Merrill <jason@yorick.cygnus.com> 109652284Sobrien 109752284Sobrien * cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST, 109852284Sobrien CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES, 109952284Sobrien CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH, 110052284Sobrien CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST, 110152284Sobrien CLASSTYPE_BINFO_AS_LIST): Remove cruft. 110252284Sobrien * class.c, lex.c, parse.y, ptree.c, search.c, semantics.c, 110352284Sobrien tree.c: Adjust. 110452284Sobrien 110552284Sobrien1999-03-29 Jason Merrill <jason@yorick.cygnus.com> 110652284Sobrien 110752284Sobrien * decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall. 110852284Sobrien 110952284Sobrien1999-03-28 Jason Merrill <jason@yorick.cygnus.com> 111052284Sobrien 111152284Sobrien * pt.c (fn_type_unification): Ignore 'this' parm from conversion ops. 111252284Sobrien 111352284Sobrien1999-03-27 Mark Mitchell <mark@codesourcery.com> 111452284Sobrien 111552284Sobrien * cp-tree.h (add_friend): Declare. 111652284Sobrien (add_friends): Likewise. 111752284Sobrien * friend.c (add_friend): Make it global. Don't add to 111852284Sobrien DECL_BEFRIENDING_CLASSES if the befriending class is a template. 111952284Sobrien (add_friends): Make it global. 112052284Sobrien (make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the 112152284Sobrien befriending class is a template. 112252284Sobrien * parse.y (component_decl_1): Fix typo in comment. 112352284Sobrien * parse.c: Regenerated. 112452284Sobrien * pt.c (instantiate_class_template): Use add_friend and 112552284Sobrien add_friends rather that duplicating some of their functionality 112652284Sobrien here. 112752284Sobrien 112852284Sobrien1999-03-27 Jason Merrill <jason@yorick.cygnus.com> 112952284Sobrien 113052284Sobrien * call.c (build_field_call): Unify 'this' and non-'this' cases. 113152284Sobrien 113252284Sobrien * typeck.c (build_indirect_ref): Check for 'this' sooner. 113352284Sobrien 113452284SobrienFri Mar 26 10:20:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 113552284Sobrien 113652284Sobrien * call.c (op_error): Const-ify a char*. 113752284Sobrien (add_candidate, source_type, add_warning): Add static prototype. 113852284Sobrien (print_z_candidates): Const-ify a char*. 113952284Sobrien 114052284Sobrien * class.c (resolve_address_of_overloaded_function, 114152284Sobrien fixed_type_or_null, build_vtable_entry_ref): Add static prototype. 114252284Sobrien (get_vtable_name, finish_struct_1): Const-ify a char*. 114352284Sobrien 114452284Sobrien * cvt.c (convert_to_reference): Likewise. 114552284Sobrien 114652284Sobrien * decl.c (redeclaration_error_message, record_builtin_type, 114752284Sobrien record_unknown_type, member_function_or_else, bad_specifiers): 114852284Sobrien Likewise. 114952284Sobrien (find_binding, select_decl, unqualified_namespace_lookup, 115052284Sobrien lookup_flags, qualify_lookup, record_builtin_java_type, tag_name): 115152284Sobrien Add static prototype. 115252284Sobrien (warn_extern_redeclared_static, duplicate_decls, pushdecl, 115352284Sobrien implicitly_declare, record_builtin_java_type, define_function, 115452284Sobrien grok_op_properties, tag_name): Const-ify a char*. 115552284Sobrien 115652284Sobrien * cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const. 115752284Sobrien (define_function, finish_builtin_type): Const-ify a char*. 115852284Sobrien (cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn, 115952284Sobrien cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args. 116052284Sobrien (file_name_nondirectory): Const-ify a char*. 116152284Sobrien (init_filename_times): Don't prototype. 116252284Sobrien (compiler_error): Prototype. 116352284Sobrien (yyerror, init_repo): Const-ify a char*. 116452284Sobrien (build_srcloc): Don't prototype. 116552284Sobrien (build_x_indirect_ref, build_indirect_ref, build_component_addr): 116652284Sobrien Const-ify a char*. 116752284Sobrien (warn_for_assignment): Don't prototype. 116852284Sobrien (convert_for_initialization, readonly_error, check_for_new_type, 116952284Sobrien GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call): 117052284Sobrien Const-ify a char*. 117152284Sobrien 117252284Sobrien * decl2.c (acceptable_java_type, output_vtable_inherit, 117352284Sobrien setup_initp, start_objects, finish_objects, do_dtors, do_ctors, 117452284Sobrien merge_functions, decl_namespace, validate_nonmember_using_decl, 117552284Sobrien do_nonmember_using_decl): Add static prototype. 117652284Sobrien (lang_f_options): Const-ify a char*. 117752284Sobrien (finish_builtin_type): Likewise. 117852284Sobrien (add_function, arg_assoc_namespace, arg_assoc_class): Add static 117952284Sobrien prototype. 118052284Sobrien 118152284Sobrien * errfn.c: Include cp-tree.h. 118252284Sobrien (cp_thing): Add static prototype. 118352284Sobrien (compiler_error): Don't protoptype. 118452284Sobrien (cp_compiler_error): Cast `compiler_error' to `errorfn' before 118552284Sobrien passing it to `cp_thing'. 118652284Sobrien 118752284Sobrien * error.c (interesting_scope_p): Add static prototype. 118852284Sobrien 118952284Sobrien * except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify 119052284Sobrien a char*. 119152284Sobrien 119252284Sobrien * init.c (compiler_error): Don't prototype. 119352284Sobrien (member_init_ok_or_else): Const-ify a char*. 119452284Sobrien (build_java_class_ref): Add static prototype. 119552284Sobrien 119652284Sobrien * lex.c (compiler_error): Don't prototype. 119752284Sobrien (get_time_identifier, interface_strcmp, extend_token_buffer, 119852284Sobrien handle_cp_pragma): Const-ify a char*. 119952284Sobrien (is_global, init_filename_times): Add static prototype. 120052284Sobrien (file_name_nondirectory, cplus_tree_code_name): Const-ify a char*. 120152284Sobrien (compiler_error): Change from fixed args to variable args. 120252284Sobrien (yyerror): Const-ify a char*. 120352284Sobrien 120452284Sobrien * parse.y (cond_stmt_keyword): Const-ify a char*. 120552284Sobrien (parse_decl): Add static prototype. 120652284Sobrien 120752284Sobrien * pt.c (template_args_equal, print_template_context): Likewise. 120852284Sobrien (print_candidates, check_default_tmpl_args): Const-ify a char*. 120952284Sobrien (instantiate_class_template): Likewise. 121052284Sobrien 121152284Sobrien * repo.c (get_base_filename, open_repo_file, init_repo): Likewise. 121252284Sobrien 121352284Sobrien * rtti.c (call_void_fn, expand_generic_desc, expand_si_desc, 121452284Sobrien expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise. 121552284Sobrien 121652284Sobrien * search.c (lookup_field_info, lookup_member): Likewise. 121752284Sobrien (lookup_member): Cast the first argument of `bzero' to a PTR. 121852284Sobrien 121952284Sobrien * sig.c (compiler_error): Don't prototype. 122052284Sobrien (build_signature_pointer_or_reference_nam): Const-ify a char*. 122152284Sobrien (get_sigtable_name, build_member_function_pointer): Likewise. 122252284Sobrien 122352284Sobrien * tree.c (compiler_error): Don't prototype. 122452284Sobrien (no_linkage_helper, build_srcloc): Add static prototype. 122552284Sobrien (build_vbase_pointer_fields): Const-ify a char*. 122652284Sobrien (__eprintf): Don't unnecessarily handle `const' when !__STDC__. 122752284Sobrien 122852284Sobrien * typeck.c (compiler_error): Don't prototype. 122952284Sobrien (convert_for_assignment): Const-ify a char*. 123052284Sobrien (comp_cv_target_types): Add static prototype. 123152284Sobrien (build_x_indirect_ref, build_indirect_ref, convert_arguments, 123252284Sobrien build_component_addr, build_unary_op, convert_for_initialization): 123352284Sobrien Const-ify a char*. 123452284Sobrien 123552284Sobrien * typeck2.c (ack): Add static prototype and change from fixed args 123652284Sobrien to variable args. 123752284Sobrien (readonly_error, check_for_new_type): Const-ify a char*. 123852284Sobrien 123952284Sobrien * xref.c (_XREF_FILE, find_file, filename, fctname, declname, 124052284Sobrien fixname, open_xref_file, classname, GNU_xref_begin): Likewise. 124152284Sobrien (GNU_xref_file): Likewise. Also use `xmalloc' instead of `malloc'. 124252284Sobrien (GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call, 124352284Sobrien gen_assign, GNU_xref_member): Const-ify a char*. 124452284Sobrien 124552284Sobrien1999-03-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 124652284Sobrien 124752284Sobrien * gxxint.texi: Remove old discussion on copying virtual bases. 124852284Sobrien 124952284Sobrien1999-03-25 Zack Weinberg <zack@rabi.columbia.edu> 125052284Sobrien 125152284Sobrien * Make-lang.in: Remove all references to g++.o/g++.c. 125252284Sobrien Link g++ from gcc.o. 125352284Sobrien 125452284Sobrien1999-03-25 Jason Merrill <jason@yorick.cygnus.com> 125552284Sobrien 125652284Sobrien * decl2.c (comdat_linkage): Treat vtables like functions. 125752284Sobrien 125852284Sobrien1999-03-25 Mark Mitchell <mark@codesourcery.com> 125952284Sobrien 126052284Sobrien * pt.c (tsubst_decl): tsubst into DECL_BEFRIENDING_CLASSES. 126152284Sobrien 126252284Sobrien1999-03-25 Nathan Sidwell <nathan@acm.org> 126352284Sobrien 126452284Sobrien * decl.c (init_decl_processing): Add `signed' type as a synonym 126552284Sobrien for `int'. 126652284Sobrien 126752284Sobrien1999-03-25 Jason Merrill <jason@yorick.cygnus.com> 126852284Sobrien 126952284Sobrien * typeck.c (common_type): Handle cv-qual unification for pointers 127052284Sobrien to members. 127152284Sobrien 127252284Sobrien * decl.c (unqualified_namespace_lookup): Return error_mark_node 127352284Sobrien on error. 127452284Sobrien (lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing. 127552284Sobrien * lex.c (do_identifier): If we got error_mark_node, call 127652284Sobrien lookup_name again. 127752284Sobrien 127852284Sobrien1999-03-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 127952284Sobrien 128052284Sobrien * class.c (finish_struct_1): Always reset TYPE_FIELDS for empty 128152284Sobrien classes. 128252284Sobrien 128352284Sobrien1999-03-24 Jason Merrill <jason@yorick.cygnus.com> 128452284Sobrien 128552284Sobrien * decl.c (lookup_name_real): Do nested field lookup regardless of 128652284Sobrien TYPE_BEING_DEFINED. 128752284Sobrien 128852284Sobrien1999-03-24 Mark Mitchell <mark@codesourcery.com> 128952284Sobrien 129052284Sobrien * cp-tree.h (lang_type): Remove has_assignment and 129152284Sobrien has_real_assignment. Add befriending_classes. 129252284Sobrien (TYPE_HAS_ASSIGNMENT): Remove. 129352284Sobrien (TYPE_HAS_REAL_ASSIGNMENT): Likewise. 129452284Sobrien (CLASSTYPE_BEFRIENDING_CLASSES): New macro. 129552284Sobrien (lang_decl): Document. 129652284Sobrien (DECL_BEFRIENDING_CLASSES): New macro. 129752284Sobrien (FRIEND_NAME): Move declaration to more obvious location. 129852284Sobrien (FRIEND_DECLS): Likewise. 129952284Sobrien * class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT. 130052284Sobrien * decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES. 130152284Sobrien (fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT. 130252284Sobrien (grok_op_properties): Likewise. 130352284Sobrien * friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS. 130452284Sobrien (add_friend): Likewise. Don't do weird things with assignment 130552284Sobrien operators. Update DECL_BEFRIENDING_CLASSES. 130652284Sobrien (add_friends): Don't do weird things with assignment operators. 130752284Sobrien (make_friend_class): Likewise. Update 130852284Sobrien CLASSTYPE_BEFRIENDING_CLASSES. 130952284Sobrien * pt.c (instantiate_class_template): Don't set 131052284Sobrien TYPE_HAS_ASSIGNMENT. 131152284Sobrien (tsubst_copy): Substitute the TREE_TYPE for more unary 131252284Sobrien expressions. 131352284Sobrien * ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT. 131452284Sobrien * search.c (protected_accessible_p): New function. 131552284Sobrien (friend_accessible_p): Likewise. 131652284Sobrien (accessible_p): Use them. 131752284Sobrien 131852284Sobrien1999-03-23 Mark Mitchell <mark@codesourcery.com> 131952284Sobrien 132052284Sobrien * pt.c (convert_nontype_argument): Don't create things that aren't 132152284Sobrien PTRMEM_CSTs when applying a qualification conversion to a 132252284Sobrien PTRMEM_CST. 132352284Sobrien 132452284Sobrien1999-03-23 Mark Mitchell <mark@codesourcery.com> 132552284Sobrien 132652284Sobrien * Makefile.in (OBJS): Don't mention hash.o. 132752284Sobrien (OBJDEPS): Likewise. 132852284Sobrien 132952284Sobrien1999-03-23 Jason Merrill <jason@yorick.cygnus.com> 133052284Sobrien 133152284Sobrien * decl2.c (finish_file): Set at_eof to 2 after expanding ctors. 133252284Sobrien * decl.c (expand_static_init): Make sure we don't add any after 133352284Sobrien then. 133452284Sobrien 133552284Sobrien * decl.c (cp_finish_decl): Move intelligence about handling 133652284Sobrien DECL_COMDAT for variables from here... 133752284Sobrien * decl2.c (comdat_linkage): ...to here. 133852284Sobrien (maybe_make_one_only): Tweak. 133952284Sobrien (import_export_decl): Call comdat_linkage for variables, too. 134052284Sobrien (finish_file): Handle template statics properly. 134152284Sobrien 134252284Sobrien1999-03-22 Mark Mitchell <mark@codesourcery.com> 134352284Sobrien 134452284Sobrien * cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG. 134552284Sobrien Document internals of pointer-to-member-functions. 134652284Sobrien (DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc. 134752284Sobrien (PFN_FROM_PTRMEMFUNC): Likewise. 134852284Sobrien (build_type_conversion): Remove unused parameter. 134952284Sobrien (build_ptrmemfunc1): Declare. 135052284Sobrien (expand_ptrmemfunc_cst): New function. 135152284Sobrien (delta2_from_ptrmemfunc): Likewise. 135252284Sobrien (pfn_from_ptrmemfunc): Likewise. 135352284Sobrien * cvt.c (cp_convert_to_pointer): Remove unused parameter to 135452284Sobrien build_type_conversion. Use TYPE_PTRMEM_P for readability. 135552284Sobrien (convert_to_reference): Remove unused parameter to 135652284Sobrien build_type_conversion. 135752284Sobrien (ocp_convert): Likewise. 135852284Sobrien (build_user_type_conversion): Likewise. 135952284Sobrien * error.c (dump_expr): Handle NULL pointer-to-member functions. 136052284Sobrien * expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions. 136152284Sobrien * method.c (build_overload_value): Don't go splitting CONSTRUCTORs 136252284Sobrien open when handling pointer-to-member functions. 136352284Sobrien * pt.c (convert_nontype_argument): Clean up error messages. Be 136452284Sobrien more stringent with pointers-to-members. 136552284Sobrien * typeck.c (build_ptrmemfunc1): Don't declare. Make it global. 136652284Sobrien (build_unary_op): Tidy ever-so-slightly. 136752284Sobrien (build_conditional_expr): Remove extra parameter to 136852284Sobrien build_type_conversion. 136952284Sobrien (build_ptrmemfunc): Build PTRMEM_CSTs if we know what function 137052284Sobrien we're using. 137152284Sobrien (expand_ptrmemfunc_cst): Define. 137252284Sobrien (delta2_from_ptrmemfunc): Likewise. 137352284Sobrien (pfn_from_ptrmemfunc): Likewise. 137452284Sobrien 137552284Sobrien1999-03-19 Mark Mitchell <mark@codesourcery.com> 137652284Sobrien 137752284Sobrien * init.c (build_member_call): Handle template-id expressions 137852284Sobrien correctly. 137952284Sobrien * typeck.c (build_x_function_call): Likewise. 138052284Sobrien 138152284Sobrien1999-03-19 Chip Salzenberg <chip@perlsupport.com> 138252284Sobrien 138352284Sobrien * friend.c (make_friend_class): Avoid core dump when 138452284Sobrien not-yet-defined friend type lacks TYPE_LANG_SPECIFIC(). 138552284Sobrien 138652284Sobrien1999-03-18 Jason Merrill <jason@yorick.cygnus.com> 138752284Sobrien 138852284Sobrien * decl.c (start_function): Suppress normal linkage heuristics 138952284Sobrien for #pragma interface under MULTIPLE_SYMBOL_SPACES. 139052284Sobrien 139152284Sobrien1999-03-19 Alexandre Oliva <oliva@dcc.unicamp.br> 139252284Sobrien 139352284Sobrien * Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c. 139452284Sobrien ($(srcdir)/cp/parse.c): Moved from ../Makefile.in. 139552284Sobrien 139652284Sobrien1999-03-17 Martin von L�wis <loewis@informatik.hu-berlin.de> 139752284Sobrien 139852284Sobrien * parse.y (named_complex_class_head_sans_basetype): 139952284Sobrien Do not push a scope for error_mark_node. 140052284Sobrien (maybe_base_class_list): Likewise. 140152284Sobrien 140252284Sobrien * decl.c (start_decl): Check for error_mark_node as a type. 140352284Sobrien Detected by g++.brendan/array-refs.C. 140452284Sobrien (start_decl_1): Likewise. Detected by g++.bugs/900322_01.C. 140552284Sobrien (maybe_build_cleanup_1): Likewise. Detected by 140652284Sobrien g++.jason/incomplete1.C. 140752284Sobrien 140852284Sobrien * tree.c (build_dummy_object): Use void_zero_node instead of the 140952284Sobrien error_mark_node. 141052284Sobrien (is_dummy_object): Check for such a node. 141152284Sobrien Detected by g++.bob/inherit1.C 141252284Sobrien 141352284Sobrien1999-03-16 Jason Merrill <jason@yorick.cygnus.com> 141452284Sobrien 141552284Sobrien * method.c (old_backref_index): Split out... 141652284Sobrien (flush_repeats): From here. Rename back from try_old_backref. 141752284Sobrien (build_mangled_name): Put back some old-style repeat handling. 141852284Sobrien 141952284SobrienMon Mar 15 21:57:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 142052284Sobrien 142152284Sobrien * lex.c: Don't include setjmp.h. 142252284Sobrien (parse_float): New static function. 142352284Sobrien (pf_args): New struct. 142452284Sobrien (real_yylex): Use them in call to `do_float_handler'. 142552284Sobrien 142652284Sobrien1999-03-15 Mark Mitchell <mark@markmitchell.com> 142752284Sobrien 142852284Sobrien * decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here. 142952284Sobrien * tree.c (layout_basetypes): Not here. 143052284Sobrien * search.c (dfs_search): Remove; no longer used. 143152284Sobrien 143252284Sobrien1999-03-12 Mark Mitchell <mark@markmitchell.com> 143352284Sobrien 143452284Sobrien * decl2.c (validate_nonmember_using_decl): Issue sensible 143552284Sobrien error-messages on bogus qualifiers. 143652284Sobrien 143752284Sobrien1999-03-14 Jason Merrill <jason@yorick.cygnus.com> 143852284Sobrien 143952284Sobrien * call.c (add_function_candidate): Fix uninitialized variable. 144052284Sobrien 144152284Sobrien * Makefile.in (search.o): Add dependency on varray.h. 144252284Sobrien 144352284Sobrien1999-03-13 Jason Merrill <jason@yorick.cygnus.com> 144452284Sobrien 144552284Sobrien * decl.c (duplicate_decls): Use same_type_p. 144652284Sobrien * method.c (try_old_backref): Renamed from flush_repeats. Use 144752284Sobrien same_type_p. Don't try to handle repeats. Return success. 144852284Sobrien (is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA. Support 144952284Sobrien calls from old-style code, too. 145052284Sobrien (check_ktype): Use same_type_p. 145152284Sobrien (check_btype): Use same_type_p. Don't pull out TYPE_MAIN_VARIANT. 145252284Sobrien (build_qualified_name): Simplify logic. 145352284Sobrien (process_overload_item): Strip typedefs and quals at the top. 145452284Sobrien (build_mangled_name_for_type_with_Gcode): Remove call to 145552284Sobrien type_canonical_variant. 145652284Sobrien (build_mangled_name): Likewise. Remove support for old-style 145752284Sobrien repeats, which have been disabled since 2.7.2. Don't mess with 145852284Sobrien TREE_USED. 145952284Sobrien (build_decl_overload_real): Don't mess with TREE_USED. 146052284Sobrien 146152284Sobrien1999-03-13 Nathan Sidwell <nathan@acm.org> 146252284Sobrien 146352284Sobrien * error.c (cp_printers): Add 'F' escape character. 146452284Sobrien (dump_type_real): Remove TREE_LIST (fnargs) printing. 146552284Sobrien Functionality moved to dump_parameters. 146652284Sobrien (dump_type_suffix): Use dump_parameters and dump_exception_spec. 146752284Sobrien (dump_function_decl): Extend meaning of V parameter. Use 146852284Sobrien dump_parameters and dump_exception_spec. 146952284Sobrien (dump_parameters): New static function. 147052284Sobrien (dump_exception_spec): New static function. 147152284Sobrien (fndecl_as_string): Change argument semantics. Use 147252284Sobrien dump_function_decl directly. 147352284Sobrien 147452284Sobrien * sig.c (build_signature_table_constructor): Use cp_error. 147552284Sobrien 147652284Sobrien1999-03-13 Martin von L�wis <loewis@informatik.hu-berlin.de> 147752284Sobrien 147852284Sobrien * semantics.c (finish_switch_cond): Handle error cases gracefully. 147952284Sobrien Detected by g++.law/enum5.C. 148052284Sobrien 148152284Sobrien * typeck.c (build_modify_expr): Check for errors after resolving 148252284Sobrien offsets. Detected by g++.brendan/static1.C. 148352284Sobrien 148452284Sobrien * decl.c (complete_array_type): Ignore initial_value if it is an 148552284Sobrien error. Detected by g++.benjamin/17930.C. 148652284Sobrien 148752284Sobrien * typeck2.c (process_init_constructor): Return error if one argument 148852284Sobrien is in error. Detected by g++.benjamin/13478.C. 148952284Sobrien 149052284Sobrien1999-03-12 Martin von L�wis <loewis@informatik.hu-berlin.de> 149152284Sobrien 149252284Sobrien * decl.c (select_decl): Allow class templates when we need types. 149352284Sobrien * decl2.c (ambiguous_decl): Likewise. 149452284Sobrien 149552284Sobrien1999-03-12 Mark Mitchell <mark@markmitchell.com> 149652284Sobrien 149752284Sobrien * lex.c (do_identifier): Correct call to enforce_access. 149852284Sobrien * search.c (accessible_p): Tweak comment. 149952284Sobrien 150052284Sobrien1999-03-10 Mark Mitchell <mark@markmitchell.com> 150152284Sobrien 150252284Sobrien * semantics.c (begin_class_definition): Call build_self_reference. 150352284Sobrien (finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs. 150452284Sobrien 150552284Sobrien * search.c (assert_canonical_unmarked): Fix typo in prototype. 150652284Sobrien 150752284Sobrien * search.c (dfs_canonical_queue): New function. 150852284Sobrien (dfs_assert_unmarked_p): Likewise. 150952284Sobrien (assert_canonical_unmarked): Likewise. 151052284Sobrien (access_in_type): Use it. 151152284Sobrien (accessible_p): Likewise. Walk the whole tree when umarking. 151252284Sobrien 151352284Sobrien * sig.c (build_signature_table_constructor): Use accessible_p 151452284Sobrien instead of compute_access. 151552284Sobrien 151652284Sobrien1999-03-09 Jason Merrill <jason@yorick.cygnus.com> 151752284Sobrien 151852284Sobrien * call.c (add_builtin_candidates): Handle overloaded conversion ops. 151952284Sobrien 152052284Sobrien1999-03-09 Mark Mitchell <mark@markmitchell.com> 152152284Sobrien 152252284Sobrien * cp-tree.h (flag_access_control): Declare. 152352284Sobrien (TREE_VIA_PPUBLIC): Document. 152452284Sobrien (DECL_NONSTATIC_MEMBER_P): New macro. 152552284Sobrien (enforce_access): Return an indication of whether or not access 152652284Sobrien was permitted. 152752284Sobrien (build_self_reference): Change prototype. 152852284Sobrien (compute_access): Replace with ... 152952284Sobrien (accessible_p): New function. 153052284Sobrien (dfs_walk): Change prototype. 153152284Sobrien (dfs_unmark): Likewise. 153252284Sobrien (markedp): Likewise. 153352284Sobrien * call.c (enforce_access): Use accessible_p. 153452284Sobrien * class.c (build_self_reference): Insert the declaration into the 153552284Sobrien list of members for this type, and make it public. 153652284Sobrien * decl.c (xref_basetypes): Avoid ill-timed recursion. 153752284Sobrien * init.c (build_offset_ref): Use lookup_member, not three separate 153852284Sobrien name-lookups. Call enforce_access rather than checking for 153952284Sobrien illegal accesses here. 154052284Sobrien (resolve_offset_ref): Likewise. 154152284Sobrien * lex.c (do_identifier): Likewise. 154252284Sobrien * method.c (hack_identifier): Likewise. 154352284Sobrien * parse.y (self_reference): Remove. 154452284Sobrien (opt_component_decl_list): Don't use it. 154552284Sobrien * parse.c: Regenerated. 154652284Sobrien * pt.c (print_candidates): Generalize to handle lists of 154752284Sobrien overloaded functions. 154852284Sobrien (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's 154952284Sobrien not set. 155052284Sobrien (get_template_base): Use new calling convention for dfs_walk. 155152284Sobrien * search.c: Include varray.h. Add prototypes. 155252284Sobrien (dfs_walk): Accept a data pointer to pass to the work functions. 155352284Sobrien All callers changed. All work functions changed. 155452284Sobrien (breadth_first_search): Rename to bfs_walk, and make consistent 155552284Sobrien with dfs_walk. 155652284Sobrien (dfs_walk_real): New function. 155752284Sobrien (canonical_binfo): New function. 155852284Sobrien (context_for_name_lookup): Likewise. 155952284Sobrien (shared_marked_p): Likewise. 156052284Sobrien (shared_unmarked_p): Likewise. 156152284Sobrien (lokup_field_queue_p): Likewise. 156252284Sobrien (lookup_field_r): Generalize to handle both functions and fields. 156352284Sobrien (lookup_field): Just call lookup_member. 156452284Sobrien (lookup_fnfields): Likewise. 156552284Sobrien (lookup_member): Move body of lookup_field here and generalize. 156652284Sobrien (dfs_accessible_queue_p): Likewise. 156752284Sobrien (dfs_accessible_p): Likewise. 156852284Sobrien (dfs_access_in_type): Likewise. 156952284Sobrien (access_in_type): Likewise. 157052284Sobrien (compute_access): Remove, and replace with ... 157152284Sobrien (accessible_p): New function. 157252284Sobrien (vbase_types): Remove. 157352284Sobrien (vbase_decl_ptr_intermediate): Likewise. 157452284Sobrien (vbase_decl_ptr): Likewise. 157552284Sobrien (vbase_init_result): Likewise. 157652284Sobrien (closed_envelopes): Likewise. 157752284Sobrien (bvtable): Likewise. 157852284Sobrien 157952284Sobrien1999-03-09 Jason Merrill <jason@yorick.cygnus.com> 158052284Sobrien 158152284Sobrien * call.c (add_function_candidate): Check for proper number of args 158252284Sobrien before checking the validity of those args. 158352284Sobrien 158452284Sobrien1999-03-06 Jason Merrill <jason@yorick.cygnus.com> 158552284Sobrien 158652284Sobrien * cp-tree.h (struct lang_type): Add anon_union field. 158752284Sobrien (ANON_UNION_TYPE_P): Use it instead of examining type. 158852284Sobrien (SET_ANON_UNION_TYPE_P): New macro. 158952284Sobrien * decl.c (check_tag_decl): Use it. 159052284Sobrien 159152284Sobrien * search.c (compute_access): Handle non-type contexts earlier, and 159252284Sobrien handle NULL_TREE. 159352284Sobrien 159452284Sobrien * tree.c (build_exception_variant): Use copy_to_permanent. 159552284Sobrien 159652284Sobrien * decl2.c (setup_initp): Give statics with no priority the default 159752284Sobrien priority here. 159852284Sobrien (do_dtors, do_ctors, finish_file): Remove special handling of 159952284Sobrien non-prioritized statics. 160052284Sobrien 160152284Sobrien1999-03-05 Mark Mitchell <mark@markmitchell.com> 160252284Sobrien 160352284Sobrien * cp-tree.h (ANON_UNION_TYPE_P): Robustify. 160452284Sobrien * decl.c (make_typename_type): Don't issue an error if an 160552284Sobrien immediate lookup fails; it migt be resolved later. 160652284Sobrien * friend.c (is_friend): Add comment. 160752284Sobrien * search.c (breadth_first_search): Add POSTFN and DATA 160852284Sobrien parameters. Tidy. All callers changed. 160952284Sobrien (lookup_field_queue_p): New function. 161052284Sobrien (lookup_field_r): Likewise. 161152284Sobrien (lookup_field_post): Likewise. 161252284Sobrien (lookup_field): Use them, via breadth_first_search, instead of 161352284Sobrien duplicating logic. 161452284Sobrien (compute_access): Robustify. 161552284Sobrien (lookup_fnfield_info): New structure. 161652284Sobrien 161752284Sobrien1999-03-05 Jason Merrill <jason@yorick.cygnus.com> 161852284Sobrien 161952284Sobrien * pt.c (tsubst, case ARRAY_REF): Use tsubst_expr again. 162052284Sobrien 162152284Sobrien1999-03-03 Jason Merrill <jason@yorick.cygnus.com> 162252284Sobrien 162352284Sobrien * class.c, decl2.c, method.c, pt.c: Add 'static' to make SunOS 4 162452284Sobrien cc happy. 162552284Sobrien 162652284Sobrien * decl2.c (import_export_class): Also return if 162752284Sobrien CLASSTYPE_INTERFACE_ONLY is set. 162852284Sobrien 162952284Sobrien1999-03-03 Martin von L�wis <loewis@informatik.hu-berlin.de> 163052284Sobrien 163152284Sobrien * decl.c (push_overloaded_decl): Only overwrite the old binding if 163252284Sobrien there was one. 163352284Sobrien * decl2.c (do_local_using_decl): Fix loop termination. 163452284Sobrien 163552284Sobrien1999-03-02 Mark Mitchell <mark@markmitchell.com> 163652284Sobrien 163752284Sobrien * cp-tree.h (determine_specialization): Don't declare. 163852284Sobrien * pt.c (determine_specialization): Make it static. Eliminate 163952284Sobrien complain parameter. Note that decl is always non-NULL now, and 164052284Sobrien simplify accordingly. 164152284Sobrien 164252284Sobrien * decl.c (maybe_push_to_top_level): Always call 164352284Sobrien push_cp_function_context. 164452284Sobrien (pop_from_top_level): Always call pop_cp_function_context. 164552284Sobrien 164652284Sobrien1999-02-26 Nathan Sidwell <nathan@acm.org> 164752284Sobrien 164852284Sobrien * typeck.c (complete_type_or_else): Add VALUE arg, for helpful 164952284Sobrien diagnostics. 165052284Sobrien * cp-tree.h (complete_type_or_else): Added VALUE parameter. 165152284Sobrien * init.c (build_new_1): Extra arg to complete_type_or_else. 165252284Sobrien (build_delete): Likewise. 165352284Sobrien * typeck.c (require_complete_type): Likewise. 165452284Sobrien (pointer_int_sum): Likewise. 165552284Sobrien (pointer_diff): Likewise. 165652284Sobrien (build_component_ref): Likewise. 165752284Sobrien 165852284Sobrien * typeck2.c (incomplete_type_error): Always use cp_error. 165952284Sobrien Show declaration of undefined type, if appropriate. 166052284Sobrien Deal with UNKNOWN_TYPE nodes. 166152284Sobrien 166252284Sobrien * typeck.c (require_complete_type): Use TYPE_SIZE as 166352284Sobrien size_zero_node to mean incomplete type. 166452284Sobrien (require_complete_type_in_void): New function. 166552284Sobrien (build_compound_expr): Call complete_type_in_void for LHS. 166652284Sobrien (build_c_cast): Call complete_type_in_void for void cast. 166752284Sobrien * cvt.c (ocp_convert): Call complete_type_in_void for void cast. 166852284Sobrien * decl.c (cplus_expand_expr_stmt): Void expression checks moved to 166952284Sobrien require_complete_type_in_void. Call it. 167052284Sobrien * cp-tree.h (require_complete_type_in_void): Prototype new function. 167152284Sobrien 167252284Sobrien * typeck.c (convert_arguments): Use alternative format for 167352284Sobrien function decls. Don't require_complete_type here. Simplify 167452284Sobrien diagnostic printing. 167552284Sobrien (convert_for_initialization): Don't require_complete_type on RHS yet. 167652284Sobrien * call.c (convert_arg_to_ellipsis): Call require_complete_type. 167752284Sobrien 167852284Sobrien * call.c (build_over_call): Cope with qualified void return type. 167952284Sobrien * semantics.c (finish_call_expr): Likewise. 168052284Sobrien * typeck.c (build_function_call_real): Likewise. 168152284Sobrien (c_expand_return): Likewise. 168252284Sobrien * decl2.c (reparse_absdcl_as_expr): Cope with qualified void type. 168352284Sobrien 168452284Sobrien * call.c (print_z_candidates): Use alternate print format, to be 168552284Sobrien consistent with (pt.c) print_candidates. 168652284Sobrien * method.c (hack_identifier): List candidate members. 168752284Sobrien * search.c (lookup_field): Build ambiguous list, and show it, if 168852284Sobrien ambiguous. 168952284Sobrien 169052284Sobrien1999-02-26 Mark Mitchell <mark@markmitchell.com> 169152284Sobrien 169252284Sobrien * typeck.c (decay_conversion): Don't confuse constant array 169352284Sobrien variables with their initializers. 169452284Sobrien 169552284Sobrien * decl.c (duplicate_decls): Copy DECL_TEMPLATE_INSTANTIATED when 169652284Sobrien merging decls. 169752284Sobrien * pt.c (regenerate_decl_from_template): Tweak for clarity. 169852284Sobrien (instantiate_decl): Mark a decl instantiated before regenerating 169952284Sobrien it to avoid recursion. 170052284Sobrien * tree.c (mapcar): Don't call decl_constant_value unless we know 170152284Sobrien something is TREE_READONLY_DECL_P. 170252284Sobrien 170352284Sobrien * class.c (check_for_override): Don't stop checking when we find 170452284Sobrien the first overridden function. Delete #if 0'd code. 170552284Sobrien * search.c (get_matching_virtual): Likewise. 170652284Sobrien 170752284Sobrien1999-02-25 Richard Henderson <rth@cygnus.com> 170852284Sobrien 170952284Sobrien * lang-specs.h: Define __FAST_MATH__ when appropriate. 171052284Sobrien 171152284Sobrien1999-02-24 Mike Stump <mrs@wrs.com> 171252284Sobrien 171352284Sobrien * typeck.c (convert_for_assignment): Allow boolean integral constant 171452284Sobrien expressions to convert to null pointer. 171552284Sobrien 171652284Sobrien1999-02-24 Martin von Loewis <loewis@informatik.hu-berlin.de> 171752284Sobrien 171852284Sobrien * decl.c (lookup_namespace_name): Resolve namespace aliases. 171952284Sobrien 172052284Sobrien * class.c (push_nested_class): Allow namespaces. 172152284Sobrien 172252284Sobrien * decl2.c (set_decl_namespace): Add friendp parameter. 172352284Sobrien * decl.c (grokfndecl): Pass it. 172452284Sobrien (grokvardecl): Likewise. 172552284Sobrien * cp-tree.h: Change declaration. 172652284Sobrien 172752284Sobrien1999-02-24 Jason Merrill <jason@yorick.cygnus.com> 172852284Sobrien 172952284Sobrien * pt.c (tsubst): Allow an array of explicit size zero. 173052284Sobrien 173152284Sobrien1999-02-23 Jason Merrill <jason@yorick.cygnus.com> 173252284Sobrien 173352284Sobrien * errfn.c: Change varargs code to look like toplev.c. 173452284Sobrien 173552284Sobrien * method.c (process_modifiers): Don't prepend 'U' for char or 173652284Sobrien wchar_t. 173752284Sobrien 173852284Sobrien1999-02-20 Craig Burley <craig@jcb-sc.com> 173952284Sobrien 174052284Sobrien * Make-lang.in (cplib2.ready): Don't consider updating 174152284Sobrien cplib2 stuff if the current directory isn't writable, as 174252284Sobrien it won't work (such as during a `make install'). 174352284Sobrien 174450397SobrienSun Feb 21 20:38:00 1999 H.J. Lu (hjl@gnu.org) 174548743Sobrien 174650397Sobrien * decl2.c (start_objects): Make file scope constructors and 174750397Sobrien destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and 174850397Sobrien ASM_OUTPUT_DESTRUCTOR are defined. 174948743Sobrien 175052284Sobrien1999-02-19 Mark Mitchell <mark@markmitchell.com> 175148743Sobrien 175252284Sobrien * cp-tree.h (CLASSTYPE_METHOD_VEC): Adjust comment. 175352284Sobrien (fn_type_unification): Adjust prototype. 175452284Sobrien (lookup_fnfields_1): Declare. 175552284Sobrien * call.c (add_template_candidate_real): Adjust call to 175652284Sobrien fn_type_unification. 175752284Sobrien * class.c (add_method): Don't allow duplicate declarations of 175852284Sobrien constructors or destructors. 175952284Sobrien (resolve_address_of_overloaded_function): Remove unused variable. 176052284Sobrien Adjust call to fn_type_unification. 176152284Sobrien * decl.c (grokfndecl): Be more robust in the face of illegal 176252284Sobrien specializations. 176352284Sobrien * decl2.c (check_classfn): Remove hokey handling of member 176452284Sobrien templates. 176552284Sobrien * pt.c (determine_specialization): Improve comments. Adjust to 176652284Sobrien handle template argument deduction as per the standard. 176752284Sobrien (check_explicit_specialization): Fix comment spacing. Handle 176852284Sobrien type-conversion operators correctly. Improve error-recovery. 176952284Sobrien (fn_type_unification): Remove EXTRA_FN_ARG parameter. 177052284Sobrien (get_bindings_real): Simplify handling of static members. 177152284Sobrien * search.c (lookup_fnfields_1): Make it have external linkage. 177252284Sobrien * typeck.c (compparms): Fix comment. 177352284Sobrien (build_unary_op): Don't try to figure out which template 177452284Sobrien specialization is being referred to when when the address-of 177552284Sobrien operator is used with a template function. 177652284Sobrien 177752284SobrienThu Feb 18 23:40:01 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 177852284Sobrien 177952284Sobrien * cp-tree.h (lvalue_or_else): Qualify a char* with the `const' 178052284Sobrien keyword to match an analogous change at the top level. 178152284Sobrien 178252284Sobrien * tree.c (lvalue_or_else): Likewise. 178352284Sobrien 178452284Sobrien1999-02-17 Mark Mitchell <mark@markmitchell.com> 178552284Sobrien 178652284Sobrien * decl.c (xref_basetypes): Comment. 178752284Sobrien * pt.c (instantiate_class_template): Use xref_basetypes. 178852284Sobrien 178952284Sobrien1999-02-16 Mark Mitchell <mark@markmitchell.com> 179052284Sobrien 179152284Sobrien * cp-tree.h (tsubst): Change prototype. 179252284Sobrien (tsubst_expr): Likewise. 179352284Sobrien (tsubst_copy): Likewise. 179452284Sobrien (type_unification): Remove prototype. 179552284Sobrien * call.c (convert_default_arg): Adjust call to tsubst_expr. 179652284Sobrien * class.c (resolve_address_of_overloaded_function): Just use 179752284Sobrien fn_type_unification. 179852284Sobrien * decl.c (grokdeclarator): Adjust call to tsubst. 179952284Sobrien * method.c (build_template_parm_names): Likewise. 180052284Sobrien * pt.c (GTB_VIA_VIRTUAL): New macro. 180152284Sobrien (GTB_IGNORE_TYPE): Likewise. 180252284Sobrien (resolve_overloaded_unification): Add `complain' parameter. 180352284Sobrien (try_one_overload): Likewise. 180452284Sobrien (tsubst_template_arg_vector): Likewise. 180552284Sobrien (tsubst_template_parms): Likewise. 180652284Sobrien (tsubst_aggr_type): Likewise. 180752284Sobrien (tsubst_arg_types): Likewise. 180852284Sobrien (tsubst_call_declarator_parms): Likewise. 180952284Sobrien (unify): Remove explicit_mask. 181052284Sobrien (type_unification_real): Likewise. 181152284Sobrien (get_template_base_recursive): Likewise. 181252284Sobrien (coerce_template_template_parms): Provide prototype. 181352284Sobrien (tsubst_function_type): Likewise. 181452284Sobrien (try_class_unification): New function. 181552284Sobrien All callers changed to use new complain parameter. 181652284Sobrien (get_template_base): Use try_class_unification. 181752284Sobrien (unify): Adjust handling of classes derived from template types. 181852284Sobrien (fn_type_unification): Substitute explicit arguments before 181952284Sobrien unification. 182052284Sobrien 182152284Sobrien1999-02-16 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 182252284Sobrien 182352284Sobrien * decl.c (pushdecl): Remove dead code. 182452284Sobrien 182552284Sobrien1999-02-16 Jason Merrill <jason@yorick.cygnus.com> 182652284Sobrien 182752284Sobrien * decl2.c (finish_objects): Fix code I missed in previous change. 182852284Sobrien 182952284Sobrien1999-02-13 Jason Merrill <jason@yorick.cygnus.com> 183052284Sobrien 183152284Sobrien * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node. 183252284Sobrien (grokdeclarator): Don't expect error_mark_node from grokfndecl. 183352284Sobrien 183452284Sobrien * pt.c (maybe_process_partial_specialization): Complain about 183552284Sobrien 'template <>' on non-specialization. 183652284Sobrien 183752284Sobrien1999-02-10 Jason Merrill <jason@yorick.cygnus.com> 183852284Sobrien 183952284Sobrien * decl.c (grokdeclarator): Catch wierd declarators. 184052284Sobrien * decl2.c (finish_file): Don't abort because of namespace parsing 184152284Sobrien failure. 184252284Sobrien (check_decl_namespace): Remove. 184352284Sobrien 184452284Sobrien1999-02-09 Mark Mitchell <mark@markmitchell.com> 184552284Sobrien 184652284Sobrien * cp-tree.h (get_template_base): Don't declare. 184752284Sobrien (dfs_walk): Declare. 184852284Sobrien (dfs_unmark): Likewise. 184952284Sobrien (markedp): Likewise. 185052284Sobrien * pt.c (unify): Remove duplicate declaration. Pass tparms and 185152284Sobrien targs to get_template_base. 185252284Sobrien (get_template_base_recursive): Move here from search.c. Check to 185352284Sobrien see that the base found can be instantiated to form the desired 185452284Sobrien type. 185552284Sobrien (get_template_base): Likewise. 185652284Sobrien (get_class_bindings): Simplify. 185752284Sobrien * search.c (get_template_base_recursive): Move to pt.c. 185852284Sobrien (get_template_base): Likewise. 185952284Sobrien (markedp): Make it global. 186052284Sobrien (dfs_walk): Likewise. 186152284Sobrien (dfs_unmark): Likewise. 186252284Sobrien 186352284Sobrien1999-02-07 Jason Merrill <jason@yorick.cygnus.com> 186452284Sobrien 186552284Sobrien * pt.c (maybe_process_partial_specialization): Complain about 186652284Sobrien specialization in wrong namespace. 186752284Sobrien * tree.c (decl_namespace_context): New fn. 186852284Sobrien 186952284Sobrien1999-02-06 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 187052284Sobrien 187152284Sobrien * decl2.c (arg_assoc_type): Handle TEMPLATE_TEMPLATE_PARM. 187252284Sobrien * pt.c (coerce_template_template_parms): Handle nested 187352284Sobrien template template parameters. 187452284Sobrien 187552284SobrienSat Feb 6 18:08:40 1999 Jeffrey A Law (law@cygnus.com) 187652284Sobrien 187752284Sobrien * typeck2.c: Update email addresses. 187852284Sobrien 187952284Sobrien1999-02-04 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 188052284Sobrien 188152284Sobrien * pt.c (unify): Call coerce_template_parms with the COMPLAIN flag 188252284Sobrien turned off. 188352284Sobrien 188452284Sobrien1999-02-04 Jason Merrill <jason@yorick.cygnus.com> 188552284Sobrien 188652284Sobrien * lex.c (retrofit_lang_decl): Split out... 188752284Sobrien (build_lang_decl): From here. 188852284Sobrien * decl.c (pushdecl): Call it for functions generated by the middle 188952284Sobrien end that don't have DECL_LANG_SPECIFIC. 189052284Sobrien * cp-tree.h: Declare it. 189152284Sobrien 189252284Sobrien * decl2.c: Remove flag_init_priority. Always enable initp stuff. 189352284Sobrien (start_objects, finish_objects): Only use special 189452284Sobrien init_priority code if the user specified a priority. 189552284Sobrien (do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp 189652284Sobrien objects. 189752284Sobrien 189852284SobrienWed Feb 3 22:50:17 1999 Marc Espie <Marc.Espie@liafa.jussieu.fr> 189952284Sobrien 190052284Sobrien * Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and 190152284Sobrien mkstemp.o. Get them from libiberty now. 190252284Sobrien (DEMANGLER_PROG): Simlarly, remove getopt.o getopt1.o. 190352284Sobrien 190452284SobrienTue Feb 2 22:38:48 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 190552284Sobrien 190652284Sobrien * decl2.c (lang_decode_option): Use read_integral_parameter. 190752284Sobrien 190852284Sobrien1999-02-01 Mark Mitchell <mark@markmitchell.com> 190952284Sobrien 191052284Sobrien * pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED 191152284Sobrien before calling complete_type_or_else. 191252284Sobrien 191352284SobrienMon Feb 1 09:49:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 191452284Sobrien 191552284Sobrien * input.c (inline): Don't define, its handled by system.h. 191652284Sobrien 191752284SobrienSun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu> 191852284Sobrien 191952284Sobrien * decl2.c: Don't define flag_no_ident here. Don't process 192052284Sobrien -f(no-)ident here. 192152284Sobrien * cp-tree.h: Don't declare flag_no_ident here. 192252284Sobrien * lang-specs.h: Map -Qn to -fno-ident. 192352284Sobrien 192452284Sobrien1999-01-28 Jason Merrill <jason@yorick.cygnus.com> 192552284Sobrien 192652284Sobrien * cp-tree.h (struct tree_binding): Replace scope field with a union. 192752284Sobrien (BINDING_SCOPE): Adjust. 192852284Sobrien * decl.c (BINDING_LEVEL): Adjust. 192952284Sobrien 193052284Sobrien1999-01-26 Jason Merrill <jason@yorick.cygnus.com> 193152284Sobrien 193252284Sobrien * pt.c (instantiate_class_template): Set up the DECL_INITIAL of 193352284Sobrien member constants. 193452284Sobrien 193552284Sobrien * init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in 193652284Sobrien a ctor initializer. 193752284Sobrien 193852284Sobrien * tree.c (equal_functions): Fix name in prototype. 193952284Sobrien 194052284Sobrien * decl.c (push_local_binding): Add FLAGS argument. 194152284Sobrien (pushdecl, push_overloaded_decl): Pass it. 194252284Sobrien * decl2.c (do_local_using_decl): Likewise. 194352284Sobrien * cp-tree.h: Adjust prototype. 194452284Sobrien * decl.c (poplevel): Fix logic. 194552284Sobrien 194652284Sobrien * decl.c (push_local_binding): Also wrap used decls in a TREE_LIST. 194752284Sobrien (poplevel): Handle that. Fix logic for removing TREE_LISTs. 194852284Sobrien (cat_namespace_levels): Don't loop forever. 194952284Sobrien 195052284Sobrien1999-01-25 Richard Henderson <rth@cygnus.com> 195152284Sobrien 195252284Sobrien * typeck.c (build_reinterpret_cast): Fix typo in duplicated test. 195352284Sobrien 195452284Sobrien1999-01-25 Jason Merrill <jason@yorick.cygnus.com> 195552284Sobrien 195652284Sobrien * class.c (resolve_address_of_overloaded_function): Mark the 195752284Sobrien chosen function used. 195852284Sobrien 195952284Sobrien * call.c (build_call): Make sure that a function coming in has 196052284Sobrien been marked used already. 196152284Sobrien * decl.c (expand_static_init): Call mark_used instead of 196252284Sobrien assemble_external. 196352284Sobrien * except.c (call_eh_info, do_pop_exception, expand_end_eh_spec, 196452284Sobrien alloc_eh_object, expand_throw): Likewise. 196552284Sobrien * init.c (build_builtin_delete_call): Likewise. 196652284Sobrien * rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1, 196752284Sobrien expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 196852284Sobrien expand_generic_desc): Likewise. 196952284Sobrien 197052284Sobrien1999-01-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 197152284Sobrien 197250397Sobrien * tree.c (equal_functions): New function. 197350397Sobrien (ovl_member): Call it. 197448743Sobrien 197552284Sobrien1999-01-24 Jason Merrill <jason@yorick.cygnus.com> 197618334Speter 197752284Sobrien * cvt.c (cp_convert_to_pointer): Fix conversion of 0 to pmf. 197818334Speter 197952284Sobrien1999-01-25 Martin von Loewis <loewis@informatik.hu-berlin.de> 198052284Sobrien 198152284Sobrien * decl.c (decls_match): Return 1 if old and new are identical. 198252284Sobrien (push_overloaded_decl): Set OVL_USED when PUSH_USING. 198352284Sobrien 198452284Sobrien1999-01-24 Jason Merrill <jason@yorick.cygnus.com> 198552284Sobrien 198652284Sobrien * decl.c (start_function): Make member functions one_only on windows. 198752284Sobrien * decl2.c (import_export_decl): Likewise. 198852284Sobrien 198952284Sobrien * decl.c (grokdeclarator): Don't complain about implicit int in 199052284Sobrien a system header. Change same-name field check to not complain in 199152284Sobrien a system header instead of within extern "C". 199252284Sobrien 199352284Sobrien1999-01-21 Mark Mitchell <mark@markmitchell.com> 199452284Sobrien 199552284Sobrien * cp-tree.h (PUSH_GLOBAL): New macro. 199652284Sobrien (PUSH_LOCAL): Likewise. 199752284Sobrien (PUSH_USING): Likewise. 199852284Sobrien (namespace_bindings_p): Declare. 199952284Sobrien (push_overloaded_decl): Likewise. 200052284Sobrien * decl.c (push_overloaded_decl): Don't make it static. Check for 200152284Sobrien illegal declarations after using declarations here. 200252284Sobrien (namespace_bindings_p): Likewise. 200352284Sobrien (duplicate_decls): Don't consider declarations from different 200452284Sobrien namespaces to be the same. 200552284Sobrien (pushdecl): Use symbolic PUSH_ constants in calls to 200652284Sobrien push_overloaded_decl. 200752284Sobrien (push_overloaded_decl_1): Likewise. 200852284Sobrien * decl2.c (validate_nonmember_using_decl): Tweak `std' handling. 200952284Sobrien (do_nonmember_using_decl): Check for illegal using declarations 201052284Sobrien after ordinary declarations here. 201152284Sobrien (do_local_using_decl): Call pushdecl to insert declarations. 201252284Sobrien 201352284Sobrien1999-01-21 Jason Merrill <jason@yorick.cygnus.com> 201452284Sobrien 201552284Sobrien * decl.c (grokdeclarator): Fix lang_c -> lang_name_c typo. 201652284Sobrien 201752284Sobrien1999-01-21 Mark Mitchell <mark@markmitchell.com> 201852284Sobrien 201952284Sobrien * tree.c (build_cplus_array_type_1): Don't call build_array_type 202052284Sobrien for types involving template parameters. 202152284Sobrien 202252284Sobrien * cp-tree.h (PARM_DECL_EXPR): Delete. 202352284Sobrien (convert_default_arg): Change prototype. 202452284Sobrien (check_default_argument): Declare. 202552284Sobrien (search_tree): Likewise. 202652284Sobrien * call.c (convert_default_arg): Take the function to which the 202752284Sobrien default argument belongs as a parameter, and do any necessary 202852284Sobrien instantiation here, instead of ... 202952284Sobrien (build_over_call): Here. 203052284Sobrien * decl.c (local_variable_p): New function. 203152284Sobrien (check_default_argument): Likewise, split out and tidied from ... 203252284Sobrien (grokparms): Here. 203352284Sobrien * error.c (dump_expr): Don't set PARM_DECL_EXPR. 203452284Sobrien * pt.c (tsubst_call_declarator_parms): New function. 203552284Sobrien (for_each_template_parm): Handle ARRAY_REFs. Do the obvious thing 203652284Sobrien with CALL_EXPRs, rather than trying to be clever. 203752284Sobrien (tsubst): Use tsubst_call_declarator_parms. 203852284Sobrien * tree.c (search_tree): Don't make it static. 203952284Sobrien * typeck.c (convert_arguments): Use new interface to 204052284Sobrien convert_default_arg. 204152284Sobrien 204252284Sobrien1999-01-20 Mark Mitchell <mark@markmitchell.com> 204352284Sobrien 204452284Sobrien * error.c (dump_function_decl): Don't print the argument types for 204552284Sobrien a function when the verbosity level is negative. 204652284Sobrien 204752284Sobrien * call.c (build_over_call): Check format attributes at call-time. 204852284Sobrien 204952284Sobrien * pt.c (tsubst_copy): Fix comment. 205052284Sobrien (unify): Don't allow unification with variable-sized arrays. 205152284Sobrien 205252284Sobrien * semantics.c (finish_stmt_expr): When processing a template make 205352284Sobrien the BIND_EXPR long-lived. 205452284Sobrien 205552284Sobrien1999-01-19 Jason Merrill <jason@yorick.cygnus.com> 205652284Sobrien 205752284Sobrien * decl2.c (finish_vtable_vardecl): Make vtables comdat here. 205852284Sobrien (import_export_vtable): Not here. 205952284Sobrien 206052284Sobrien1999-01-18 Jason Merrill <jason@yorick.cygnus.com> 206152284Sobrien 206252284Sobrien * typeck.c (build_component_ref): Wrap an OVERLOAD around a unique 206352284Sobrien non-static member function. 206452284Sobrien 206552284Sobrien1999-01-18 Nathan Sidwell <nathan@acm.org> 206652284Sobrien 206752284Sobrien * class.c (instantiate_type): Only diagnose illegal address of member 206852284Sobrien function if complaining. 206952284Sobrien 207052284Sobrien * decl.c (lookup_name_real): Remove duplicate code. 207152284Sobrien 207252284Sobrien1999-01-18 Jason Merrill <jason@yorick.cygnus.com> 207352284Sobrien 207452284Sobrien * tree.c (copy_template_template_parm): Use permanent_obstack. 207552284Sobrien 207652284Sobrien1999-01-18 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 207752284Sobrien 207852284Sobrien * pt.c (unify): Remove restrictions on deduction of argument 207952284Sobrien of template template parameters. 208052284Sobrien 208152284Sobrien1999-01-18 Nathan Sidwell <nathan@acm.org> 208252284Sobrien 208352284Sobrien * rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs. 208452284Sobrien 208552284Sobrien * class.c (resolve_address_of_overloaded_function): Show list of 208652284Sobrien all candidates, when none of them match. 208752284Sobrien 208852284Sobrien1999-01-18 Chip Salzenberg <chip@perlsupport.com> 208952284Sobrien 209052284Sobrien * typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up 209152284Sobrien definition of 'casting away const' in reinterpret_cast<>. 209252284Sobrien 209352284Sobrien1999-01-18 Graham <grahams@rcp.co.uk> 209452284Sobrien 209552284Sobrien * cvt.c: Add include for decl.h, remove extern for 209652284Sobrien static_aggregates which is now provided by decl.h. 209752284Sobrien 209852284Sobrien * Makefile.in (cvt.o): Add dependency for decl.h and missing 209952284Sobrien dependencies for convert.h and flags.h. 210052284Sobrien 210152284Sobrien1999-01-18 Nathan Sidwell <nathan@acm.org> 210252284Sobrien 210352284Sobrien * decl2.c (do_dtors): Set current location to that of the 210452284Sobrien decl, for sensible diagnostics and debugging. 210552284Sobrien (check_classfn): Issue `incomplete type' error, if 210652284Sobrien class is not defined. 210752284Sobrien 210852284Sobrien1999-01-16 Jason Merrill <jason@yorick.cygnus.com> 210952284Sobrien 211052284Sobrien * cp-tree.h: Add prototype for bound_pmf_p. 211152284Sobrien 211252284Sobrien1999-01-16 Jason Merrill <jason@yorick.cygnus.com> 211352284Sobrien Manfred Hollstein <manfred@s-direktnet.de> 211452284Sobrien 211552284Sobrien * decl.c (grokdeclarator): Don't make 'main(){}' an error with only 211652284Sobrien -Wreturn-type. 211752284Sobrien 211852284Sobrien1999-01-16 Nathan Sidwell <nathan@acm.org> 211952284Sobrien 212052284Sobrien * cp-tree.h (struct lang_type): Added has_mutable flag. 212152284Sobrien (CLASSTYPE_HAS_MUTABLE): New macro to access it. 212252284Sobrien (TYPE_HAS_MUTABLE_P): New macro to read it. 212352284Sobrien (cp_has_mutable_p): Prototype for new function. 212452284Sobrien * class.c (finish_struct_1): Set has_mutable from members. 212552284Sobrien * decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if 212652284Sobrien it contains a mutable. 212752284Sobrien * typeck.c (cp_has_mutable_p): New function. 212852284Sobrien 212952284Sobrien1999-01-15 Mark Mitchell <mark@markmitchell.com> 213052284Sobrien 213152284Sobrien * pt.c (process_template_parm): Ignore top-level qualifiers on 213252284Sobrien non-type parameters. 213352284Sobrien 213452284Sobrien * decl.c (start_function): Use current_function_parms in the call 213552284Sobrien to require_complete_type_for_parms, not the probably empty 213652284Sobrien DECL_ARGUMENTS. 213752284Sobrien 213852284Sobrien1999-01-14 Jason Merrill <jason@yorick.cygnus.com> 213952284Sobrien 214052284Sobrien * semantics.c (finish_asm_stmt): Don't warn about redundant volatile. 214152284Sobrien 214252284Sobrien * decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means 214352284Sobrien that we don't suppress the other copies. 214452284Sobrien * lex.c (handle_cp_pragma): Likewise. 214552284Sobrien 214652284Sobrien1999-01-13 Mark Mitchell <mark@markmitchell.com> 214752284Sobrien 214852284Sobrien * decl.c (grokdeclarator): Undo 1998-12-14 change. 214952284Sobrien * tree.c (build_cplus_array_type_1): Likewise. 215052284Sobrien * pt.c (instantiate_class_template): Remove misleading comment. 215152284Sobrien (tsubst_aggr_type): Substitute if there are template parameters, 215252284Sobrien regardless of whether or not they use template arguments. 215352284Sobrien (unify): Likewise, but for unification. 215452284Sobrien 215552284Sobrien1999-01-12 Richard Henderson <rth@cygnus.com> 215652284Sobrien 215752284Sobrien * cp-tree.h (flag_permissive): Declare extern. 215852284Sobrien 215952284Sobrien1999-01-06 Mark Mitchell <mark@markmitchell.com> 216052284Sobrien 216152284Sobrien * cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT 216252284Sobrien here. 216352284Sobrien (lang_type): Add is_partial_instantiation. Decrease width of 216452284Sobrien dummy. 216552284Sobrien (PARTIAL_INSTANTIATION_P): New macro. 216652284Sobrien (OPERATOR_TYPENAME_P): Remove. 216752284Sobrien * decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not 216852284Sobrien OPERATOR_TYPENAME_P. 216952284Sobrien (grok_op_properties): Likewise. 217052284Sobrien * friend.c (do_friend): Handle friends that are member functions 217152284Sobrien correctly. 217252284Sobrien * lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT. 217352284Sobrien * pt.c (instantiate_class_template): Rework for clarity. Avoid 217452284Sobrien leaving TYPE_BEING_DEFINED set in obscure cases. Don't do 217552284Sobrien any more partial instantiation than is absolutely necessary for 217652284Sobrien implicit typename. Set PARTIAL_INSTANTIATION_P. 217752284Sobrien (tsubst_decl): Use IDENTIFIER_TYPENAME_P. 217852284Sobrien * semantics.c (begin_class_definition): Handle partial 217952284Sobrien specializations of a type that was previously partially 218052284Sobrien instantiated. 218152284Sobrien 218252284SobrienWed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net. 218352284Sobrien 218452284Sobrien * g++spec.c (LIBSTDCXX): Provide default definition. 218552284Sobrien (lang_specific_driver): Use LIBSTDCXX instead of "-lstdc++". 218652284Sobrien 218752284SobrienTue Jan 5 22:11:25 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 218852284Sobrien 218952284Sobrien * Make-lang.in (g++.o): Depend on prefix.h. 219052284Sobrien 219152284Sobrien1999-01-04 Jason Merrill <jason@yorick.cygnus.com> 219252284Sobrien 219352284Sobrien * tree.c (bound_pmf_p): New fn. 219452284Sobrien * typeck.c (build_c_cast): Use it. 219552284Sobrien 219652284Sobrien * decl.c (grok_op_properties): Use same_type_p. 219752284Sobrien 219852284SobrienTue Dec 22 15:09:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 219952284Sobrien 220052284Sobrien * Makefile.in (cvt.o): Depend on toplev.h. 220152284Sobrien 220252284Sobrien * cp-tree.h (check_template_shadow, pod_type_p): Add prototypes. 220352284Sobrien 220452284Sobrien * cvt.c: Include toplev.h. 220552284Sobrien 220652284Sobrien * except.c (get_eh_caught, get_eh_handlers): Hide prototypes and 220752284Sobrien definitions. 220852284Sobrien 220952284Sobrien * init.c (expand_vec_init): Initialize variable `itype'. 221052284Sobrien 221152284Sobrien * lex.c (yyerror): Cast the argument passed to a ctype function to 221252284Sobrien an unsigned char. 221352284Sobrien 221452284Sobrien * method.c (build_mangled_C9x_name): Wrap prototype and definition 221552284Sobrien in "HOST_BITS_PER_WIDE_INT >= 64". 221652284Sobrien 221752284Sobrien * typeck.c (build_binary_op): Mark parameter `convert_p' with 221852284Sobrien ATTRIBUTE_UNUSED. 221952284Sobrien 222052284Sobrien1998-12-22 Mark Mitchell <mark@markmitchell.com> 222152284Sobrien 222252284Sobrien * cp-tree.h (TYPE_RAISES_EXCEPTIONS): Improve documentation. 222352284Sobrien * tree.c (build_exception_variant): Don't crash on empty throw 222452284Sobrien specs. 222552284Sobrien 222652284Sobrien1998-12-18 DJ Delorie <dj@cygnus.com> 222752284Sobrien 222852284Sobrien * cvt.c (convert_to_reference): Check for both error_mark_node 222952284Sobrien and NULL_NODE after call to convert_for_initialization. 223052284Sobrien 223152284Sobrien1998-12-17 Jason Merrill <jason@yorick.cygnus.com> 223252284Sobrien 223352284Sobrien * error.c (interesting_scope_p): New fn. 223452284Sobrien (dump_simple_decl): Use it. 223552284Sobrien (dump_expr, case CONSTRUCTOR): Force a & for a PMF. 223652284Sobrien (dump_expr, case OFFSET_REF): Print ->* if appropriate. 223752284Sobrien 223852284Sobrien1998-12-16 Mark Mitchell <mark@markmitchell.com> 223952284Sobrien 224052284Sobrien * class.c (resolve_address_of_overloaded_function): Do conversion 224152284Sobrien to correct type here, rather than ... 224252284Sobrien (instantiate_type): Here. 224352284Sobrien 224452284Sobrien * cp-tree.h (DECL_TEMPLATE_PARM_P): New macro. 224552284Sobrien (DECL_TEMPLATE_TEMPLATE_PARM_P): Use it. 224652284Sobrien (decl_template_parm_p): Remove. 224752284Sobrien * decl.c (pushdecl): Don't set DECL_CONTEXT for a template 224852284Sobrien parameter. 224952284Sobrien * lex.c (do_identifier): Use DECL_TEMPLATE_PARM_P. 225052284Sobrien * pt.c (push_inline_template_parms_recursive): Set it. 225152284Sobrien (decl_template_parm_p): Remove. 225252284Sobrien (check_template_shadow): Use DECL_TEMPLATE_PARM_P. 225352284Sobrien (process_template_parm): Set it. 225452284Sobrien 225552284SobrienWed Dec 16 16:33:58 1998 Dave Brolley <brolley@cygnus.com> 225652284Sobrien 225752284Sobrien * lang-specs.h (default_compilers): Pass -MD, -MMD and -MG to cc1plus 225852284Sobrien if configured with cpplib. 225952284Sobrien 226052284Sobrien1998-12-15 Mark Mitchell <mark@markmitchell.com> 226152284Sobrien 226252284Sobrien * decl.c (poplevel): Make sure ns_binding is initialized. 226352284Sobrien 226452284Sobrien * decl.c (finish_function): Undo inadvertent change in previous 226552284Sobrien patch. 226652284Sobrien 226752284Sobrien1998-12-14 Mark Mitchell <mark@markmitchell.com> 226852284Sobrien 226952284Sobrien * class.c (pushclass): Tweak handling of class-level bindings. 227052284Sobrien (resolve_address_of_overloaded_function): Update pointer-to-member 227152284Sobrien handling. 227252284Sobrien (instantiate_type): Likewise. 227352284Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 227452284Sobrien * decl.c (pop_binding): Take the DECL to pop, not just the name. 227552284Sobrien Deal with `struct stat' hack. 227652284Sobrien (binding_level): Add to documentation. 227752284Sobrien (push_binding): Clear BINDING_TYPE. 227852284Sobrien (add_binding): New function. 227952284Sobrien (push_local_binding): Use it. 228052284Sobrien (push_class_binding): Likewise. 228152284Sobrien (poplevel): Adjust calls to pop_binding. 228252284Sobrien (poplevel_class): Likewise. 228352284Sobrien (pushdecl): Adjust handling of TYPE_DECLs; add bindings for hidden 228452284Sobrien declarations to current binding level. 228552284Sobrien (push_class_level_binding): Likewise. 228652284Sobrien (push_overloaded_decl): Adjust handling of OVERLOADs in local 228752284Sobrien bindings. 228852284Sobrien (lookup_namespace_name): Don't crash when confronted with a 228952284Sobrien TEMPLATE_DECL. 229052284Sobrien (lookup_name_real): Do `struct stat' hack in local binding 229152284Sobrien contexts. 229252284Sobrien (build_ptrmemfunc_type): Adjust documentation. 229352284Sobrien (grokdeclarator): Don't avoid building real array types when 229452284Sobrien processing templates unless really necessary. 229552284Sobrien (finish_method): Adjust calls to pop_binding. 229652284Sobrien * decl2.c (reparse_absdcl_as_expr): Recursively call ourselves, 229752284Sobrien not reparse_decl_as_expr. 229852284Sobrien (build_expr_from_tree): Deal with a template-id as the function to 229952284Sobrien call in a METHOD_CALL_EXPR. 230052284Sobrien * pt.c (convert_nontype_argument): Tweak pointer-to-member handling. 230152284Sobrien (maybe_adjust_types_For_deduction): Don't do peculiar things with 230252284Sobrien METHOD_TYPEs here. 230352284Sobrien (resolve_overloaded_unification): Handle COMPONENT_REFs. Build 230452284Sobrien pointer-to-member types where necessary. 230552284Sobrien * tree.c (build_cplus_array_type_1): Don't avoid building real 230652284Sobrien array types when processing templates unless really necessary. 230752284Sobrien (build_exception_variant): Compare the exception lists correctly. 230852284Sobrien 230952284Sobrien1998-12-13 Mark Mitchell <mark@markmitchell.com> 231052284Sobrien 231152284Sobrien * cp-tree.def (CPLUS_BINDING): Update documentation. 231252284Sobrien * cp-tree.h (LOCAL_BINDING_P): New macro. 231352284Sobrien (lang_identifier): Rename local_value to bindings. 231452284Sobrien (tree_binding): Make `scope' of type `void*', not `tree'. 231552284Sobrien (BINDING_SCOPE): Update documentation. 231652284Sobrien (IDENTIFIER_LOCAL_VALUE): Remove. 231752284Sobrien (IDENTIFIER_CLASS_VALUE): Document. 231852284Sobrien (IDENTIFIER_BINDING): New macro. 231952284Sobrien (IDENTIFIER_VALUE): Likewise. 232052284Sobrien (TIME_IDENTIFIER_TIME): Likewise. 232152284Sobrien (TIME_IDENTIFIER_FILEINFO): Likewise. 232252284Sobrien (IMPLICIT_TYPENAME_P): Likewise. 232352284Sobrien (set_identifier_local_value): Remove. 232452284Sobrien (push_local_binding): New function. 232552284Sobrien (push_class_binding): Likewise. 232652284Sobrien * class.c (pushclass): Update comments; use push_class_binding. 232752284Sobrien * decl.c (set_identifier_local_value_with_scope): Remove. 232852284Sobrien (set_identifier_local_value): Likewise. 232952284Sobrien (push_binding): New function. 233052284Sobrien (pop_binding): Likewise. 233152284Sobrien (binding_level): Update documentation. Remove shadowed. 233252284Sobrien (BINDING_LEVEL): New macro. 233352284Sobrien (free_binding_nodes): New variable. 233452284Sobrien (poplevel): Adjust for new name-lookup scheme. Don't mess up 233552284Sobrien BLOCK_VARs when doing for-scope extension. Remove effectively 233652284Sobrien dead code. 233752284Sobrien (pushlevel_class): Tweak formatting. 233852284Sobrien (poplevel_class): Adjust for new name-lookup scheme. 233952284Sobrien (print_binding_level): Likewise. 234052284Sobrien (store_bindings): Likewise. 234152284Sobrien (pushdecl): Likewise. 234252284Sobrien (pushdecl_class_level): Likewise. 234352284Sobrien (push_class_level_binding): Likewise. 234452284Sobrien (push_overloaded_decl): Update comments. Adjust for new 234552284Sobrien name-lookup scheme. 234652284Sobrien (lookup_name_real): Likewise. 234752284Sobrien (lookup_name_current_level): Likewise. 234852284Sobrien (cp_finish_decl): Likewise. 234952284Sobrien (require_complete_types_for_parms): Likewise. Remove misleading 235052284Sobrien #if 0'd code. 235152284Sobrien (grok_parms): Likewise. Don't call 235252284Sobrien require_complete_types_for_parms here. 235352284Sobrien (grok_ctor_properties): Don't treat templates as copy 235452284Sobrien constructors. 235552284Sobrien (grop_op_properties): Or as assignment operators. 235652284Sobrien (start_function): Document. Adjust for new name-lookup scheme. 235752284Sobrien (finish_function): Likewise. 235852284Sobrien * decl2.c (do_local_using_decl): Use push_local_binding. 235952284Sobrien * lex.c (begin_definition_of_inclass_inline): New function, split 236052284Sobrien out from ... 236152284Sobrien (do_pending_inlines): Here, and ... 236252284Sobrien (process_next_inline): Here. 236352284Sobrien (get_time_identifier): Use TIME_IDENTIFIER_* macros. 236452284Sobrien (init_filename_times): Likewise. 236552284Sobrien (extract_interface_info): Likewise. 236652284Sobrien (ste_typedecl_interface_info): Likewise. 236752284Sobrien (check_newline): Likewise. 236852284Sobrien (dump_time_statistics): Likewise. 236952284Sobrien (handle_cp_pragma): Likewise. 237052284Sobrien (do_identifier): Adjust for new name-lookup scheme. 237152284Sobrien * parse.y (function_try_block): Return ctor_initializer_opt value. 237252284Sobrien (fndef): Use it. 237352284Sobrien (fn.defpen): Pass appropriate values to start_function. 237452284Sobrien (pending_inline): Use functor_try_block value, and pass 237552284Sobrien appropriate values to finish_function. 237652284Sobrien * pt.c (is_member_template): Update documentation; remove handling 237752284Sobrien of FUNCTION_DECLs. As per name, this function should deal only in 237852284Sobrien TEMPLATE_DECLs. 237952284Sobrien (decl_template_parm_p): Change name of olddecl parameter to decl. 238052284Sobrien (check_template_shadow): Adjust for new name-lookup scheme. 238152284Sobrien (lookup_template_class): Likewise. 238252284Sobrien (tsubst_decl): Tweak so as not to confuse member templates with 238352284Sobrien copy constructors and assignment operators. 238452284Sobrien (unify): Handle UNION_TYPEs. 238552284Sobrien * ptree.c (print_lang_identifier): Adjust for new name-lookup scheme. 238652284Sobrien (lang_print_xnode): Adjust for new name-lookup scheme. 238752284Sobrien * typeck.c (mark_addressable): Likewise. 238852284Sobrien (c_expand_return): Likewise. 238952284Sobrien 239052284Sobrien1998-12-08 Jason Merrill <jason@yorick.cygnus.com> 239152284Sobrien 239252284Sobrien * decl.c (grokdeclarator): Allow field with same name as class 239352284Sobrien in extern "C". 239452284Sobrien 239552284Sobrien * decl.c (lookup_name_real): Don't limit field lookup to types. 239652284Sobrien * class.c (check_member_decl_is_same_in_complete_scope): No error 239752284Sobrien if icv and x are the same. 239852284Sobrien * lex.c (do_identifier): Tweak error message. 239952284Sobrien 240052284Sobrien1998-12-10 Mark Mitchell <mark@markmitchell.com> 240152284Sobrien 240252284Sobrien * decl.c (start_enum): Use push_obstacks, not 240352284Sobrien end_temporary_allocation. 240452284Sobrien (finish_enum): Call pop_obstacks. 240552284Sobrien 240652284Sobrien1998-12-10 Mark Mitchell <mark@markmitchell.com> 240752284Sobrien 240852284Sobrien * class.c (instantiate_type): Return error_mark_node rather than 240952284Sobrien junk. 241052284Sobrien 241152284Sobrien1998-12-09 Mark Mitchell <mark@markmitchell.com> 241252284Sobrien 241352284Sobrien * cp-tree.h (most_specialized_instantiation): New function. 241452284Sobrien (print_candidates): Likewise. 241552284Sobrien * class.c (validate_lhs): Remove. 241652284Sobrien (resolve_address_of_overloaded_function): New function, split out 241752284Sobrien and then substantially reworked, from ... 241852284Sobrien (instantiate_type): Use it. Simplify. 241952284Sobrien * cvt.c (convert_to_reference): Complain when caller has indicated 242052284Sobrien that's the right thing to do. Don't crash if instantiate_type 242152284Sobrien fails. 242252284Sobrien * pt.c: Substitute `parameters' for `paramters' throughout. 242352284Sobrien (print_candidates): Don't make it static. 242452284Sobrien (most_specialized_instantiation): Split out from ... 242552284Sobrien (most_specialized): Here. 242652284Sobrien 242752284SobrienWed Dec 9 15:33:01 1998 Dave Brolley <brolley@cygnus.com> 242852284Sobrien 242952284Sobrien * lex.c (lang_init_options): Initialize cpplib. 243052284Sobrien * decl2.c (parse_options,cpp_initialized): Removed. 243152284Sobrien (lang_decode_option): Move initialization of cpplib to 243252284Sobrien lang_init_options. 243352284Sobrien 243452284Sobrien1998-12-09 Mark Mitchell <mark@markmitchell.com> 243552284Sobrien 243652284Sobrien * decl.c (grokdeclarator): Update the name of the TEMPLATE_DECL, as 243752284Sobrien well as the TYPE_DECL, when a typedef name is assigned to a 243852284Sobrien previously anonymous type. 243952284Sobrien 244052284Sobrien1998-12-08 Andrew MacLeod <amacleod@cygnus.com> 244152284Sobrien 244252284Sobrien * cp/except.c (call_eh_info): Use __start_cp_handler instead of 244352284Sobrien __cp_eh_info for getting the eh info pointer. Add table_index to 244452284Sobrien field list. 244552284Sobrien (push_eh_cleanup): Don't increment 'handlers' data field. 244652284Sobrien (process_start_catch_block): Don't set the 'caught' field. 244752284Sobrien 244852284Sobrien * cp/exception.cc (CP_EH_INFO): New macro for getting the 244952284Sobrien exception info pointer within library routines. 245052284Sobrien (__cp_eh_info): Use CP_EH_INFO. 245152284Sobrien (__start_cp_handler): Get exception info pointer, set caught field, 245252284Sobrien and increment the handlers field. Avoids this being done by handlers. 245352284Sobrien (__uncatch_exception, __check_eh_spec): Use CP_EH_INFO macro. 245452284Sobrien (uncaught_exception): Use CP_EH_INFO macro. 245552284Sobrien 245652284SobrienTue Dec 8 10:48:21 1998 Jeffrey A Law (law@cygnus.com) 245752284Sobrien 245852284Sobrien * Make-lang.in (cxxmain.o): Depend on $(DEMANGLE_H), not demangle.h 245952284Sobrien 246052284SobrienMon Dec 7 17:56:06 1998 Mike Stump <mrs@wrs.com> 246152284Sobrien 246252284Sobrien * lex.c (check_newline): Add support for \ as `natural' 246352284Sobrien characters in file names in #line to be consistent with #include 246452284Sobrien handling. We support escape processing in the # 1 "..." version of 246552284Sobrien the command. See also support in cp/lex.c. 246652284Sobrien 246752284Sobrien1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> 246852284Sobrien 246952284Sobrien * cp/decl2.c: s/data/opts/ when initializing cpp_reader 247052284Sobrien structure. 247152284Sobrien 247252284Sobrien1998-12-07 Jason Merrill <jason@yorick.cygnus.com> 247352284Sobrien 247452284Sobrien * decl.c (build_typename_type): Set DECL_ARTIFICIAL. 247552284Sobrien 247652284Sobrien * error.c (dump_simple_decl): Also print namespace context. 247752284Sobrien (dump_function_decl): Likewise. 247852284Sobrien 247952284Sobrien * decl2.c (ambiguous_decl): Don't print old value if it's 248052284Sobrien error_mark_node. 248152284Sobrien 248252284Sobrien * decl.c (lookup_name_real): Fix handling of local types shadowed 248352284Sobrien by a non-type decl. Remove obsolete code. 248452284Sobrien * cp-tree.h (DECL_FUNCTION_SCOPE_P): New macro. 248552284Sobrien 248652284Sobrien * lang-options.h: Add -fpermissive. 248752284Sobrien * decl2.c: Likewise. 248852284Sobrien * cp-tree.h: Add flag_permissive. 248952284Sobrien * decl.c (init_decl_processing): If neither -fpermissive or -pedantic 249052284Sobrien were specified, set flag_pedantic_errors. 249152284Sobrien * call.c (build_over_call): Turn dropped qualifier messages 249252284Sobrien back into pedwarns. 249352284Sobrien * cvt.c (convert_to_reference): Likewise. 249452284Sobrien * typeck.c (convert_for_assignment): Likewise. 249552284Sobrien 249652284Sobrien1998-12-05 Jason Merrill <jason@yorick.cygnus.com> 249752284Sobrien 249852284Sobrien * decl2.c (coerce_new_type): Use same_type_p. 249952284Sobrien (coerce_delete_type): Likewise. 250052284Sobrien 250152284Sobrien * call.c (check_dtor_name): Return 1, not error_mark_node. 250252284Sobrien 250352284Sobrien1998-12-04 Jason Merrill <jason@yorick.cygnus.com> 250452284Sobrien 250552284Sobrien * lex.c (handle_cp_pragma): Disable #pragma interface/implementation 250652284Sobrien if MULTIPLE_SYMBOL_SPACES. 250752284Sobrien 250852284Sobrien * pt.c (check_template_shadow): New fn. 250952284Sobrien * decl2.c (grokfield): Use it. 251052284Sobrien * decl.c (pushdecl): Likewise. 251152284Sobrien (pushdecl_class_level): Likewise. 251252284Sobrien (start_method): Likewise. 251352284Sobrien (xref_tag): Don't try to use 't' if we're defining. 251452284Sobrien 251552284Sobrien * call.c (check_dtor_name): Just return an error_mark_node. 251652284Sobrien * pt.c (lookup_template_class): Complain about using non-template here. 251752284Sobrien * parse.y (apparent_template_type): Not here. 251852284Sobrien 251952284Sobrien * pt.c (check_explicit_specialization): Complain about specialization 252052284Sobrien with C linkage. 252152284Sobrien 252252284Sobrien * lang-options.h: Add -f{no-,}implicit-inline-templates. 252352284Sobrien 252452284Sobrien * pt.c (convert_nontype_argument): Don't assume that any integer 252552284Sobrien argument is intended to be a constant-expression. 252652284Sobrien 252752284Sobrien1998-12-03 Mark Mitchell <mark@markmitchell.com> 252852284Sobrien 252952284Sobrien * class.c (handle_using_decl): Fix comment. Don't lookup 253052284Sobrien constructors in base classes. 253152284Sobrien (validate_lhs): Fix typo in comment. 253252284Sobrien * search.c (lookup_field_1): Don't return a USING_DECL. 253352284Sobrien 253452284Sobrien * cp-tree.h (DECL_ACCESS): Improve documentation. 253552284Sobrien 253652284Sobrien * decl.c (expand_static_init): Don't set the initialization-done 253752284Sobrien flag until the initialization is done. 253852284Sobrien 253952284Sobrien1998-12-02 Mark Mitchell <mark@markmitchell.com> 254052284Sobrien 254152284Sobrien * decl2.c (validate_nonmember_using_decl): Complain about using 254252284Sobrien declarations for class members. 254352284Sobrien 254452284Sobrien1998-11-29 Jason Merrill <jason@yorick.cygnus.com> 254552284Sobrien 254652284Sobrien * typeck2.c (process_init_constructor): Use same_type_p. 254752284Sobrien 254852284Sobrien * decl.c (check_tag_decl): Don't warn about null decl inside a 254952284Sobrien class. 255052284Sobrien 255152284Sobrien * pt.c (unify, case OFFSET_TYPE): Pass down 'strict' rather than 255252284Sobrien UNIFY_ALLOW_NONE. 255352284Sobrien (convert_nontype_argument): Use TYPE_PTRMEMFUNC_FN_TYPE. 255452284Sobrien (resolve_overloaded_unification): Strip baselinks. 255552284Sobrien 255652284SobrienFri Nov 27 13:07:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 255752284Sobrien 255852284Sobrien * g++spec.c: Don't prototype xmalloc. 255952284Sobrien 256052284Sobrien1998-11-25 Jason Merrill <jason@yorick.cygnus.com> 256152284Sobrien 256252284Sobrien * except.c (expand_throw): Use TYPE_PTR_P to check for pointers. 256352284Sobrien 256452284Sobrien * decl.c (check_tag_decl): Do complain about null friend decl at 256552284Sobrien file scope. 256652284Sobrien 256752284Sobrien1998-11-25 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> 256852284Sobrien 256952284Sobrien * lex.c (make_lang_type): Clear the whole struct lang_type, not 257052284Sobrien only the first multiple of sizeof (int). 257152284Sobrien 257252284Sobrien1998-11-24 Jason Merrill <jason@yorick.cygnus.com> 257352284Sobrien 257452284Sobrien * decl.c (start_decl): An explicit specialization of a static data 257552284Sobrien member is only a definition if it has an initializer. 257652284Sobrien 257752284Sobrien * except.c (expand_throw): Use cp_finish_decl for the throw temp. 257852284Sobrien * cvt.c (build_up_reference): Pass DIRECT_BIND down into 257952284Sobrien cp_finish_decl. 258052284Sobrien * init.c (expand_default_init): Check for DIRECT_BIND instead of 258152284Sobrien DECL_ARTIFICIAL. 258252284Sobrien 258352284Sobrien * call.c (build_over_call): Use build_decl. 258452284Sobrien 258552284Sobrien * except.c (expand_throw): Just use convert, not 258652284Sobrien build_reinterpret_cast. 258752284Sobrien 258852284Sobrien * lex.c (handle_generic_pragma): Use token_buffer. 258952284Sobrien 259052284Sobrien * decl.c (check_tag_decl): Don't complain about null friend decl. 259152284Sobrien 259252284Sobrien1998-11-24 Dave Pitts <dpitts@cozx.com> 259352284Sobrien 259452284Sobrien * Make-lang.in (DEMANGLER_PROG): Move the output arguments to the 259552284Sobrien first position. 259652284Sobrien * lex.c (check_newline): Use ISALPHA. 259752284Sobrien (readescape): Use ISGRAPH. 259852284Sobrien (yyerror): Use ISGRAPH. 259952284Sobrien 260052284Sobrien1998-11-24 Nathan Sidwell <nathan@acm.org> 260152284Sobrien 260252284Sobrien * search.c (get_abstract_virtuals): Do not use initial 260352284Sobrien CLASSTYPE_ABSTRACT_VIRTUALS. 260452284Sobrien * typeck2.c (abstract_virtuals_error): Show location of abstract 260552284Sobrien declaration. 260652284Sobrien * call.c (build_new_method_call): Use 260752284Sobrien CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate. 260852284Sobrien * class.c (finish_struct_bits): Don't bother working out whether 260952284Sobrien get_abstract_virtuals will do anything, just do it. 261052284Sobrien 261152284Sobrien1998-11-24 Graham <grahams@rcp.co.uk> 261252284Sobrien 261352284Sobrien * typeck.c (build_component_ref): Remove unused statement. 261452284Sobrien 261552284Sobrien1998-11-24 Jason Merrill <jason@yorick.cygnus.com> 261652284Sobrien 261752284Sobrien * class.c (add_method): Catch invalid overloads. 261852284Sobrien 261952284Sobrien * class.c (add_method): Build up OVERLOADs properly for conversion ops. 262052284Sobrien * search.c (lookup_conversions): Handle getting real OVERLOADs. 262152284Sobrien (add_conversions): Likewise. Revert last change. 262252284Sobrien * call.c (add_conv_candidate): Pass totype to add_candidate instead 262352284Sobrien of fn. Don't add a new candidate if the last one was for the same 262452284Sobrien type. 262552284Sobrien (print_z_candidates): Handle getting a type as a function. 262652284Sobrien (joust): If we got two conversion candidates to the same type, 262752284Sobrien just pick one. 262852284Sobrien (build_object_call): Lose 'templates'. 262952284Sobrien (build_user_type_conversion_1): Handle getting real OVERLOADs. 263052284Sobrien 263152284Sobrien1998-11-23 Jason Merrill <jason@yorick.cygnus.com> 263252284Sobrien 263352284Sobrien * typeck2.c (process_init_constructor): If there are elements 263452284Sobrien that don't have initializers and they need to have constructors 263552284Sobrien run, supply them with initializers. 263652284Sobrien 263752284Sobrien * class.c (finish_struct_1): A class with a 0-width bitfield is 263852284Sobrien still empty. 263952284Sobrien 264052284Sobrien1998-11-23 Mark Mitchell <mark@markmitchell.com> 264152284Sobrien 264252284Sobrien * pt.c (instantiate_class_template): Don't try to figure out what 264352284Sobrien specialization to use for a partial instantiation. Correct 264452284Sobrien typos in a couple of comments. Avoid calling uses_template_parms 264552284Sobrien multiple times. 264652284Sobrien 264752284Sobrien1998-11-23 Benjamin Kosnik <bkoz@cygnus.com> 264852284Sobrien 264952284Sobrien * method.c (process_overload_item): Add call to 265052284Sobrien build_mangled_C9x_name for intTI_type_nodes. 265152284Sobrien (build_mangled_C9x_name): Add prototype, define. 265252284Sobrien * decl.c (init_decl_processing): Add names for 265352284Sobrien TImode_type_node. 265452284Sobrien 265552284Sobrien1998-11-23 Jason Merrill <jason@yorick.cygnus.com> 265652284Sobrien 265752284Sobrien * parse.y (named_class_head): Update CLASSTYPE_DECLARED_CLASS. 265852284Sobrien 265952284Sobrien * class.c (finish_struct_1): Set things up for 0-width bitfields 266052284Sobrien like we do for others. 266152284Sobrien 266252284Sobrien * decl.c (check_tag_decl): New fn. 266352284Sobrien (shadow_tag): Split out from here. 266452284Sobrien * decl2.c (grok_x_components): Call it. 266552284Sobrien 266652284Sobrien1998-11-22 Jason Merrill <jason@yorick.cygnus.com> 266752284Sobrien 266852284Sobrien * decl.c: Lose warn_about_return_type. 266952284Sobrien (grokdeclarator): Always complain about implicit int, except for 267052284Sobrien `main () { ... }'. 267152284Sobrien 267252284Sobrien * decl.c (tag_name): New fn. 267352284Sobrien (xref_tag): Complain about using typedef-name after class-key. 267452284Sobrien 267552284Sobrien * init.c (expand_vec_init): Also keep going if from_array. 267652284Sobrien 267752284Sobrien * tree.c (is_overloaded_fn): Also handle the output of 267852284Sobrien build_offset_ref. 267952284Sobrien 268052284Sobrien * decl.c (grokdeclarator): Use constructor_name when comparing 268152284Sobrien field name against enclosing class. 268252284Sobrien * class.c (finish_struct_anon): Likewise. 268352284Sobrien 268452284Sobrien1998-11-22 Mark Mitchell <mark@markmitchell.com> 268552284Sobrien 268652284Sobrien * decl.c (poplevel): Remove code to handle KEEP == 2. 268752284Sobrien (finish_function): Don't confuse BLOCK-order when 268852284Sobrien processing a destructor. 268952284Sobrien 269052284Sobrien1998-11-21 Jason Merrill <jason@yorick.cygnus.com> 269152284Sobrien 269252284Sobrien * decl.c (require_complete_types_for_parms): Call layout_decl 269352284Sobrien after we've completed the type. 269452284Sobrien 269552284Sobrien1998-11-21 Martin von L�wis <loewis@informatik.hu-berlin.de> 269652284Sobrien 269752284Sobrien * decl2.c (validate_nonmember_using_decl): Allow using templates 269852284Sobrien from the global namespace. 269952284Sobrien 270052284Sobrien1998-11-21 Jason Merrill <jason@yorick.cygnus.com> 270152284Sobrien 270252284Sobrien Handle specifying template args to member function templates. 270352284Sobrien * tree.c (build_overload): Always create an OVERLOAD for a template. 270452284Sobrien * search.c (add_conversions): Handle finding an OVERLOAD. 270552284Sobrien * decl2.c (check_classfn): Likewise. 270652284Sobrien * lex.c (identifier_type): See through a baselink. 270752284Sobrien * parse.y (do_id): Don't call do_identifier if we got a baselink. 270852284Sobrien * class.c (instantiate_type, case TREE_LIST): Recurse. 270952284Sobrien 271052284Sobrien * decl.c (grokdeclarator): Allow a boolean constant for array 271152284Sobrien bounds, odd as that sounds. 271252284Sobrien 271352284Sobrien * pt.c (unify): Be more strict about non-type parms, except for 271452284Sobrien array bounds. 271552284Sobrien (UNIFY_ALLOW_INTEGER): New macro. 271652284Sobrien 271752284Sobrien1998-11-19 Manfred Hollstein <manfred@s-direktnet.de> 271852284Sobrien 271952284Sobrien * Make-lang.in (mandir): Replace all uses of $(mandir) by $(man1dir). 272052284Sobrien 272152284Sobrien1998-11-19 Jason Merrill <jason@yorick.cygnus.com> 272252284Sobrien 272352284Sobrien * semantics.c (begin_class_definition): Call 272452284Sobrien maybe_process_partial_specialization before push_template_decl. 272552284Sobrien Don't call push_template_decl for a specialization. 272652284Sobrien * search.c (lookup_field): Do return a member template class. 272752284Sobrien * decl2.c (handle_class_head): Handle member template classes. 272852284Sobrien 272952284Sobrien * decl.c (grokdeclarator): A parm type need not be complete. 273052284Sobrien 273152284Sobrien * pt.c (convert_nontype_argument): Fix thinko. 273252284Sobrien 273352284Sobrien1998-11-18 Mark Mitchell <mark@markmitchell.com> 273452284Sobrien 273552284Sobrien * cp-tree.h (PTRMEM_CST_CLASS): Fix typo. 273652284Sobrien (global_delete_fndecl): New variable. 273752284Sobrien * decl.c (global_delete_fndecl): Define it. 273852284Sobrien (init_decl_processing): Set it. 273952284Sobrien * init.c (build_builtin_delete_call): Use it. 274052284Sobrien * tree.c (mapcar): Recursively call mapcar for the type of EXPR 274152284Sobrien nodes. 274252284Sobrien 274352284Sobrien1998-11-18 Jason Merrill <jason@yorick.cygnus.com> 274452284Sobrien 274552284Sobrien * decl.c (cplus_expand_expr_stmt): Always complain about unresolved 274652284Sobrien type. 274752284Sobrien 274852284Sobrien * tree.c (lvalue_p_1): An INDIRECT_REF to a function is an lvalue. 274952284Sobrien * call.c (build_object_call): Also support references to functions. 275052284Sobrien * typeck.c (convert_for_initialization): Don't decay a function 275152284Sobrien if the target is a reference to function. 275252284Sobrien 275352284Sobrien * search.c (add_conversions): Get all the overloads from a class. 275452284Sobrien 275552284Sobrien * decl.c (grok_ctor_properties): Complain about any constructor 275652284Sobrien that will take a single arg of the class type by value. 275752284Sobrien 275852284Sobrien * typeck2.c (build_functional_cast): Can't create objects of 275952284Sobrien abstract classes this way. 276052284Sobrien * cvt.c (ocp_convert): Likewise. 276152284Sobrien 276252284Sobrien * decl.c (grokfndecl): Member functions of local classes are not 276352284Sobrien public. 276452284Sobrien 276552284Sobrien1998-11-18 Mark Mitchell <mark@markmitchell.com> 276652284Sobrien 276752284Sobrien * Make-lang.in (cc1plus): Add dependency on hash.o. 276852284Sobrien 276952284Sobrien1998-11-18 Jason Merrill <jason@yorick.cygnus.com> 277052284Sobrien 277152284Sobrien * search.c (get_abstract_virtuals): Complain about virtuals with 277252284Sobrien no final overrider. 277352284Sobrien * typeck2.c (abstract_virtuals_error): Remove handling for virtuals 277452284Sobrien with no final overrider. 277552284Sobrien * class.c (override_one_vtable): Don't set DECL_ABSTRACT_VIRTUAL_P 277652284Sobrien on virtuals with no final overrider. 277752284Sobrien 277852284Sobrien * lex.c (reinit_parse_for_block): Add a space after the initial ':'. 277952284Sobrien 278052284Sobrien * class.c (finish_struct_1): Don't remove zero-width bit-fields until 278152284Sobrien after layout_type. 278252284Sobrien 278352284Sobrien * friend.c (do_friend): Don't set_mangled_name_for_decl. 278452284Sobrien 278552284Sobrien * class.c (finish_struct_anon): Complain about non-fields. 278652284Sobrien * decl2.c (build_anon_union_vars): Likewise. 278752284Sobrien 278852284Sobrien * decl.c (grokdeclarator): Normal data members can't have the same 278952284Sobrien name as the class, either. 279052284Sobrien * class.c (finish_struct_anon): Neither can members of an 279152284Sobrien anonymous union. 279252284Sobrien 279352284Sobrien1998-11-17 Mark Mitchell <mark@markmitchell.com> 279452284Sobrien 279552284Sobrien * cp-tree.h (TYPE_ALIAS_SET): Document language-dependent uses. 279652284Sobrien (TYPE_BINFO): Likewise. 279752284Sobrien (IS_AGGR_TYPE): Tweak. 279852284Sobrien (SET_IS_AGGR_TYPE): New macro. 279952284Sobrien (CLASS_TYPE_P): Tweak. 280052284Sobrien (lang_type): Group mark bitfields together. Remove linenum. 280152284Sobrien (CLASSTYPE_SOURCE_LINE): Remove macro. 280252284Sobrien (CLASSTYPE_MARKED_N): New macro. 280352284Sobrien (SET_CLASSTYPE_MARKED_N): Likewise. 280452284Sobrien (CLEAR_CLASSTYPE_MARKED_N): Likewise. 280552284Sobrien (CLASS_TYPE_MARKED_*): Use them. 280652284Sobrien (SET_CLASSTYPE_MARKED_*): Likewise. 280752284Sobrien (CLEAR_CLASSTYPE_MARKED_*): Likewise. 280852284Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 280952284Sobrien (TYPE_TEMPLATE_INFO): Handle TEMPLATE_TEMPLATE_PARMs as well. 281052284Sobrien (TYPENAME_TYPE_FULLNAME): Use TYPE_BINFO rather than CLASSTYPE_SIZE. 281152284Sobrien * class.c (class_cache_obstack): New variable. 281252284Sobrien (class_cache_firstobj): Likewise. 281352284Sobrien (finish_struct): Don't set CLASSTYPE_SOURCE_LINE. 281452284Sobrien (pushclass): Free the cache, when appropriate. 281552284Sobrien (popclass): Tidy. 281652284Sobrien (maybe_push_cache_obstack): Use class_cache_obstack. 281752284Sobrien * decl.c (include hash.h). 281852284Sobrien (typename_hash): New function. 281952284Sobrien (typename_compare): Likewise. 282052284Sobrien (build_typename_type): Check the hash table to avoid creating 282152284Sobrien duplicates. 282252284Sobrien (build_ptrmemfunc_type): Use SET_IS_AGGR_TYPE. 282352284Sobrien (grokdeclarator): Use CLASS_TYPE_P. 282452284Sobrien (xref_basetypes): Likewise. 282552284Sobrien (start_function): Likewise. Don't put current_class_ref on the 282652284Sobrien permanent obstack. 282752284Sobrien * error.c (dump_type_real): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO 282852284Sobrien and TYPE_TI_ARGS. 282952284Sobrien * lex.c (note_got_semicolon): Use CLASS_TYPE_P. 283052284Sobrien (make_lang_type): Don't create TYPE_LANG_SPECIFIC and associated 283152284Sobrien fields for types other than class types. Do clear TYPE_ALIAS_SET 283252284Sobrien for types other than class types, though. 283352284Sobrien * method.c (build_overload_identifier): Use CLASS_TYPE_P and 283452284Sobrien TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 283552284Sobrien * pt.c (process_template_parm): Don't set 283652284Sobrien CLASSTYPE_GOT_SEMICOLON. 283752284Sobrien (lookup_template_class): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 283852284Sobrien Coerce arguments on the momentary obstack. 283952284Sobrien (for_each_template_parm): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 284052284Sobrien (instantiate_class_template): Calculate template arguments on the 284152284Sobrien momentary obstack. Tidy. 284252284Sobrien (tsubst_template_arg_vector): Use make_temp_vec. 284352284Sobrien (tsubst_aggr_type): Put template arguments on the momentary 284452284Sobrien obstack. 284552284Sobrien (tsubst_decl): Likewise. 284652284Sobrien (tsubst): Copy the array bounds index to the permanent obstack 284752284Sobrien before building index types. Use new macros. 284852284Sobrien (unify): Use new macros. 284952284Sobrien (do_type_instantiation): Likewise. 285052284Sobrien * search.c (lookup_fnfields_1): Use new macros. 285152284Sobrien (dfs_pushdecls): Build envelopes on the cache obstack. 285252284Sobrien (dfs_compress_decls): Use new macros. 285352284Sobrien (push_class_decls): Build on the cache obstack. 285452284Sobrien * semantics.c (finish_typeof): Don't set CLASSTYPE_GOT_SEMICOLON. 285552284Sobrien * sign.c (build_signature_pointer_or_reference_type): Use 285652284Sobrien SET_IS_AGGR_TYPE. 285752284Sobrien * tree.c (make_binfo): Check CLASS_TYPE_P. 285852284Sobrien (copy_template_template_parm): Adjust. 285952284Sobrien (make_temp_vec): Use push_expression_obstack. 286052284Sobrien * typeck.c (complete_type): Use new macros. 286152284Sobrien (comptypes): Likewise. 286252284Sobrien 286352284Sobrien1998-11-17 Jason Merrill <jason@yorick.cygnus.com> 286452284Sobrien 286552284Sobrien * pt.c (tsubst): Add diagnostics for invalid array, reference 286652284Sobrien and pointer to member types. 286752284Sobrien 286850397Sobrien1998-11-16 Jason Merrill <jason@yorick.cygnus.com> 286918334Speter 287050397Sobrien * typeck2.c (my_friendly_abort): Don't fatal twice in a row. 287118334Speter 287252284Sobrien * typeck.c (c_expand_start_case): Use build_expr_type_conversion. 287352284Sobrien Simplify. 287452284Sobrien 287552284Sobrien * parse.y (structsp): Fix cut-and-paste error. 287652284Sobrien 287752284Sobrien * init.c (build_new): Complain about non-integral size. 287852284Sobrien 287952284Sobrien * parse.y (unary_expr): Complain about defining types in sizeof. 288052284Sobrien 288152284Sobrien * typeck.c (expr_sizeof): Complain about sizeof an overloaded fn. 288252284Sobrien 288352284Sobrien * rtti.c (build_x_typeid): Complain about typeid without 288452284Sobrien including <typeinfo>. 288552284Sobrien (get_typeid): Likewise. Complain about typeid of incomplete type. 288652284Sobrien (get_tinfo_fn_dynamic): Likewise. 288752284Sobrien (get_typeid_1): Not static anymore. 288852284Sobrien * except.c (build_eh_type_type): Use get_typeid_1. 288952284Sobrien 289052284Sobrien * rtti.c (build_dynamic_cast_1): Give errors for dynamic_cast to 289152284Sobrien ambiguous or private bases. Fix warning for reference cast. 289252284Sobrien 289352284Sobrien1998-11-16 Mark Mitchell <mark@markmitchell.com> 289452284Sobrien 289552284Sobrien * cp-tree.h (DECL_TEMPLATE_INSTANTIATED): New macro. 289652284Sobrien * decl.c (duplicate_decls): Remove special-case code to deal with 289752284Sobrien template friends, and just do the obvious thing. 289852284Sobrien * pt.c (register_specialization): Tweak for clarity, and also to 289952284Sobrien clear DECL_INITIAL for an instantiation before it is merged with a 290052284Sobrien specialization. 290152284Sobrien (check_explicit_specialization): Fix indentation. 290252284Sobrien (tsubst_friend_function): Handle both definitions in friend 290352284Sobrien declaration and outside friend declarations. 290452284Sobrien (tsubst_decl): Don't clear DECL_INITIAL for an instantiation. 290552284Sobrien (regenerate_decl_from_template): Tweak accordingly. 290652284Sobrien (instantiate_decl): Likewise. 290752284Sobrien 290852284Sobrien1998-11-16 Jason Merrill <jason@yorick.cygnus.com> 290952284Sobrien 291052284Sobrien * decl.c (cplus_expand_expr_stmt): Promote warning about naked 291152284Sobrien member function reference to error. 291252284Sobrien * cvt.c (ocp_convert): Complain about converting an overloaded 291352284Sobrien function to void. 291452284Sobrien 291552284Sobrien * init.c (build_offset_ref): Just return a lone static member 291652284Sobrien function. 291752284Sobrien 291852284Sobrien * decl.c (cp_finish_decl): Only complain about real CONSTRUCTORs, 291952284Sobrien not internal ones. 292052284Sobrien 292152284Sobrien * typeck.c (build_binary_op_nodefault): Improve error handling. 292252284Sobrien 292352284Sobrien * decl.c (grokfndecl): Complain about making 'main' a template. 292452284Sobrien 292552284Sobrien * typeck.c (string_conv_p): Don't convert from wchar_t[] to char*. 292652284Sobrien 292752284Sobrien * call.c (build_method_call): Handle a BIT_NOT_EXPR around a 292852284Sobrien TYPE_DECL in a template. 292952284Sobrien 293050397Sobrien1998-11-15 Jason Merrill <jason@yorick.cygnus.com> 293118334Speter 293250397Sobrien * typeck2.c (my_friendly_abort): Add URL in the other case, too. 293318334Speter 293452284Sobrien * decl.c (struct cp_function): Add named_label_uses. 293552284Sobrien (push_cp_function_context): Save it. 293652284Sobrien (pop_cp_function_context): Restore it. 293752284Sobrien (define_label): Also complain about jumping into the scope of 293852284Sobrien non-POD objects that don't have constructors. 293952284Sobrien * tree.c (pod_type_p): New fn. 294018334Speter 294152284Sobrien * pt.c (instantiate_class_template): Clear TYPE_BEING_DEFINED sooner. 294250397Sobrien * rtti.c (synthesize_tinfo_fn): Call import_export_decl here. 294350397Sobrien (get_tinfo_fn): Not here. 294452284Sobrien * repo.c (repo_get_id): Abort if we get called for an incomplete 294552284Sobrien type. 294618334Speter 294752284Sobrien1998-11-13 Mark Mitchell <mark@markmitchell.com> 294852284Sobrien 294952284Sobrien * except.c (expand_throw): Make sure first argument to 295052284Sobrien __cp_push_exception is of type `void*' to avoid spurious error 295152284Sobrien messages. 295252284Sobrien 295352284Sobrien1998-11-11 Jason Merrill <jason@yorick.cygnus.com> 295452284Sobrien 295552284Sobrien * pt.c (try_one_overload): Take orig_targs again. Only check for 295652284Sobrien mismatches against them; we don't care what a previous call found. 295752284Sobrien (resolve_overloaded_unification): Adjust. 295852284Sobrien 295952284Sobrien * search.c (lookup_field): Don't return anything for a non-type 296052284Sobrien field from a dependent type. 296152284Sobrien * decl.c (grokdeclarator): Resolve SCOPE_REFs of the current class 296252284Sobrien in an array declarator. 296352284Sobrien (start_decl): Push into the class before looking for the field. 296452284Sobrien 296550397Sobrien1998-11-08 Mark Mitchell <mark@markmitchell.com> 296618334Speter 296752284Sobrien * method.c (build_overload_value): Handle REFERENCE_TYPE. 296818334Speter 296952284Sobrien1998-11-08 Martin von L�wis <loewis@informatik.hu-berlin.de> 297052284Sobrien 297152284Sobrien * decl.c (grokdeclarator): Allow namespace-scoped members if they 297252284Sobrien are friends. 297352284Sobrien 297452284Sobrien1998-11-08 Jason Merrill <jason@yorick.cygnus.com> 297552284Sobrien 297652284Sobrien * pt.c (tsubst_decl): Don't mess with the global value of an 297752284Sobrien un-mangled DECL_ASSEMBLER_NAME. 297852284Sobrien 297952284Sobrien1998-11-03 Christopher Faylor <cgf@cygnus.com> 298052284Sobrien 298152284Sobrien * decl.c (init_decl_processing): Remove CYGWIN conditional 298252284Sobrien since CYGWIN is now able to deal with trapping signals. 298352284Sobrien 298452284SobrienSat Nov 7 15:48:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 298552284Sobrien 298652284Sobrien * cp-tree.h: Don't include gansidecl.h. 298752284Sobrien * exception.cc: Include gansidecl.h (since we don't include config.h) 298852284Sobrien * g++spec.c: Don't include gansidecl.h. 298952284Sobrien 299052284Sobrien1998-11-06 Mark Mitchell <mark@markmitchell.com> 299152284Sobrien 299252284Sobrien * cp-tree.h (lang_decl_flags): Add defined_in_class. Decrease 299352284Sobrien size of dummy. 299452284Sobrien (DECL_DEFINED_IN_CLASS_P): New macro. 299552284Sobrien (TEMPLATE_PARMS_FOR_INLINE): Document. 299652284Sobrien (check_static_variable_definition): New function. 299752284Sobrien * decl.c (cp_finish_decl): Set DECL_DEFINED_IN_CLASS_P, if 299852284Sobrien appropriate. 299952284Sobrien (check_static_variable_definition): Split out from ... 300052284Sobrien (grokdeclarator): Here. 300152284Sobrien * pt.c (check_default_tmpl_args): New function, split out from ... 300252284Sobrien (push_template_decl_real): Here. 300352284Sobrien (instantiate_template): Fix comment. 300452284Sobrien 300552284Sobrien1998-11-04 Mark Mitchell <mark@markmitchell.com> 300652284Sobrien 300752284Sobrien * cp-tree.h (CP_TYPE_CONST_P): Make {0,1}-valued. 300852284Sobrien (CP_TYPE_VOLATILE_P): Likewise. 300952284Sobrien (CP_TYPE_RESTRICT_P): Likewise. 301052284Sobrien 301152284Sobrien1998-11-03 Mark Mitchell <mark@markmitchell.com> 301252284Sobrien 301352284Sobrien * pt.c (tsubst): Use build_index_type, not build_index_2_type. 301452284Sobrien 301550397Sobrien1998-11-02 Jason Merrill <jason@yorick.cygnus.com> 301618334Speter 301752284Sobrien * class.c (instantiate_type): Be more helpful. 301852284Sobrien 301950397Sobrien * decl2.c (import_export_decl): Call import_export_class. 302018334Speter 302152284Sobrien * cp-tree.h (EMPTY_CONSTRUCTOR_P): Check !TREE_HAS_CONSTRUCTOR. 302252284Sobrien * decl2.c (build_expr_from_tree): Propagate TREE_HAS_CONSTRUCTOR. 302352284Sobrien * pt.c (tsubst_copy): Likewise. 302452284Sobrien 302552284Sobrien1998-11-02 Mark Mitchell <mark@markmitchell.com> 302652284Sobrien 302752284Sobrien * init.c (expand_vec_init): Fix off-by-one error. 302852284Sobrien 302952284Sobrien1998-11-02 Alexandre Oliva <oliva@dcc.unicamp.br> 303052284Sobrien 303152284Sobrien * parse.y (apparent_template_type): New type. 303252284Sobrien (named_complex_class_head_sans_basetype): Use it. 303352284Sobrien * Makefile.in (CONFLICTS): One new conflict. 303452284Sobrien * parse.c: Regenerated. 303552284Sobrien 303652284Sobrien1998-11-01 Mark Mitchell <mark@markmitchell.com> 303752284Sobrien 303852284Sobrien * cp-tree.h (COMPARE_STRICT): New macro. 303952284Sobrien (COMPARE_BASE): Likewise. 304052284Sobrien (COMPARE_RELAXED): Likewise. 304152284Sobrien (COMPARE_REDECLARATION): Likewise. 304252284Sobrien (same_type_p): Likewise. 304352284Sobrien (same_or_base_type_p): Likewise. 304452284Sobrien * call.c (standard_conversion): Use them, in place of comptypes 304552284Sobrien with numeric arguments. 304652284Sobrien (reference_binding): Likewise. 304752284Sobrien (convert_like): Likewise. 304852284Sobrien (build_over_call): Likewise. 304952284Sobrien (is_subseq): Likewise. 305052284Sobrien (is_properly_derived_from): Likewise. 305152284Sobrien (compare_ics): Likewise. 305252284Sobrien (joust): Likewise. 305352284Sobrien * class.c (delete_duplicate_fields_1): Likewise. 305452284Sobrien (resolves_to_fixed_type_p): Likewise. 305552284Sobrien (instantiate_type): Likewise. Remove #if 0'd code. 305652284Sobrien * decl.c (decls_match): Likewise. Use COMPARE_REDECLARATION here. 305752284Sobrien (pushdecl): Likewise. 305852284Sobrien (lookup_name_real): Likewise. 305952284Sobrien (grokdeclarator): Likewise. Check for illegal array declarations. 306052284Sobrien (grokparms): Likewise. 306152284Sobrien (grok_op_properties): Likewise. 306252284Sobrien * decl2.c (check_classfn): Likewise. 306352284Sobrien * friend.c (is_friend): Likewise. 306452284Sobrien (make_friend_class): Likewise. 306552284Sobrien * init.c (expand_aggr_init): Likewise. 306652284Sobrien (expand_vec_init): Likewise. 306752284Sobrien * pt.c (is_member_template_class): Remove declaration. 306852284Sobrien (is_specialization_of): Use COMPARE_* and new macros. 306952284Sobrien (comp_template_parms): Likewise. 307052284Sobrien (convert_nontype_argument): Likewise. 307152284Sobrien (coerce_template_template_parms): Likewise. 307252284Sobrien (template_args_equal): Likewise. 307352284Sobrien (lookup_template_class): Likewise. 307452284Sobrien (type_unification_real): Likewise. 307552284Sobrien (unify): Likewise. 307652284Sobrien (get_bindings_real): Likewise. 307752284Sobrien * search.c (covariant_return_p): Likewise. 307852284Sobrien (get_matching_virtual): Likewise. 307952284Sobrien * sig.c (match_method_types): Likewise. 308052284Sobrien * tree.c (vec_binfo_member): Likewise. 308152284Sobrien (cp_tree_equal): Likewise. 308252284Sobrien * typeck.c (common_type): Likewise. 308352284Sobrien (comp_array_types): Likewise. Get issues involving unknown array 308452284Sobrien bounds right. 308552284Sobrien (comptypes): Update comments. Use new flags. 308652284Sobrien (comp_target_types): Use new macros. 308752284Sobrien (compparms): Likewise. 308852284Sobrien (comp_target_parms): Likewise. 308952284Sobrien (string_conv_p): Likewise. 309052284Sobrien (build_component_ref): Likewise. 309152284Sobrien (build_indirect_ref): Likewise. 309252284Sobrien (build_conditional_expr): Likewise. 309352284Sobrien (build_static_cast): Likewise. 309452284Sobrien (build_reinterpret_cast): Likewise. 309552284Sobrien (build_const_cast): Likewise. 309652284Sobrien (build_modify_expr): Likewise. 309752284Sobrien (convert_for_assignment): Likewise. 309852284Sobrien (comp_ptr_ttypes_real): Likewise. 309952284Sobrien (ptr_reasonably_similar): Likewise. 310052284Sobrien (comp_ptr_ttypes_const): Likewise. 310152284Sobrien 310252284Sobrien1998-10-31 Jason Merrill <jason@yorick.cygnus.com> 310352284Sobrien 310452284Sobrien * rtti.c (build_dynamic_cast_1): Fix cut-and-paste error. 310552284Sobrien 310652284Sobrien1998-10-30 Mark Mitchell <mark@markmitchell.com> 310752284Sobrien 310852284Sobrien * decl2.c (delete_sanity): Pass integer_zero_node, not 310952284Sobrien integer_two_node, to build_vec_delete. 311052284Sobrien * init.c (build_array_eh_cleanup): Remove. 311152284Sobrien (expand_vec_init_try_block): New function. 311252284Sobrien (expand_vec_init_catch_clause): Likewise. 311352284Sobrien (build_vec_delete_1): Don't deal with case that auto_delete_vec 311452284Sobrien might be integer_two_node anymore. 311552284Sobrien (expand_vec_init): Rework for initialization-correctness and 311652284Sobrien exception-correctness. 311752284Sobrien * typeck2.c (process_init_constructor): Make mutual exclusivity 311852284Sobrien of cases more obvious. 311952284Sobrien 312052284Sobrien1998-10-29 Jason Merrill <jason@yorick.cygnus.com> 312152284Sobrien 312252284Sobrien * decl.c (lookup_name_real): OK, only warn if not lexing. 312352284Sobrien Simplify suggested fix. 312452284Sobrien 312552284Sobrien * cp-tree.h (IDENTIFIER_MARKED): New macro. 312652284Sobrien * search.c (lookup_conversions): Use breadth_first_search. 312752284Sobrien (add_conversions): Avoid adding two conversions to the same type. 312852284Sobrien (breadth_first_search): Work with base binfos, rather 312952284Sobrien than binfos and base indices. 313052284Sobrien (get_virtual_destructor): Adjust. 313152284Sobrien (tree_has_any_destructor_p): Adjust. 313252284Sobrien (get_matching_virtual): Adjust. 313352284Sobrien 313452284Sobrien * pt.c (push_template_decl_real): Generalize check for incorrect 313552284Sobrien number of template parms. 313652284Sobrien (is_member_template_class): #if 0. 313752284Sobrien 313852284Sobrien1998-10-29 Richard Henderson <rth@cygnus.com> 313952284Sobrien 314052284Sobrien * Makefile.in (cc1plus): Put CXX_OBJS, and thence @extra_cxx_objs@, 314152284Sobrien last. 314252284Sobrien 314352284Sobrien1998-10-28 Zack Weinberg <zack@rabi.phys.columbia.edu> 314452284Sobrien 314552284Sobrien * lex.c: Call check_newline from lang_init always. After 314652284Sobrien calling cpp_start_read, set yy_cur and yy_lim to read from the 314752284Sobrien cpplib token buffer. 314852284Sobrien 314950397Sobrien1998-10-28 Jason Merrill <jason@yorick.cygnus.com> 315018334Speter 315152284Sobrien * class.c (instantiate_type): Don't consider templates for a normal 315252284Sobrien match. 315352284Sobrien 315450397Sobrien * class.c (finish_struct_1): Don't complain about non-copy 315550397Sobrien assignment ops in union members. 315618334Speter 315750397Sobrien * class.c (build_vtable): Don't pass at_eof to import_export_vtable. 315850397Sobrien (prepare_fresh_vtable): Likewise. 315950397Sobrien (finish_struct_1): Don't call import_export_class. 316050397Sobrien * decl2.c (finish_vtable_vardecl): Do import/export stuff. 316150397Sobrien (finish_prevtable_vardecl): Lose. 316250397Sobrien (finish_file): Don't call it. 316350397Sobrien * pt.c (instantiate_class_template): Likewise. 316452284Sobrien * cp-tree.h: Remove it. 316518334Speter 316652284Sobrien * init.c (build_delete): Reset TYPE_HAS_DESTRUCTOR here. 316752284Sobrien * decl.c (finish_function): Not here. 316852284Sobrien (start_function): Do set DECL_INITIAL. 316952284Sobrien 317052284Sobrien * pt.c (push_template_decl_real): Complain about default template 317152284Sobrien args for enclosing classes. 317252284Sobrien 317352284Sobrien * call.c (add_function_candidate): Treat conversion functions 317452284Sobrien as coming from the argument's class. 317552284Sobrien * cp-tree.h (DECL_CONV_FN_P): New fn. 317652284Sobrien (DECL_DESTRUCTOR_P): Also check DECL_LANGUAGE. 317752284Sobrien * class.c (add_method): Use DECL_CONV_FN_P. 317852284Sobrien * decl2.c (check_classfn): Likewise. 317952284Sobrien * error.c (dump_function_name): Likewise. 318052284Sobrien (dump_function_decl): Likewise. 318152284Sobrien * pt.c (fn_type_unification): Likewise. 318252284Sobrien * search.c (add_conversions): Likewise. 318352284Sobrien 318452284Sobrien1998-10-27 Jason Merrill <jason@yorick.cygnus.com> 318552284Sobrien 318652284Sobrien * lex.c (do_identifier): Also generate LOOKUP_EXPR for RESULT_DECL. 318752284Sobrien * method.c (hack_identifier): Also check for using RESULT_DECL 318852284Sobrien from outer context. 318952284Sobrien 319052284Sobrien1998-10-27 Mark Mitchell <mark@markmitchell.com> 319152284Sobrien 319252284Sobrien * decl.c (grokdeclarator): Use type_quals, rather than constp, 319352284Sobrien consistently. 319452284Sobrien 319552284Sobrien1998-10-27 Jason Merrill <jason@yorick.cygnus.com> 319652284Sobrien 319752284Sobrien * call.c (standard_conversion): instantiate_type here. 319852284Sobrien (reference_binding): And here. 319952284Sobrien (implicit_conversion): Not here. 320052284Sobrien (build_op_delete_call): No need to cons up an OVERLOAD. 320152284Sobrien * cvt.c (cp_convert_to_pointer): instantiate_type here. 320252284Sobrien (convert_to_reference): And here. 320352284Sobrien * decl.c (grok_reference_init): Not here. 320452284Sobrien (grokparms): Or here. 320552284Sobrien * typeck2.c (digest_init): Or here. 320652284Sobrien * typeck.c (decay_conversion): Take the address of overloaded 320752284Sobrien functions, too. 320852284Sobrien (require_instantiated_type): Lose. 320952284Sobrien (convert_arguments): Don't handle unknown types here. 321052284Sobrien (build_c_cast): Likewise. 321152284Sobrien (build_binary_op): Gut. 321252284Sobrien (build_conditional_expr): Don't require_instantiated_type. 321352284Sobrien (build_modify_expr): Likewise. 321452284Sobrien (build_static_cast): Don't instantiate_type. 321552284Sobrien (build_reinterpret_cast): Likewise. 321652284Sobrien (build_const_cast): Likewise. 321752284Sobrien (convert_for_initialization): Likewise. 321852284Sobrien (build_ptrmemfunc): Use type_unknown_p. 321952284Sobrien (convert_for_assignment): Also do default_conversion on overloaded 322052284Sobrien functions. Hand them off to ocp_convert. 322152284Sobrien 322252284Sobrien1998-10-26 Mark Mitchell <mark@markmitchell.com> 322352284Sobrien 322452284Sobrien * error.c (dump_decl): Deal with TEMPLATE_DECLs that are 322552284Sobrien VAR_DECLs. Handle vtables whose DECL_CONTEXT is not a type. 322652284Sobrien 322752284Sobrien * class.c (finish_struct_1): Use build_cplus_array_type to build 322852284Sobrien array types. 322952284Sobrien * decl.c (init_decl_processing): Likewise. 323052284Sobrien * except.c (expand_end_eh_spec): Likewise. 323152284Sobrien * search.c (expand_upcast_fixups): Simplify very slightly. 323252284Sobrien 323352284Sobrien1998-10-26 Jason Merrill <jason@yorick.cygnus.com> 323452284Sobrien 323552284Sobrien * decl.c (grokdeclarator): Complain about a variable using 323652284Sobrien constructor syntax coming back null from start_decl. 323752284Sobrien 323852284Sobrien * friend.c (make_friend_class): Complain about trying to make 323952284Sobrien a non-class type a friend. 324052284Sobrien 324152284Sobrien * decl.c (grokfndecl): Set DECL_INITIAL for a defn here. 324252284Sobrien (start_function): Not here. 324352284Sobrien 324452284Sobrien1998-10-26 Brendan Kehoe <brendan@cygnus.com> 324552284Sobrien 324652284Sobrien * decl.c (grokdeclarator): Disallow `explicit' in a friend declaration. 324752284Sobrien 324852284Sobrien1998-10-26 Jason Merrill <jason@yorick.cygnus.com> 324952284Sobrien 325052284Sobrien * typeck2.c (process_init_constructor): Only skip anonymous fields 325152284Sobrien if they are bitfields. 325252284Sobrien 325352284Sobrien * cp-tree.def (TYPEOF_TYPE): New code. 325452284Sobrien * error.c (dump_type_real): Handle it. 325552284Sobrien * pt.c (tsubst): Likewise. 325652284Sobrien * tree.c (search_tree): Likewise. 325752284Sobrien * semantics.c (finish_typeof): New fn. 325852284Sobrien * parse.y (typespec): Use it. 325952284Sobrien * cp-tree.h: Declare it. 326052284Sobrien 326152284Sobrien1998-10-26 Manfred Hollstein <manfred@s-direktnet.de> 326252284Sobrien 326352284Sobrien * cp-tree.h (FORMAT_VBASE_NAME): Make definition unconditional. 326452284Sobrien 326552284Sobrien1998-10-26 Jason Merrill <jason@yorick.cygnus.com> 326652284Sobrien 326752284Sobrien * typeck.c (convert_arguments): Don't handle pmf references 326852284Sobrien specially. 326952284Sobrien 327052284Sobrien * init.c (build_member_call): Don't try to convert to the base type 327152284Sobrien if it's ambiguous or pedantic. 327252284Sobrien 327352284Sobrien * typeck2.c (check_for_new_type): Only depend on pedantic for 327452284Sobrien C-style casts. 327552284Sobrien 327652284Sobrien1998-10-25 Mark Mitchell <mark@markmitchell.com> 327752284Sobrien 327852284Sobrien * decl.c (grokdeclarator): Set DECL_NONCONVERTING_P for all 327952284Sobrien non-converting constructors. 328052284Sobrien 328152284Sobrien1998-10-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 328252284Sobrien 328352284Sobrien * gxxint.texi: Correct documentation for n, N, Q, and B. 328452284Sobrien 328550397Sobrien1998-10-23 Martin von L�wis <loewis@informatik.hu-berlin.de> 328618334Speter 328750397Sobrien * parse.y (condition): Convert VAR_DECL from reference to indirect 328850397Sobrien reference. 328918334Speter 329052284Sobrien1998-10-23 Andrew MacLeod <amacleod@cygnus.com> 329118334Speter 329252284Sobrien * exception.cc (__cp_pop_exception): Free the original exception 329352284Sobrien value, not the potentially coerced one. 329418334Speter 329552284Sobrien1998-10-23 Mark Mitchell <mark@markmitchell.com> 329652284Sobrien 329752284Sobrien * Makefile.in (hash.h): Run gperf when necessary. 329852284Sobrien 329952284Sobrien * cp-tree.h (CP_TYPE_READONLY): Remove. 330052284Sobrien (CP_TYPE_VOLATILE): Likewise. 330152284Sobrien (CP_TYPE_QUALS): New macro. 330252284Sobrien (CP_TYPE_CONST_P): Likewise. 330352284Sobrien (CP_TYPE_VOLATILE_P): Likewise. 330452284Sobrien (CP_TYPE_RESTRICT_P): Likewise. 330552284Sobrien (CP_TYPE_CONST_NON_VOLATILE_P): Likewise. 330652284Sobrien (cp_build_type_variant): Rename to ... 330752284Sobrien (cp_build_qualified_type): New function. 330852284Sobrien (c_apply_type_quals_to_decl): Declare. 330952284Sobrien (SIGNATURE_POINTER_NAME_FORMAT): Modify to allow `restrict'. 331052284Sobrien (SIGNATURE_REFERENCE_NAME_FORMAT): Likewise. 331152284Sobrien (cp_type_qual_from_rid): New function. 331252284Sobrien (compparms): Remove unused parameter. All callers changed. 331352284Sobrien (cp_type_quals): New function. 331452284Sobrien (at_least_as_qualified_p): Likewise. 331552284Sobrien (more_qualified_p): Likewise. 331652284Sobrien 331752284Sobrien * call.c (standard_conversion): Replace calls to 331852284Sobrien cp_build_type_variant with cp_build_qualified_type. Use 331952284Sobrien CP_TYPE_QUALS to get qualifiers and at_least_as_qualified_p to 332052284Sobrien compare them. Use CP_TYPE_* macros to check qualifiers. 332152284Sobrien (reference_binding): Likewise. 332252284Sobrien (implicit_conversion): Likewise. 332352284Sobrien (add_builtin_candidates): Likewise. 332452284Sobrien (build_over_call): Likewise. 332552284Sobrien * class.c (overrides): Compare all qualifiers, not just `const', 332652284Sobrien on method declarations. 332752284Sobrien * cvt.c (convert_to_reference): More CP_TYPE_QUALS conversion, etc. 332852284Sobrien (convert_pointer_to_real): Likewise. 332952284Sobrien (type_promotes_to): Likewise. 333052284Sobrien * decl.c (check_for_uninitialized_const_var): New function. 333152284Sobrien (init_decl_processing): More CP_TYPE_QUALS conversion, etc. 333252284Sobrien (cp_finish_decl): Use check_for_uninitialized_const_var. 333352284Sobrien (grokdeclarator): More CP_TYPE_QUALS conversion, etc. Update to 333452284Sobrien handle `restrict'. 333552284Sobrien (grok_ctor_properties): Likewise. 333652284Sobrien (grok_op_properties): Likewise. 333752284Sobrien (start_function): Likewise. 333852284Sobrien (rever_static_member_fn): Likewise. 333952284Sobrien * decl2.c (grok_method_quals): Likewise. 334052284Sobrien (grokfield): Likewise. 334152284Sobrien * error.c (dump_readonly_or_volatile): Rename to ... 334252284Sobrien (dump_qualifiers): New function. Handle `restrict'. 334352284Sobrien (dump_type_real): Use it. 334452284Sobrien (dump_aggr_type): Likewise. 334552284Sobrien (dump_type_prefix): Likewise. 334652284Sobrien (dump_type_suffix): Likewise. 334752284Sobrien (dump_function_decl): Likewise. 334852284Sobrien (cv_as_string): Likewise. 334952284Sobrien * gxx.gperf: Add __restrict and __restrict__. 335052284Sobrien * gxxint.texi: Document `u' as used for `__restrict', and a few 335152284Sobrien other previously undocumented codes. 335252284Sobrien * hash.h: Regenerated. 335352284Sobrien * init.c (expand_aggr_init): More CP_TYPE_QUALS conversion, etc. 335452284Sobrien (build_member_call): Likewise. 335552284Sobrien (build_new_1): Likewise. 335652284Sobrien * lex.c (init_parse): Add entry for RID_RESTRICT. 335752284Sobrien (cons_up_default_function): More CP_TYPE_QUALS conversion, etc. 335852284Sobrien (cp_type_qual_from_rid): Define. 335952284Sobrien * lex.h (enum rid): Add RID_RESTRICT. 336052284Sobrien * method.c (process_modifiers): Deal with `restrict'. 336152284Sobrien * parse.y (primary): More CP_TYPE_QUALS conversion, etc. 336252284Sobrien * parse.c: Regenerated. 336352284Sobrien * pt.c (convert_nontype_argument): More CP_TYPE_QUALS conversion, etc. 336452284Sobrien (tsubst_aggr_type): Likewise. 336552284Sobrien (tsubst): Likewise. 336652284Sobrien (check_cv_quals_for_unify): Likewise. 336752284Sobrien (unify): Likewise. 336852284Sobrien * rtti.c (init_rtti_processing): Likewise. 336952284Sobrien (build_headof): Likewise. 337052284Sobrien (get_tinfo_var): Likewise. 337152284Sobrien (buidl_dynamic_cast_1): Likewise. Fix `volatile' handling. 337252284Sobrien (expand_class_desc): Likewise. 337352284Sobrien (expand_attr_desc): Likewise. 337452284Sobrien (synthesize_tinfo_fn): Likewise. 337552284Sobrien * search.c (covariant_return_p): Likewise. Fix `volatile' handling. 337652284Sobrien (get_matching_virtual): Likewise. 337752284Sobrien (expand_upcast_fixups): Likewise. 337852284Sobrien * sig.c (build_signature_pointer_or_reference_name): Take 337952284Sobrien type_quals, not constp and volatilep. 338052284Sobrien (build_signature_pointer_or_reference_type): Likewise. 338152284Sobrien (match_method_types): More CP_TYPE_QUALS conversion, etc. 338252284Sobrien (build_signature_pointer_constructor): Likewise. 338352284Sobrien (build_signature_method_call): Likewise. 338452284Sobrien * tree.c (build_cplus_array_type): Likewise. 338552284Sobrien (cp_build_type_variant): Rename to ... 338652284Sobrien (cp_build_qualified_type): New function. Deal with `__restrict'. 338752284Sobrien (canonical_type_variant): More CP_TYPE_QUALS conversion, etc. 338852284Sobrien (build_exception_variant): Likewise. 338952284Sobrien (mapcar): Likewise. 339052284Sobrien * typeck.c (qualif_type): Likewise. 339152284Sobrien (common_type): Likewise. 339252284Sobrien (comptypes): Likewise. 339352284Sobrien (comp_cv_target_types): Likewise. 339452284Sobrien (at_least_as_qualified_p): Define. 339552284Sobrien (more_qualified_p): Likewise. 339652284Sobrien (comp_cv_qualification): More CP_TYPE_QUALS conversion, etc. 339752284Sobrien (compparms): Likewise. 339852284Sobrien (inline_conversion): Likewise. 339952284Sobrien (string_conv_p): Likewise. 340052284Sobrien (build_component_ref): Likewise. 340152284Sobrien (build_indirect_ref): Likewise. 340252284Sobrien (build_array_ref): Likewise. 340352284Sobrien (build_unary_op): Likewise. 340452284Sobrien (build_conditional_expr): Likewise. 340552284Sobrien (build_static_cast): Likewise. 340652284Sobrien (build_c_cast): Likewise. 340752284Sobrien (build_modify_expr): Likewise. 340852284Sobrien (convert_For_assignment): Likewise. 340952284Sobrien (comp_ptr_ttypes_real): Likewise. 341052284Sobrien (cp_type_quals): New function. 341152284Sobrien 341252284Sobrien1998-10-23 Jason Merrill <jason@yorick.cygnus.com> 341352284Sobrien 341452284Sobrien * cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays. 341552284Sobrien (CP_TYPE_VOLATILE): Likewise. 341652284Sobrien * decl.c (grokdeclarator): Use them. 341752284Sobrien * tree.c (canonical_type_variant): Likewise. 341852284Sobrien 341952284Sobrien1998-10-22 Martin von L�wis <loewis@informatik.hu-berlin.de> 342052284Sobrien 342152284Sobrien * parse.y (named_class_head): Push into class while parsing the 342252284Sobrien base class list. 342352284Sobrien * decl2.c (push_scope, pop_scope): New functions. 342452284Sobrien * cp-tree.h: Declare them. 342552284Sobrien * init.c (build_new_1): Delay cleanup until end of full expression. 342652284Sobrien 342752284Sobrien1998-10-21 Jason Merrill <jason@yorick.cygnus.com> 342852284Sobrien 342952284Sobrien * typeck.c (build_component_ref): Use of a type here is an error. 343052284Sobrien 343152284Sobrien1998-10-19 Jason Merrill <jason@yorick.cygnus.com> 343252284Sobrien 343352284Sobrien Revamp references to member functions. 343452284Sobrien * method.c (hack_identifier): Call build_component_ref for a 343552284Sobrien reference to a member function. 343652284Sobrien * typeck.c (build_component_ref): Only return a single function 343752284Sobrien if it's static. Otherwise, return a COMPONENT_REF. 343852284Sobrien (build_x_function_call): Handle a COMPONENT_REF. 343952284Sobrien (build_unary_op): Handle all unknown-type things. 344052284Sobrien * decl2.c (arg_assoc): Handle COMPONENT_REF. 344152284Sobrien * class.c (instantiate_type): Complain if the function we get is a 344252284Sobrien nonstatic member function. Remove code for finding "compatible" 344352284Sobrien functions. 344452284Sobrien * pt.c (tsubst_copy): Handle NOP_EXPR. 344552284Sobrien * tree.c (build_dummy_object): New fn. 344652284Sobrien (maybe_dummy_object): New fn. 344752284Sobrien (is_dummy_object): New fn. 344852284Sobrien * cp-tree.h: Declare them. 344952284Sobrien * cvt.c (cp_convert_to_pointer): Use maybe_dummy_object. 345052284Sobrien * error.c (dump_expr, case OFFSET_REF): Use is_dummy_object. 345152284Sobrien * init.c (build_member_call): Use maybe_dummy_object and 345252284Sobrien is_dummy_object. 345352284Sobrien (build_offset_ref): Use maybe_dummy_object. 345452284Sobrien (resolve_offset_ref): Use is_dummy_object. 345552284Sobrien * typeck.c (build_x_function_call): Call build_dummy_object. 345652284Sobrien (unary_complex_lvalue): Call is_dummy_object. 345752284Sobrien 345852284Sobrien * typeck.c (build_component_addr): Make sure field is a field. 345952284Sobrien 346052284Sobrien * call.c (build_new_op): Delete obsolete code. 346152284Sobrien 346252284Sobrien * pt.c (tsubst, TEMPLATE*PARM*): Abort if we don't have any args. 346352284Sobrien 346450397Sobrien1998-10-18 Martin von L�wis <loewis@informatik.hu-berlin.de> 346518334Speter 346650397Sobrien * decl2.c (validate_nonmember_using_decl): Fix using-directives of 346750397Sobrien std if std is ignored. 346818334Speter 346952284Sobrien1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 347018334Speter 347152284Sobrien * decl.c (grokvardecl): Fix thinko. 347252284Sobrien 347352284Sobrien * decl.c (grokdeclarator): Embedded attrs bind to the right, 347452284Sobrien not the left. 347552284Sobrien 347652284Sobrien * parse.y (fn.def2): Fix 'attrs' format. 347752284Sobrien 347852284Sobrien1998-10-18 Alastair J. Houghton <ajh8@doc.ic.ac.uk> 347952284Sobrien 348052284Sobrien * Makefile.in (CONFLICTS): Update. 348152284Sobrien * parse.y (expr_or_declarator_intern): New rule. 348252284Sobrien (expr_or_declarator, direct_notype_declarator, primary, 348352284Sobrien functional_cast): Use it. 348452284Sobrien (notype_declarator_intern): New rule. 348552284Sobrien (notype_declarator, complex_notype_declarator): Use it. 348652284Sobrien 348752284Sobrien1998-10-17 Jason Merrill <jason@yorick.cygnus.com> 348852284Sobrien 348952284Sobrien * decl.c (grokfndecl): Set DECL_CONTEXT to namespace if appropriate. 349052284Sobrien (grokvardecl): Likewise. 349152284Sobrien 349252284SobrienSat Oct 17 23:27:20 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 349352284Sobrien 349452284Sobrien * class.c (make_method_vec): Cast 1st argument of `bzero' to (PTR). 349552284Sobrien (add_method): Likewise for arguments 1 & 2 of `bcopy'. 349652284Sobrien 349752284Sobrien * decl.c (signal_catch): Mark with ATTRIBUTE_NORETURN. 349852284Sobrien 349952284Sobrien * pt.c (process_partial_specialization): Cast 1st argument of 350052284Sobrien `bzero' to (PTR). 350152284Sobrien 350252284Sobrien * tree.c (build_base_fields): Cast `base_align' to (int) when 350352284Sobrien comparing against one. 350452284Sobrien 350552284Sobrien1998-10-16 Mark Mitchell <mark@markmitchell.com> 350652284Sobrien 350752284Sobrien * decl.c (lookup_name_real): Handle template parameters for member 350852284Sobrien templates where said parameters have the same name as the 350952284Sobrien surrounding class. 351052284Sobrien 351152284Sobrien * decl.c (expand_static_init): Build cleanups before entering the 351252284Sobrien anonymous function used to do them to avoid access-checking 351352284Sobrien confusion. 351452284Sobrien 351552284Sobrien * decl.c (grokfndecl): Add back call to cplus_decl_attributes 351652284Sobrien accidentally removed by previous change, and make DECL_RTL here. 351752284Sobrien * class.c (add_method): Don't make DECL_RTL here. 351852284Sobrien 351952284Sobrien * pt.c (for_each_template_parm): Don't examine uninstantiated 352052284Sobrien default arguments. 352152284Sobrien 352252284Sobrien1998-10-16 Dave Brolley <brolley@cygnus.com> 352352284Sobrien 352452284Sobrien * lex.c (real_yylex): Fix unaligned access of wchar_t. 352552284Sobrien 352652284Sobrien1998-10-16 Mark Mitchell <mark@markmitchell.com> 352752284Sobrien 352852284Sobrien * class.c (add_method): Fix documentation to reflect previous 352952284Sobrien changes. Check for duplicate method declarations here. 353052284Sobrien * decl.c (decls_match): Handle FUNCTION_DECL vs TEMPLATE_DECL 353152284Sobrien correctly; such things never match. 353252284Sobrien (grokfndecl): Don't look for duplicate methods here. 353352284Sobrien * decl2.c (check_classfn): Don't assume names are mangled. 353452284Sobrien Don't add bogus member function declarations to a class before the 353552284Sobrien class type is complete. 353652284Sobrien (grokfield): Reformat error message. 353752284Sobrien * method.c (set_mangled_name_for_decl): Don't mangle names while 353852284Sobrien processing_template_decl. 353952284Sobrien 354052284Sobrien1998-10-16 Jason Merrill <jason@yorick.cygnus.com> 354152284Sobrien 354252284Sobrien * typeck.c (build_indirect_ref): Complain about a pointer to data 354352284Sobrien member, too. 354452284Sobrien * typeck2.c (build_m_component_ref): Don't indirect a pointer to 354552284Sobrien data member. 354652284Sobrien * init.c (resolve_offset_ref): Don't undo the above. 354752284Sobrien 354852284Sobrien * cp-tree.h (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): New macros. 354952284Sobrien (struct lang_decl_flags): Add `bitfield'. 355052284Sobrien * class.c (finish_struct_1): Use DECL_C_BIT_FIELD instead of 355152284Sobrien DECL_BIT_FIELD. 355252284Sobrien * decl2.c (grokbitfield, grok_alignof): Likewise. 355352284Sobrien * init.c (build_offset_ref): Likewise. 355452284Sobrien * typeck.c (build_component_addr, expr_sizeof): Likewise. 355552284Sobrien * cvt.c (build_up_reference): Don't crash if taking the address 355652284Sobrien returns error_mark_node. 355752284Sobrien 355852284Sobrien * decl.c (grokfndecl): Also check ctype when checking for ::main(). 355952284Sobrien 356052284Sobrien1998-10-15 Jason Merrill <jason@yorick.cygnus.com> 356152284Sobrien 356252284Sobrien * decl.c (grokfndecl): ::main and __builtin_* get C linkage. 356352284Sobrien Do mangling here. 356452284Sobrien (grokdeclarator): Instead of here. 356552284Sobrien * friend.c (do_friend): Lose special handling of ::main and 356652284Sobrien __builtin_*. 356752284Sobrien * cp-tree.h (DECL_MAIN_P): Check for C linkage. 356852284Sobrien 356950397Sobrien * spew.c (yylex): Clear looking_for_typename if we got 357050397Sobrien 'enum { ... };'. 357118334Speter 357252284Sobrien1998-10-15 Mark Mitchell <mark@markmitchell.com> 357352284Sobrien 357452284Sobrien * class.c (maybe_warn_about_overly_private_class): Improve error 357552284Sobrien messages for class with only private constructors. 357652284Sobrien 357752284Sobrien * cp-tree.def (TYPENAME_TYPE): Add to documentation. 357852284Sobrien * cp-tree.h (TYPENAME_TYPE_FULLNAME): Document. 357952284Sobrien (build_typename_type): New function. 358052284Sobrien * decl.c (build_typename_type): Broken out from ... 358152284Sobrien (make_typename_type): Use it. 358252284Sobrien * search.c (lookup_field): Likewise. 358352284Sobrien 358452284Sobrien1998-10-14 Benjamin Kosnik <bkoz@rhino.cygnus.com> 358552284Sobrien 358652284Sobrien * pt.c (convert_nontype_argument): Check against type_referred_to. 358752284Sobrien * decl.c (grokvardecl): Check for declarator name before building 358852284Sobrien DECL_ASSEMBLER_NAME. 358952284Sobrien 359052284Sobrien1998-10-14 Mark Mitchell <mark@markmitchell.com> 359152284Sobrien 359252284Sobrien * pt.c (lookup_template_class): Add comment. 359352284Sobrien (instantiate_class_template): Don't mark the _TYPE node for 359452284Sobrien member class templates as an instantiation. 359552284Sobrien 359652284Sobrien1998-10-14 Jason Merrill <jason@yorick.cygnus.com> 359752284Sobrien 359852284Sobrien * decl.c (grokfndecl): Fix my thinko. 359952284Sobrien 360050397Sobrien1998-10-13 Jason Merrill <jason@yorick.cygnus.com> 360118334Speter 360250397Sobrien * tinfo2.cc (fast_compare): Remove. 360350397Sobrien (before): Just use strcmp. 360450397Sobrien * tinfo.cc (operator==): Just use strcmp. 360518334Speter 360652284Sobrien1998-10-13 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> 360752284Sobrien 360852284Sobrien * decl.c (grokfndecl): Don't check for linkage in `extern "C"' 360952284Sobrien declarations. 361052284Sobrien 361152284Sobrien1998-10-13 Mark Mitchell <mark@markmitchell.com> 361252284Sobrien 361352284Sobrien * cp-tree.h (specializations_of_same_template_p): Remove. 361452284Sobrien * search.c (get_template_base): Don't use it. 361552284Sobrien (get_template_base_recursive): Likewise. 361652284Sobrien * pt.c (specializations_of_same_template_p): Remove. 361752284Sobrien (unify): Don't use it. 361852284Sobrien (lookup_template_class): Find the correct parent when setting 361952284Sobrien CLASSTYPE_TI_TEMPLATE. 362052284Sobrien 362150397Sobrien1998-10-12 Jason Merrill <jason@yorick.cygnus.com> 362218334Speter 362350397Sobrien * tinfo.cc (operator==): Always compare names. 362418334Speter 362552284Sobrien1998-10-12 Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 362652284Sobrien 362752284Sobrien * decl.c (start_function): Fix cut-and-paste error. 362852284Sobrien 362950397Sobrien1998-10-12 Jason Merrill <jason@yorick.cygnus.com> 363018334Speter 363150397Sobrien * inc/typeinfo: Add #pragma interface. 363250397Sobrien (operator!=): Just call operator==. 363350397Sobrien * tinfo.cc: Add #pragma implementation. 363450397Sobrien (operator==): Move from inc/typeinfo and tinfo2.cc. 363552284Sobrien Check __COMMON_UNRELIABLE instead of _WIN32. 363618334Speter 363750397Sobrien * typeck2.c (my_friendly_abort): Add URL. 363818334Speter 363952284Sobrien1998-10-12 Alastair J. Houghton <ajh8@doc.ic.ac.uk> 364052284Sobrien 364152284Sobrien * decl.c (start_method): Added extra parameter for attributes. 364252284Sobrien * cp-tree.h (start_method): Update prototype. 364352284Sobrien * parse.y (fn.def2): Update start_method parameter list. 364452284Sobrien 364552284Sobrien1998-10-11 Mark Mitchell <mark@markmitchell.com> 364652284Sobrien 364752284Sobrien * cp-tree.h (specializations_of_same_template_p): Declare. 364852284Sobrien * pt.c (specializations_of_same_template_p): New function. 364952284Sobrien (unify): Use it. 365052284Sobrien * search.c (get_template_base): Use it. 365152284Sobrien (get_template_base_recursive): Likewise. 365252284Sobrien 365352284Sobrien1998-10-10 Manfred Hollstein <manfred@s-direktnet.de> 365452284Sobrien 365552284Sobrien * decl2.c (start_objects): Add new variable `joiner' and 365652284Sobrien initialize it properly. 365752284Sobrien 365852284Sobrien1998-10-09 Mark Mitchell <mark@markmitchell.com> 365952284Sobrien 366052284Sobrien * search.c (expand_upcast_fixups): Tweak to match 1998-10-07 366152284Sobrien change to vtable types. 366252284Sobrien 366352284Sobrien * cvt.c (ocp_convert): Avoid infinite recursion caused by 366452284Sobrien 1998-10-03 change. 366552284Sobrien 366652284Sobrien1998-10-08 Jason Merrill <jason@yorick.cygnus.com> 366752284Sobrien 366852284Sobrien * pt.c (resolve_overloaded_unification): New fn. 366952284Sobrien (try_one_overload): Likewise. 367052284Sobrien (unify): Don't fail on unknown type. 367152284Sobrien (type_unification_real): Likewise. Use resolve_overloaded_unification 367252284Sobrien to handle an overloaded argument. 367352284Sobrien (template_args_equal): Split out... 367452284Sobrien (comp_template_args): From here. 367552284Sobrien (determine_specialization): Also allow a template with more 367652284Sobrien parms than were explicitly specified. 367752284Sobrien * cp-tree.h: Add template_args_equal. 367852284Sobrien * call.c (resolve_args): Remove TEMPLATE_ID_EXPR code. 367952284Sobrien 368052284SobrienThu Oct 8 15:58:30 1998 Anthony Green <green@cygnus.com> 368152284Sobrien 368252284Sobrien * semantics.c (finish_asm_stmt): Revert my 1998-09-28 368352284Sobrien change. 368452284Sobrien 368552284SobrienThu Oct 8 06:00:19 1998 Jeffrey A Law (law@cygnus.com) 368652284Sobrien 368752284Sobrien * typeck.c (unsigned_type): Only return TItype nodes when 368852284Sobrien HOST_BITS_PER_WIDE_INT is >= 64 bits. 368952284Sobrien (signed_type): Likewise. 369052284Sobrien * decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare 369152284Sobrien when HOST_BITS_PER_WIDE_INT is >= 64 bits. 369252284Sobrien (init_decl_processing): Only create TItype nodes when 369352284Sobrien HOST_BITS_PER_WIDE_INT is >= 64 bits. 369452284Sobrien * cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare 369552284Sobrien when HOST_BITS_PER_WIDE_INT is >= 64 bits. 369652284Sobrien 369752284SobrienWed Oct 7 12:32:44 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 369852284Sobrien 369952284Sobrien * Makefile.in (hash.h): Add -L KR-C -F ', 0, 0' flags to gperf. 370052284Sobrien (gxx.gperf): Update comments describing invocation flags. 370152284Sobrien (hash.h): Regenerate using gperf 2.7.1 (19981006 egcs). 370252284Sobrien 370352284Sobrien1998-10-07 Mark Mitchell <mark@markmitchell.com> 370452284Sobrien 370552284Sobrien * class.c (finish_struct_1): Add commentary on previous change. 370652284Sobrien 370752284Sobrien * cp-tree.h (vtbl_ptr_type_node): New variable. 370852284Sobrien * class.c (build_vtbl_ref): Don't indirect through the vptr; it's 370952284Sobrien already of the right type. 371052284Sobrien (finish_struct_1): Make the vptr be of type vtbl_ptr_type_node. 371152284Sobrien Simplify code to grow vtable. 371252284Sobrien * decl.c (vtbl_ptr_type_node): Define. 371352284Sobrien (init_decl_processing): Initialize it. 371452284Sobrien 371552284Sobrien1998-10-06 Mark Mitchell <mark@markmitchell.com> 371652284Sobrien 371752284Sobrien * cp-tree.def (PTRMEM_CST): New tree node. 371852284Sobrien * cp-tree.h (ptrmem_cst): New type. 371952284Sobrien (lang_type): Remove local_typedecls. 372052284Sobrien (dummy): Increase to 12 bits from 11. 372152284Sobrien (CLASSTYPE_LOCAL_TYPEDECLS): Remove. 372252284Sobrien (PTRMEM_CST_CLASS): New macro. 372352284Sobrien (PTRMEM_CST_MEMBER): Likewise. 372452284Sobrien (current_access_specifier): New variable. 372552284Sobrien (current_class_type): Remove duplicate declaration. 372652284Sobrien (finish_struct): Change prototype. 372752284Sobrien (unreverse_member_declarations): New function. 372852284Sobrien (pushdecl_class_level): Change prototype. 372952284Sobrien (grok_enum_decls): Remove. 373052284Sobrien (fixup_anonymous_union): New function. 373152284Sobrien (grok_x_components): Change prototype. 373252284Sobrien (tsubst_chain): Remove. 373352284Sobrien (finish_member_template_decl): Likewise. 373452284Sobrien (check_explicit_specialization): Fix indentation. 373552284Sobrien (finish_class_definition): Change prototype. 373652284Sobrien (finish_member_class_template): Likewise. 373752284Sobrien (finish_member_declaration): New function. 373852284Sobrien (check_multiple_declarators): Likewise. 373952284Sobrien * class.c (class_stack_node_t): New type. 374052284Sobrien (current_class_base): Remove. 374152284Sobrien (current_class_stack): Change type. 374252284Sobrien (current_access_specifier): New variable. 374352284Sobrien (grow_method): Remove. 374452284Sobrien (check_member_decl_is_same_in_complete_scope): Break out from 374552284Sobrien finish_struct. 374652284Sobrien (make_method_vec): New function. 374752284Sobrien (free_method_vec): Likewise. 374852284Sobrien (add_implicitly_declared_members): Break out from finish_struct_1. 374952284Sobrien (free_method_vecs): New variable. 375052284Sobrien (add_method): Rework for direct use from parser. 375152284Sobrien (handle_using_decl): Watch for NULL_TREE while iterating through 375252284Sobrien CLASSTYPE_METHOD_VEC. 375352284Sobrien (finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here; 375452284Sobrien just do some error-checking. 375552284Sobrien (warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC. 375652284Sobrien (finish_struct_1): Simplify. Use add_implicitly_declared_members. 375752284Sobrien (finish_struct): Change prototype. Simplify; fields and methods 375852284Sobrien are already set up at this point. 375952284Sobrien (init_class_processing): Set up current_class_stack. 376052284Sobrien (pushclass): Save current_access_specifier. 376152284Sobrien (popclass): Restore it. 376252284Sobrien (currently_open_class): Simplify. 376352284Sobrien (build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS. 376452284Sobrien * decl.c (saved_scope): Add access_specifier. 376552284Sobrien (maybe_push_to_top_level): Save it. 376652284Sobrien (pop_from_top_level): Restore it. 376752284Sobrien (maybe_process_template_type_declaration): Use 376852284Sobrien finish_member_declaration. 376952284Sobrien (pushtag): Likewise. 377052284Sobrien (pushdecl_class_level): Don't return a value. 377152284Sobrien (fixup_anonymous_union): Break out from grok_x_components. 377252284Sobrien (shadow_tag): Use it. 377352284Sobrien (xref_tag): Complain about using an elaborated type specifier to 377452284Sobrien reference a template type parameter or typedef name. 377552284Sobrien (xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS. 377652284Sobrien (current_local_enum): Remove. 377752284Sobrien (build_enumerator): Call finish_member_declaration. 377852284Sobrien (grok_enum_decls): Remove. 377952284Sobrien * decl2.c (grok_x_components): Simplify. 378052284Sobrien (check_classfn): Change iteration through CLASSTYPE_METHOD_VEC. 378152284Sobrien (grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS. 378252284Sobrien (merge_functions): Add to comment. 378352284Sobrien (arg_assoc_type): Prototype. 378452284Sobrien (arg_assoc): Pass as many arguments as there are parameters. 378552284Sobrien * error.c (dump_expr): Handle PTRMEM_CST. Improve handling of 378652284Sobrien OFFSET_REF. 378752284Sobrien * expr.c (cpls_expand_expr): Remove dead code. Handle 378852284Sobrien PTRMEM_CST. 378952284Sobrien * friend.c (do_friend): Lookup friends when in nested classes. 379052284Sobrien Change comments. 379152284Sobrien * init.c (build_offset_ref): Do lookup even for classes that are 379252284Sobrien only partially defined. 379352284Sobrien (decl_constant_value): Remove dead code. 379452284Sobrien * method.c (build_overload_value): Remove hack where by TYPE was 379552284Sobrien not a TYPE. Handle PTRMEM_CST. 379652284Sobrien (build_template_parm_names): Don't pass a PARM_DECL where a TYPE 379752284Sobrien should go. 379852284Sobrien * parse.y (components, notype_components, component_decl, 379952284Sobrien component_decl_1, component_declarator, component_declarator0): 380052284Sobrien Now all are itype rather than ttype. Rework to add members to 380152284Sobrien classes on the fly. 380252284Sobrien (typesqpecqual_reserved): Use check_multiple_declarators. 380352284Sobrien (structsp): Update class to finish_class_definition. 380452284Sobrien (do_xref_defn): Unsplit into named_class_head. 380552284Sobrien (access_specifier): Set current_access_specifier. 380652284Sobrien * pt.c (set_current_access_from_decl): New function. 380752284Sobrien (finish_member_template_decl): Don't take the parameters. 380852284Sobrien (comp_template_args): Make more robust. 380952284Sobrien (lookup_template_class): Don't use current_local_enum. 381052284Sobrien (for_each_template_parm): Handle PTRMEM_CST. 381152284Sobrien (instantiate_class_template): Use set_current_access_from_decl, 381252284Sobrien finish_member_declaration and unreverse_member_declarations. Set 381352284Sobrien lineno/input_filename before generating implicit member functions. 381452284Sobrien (type_unification_real): Don't assume back-unification happens 381552284Sobrien only for the last argument. 381652284Sobrien (regenerate_decl_from_template): Call pushclass a bit earlier. 381752284Sobrien (tsubst_chain): Remove. 381852284Sobrien (tsubst_enum): Use set_current_access_from_decl. 381952284Sobrien (set_mangled_name_for_template_decl): Fix indentation. 382052284Sobrien * search.c (lookup_fnfields_1): Change iteration through 382152284Sobrien CLASSTYPE_METHOD_VEC. 382252284Sobrien (dfs_pushdecls): Likewise. 382352284Sobrien (dfs_compress_decls): Likewise. 382452284Sobrien (add_conversions): Likewise. 382552284Sobrien * semantics.c (finish_class_definition): Don't take components. 382652284Sobrien Change call to finish_struct. 382752284Sobrien (finish_member_declaration): New function. 382852284Sobrien (finish_member_class_template): Don't take template parameters. 382952284Sobrien Change call to grok_x_components. Call finish_member_template_decl. 383052284Sobrien (check_multiple_declarators): New function. 383152284Sobrien * sig.c (append_signature_fields): Work from the TYPE_METHODS, not 383252284Sobrien a passed in fieldlist. 383352284Sobrien * tree.c (search_tree): Handle PTRMEM_CST. 383452284Sobrien (mapcar): Likewise. 383552284Sobrien * typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not 383652284Sobrien INTEGER_CSTs, for pointer-to-data members. 383752284Sobrien 383852284Sobrien * call.c (resolve_args): Resolve template specializations, if 383952284Sobrien possible. 384052284Sobrien 384152284SobrienTue Oct 6 07:57:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 384252284Sobrien 384352284Sobrien * Makefile.in (spew.o): Depend on toplev.h. 384452284Sobrien 384552284Sobrien * call.c (compare_ics): Initialize variables `deref_from_type2', 384652284Sobrien `deref_to_type1' and `deref_to_type2'. 384752284Sobrien 384852284Sobrien * except.c (get_eh_type): Hide prototype and definition. 384952284Sobrien (process_start_catch_block_old): Remove unused static prototype. 385052284Sobrien 385152284Sobrien * pt.c (tsubst_decl): Initialize variable `argvec'. 385252284Sobrien 385352284Sobrien * spew.c: Include toplev.h. 385452284Sobrien 385552284Sobrien1998-10-05 Jason Merrill <jason@yorick.cygnus.com> 385652284Sobrien 385752284Sobrien * pt.c (instantiate_decl): Do save and restore file position. 385852284Sobrien 385950397Sobrien1998-10-05 Martin von L�wis <loewis@informatik.hu-berlin.de> 386018334Speter 386150397Sobrien * method.c (build_decl_overload_real): Clear 386250397Sobrien numeric_output_need_bar after __. 386318334Speter 386452284Sobrien1998-10-05 Nathan Sidwell <nathan@acm.org> 386552284Sobrien 386652284Sobrien * call.c (build_new_method_call): Issue 'incomplete type' error, 386752284Sobrien if class is not defined. 386852284Sobrien 386952284Sobrien1998-10-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 387052284Sobrien 387152284Sobrien * call.c (build_object_call): Move declaration of variable 387252284Sobrien `fn' into the scope where it is used. Don't access variable 387352284Sobrien `fn' when it is uninitialized, instead use `fns'. 387452284Sobrien 387552284Sobrien1998-10-04 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 387652284Sobrien 387752284Sobrien * errfn.c (cp_thing): Print buf as a string not as a printf format 387852284Sobrien to avoid problems with the operator%. Consequently, `%%' sequences 387952284Sobrien in format are copied as `%' in buf. 388052284Sobrien 388150397Sobrien1998-10-04 Jason Merrill <jason@yorick.cygnus.com> 388218334Speter 388352284Sobrien * pt.c (pop_tinst_level): Call extract_interface_info. 388452284Sobrien (instantiate_decl): Don't save and restore file position. 388552284Sobrien 388650397Sobrien * decl.c (cp_finish_decl): Make statics in extern inlines and 388750397Sobrien templates common, if possible and the target doesn't support weak 388850397Sobrien symbols. 388918334Speter 389052284Sobrien * decl.c (grokdeclarator): Remove redundant calls to 389152284Sobrien build_type_variant and some duplicated code. 389252284Sobrien * sig.c (build_signature_reference_type): Only take the type parm. 389352284Sobrien (build_signature_pointer_type): Likewise. 389452284Sobrien * tree.c (build_cplus_method_type): Adjust. 389552284Sobrien * cp-tree.h: Update. 389652284Sobrien 389752284Sobrien1998-10-04 Mark Mitchell <mark@markmitchell.com> 389852284Sobrien 389952284Sobrien * call.c (build_over_call): Make pedwarns about dropped qualifiers 390052284Sobrien into full-fledged errors. 390152284Sobrien * cvt.c (convert_to_reference): Likewise. 390252284Sobrien * typeck.c (convert_for_assignment): Likewise. 390352284Sobrien 390452284Sobrien * search.c (expand_upcast_vtables): In addition to unsetting 390552284Sobrien TREE_READONLY, remove top-level const type qualifier. 390652284Sobrien 390752284Sobrien1998-10-03 Mark Mitchell <mark@markmitchell.com> 390852284Sobrien 390952284Sobrien * class.c (current_class_ptr, current_class_ref): Clarify 391052284Sobrien documentation. 391152284Sobrien * cvt.c (ocp_convert): Don't expect fold to remove all trivial 391252284Sobrien NOP type conversions. 391352284Sobrien * decl.c (decls_match): Use comptypes directly; ignore 391452284Sobrien qualifiers on the DECL. 391552284Sobrien (duplicate_decls): Remove qualifier checks on DECL. 391652284Sobrien (grokdeclarator): Make the type built up include top-level 391752284Sobrien qualifiers. 391852284Sobrien * decl2.c (do_dtors): Fix spelling error. 391952284Sobrien * error.c (dump_simple_decl): Don't look at qualifiers on the decl 392052284Sobrien when printing type information. 392152284Sobrien * init.c (build_new_1): Add documentation. Deal with the fact 392252284Sobrien that type of allocated memory now contains qualifiers. 392352284Sobrien * lex.c (is_global): Improve error-recovery. 392452284Sobrien * sig.c (build_member_function_pointer): Don't cast away const 392552284Sobrien on fields of sigtable_entry_type. 392652284Sobrien * tree.c (lvalue_type): Don't look at top-level qualifiers on 392752284Sobrien expressions. 392852284Sobrien * typeck.c (decay_conversion): Likewise. 392952284Sobrien (build_component_ref): Make sure the type of the COMPONENT_REF 393052284Sobrien contains top-level qualifiers, as appropriate. Improve 393152284Sobrien error-handling. 393252284Sobrien (build_indirect_ref): Simplify. Don't strip top-level qualifiers. 393352284Sobrien (build_array_ref): Likewise. 393452284Sobrien (build_unary_op): Improve error-recovery. 393552284Sobrien (unary_complex_lvalue): Make taking the address a bound member 393652284Sobrien function an error, not a sorry. 393752284Sobrien (build_conditional_expr): Look at the type qualifiers, not the 393852284Sobrien qualifiers on the expression itself. 393952284Sobrien 394050397Sobrien1998-10-03 Jason Merrill <jason@yorick.cygnus.com> 394118334Speter 394250397Sobrien * decl2.c (merge_functions): Remove duplicates. 394350397Sobrien 394452284Sobrien * decl2.c: Add -f{no-,}implicit-inline-templates. 394552284Sobrien (import_export_decl): Check it. 394652284Sobrien 394752284Sobrien * decl.c (lookup_name_real): Template parms also take precedence 394852284Sobrien over implicit typename. Only warn if yylex. 394952284Sobrien 395050397Sobrien * typeck.c (build_conditional_expr): Only fold if ifexp is an 395150397Sobrien INTEGER_CST. 395250397Sobrien 395352284Sobrien * decl2.c (finish_vtable_vardecl): Check DECL_INTERFACE_KNOWN 395452284Sobrien instead of linkage. 395550397Sobrien 395652284Sobrien1998-10-01 Jason Merrill <jason@yorick.cygnus.com> 395752284Sobrien 395852284Sobrien * cp-tree.h (FORMAT_VBASE_NAME): New macro. 395952284Sobrien * class.c (build_vbase_pointer): Use it. 396052284Sobrien * rtti.c (expand_class_desc): Likewise. 396152284Sobrien * tree.c (build_vbase_pointer_fields): Likewise. 396252284Sobrien 396352284SobrienThu Oct 1 10:43:45 1998 Nick Clifton <nickc@cygnus.com> 396452284Sobrien 396552284Sobrien * decl.c (start_decl): Add invocation of 396652284Sobrien SET_DEFAULT_DECL_ATTRIBUTES, if defined. 396752284Sobrien (start_function): Add invocation of 396852284Sobrien SET_DEFAULT_DECL_ATTRIBUTES, if defined. 396952284Sobrien 397052284Sobrien * lex.c: Replace occurrences of HANDLE_SYSV_PRAGMA with 397152284Sobrien HANDLE_GENERIC_PRAGMAS. 397252284Sobrien 397352284Sobrien1998-09-28 Anthony Green <green@cygnus.com> 397452284Sobrien 397552284Sobrien * semantics.c (finish_asm_stmt): Always permit volatile asms. 397652284Sobrien 397752284Sobrien1998-09-28 Mark Mitchell <mark@markmitchell.com> 397852284Sobrien 397952284Sobrien * decl.c (grokdeclarator): Tighten checks for invalid 398052284Sobrien destructors. Improve error-messages and error-recovery. 398152284Sobrien * decl2.c (check_classfn): Don't assume that mangled destructor 398252284Sobrien names contain type information. 398352284Sobrien 398452284Sobrien1998-09-25 Jason Merrill <jason@yorick.cygnus.com> 398552284Sobrien 398652284Sobrien * search.c (get_base_distance): Remove assert. 398752284Sobrien 398852284Sobrien * decl2.c (build_anon_union_vars): Don't process a field with no 398952284Sobrien name. 399052284Sobrien (finish_anon_union): Also complain about local anon unions with no 399152284Sobrien members. 399252284Sobrien 399352284Sobrien1998-09-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 399452284Sobrien 399552284Sobrien * decl.c (lookup_namespace_name): If the name is a namespace, 399652284Sobrien return it immediately. 399752284Sobrien 399852284SobrienFri Sep 25 11:45:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 399952284Sobrien 400052284Sobrien * cp-tree.h (define_case_label): Remove unused parameter. 400152284Sobrien (check_java_method): Likewise. 400252284Sobrien (grokclassfn): Likewise. 400352284Sobrien (expand_aggr_init): Likewise. 400452284Sobrien (build_x_delete): Likewise. 400552284Sobrien (maybe_end_member_template_processing): Likewise. 400652284Sobrien (unshare_base_binfos): Add prototype. 400752284Sobrien (string_conv_p): Likewise. 400852284Sobrien (my_friendly_abort): Mark with ATTRIBUTE_NORETURN. 400952284Sobrien 401052284Sobrien * cvt.c (build_up_reference): Remove unused parameter 401152284Sobrien `checkconst', all callers changed. 401252284Sobrien (build_type_conversion): Mark parameter `code' with 401352284Sobrien ATTRIBUTE_UNUSED. 401452284Sobrien (build_expr_type_conversion): Initialize variable `conv'. 401552284Sobrien 401652284Sobrien * decl.c (push_namespace): Initialize variable `d'. 401752284Sobrien (define_case_label): Remove unused parameter `decl', all callers 401852284Sobrien changed. 401952284Sobrien 402052284Sobrien * decl2.c (lang_decode_option): If !USE_CPPLIB, mark parameter 402152284Sobrien `argc' with ATTRIBUTE_UNUSED. 402252284Sobrien (grokclassfn): Remove unused parameter `cname', all callers 402352284Sobrien changed. 402452284Sobrien (check_java_method): Likewise for parameter `ctype'. 402552284Sobrien (copy_assignment_arg_p): Mark parameter `virtualp' with 402652284Sobrien ATTRIBUTE_UNUSED. 402752284Sobrien (finish_prevtable_vardecl): Likewise for parameter `prev'. 402852284Sobrien 402952284Sobrien * expr.c (extract_init): Likewise for parameters `decl' and `init'. 403052284Sobrien 403152284Sobrien * init.c (expand_aggr_init_1): Remove unused parameter 403252284Sobrien `alias_this', all callers changed. 403352284Sobrien (expand_aggr_init): Likewise. 403452284Sobrien (expand_default_init): Likewise. 403552284Sobrien (build_new_1): Initialize variable `susp'. 403652284Sobrien (build_x_delete): Remove unused parameter `type', all callers 403752284Sobrien changed. 403852284Sobrien 403952284Sobrien * lex.c (set_typedecl_interface_info): Mark parameter `prev' with 404052284Sobrien ATTRIBUTE_UNUSED. 404152284Sobrien (readescape): Use (unsigned) value in shift. 404252284Sobrien (real_yylex): Likewise. Likewise. Also cast `sizeof' to int when 404352284Sobrien comparing to a signed quantity. 404452284Sobrien 404552284Sobrien * pt.c (maybe_end_member_template_processing): Remove unused 404652284Sobrien parameter `decl', all callers changed. 404752284Sobrien (check_explicit_specialization): Add braces around empty body in 404852284Sobrien an else-statement. 404952284Sobrien (current_template_args): Initialize variable `args'. 405052284Sobrien (lookup_template_class): Likewise for variable `prev_local_enum'. 405152284Sobrien (tsubst_decl): Likewise for variable `r'. 405252284Sobrien (set_mangled_name_for_template_decl): Initialize variable 405352284Sobrien `context'. 405452284Sobrien 405552284Sobrien * spew.c (scan_tokens): Change type of parameter `n' to unsigned. 405652284Sobrien Likewise for variable `i'. 405752284Sobrien (yylex): Initialize variable `trrr'. 405852284Sobrien 405952284Sobrien * typeck.c (compparms): Mark variable `strict' with 406052284Sobrien ATTRIBUTE_UNUSED. 406152284Sobrien 406252284Sobrien * xref.c (simplify_type): Cast argument of ctype function to 406352284Sobrien `unsigned char'. 406452284Sobrien 406552284Sobrien1998-09-24 Mark Mitchell <mark@markmitchell.com> 406652284Sobrien 406752284Sobrien * cp-tree.h (language_lvalue_valid): Remove. 406852284Sobrien * decl.c (grokdeclarator): Don't disallow references to functions. 406952284Sobrien * tree.c (lvalue_p_1): New function, combining duplicated 407052284Sobrien code from ... 407152284Sobrien (lvalue_p): Use it. 407252284Sobrien (real_lvalue_p): Likewise. 407352284Sobrien * typeck.c (language_lvalue_valid): Remove. 407452284Sobrien (build_modify_expr): Treat FUNCTION_TYPEs as readonly, even though 407552284Sobrien they don't have TREE_READONLY set. 407652284Sobrien * typeck2.c (readonly_error): Add case for FUNCTION_DECLs. 407752284Sobrien 407852284Sobrien1998-09-24 Benjamin Kosnik <bkoz@loony.cygnus.com> 407952284Sobrien 408052284Sobrien * spew.c (yylex): Give diagnostic. 408152284Sobrien * hash.h (is_reserved_word): Add export. 408252284Sobrien * gxx.gperf: Likewise. 408352284Sobrien * lex.h (rid): Add RID_EXPORT. 408452284Sobrien * lex.c (init_parse): Likewise. 408552284Sobrien 408652284SobrienTue Sep 22 21:01:19 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 408752284Sobrien 408852284Sobrien * friend.c (do_friend): Make warning a full sentence. 408952284Sobrien 409052284Sobrien1998-09-22 Mark Mitchell <mark@markmitchell.com> 409152284Sobrien 409252284Sobrien * parse.y (component_decl_list): Improve error-recovery. 409352284Sobrien 409452284Sobrien1998-09-22 Benjamin Kosnik <bkoz@loony.cygnus.com> 409552284Sobrien 409652284Sobrien * decl.c (make_typename_type): Move error to point where name 409752284Sobrien variable can be used by dump_type. 409852284Sobrien 409952284Sobrien1998-09-22 Mark Mitchell <mark@markmitchell.com> 410052284Sobrien 410152284Sobrien * decl.c (grokfndecl): Improve error-recovery. 410252284Sobrien * decl2.c (grokfield): Likewise. 410352284Sobrien * pt.c (finish_member_template_decl): Likewise. 410452284Sobrien 410552284Sobrien1998-09-20 Martin von L�wis <loewis@informatik.hu-berlin.de> 410652284Sobrien 410752284Sobrien * method.c (hack_identifier): Finding multiple members is always 410852284Sobrien an error. 410952284Sobrien 411052284Sobrien1998-09-21 Per Bothner <bothner@cygnus.com> 411152284Sobrien 411252284Sobrien * Make-lang.in (c++-filt): Link libiberty.a after cxxmain.o. 411352284Sobrien 411452284SobrienMon Sep 21 01:53:05 1998 Felix Lee <flee@cygnus.com> 411552284Sobrien 411652284Sobrien * lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). 411752284Sobrien 411852284Sobrien1998-09-20 Mark Mitchell <mark@markmitchell.com> 411952284Sobrien 412052284Sobrien * class.c (maybe_warn_about_overly_private_class): Reformat. 412152284Sobrien 412252284Sobrien1998-09-17 Andrew MacLeod <amacleod@cygnus.com> 412352284Sobrien 412452284Sobrien * exception.cc (__cplus_type_matcher): Realign some code. 412552284Sobrien 412652284Sobrien1998-09-16 Mark Mitchell <mark@markmitchell.com> 412752284Sobrien 412852284Sobrien * Make-lang.in (tinfo.o): Use CXXFLAGS when compiling. 412952284Sobrien (tinfo2.o): Likewise. 413052284Sobrien (exception.o): Likewise. 413152284Sobrien (new.o): Likewise. 413252284Sobrien (opnew.o): Likewise. 413352284Sobrien (opnewnt.o): Likewise. 413452284Sobrien (opvnew.o): Likewise. 413552284Sobrien (opvnewnt.o): Likewise. 413652284Sobrien (opdel.o): Likewise. 413752284Sobrien (opdelnt.o): Likewise. 413852284Sobrien (opvdel.o): Likewise. 413952284Sobrien (opvdelnt.o): Likewise. 414052284Sobrien 414152284Sobrien1998-09-16 Richard Henderson <rth@cygnus.com> 414252284Sobrien 414352284Sobrien * decl.c (init_decl_processing): Kill __builtin_fp and __builtin_sp. 414452284Sobrien 414552284Sobrien1998-09-15 Alexandre Oliva <oliva@dcc.unicamp.br> 414652284Sobrien 414752284Sobrien * call.c (build_field_call): Handle static data members too. 414852284Sobrien 414952284Sobrien * typeck.c (comptypes): When comparing pointer types, check 415052284Sobrien whether referred types match even in strictest modes. 415152284Sobrien 415252284Sobrien1998-09-15 Mark Mitchell <mark@markmitchell.com> 415352284Sobrien 415452284Sobrien * cp-tree.h: Revert previous change. 415552284Sobrien (finish_struct_methods): Remove declaration. 415652284Sobrien * class.c: Revert previous change. 415752284Sobrien (maybe_warn_about_overly_private_class): New function. 415852284Sobrien (finish_struct_methods): Declare here, and make static. Remove 415952284Sobrien unnecessary parameters. Tidy slightly. Use 416052284Sobrien maybe_warn_about_overly_private_class. 416152284Sobrien (finish_struct_1): Adjust. Remove check for private constructors, 416252284Sobrien now done elsewhere. 416352284Sobrien (finish_struct): Adjust. 416452284Sobrien 416552284Sobrien1998-09-15 Andrew MacLeod <amacleod@cygnus.com> 416652284Sobrien 416752284Sobrien * except.c (expand_start_catch_block): No need to check for new 416852284Sobrien exception model. 416952284Sobrien (process_start_catch_block_old): Deleted. 417052284Sobrien (process_start_catch_block): Add call to start_decl_1(). 417152284Sobrien (expand_end_catch_block): Add call to end_catch_handler(). 417252284Sobrien * exception.cc (__cplus_type_matcher): Only check the exception 417352284Sobrien language if there is an exception table. 417452284Sobrien 417552284Sobrien1998-09-15 Andrew MacLeod <amacleod@cygnus.com> 417652284Sobrien 417752284Sobrien * search.c (expand_indirect_vtbls_init): Mark temporary stack slots 417852284Sobrien as used to prevent conflicts with virtual function tables. 417952284Sobrien 418052284Sobrien1998-09-14 Mark Mitchell <mark@markmitchell.com> 418152284Sobrien 418252284Sobrien * cp-tree.h (lang_type): Add has_non_private_static_mem_fn. 418352284Sobrien (CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN): New macro, to access it. 418452284Sobrien * class.c (maybe_class_too_private_p): New function. 418552284Sobrien (finish_struct_methods): Use it. 418652284Sobrien (finish_struct_1): Likewise. 418752284Sobrien (finish_struct): Set CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN if 418852284Sobrien appropriate. 418952284Sobrien 419052284Sobrien * pt.c (check_specialization_scope): Fix spelling error. 419152284Sobrien (check_explicit_specialization): Remove code to handle explicit 419252284Sobrien specializations in class scope; they are now correctly diagnosed 419352284Sobrien as errors. 419452284Sobrien 419552284Sobrien1998-09-10 Mark Mitchell <mark@markmitchell.com> 419652284Sobrien 419752284Sobrien * decl.c (pushdecl): Don't copy types if the 419852284Sobrien DECL_ABSTRACT_ORIGIN of the new decl matches the TYPE_NAME of the 419952284Sobrien type. 420052284Sobrien 420152284Sobrien1998-09-09 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 420252284Sobrien 420352284Sobrien * class.c (get_enclosing_class): New function. 420452284Sobrien (is_base_of_enclosing_class): Likewise. 420552284Sobrien * cp-tree.h (get_enclosing_class): Declare. 420652284Sobrien (is_base_of_enclosing_class): Likewise. 420752284Sobrien * pt.c (coerce_template_parms): Use them. 420852284Sobrien 420952284Sobrien1998-09-09 Jason Merrill <jason@yorick.cygnus.com> 421052284Sobrien 421152284Sobrien * g++spec.c (lang_specific_driver): Check whether MATH_LIBRARY is 421252284Sobrien null to decide whether to use it. 421352284Sobrien 421452284Sobrien * error.c (dump_type_real): Handle NAMESPACE_DECL. 421552284Sobrien * parse.y (base_class.1): Avoid crash on error. 421652284Sobrien 421752284Sobrien1998-09-08 Martin von L�wis <loewis@informatik.hu-berlin.de> 421852284Sobrien 421952284Sobrien * decl.c (make_typename_type): If context is a namespace, the code 422052284Sobrien is in error. 422152284Sobrien 422252284Sobrien1998-09-08 Mumit Khan <khan@xraylith.wisc.edu> 422352284Sobrien 422450397Sobrien * parse.y (nomods_initdcl0): Set up the parser stack correctly. 422550397Sobrien 422652284Sobrien1998-09-08 Mark Mitchell <mark@markmitchell.com> 422752284Sobrien 422852284Sobrien * cp-tree.h (anonymous_namespace_name): Declare. 422952284Sobrien * decl.c: Define it. 423052284Sobrien (push_namespace): Use anonymous_namespace_name, rather than local 423152284Sobrien static anon_name. 423252284Sobrien * error.c (dump_decl): If a namespace is named 423352284Sobrien anonymous_namespace_name, call it {anonymous}. 423452284Sobrien 423552284Sobrien * decl.c (grokparms): Distinguish between references and pointers 423652284Sobrien in error message. 423752284Sobrien 423852284Sobrien1998-09-08 Richard Henderson <rth@cygnus.com> 423952284Sobrien Mark Mitchell <mark@markmitchell.com> 424052284Sobrien 424152284Sobrien * pt.c (process_partial_specialization): Consistently allocate 424252284Sobrien and zero tpd.parms based on ntparms. Use tpd2.parms, not 424352284Sobrien tpd.parms, where appropriate. 424452284Sobrien 424552284SobrienSun Sep 6 00:00:51 1998 Jeffrey A Law (law@cygnus.com) 424652284Sobrien 424752284Sobrien * Makefile.in (INCLUDES): Update after recent toplevel gcc 424852284Sobrien reorganizations. 424952284Sobrien 425052284Sobrien1998-09-05 Mark Mitchell <mark@markmitchell.com> 425152284Sobrien 425252284Sobrien * cp-tree.h (TI_PENDING_SPECIALIZATION_FLAG): Remove. 425352284Sobrien * class.c (finish_struct): Remove hackery to deal with explicit 425452284Sobrien specializations in class scope. 425552284Sobrien * decl.c (grokfndecl): Improve error-recovery. 425652284Sobrien * decl2.c (grokfield): Likewise. 425752284Sobrien * pt.c (check_specialization_scope): New function. 425852284Sobrien (begin_specialization): Call it. 425952284Sobrien (process_partial_specialization): New function, split out from 426052284Sobrien push_template_decl. Check partial specializations more 426152284Sobrien stringently. 426252284Sobrien (push_template_decl): Call it. 426352284Sobrien (check_explicit_specialization): Don't attempt to handle explicit 426452284Sobrien specializations in class scope. 426552284Sobrien (template_parm_data): Document. Add current_arg and 426652284Sobrien arg_uses_template_parms. 426752284Sobrien (mark_template_parm): Set it. 426852284Sobrien (tsubst_arg_types): Remove unused variable. 426952284Sobrien * semantics.c (begin_class_definition): Tweak. 427052284Sobrien 427152284Sobrien1998-09-04 Mark Mitchell <mark@markmitchell.com> 427252284Sobrien 427352284Sobrien * inc/typeinfo (type_info::type_info(const char*)): Make 427452284Sobrien `explicit'. 427552284Sobrien 427652284Sobrien * cp-tree.h (hash_tree_cons_simple): New macro. 427752284Sobrien * pt.c (tsubst_arg_types): New function. Use hash_tree_cons. 427852284Sobrien (coerce_template_parms): Use make_temp_vec, instead of 427952284Sobrien make_tree_vec. Document this behavior. 428052284Sobrien (lookup_template_class): Likewise. 428152284Sobrien (tsubst, cases METHOD_TYPE, FUNCTION_TYPE): Use tsubst_arg_types. 428252284Sobrien Remove dead code (and add assertion to check its deadness). Fix 428352284Sobrien bug w.r.t. exception specifications. 428452284Sobrien 428552284Sobrien1998-09-03 Jason Merrill <jason@yorick.cygnus.com> 428652284Sobrien 428752284Sobrien * decl2.c (import_export_vtable): Always make artificials comdat. 428852284Sobrien (import_export_decl): Likewise. 428952284Sobrien * pt.c (mark_decl_instantiated): Likewise. 429052284Sobrien 429152284Sobrien1998-09-03 Mark Mitchell <mark@markmitchell.com> 429252284Sobrien 429352284Sobrien * cp-tree.h (finish_globally_qualified_member_call_expr): 429452284Sobrien Rename to ... 429552284Sobrien (finish_qualified_call_expr). 429652284Sobrien * semantics.c: Likewise. 429752284Sobrien * parse.y (primary): Use it. 429852284Sobrien * method.c (hack_identifier): Remove redundant code. 429952284Sobrien 430052284Sobrien * init.c (resolve_offset_ref): Call convert_from_reference to 430152284Sobrien handle members of reference type. Improve error recovery. 430252284Sobrien 430352284Sobrien1998-09-03 Benjamin Kosnik <bkoz@cygnus.com> 430452284Sobrien 430552284Sobrien * cp-tree.h: Declare warn_nontemplate_friend. 430652284Sobrien * decl2.c (lang_decode_option): Set. 430752284Sobrien * lang-options.h: Add -Wnon-template-friend. 430852284Sobrien * friend.c (do_friend): Use to toggle non-template function warning. 430952284Sobrien 431052284Sobrien1998-09-03 Mark Mitchell <mark@markmitchell.com> 431152284Sobrien 431252284Sobrien * decl.c (finish_enum): Don't resolve CONST_DECLs to their 431352284Sobrien corresponding INTEGER_CSTs when processing_template_decl. 431452284Sobrien * pt.c (tsubst_enum): Tweak accordingly. 431552284Sobrien 431652284Sobrien1998-09-03 Benjamin Kosnik <bkoz@rhino.cygnus.com> 431752284Sobrien 431852284Sobrien * decl.c (pushdecl_class_level): Add warning here. 431952284Sobrien (pushdecl): Tweak. 432052284Sobrien 432152284Sobrien1998-09-02 Jason Merrill <jason@yorick.cygnus.com> 432252284Sobrien 432352284Sobrien * cvt.c (convert_pointer_to_real): Tidy. 432452284Sobrien * search.c (get_base_distance_recursive): Simplify. 432552284Sobrien (get_base_distance): Likewise. 432652284Sobrien 432752284Sobrien * pt.c (unify): Only special-case INTEGER_TYPE if it uses template 432852284Sobrien parms. 432952284Sobrien 433052284SobrienWed Sep 02 09:25:29 1998 Nick Clifton <nickc@cygnus.com> 433152284Sobrien 433252284Sobrien * lex.c (check_newline): Call HANDLE_PRAGMA before 433352284Sobrien HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages 433452284Sobrien if unknown pragmas are encountered. 433552284Sobrien (handle_sysv_pragma): Interpret return code from 433652284Sobrien handle_pragma_token (). Return success/failure indication rather 433752284Sobrien than next unprocessed character. 433852284Sobrien (pragma_getc): New function: retrieves characters from the 433952284Sobrien input stream. Defined when HANDLE_PRAGMA is defined. 434052284Sobrien (pragma_ungetc): New function: replaces characters back into the 434152284Sobrien input stream. Defined when HANDLE_PRAGMA is defined. 434252284Sobrien 434352284Sobrien1998-09-01 Jason Merrill <jason@yorick.cygnus.com> 434452284Sobrien 434552284Sobrien * decl2.c (output_vtable_inherit): Use %cDIGIT in the operands. 434652284Sobrien * class.c (build_vtable_entry_ref): Likewise. 434752284Sobrien 434852284Sobrien1998-09-01 Mark Mitchell <mark@markmitchell.com> 434952284Sobrien 435052284Sobrien * cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): New macro. 435152284Sobrien * decl2.c (import_export_decl): Likewise. 435252284Sobrien * pt.c (instantiate_decl): Use it. 435352284Sobrien 435452284Sobrien1998-09-01 Jason Merrill <jason@yorick.cygnus.com> 435552284Sobrien 435652284Sobrien * decl.c (lookup_name_real): Also do implicit typename thing for 435752284Sobrien artificial TYPE_DECLs. 435852284Sobrien * search.c (lookup_field): Likewise. 435952284Sobrien (lookup_fnfields, lookup_field): Adjust for implicit typename kludge. 436052284Sobrien * semantics.c (begin_constructor_declarator): Use enter_scope_of. 436152284Sobrien (enter_scope_of): Extract type from implicit typename. 436252284Sobrien (begin_class_definition): Likewise. 436352284Sobrien * lex.c (identifier_type): Handle implicit typename when checking 436452284Sobrien for SELFNAME. 436552284Sobrien 436652284Sobrien * cp-tree.h: Declare flag_strict_prototype. 436752284Sobrien * lex.c (do_scoped_id, do_identifier): Don't implicitly_declare if 436852284Sobrien -fstrict-prototype. 436952284Sobrien * decl.c (init_decl_processing): If -f{no,-}strict-prototype wasn't 437052284Sobrien specified, set it to the value of pedantic. 437152284Sobrien 437252284Sobrien1998-09-01 Mark Mitchell <mark@markmitchell.com> 437352284Sobrien 437452284Sobrien * decl2.c (arg_assoc): Handle template-id expressions as arguments. 437552284Sobrien 437652284Sobrien1998-08-31 Mark Mitchell <mark@markmitchell.com> 437752284Sobrien 437852284Sobrien * decl.c (finish_enum): Handle member enums of classes declared in 437952284Sobrien template functions. 438052284Sobrien 438152284Sobrien * decl2.c (grok_x_components): Strip attributes before calling 438252284Sobrien groktypename. 438352284Sobrien 438452284Sobrien1998-08-31 Jason Merrill <jason@yorick.cygnus.com> 438552284Sobrien 438652284Sobrien * cp-tree.h, decl2.c: Remove support for -fall-virtual, 438752284Sobrien -fenum-int-equivalence and -fno-nonnull-objects. 438852284Sobrien * class.c (check_for_override): Remove support for -fall-virtual. 438952284Sobrien (finish_struct_1): Likewise. 439052284Sobrien * call.c (build_new_op): Remove support for -fenum-int-equivalence. 439152284Sobrien * typeck.c (build_binary_op_nodefault): Likewise. 439252284Sobrien * cvt.c (ocp_convert): Likewise. 439352284Sobrien * call.c (build_vfield_ref): Remove support for -fno-nonnull-objects. 439452284Sobrien * class.c (build_vbase_path): Likewise. 439552284Sobrien 439652284SobrienSun Aug 30 22:16:31 1998 H.J. Lu (hjl@gnu.org) 439752284Sobrien 439852284Sobrien * Makefile.in (INTERFACE): New, set to 1. 439952284Sobrien 440052284Sobrien1998-08-30 Mark Mitchell <mark@markmitchell.com> 440152284Sobrien 440252284Sobrien * error.c (dump_decl): Use CP_DECL_CONTEXT, not DECL_CONTEXT, when 440352284Sobrien comparing with global_namespace. 440452284Sobrien (dump_aggr_type): Likewise. 440552284Sobrien 440652284Sobrien * decl.c (grokfndecl): Issue error on declaration of friend 440752284Sobrien templates with explicit template arguments. 440852284Sobrien 440952284Sobrien * pt.c (convert_template_argument): New function, split out 441052284Sobrien from... 441152284Sobrien (coerce_template_parms): Here. 441252284Sobrien (tsubst): Attempt better error-recovery. 441352284Sobrien 441452284Sobrien1998-08-28 Benjamin Kosnik <bkoz@loony.cygnus.com> 441552284Sobrien 441652284Sobrien * pt.c (decl_template_parm_p): Add checks for 441752284Sobrien TEMPLATE_TEMPLATE_PARM. 441852284Sobrien 441952284Sobrien1998-08-28 Mark Mitchell <mark@markmitchell.com> 442052284Sobrien 442152284Sobrien * lex.c (do_identifier): Fix thinko in previous change. 442252284Sobrien 442352284Sobrien1998-08-28 Jason Merrill <jason@yorick.cygnus.com> 442452284Sobrien 442552284Sobrien * search.c (dfs_search, binfo_for_vtable, dfs_bfv_helper): New fns. 442652284Sobrien * decl2.c (output_vtable_inherit): Call binfo_for_vtable. 442752284Sobrien 442852284Sobrien1998-08-28 Richard Henderson <rth@cygnus.com> 442952284Sobrien 443052284Sobrien Add support for discarding unused virtual functions. 443152284Sobrien * lang-options.h: Add -fvtable-gc. 443252284Sobrien * cp-tree.h: Add flag_vtable_gc. 443352284Sobrien * decl2.c (output_vtable_inherit): New fn. 443452284Sobrien (finish_vtable_vardecl): Call it. 443552284Sobrien * class.c (build_vtable_entry_ref): New fn. 443652284Sobrien (build_vtbl_ref): Call it. 443752284Sobrien 443852284Sobrien1998-08-28 Mark Mitchell <mark@markmitchell.com> 443952284Sobrien 444052284Sobrien * cp-tree.h (build_enumerator): Take the enumeration type as a 444152284Sobrien parameter. 444252284Sobrien * decl.c (finish_enum): Don't set the TREE_TYPE for the 444352284Sobrien enumeration constant values if we're processing_template_decls. 444452284Sobrien Don't set the type for the CONST_DECLs either; that's done in 444552284Sobrien build_enumerator. 444652284Sobrien (build_enumerator): Take the enumeration type as a 444752284Sobrien parameter. 444852284Sobrien * lex.c (do_identifier): Don't resolve enumeration constants while 444952284Sobrien processing template declarations, even if they happen to be 445052284Sobrien TEMPLATE_PARM_INDEXs. 445152284Sobrien 445252284Sobrien * parse.y (current_enum_type): New variable. 445352284Sobrien (primary): Don't allow statement-expression in local classes just 445452284Sobrien as we don't in global classes. 445552284Sobrien (structsp): Use current_enum_type. 445652284Sobrien (enum_list): Likewise. 445752284Sobrien * pt.c (tsubst_enum): Don't check for NOP_EXPRs introduced by 445852284Sobrien finish_enum; they no longer occur. 445952284Sobrien 446052284Sobrien * cp-tree.h (finish_base_specifier): New function. 446152284Sobrien * parse.y (base_class): Use it. 446252284Sobrien * semantics.c (finish_base_specifier): Define it. 446352284Sobrien 446452284Sobrien * parse.y (structsp): Warn on use of typename outside of template 446552284Sobrien declarations. 446652284Sobrien 446752284Sobrien1998-08-27 Jason Merrill <jason@yorick.cygnus.com> 446852284Sobrien 446952284Sobrien * lex.c (handle_cp_pragma): Remove #pragma vtable. 447052284Sobrien * lang-options.h: Remove +e options. 447152284Sobrien * decl2.c (lang_decode_option): Likewise. 447252284Sobrien (import_export_vtable): Don't check write_virtuals. 447352284Sobrien (finish_vtable_vardecl, finish_file): Likewise. 447452284Sobrien * search.c (dfs_debug_mark): Likewise. 447552284Sobrien * semantics.c (begin_class_definition): Likewise. 447652284Sobrien * class.c (build_vtable, finish_vtbls, finish_struct_1): Likewise. 447752284Sobrien 447852284Sobrien * call.c (build_over_call): Check flag_elide_constructors. 447952284Sobrien * decl2.c: flag_elide_constructors defaults to 1. 448052284Sobrien * typeck.c (convert_arguments): Remove return_loc parm. 448152284Sobrien (build_function_call_real): Adjust. 448252284Sobrien 448352284Sobrien * search.c: Tear out all mi_matrix and memoize code. 448452284Sobrien (lookup_field, lookup_fnfields): Use scratch_tree_cons. 448552284Sobrien * lang-options.h: Remove documentation for -fhandle-exceptions, 448652284Sobrien -fmemoize-lookups and -fsave-memoized. 448752284Sobrien * cp-tree.h: Lose mi_matrix and memoize support. 448852284Sobrien * decl2.c: Ignore -fmemoize-lookups and -fsave-memoized. 448952284Sobrien * class.c: Lose struct class_level. 449052284Sobrien (pushclass, popclass): Lose memoize support. 449152284Sobrien * init.c (build_offset_ref): Likewise. 449252284Sobrien 449352284Sobrien Never change BINFO_INHERITANCE_CHAIN. 449452284Sobrien * init.c (emit_base_init): Change modification of 449552284Sobrien BINFO_INHERITANCE_CHAIN to an assert. 449652284Sobrien * search.c (get_base_distance_recursive): Likewise. 449752284Sobrien (get_base_distance): Likewise. 449852284Sobrien (lookup_member): Likewise. 449952284Sobrien (convert_pointer_to_single_level): Likewise. 450052284Sobrien (lookup_field): Likewise. Lose setting TREE_VIA_* on TREE_LISTs. 450152284Sobrien (lookup_fnfields): Likewise. 450252284Sobrien * tree.c (propagate_binfo_offsets): Don't call unshare_base_binfos. 450352284Sobrien (unshare_base_binfos): Don't call propagate_binfo_offsets. 450452284Sobrien (layout_basetypes): Call propagate_binfo_offsets instead of 450552284Sobrien unshare_base_binfos. 450652284Sobrien * decl.c (xref_basetypes): Call unshare_base_binfos. 450752284Sobrien * pt.c (instantiate_class_template): Likewise. 450852284Sobrien * tree.c (reverse_path): Remove 'copy' parm; always make a 450952284Sobrien temporary copy. 451052284Sobrien * class.c (build_vbase_path): Just call it. 451152284Sobrien * search.c (compute_access): Likewise. Don't re-reverse. 451252284Sobrien 451352284Sobrien1998-08-27 Mark Mitchell <mark@markmitchell.com> 451452284Sobrien 451552284Sobrien * class.c (build_vbase_path): Use reverse_path. 451652284Sobrien (finish_base_struct): Move warnings for inaccessible bases to 451752284Sobrien layout_basetypes. 451852284Sobrien (modify_one_vtable): Remove check of TREE_USED (binfo). 451952284Sobrien (fixup_vtable_deltas1): Likewise. 452052284Sobrien * cp-tree.h (BINFO_INHERITANCE_CHAIN): Document here. 452152284Sobrien (xref_tag): Remove binfos parameter. 452252284Sobrien (make_binfo): Remove chain parameter. 452352284Sobrien (reverse_path): Add copy parameter. 452452284Sobrien * decl.c (init_decl_processing): Change calls to xref_tag. 452552284Sobrien (xref_tag): Remove binfos parameter. 452652284Sobrien (xref_basetypes): Change calls to make_binfo. 452752284Sobrien * decl2.c (grok_x_components): Change calls to xref_tag. 452852284Sobrien (handle_class_head): Likewise. 452952284Sobrien * friend.c (do_friend): Likewise. 453052284Sobrien * lex.c (make_lang_type): Change calls to make_binfo. 453152284Sobrien * parse.y (structsp): Change calls to xref_tag. 453252284Sobrien (named_complex_class_head_sans_basetype): Likewise. 453352284Sobrien (named_class_head): Likewise. 453452284Sobrien * rtti.c (init_rtti_processing): Likewise. 453552284Sobrien * search.c (compute_access): Change calls to reverse_path. 453652284Sobrien (dfs_get_vbase_types): Change calls to make_binfo. 453752284Sobrien (get_vbase_types): Remove dead code. 453852284Sobrien * tree.c (unshare_base_binfos): Change calls to make_binfo. 453952284Sobrien (layout_basetypes): Warn here about inaccessible bases. 454052284Sobrien (make_binfo): Remove chain parameter. 454152284Sobrien (reverse_path): Add copy parameter. 454252284Sobrien 454352284Sobrien1998-08-27 Jason Merrill <jason@yorick.cygnus.com> 454452284Sobrien 454552284Sobrien * class.c: #if 0 complete_type_p. 454652284Sobrien * init.c (build_java_class_ref, build_new_1): Remove unused locals. 454752284Sobrien * method.c (process_overload_item): Likewise. 454852284Sobrien * typeck.c (comp_target_types): Likewise. 454952284Sobrien 455052284Sobrien Stop sharing binfos for indirect virtual bases. 455152284Sobrien * tree.c (propagate_binfo_offsets): Unshare vbases, too. 455252284Sobrien (layout_basetypes): Likewise. 455352284Sobrien (unshare_base_binfos): Copy vbases, too. 455452284Sobrien * cp-tree.h (BINFO_VIA_PUBLIC, BINFO_BASEINIT_MARKED, 455552284Sobrien BINFO_VBASE_INIT_MARKED): Remove obsolete macros. 455652284Sobrien (BINFO_PUSHDECLS_MARKED, SET_BINFO_PUSHDECLS_MARKED, 455752284Sobrien CLEAR_BINFO_PUSHDECLS_MARKED): New macros. 455852284Sobrien * search.c (lookup_field, lookup_fnfields, lookup_member): Remove 455952284Sobrien reference to BINFO_VIA_PUBLIC. 456052284Sobrien (marked_pushdecls_p, unmarked_pushdecls_p): New fns. 456152284Sobrien (push_class_decls): Use them. 456252284Sobrien (dfs_pushdecls): Use SET_BINFO_PUSHDECLS_MARKED. 456352284Sobrien (dfs_compress_decls): Use CLEAR_BINFO_PUSHDECLS_MARKED. 456452284Sobrien 456552284Sobrien1998-08-27 Mark Mitchell <mark@markmitchell.com> 456652284Sobrien 456752284Sobrien * decl.c (build_enumerator): Set DECL_CONTEXT for the 456852284Sobrien CONST_DECLs. 456952284Sobrien 457052284Sobrien1998-08-26 Mark Mitchell <mark@markmitchell.com> 457152284Sobrien 457252284Sobrien * cp-tree.h (finish_enum): Change prototype. 457352284Sobrien * decl.c (finish_enum): Use TYPE_VALUES, rather than taking a 457452284Sobrien VALUES parameter. Don't try to compute mins/maxs if 457552284Sobrien processing_template_decl. 457652284Sobrien * parse.y (structsp): Use new calling sequence for finish_enum. 457752284Sobrien * pt.c (tsubst_enum): Likewise. Take the new type as input. 457852284Sobrien (lookup_template_class): Remove unused variables. Tweak. 457952284Sobrien Register enums on instantiation list before substituting 458052284Sobrien enumeration constants. 458152284Sobrien (tsubst_decl): Remove unused variables. 458252284Sobrien (regenerate_decl_from_template): Likewise. 458352284Sobrien 458452284Sobrien * decl.c (duplicate_decls): Don't obliterate the 458552284Sobrien DECL_TEMPLATE_INFO for a template if we're not replacing it with 458652284Sobrien anything. 458752284Sobrien 458852284Sobrien * lex.c (do_identifier): Fix typo in comment. 458952284Sobrien 459052284SobrienWed Aug 26 10:54:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 459152284Sobrien 459252284Sobrien * errfn.c: Remove stdarg.h/varargs.h. 459352284Sobrien * tree.c: Likewise. 459452284Sobrien 459552284Sobrien1998-08-25 Brendan Kehoe <brendan@cygnus.com> 459652284Sobrien 459752284Sobrien * pt.c (tsubst_copy): Only do typename overloading on an 459852284Sobrien IDENTIFIER_NODE that happens to look like a typename if it actually 459952284Sobrien has a type for us to use. 460052284Sobrien 460150397Sobrien1998-08-25 Jason Merrill <jason@yorick.cygnus.com> 460250397Sobrien 460352284Sobrien * typeck.c (comp_cv_target_types): Split out... 460452284Sobrien (comp_target_types): From here. Don't allow cv-qual changes under 460552284Sobrien a pointer if nptrs == 0. Fix OFFSET_TYPE handling. 460652284Sobrien (build_ptrmemfunc): Pass 1 to nptrs. 460752284Sobrien * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes. 460852284Sobrien 460952284Sobrien1998-08-25 Mark Mitchell <mark@markmitchell.com> 461052284Sobrien 461152284Sobrien * search.c (dependent_base_p): Don't compare a binfo to 461252284Sobrien current_class_type; use the TREE_TYPE of the binfo instead. 461352284Sobrien 461452284Sobrien * cp-tree.h (CLASS_TYPE_P): Revise definition. 461552284Sobrien 461652284Sobrien1998-08-25 Jason Merrill <jason@yorick.cygnus.com> 461752284Sobrien 461850397Sobrien * decl.c (duplicate_decls): Don't complain about different 461950397Sobrien exceptions from an internal decl even if pedantic. 462050397Sobrien 462152284Sobrien * typeck.c (convert_for_assignment): Converting from pm of vbase 462252284Sobrien to derived is an error, not a sorry. 462352284Sobrien 462452284Sobrien * call.c (build_over_call): Use convert_pointer_to_real for 'this'. 462552284Sobrien * class.c (fixed_type_or_null): Rename from 462652284Sobrien resolves_to_fixed_type_p. Return the dynamic type of the 462752284Sobrien expression, if fixed, or null. 462852284Sobrien (resolves_to_fixed_type_p): Use it. Return 0 if the dynamic type 462952284Sobrien does not match the static type. 463052284Sobrien (build_vbase_path): Rename 'alias_this' to 'nonnull'. Use 463152284Sobrien resolves_to_fixed_type_p again. 463252284Sobrien 463352284Sobrien1998-08-24 Mark Mitchell <mark@markmitchell.com> 463452284Sobrien 463552284Sobrien * pt.c (tsubst_decl): Move special case code for dealing with 463652284Sobrien tricky friend templates here from ... 463752284Sobrien (regenerate_decl_from_template): Here. 463852284Sobrien 463952284Sobrien1998-08-24 Jason Merrill <jason@yorick.cygnus.com> 464052284Sobrien 464152284Sobrien * decl.c (start_decl): Remove redundant linkage check. 464252284Sobrien 464350397Sobrien1998-08-24 Gavin Romig-Koch <gavin@cygnus.com> 464450397Sobrien 464550397Sobrien * typeck.c (c_expand_return): Handle the case that valtype 464650397Sobrien is wider than the functions return type. 464750397Sobrien 464852284Sobrien1998-08-24 Mark Mitchell <mark@markmitchell.com> 464952284Sobrien 465052284Sobrien * cp-tree.h (CLASS_TYPE_P): New macro. 465152284Sobrien * decl.c (grokdeclarator): Use it instead of IS_AGGR_TYPE. 465252284Sobrien * pt.c (process_template_parm): Undo previous change. 465352284Sobrien 465452284Sobrien1998-08-24 Benjamin Kosnik <bkoz@cygnus.com> 465552284Sobrien 465652284Sobrien * cp-tree.h: Declare. 465752284Sobrien * pt.c (decl_template_parm_p): New function. 465852284Sobrien * decl.c (pushdecl): Check decls for redeclaring template parms. 465952284Sobrien (xref_tag): Make redeclaration an error, print decl. 466052284Sobrien * decl2.c (grokfield): Check field_decls for redeclaration as well. 466152284Sobrien 466252284Sobrien1998-08-24 Jason Merrill <jason@yorick.cygnus.com> 466352284Sobrien 466452284Sobrien * parse.y (primary): Fix up the type of string constants. 466552284Sobrien 466652284Sobrien1998-08-24 Mark Mitchell <mark@markmitchell.com> 466752284Sobrien 466852284Sobrien * typeck.c (convert_for_initialization): Move check for odd uses 466952284Sobrien of NULL to avoid duplicate warnings. 467052284Sobrien 467152284Sobrien1998-08-24 Jason Merrill <jason@yorick.cygnus.com> 467252284Sobrien 467352284Sobrien * tree.c (lvalue_type): Fix for arrays. 467452284Sobrien * typeck.c (string_conv_p): New fn. 467552284Sobrien (convert_for_assignment): Use it. 467652284Sobrien (build_unary_op): Use lvalue_type. 467752284Sobrien * call.c (standard_conversion, convert_like): Use string_conv_p. 467852284Sobrien (add_function_candidate): Use lvalue_type. 467952284Sobrien * cvt.c (convert_to_reference): Likewise. 468052284Sobrien * decl2.c (lang_decode_option): Ignore -traditional. 468152284Sobrien * decl.c (init_decl_processing): flag_writable_strings inhibits 468252284Sobrien flag_const_strings. 468352284Sobrien 468452284Sobrien1998-08-24 Andrew MacLeod <amacleod@cygnus.com> 468552284Sobrien 468652284Sobrien * lang-options.h (lang_options): Add fconst-strings to the list 468752284Sobrien of valid options. 468852284Sobrien * decl2.c (lang_f_options, lang_decode_option): Likewise. 468952284Sobrien 469052284Sobrien1998-08-24 Nathan Sidwell <nathan@acm.org> 469152284Sobrien 469252284Sobrien * lex.c (real_yylex): Don't warn about long long constants if 469352284Sobrien we're allowing long long. 469452284Sobrien 469550397Sobrien1998-08-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 469650397Sobrien 469752284Sobrien * decl.c (pushdecl): Use IDENTIFIER_NAMESPACE_VALUE instead of 469852284Sobrien accessing bindings directly. 469952284Sobrien 470050397Sobrien * search.c (my_tree_cons): Reimplement. 470150397Sobrien 470252284Sobrien * lang-specs.h: Remove __HONOR_STD. 470352284Sobrien * inc/exception, inc/new, inc/new.h, inc/typeinfo: Likewise. 470452284Sobrien 470552284Sobrien1998-08-23 Mark Mitchell <mark@markmitchell.com> 470652284Sobrien 470752284Sobrien * decl.c (grokdeclarator): Complain about in-class initialization 470852284Sobrien of aggregates and/or references. 470952284Sobrien * pt.c (process_template_parm): Clear IS_AGGR_TYPE for 471052284Sobrien TEMPLATE_TYPE_PARMs. 471152284Sobrien 471252284Sobrien * decl2.c (grok_array_decl): Add comment. 471352284Sobrien (mark_used): Don't instantiate an explicit instantiation. 471452284Sobrien * friend.c (make_friend_class): Remove bogus comment. Fix check 471552284Sobrien for partial specializations. 471652284Sobrien * pt.c (check_explicit_specialization): Don't 471752284Sobrien SET_DECL_EXPLICIT_INSTANTIATION here. 471852284Sobrien (mark_decl_instantiated): Or here. 471952284Sobrien (do_decl_instantiation): Do it here, instead. Add checks for 472052284Sobrien duplicate explicit instantiations, etc. Tidy. 472152284Sobrien (do_type_instantiation): Likewise. 472252284Sobrien (instantiate_decl): Improve comments. Complain about explicit 472352284Sobrien instantiations where no definition is available. 472452284Sobrien 472552284Sobrien * cp-tree.h (ansi_null_node): Remove. 472652284Sobrien * call.c (build_over_call): Warn about converting NULL to an 472752284Sobrien arithmetic type. 472852284Sobrien * cvt.c (build_expr_type_conversion): Likewise. Use 472952284Sobrien null_ptr_cst_p instead of expanding it inline. 473052284Sobrien * decl.c (ansi_null_node): Remove. 473152284Sobrien (init_decl_processing): Make null_node always have integral type. 473252284Sobrien * except.c (build_throw): Warn about converting NULL to an 473352284Sobrien arithmetic type. 473452284Sobrien * lex.c (init_parse): Remove handling of ansi_null_node. 473552284Sobrien * pt.c (type_unification_real): Don't convert NULL to void* type. 473652284Sobrien * typeck.c (build_binary_op_nodefault): Fix NULL warnings. 473752284Sobrien (convert_for_assignment): Warn about converting NULL to an 473852284Sobrien arithmetic type. 473952284Sobrien (convert_for_initialization): Likewise. 474052284Sobrien 474152284Sobrien1998-08-20 Jason Merrill <jason@yorick.cygnus.com> 474252284Sobrien 474352284Sobrien * tree.c (search_tree, no_linkage_helper, no_linkage_check): New fn. 474452284Sobrien * pt.c (coerce_template_parms): Use no_linkage_check. 474552284Sobrien * decl.c (grokvardecl): Likewise. 474652284Sobrien (grokfndecl): Likewise. Members of anonymous types have no linkage. 474752284Sobrien 474852284Sobrien * method.c (process_overload_item): Remove useless code. 474952284Sobrien 475052284Sobrien1998-08-20 Per Bothner <bothner@cygnus.com> 475152284Sobrien 475252284Sobrien Handle new'ing of Java classes. 475352284Sobrien * init.c (build_class_classref): New function. 475452284Sobrien (build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject; 475552284Sobrien constructor does not return this; don't need to exception-protect. 475652284Sobrien 475752284Sobrien * pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag. 475852284Sobrien * decl2.c (acceptable_java_type): Handle template-derived types. 475952284Sobrien 476052284Sobrien1998-08-20 Per Bothner <bothner@cygnus.com> 476152284Sobrien 476252284Sobrien * decl2.c (import_export_vtable): Suppress vtables for Java classes. 476352284Sobrien 476452284Sobrien1998-08-20 Mark Mitchell <mark@markmitchell.com> 476552284Sobrien 476652284Sobrien * decl.c (duplicate_decls): Always merge the old and new patterns 476752284Sobrien for templates, regardless of whether or not the new one has 476852284Sobrien DECL_INITIAL. Don't throw away specializations. Merge 476952284Sobrien DECL_SAVED_TREE. 477052284Sobrien * pt.c (tsubst_decl): Use the right pattern when calculating the 477152284Sobrien complete args for a new template instance. 477252284Sobrien (do_decl_instantiation): Fix typo in comment. 477352284Sobrien (regenerate_decl_from_template): Deal with tricky friend template 477452284Sobrien case. 477552284Sobrien (instantiate_decl): Likewise. 477652284Sobrien 477752284SobrienThu Aug 20 09:09:45 1998 Jeffrey A Law (law@cygnus.com) 477852284Sobrien 477952284Sobrien * init.c (build_builtin_delete_call): Add missing assemble_external 478052284Sobrien call. 478152284Sobrien 478252284Sobrien1998-08-20 Jason Merrill <jason@yorick.cygnus.com> 478352284Sobrien 478452284Sobrien * parse.y (notype_unqualified_id): Also accept ~A<int>. 478552284Sobrien 478652284Sobrien1998-08-19 Mark Mitchell <mark@markmitchell.com> 478752284Sobrien 478852284Sobrien * typeck.c (build_binary_op_nodefault): Warn on use of NULL in 478952284Sobrien arithmetic. 479052284Sobrien * except.c (build_throw): Warn when NULL is thrown, even with 479152284Sobrien -ansi. Use ansi_null_node, rather than integer_zero_node, in the 479252284Sobrien thrown expression. 479352284Sobrien 479452284Sobrien * cp-tree.h (ansi_null_node): New variable. 479552284Sobrien * decl.c (ansi_null_node): New variable. 479652284Sobrien (init_decl_processing): Initialize its type. 479752284Sobrien * lex.c (init_parse): Initialize its value. Use ansi_null_node 479852284Sobrien for null_node in non-ANSI mode. 479952284Sobrien * typeck.c (build_binary_op_nodefault): Use ansi_null_node in 480052284Sobrien place of null_node to avoid spurious errors. 480152284Sobrien 480252284Sobrien1998-08-17 Mark Mitchell <mark@markmitchell.com> 480352284Sobrien 480452284Sobrien * cp-tree.h (enter_scope_of): New function. 480552284Sobrien * parse.y (complex_direct_notype_declarator): Use it. 480652284Sobrien * semantics.c (enter_scope_of): New function. 480752284Sobrien 480850397Sobrien1998-08-17 Jason Merrill <jason@yorick.cygnus.com> 480950397Sobrien 481052284Sobrien * decl.c (grokparms): No, here. 481152284Sobrien 481252284Sobrien * decl.c (grokdeclarator): Catch parm with pointer to array of 481352284Sobrien unknown bound here... 481452284Sobrien * method.c (process_overload_item): ...not here. 481552284Sobrien 481652284Sobrien * gxxint.texi: Remove obsolete documentation of overloading code. 481752284Sobrien 481850397Sobrien * decl.c (finish_enum): Also set TYPE_SIZE_UNIT. 481950397Sobrien * class.c (finish_struct_bits): Likewise. 482050397Sobrien 482152284Sobrien * tree.c (lvalue_type): Fix for arrays. 482252284Sobrien * typeck.c (build_unary_op): Use lvalue_type. 482352284Sobrien * call.c (add_function_candidate): Likewise. 482452284Sobrien * cvt.c (convert_to_reference): Likewise. 482550397Sobrien 482652284Sobrien * decl2.c (lang_decode_option): Ignore -traditional. 482752284Sobrien 482852284Sobrien * init.c (build_offset_ref): Don't mess with error_mark_node. 482952284Sobrien * lex.c (do_scoped_id): Use cp_error. 483052284Sobrien 483152284Sobrien * rtti.c (get_tinfo_fn): Don't mess with the context for now. 483252284Sobrien 483352284Sobrien1998-08-17 Benjamin Kosnik <bkoz@loony.cygnus.com> 483452284Sobrien 483552284Sobrien * decl.c (grokdeclarator): Allow anonymous types to be cv-qualified. 483652284Sobrien 483752284SobrienMon Aug 17 10:40:18 1998 Jeffrey A Law (law@cygnus.com) 483852284Sobrien 483952284Sobrien * cp-tree.h (set_identifier_local_value): Provide prototype. 484052284Sobrien 484152284Sobrien * decl2.c (do_namespace_alias): Remove unused variables `binding' 484252284Sobrien and `old'. 484352284Sobrien 484452284SobrienFri Aug 14 16:42:27 1998 Nick Clifton <nickc@cygnus.com> 484552284Sobrien 484652284Sobrien * Makefile.in: Rename BBISON to BISON so that it can be properly 484752284Sobrien inherited from the parent makefile. 484852284Sobrien 484952284Sobrien1998-08-13 Jason Merrill <jason@yorick.cygnus.com> 485052284Sobrien 485152284Sobrien * lang-options.h: Add -finit-priority. 485252284Sobrien * decl2.c: Likewise. Check flag_init_priority instead of 485352284Sobrien USE_INIT_PRIORITY. 485452284Sobrien 485552284Sobrien * decl2.c (setup_initp): New fn. 485652284Sobrien (start_objects, finish_objects, do_ctors): Handle init_priority. 485752284Sobrien (do_dtors, finish_file): Likewise. 485852284Sobrien 485952284Sobrien1998-08-13 Jason Merrill <jason@yorick.cygnus.com> 486052284Sobrien 486152284Sobrien * pt.c (tsubst_copy): Hush warning. 486252284Sobrien 486352284Sobrien * rtti.c (get_tinfo_fn): Also set DECL_IGNORED_P. 486452284Sobrien 486552284Sobrien1998-08-12 Mark Mitchell <mark@markmitchell.com> 486652284Sobrien 486752284Sobrien * pt.c (print_template_context): Don't abort when instantiating a 486852284Sobrien synthesized method. 486952284Sobrien 487052284Sobrien * decl.c (grokdeclarator): Issue errors on namespace qualified 487152284Sobrien declarators in parameter lists or in class scope. 487252284Sobrien 487352284Sobrien1998-08-09 Mark Mitchell <mark@markmitchell.com> 487452284Sobrien 487550397Sobrien * pt.c (check_explicit_specialization): Don't abort on bogus 487650397Sobrien explicit instantiations. 487750397Sobrien 487852284Sobrien1998-08-07 Mark Mitchell <mark@markmitchell.com> 487950397Sobrien 488052284Sobrien * typeck.c (require_complete_type): Use complete_type_or_else. 488152284Sobrien (complete_type_or_else): Always return NULL_TREE on failure, as 488252284Sobrien documented. 488350397Sobrien 488452284Sobrien * pt.c (tsubst_aggr_type): Prototype. 488552284Sobrien (tsubst_decl): New function, split out from tsubst. Set 488652284Sobrien input_filename and lineno as appropriate. 488752284Sobrien (pop_tinst_level): Restore the file and line number saved in 488852284Sobrien push_tinst_level. 488952284Sobrien (instantiate_class_template): Set input_filename and lineno as 489052284Sobrien appropriate. 489152284Sobrien (tsubst): Move _DECL processing to tsubst_decl. Make sure the 489252284Sobrien context for a TYPENAME_TYPE is complete. 489350397Sobrien 489452284Sobrien * decl2.c (grokbitfield): Issue errors on bitfields declared with 489552284Sobrien function type. 489652284Sobrien (do_dtors): As in do_ctors, pretend to be a member of the same 489752284Sobrien class as a static data member while generating a call to its 489852284Sobrien destructor. 489950397Sobrien 490052284Sobrien * cvt.c (cp_convert_to_pointer): Handle NULL pointer 490152284Sobrien conversions, even in complex virtual base class hierarchies. 490252284Sobrien 490352284Sobrien1998-08-06 Mark Mitchell <mark@markmitchell.com> 490452284Sobrien 490552284Sobrien * cp-tree.h (ENUM_TEMPLATE_INFO): New macro. 490652284Sobrien (TYPE_TEMPLATE_INFO): Likewise. 490752284Sobrien (SET_TYPE_TEMPLATE_INFO): Likewise. 490852284Sobrien (ENUM_TI_TEMPLATE): Likewise. 490952284Sobrien (ENUM_TI_ARGS): Likewise. 491052284Sobrien (lookup_nested_type_by_name): Remove. 491152284Sobrien * decl.c (maybe_process_template_type_declaration): Handle enums. 491252284Sobrien (start_enum): Don't check for primary-template enum declarations 491352284Sobrien here. 491452284Sobrien (finish_enum): Clean up, document. Make sure template enum 491552284Sobrien constants get the correct type. 491652284Sobrien (build_enumerator): Copy initializers for template enumerations, 491752284Sobrien too. 491852284Sobrien (grok_enum_decls): Document. 491952284Sobrien * lex.c (do_identifier): Document use of LOOKUP_EXPR a bit 492052284Sobrien better. Build LOOKUP_EXPRs for local variables, even if they are 492152284Sobrien TREE_PERMANENT. 492252284Sobrien * pt.c (tsubst_enum): Remove field_chain parameter. 492352284Sobrien (template_class_depth): Include the depth of surrounding function 492452284Sobrien contexts. 492552284Sobrien (push_template_decl): Check for primary-template enum declarations 492652284Sobrien here. Deal with enumeration templates. 492752284Sobrien (lookup_template_class): Likewise. 492852284Sobrien (for_each_template_parm): Likewise. 492952284Sobrien (instantiate_class_template): Don't call tsubst_enum directly, 493052284Sobrien call tsubst instead, to instantiate enums. Deal with all 493152284Sobrien field_chain issues here, not in tsubst_enum. 493252284Sobrien (lookup_nested_type_by_name): Remove. 493352284Sobrien (tsubst_aggr_type): Revise handling of enumeration types. 493452284Sobrien (tsubst): Likewise. 493552284Sobrien (tsubst_copy): Likewise. 493652284Sobrien (tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs. 493752284Sobrien 493852284Sobrien1998-08-04 Mark Mitchell <mark@markmitchell.com> 493952284Sobrien 494052284Sobrien * decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it 494152284Sobrien uses template parameters. 494252284Sobrien * method.c (build_template_parm_names): Use the full set of 494352284Sobrien template arguments for tsubst'ing. 494452284Sobrien (build_overload_identifier): Pass the full set of template 494552284Sobrien arguments to build_template_parm_names, not just the 494652284Sobrien innermost_args. 494752284Sobrien * pt.c (TMPL_ARGS_DEPTH): Define using 494852284Sobrien TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity. 494952284Sobrien (NUM_TMPL_ARGS): New macro. 495052284Sobrien (add_outermost_template_args): Deal with the case where the outer 495152284Sobrien args will be completely discarded. 495252284Sobrien (coerce_template_parms): Use the full set of template arguments 495352284Sobrien for tsubst'ing. Simplify. Add some asserts. Improve 495452284Sobrien error messages. 495552284Sobrien (lookup_template_class): Pass the full set of template arguments 495652284Sobrien to coerce_template_parms. 495752284Sobrien (tsubst): Add assertion. 495852284Sobrien (do_type_instantiation): Don't instantiate member template 495952284Sobrien classes. 496052284Sobrien 496152284Sobrien * init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose 496252284Sobrien name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE. 496352284Sobrien 496452284Sobrien1998-08-03 Jason Merrill <jason@yorick.cygnus.com> 496552284Sobrien 496652284Sobrien * method.c (set_mangled_name_for_decl): Change return type to void. 496752284Sobrien 496852284Sobrien * decl.c (lookup_name_real): A namespace-level decl takes priority 496952284Sobrien over implicit typename. Avoid doing the same lookup twice. 497052284Sobrien 497152284Sobrien * search.c (dependent_base_p): New fn. 497252284Sobrien (dfs_pushdecls, dfs_compress_decls): Use it. 497352284Sobrien 497452284Sobrien * typeck.c (get_member_function_from_ptrfunc): Don't try to handle 497552284Sobrien virtual functions if the type doesn't have any. 497652284Sobrien 497752284Sobrien1998-08-03 Mark Mitchell <mark@markmitchell.com> 497852284Sobrien 497952284Sobrien * decl2.c (grokfield): Don't mangle the name of a TYPE_DECL if it 498052284Sobrien uses template parameters. 498152284Sobrien 498252284Sobrien1998-08-02 Mark Mitchell <mark@markmitchell.com> 498352284Sobrien 498452284Sobrien * cp-tree.def (LOOKUP_EXPR): Document. Remove second argument. 498552284Sobrien * cp-tree.h (DECL_TI_TEMPLATE): Improve documentation. 498652284Sobrien * lex.c (do_identifier): Don't use a second argument, or a type, 498752284Sobrien when building LOOKUP_EXPRs. 498852284Sobrien (do_identifier): Likewise. 498952284Sobrien (do_scoped_id): Likewise. 499052284Sobrien * method.c (hack_identifier): Improve error message. 499152284Sobrien * pt.c (lookup_template_function): Don't needlessly call 499252284Sobrien copy_to_permanent or build_min. 499352284Sobrien (tsubst_copy): Remove #if 0'd code. tsubst into LOOKUP_EXPRs if 499452284Sobrien necessary. 499552284Sobrien (do_decl_instantiation): Improve error message. 499652284Sobrien * tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy. 499752284Sobrien (build_min): Copy the type to the permanent obstack, too. 499852284Sobrien 499952284Sobrien1998-08-01 Jason Merrill <jason@yorick.cygnus.com> 500052284Sobrien 500152284Sobrien * init.c (init_init_processing): Remove BI* handling. 500252284Sobrien (build_builtin_call): Remove. 500352284Sobrien (build_builtin_delete_call): New fn. 500452284Sobrien (build_delete): Use it. 500552284Sobrien 500652284Sobrien1998-07-31 Mark Mitchell <mark@markmitchell.com> 500752284Sobrien 500852284Sobrien * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro. 500952284Sobrien (maybe_check_template_type): New function. 501052284Sobrien * decl.c (maybe_process_template_type_declaration): New function, 501152284Sobrien split out from pushtag Call maybe_check_template_type. 501252284Sobrien (pushtag): Use it. Use PROCESSING_REAL_TEMPLATE_DECL_P. 501352284Sobrien (xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P. 501452284Sobrien * friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P. 501552284Sobrien * pt.c (template_class_depth_real): Generalization of ... 501652284Sobrien (template_class_depth): Use it. 501752284Sobrien (register_specialization): Use duplicate_decls for duplicate 501852284Sobrien declarations of specializations. 501952284Sobrien (maybe_check_template_type): New function. 502052284Sobrien (push_template_decl_real): Fix comment. 502152284Sobrien (convert_nontype_argument): Likewise. 502252284Sobrien (lookup_template_class): Likewise. Avoid an infinite loop on 502352284Sobrien erroneous code. 502452284Sobrien (tsubst_friend_function): Fix comment. 502552284Sobrien (tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is 502652284Sobrien an IDENTIFIER_NODE. 502752284Sobrien * semantics.c (begin_function_definition): Use 502852284Sobrien reset_specialization to note that template headers don't apply 502952284Sobrien directly to declarations after the opening curly for a function. 503052284Sobrien 503150397Sobrien1998-07-29 Jason Merrill <jason@yorick.cygnus.com> 503250397Sobrien 503350397Sobrien * decl.c (push_overloaded_decl): Use current_namespace instead of 503450397Sobrien DECL_CONTEXT (decl) to determine where we go. 503550397Sobrien 503650397Sobrien * decl.c (lookup_name_real): Fix typo. 503750397Sobrien 503852284Sobrien1998-07-28 Mark Mitchell <mark@markmitchell.com> 503952284Sobrien 504052284Sobrien * friend.c (is_friend): Be lenient with member functions to deal 504152284Sobrien with nested friends. 504252284Sobrien 504350397Sobrien1998-07-28 Jason Merrill <jason@yorick.cygnus.com> 504450397Sobrien 504550397Sobrien * class.c (finish_struct_1): Convert integer_zero_node to 504652284Sobrien ssizetype before passing it to set_rtti_entry. 504750397Sobrien * typeck2.c (initializer_constant_valid_p): Allow conversion of 0 504850397Sobrien of any size to a pointer. 504950397Sobrien 505052284Sobrien1998-07-27 Mark Mitchell <mark@markmitchell.com> 505152284Sobrien 505252284Sobrien * cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove. 505352284Sobrien (build_template_decl_overload): Remove. 505452284Sobrien (set_mangled_name_for_decl): New function. 505552284Sobrien (innermost_args): Remove is_spec parameter. 505652284Sobrien (most_specialized, most_specialized_class): Remove declarations. 505752284Sobrien (lookup_template_class): Add entering_scope parameter. 505852284Sobrien (maybe_process_partial_specialization): New function. 505952284Sobrien (finish_template_decl): Likewise. 506052284Sobrien (finish_template_type): Likewise. 506152284Sobrien * class.c (finish_struct): Clean up processing of member template 506252284Sobrien specializations. 506352284Sobrien * decl.c (pushtag): Fix formatting. 506452284Sobrien (lookup_tag): Improve handling of pseudo-global levels. 506552284Sobrien (make_typename_type): Adjust call to lookup_template_class. 506652284Sobrien (shadow_tag): Use maybe_process_partial_specialization. 506752284Sobrien (xref_tag): Improve handling of member friends. 506852284Sobrien (start_function): Call push_nested_class before 506952284Sobrien push_template_decl. Don't call push_template_decl for 507052284Sobrien specializations. 507152284Sobrien * decl2.c (grok_x_components): Don't call xref_tag for 507252284Sobrien template instantiations. Handle UNION_TYPEs like RECORD_TYPEs. 507352284Sobrien (grokclassfn): Use set_mangled_name_for_decl. 507452284Sobrien (arg_assoc_class): Adjust call to innermost_args. 507552284Sobrien (mark_used): Don't call instantiate_decl for a TEMPLATE_DECL. 507652284Sobrien * error.c (dump_function_name): Improve printing of template 507752284Sobrien function names. 507852284Sobrien * friend.c (is_friend): Don't compare types of decls to determine 507952284Sobrien friendship, unless flag_guiding_decls. 508052284Sobrien (make_friend_class): Partial specializations cannot be friends. 508152284Sobrien (do_friend): Use set_mangled_name_for_decl. Call 508252284Sobrien push_template_decl_real instead of push_template_decl. 508352284Sobrien * method.c (build_decl_overload_real): Remove prototype. Give it 508452284Sobrien external linkage. 508552284Sobrien (build_overload_identififer): Adjust call to innermost_args. 508652284Sobrien (build_template_decl_overload): Remove. 508752284Sobrien (set_mangled_name_for_decl): New function. 508852284Sobrien * parse.y (.finish_template_type): New non-terminal. 508952284Sobrien (template_def): Use finish_template_decl. Use template_extdef 509052284Sobrien instead of extdef. 509152284Sobrien (template_extdef, template_datadef): New non-terminals, containing 509252284Sobrien only those rules for things which can be templates. 509352284Sobrien (datadef): Tidy. 509452284Sobrien (template_type, self_template_type): Use .finish_template_type. 509552284Sobrien (named_class_head): Use maybe_process_partial_specialization. 509652284Sobrien * pt.c (mangle_class_name_for_template): Remove context parameter. 509752284Sobrien (get_class_bindings): Remove outer_args parameter. 509852284Sobrien (complete_template_args): Remove. 509952284Sobrien (add_outermost_template_args): New function. 510052284Sobrien (register_specialization): Return the specialization. 510152284Sobrien (unregister_specialization): New function. 510252284Sobrien (tsubst_template_parms): Likewise. 510352284Sobrien (most_specialized, most_specialized_class): Prototype here as 510452284Sobrien static. 510552284Sobrien (original_template): Rename to most_general_template. 510652284Sobrien (tsubst_template_parms): New function. 510752284Sobrien (set_mangled_name_for_template_decl): Likewise. 510852284Sobrien (TMPL_ARGS_DEPTH): New macro. 510952284Sobrien (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust. 511052284Sobrien (TMPL_ARGS_LEVEL): New macro. 511152284Sobrien (SET_TMPL_ARGS_LEVEL): Likewise. 511252284Sobrien (TMPL_ARG): Likewise. 511352284Sobrien (SET_TMPL_ARG): Likewise. 511452284Sobrien (TMPL_ARGS_DEPTH): Likewise. 511552284Sobrien (finish_member_template_decl): Use finish_template_decl. 511652284Sobrien (maybe_process_partial_specialization): New function, split out 511752284Sobrien from tsubst. 511852284Sobrien (inline_needs_template_parms): Use TMPL_PARMS_DEPTH. 511952284Sobrien (maybe_begin_member_template_processing): Use new macros. 512052284Sobrien (is_member_template): Likewise. 512152284Sobrien (is_member_template_class): Likewise. 512252284Sobrien (add_to_template_args): Likewise. Deal with multiple levels of 512352284Sobrien args. 512452284Sobrien (maybe_process_partial_specialization): New function. 512552284Sobrien (retrieve_specialization): Add consistency check. 512652284Sobrien (determine_specialization): Return full argument list. 512752284Sobrien (check_explicit_specialization): Tweak friend handling. Use full 512852284Sobrien argument lists. Simplify. 512952284Sobrien (current_template_args): Use new macros. 513052284Sobrien (push_template_decl_real): Change ill-named mainargs to specargs. 513152284Sobrien Check that a partial specialization actually specializes at least 513252284Sobrien one parameter. Improve friend handling. Modify for full 513352284Sobrien template arguments. 513452284Sobrien (classtype_mangled_name): Don't mangle the names of 513552284Sobrien specializations. 513652284Sobrien (lookup_template_class): Add entering_scope parameter. Use it to 513752284Sobrien avoid finding a template type when an instantiation is required. 513852284Sobrien Simplify. Use full template arguments. 513952284Sobrien (tsubst_friend_function): Use unregister_specialization. Use new 514052284Sobrien macros. Use full template arguments. 514152284Sobrien (tsubst_friend_class): Substitute, using tsubst_template_parms, 514252284Sobrien into the template parameters before passing them to 514352284Sobrien redeclare_class_template. 514452284Sobrien (instantiate_class_template): Simplify. Use full template 514552284Sobrien arguments. Adjust calls to get_class_bindings. Use 514652284Sobrien SET_IDENTIFIER_TYPE_VALUE where needed. Improve friend handling. 514752284Sobrien (innermost_args): Use new macros. 514852284Sobrien (tsubst_aggr_type): New function, split out from tsubst. 514952284Sobrien (tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling 515052284Sobrien conventions for lookup_template_class. Refine handling of partial 515152284Sobrien instantiations. Remove calls to complete_template_args. 515252284Sobrien Simplify. Add consistency checks. Use set_mangled_name_for_decl 515352284Sobrien and set_mangled_name_for_template_decl. 515452284Sobrien (tsubst_copy): Use tsubst_aggr_type. 515552284Sobrien (instantiate_template): Use full template arguments. 515652284Sobrien (more_specialized): Improve formatting. 515752284Sobrien (more_specialized_class): Adjust calls to get_class_bindings. 515852284Sobrien (get_bindings_real): Don't call complete_template_args. 515952284Sobrien (most_specialized): Don't overwrite input; create a new list. 516052284Sobrien (most_specialized_class): Use most_general_template. 516152284Sobrien (regenerate_decl_from_template): Use unregister_specialization. 516252284Sobrien Use full template arguments. 516352284Sobrien (instantiate_decl): Use full template arguments. 516452284Sobrien (set_mangled_name_for_template_decl): New function. 516552284Sobrien * semantics.c (begin_class_definition): Use 516652284Sobrien maybe_process_partial_specialization. 516752284Sobrien (finish_member_class_template): New function. 516852284Sobrien (finish_template_decl): Likewise. 516952284Sobrien (finish_template_type): Likewise. 517052284Sobrien (typeck.c): Don't crash after issuing a compiler_error. 517152284Sobrien * Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict. 517252284Sobrien 517350397Sobrien1998-07-27 Jason Merrill <jason@yorick.cygnus.com> 517450397Sobrien 517550397Sobrien * typeck2.c (build_functional_cast): Handle default-initialization. 517650397Sobrien 517750397Sobrien * call.c (build_over_call): Pass 1 to popclass. 517850397Sobrien 517950397Sobrien * parse.y (direct_notype_declarator): Add precedence declaration 518050397Sobrien to notype_unqualified_id case. 518150397Sobrien * Makefile.in (EXPECT): Adjust. 518250397Sobrien 518350397Sobrien * tree.c (ovl_member): Fix for single function in OVL. 518450397Sobrien 518552284Sobrien1998-07-27 Dave Brolley <brolley@cygnus.com> 518652284Sobrien 518752284Sobrien * c-lex.c (yylex): Fix boundary conditions in character literal and 518852284Sobrien string literal loops. 518952284Sobrien 519050397Sobrien1998-07-24 Jason Merrill <jason@yorick.cygnus.com> 519150397Sobrien 519250397Sobrien * decl.c (lookup_name_real): OK, do return the from_obj value 519350397Sobrien unless got_object depends on template parms. 519450397Sobrien 519550397Sobrien * parse.y (nested_name_specifier_1): Pull out the TYPE_MAIN_VARIANT. 519650397Sobrien 519750397Sobrien * pt.c (coerce_template_parms): Also complain about local enums. 519850397Sobrien 519950397Sobrien * cp-tree.h: Add prototype for set_identifier_local_value. 520050397Sobrien * decl.c (set_identifier_local_value_with_scope): Make static, 520150397Sobrien prototype. 520250397Sobrien * search.c (covariant_return_p): Likewise. 520350397Sobrien * except.c (build_terminate_handler, alloc_eh_object): Likewise. 520450397Sobrien 520550397Sobrien * call.c (build_method_call): Only pull out the type of a destructor 520650397Sobrien if it's a template type parm. 520750397Sobrien * decl.c (lookup_name_real): Never return the from_obj value. 520850397Sobrien 520950397Sobrien1998-07-23 Jason Merrill <jason@yorick.cygnus.com> 521050397Sobrien 521150397Sobrien * except.c (process_start_catch_block_old): Call start_decl_1 for 521250397Sobrien catch parm. 521350397Sobrien * decl.c (start_decl_1): Avoid duplicate error. 521450397Sobrien 521550397Sobrien * init.c (expand_default_init): Only perform the initialization if 521650397Sobrien it will do something. 521750397Sobrien 521850397Sobrien1998-07-23 H.J. Lu (hjl@gnu.org) 521950397Sobrien 522050397Sobrien * parse.y (base_class): Check for invalid base class. 522150397Sobrien 522250397Sobrien1998-07-23 Jason Merrill <jason@yorick.cygnus.com> 522350397Sobrien 522450397Sobrien * decl2.c (import_export_template): Fold in... 522550397Sobrien (import_export_class): ...to here. Handle dllimport/export. 522650397Sobrien 522750397Sobrien * class.c (build_vtable): Pass at_eof to import_export_vtable. 522850397Sobrien (prepare_fresh_vtable): Likewise. 522950397Sobrien * decl2.c (import_export_class): Split out... 523050397Sobrien (finish_prevtable_vardecl): From here. 523150397Sobrien * class.c (finish_struct_1): Call import_export_class if at_eof. 523250397Sobrien 523352284Sobrien * decl.c (start_function): #if 0 mysterious code I wrote and have 523450397Sobrien forgotten why. 523550397Sobrien * rtti.c (get_tinfo_fn): If this is for a class type, set 523650397Sobrien DECL_CONTEXT. 523750397Sobrien 523850397Sobrien1998-07-22 Jason Merrill <jason@yorick.cygnus.com> 523950397Sobrien 524050397Sobrien * inc/exception: Change terminate and unexpected to (). 524150397Sobrien 524250397Sobrien * parse.y (named_class_head_sans_basetype_defn): A 524350397Sobrien named_class_head_sans_basetype followed by '{' or ':' is a defn. 524450397Sobrien 524550397Sobrien1998-07-21 Jason Merrill <jason@yorick.cygnus.com> 524650397Sobrien 524750397Sobrien * tree.c (canonical_type_variant): New fn to handle arrays. 524850397Sobrien * cp-tree.h (CANONICAL_TYPE_VARIANT): Remove. 524950397Sobrien * pt.c (unify, default case): Also fold arg. Fix array bounds case. 525050397Sobrien * method.c (process_overload_item): Use build_overload_value for 525150397Sobrien arrays. 525250397Sobrien 525352284Sobrien1998-07-20 Dave Brolley <brolley@cygnus.com> 525452284Sobrien 525552284Sobrien * lex.c (mbchar.h): #include it. 525652284Sobrien (GET_ENVIRONMENT): New macro. 525752284Sobrien (init_parse): Set character set based on LANG environment variable. 525852284Sobrien (real_yylex): Handle multibyte characters in character literals. 525952284Sobrien (real_yylex): Handle multibyte characters in string literals. 526052284Sobrien 526150397Sobrien1998-07-19 Jason Merrill <jason@yorick.cygnus.com> 526250397Sobrien 526350397Sobrien * lex.c (do_identifier): Look for class value even if we don't 526450397Sobrien have a global value. Do implicit declaration if parsing is 2. 526550397Sobrien * semantics.c (finish_call_expr): Pass 2 if we're doing Koenig 526650397Sobrien lookup. 526750397Sobrien 526850397Sobrien1998-07-19 Mark Mitchell <mark@markmitchell.com> 526950397Sobrien 527050397Sobrien * decl.c (pushtag): Revert previous change. 527150397Sobrien * pt.c (lookup_template_class): Don't put out debugging 527250397Sobrien information for types that use template parameters. 527350397Sobrien 527450397Sobrien * decl.c (pushtag): Don't put out debugging information for 527550397Sobrien compiler-generated typedefs. 527652284Sobrien 527750397Sobrien * error.c (dump_type_real): Don't crash when presented with 527850397Sobrien intQI_type_node or the like. 527918334Speter 528050397Sobrien * semantics.c (finish_translation_unit): Fix spelling error in 528150397Sobrien comment. 528218334Speter 528350397Sobrien1998-07-17 Jason Merrill <jason@yorick.cygnus.com> 528418334Speter 528550397Sobrien * decl.c (lookup_name_real): Pull out single function here. 528650397Sobrien (select_decl): Not here. 528750397Sobrien (unqualified_namespace_lookup): Use CP_DECL_CONTEXT. 528818334Speter 528950397Sobrien * decl.c (qualify_lookup): Tweak again. 529018334Speter 529150397Sobrien * pt.c (lookup_template_class): Don't mess with the context of the 529250397Sobrien instantiation. 529350397Sobrien * decl2.c (current_decl_namespace): Remove special handling for 529450397Sobrien templates. 529518334Speter 529650397Sobrien * pt.c (tsubst, case FUNCTION_DECL): Fix getting complete args for 529750397Sobrien a member template specialization. 529818334Speter 529950397Sobrien * tree.c (ovl_member): Use decls_match to compare functions. 530050397Sobrien * decl.c (decls_match): Check the context of a function. 530118334Speter 530250397Sobrien * parse.y (primary): Use notype_unqualified_id instead of IDENTIFIER 530350397Sobrien in Koenig lookup support rules. 530450397Sobrien * semantics.c (finish_call_expr): Handle the new cases. 530518334Speter 530650397Sobrien * typeck.c (build_x_function_call): Handle overloaded methods. 530718334Speter 530850397Sobrien * decl.c (grokvardecl): Don't call build_static_name for extern "C". 530918334Speter 531050397Sobrien1998-07-16 Mark Mitchell <mark@markmitchell.com> 531118334Speter 531250397Sobrien * semantics.c (finish_object_call_expr): Revert previous change. 531350397Sobrien * call.c (build_new_method_call): Likewise. Instead, convert 531450397Sobrien TYPE_DECLs to IDENTIFIERs here, in the presence of templates. 531518334Speter 531650397Sobrien1998-07-16 Jason Merrill <jason@yorick.cygnus.com> 531718334Speter 531850397Sobrien * decl.c (qualify_lookup): Handle templates. 531918334Speter 532050397Sobrien * decl2.c (do_using_directive): Don't pass ancestor. 532150397Sobrien * decl.c (push_using_directive): Calculate ancestor. 532218334Speter 532350397Sobrien * decl2.c (do_nonmember_using_decl): Allow for type shadowing. 532450397Sobrien * decl.c (pushdecl): Move type shadowing handling from here... 532550397Sobrien (duplicate_decls): ...to here. 532650397Sobrien * decl.c (set_identifier_local_value_with_scope): New fn. 532750397Sobrien (pushdecl): Use it. 532850397Sobrien (set_identifier_local_value, lookup_type_current_level): New fns. 532950397Sobrien * decl2.c (do_local_using_decl): Handle types and binding level 533050397Sobrien stuff properly. 533118334Speter 533250397Sobrien * init.c (build_offset_ref): Don't call mark_used on an OVERLOAD. 533350397Sobrien * decl.c (select_decl): Extract a lone function from an OVERLOAD. 533450397Sobrien (lookup_namespace_name): Likewise. 533550397Sobrien * typeck.c (build_unary_op): Not here anymore. 533618334Speter 533750397Sobrien * decl2.c (do_class_using_decl): Make sure we get an identifier. 533850397Sobrien * class.c (handle_using_decl): Ignore TYPE_DECLs. 533918334Speter 534050397Sobrien * decl.c (qualify_lookup): New fn. 534150397Sobrien (lookup_name_real): Use it. 534218334Speter 534350397Sobrien1998-07-16 Martin v. Loewis <loewis@informatik.hu-berlin.de> 534418334Speter 534550397Sobrien * decl2.c (add_using_namespace): When directly using a namespace 534650397Sobrien that was indirect before, promote it. 534718334Speter 534850397Sobrien * cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES, 534950397Sobrien LOOKUP_PREFER_BOTH, LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY, 535050397Sobrien LOOKUP_QUALIFIERS_ONLY, LOOKUP_TEMPLATES_EXPECTED): New macros. 535150397Sobrien * decl.c (select_decl): Replace two flag parameters by one. 535250397Sobrien (unqualified_namespace_lookup): Likewise, pass flag. 535350397Sobrien (lookup_flags): New function. 535450397Sobrien (lookup_name_real): Compute flags, pass them. 535550397Sobrien (lookup_namespace_name): Call with zero-flag. 535650397Sobrien * decl2.c (ambiguous_decl): Add flag parameter, complain only 535750397Sobrien according to flags. 535850397Sobrien (lookup_using_namespace, qualified_lookup_using_namespace): 535950397Sobrien Add flag parameter, pass them through. 536050397Sobrien * lex.c (do_scoped_id): Call with zero-flag. 536118334Speter 536250397Sobrien1998-07-16 Jason Merrill <jason@yorick.cygnus.com> 536318334Speter 536450397Sobrien * typeck.c (convert_for_assignment): Use comptypes. 536518334Speter 536650397Sobrien1998-07-16 Mark Mitchell <mark@markmitchell.com> 536718334Speter 536850397Sobrien * semantics.c (finish_object_call_expr): Move test for the 536950397Sobrien function called being a TYPE_DECL to ... 537050397Sobrien * call.c (build_new_method_call): Here. 537118334Speter 537250397Sobrien1998-07-15 Jason Merrill <jason@yorick.cygnus.com> 537318334Speter 537450397Sobrien * decl2.c (arg_assoc_class): Also look at template arguments, if any. 537550397Sobrien (arg_assoc): Handle error_mark_node and multiple levels of TREE_LIST. 537618334Speter 537750397Sobrien * lex.c (looking_for_typename): Don't initialize. 537818334Speter 537950397Sobrien * decl2.c (ambiguous_decl): Clarify error message. 538018334Speter 538150397Sobrien * decl.c (push_using_directive): Iterate over namespaces used 538250397Sobrien indirectly. 538318334Speter 538450397Sobrien1998-07-15 Martin v. L�wis <loewis@informatik.hu-berlin.de> 538518334Speter 538650397Sobrien * decl2.c (add_using_namespace): Iterate over namespaces used 538750397Sobrien indirectly. 538818334Speter 538950397Sobrien * decl.c (lookup_name_real): Accept namespace aliases as locals. 539050397Sobrien (cat_namespace_levels): Ignore aliases. 539150397Sobrien (duplicate_decls): Ignore duplicate aliases. 539250397Sobrien * decl2.c (do_namespace_alias): Process block level namespace 539352284Sobrien aliases. Store alias with pushdecl. Remove odr errors. 539450397Sobrien * parse.y (namespace_alias): New non-terminal. 539550397Sobrien (extdef): Use it. 539618334Speter 539750397Sobrien1998-07-15 Jason Merrill <jason@yorick.cygnus.com> 539818334Speter 539950397Sobrien * decl2.c (arg_assoc_type): Handle METHOD_TYPE like FUNCTION_TYPE. 540050397Sobrien Handle TEMPLATE_TYPE_PARM. 540150397Sobrien (arg_assoc): Rewrite. 540218334Speter 540350397Sobrien * pt.c (complete_template_args): Don't look at the context unless 540450397Sobrien we have to. 540518334Speter 540650397Sobrien * method.c (build_decl_overload_real): Fix namespace handling. 540718334Speter 540850397Sobrien * typeck.c (build_unary_op): Extract a lone function from an 540950397Sobrien OVERLOAD. 541018334Speter 541150397Sobrien * call.c (build_scoped_method_call): Handle getting a namespace 541250397Sobrien for basetype in a destructor call. 541350397Sobrien (check_dtor_name): Handle enums. 541418334Speter 541550397Sobrien * parse.y (using_directive): New nonterminal. 541650397Sobrien (extdef, simple_stmt): Use it. 541718334Speter 541850397Sobrien1998-07-14 Martin von L�wis <loewis@informatik.hu-berlin.de> 541918334Speter 542050397Sobrien * decl2.c (add_function): Move error message ... 542150397Sobrien (arg_assoc_namespace): ... from here. 542218334Speter 542350397Sobrien1998-07-14 Jason Merrill <jason@yorick.cygnus.com> 542418334Speter 542550397Sobrien * parse.y (namespace_qualifier): Fix multiple level handling. 542650397Sobrien * decl2.c (namespace_ancestor): Use CP_DECL_CONTEXT. 542750397Sobrien (arg_assoc): Don't skip the first argument of a function. 542818334Speter 542952284SobrienTue Jul 14 20:09:22 1998 Jeffrey A Law (law@cygnus.com) 543052284Sobrien 543152284Sobrien * search.c (my_tree_cons): Clean up. 543252284Sobrien 543352284Sobrien1998-07-14 Jason Merrill <jason@yorick.cygnus.com> 543452284Sobrien 543550397Sobrien * call.c (joust): Don't warn about "confusing" conversions to the 543650397Sobrien same type. 543718334Speter 543850397Sobrien1998-07-14 Martin von L�wis <loewis@informatik.hu-berlin.de> 543918334Speter 544050397Sobrien * class.c (push_nested_class): Complain about namespaces. 544150397Sobrien * decl.c (start_decl): Enter the object's namespace. 544250397Sobrien (cp_finish_decl): Leave it. 544350397Sobrien (grokdeclarator): Likewise. 544450397Sobrien * decl2.c (check_decl_namespace): New function. 544550397Sobrien (finish_file): Call it. 544650397Sobrien * parse.y (complex_direct_notype_declarator): Set complexity 544750397Sobrien of namespace-qualified ids to -1, enter the namespace. 544818334Speter 544950397Sobrien * method.c (build_template_decl_overload): Expect _DECL as first 545052284Sobrien parameter. Put context temporarily into current_namespace. 545150397Sobrien * pt.c (check_explicit_specialization): Change caller. 545250397Sobrien (tsubst): Likewise. 545318334Speter 545450397Sobrien * init.c (build_offset_ref): Call mark_used and 545550397Sobrien convert_from_reference for namespace members. 545618334Speter 545752284SobrienMon Jul 13 23:25:28 1998 Martin von L�wis <loewis@informatik.hu-berlin.de> 545818334Speter 545950397Sobrien * search.c (my_tree_cons): The bitfield is at index 2. 546018334Speter 546150397SobrienMon Jul 13 17:21:01 1998 Nick Clifton <nickc@cygnus.com> 546218334Speter 546350397Sobrien * lang-options.h: Format changed to work with new --help support 546450397Sobrien in gcc/toplev.c 546552284Sobrien 546650397Sobrien1998-07-12 Martin von L�wis <loewis@informatik.hu-berlin.de> 546718334Speter 546850397Sobrien * decl2.c (build_expr_from_tree): Change calls of do_identifier. 546950397Sobrien Do Koenig lookup in CALL_EXPR. 547050397Sobrien (arg_assoc): Handle error_mark. 547150397Sobrien * lex.c (is_global): New function. 547250397Sobrien (do_identifier): Expect arguments for Koenig lookup. 547350397Sobrien * parse.y (primary): Add rules for calls of unqualified function calls. 547450397Sobrien (do_id): Change call of do_identifier. 547550397Sobrien * pt.c (finish_stmt_expr): Likewise. 547650397Sobrien * semantics.c (finish_id_expr): Likewise. 547750397Sobrien (finish_call_expr): Add integer parameter to indicate 547850397Sobrien argument-dependent lookup. 547918334Speter 548050397Sobrien * decl.c (struct binding_level): New field using_directives. 548150397Sobrien (push_using_decl): Not sorry anymore. 548250397Sobrien (push_using_directive): New function. 548350397Sobrien (lookup_tag): Use CP_DECL_CONTEXT to iterate. 548450397Sobrien (unqualified_namespace_lookup): New function, code from ... 548550397Sobrien (lookup_name_real): ... here. 548650397Sobrien * decl2.c (lookup_using_namespace): Pass using list instead of 548750397Sobrien initial scope. 548850397Sobrien (validate_nonmember_using_decl): New function. 548950397Sobrien (do_nonmember_using_decl): New function. 549050397Sobrien (do_toplevel_using_decl): Use them. 549150397Sobrien (do_local_using_decl): New function. 549250397Sobrien (do_using_directive): Support block-level directives. 549350397Sobrien * parse.y (simple_stmt): Support using declarations and 549450397Sobrien directives. 549550397Sobrien (namespace_qualifier, namespace_using_decl): New non-terminals. 549618334Speter 549750397Sobrien * xref.c (classname): New function. 549850397Sobrien (GNU_xref_hier): Change class and base parameters to tree. 549950397Sobrien * decl.c (xref_baseypes): Change caller. 550050397Sobrien * friend.c (make_friend_class): Likewise. 550118334Speter 550252284Sobrien1998-07-12 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 550318334Speter 550452284Sobrien * typeck.c (comptypes, case TEMPLATE_TEMPLATE_PARM): Add parameter 550550397Sobrien comparison. 550618334Speter 550752284Sobrien * pt.c (for_each_template_parm, case TEMPLATE_DECL): If it is a 550850397Sobrien template template parameter, record its use. 550952284Sobrien (for_each_template_parm, case TEMPLATE_TEMPLATE_PARM): Traverse 551050397Sobrien its template arguments if exists. 551118334Speter 551250397Sobrien * pt.c (coerce_template_template_parms): New function equivalent 551350397Sobrien to coerce_template_parms when IS_TMPL_PARM is true. 551450397Sobrien (coerce_template_parms): Use it. Remove the IS_TMPL_PARM parameter, 551550397Sobrien all callers changed. 551618334Speter 551750397Sobrien (coerce_template_parms): Access ARGLIST properly when creating a 551850397Sobrien new vector. Only accept implicit TYPE_DECL as valid argument for 551950397Sobrien a template template parameter when it is a base class of 552050397Sobrien current_class_type. Don't display error message when COMPLAIN is 552150397Sobrien false. 552218334Speter 552352284Sobrien1998-07-12 Klaus Kaempf (kkaempf@progis.de) 552418334Speter 552552284Sobrien * repo.c (get_base_filename): Use file_name_nondirectory. 552652284Sobrien (open_repo_file): Likewise. 552750397Sobrien * cp-tree.h (file_name_nondirectory): Add prototype. 552818334Speter 552950397Sobrien1998-07-12 Jason Merrill <jason@yorick.cygnus.com> 553018334Speter 553150397Sobrien * friend.c (do_friend): Pull the identifier out of declarator. 553250397Sobrien Use cp_error and friends. 553352284Sobrien * decl2.c (qualified_lookup_using_namespace): Fix call to 553450397Sobrien purpose_member. 553550397Sobrien * decl.c (lookup_name_real): Don't call complete_type on a namespace. 553650397Sobrien (grokvardecl): Use DECL_CLASS_SCOPE_P. 553750397Sobrien * cvt.c (convert_pointer_to_real): Check for error_mark_node sooner. 553850397Sobrien * class.c (warn_hidden): Fix for OVERLOAD. 553950397Sobrien From grahams@rcp.co.uk: 554050397Sobrien * cp-tree.h (DEFARG_NODE_CHECK): New macro. 554152284Sobrien (DEFARG_LENGTH, DEFARG_POINTER): Use it. 554218334Speter 554350397SobrienSun Jul 12 01:20:57 1998 Jeffrey A Law (law@cygnus.com) 554418334Speter 554550397Sobrien * g++.1 (-traditional): Remove duplicated documentation. 554618334Speter 554750397Sobrien1998-07-11 Mark Mitchell <mark@markmitchell.com> 554818334Speter 554950397Sobrien * method.c (flush_repeats): Add nrepeats parameter. 555050397Sobrien (issue_nrepeats): Likewise. 555150397Sobrien (is_back_referenceable_type): New function. Don't back-reference 555250397Sobrien TEMPLATE_TYPE_PARMs as well as simple types like integers. 555350397Sobrien (build_mangled_name_for_type): Likewise. 555450397Sobrien (build_mangled_name_for_type_with_Gcode): Likewise. 555550397Sobrien (lasttype): Remove. 555650397Sobrien (nrepeats): Likewise. 555750397Sobrien (Nrepeats): Likewise. 555850397Sobrien (start_squangling): Don't clear the variables removed above. 555950397Sobrien (end_squangling): Likewise. 556050397Sobrien (flush_repeats): Tidy. Use nrepeats parameter rather than 556150397Sobrien Nrepeats global. 556250397Sobrien (issue_nrepeats): Likewise, but with nrepeats global. Use 556350397Sobrien is_backreferenceable_type. 556450397Sobrien (build_overload_nested_name): Tidy. Add comment. Use 556550397Sobrien build_mangled_name_for_type. 556650397Sobrien (build_underscore_int): Comment. 556750397Sobrien (build_overload_scope_ref): Use build_mangled_name_for_type. 556850397Sobrien (build_overload_int): Likewise. 556950397Sobrien (build_template_template_parm_names): Tidy. 557050397Sobrien (build_template_parm_names): Use build_mangled_name_for_type. 557150397Sobrien (build_overload_identifier): Add comments. 557250397Sobrien (build_mangled_name_for_type_with_Gcode): Split out from 557350397Sobrien build_mangled_name. 557450397Sobrien (build_mangled_name_for_type): Use it. 557550397Sobrien (build_mangled_name): Rework to use build_mangled_name_for_type 557650397Sobrien and to not use global nrepeats/Nrepeats. Tidy. 557750397Sobrien (process_modifiers): Tidy. 557850397Sobrien (check_btype): Use is_backreferenceable_type. Add comment. 557950397Sobrien Rename `node' to `type'. 558050397Sobrien (process_overload_item): Set numeric_output_need_bar here. 558150397Sobrien Use build_mangled_name_for_type. Tidy. 558250397Sobrien (build_decl_overload_real): Tidy. Don't use Nrepeats. Use 558350397Sobrien build_mangled_name_for_type. 558418334Speter 558550397Sobrien * pt.c (push_template_decl_real): Don't look at DECL_TEMPLATE_INFO 558650397Sobrien for TYPE_DECLs. 558718334Speter 558850397Sobrien1998-07-08 Vladimir N. Makarov <vmakarov@cygnus.com> 558918334Speter 559050397Sobrien * cp-tree.h (warn_long_long): Define. 559150397Sobrien * decl.c (grokdeclarator): Add flag `warn_long_long' as guard for 559250397Sobrien warning "ANSI C++ does not support `long long'". 559350397Sobrien * decl2.c (warn_long_long): Define. 559450397Sobrien (lang_decode_option): Parse -Wlong-long, -Wno-long-long options. 559518334Speter 559650397Sobrien1998-07-07 Jason Merrill <jason@yorick.cygnus.com> 559718334Speter 559850397Sobrien * decl.c (xref_tag): Handle attributes between 'class' and name. 559950397Sobrien * parse.y (aggr): Likewise. 560050397Sobrien * semantics.c (finish_class_definition): Likewise. 560150397Sobrien * Makefile.in (EXPECTED): Adjust. 560218334Speter 560350397Sobrien * cp-tree.h: Declare flag_optional_diags and warn_multichar. 560450397Sobrien * decl2.c: Define them. 560550397Sobrien (lang_decode_option): Handle them. 560650397Sobrien * lang-options.h: Add -foptional-diags. 560752284Sobrien * class.c (finish_struct): Don't complain about multiple meanings of 560850397Sobrien name if -fno-optional-diags. 560950397Sobrien * decl.c (pushdecl_class_level): Likewise. 561050397Sobrien * lex.c (real_yylex): Check warn_multichar. 561118334Speter 561250397Sobrien1998-07-06 Jason Merrill <jason@yorick.cygnus.com> 561318334Speter 561450397Sobrien * decl.c (lookup_tag): Use CP_DECL_CONTEXT. 561518334Speter 561650397Sobrien * tree.c (make_binfo): Fix length. 561718334Speter 561850397Sobrien1998-06-30 Benjamin Kosnik <bkoz@bliss.nabi.net> 561918334Speter 562052284Sobrien * decl2.c (lang_decode_option): Remove warn_template_debugging. 562152284Sobrien * lang-options.h: Likewise. 562218334Speter 562350397SobrienMon Jun 29 20:17:40 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 562418334Speter 562550397Sobrien * except.c (build_eh_type_type_ref): Remove unused variable `susp'. 562650397Sobrien (process_start_catch_block): Likewise for variables 562750397Sobrien `false_label_rtx', `call_rtx' and `return_value_rtx'. 562818334Speter 562950397Sobrien1998-06-29 Brendan Kehoe <brendan@cygnus.com> 563018334Speter 563150397Sobrien * tree.c (build_srcloc): Make sure we allocate this node on the 563250397Sobrien permanent obstack. 563318334Speter 563450397SobrienSat Jun 27 23:34:18 1998 Fred Fish <fnf@ninemoons.com> 563518334Speter 563650397Sobrien * g++spec.c (NEED_MATH_LIBRARY): Define to 1 if not already defined. 563750397Sobrien (lang_specific_driver): Initialize need_math with NEED_MATH_LIBRARY. 563850397Sobrien (lang_specific_driver): Only add -lm automatically if need_math is 563950397Sobrien nonzero. 564018334Speter 564150397SobrienSat Jun 27 12:22:56 1998 Jeffrey A Law (law@cygnus.com) 564218334Speter 564352284Sobrien * Make-lang.in (g++): Depend on mkstemp.o. Link in mkstemp.o 564418334Speter 564550397SobrienSat Jun 27 07:36:09 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 564618334Speter 564750397Sobrien * Makefile.in (EXPR_H): New dependency variable. 564850397Sobrien (decl2.o): Depend on $(EXPR_H). 564950397Sobrien (typeck.o): Likewise. 565050397Sobrien (init.o): Likewise. 565150397Sobrien (expr.o): Likewise. 565218334Speter 565350397Sobrien1998-06-25 Benjamin Kosnik <bkoz@lisa.cygnus.com> 565418334Speter 565550397Sobrien * decl.c (start_enum): Put local enums on permanent_obstack. 565618334Speter 565750397Sobrien1998-06-25 Mark Mitchell <mark@markmitchell.com> 565818334Speter 565950397Sobrien * cp-tree.h (c_get_alias_set): Declare. 566050397Sobrien * decl.c (init_decl_processing): Set lang_get_alias_set. 566118334Speter 566250397Sobrien1998-06-25 Andrew MacLeod <amacleod@cygnus.com> 566318334Speter 566450397Sobrien * cp-tree.h (mark_all_runtime_matches): Add function prototype. 566550397Sobrien * except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED 566652284Sobrien flag for all function decls which are in the exception table. 566750397Sobrien * exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match. 566850397Sobrien * decl2.c (finish_file): Call mark_all_runtime_matches to make sure 566950397Sobrien code is emitted for any referenced rtti function. 567018334Speter 567150397Sobrien1998-06-25 Dave Brolley <brolley@cygnus.com> 567218334Speter 567350397Sobrien * lang-specs.h: Use new | syntax to eliminate 567450397Sobrien string concatenation. 567518334Speter 567650397Sobrien1998-06-25 Jason Merrill <jason@yorick.cygnus.com> 567718334Speter 567850397Sobrien * cp-tree.h (CP_DECL_CONTEXT): New macro. 567950397Sobrien * decl2.c (is_namespace_ancestor, lookup_using_namespace): Use it. 568050397Sobrien * method.c (build_overload_nested_name): Likewise. 568150397Sobrien * sig.c (build_signature_pointer_or_reference_type): Don't set 568250397Sobrien DECL_CONTEXT. 568318334Speter 568450397Sobrien1998-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 568518334Speter 568650397Sobrien Set DECL_CONTEXT for globals to NULL_TREE instead of global_namespace. 568750397Sobrien * cp-tree.h (FROB_CONTEXT): New macro. 568850397Sobrien (DECL_MAIN_P): ::main should have a DECL_CONTEXT of NULL_TREE. 568950397Sobrien * decl.c (namespace_binding): Replace NULL_TREE with 569050397Sobrien global_namespace. 569150397Sobrien (set_namespace_binding, pop_namespace, lookup_name_real): Likewise. 569250397Sobrien * decl2.c (is_namespace_ancestor, lookup_using_namespace): 569350397Sobrien Likewise. 569450397Sobrien * decl.c (pushtag): Use FROB_CONTEXT. 569550397Sobrien (pushdecl, make_typename_type, define_function, grokdeclarator): 569650397Sobrien Likewise. 569750397Sobrien * decl2.c (set_decl_namespace, do_namespace_alias): Likewise. 569850397Sobrien * pt.c (push_template_decl_real, lookup_template_class, tsubst): 569950397Sobrien Likewise. 570050397Sobrien * decl2.c (decl_namespace): Return global_namespace if no context. 570150397Sobrien * method.c (build_overload_nested_name): Expect null as context. 570250397Sobrien * pt.c (mangle_class_name_for_template): Do nothing for null 570350397Sobrien contexts. 570450397Sobrien (lookup_template_class): Allow for null id_context. 570518334Speter 570650397Sobrien1998-06-25 Richard Henderson <rth@cygnus.com> 570718334Speter 570850397Sobrien * method.c (emit_thunk): Set current_function_is_thunk for the 570950397Sobrien ASM_OUTPUT_MI_THUNK case as well. 571018334Speter 571150397Sobrien1998-06-23 Andrew MacLeod <amacleod@cygnus.com> 571218334Speter 571350397Sobrien * exception.cc (__cplus_type_matcher): Get a match_info pointer 571450397Sobrien instead of an exception table entry as a parameter. 571518334Speter 571650397Sobrien1998-06-23 Andrew MacLeod <amacleod@cygnus.com> 571718334Speter 571850397Sobrien * parse.y (function_try_block): Don't call start_catch_handler. 571950397Sobrien * except.c (call_eh_info): Remove coerced field from declaration. 572050397Sobrien (build_eh_type_type_ref): New function to create an address of a 572150397Sobrien rtti function for the new style exception tables. 572250397Sobrien (expand_start_catch_block): Split function, this contains the 572350397Sobrien common part. 572450397Sobrien (process_start_catch_block_old): New function to perform the rest 572550397Sobrien of expand_start_catch_block under old style exceptions. 572650397Sobrien (process_start_catch_block_old): New function to perform the rest 572750397Sobrien of expand_start_catch_block under new style exceptions. 572850397Sobrien (expand_end_catch_block): Only pop the false label off the stack under 572950397Sobrien the old style of exceptions. 573050397Sobrien * semantics.c (finish_try_block): Don't call start_catch_handler. 573150397Sobrien * exception.cc (struct cp_eh_info): Add original_value field. 573250397Sobrien (__cplus_type_matcher): Perform type matching on the original exception 573350397Sobrien value, and if we have a match, set the current value. 573452284Sobrien (__cp_push_exception): Set the original exception value. 573518334Speter 573650397Sobrien1998-06-23 Jason Merrill <jason@yorick.cygnus.com> 573718334Speter 573850397Sobrien * call.c (joust): Fix confusing conversion warning. 573918334Speter 574050397Sobrien * call.c (build_op_delete_call): Add placement parm. Check 574150397Sobrien LOOKUP_SPECULATIVELY. 574250397Sobrien * cp-tree.h, decl2.c, init.c: Adjust. 574350397Sobrien * decl.c (finish_function): Use it. 574418334Speter 574550397Sobrien * pt.c (tsubst): Diagnose creating void fields or variables. 574618334Speter 574750397SobrienMon Jun 22 08:50:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 574818334Speter 574950397Sobrien * call.c (build_scoped_method_call): Remove unused variable `tmp'. 575018334Speter 575150397Sobrien * cp-tree.h (check_dtor_name): Add prototype. 575218334Speter 575350397Sobrien * init.c (expand_member_init): Remove unused variables 575450397Sobrien `ptr_type_node', `parm' and `rval'. 575518334Speter 575650397Sobrien * ptree.c (print_lang_type): Use HOST_WIDE_INT_PRINT_DEC specifier 575750397Sobrien in call to fprintf. 575850397Sobrien (lang_print_xnode): Likewise. 575918334Speter 576050397Sobrien * typeck2.c (enum_name_string): Cast argument to sprintf to long 576150397Sobrien and use %ld specifier. 576218334Speter 576350397Sobrien * xref.c (GNU_xref_end_scope): Use HOST_WIDE_INT_PRINT_DEC 576450397Sobrien specifier in call to fprintf. 576550397Sobrien (GNU_xref_member): Cast argument to sprintf to int. 576618334Speter 576750397SobrienFri Jun 19 23:22:42 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 576818334Speter 576952284Sobrien * typeck2.c (pop_init_level): Warn about implicit zero initialization 577052284Sobrien of struct members. 577118334Speter 577250397SobrienThu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 577318334Speter 577450397Sobrien * cp-tree.h: Prototype function `check_java_method'. 577518334Speter 577650397Sobrien1998-06-17 Jason Merrill <jason@yorick.cygnus.com> 577718334Speter 577850397Sobrien * class.c (finish_struct): Make conflicting use of id a pedwarn. 577950397Sobrien * decl.c (pushdecl_class_level): Likewise. 578018334Speter 578150397Sobrien1998-06-17 Mark Mitchell <mark@markmitchell.com> 578218334Speter 578350397Sobrien * pt.c (convert_nontype_argument): Issue an error when presented 578450397Sobrien with an integer (real) constant that cannot be simplified to an 578550397Sobrien INT_CST (REAL_CST). 578618334Speter 578750397Sobrien * cp-tree.h (c_get_alias_set): Remove declaration added in 578850397Sobrien 1998-06-13 change that should never have been checked in. 578918334Speter 579050397Sobrien1998-06-17 Jason Merrill <jason@yorick.cygnus.com> 579118334Speter 579250397Sobrien * typeck.c (build_binary_op_nodefault): Change % in format strings 579350397Sobrien to %%. 579418334Speter 579550397Sobrien * decl.c (grokvardecl): Don't build_static_name for decls that 579650397Sobrien aren't at namespace scope. 579718334Speter 579850397Sobrien * init.c (perform_member_init): Catch default-initialization of 579950397Sobrien references. 580018334Speter 580150397Sobrien1998-06-17 Mark Mitchell <mark@markmitchell.com> 580218334Speter 580350397Sobrien * errfn.c (cp_thing): Handle the `%%' formatting sequence. 580418334Speter 580550397Sobrien1998-06-17 Jason Merrill <jason@yorick.cygnus.com> 580618334Speter 580750397Sobrien * method.c (hack_identifier): Complain about getting a namespace 580850397Sobrien or class template. 580950397Sobrien * typeck.c (decay_conversion): Remove check for namespaces. 581050397Sobrien * typeck2.c (incomplete_type_error): Likewise. 581150397Sobrien * parse.y (template_arg): Add PTYPENAME expansion. 581218334Speter 581350397Sobrien1998-06-16 Andrew MacLeod <amacleod@cygnus.com> 581418334Speter 581552284Sobrien * decl.c (grokvardecl): Don't build external assembler names for 581650397Sobrien TYPENAMEs in other namespaces as there is no declarator. 581750397Sobrien * error.c (cp_file_of, cp_line_of): Don't extract file or line number 581850397Sobrien info from DECL_CONTEXT if it is NULL. 581918334Speter 582050397Sobrien1998-06-16 Jason Merrill <jason@yorick.cygnus.com> 582118334Speter 582250397Sobrien * call.c (check_dtor_name): Split out. 582350397Sobrien (build_scoped_method_call): Use it. 582450397Sobrien (build_method_call): Use it. 582550397Sobrien * init.c (build_offset_ref): Use it. 582618334Speter 582750397Sobrien * typeck.c (build_static_cast): Fix handling of pointers to members. 582818334Speter 582950397Sobrien * decl.c (finish_function): Just return nothing from a constructor. 583050397Sobrien * typeck.c (c_expand_return): Complain about returning a void 583150397Sobrien expression from a destructor. 583218334Speter 583350397Sobrien1998-06-13 Mark Mitchell <mark@markmitchell.com> 583418334Speter 583550397Sobrien * class.c (alter_access): Accept a BINFO explaining how to get 583650397Sobrien from the entity whose accessed is being altered to the type doing 583750397Sobrien the altering. 583850397Sobrien (handle_using_decl): New function containing code split out from ... 583950397Sobrien (finish_struct_1): Here. 584018334Speter 584150397Sobrien * cp-tree.h (complete_type_or_else): Declare. 584250397Sobrien * init.c (build_new_1, build_delete): Use it. 584350397Sobrien * typeck.c (require_complete_type): Use complete_type, rather than 584450397Sobrien expanding it inline. 584550397Sobrien (complete_type_or_else): New function. 584650397Sobrien (build_component_ref): Use it. 584750397Sobrien (pointer_int_sum): Make sure the type pointed to is complete. 584850397Sobrien (pointer_diff): Likewise. 584918334Speter 585050397Sobrien * pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for 585152284Sobrien types. 585218334Speter 585350397Sobrien * search.c (get_matching_virtual): Note that member templates 585450397Sobrien cannot override virtual functions. 585518334Speter 585650397Sobrien1998-06-12 Brendan Kehoe <brendan@cygnus.com> 585718334Speter 585850397Sobrien * pt.c (check_explicit_specialization): If DECLARATOR turned into 585950397Sobrien an error_mark_node from lookup_template_function, return the same. 586050397Sobrien (determine_specialization): Also make sure TEMPLATE_ID isn't an 586150397Sobrien error_mark_node, before we try to read its operands. 586250397Sobrien * decl.c (grokdeclarator): If we got an error_mark_node from 586350397Sobrien check_explicit_specialization, just return it right back. 586418334Speter 586550397Sobrien1998-06-12 Mark Mitchell <mark@markmitchell.com> 586618334Speter 586750397Sobrien * class.c (instantiate_type): Don't treat template-ids that don't 586850397Sobrien specify any template arguments as equivalent to ordinary 586950397Sobrien identifiers. Use OFFSET_REF instead of SCOPE_REF to refer to 587050397Sobrien pointer-to-members for member templates. Tidy slightly. 587150397Sobrien * cp-tree.def (TEMPLATE_ID_EXPR): Revise documentation. 587250397Sobrien * init.c (build_offset_ref): Handle template-ids like ordinary 587350397Sobrien identifiers, for the most part, but store a TEMPLATE_ID_EXPR in the 587450397Sobrien offset part of the OFFSET_REF. 587550397Sobrien * typeck.c (build_unary_op): Change check for unknown types to 587650397Sobrien look for OFFSET_REFs, not SCOPE_REFs. 587718334Speter 587850397Sobrien1998-06-11 Mark Mitchell <mark@markmitchell.com> 587918334Speter 588050397Sobrien * pt.c (is_member_template_class): New function. 588150397Sobrien (push_template_decl_real): Use it. 588218334Speter 588350397Sobrien1998-06-11 Benjamin Kosnik <bkoz@elmo.cygnus.com> 588418334Speter 588550397Sobrien * friend.c (do_friend): Add support for nested classes using 588652284Sobrien member functions of the enclosing class as friends. 588718334Speter 588850397Sobrien1998-06-10 Mark Mitchell <mark@markmitchell.com> 588918334Speter 589050397Sobrien * call.c (convert_default_arg): Make global, not static. 589150397Sobrien (convert_arg_for_ellipsis): Split out from ... 589250397Sobrien (build_over_call): Here. 589350397Sobrien * cp-tree.h (convert_default_arg); Declare. 589450397Sobrien (convert_arg_to_ellipsis): Likewise. 589550397Sobrien (do_member_init): Remove. 589650397Sobrien * init.c (do_member_init): Remove; this code is dead. 589750397Sobrien (expand_member_init): Remove much of this code; it is dead. 589850397Sobrien * typeck.c (convert_arguments): Use convert_default_arg and 589950397Sobrien convert_arg_for_ellipsis, rather than duplicating here. 590052284Sobrien 590152284Sobrien * call.c (convert_like): Don't fail silently if 590252284Sobrien build_user_type_conversion fails. Always return error_mark_node 590350397Sobrien for failure. 590418334Speter 590550397Sobrien1998-06-10 Jason Merrill <jason@yorick.cygnus.com> 590618334Speter 590750397Sobrien * search.c (covariant_return_p): Complain about ambiguous base. 590818334Speter 590950397Sobrien * typeck.c (build_component_ref): Diagnose ref to nested type. 591018334Speter 591150397Sobrien1998-06-10 Brendan Kehoe <brendan@cygnus.com> 591218334Speter 591350397Sobrien * decl.c (grokparms): Check that INIT isn't an error_mark_node 591450397Sobrien before giving error about invalid type for default arg. 591518334Speter 591650397Sobrien1998-06-10 Jason Merrill <jason@yorick.cygnus.com> 591718334Speter 591850397Sobrien * call.c (build_method_call): Fix thinko. 591918334Speter 592050397Sobrien1998-06-10 Dave Brolley <brolley@cygnus.com> 592118334Speter 592250397Sobrien * decl2.c (lang_decode_option): New argc/argv interface. 592350397Sobrien * cp-tree.h (lang_decode_option): New argc/argv interface. 592450397Sobrien * lang-specs.h (default_compilers): Only call cpp if -E, -M or -MM is 592550397Sobrien specified for cpplib-enabled compilers. 592650397Sobrien * lex.c (lang_init): Don't check_newline for cpplib. 592750397Sobrien (init_parse): Don't initialize cpplib here. 592818334Speter 592950397Sobrien1998-06-10 Brendan Kehoe <brendan@cygnus.com> 593018334Speter 593150397Sobrien * typeck.c (build_component_ref): Make sure FIELD has a lang_specific 593250397Sobrien piece before checking DECL_MUTABLE_P. 593318334Speter 593450397Sobrien1998-06-10 John Carr <jfc@mit.edu> 593518334Speter 593650397Sobrien * tree.c (debug_binfo): Make printf format match arguments. 593718334Speter 593850397Sobrien * error.c (OB_PUTI): Make printf format match arguments. 593918334Speter 594050397Sobrien1998-06-10 Jason Merrill <jason@yorick.cygnus.com> 594118334Speter 594250397Sobrien * init.c (perform_member_init): Handle default-initialization. 594318334Speter 594450397Sobrien * except.c (build_throw): Handle throwing NULL. 594518334Speter 594650397Sobrien * typeck.c (build_x_function_call): Use resolve_offset_ref. 594718334Speter 594850397Sobrien * search.c (compute_access): Only strip an anonymous union 594950397Sobrien for a FIELD_DECL. 595018334Speter 595150397Sobrien * call.c (add_builtin_candidates): Tweak. 595218334Speter 595350397Sobrien * cvt.c (build_expr_type_conversion): Restore code for conversion 595450397Sobrien from class types. 595550397Sobrien * decl2.c (delete_sanity): Use it. Clean up. 595618334Speter 595750397Sobrien * typeck.c (comp_ptr_ttypes_real): Fix cv-qual comparisons. 595818334Speter 595950397Sobrien1998-06-10 Branko Cibej <branko.cibej@hermes.si> 596018334Speter 596152284Sobrien * typeck.c (c_expand_return): Don't warn about void expressions on 596252284Sobrien return statements in functions returning void. 596318334Speter 596450397Sobrien1998-06-09 Mark Mitchell <mark@markmitchell.com> 596518334Speter 596650397Sobrien * pt.c (fn_type_unification): Revise documentation. Tidy. 596750397Sobrien (type_unification): Likewise. 596818334Speter 596950397Sobrien1998-06-09 Andrew MacLeod <amacleod@cygnus.com> 597018334Speter 597150397Sobrien * semantics.c (finish_try_block): Rename expand_start_catch, and delete 597250397Sobrien expand_end_catch. 597350397Sobrien * parse.y (function_try_block): Rename expand_start_catch, and delete 597450397Sobrien expand_end_catch. 597550397Sobrien * except.c (expand_end_eh_spec): Rename expand_start_catch, and delete 597650397Sobrien expand_end_catch. 597718334Speter 597850397Sobrien1998-06-09 Jason Merrill <jason@yorick.cygnus.com> 597918334Speter 598050397Sobrien * search.c (lookup_member): New fn. 598150397Sobrien * class.c (finish_struct_1): Use it. 598250397Sobrien * decl.c (lookup_name_real): Use it. 598318334Speter 598450397SobrienMon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 598518334Speter 598650397Sobrien * Makefile.in (decl2.o): Depend on dwarf2out.h and dwarfout.h. 598718334Speter 598850397Sobrien * cp-tree.h: Add prototype for `maybe_print_template_context' and 598952284Sobrien `maybe_make_one_only'. 599018334Speter 599150397Sobrien * decl.c (auto_function): Remove unused variable `decl'. 599218334Speter 599350397Sobrien * decl2.c: Include dwarf2out.h and dwarfout.h. 599418334Speter 599550397Sobrien * lex.c: Remove redundant declarations of `set_float_handler' and 599652284Sobrien `asm_out_file'. 599718334Speter 599850397Sobrien1998-06-08 Andrew MacLeod <amacleod@cygnus.com> 599918334Speter 600052284Sobrien * except.c (init_exception_processing): Remove NEW_EH_MODEL compile 600150397Sobrien time flag. Call __cp_eh_info instead of __cp_exception_info. 600250397Sobrien * exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag. 600352284Sobrien (__cp_exception_info): Return offset into cp_eh_info structure to 600450397Sobrien match what use to be the start of this structure. 600550397Sobrien (__cp_eh_info): New function to return a pointer to cp_eh_info struct. 600650397Sobrien (__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL 600750397Sobrien compile time flag. 600852284Sobrien (__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call 600950397Sobrien __cp_eh_info instead of __cp_exception_info. 601018334Speter 601150397Sobrien1998-06-08 Jason Merrill <jason@yorick.cygnus.com> 601218334Speter 601350397Sobrien * decl.c (cp_finish_decl): Disable inlining of extern inlines 601450397Sobrien with static variables. 601518334Speter 601650397Sobrien1998-06-08 Mark Mitchell <mark@markmitchell.com> 601718334Speter 601850397Sobrien * init.c (build_offset_ref): Correct previous change to use build, 601950397Sobrien not build_min. 602018334Speter 602150397Sobrien1998-06-07 Mark Mitchell <mark@markmitchell.com> 602218334Speter 602350397Sobrien * class.c (instantiate_type): Handle pointer-to-members where the 602450397Sobrien member is a template. 602550397Sobrien * init.c (build_offset_ref): Likewise. 602650397Sobrien * typeck.c (build_unary_op): Likewise. 602718334Speter 602850397Sobrien1998-06-07 Richard Henderson <rth@cygnus.com> 602918334Speter 603050397Sobrien * lex.c (lang_init_options): New function. 603150397Sobrien (lang_init): Remove flag_exceptions == 2 hack. 603252284Sobrien 603350397Sobrien1998-06-05 Jason Merrill <jason@yorick.cygnus.com> 603418334Speter 603550397Sobrien * search.c (envelope_add_decl): Tweak for implicit typename. 603618334Speter 603750397Sobrien * call.c (joust): Also warn about confusing conversion op/constructor 603850397Sobrien overload resolution. 603918334Speter 604050397Sobrien * spew.c (yylex): Also return the TYPE_DECL if got_object. 604150397Sobrien Don't clear got_object after '~'. 604250397Sobrien * call.c (build_scoped_method_call): Tweak destructor handling. 604350397Sobrien (build_method_call): Likewise. 604450397Sobrien * pt.c (tsubst_copy, case METHOD_CALL_EXPR): Don't mess with 604550397Sobrien TYPE_MAIN_VARIANT for destructors. 604650397Sobrien * semantics.c (finish_object_call_expr): Complain about calling a 604750397Sobrien TYPE_DECL. 604818334Speter 604950397Sobrien1998-06-05 Per Bothner <bothner@cygnus.com> 605018334Speter 605150397Sobrien * g++spec.c (lang_specific_pre_link, lang_specific_extra_ofiles): 605250397Sobrien Define - update needed by gcc.c change. 605318334Speter 605450397Sobrien1998-06-05 Jason Merrill <jason@yorick.cygnus.com> 605518334Speter 605650397Sobrien * error.c (cp_printers): Use 'o' instead of '_' for the null entry. 605718334Speter 605850397Sobrien1998-06-05 Martin v. Loewis <loewis@informatik.hu-berlin.de> 605918334Speter 606050397Sobrien * cp-tree.h (DECL_NAMESPACE_ALIAS, ORIGINAL_NAMESPACE): Declare. 606150397Sobrien * decl.c (lookup_name_real): Add namespaces_only parameter. 606250397Sobrien If set, return only NAMESPACE_DECLs. 606350397Sobrien (select_decl): Likewise. 606450397Sobrien (identifier_type_value): Give additional parameter. 606550397Sobrien (lookup_name_nonclass): Likewise. 606650397Sobrien (lookup_name): Likewise. 606750397Sobrien (find_binding): Skip namespace aliases. 606850397Sobrien (binding_for_name): Likewise. 606950397Sobrien (push_namespace): Check for namespace aliases. 607050397Sobrien (lookup_name_namespace_only): New function. 607150397Sobrien (begin_only_namespace_names, end_only_namespace_names): New functions. 607250397Sobrien * decl2.c (set_decl_namespace): Skip namespace aliases. 607350397Sobrien (do_using_directive): Likewise. 607452284Sobrien (do_namespace_alias): Produce namespace aliases, fix alias 607550397Sobrien redeclaration. 607650397Sobrien * error.c (dump_decl): Support SCOPE_REF. 607750397Sobrien * parse.y (extdef): Wrap lookup with namespace_only for namespace 607850397Sobrien aliases and using declarations. 607918334Speter 608050397Sobrien1998-06-04 Jason Merrill <jason@yorick.cygnus.com> 608118334Speter 608250397Sobrien * tree.c (really_overloaded_fn): Only see through one TREE_LIST. 608318334Speter 608450397Sobrien * error.c (dump_expr): Clean up NEW_EXPR case. 608518334Speter 608650397Sobrien1998-06-04 Martin von L�wis <loewis@informatik.hu-berlin.de> 608718334Speter 608850397Sobrien Suggested by Brendan Kehoe 608950397Sobrien * decl2.c (do_toplevel_using_decl): When decl is a TYPE_DECL, 609050397Sobrien treat it as using ::decl. 609118334Speter 609250397Sobrien * decl2.c (arg_assoc_type): Process unknown_type_node and OFFSET_TYPE. 609318334Speter 609450397Sobrien * tree.c (mapcar): Support NEW_EXPR. 609518334Speter 609650397Sobrien * error.c (dump_expr): Support NEW_EXPR. 609718334Speter 609850397Sobrien1998-06-03 Jason Merrill <jason@yorick.cygnus.com> 609918334Speter 610050397Sobrien * method.c (make_thunk): Use overload machinery to make name. 610150397Sobrien * search.c (covariant_return_p): New fn. 610250397Sobrien (get_matching_virtual): Use it. 610318334Speter 610450397Sobrien * init.c (build_new_1): Fix check for void. 610518334Speter 610650397Sobrien1998-06-01 Per Bothner <bothner@cygnus.com> 610718334Speter 610850397Sobrien * cp-tree.h (TYPE_FOR_JAVA): New macro. 610950397Sobrien * decl.c, cp-tree.h (java_byte_type_node, java_short_type_node, 611050397Sobrien java_int_type_node, java_long_type_node, java_float_type_node, 611150397Sobrien java_double_type_node, java_char_type_node, java_boolean_type_node): 611250397Sobrien New "primitive" types, with predefined names __java_byte etc. 611350397Sobrien (record_builtin_java_type): New function. 611450397Sobrien (init_decl_processing): Make Java types with record_builtin_java_type. 611550397Sobrien (pushtag, grokdeclarator): Set TYPE_FOR_JAVA if in extern "JAVA". 611650397Sobrien (xref_baseypes): If base class was TYPE_FOR_JAVA, so is this class. 611750397Sobrien (grokfndecl): Call check_java_method for Java classes. 611850397Sobrien * method.c (is_java_type): Removed. Replaced with TYPE_FOR_JAVA. 611950397Sobrien (process_overload_item): Match types against specific 612050397Sobrien java_XX_type_node types, rather than using is_java_type. 612150397Sobrien * class.c (finish_struct_1): Don't add default copy constructor 612250397Sobrien or operator= if TYPE_FOR_JAVA. 612350397Sobrien (pop_lang_conext): Restore strict_prototyp proper if Java. 612450397Sobrien * decl2.c (acceptable_java_type, check_java_method): New functions. 612550397Sobrien * pt.c (instantiate_class_template): Copy TYPE_FOR_JAVA from pattern. 612650397Sobrien (tsubst): Move common statement after if statement. 612750397Sobrien * typeck.c (comptypes): If strict, TYPE_FOR_JAVA must match. 612818334Speter 612950397Sobrien1998-06-01 Jason Merrill <jason@yorick.cygnus.com> 613018334Speter 613150397Sobrien * pt.c (for_each_template_parm): Use first_rtl_op. 613218334Speter 613350397Sobrien * tree.c (build_cplus_array_type_1): Also check index_type for 613418334Speter template parms. 613518334Speter 613650397Sobrien1998-05-31 Jason Merrill <jason@yorick.cygnus.com> 613718334Speter 613850397Sobrien * pt.c (tsubst): Always copy BINFO_BASETYPES. 613918334Speter 614050397Sobrien1998-05-29 scott snyder <snyder@d0sgif.fnal.gov> 614118334Speter 614250397Sobrien * tree.c (layout_basetypes): If we change TYPE_SIZE, change 614350397Sobrien TYPE_SIZE_UNIT too. 614418334Speter 614550397Sobrien1998-05-29 Mark Mitchell <mark@markmitchell.com> 614618334Speter 614750397Sobrien * decl.c (grokdeclarator): Don't complain about in-class 614850397Sobrien initialization of static consts if we don't really know the type 614950397Sobrien of the variable. 615018334Speter 615150397Sobrien1998-05-29 Jason Merrill <jason@yorick.cygnus.com> 615218334Speter 615350397Sobrien * cp-tree.h (DECL_DESTRUCTOR_P): New macro. 615450397Sobrien * method.c (build_destructor_name): New fn. 615550397Sobrien * decl2.c (maybe_retrofit_in_chrg): Split out... 615650397Sobrien (grokclassfn): From here. Reorganize. 615752284Sobrien * decl.c (grok_ctor_properties): Make sure ctors for types with 615850397Sobrien vbases have the in_chrg parm. 615952284Sobrien * pt.c (instantiate_class_template): Update 616050397Sobrien TYPE_USES_VIRTUAL_BASECLASSES from tsubsted bases. Don't call 616150397Sobrien grok_*_properties. 616250397Sobrien (tsubst): Call grok_ctor_properties and maybe_retrofit_in_chrg. 616318334Speter 616450397Sobrien1998-05-28 Mark Mitchell <mark@markmitchell.com> 616518334Speter 616650397Sobrien * pt.c (instantiate_decl): Make test for whether or not static 616750397Sobrien variables should be instantiated early match its comment. 616818334Speter 616950397Sobrien1998-05-28 Jason Merrill <jason@yorick.cygnus.com> 617018334Speter 617152284Sobrien * decl.c (start_decl): Always pedwarn about vacuously redeclaring 617250397Sobrien a member. 617350397Sobrien (start_function): Call check_default_args. 617450397Sobrien * decl2.c (grokfield): Don't call check_default_args. 617550397Sobrien (check_default_args): Use cp_error_at. 617650397Sobrien * lex.c (do_pending_defargs): Call check_default_args. 617718334Speter 617850397Sobrien1998-05-27 Brendan Kehoe <brendan@cygnus.com> 617918334Speter 618050397Sobrien * call.c (build_method_call): Make sure get_type_value returns 618150397Sobrien something before we try to use its TYPE_MAIN_VARIANT. 618250397Sobrien (build_scoped_method_call): Likewise. 618318334Speter 618450397Sobrien1998-05-27 Jason Merrill <jason@yorick.cygnus.com> 618518334Speter 618650397Sobrien * typeck2.c (digest_init): Complain about getting a TREE_LIST to 618750397Sobrien initialize an array. 618818334Speter 618950397Sobrien * search.c (expand_upcast_fixups): Don't set DECL_CONTEXT and 619050397Sobrien DECL_VIRTUAL_P. 619118334Speter 619250397Sobrien * friend.c (do_friend): Clarify template warning. 619318334Speter 619450397Sobrien1998-05-27 Mark Mitchell <mark@markmitchell.com> 619518334Speter 619650397Sobrien * decl.c (shadow_label): Don't treat decls as identifiers. 619750397Sobrien (maybe_push_to_top_level): Clear shadowed_labels. 619818334Speter 619950397Sobrien * pt.c (instantiate_decl): Reset lineno and filename after calling 620052284Sobrien regenerate_decl_from_template. 620118334Speter 620250397Sobrien * decl.c (grokdeclarator): Don't try to use TYPE_OBSTACK on an 620350397Sobrien error_mark_node. 620418334Speter 620550397Sobrien1998-05-27 Kevin Buhr <buhr@stat.wisc.edu> 620618334Speter 620750397Sobrien * parse.y (base_class): Use is_aggr_type, not IS_AGGR_TYPE. 620818334Speter 620950397Sobrien1998-05-26 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 621018334Speter 621150397Sobrien * pt.c (process_template_parm): Accept TYPENAME_TYPE nodes. 621250397Sobrien (convert_nontype_argument): Handle cases when nontype template 621350397Sobrien parameters become classes after substitution. 621418334Speter 621550397Sobrien1998-05-26 Mark Mitchell <mark@markmitchell.com> 621618334Speter 621750397Sobrien * friend.c (is_friend): Use comptypes, rather than == to compare 621850397Sobrien types. Modify for new representation of template friends. 621950397Sobrien (make_friend_class): Likewise. 622050397Sobrien * pt.c (tsubst_friend_class): Undo 1998-05-21 change. Tweak. 622150397Sobrien (instantiate_class_template): Deal with template friends. 622218334Speter 622350397Sobrien * decl.c (store_parm_decls): Remove redundant call to 622450397Sobrien expand_main_function. 622518334Speter 622650397Sobrien1998-05-26 Benjamin Kosnik <bkoz@loony.cygnus.com> 622718334Speter 622850397Sobrien * decl.c (start_decl): Check for DECL_LANG_SPECIFIC before 622952284Sobrien DECL_USE_TEMPLATE. 623018334Speter 623150397Sobrien1998-05-26 Per Bothner <bothner@cygnus.com> 623218334Speter 623350397Sobrien * language_as_string: Handle lang_java. 623418334Speter 623550397Sobrien1998-05-26 Jason Merrill <jason@yorick.cygnus.com> 623618334Speter 623750397Sobrien * decl.c (pushdecl): Don't copy the type_decl. 623818334Speter 623950397Sobrien1998-05-26 Martin v. L�wis <loewis@informatik.hu-berlin.de> 624018334Speter 624150397Sobrien * class.c (pushclass): Always store TYPE_MAIN_VARIANT in 624250397Sobrien current_class_type. 624350397Sobrien * decl.c (grokdeclarator): Put typedefs on the type's obstack. 624418334Speter 624550397Sobrien * parse.y (complex_direct_notype_declarator): Use $1 to access 624650397Sobrien scope of notype_qualified_id. 624718334Speter 624850397Sobrien1998-05-26 Dave Brolley <brolley@cygnus.com> 624918334Speter 625050397Sobrien * lex.c (parse_options,yy_cur,yy_lim): Add for cpplib. 625150397Sobrien (init_parse): Initialize cpplib interface. 625218334Speter 625350397Sobrien * Makefile.in (CXX_OBJS): Make sure dependencies never end with an 625450397Sobrien empty continuation. 625518334Speter 625650397Sobrien1998-05-26 Mark Mitchell <mark@markmitchell.com> 625718334Speter 625850397Sobrien * decl.c (pushtag): Avoid crashing on erroneous input. 625918334Speter 626050397Sobrien1998-05-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 626118334Speter 626250397Sobrien * decl.c (push_namespace): Only produce one unique name for 626350397Sobrien anonymous namespaces. 626450397Sobrien (get_unique_name): Remove. 626518334Speter 626650397Sobrien1998-05-25 Mark Mitchell <mark@markmitchell.com> 626718334Speter 626850397Sobrien * call.c (tourney): Don't do any extra comparisons. 626918334Speter 627050397Sobrien * decl2.c (build_anon_union_vars): Don't crash on empty sub-unions. 627118334Speter 627250397Sobrien * cp-tree.h (processing_template_parmlist): Declare. 627350397Sobrien * decl.c (pushtag): Don't call push_template_decl when we 627452284Sobrien shouldn't. 627550397Sobrien * pt.c (processing_template_parmlist): New variable. 627650397Sobrien (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): New macro. 627750397Sobrien (complete_template_args): Use it. 627850397Sobrien (add_to_template_args): Likewise. 627950397Sobrien (innermost_args): Likewise. 628050397Sobrien (tsubst): Likewise. 628150397Sobrien (begin_template_parm_list): Use processing_template_parmlist. 628250397Sobrien (end_template_parm_list): Likewise. 628318334Speter 628450397Sobrien * cp-tree.h (ANON_UNION_TYPE_P): New macro. 628550397Sobrien * decl.c (grokdeclarator): Use it. 628650397Sobrien * decl2.c (grok_x_components): Likewise. 628750397Sobrien * init.c (initializing_context): Likewise. 628850397Sobrien * method.c (do_build_copy_constructor): Likewise. 628950397Sobrien (do_build_assign_ref): Likewise. 629050397Sobrien * search.c (compute_access): Likewise. 629150397Sobrien * typeck.c (build_component_ref): Likewise. 629218334Speter 629350397Sobrien * decl.c (grokdeclarator): Don't give a cv-qualified version of an 629450397Sobrien unnamed type a typedef name "for linkage purposes". 629518334Speter 629650397Sobrien * pt.c (lookup_template_class): Don't look at 629750397Sobrien IDENTIFIER_CLASS_VALUE when there's no current_class_type. 629818334Speter 629950397Sobrien * method.c (build_overload_int): Handle error cases gracefully. 630018334Speter 630150397Sobrien * pt.c (instantiate_decl): Handle static member variables 630250397Sobrien correctly. 630318334Speter 630450397Sobrien * pt.c (tsubst): Use the tsubst'd type when producing new 630550397Sobrien TEMPLATE_PARM_INDEX nodes. 630618334Speter 630750397Sobrien1998-05-24 Mark Mitchell <mark@markmitchell.com> 630818334Speter 630950397Sobrien * tree.c (cp_tree_equal): Handle pointers to member functions. 631018334Speter 631150397Sobrien * call.c (maybe_handle_implicit_object): Handle QUAL_CONVs. Make 631250397Sobrien sure the type of the REF_BIND is a reference type. 631350397Sobrien (maybe_handle_ref_bind, compare_ics): Rename reference_type to 631450397Sobrien target_type for clarity. 631518334Speter 631650397Sobrien * parse.y (xcond): Move call to condition_conversion ... 631750397Sobrien * semantics.c (finish_for_cond): Here. 631850397Sobrien * parse.c: Regenerated. 631952284Sobrien 632050397Sobrien1998-05-24 Jason Merrill <jason@yorick.cygnus.com> 632118334Speter 632250397Sobrien * decl.c (push_namespace): Namespaces have type void. 632350397Sobrien * typeck2.c (incomplete_type_error): Complain about namespace 632450397Sobrien used as expression. 632550397Sobrien * typeck.c (decay_conversion): Likewise. 632618334Speter 632750397Sobrien1998-05-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 632818334Speter 632950397Sobrien * error.c (dump_expr): Support namespaces. 633018334Speter 633150397Sobrien1998-05-23 Jason Merrill <jason@yorick.cygnus.com> 633218334Speter 633350397Sobrien * cp-tree.def: Add SRCLOC. 633450397Sobrien * cp-tree.h: Add struct tree_srcloc and accessor macros. 633550397Sobrien * tree.c (build_srcloc, build_srcloc_here): New fns. 633650397Sobrien * pt.c (add_pending_template): Use build_srcloc_here. 633750397Sobrien (push_tinst_level): Update last_template_error_tick before erroring. 633852284Sobrien (instantiate_decl): Restore lineno and input_filename before 633950397Sobrien calling add_pending_template. 634050397Sobrien * decl2.c (finish_file): Set up lineno and input_filename for 634150397Sobrien pending templates. 634218334Speter 634350397Sobrien1998-05-22 Jason Merrill <jason@yorick.cygnus.com> 634418334Speter 634552284Sobrien * decl.c (lang_print_error_function): New fn. 634650397Sobrien (init_decl_processing): Set print_error_function to use it. 634750397Sobrien * errfn.c (cp_thing): Don't call maybe_print_template_context here. 634818334Speter 634950397Sobrien * call.c (maybe_handle_ref_bind): Propagate ICS_USER_FLAG and 635050397Sobrien ICS_BAD_FLAG. 635118334Speter 635250397Sobrien * cvt.c (ocp_convert): Don't set LOOKUP_NO_CONVERSION for 635350397Sobrien copy-initialization. 635418334Speter 635550397Sobrien * class.c (build_vtable_entry): Use int_fits_type_p. 635650397Sobrien (build_vtable): Pass a signed offset to build_vtable_entry. 635750397Sobrien (prepare_fresh_vtable, modify_one_vtable, fixup_vtable_deltas1, 635850397Sobrien set_rtti_entry): Likewise. 635918334Speter 636050397Sobrien1998-05-22 Per Bothner <bothner@cygnus.com> 636118334Speter 636250397Sobrien * cp-tree.h: Add comments documenting which LANG_FLAGS are used. 636350397Sobrien (C_TYPE_VARIABLE_SIZE, C_DECL_VARIABLE_SIZE): Removed, not used. 636418334Speter 636550397Sobrien1998-05-22 Jason Merrill <jason@yorick.cygnus.com> 636618334Speter 636750397Sobrien * pt.c (print_template_context): Use fprintf instead of cp_error. 636818334Speter 636950397Sobrien * pt.c (determine_specialization): Just return an error_mark_node. 637050397Sobrien Also print the decl we want in error messages. If we complain, 637150397Sobrien return error_mark_node. 637252284Sobrien (tsubst_friend_function): Set lineno and input_filename so 637350397Sobrien error messages will be useful. 637450397Sobrien (instantiate_template): Just return an error_mark_node. 637550397Sobrien (check_explicit_specialization): Don't mess with a returned 637650397Sobrien error_mark_node. 637718334Speter 637850397Sobrien * pt.c (print_template_context): Add new argument. 637950397Sobrien (maybe_print_template_context): New fn. 638050397Sobrien (push_tinst_level): Increment tinst_level_tick. 638150397Sobrien (pop_tinst_level): Likewise. 638250397Sobrien * errfn.c (cp_thing): Call maybe_print_template_context. Use 638350397Sobrien xrealloc instead of xmalloc. 638418334Speter 638550397Sobrien * typeck.c (build_unary_op, CONVERT_EXPR): Propagate TREE_CONSTANT. 638618334Speter 638750397Sobrien1998-05-21 Jason Merrill <jason@yorick.cygnus.com> 638818334Speter 638950397Sobrien * pt.c (tsubst_friend_class): Don't call redeclare_class_template 639050397Sobrien if the template we looked up is the same as the one we already 639150397Sobrien have. 639218334Speter 639350397SobrienThu May 21 11:54:44 1998 Dave Brolley <brolley@cygnus.com> 639418334Speter 639550397Sobrien * lex.c: (handle_sysv_pragma): FILE* parameter not used. 639650397Sobrien (cpp_reader,parse_in): Add for cpplib. 639750397Sobrien (check_newline): Call handle_sysv_pragma with new interface. 639850397Sobrien (check_newline): Call GET_DIRECTIVE_LINE, not get_directive_line. 639918334Speter 640050397Sobrien * input.c: (yy_cur,yy_lim,yy_get_token,GETC): Add for cpplib. 640150397Sobrien (sub_getch): Call GETC for cpplib. 640218334Speter 640350397Sobrien * cp-tree.h: (get_directive_line): Different prototype for cpplib. 640450397Sobrien (GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line. 640518334Speter 640652284Sobrien * Makefile.in (CXX_OBJS): Add @extra_cxx_objs@ for cpplib. 640718334Speter 640850397Sobrien1998-05-21 Jason Merrill <jason@yorick.cygnus.com> 640918334Speter 641050397Sobrien * decl2.c (maybe_make_one_only): New fn. 641150397Sobrien (import_export_vtable): Use it. 641250397Sobrien (import_export_decl): Likewise. 641350397Sobrien * pt.c (mark_decl_instantiated): Likewise. 641418334Speter 641550397Sobrien1998-05-21 Mark Mitchell <mmitchell@usa.net> 641618334Speter 641750397Sobrien * decl2.c (find_representative_member): Rename to ... 641850397Sobrien (build_anon_union_vars): New function. 641950397Sobrien (finish_anon_union): Fix stupidity of previous change. 642018334Speter 642150397Sobrien1998-05-20 Jason Merrill <jason@yorick.cygnus.com> 642218334Speter 642350397Sobrien * decl.c (grokfndecl): Handle definition of specialization in 642450397Sobrien friend declaration. 642518334Speter 642650397Sobrien * error.c (dump_decl): Fix LOOKUP_EXPR handling. 642718334Speter 642850397Sobrien1998-05-20 Mark Mitchell <mmitchell@usa.net> 642918334Speter 643050397Sobrien * class.c (delete_duplicate_fields_1): Use DECL_DECLARES_TYPE_P 643150397Sobrien to look for type declarations. 643250397Sobrien (finish_struct): Deal with templates on the CLASSTYPE_TAGS list. 643350397Sobrien * cp-tree.h (DECL_DECLARES_TYPE_P): New macro. 643450397Sobrien (finish_member_class_template): Declare. 643550397Sobrien * decl.c (pushtag): Put member class templates on the 643650397Sobrien CLASSTYPE_TAGS list, just as for ordinary member classes. 643750397Sobrien (pushdecl_class_level): Use DECL_DECLARES_TYPE_P. 643850397Sobrien (lookup_tag): Look for IDENTIFIER_CLASS_VALUEs, just as with 643952284Sobrien IDENTIFIER_NAMESPACE_VALUEs. 644050397Sobrien * parse.y (component_decl): Move code to ... 644152284Sobrien * semantics.c (finish_member_class_template): New function. 644250397Sobrien Don't put member class templates on the list of components for a 644352284Sobrien class. 644450397Sobrien * parse.c: Regenerated. 644550397Sobrien * pt.c (classtype_mangled_name): Don't try DECL_CONTEXT on types. 644650397Sobrien In fact, don't use DECL_CONTEXT at all here. 644718334Speter 644850397Sobrien1998-05-20 Martin von Loewis <loewis@informatik.hu-berlin.de> 644918334Speter 645050397Sobrien * decl.c (record_unknown_type): New function. 645150397Sobrien (init_decl_processing): Call it for the unknown and global type 645250397Sobrien nodes. 645318334Speter 645450397Sobrien1998-05-20 Mark Mitchell <mmitchell@usa.net> 645518334Speter 645650397Sobrien * decl2.c (find_representative_member): New function. 645750397Sobrien (finish_anon_union): Use it. 645818334Speter 645950397Sobrien * cp-tree.h (MAIN_NAME_P): New macro. 646050397Sobrien (DECL_MAIN_P): Likwise. 646150397Sobrien * decl.c (pushdecl): Avoid crashing on redefinitions of `main'. 646250397Sobrien (grokfndecl): Use the new macros. 646350397Sobrien (grokdeclarator): Likewise. 646450397Sobrien (start_function): Likewise. 646550397Sobrien (store_parm_decls): Likewise. 646650397Sobrien (finsh_function): Likewise. 646750397Sobrien * friend.c (do_friend): Likewise. 646850397Sobrien * typeck.c (build_function_call_real): Likewise. 646950397Sobrien (build_unary_op): Likewise. 647018334Speter 647150397SobrienWed May 20 02:16:01 1998 Jason Merrill <jason@yorick.cygnus.com> 647218334Speter 647350397Sobrien * decl2.c (start_objects, finish_objects, do_dtors, 647450397Sobrien do_ctors): Split out from... 647550397Sobrien (finish_file): ...here. 647618334Speter 647750397SobrienTue May 19 20:36:23 1998 Jason Merrill <jason@yorick.cygnus.com> 647818334Speter 647950397Sobrien * tree.c (is_overloaded_fn): Don't abort on placeholders from 648050397Sobrien push_class_decls. 648118334Speter 648250397SobrienTue May 19 15:16:22 1998 Brendan Kehoe <brendan@cygnus.com> 648318334Speter 648450397Sobrien * class.c (is_empty_class): Return 0 if TYPE is an error_mark_node. 648518334Speter 648650397Sobrien * error.c (dump_expr): Handle an ARROW_EXPR. 648718334Speter 648850397SobrienTue May 19 15:13:39 1998 Mark Mitchell <mmitchell@usa.net> 648918334Speter 649050397Sobrien * decl.c (saveable_obstack): Declare. 649150397Sobrien (pushdecl): Copy TYPE_DECLs to the same obstack as the type they 649250397Sobrien declare, if necessary. 649318334Speter 649450397SobrienTue May 19 14:50:27 1998 Mark Mitchell <mmitchell@usa.net> 649518334Speter 649650397Sobrien * call.c (compare_qual): Remove. 649750397Sobrien (is_subseq): Tweak. 649850397Sobrien (is_properly_derived_from): New function. 649950397Sobrien (maybe_handle_ref_bind): Likewise. 650050397Sobrien (maybe_handle_implicit_object): Likewise. 650150397Sobrien (compare_ics): Modify substantially to bring into conformance with 650250397Sobrien the standard. 650350397Sobrien * cp-tree.h (TYPE_PTRMEMFUNC_OBJECT_TYPE): New macro. 650450397Sobrien (comp_cv_qualification): Declare. 650550397Sobrien (comp_cv_qual_signature): Likewise. 650650397Sobrien * typeck.c (comp_cv_qualification): Likewise. 650750397Sobrien (comp_cv_qual_signature): Likewise. 650818334Speter 650950397SobrienTue May 19 10:05:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 651018334Speter 651150397Sobrien * Makefile.in (parse.o): Depend on toplev.h. 651218334Speter 651350397Sobrien * class.c (typecode_p): Remove prototype and definition. 651418334Speter 651550397Sobrien * cp-tree.h (currently_open_class, is_empty_class, member_p): 651650397Sobrien Add prototype. 651718334Speter 651850397Sobrien * decl.c (push_overloaded_decl_top_level): Remove prototype and 651950397Sobrien definition. 652018334Speter 652150397Sobrien * errfn.c (cp_error): Cast function pointer `error' to (errorfn *) 652252284Sobrien in call to `cp_thing'. 652350397Sobrien (cp_warning): Likewise for function pointer `warning'. 652418334Speter 652550397Sobrien * except.c (do_function_call): Remove prototype and definition. 652650397Sobrien (call_eh_info): Wrap variable `t1' in macro NEW_EH_MODEL. 652718334Speter 652850397Sobrien * method.c (is_java_type): Add prototype and make it static. 652918334Speter 653050397Sobrien * parse.y: Include toplev.h. 653118334Speter 653250397Sobrien * pt.c (type_unification): Remove unused variable `arg'. 653352284Sobrien (instantiate_decl): Likewise for `save_ti'. 653418334Speter 653550397Sobrien * tree.c (propagate_binfo_offsets): Likewise for `base_binfos'. 653652284Sobrien 653750397SobrienTue May 19 02:43:25 1998 Jason Merrill <jason@yorick.cygnus.com> 653818334Speter 653950397Sobrien * init.c (build_member_call): Handle template_ids. 654050397Sobrien * parse.y (primary): Add global_scope template_id. 654118334Speter 654250397SobrienMon May 18 23:22:52 1998 Jason Merrill <jason@yorick.cygnus.com> 654318334Speter 654450397Sobrien * decl2.c (get_sentry): Use end_temporary_allocation. 654550397Sobrien Don't declare permanent_obstack. 654618334Speter 654750397SobrienMon May 18 12:28:44 1998 Mark Mitchell <mmitchell@usa.net> 654818334Speter 654950397Sobrien * parse.y (.finish_new_placement): New non-terminal. 655052284Sobrien (unary_expr, new_type_id): Use it. 655150397Sobrien * parse.c: Regenerated. 655252284Sobrien 655350397SobrienMon May 18 12:20:27 1998 Brendan Kehoe <brendan@cygnus.com> 655418334Speter 655550397Sobrien * pt.c (redeclare_class_template): Say where the original definition 655650397Sobrien of the template-parameter's default argument appeared. 655718334Speter 655850397SobrienMon May 18 03:00:57 1998 Jason Merrill <jason@yorick.cygnus.com> 655918334Speter 656050397Sobrien * call.c (build_over_call): Tweak empty class handling. 656118334Speter 656250397Sobrien * decl.c (make_typename_type): Use currently_open_class. 656318334Speter 656450397Sobrien * class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG. 656518334Speter 656650397SobrienMon May 18 01:43:01 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> 656718334Speter 656852284Sobrien * decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE 656950397Sobrien for a type unless it is one. 657018334Speter 657150397Sobrien * class.c (finish_struct_1): Use OVL_CURRENT in error message. 657218334Speter 657350397SobrienMon May 18 01:24:08 1998 Jeffrey A Law (law@cygnus.com) 657418334Speter 657550397Sobrien * Makefile.in (program_transform_name, objdir): Define. 657618334Speter 657750397Sobrien * Makefile.in (BISON): Use bison from the build tree if it exists. 657852284Sobrien (FLEX): Likewise. 657918334Speter 658050397SobrienSun May 17 14:52:08 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> 658118334Speter 658250397Sobrien * typeck.c (type_unknown_p): Return true for TREE_LIST also. 658318334Speter 658450397Sobrien * call.c (build_method_call): Use TYPE_MAIN_VARIANT on typedefs. 658518334Speter 658650397SobrienSun May 17 14:51:41 1998 Jason Merrill <jason@yorick.cygnus.com> 658718334Speter 658850397Sobrien * call.c (build_scoped_method_call): Likewise. 658918334Speter 659050397SobrienSun May 17 13:53:48 1998 Mark Mitchell <mmitchell@usa.net> 659118334Speter 659250397Sobrien * init.c (build_new_1): Call suspend_momentary around the creation 659350397Sobrien of values that must be saved for exception handling. 659450397Sobrien * parse.y (.build_new_placement): New non-terminal. 659550397Sobrien (unary_expr, new_placement): Use it. 659650397Sobrien * parse.c: Regenerated. 659752284Sobrien 659850397SobrienSun May 17 12:32:08 1998 Jason Merrill <jason@yorick.cygnus.com> 659918334Speter 660050397Sobrien * decl.c (duplicate_decls): Use CANONICAL_TYPE_VARIANT to compare 660150397Sobrien old and new types. 660218334Speter 660350397Sobrien * pt.c (tsubst): Make sure that BINFO_TYPE of new binfos is the 660450397Sobrien canonical type. 660518334Speter 660650397Sobrien * call.c (build_over_call): Don't use IS_SIGNATURE on a namespace. 660718334Speter 660850397SobrienFri May 15 20:28:00 1998 Jason Merrill <jason@yorick.cygnus.com> 660918334Speter 661050397Sobrien * decl.c (start_decl): Revert problem change. 661118334Speter 661250397Sobrien * Makefile.in (CONFLICTS): Fix. 661318334Speter 661450397SobrienFri May 15 15:34:02 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 661518334Speter 661652284Sobrien * decl.c (duplicate_decls): Clean up, add DECL_DATA_AREA bits. 661718334Speter 661850397SobrienFri May 15 00:46:05 1998 Jason Merrill <jason@yorick.cygnus.com> 661918334Speter 662050397Sobrien * class.c (finish_struct_1): Use BINFO_SIZE. 662118334Speter 662250397Sobrien * decl.c (start_decl): Use 'tem'. 662318334Speter 662452284SobrienThu May 14 16:30:47 1998 Andrew MacLeod <amacleod@cygnus.com> 662518334Speter 662650397Sobrien * exception.cc: Include eh-common.h. 662752284Sobrien (struct cp_eh_info): Add eh_info struct with NEW_EH_MODEL. 662850397Sobrien (__cplus_type_matcher): First stab at new C++ runtime type matcher. 662950397Sobrien (__cp_push_exception): Initialize eh_info struct as well. 663050397Sobrien * except.c: Remove local structs and include eh-common.h. 663150397Sobrien (init_exception_processing): Set language and version codes. 663252284Sobrien (call_eh_info): Add presence of eh_info to runtime description of 663350397Sobrien struct cp_eh_info. 663452284Sobrien (expand_end_eh_spec): Call start_catch_block() and end_catch_block(). 663552284Sobrien * semantics.c (finish_try_block): Call start_catch_block() and 663650397Sobrien end_catch_block(). 663752284Sobrien * parse.y (function_try_block): Call start_catch_block() and 663850397Sobrien end_catch_block(). 663918334Speter 664050397SobrienThu May 14 12:27:34 1998 Brendan Kehoe <brendan@cygnus.com> 664118334Speter 664250397Sobrien * typeck.c (original_type): New function. 664350397Sobrien (common_type): Use it to get the DECL_ORIGINAL_TYPE for T1 and T2, 664450397Sobrien to see if they're actually the same. 664550397Sobrien * cp-tree.h (original_type): Declare. 664618334Speter 664750397SobrienWed May 13 12:54:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 664818334Speter 664950397Sobrien * Makefile.in (lex.o): Depend on output.h. 665052284Sobrien 665150397Sobrien * call.c (add_function_candidate): Remove unused variable `cand'. 665250397Sobrien (add_conv_candidate): Likewise. 665350397Sobrien (build_builtin_candidate): Likewise. 665452284Sobrien 665550397Sobrien * cp-tree.h: Add prototype for `types_overlap_p'. 665618334Speter 665750397Sobrien * decl.c (signal_catch): Mark parameter `sig' with ATTRIBUTE_UNUSED. 665818334Speter 665950397Sobrien * decl2.c (merge_functions): Remove unused variables `tmp' and 666050397Sobrien `tempn'. 666118334Speter 666250397Sobrien * error.c (expr_as_string): Mark parameter `v' with ATTRIBUTE_UNUSED. 666350397Sobrien (code_as_string): Likewise. 666450397Sobrien (language_as_string): Likewise. 666550397Sobrien (parm_as_string): Likewise. 666650397Sobrien (op_as_string): Likewise. 666750397Sobrien (assop_as_string): Likewise. 666850397Sobrien (cv_as_string): Likewise. 666918334Speter 667050397Sobrien * lex.c: Include output.h. 667118334Speter 667250397Sobrien * pt.c (type_unification): Cast first argument of `bzero' to a char*. 667318334Speter 667450397Sobrien * search.c (dfs_no_overlap_yet): Mark parameter `t' with 667550397Sobrien ATTRIBUTE_UNUSED. 667618334Speter 667750397Sobrien * tinfo.cc (__class_type_info::dcast): Change the type of variable 667850397Sobrien `i' from int to size_t. 667918334Speter 668050397Sobrien * typeck.c (language_lvalue_valid): Mark parameter `exp' with 668150397Sobrien ATTRIBUTE_UNUSED. 668218334Speter 668350397SobrienTue May 12 21:37:49 1998 Jason Merrill <jason@yorick.cygnus.com> 668418334Speter 668550397Sobrien * error.c (dump_simple_decl): Use DECL_CLASS_SCOPE_P and/or 668650397Sobrien DECL_NAMESPACE_SCOPE_P. 668750397Sobrien (lang_decl_name): Likewise. 668850397Sobrien * pt.c (tsubst_friend_function, tsubst): Likewise. 668952284Sobrien * decl.c (pushdecl, redeclaration_error_message, start_decl, 669050397Sobrien cp_finish_decl, start_function): Likewise. 669150397Sobrien * class.c (finish_struct_1): Likewise. 669250397Sobrien * call.c (build_over_call): Likewise. 669350397Sobrien (compare_ics): Use DERIVED_FROM_P. 669418334Speter 669550397SobrienTue May 12 07:24:18 1998 Mark Mitchell <mmitchell@usa.net> 669618334Speter 669750397Sobrien * cp-tree.h (CANONICAL_TYPE_VARIANT): New macro. 669850397Sobrien * method.c (build_mangled_name): Use it. 669950397Sobrien (build_decl_overload_real): Likewise. 670018334Speter 670150397Sobrien * error.c (dump_simple_decl): New function, broken out from ... 670250397Sobrien (dump_decl): Use it. 670318334Speter 670450397SobrienMon May 11 11:38:07 1998 Mark Mitchell <mmitchell@usa.net> 670518334Speter 670650397Sobrien * ptree.c (lang_print_xnode): Add missing `break'. 670718334Speter 670850397Sobrien * pt.c (tsubst): Remove duplicate check for IDENTIFIER_NODE. 670918334Speter 671050397Sobrien * call.c (add_template_candidate): Adjust for changes to 671152284Sobrien fn_type_unification. 671250397Sobrien (add_template_candidate_real): Likewise. 671350397Sobrien (add_template_conv_candidate): Likewise. 671450397Sobrien (build_user_type_conversion_1): Likewise. 671550397Sobrien (build_new_function_call): Likewise. 671650397Sobrien (build_object_call): Likewise. 671750397Sobrien (build_new_op): Likewise. 671850397Sobrien (build_new_method_call): Likewise. 671950397Sobrien * class.c (instantiate_type): Likewise. 672050397Sobrien * cp-tree.h (unification_kind_t): New type. 672150397Sobrien (fn_type_unification): Adjust prototype. 672250397Sobrien (type_unificaiton): Likewise. 672350397Sobrien * pt.c (UNIFY_ALLOW_NONE): New macro. 672450397Sobrien (UNIFY_ALLOW_MORE_CV_QUAL): Likewise. 672550397Sobrien (UNIFY_ALLOW_LESS_CV_QUAL): Likewise. 672650397Sobrien (UNIFY_ALLOW_DERIVED): Likewise. 672750397Sobrien (unify): Change prototype. 672850397Sobrien (maybe_adjust_types_for_deduction): New function. 672950397Sobrien (check_cv_quals_for_unify): Likewise. 673050397Sobrien (determine_specialization): Adjust. 673150397Sobrien (fn_type_unification): Likewise. 673250397Sobrien (type_unification): Likewise. 673350397Sobrien (type_unification_real): Likewise. Use 673450397Sobrien maybe_adjust_types_for_deduction. Fix mishandling of 673550397Sobrien back-unification of template functions passed as arguments. Pass 673650397Sobrien appropriate combination of UNIFY_ALLOW_* to unify. 673750397Sobrien (unify): Remove unused NTPARMS parameter. Use 673850397Sobrien check_cv_quals_for_unify. Remove bogus code that allowed 673950397Sobrien too-generous unification in order to adhere more closely to standard. 674050397Sobrien (get_bindings_real): Adjust. 674150397Sobrien (get_class_bindings): Likewise. 674218334Speter 674350397Sobrien * method.c (build_overload_identifier): Only use the innermost 674450397Sobrien template arguments when mangling. 674550397Sobrien * pt.c (tsubst_template_argument_vector): New function. 674650397Sobrien (complete_template_args): Deal with the situation where the 674750397Sobrien extra_args contain more than one level of arguments. 674850397Sobrien (lookup_template_class): Deal with member template classes, which 674950397Sobrien may have more than one level of arguments. 675050397Sobrien (tsubst): Don't tsbust into the TREE_TYPE of an IDENTIFIER_NODE. 675150397Sobrien Improve handling of member template classes. Use 675250397Sobrien DECL_PRIMARY_TEMPLATE instead of inline expansion. Use 675350397Sobrien tsubst_template_argument_vector where appropriate. 675450397Sobrien (regenerate_decl_from_template): Break out from ... 675550397Sobrien (instantiate_decl): Here. 675652284Sobrien 675750397Sobrien * lex.c (yyprint): Remove TYPENAME_ELLIPSIS. 675850397Sobrien * parse.h: Regenerated. 675950397Sobrien * parse.c: Really regenerated. 676052284Sobrien 676150397Sobrien * cp-tree.h (finish_unary_op_expr): New function. 676250397Sobrien (finish_id_expr): Likewise. 676350397Sobrien (begin_new_placement): Likewise. 676450397Sobrien (finish_new_placement): Likewise. 676550397Sobrien (finish_declarator): Likewise. 676650397Sobrien (finish_translation_unit): Likewise. 676750397Sobrien (finish_parmlist): Likewise. 676850397Sobrien (begin_class_definition): Likewise. 676950397Sobrien (finish_class_definition): Likewise. 677050397Sobrien (finish_default_args): Likewise. 677150397Sobrien (finish_inline_definitions): Likewise. 677250397Sobrien * parse.y (GCC_ASM_KEYWORD): Remove. 677350397Sobrien (TYPENAME_ELLIPSIS): Likewise. 677450397Sobrien * parse.c: Regenerated. 677550397Sobrien Use new functions in semantics.c in the actions for many rules. 677650397Sobrien * gxx.gperf (GCC_ASM_KEYWORD): Just use ASM_KEYWORD. 677750397Sobrien * hash.h: Regenerated. 677850397Sobrien * semantics.c (finish_expr_stmt): Allow NULL expr. 677950397Sobrien (finish_unary_op_expr): New function, containing 678050397Sobrien code previously in parse.y. 678150397Sobrien (finish_id_expr): Likewise. 678250397Sobrien (begin_new_placement): Likewise. 678350397Sobrien (finish_new_placement): Likewise. 678450397Sobrien (finish_declarator): Likewise. 678550397Sobrien (finish_translation_unit): Likewise. 678650397Sobrien (finish_parmlist): Likewise. 678750397Sobrien (begin_class_definition): Likewise. 678850397Sobrien (finish_class_definition): Likewise. 678950397Sobrien (finish_default_args): Likewise. 679050397Sobrien (finish_inline_definitions): Likewise. 679118334Speter 679250397SobrienSun May 10 23:43:13 1998 Mark Mitchell <mmitchell@usa.net> 679318334Speter 679450397Sobrien * typeck.c (build_c_cast): Don't decay arrays and functions to 679550397Sobrien pointer type when converting to a class type. 679618334Speter 679750397SobrienSun May 10 22:53:56 1998 Jason Merrill <jason@yorick.cygnus.com> 679818334Speter 679950397Sobrien * cp-tree.h (DECL_NAMESPACE_SCOPE_P): New macro. 680050397Sobrien (DECL_CLASS_SCOPE_P): Likewise. 680118334Speter 680250397SobrienSun May 10 22:48:22 1998 H.J. Lu (hjl@gnu.org) 680318334Speter 680450397Sobrien * class.c (finish_struct_1): Use OVL_CURRENT on TREE_VEC_ELT. 680550397Sobrien * decl2.c (constructor_name_full): Likewise. 680618334Speter 680750397SobrienSun May 10 22:48:12 1998 Mike Stump <mrs@wrs.com> 680818334Speter 680950397Sobrien * tree.c (mapcar): Add OVERLOAD support. 681018334Speter 681150397Sobrien * init.c (resolve_offset_ref): We must use basetype_path before we 681250397Sobrien destroy it with a call to convert_pointer_to. 681318334Speter 681450397SobrienSat May 9 14:44:37 1998 Jason Merrill <jason@yorick.cygnus.com> 681518334Speter 681650397Sobrien * class.c (currently_open_class): New fn. 681750397Sobrien * decl.c (lookup_name_real): Use it. 681850397Sobrien * search.c (lookup_field): Likewise. 681918334Speter 682050397SobrienFri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> 682118334Speter 682252284Sobrien * cp-tree.def (OVERLOAD): New node. 682350397Sobrien * cp-tree.h (BINDING_TYPE, SET_IDENTIFIER_GLOBAL_VALUE, 682450397Sobrien SET_IDENTIFIER_NAMESPACE_VALUE): Define. 682550397Sobrien (NAMESPACE_BINDING): Remove. 682650397Sobrien (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_NAMESPACE_VALUE): Use 682750397Sobrien namespace_binding. 682850397Sobrien (OVL_FUNCTION, OVL_CHAIN, OVL_CURRENT, OVL_NEXT, OVL_USED): 682950397Sobrien Define. 683050397Sobrien (tree_overload): New struct. 683150397Sobrien (IDENTIFIER_TYPE_VALUE): Use identifier_type_value. 683250397Sobrien (REAL_IDENTIFIER_TYPE_VALUE): Define. 683350397Sobrien (IDENTIFIER_HAS_TYPE_VALUE): Use IDENTIFIER_TYPE_VALUE. 683450397Sobrien (lang_decl_flags): Remove in_namespace. 683550397Sobrien (lang_decl): Remove chain. 683650397Sobrien (DECL_CHAIN, DECL_NAMESPACE): Remove. 683750397Sobrien (flag_honor_std): Declare extern. 683850397Sobrien (identifier_type_value, pushdecl_namespace_level, push_using_decl, 683950397Sobrien namespace_binding, set_namespace_binding, 684050397Sobrien lookup_function_nonclass, cat_namespace_levels, 684150397Sobrien set_decl_namespace, lookup_arg_dependent, binding_init, ovl_cons, 684250397Sobrien scratch_ovl_cons, ovl_member, build_overload): Declare. 684350397Sobrien (decl_list_length, get_namespace_id, current_namespace_id, 684450397Sobrien overloaded_globals_p): Remove. 684550397Sobrien (lookup_using_namespace, qualified_lookup_using_namespace): Change 684650397Sobrien return type. 684750397Sobrien (push_scratch_obstack): New macro. 684850397Sobrien * call.c (add_function_candidate): Special-case type of OVERLOAD node. 684950397Sobrien (build_user_conversions_1): Iterate using OVL_NEXT for ctors, 685050397Sobrien convs, fns. 685152284Sobrien (build_new_function_call): Iterate using OVL_CHAIN. 685250397Sobrien Print DECL_NAME in when reporting ambiguities. 685350397Sobrien (build_object_call): Iterate using OVL_NEXT for fns, convs. 685452284Sobrien (build_new_op): Call lookup_function_nonclass. 685550397Sobrien Iterate using OVL_NEXT. 685650397Sobrien (build_op_delete_call): Change detection of members. 685750397Sobrien Do not wrap TREE_LIST around fields and single global functions. 685850397Sobrien (build_over_call): Don't push a class level if the context is a 685950397Sobrien namespace. 686050397Sobrien (build_new_method_call): Iterate using OVL_NEXT. 686150397Sobrien * class.c (add_method): Chain overloaded members using 686250397Sobrien build_overload. Remove copying of method. 686350397Sobrien (grow_method): When iterating through the obstack, expect OVERLOAD 686450397Sobrien nodes. Chain overload members. 686550397Sobrien (finish_struct_methods): Chain overload members. Unpack OVERLOAD 686650397Sobrien nodes in call to get_baselinks. 686750397Sobrien (duplicate_tag_error): Expect OVERLOAD nodes when unchaining. 686850397Sobrien (finish_struct_1): Iterate over ctor using OVL_NEXT. Handle 686950397Sobrien fdecls that are OVERLOAD nodes. 687050397Sobrien (validate_lhs): New function. 687150397Sobrien (instantiate_type): Do not copy OVERLOAD nodes. Remove dead 687252284Sobrien code. Use DECL_NAME in error messages. Split code between global 687350397Sobrien and member function processing. 687450397Sobrien * decl.c (global_type_node): New static variable. 687550397Sobrien (in_std): New global. 687650397Sobrien (struct binding_level): New field usings. 687750397Sobrien (resume_binding_level): Assert that we are not in a class. 687850397Sobrien (toplevel_bindings_p): Just check for namespace_p or 687950397Sobrien pseudo_global. 688050397Sobrien (resume_level): Remove. 688150397Sobrien (find_binding): New function. 688250397Sobrien (binding_for_name): Call it. 688350397Sobrien (namespace_binding, set_namespace_binding): New functions. 688450397Sobrien (push_namespace): Associate binding level with new namespace, 688550397Sobrien resume_binding_level for existing namespace. Remove old code. 688650397Sobrien Fake std by counting. 688750397Sobrien (store_bindings): Use REAL_IDENTIFIER_TYPE_VALUE. 688850397Sobrien (maybe_push_to_top_level): Save current namespace. 688950397Sobrien (pop_from_top_level): Restore saved namespace. 689050397Sobrien (pop_namespace): Call suspend_binding_level. Remove old code. 689150397Sobrien (cat_namespace_levels): New function. 689250397Sobrien (set_identifier_type_value_with_scope): For namespace bindings, 689350397Sobrien set BINDING_TYPE, and use global_type_node. 689450397Sobrien Use REAL_IDENTIFIER_TYPE_VALUE otherwise. 689550397Sobrien (identifier_type_value): New function. 689650397Sobrien (pushtag): If no context, use current_namespace. 689750397Sobrien (duplicate_decls): Don't process DECL_CHAIN. 689850397Sobrien (pushdecl): Set DECL_CONTEXT to current_namespace, if it is not 689952284Sobrien already set. Never reset it to NULL_TREE. Lookup global variables 690050397Sobrien in their namespace. Push overloaded templates if they are on 690150397Sobrien namespace level. 690250397Sobrien (pushdecl_namespace_level): New function. 690350397Sobrien (pushdecl_top_level): Implement using pushdecl_namespace_level. 690450397Sobrien (pushdecl_using_decl): New function. 690550397Sobrien (overloaded_globals_p): Remove. 690650397Sobrien (push_overloaded_decl): Create OVERLOAD nodes, and iterate through 690752284Sobrien them. Use namespace_binding and set_namespace_value. 690850397Sobrien (redeclaration_error_message): Complain if the declarations come 690950397Sobrien from different namespaces. 691050397Sobrien (lookup_tag): On namespace level, look in the BINDING_TYPE. 691150397Sobrien (lookup_namespace_name): Pass tree_bindings from stack. Remove 691250397Sobrien old code. 691350397Sobrien (select_decl): New function. 691450397Sobrien (lookup_name_real): Call it for qualified and unqualified lookup. 691550397Sobrien Pass tree_bindings from the stack. 691650397Sobrien If prefer_type is 1, also accept namespaces. 691750397Sobrien (lookup_function_nonclass): New function. 691850397Sobrien (init_decl_processing): Set the binding level of the global 691950397Sobrien namespace to global_binding_level. 692050397Sobrien Build a proper type list for __builtin_apply. 692150397Sobrien Initialize std_node to "fake std" if flag_honor_std is set. 692250397Sobrien Initialize global_type_node. 692350397Sobrien Allocated bad_alloc in namespace std if flag_honor_std. 692450397Sobrien (define_function): Set the DECL_CONTEXT to the current_namespace. 692550397Sobrien (start_decl): A namespace is not considered as a context here. If 692650397Sobrien the DECL_CONTEXT is a namespace, push the decl. 692750397Sobrien (cp_finish_decl): Check for namespaces used as initializers. 692850397Sobrien (grokfndecl): Add namespace parameter. Remove processing of 692950397Sobrien DECL_CHAIN. 693050397Sobrien (grokvardecl): Add namespace parameter. 693150397Sobrien (grokdeclarator): Process SCOPEs that are namespaces. For 693250397Sobrien mangling, temporarily set the DECL_CONTEXT on anonymous structs. 693352284Sobrien (start_function): Check for contexts that are namespaces. 693450397Sobrien Set context for declarations that have not been pushed. 693550397Sobrien (store_parm_decls): Check for ::main only. 693650397Sobrien (finish_function): Likewise. 693750397Sobrien (start_method): Check for contexts that are namespaces. 693850397Sobrien (start_method): Remove DECL_CHAIN processing. 693950397Sobrien * decl2.c (flag_honor_std): Declare. 694050397Sobrien (lang_decode_option): Set it if -fhonor-std or -fnew-abi is given. 694150397Sobrien (decl_namespace_list): New static global. 694250397Sobrien (grok_x_components): Ignore namespaces as type contexts. 694350397Sobrien (check_classfn): Expect OVERLOAD nodes. 694450397Sobrien (grokfield): Remove DECL_CHAIN processing. 694550397Sobrien (finish_file): Call cat_namespace_levels. 694650397Sobrien (merge_functions): New function. 694750397Sobrien (ambiguous_decl): Rewrite. 694850397Sobrien (lookup_using_namespace): Produce tree_bindings. 694950397Sobrien (qualified_lookup_using_namespace): Likewise. 695050397Sobrien (set_decl_namespace, decl_namespace, current_decl_namespace, 695150397Sobrien push_decl_namespace, pop_decl_namespace): New functions. 695250397Sobrien (arg_lookup): New struct. 695350397Sobrien (add_function, arg_assoc_namespace, arg_assoc_class, 695450397Sobrien arg_assoc_type, arg_assoc_args, arg_assoc, lookup_arg_dependent): 695550397Sobrien New functions. 695650397Sobrien (get_namespace_id, current_namespace_id): Remove. 695750397Sobrien (do_toplevel_using_decl): Rewrite. 695850397Sobrien (do_class_using_decl): Complain about namespace qualifiers. 695950397Sobrien (do_using_directive): Sorry if not on namespace level. Complain 696050397Sobrien about unknown namespaces. 696150397Sobrien * error.c (dump_aggr_type): Check for namespace contexts. 696250397Sobrien * except.c (init_exception_processing): Push terminate into std. 696350397Sobrien * friend.c (is_friend): A namespace is not a context, here. 696450397Sobrien * init.c (expand_member_init): Remove DECL_CHAIN processing. 696550397Sobrien (build_offset_ref): Process OVERLOAD nodes. 696650397Sobrien * lang-specs.h (__HONOR_STD): Define if -fnew-abi or -fhonor-std. 696750397Sobrien * lex.c (identifier_type): Loop using OVL_CHAIN. 696850397Sobrien (see_typename): Set looking_for_typename to 2. 696952284Sobrien (real_yylex): Likewise. 697050397Sobrien (do_identifier): Expect OVERLOAD nodes instead of TREE_LISTs. 697150397Sobrien (do_scoped_id): Expect OVERLOAD nodes. 697250397Sobrien Change calling convention for qualified_lookup_using_namespace. 697350397Sobrien (build_lang_decl): Don't set in_namespace anymore. 697450397Sobrien * method.c (typevec_size): New global. 697550397Sobrien (build_overload_nested_name): Return if global_namespace. 697650397Sobrien Otherwise, always expect a declaration context. 697750397Sobrien (build_qualified_name): Likewise. 697850397Sobrien Make sure we don't write beyond typevec_size. 697950397Sobrien (build_decl_overload_real): Likewise. 698050397Sobrien Allocate one extra slot for the namespace. 698150397Sobrien (hack_identifier): Mark code dead. 698250397Sobrien Process OVERLOAD and NAMESPACE_DECL nodes. 698350397Sobrien * parse.y (program): Pop namespaces until in global namespace. 698450397Sobrien (extdef): In a using-declaration, don't discard the identifier if 698550397Sobrien there is no declaration. 698650397Sobrien (left_curly): Ignore type contexts which are namespaces. 698750397Sobrien (typename_sub2): Use IDENTIFIER_TYPE_VALUE to retrieve the type 698850397Sobrien used as scope. 698950397Sobrien * pt.c (template_class_depth): Expect types to be namespaces. 699050397Sobrien (determine_specialization): Simplify by expecting OVERLOAD nodes. 699150397Sobrien (push_template_decl): Push into namespace level. 699250397Sobrien Reset ctx if it is a namespace. 699350397Sobrien Set DECL_CONTEXT to current_namespace if not set already. 699450397Sobrien Ignore real contexts that are namespaces. 699550397Sobrien (mangle_class_name_for_template): Skip global_namespace. 699652284Sobrien Mangle other namespaces as declarations. 699750397Sobrien (lookup_template_function): Set type of OVERLOAD nodes to unknown. 699850397Sobrien (lookup_template_class): Push into namespace of context. 699950397Sobrien If the context is a namespace, set it to global_namespace. 700050397Sobrien Use id_context for mangling. 700150397Sobrien (for_each_template_parm): Handle OVERLOAD and NAMESPACE_DECL nodes. 700250397Sobrien (tsubst_friend_function): Ignore namespace contexts. 700350397Sobrien Push into namespace level. 700450397Sobrien (tsubst): Handle NAMESPACE_DECL nodes. 700550397Sobrien Remove DECL_CHAIN processing. 700650397Sobrien (type_unification_real): Recognize OVERLOAD instead of TREE_LIST nodes. 700750397Sobrien * ptree.c (print_lang_identifier): Print bindings. 700850397Sobrien (lang_print_xnode): Print OVERLOAD nodes. 700950397Sobrien * rtti.c (init_rtti_processing): Push type_info into std. 701050397Sobrien * search.c (lookup_fnfields_here): Expect OVERLOAD nodes. 701150397Sobrien (lookup_fnfields_1, get_virtuals_named_this, get_matching_virtual, 701250397Sobrien dfs_debug_mark, dfs_pushdecls, dfs_compress_decls, add_conversions, 701350397Sobrien lookup_fnfields_here): Likewise. 701450397Sobrien Process all nodes, instead of going through TREE_CHAIN. 701550397Sobrien * sig.c (build_signature_pointer_or_reference_type): Set context 701650397Sobrien to global_namespace. 701750397Sobrien (build_signature_table_constructor): Expect OVERLOAD nodes. 701850397Sobrien * spew.c (yylex): Save old setting of looking_for_typename. 701950397Sobrien * tree.c (decl_list_length): Remove. 702050397Sobrien (binding_init): New function. 702150397Sobrien (count_functions): Rewrite. 702250397Sobrien (is_overloaded_fn): Expect OVERLOAD nodes. 702350397Sobrien (really_overloaded_fn, get_first_fn, lvalue_type): Likewise. 702450397Sobrien (ovl_cons, scratch_ovl_cons, build_overload, build_overload_after, 702550397Sobrien ovl_member): New functions. 702650397Sobrien * typeck.c (require_complete_type): Expect OVERLOAD nodes. 702750397Sobrien (type_unknown_p): Likewise. 702850397Sobrien (require_instantiated_type): Likewise. 702950397Sobrien (build_component_ref): Declare code dead. 703050397Sobrien (build_x_function_call): Create and expect OVERLOAD nodes. 703150397Sobrien (build_function_call_real): Check for ::main only. 703250397Sobrien (build_unary_op): Likewise. Expect OVERLOAD nodes. 703350397Sobrien (convert_for_assignment): Check for TREE_LIST before accessing 703450397Sobrien TREE_VALUE. 703550397Sobrien * decl.c (duplicate_decls): Check for namespace bindings instead 703650397Sobrien of global bindings. 703750397Sobrien (pushdecl, push_overloaded_decl, lookup_tag, lookup_name_real, 703852284Sobrien lookup_name_current_level, start_decl, xref_tag, 703950397Sobrien finish_enum): Likewise. 704050397Sobrien * init.c (build_offset_ref): Likewise. 704150397Sobrien * search.c (lookup_field): Likewise. 704250397Sobrien (lookup_fnfields): Likewise. 704350397Sobrien (dfs_debug_mark): Likewise. 704450397Sobrien * decl.c (poplevel): Use SET_IDENTIFIER_TYPE_VALUE. 704550397Sobrien (poplevel_class, pop_from_top_level): Likewise. 704650397Sobrien * decl2.c (finish_method): Likewise. 704750397Sobrien * class.c (build_vtable): Use SET_IDENTIFIER_GLOBAL_VALUE. 704850397Sobrien * decl.c (record_builtin_type): Likewise. 704950397Sobrien (init_decl_processing, grokfndecl): Likewise. 705050397Sobrien * lex.c (get_time_identifier, do_identifier, do_scoped_id): Likewise. 705150397Sobrien (make_lang_type): Likewise. 705250397Sobrien * parse.y (make_thunk): Likewise. 705350397Sobrien * pt.c (tsubst): Likewise. 705450397Sobrien * tree.c (debug_binfo): Likewise. 705552284Sobrien * exception.cc, new.cc, new1.cc, new2.cc, tinfo.cc, tinfo.h, 705650397Sobrien tinfo2.cc, inc/new.h: Add std qualifications. 705750397Sobrien * inc/new: Wrap with namespace std if __HONOR_STD. 705850397Sobrien * inc/typeinfo: Likewise. 705918334Speter 706050397SobrienFri May 8 00:43:50 1998 Jason Merrill <jason@yorick.cygnus.com> 706118334Speter 706252284Sobrien * call.c (build_user_type_conversion_1): Handle second_conv 706350397Sobrien properly for templates. 706418334Speter 706552284SobrienThu May 7 17:09:25 1998 Andrew MacLeod <amacleod@cygnus.com> 706618334Speter 706750397Sobrien * method.c (build_decl_overload_real): Set TREE_USED flag to 706850397Sobrien zero for build_type_variants nodes as well. 706918334Speter 707050397SobrienWed May 6 19:27:09 1998 Jason Merrill <jason@yorick.cygnus.com> 707118334Speter 707250397Sobrien * pt.c (tsubst): Don't tsubst the type of an IDENTIFIER_NODE. 707318334Speter 707450397SobrienWed May 6 16:49:48 1998 Jim Wilson <wilson@cygnus.com> 707518334Speter 707650397Sobrien * Makefile.in (call.o, class.o, decl.o, decl2.o, errfn.o, error.o, 707750397Sobrien except.o, expr.o, friend.o, init.o, lex.o, method.o, pt.o, repo.o, 707852284Sobrien rtti.o, search.o, semantics.o, sig.o, tree.o, typeck.o, typeck2.o, 707950397Sobrien xref.o): Add toplev.h dependencies. 708018334Speter 708150397SobrienWed May 6 16:44:58 1998 Jeffrey A Law (law@cygnus.com) 708218334Speter 708350397Sobrien * errfn.c (cp_error, cp_warning): Remove declarations for 708450397Sobrien error and warning respectively. 708518334Speter 708650397SobrienWed May 6 14:28:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 708718334Speter 708850397Sobrien * error.c: Convert to using ctype macros defined in system.h. 708950397Sobrien * method.c: Likewise. 709050397Sobrien * xref.c: Likewise. 709150397Sobrien * lex.c: Likewise. Also remove redundant system header stuff. 709218334Speter 709350397SobrienWed May 6 06:36:41 1998 Robert Lipe <robertl@dgii.com> 709418334Speter 709552284Sobrien * call.c, class.c, decl.c, decl2.c, errfn.c, error.c, except.c, 709652284Sobrien expr.c, friend.c, init.c, lex.c, method.c, pt.c, repo.c, rtti.c, 709752284Sobrien search.c, semantics.c, sig.c, tree.c, typeck.c, typeck2.c, 709850397Sobrien xref.c: Add include of toplev.h. 709918334Speter 710050397SobrienWed May 6 02:33:39 1998 Jason Merrill <jason@yorick.cygnus.com> 710118334Speter 710250397Sobrien * tree.c (perm_manip): Also regenerate the RTL of an extern. 710350397Sobrien (copy_to_permanent): Use end_temporary_allocation. 710418334Speter 710550397SobrienTue May 5 23:54:04 1998 Jason Merrill <jason@yorick.cygnus.com> 710618334Speter 710750397Sobrien * init.c (expand_vec_init): The initialization of each array 710850397Sobrien element is a full-expression. 710918334Speter 711052284SobrienTue May 5 18:24:13 1998 Andrew MacLeod <amacleod@cygnus.com> 711118334Speter 711252284Sobrien * method.c (build_mangled_name): Add a call to build_type_variant 711350397Sobrien to get the right type. 711418334Speter 711550397SobrienTue May 5 01:25:03 1998 Jason Merrill <jason@yorick.cygnus.com> 711618334Speter 711750397Sobrien * Makefile.in: Add .SUFFIXES. 711818334Speter 711950397Sobrien * cp-tree.def: Remove NAMESPACE_DECL. 712018334Speter 712150397SobrienSun May 3 01:32:14 1998 Jason Merrill <jason@yorick.cygnus.com> 712218334Speter 712352284Sobrien * call.c (build_over_call): Do evaluate arg even if it has empty 712450397Sobrien class type. 712550397Sobrien * decl.c (start_function): Don't push a member function. 712618334Speter 712750397SobrienThu Apr 30 18:59:23 1998 Jim Wilson <wilson@cygnus.com> 712818334Speter 712950397Sobrien * Makefile.in (g++FAQ.info): Put -o option before input file. 713018334Speter 713152284SobrienThu Apr 30 13:05:33 1998 Andrew MacLeod <amacleod@cygnus.com> 713218334Speter 713350397Sobrien * gxxint.texi: Add info for squangling codes K and B. 713418334Speter 713550397SobrienTue Apr 28 13:22:01 1998 Mark Mitchell <mmitchell@usa.net> 713618334Speter 713750397Sobrien * semantics.c (begin_stmt_expr): Avoid duplicating the effect of 713850397Sobrien the expression in templates. 713950397Sobrien (finish_stmt_expr): Likewise. 714018334Speter 714150397Sobrien1998-04-28 Brendan Kehoe <brendan@cygnus.com> 714218334Speter 714350397Sobrien * decl2.c (ambiguous_decl): Fix NAME parm to be a tree, not int. 714418334Speter 714550397SobrienMon Apr 27 13:58:10 1998 Mark Mitchell <mmitchell@usa.net> 714618334Speter 714750397Sobrien * decl.c (maybe_push_to_top_level): Always clear 714850397Sobrien current_template_parms and processing_template_decl. 714950397Sobrien (pushtag): Remove check of current_class_type and some comments, 715050397Sobrien since maybe_push_to_top_level no longer creates confusion. 715118334Speter 715250397SobrienSun Apr 26 12:10:18 1998 Mark Mitchell <mmitchell@usa.net> 715318334Speter 715450397Sobrien * cp-tree.h (CLASSTYPE_IS_TEMPLATE): New macro. 715550397Sobrien (DECL_CLASS_TEMPLATE_P): Likewise. 715650397Sobrien (DECL_PRIMARY_TEMPLATE): Likewise. 715750397Sobrien (PRIMARY_TEMPLATE_P): Use it. 715850397Sobrien (push_template_decl_real): New function. 715950397Sobrien (redeclare_class_template): Take new template parameters as 716052284Sobrien input. 716150397Sobrien (is_specialization_of): New function. 716250397Sobrien (comp_template_args): Declare. 716350397Sobrien * decl.c (pushtag): Handle friend template classes. 716450397Sobrien (xref_tag): Likewise. Use new calling convention for 716550397Sobrien redeclare_class_template. 716650397Sobrien * decl2.c (grok_x_components): Handle friend templates. 716750397Sobrien * friend.c (is_friend): Use is_specialization_of where 716850397Sobrien appropriate. Deal with friend class templates. 716950397Sobrien (make_friend_class): Let a class template be friends with itself. 717050397Sobrien * pt.c (comp_template_args): Remove declaration. 717150397Sobrien (tsubst_friend_class): New function. 717250397Sobrien (push_template_decl_real): New function. 717350397Sobrien (push_template_decl): Use it. 717450397Sobrien (redeclare_class_template): Adjust for new calling convention. 717550397Sobrien (comp_template_args): Give it external linkage. 717650397Sobrien (instantiate_class_type): Use tsubst_friend_class to deal 717750397Sobrien with friend templates. 717850397Sobrien * typeck.c (comptypes): Use comp_template_args, rather than 717950397Sobrien expanding it inline. 718052284Sobrien * parse.y (component_decl): Handle a nested template type 718150397Sobrien like other component type declarations. 718218334Speter 718350397Sobrien * pt.c (check_explicit_specialization): Handle overloaded 718450397Sobrien constructors correctly. 718518334Speter 718650397Sobrien * pt.c (mabybe_get_template_decl_from_type_decl): New function. 718750397Sobrien (lookup_template_class): Use it. 718818334Speter 718950397SobrienThu Apr 23 21:19:06 1998 Jason Merrill <jason@yorick.cygnus.com> 719018334Speter 719150397Sobrien * cp-tree.def: Add WRAPPER. USER_CONV now only has two ops. 719250397Sobrien * cp-tree.h: Add WRAPPER support. 719350397Sobrien * call.c (add_candidate): Split out from add_*_candidate fns. 719450397Sobrien (build_over_call): Take the candidate instead of function and args. 719550397Sobrien Enforce access control here. Emit overload warnings here. 719650397Sobrien (add_warning): New fn. 719750397Sobrien (joust): Add WARN parm. If not set, call add_warning instead of 719852284Sobrien printing a warning. Re-enable some warnings. 719950397Sobrien (tourney): Pass it. 720050397Sobrien (convert_like): Adjust. 720150397Sobrien (build_new_op): Adjust. 720250397Sobrien (build_new_function_call): Adjust. 720350397Sobrien (build_user_type_conversion_1): Adjust. 720450397Sobrien (USER_CONV_FN): Adjust. 720552284Sobrien * tree.c (build_expr_wrapper, build_expr_ptr_wrapper, 720650397Sobrien build_int_wrapper): New fns. 720718334Speter 720850397SobrienThu Apr 23 18:27:53 1998 Mark P. Mitchell <mmitchell@usa.net> 720918334Speter 721050397Sobrien * pt.c (unify): Fix typo in previous change. 721118334Speter 721250397SobrienThu Apr 23 09:32:58 1998 Jason Merrill <jason@yorick.cygnus.com> 721318334Speter 721450397Sobrien * error.c (dump_type_real): Declare canonical_name. 721518334Speter 721650397Sobrien * typeck.c (comp_target_types): Fix PMFs. 721718334Speter 721850397SobrienWed Apr 22 13:24:48 1998 Mark Mitchell <mmitchell@usa.net> 721918334Speter 722050397Sobrien * class.c (finish_struct): Set TREE_PRIVATE and TREE_PROTECTED for 722150397Sobrien the DECL_RESULTs of a member TEMPLATE_DECL, not just the 722250397Sobrien TEMPLATE_DECL. 722318334Speter 722452284Sobrien * pt.c (tsubst): Decrease the template-level of 722552284Sobrien TEMPLATE_TEMPLATE_PARMS. Likewise for the DECL_INITIAL of a 722652284Sobrien TEMPLATE_PARM_INDEX. 722752284Sobrien (template_decl_level): New function. 722852284Sobrien (unify): Make sure to record unifications for template 722952284Sobrien parameters, even when the parameters exactly match the arguments. 723052284Sobrien Combine duplicated code for TEMPLATE_TEMPLATE_PARMs and 723152284Sobrien TEMPLATE_TYPE_PARMS. Don't try to unify template parameters that 723252284Sobrien aren't from the level we're currently working on. 723318334Speter 723450397SobrienTue Apr 21 22:00:04 1998 Mark Mitchell <mmitchell@usa.net> 723518334Speter 723650397Sobrien * errfn.c (cp_thing): Use xrealloc, not xmalloc, to copy memory. 723718334Speter 723850397Sobrien * decl2.c (check_member_template): Set DECL_IGNORED for member 723950397Sobrien class templates, too. 724018334Speter 724150397Sobrien * decl2.c (grokfield): Remangle the name of a member TYPE_DECL. 724218334Speter 724350397SobrienTue Apr 21 18:59:11 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 724418334Speter 724550397Sobrien * decl.c (duplicate_decls): Only check DECL_FRIEND_P if function. 724618334Speter 724750397SobrienTue Apr 21 14:22:00 1998 Jeffrey A Law (law@cygnus.com) 724818334Speter 724950397Sobrien * cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Declare. 725050397Sobrien * decl.c (intTI_type_node, unsigned_intTI_type_node): Define. 725150397Sobrien (init_decl_processing): Handle TI types. 725250397Sobrien * typeck.c (unsigned_type, signed_type): Handle TI types. 725318334Speter 725450397SobrienSat Apr 18 15:25:21 1998 Jim Wilson <wilson@cygnus.com> 725518334Speter 725650397Sobrien * g++spec.c (lang_specific_driver): New argument in_added_libraries. 725750397Sobrien New local added_libraries. Increment count when add library to 725850397Sobrien arglist. 725918334Speter 726050397SobrienFri Apr 17 21:25:00 1998 Mark Mitchell <mmitchell@usa.net> 726118334Speter 726250397Sobrien * cp-tree.h (type_as_string_real): New function. 726350397Sobrien * pt.c (mangle_class_name_for_template): Use it. 726450397Sobrien * error.c (dump_aggr_type): Change prototype. 726550397Sobrien (dump_type_prefix): Likewise. 726650397Sobrien (dump_type_suffix): Likewise. 726750397Sobrien (dump_type_real): Convert from dump_type. If desired, the 726850397Sobrien "canonica" name of a typedef, i.e., the name of the underlying 726950397Sobrien type, can be printed. 727050397Sobrien (dump_type): Call dump_type_real. 727118334Speter 727250397SobrienFri Apr 17 14:30:45 1998 Jason Merrill <jason@yorick.cygnus.com> 727318334Speter 727450397Sobrien * decl2.c (lang_decode_option): -fnew-abi implies -fvtable-thunks. 727518334Speter 727650397Sobrien * typeck.c (comp_target_types): Tweak pedantic case. 727750397Sobrien (comp_target_parms): Tweak pedantic case. Clean up somewhat. 727850397Sobrien Return -1 or 1 instead of 1 or 2. 727950397Sobrien (compparms): Remove STRICT handling. 728050397Sobrien (convert_for_assignment): Fix handling of pmfs. 728118334Speter 728250397SobrienFri Apr 17 14:04:16 1998 Mark Mitchell <mmitchell@usa.net> 728318334Speter 728450397Sobrien * typeck.c (comp_target_types): Handle references like pointers. 728550397Sobrien (comp_target_parms): Note that return code from comp_target_types 728650397Sobrien can be negative to indicate failure. 728718334Speter 728850397SobrienFri Apr 17 09:10:52 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 728918334Speter 729050397Sobrien * Make-lang.in (c++.all.build): Don't depend on $(DEMANGLER_PROG), 729150397Sobrien which requires a working target compiler to build. 729218334Speter 729350397SobrienFri Apr 17 08:57:35 1998 Jeffrey A Law (law@cygnus.com) 729418334Speter 729550397Sobrien * tree.c (avoid_overlap): Add prototype. 729618334Speter 729750397Sobrien * spew.c (num_tokens): Add prototype. 729850397Sobrien (nth_noken, add_token, consume_token, debug_yychar): Likewise. 729918334Speter 730050397Sobrien * search.c (dfs_check_overlap): Add prototype. 730150397Sobrien (dfs_no_overlap_yet): Likewise. 730218334Speter 730350397Sobrien * pt.c (original_template): Add prototype. 730450397Sobrien (inline_needs_template_parms): Likewise. 730550397Sobrien (push_inline_template_parms_recursive): Likewise. 730650397Sobrien (retrieve_specialization, register_specialization): Likewise. 730750397Sobrien (print_candidates, reduce_template_parm_level): Likewise. 730850397Sobrien (build_template_decl, mark_template_parm): Likewise. 730950397Sobrien (tsubst_friend_function, get_bindings_real): Likewise. 731018334Speter 731150397Sobrien * method.c (start_squangling): Add prototype. 731250397Sobrien (end_squangling, check_ktype, issue_ktype): Likewise. 731350397Sobrien (build_overloaded_scope_ref, check_btype): Likewise. 731450397Sobrien (build_mangled_template_parm_index): Likewise. 731518334Speter 731650397Sobrien * lex.c (init_cpp_parse): Add prototype. 731750397Sobrien (handle_cp_pragma, handle_sysv_pragma): Likewise. 731850397Sobrien (reduce_cmp, token_cmp): Likewise. 731918334Speter 732050397Sobrien * except.c (call_eh_info): Add prototype. 732150397Sobrien (push_eh_info, get_eh_info, get_eh_value, get_eh_type): Likewise. 732250397Sobrien (get_eh_caught, get_eh_handlers, do_pop_exception): Likewise. 732318334Speter 732450397Sobrien * decl2.c (is_namespace_ancestor): Add prototype. 732550397Sobrien (namespace_ancestor, add_using_namespace): Likewise. 732650397Sobrien (ambiguous_decl): Likewise. 732718334Speter 732850397Sobrien * decl.c (indent): Add prototype. 732918334Speter 733050397Sobrien * call.c (add_template_candidate_real): Add prototype. 733118334Speter 733250397SobrienFri Apr 17 01:57:12 1998 Jason Merrill <jason@yorick.cygnus.com> 733318334Speter 733450397Sobrien * decl2.c (build_expr_from_tree): Just return a PMF. 733518334Speter 733650397SobrienFri Apr 17 00:45:12 1998 Mark Mitchell <mmitchell@usa.net> 733718334Speter 733850397Sobrien * typeck2.c (process_init_constructor): Don't strip cv-qualifiers 733950397Sobrien when doing initializations. 734018334Speter 734150397Sobrien * pt.c (unify): Use comptypes to compare type args. 734218334Speter 734350397SobrienFri Apr 17 00:24:22 1998 Jason Merrill <jason@yorick.cygnus.com> 734418334Speter 734550397Sobrien * decl.c (duplicate_decls): Fix check for when it's safe to free 734650397Sobrien the new decl. 734718334Speter 734850397Sobrien * pt.c (mangle_class_name_for_template): Don't pass a typedef type 734950397Sobrien to type_as_string. 735018334Speter 735150397SobrienThu Apr 16 17:47:30 1998 Jeffrey A Law (law@cygnus.com) 735218334Speter 735350397Sobrien * pt.c (build_template_parm_index): Add prototype. 735418334Speter 735550397Sobrien * search.c (my_tree_cons): Don't clear words outside the 735650397Sobrien newly allocated node. 735718334Speter 735850397SobrienWed Apr 15 15:34:44 1998 Dave Brolley <brolley@cygnus.com> 735918334Speter 736050397Sobrien * lex.c (init_parse): Now returns char* containing the filename. 736118334Speter 736250397SobrienWed Apr 15 13:20:06 1998 John Carr <jfc@mit.edu> 736350397Sobrien Jeff Law <law@cygnus.com> 736418334Speter 736550397Sobrien * errfn.c: Rework to avoid problems when HOST_WIDE_INT is longer 736650397Sobrien than a pointer. 736718334Speter 736850397SobrienSun Apr 12 22:31:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 736918334Speter 737050397Sobrien * cvt.c (cp_convert_to_pointer): Use TYPE_PRECISION. 737118334Speter 737250397SobrienFri Apr 10 12:16:49 1998 Benjamin Kosnik <bkoz@loony.cygnus.com> 737318334Speter 737450397Sobrien * decl.c (duplicate_decls): Don't warn for redundant decls if 737552284Sobrien friend: let add_friend take care of it. 737618334Speter 737750397SobrienThu Apr 9 02:40:48 1998 Jason Merrill <jason@yorick.cygnus.com> 737818334Speter 737950397Sobrien * sig.c (build_signature_pointer_constructor): Don't set 738050397Sobrien TREE_HAS_CONSTRUCTOR for a signature pointer. 738150397Sobrien * cvt.c (ocp_convert): Don't force a temporary for internal structs. 738252284Sobrien * init.c (resolve_offset_ref): Warn about implicit & on pmfs 738350397Sobrien here, too. 738452284Sobrien * typeck.c (build_unary_op): Only allow taking the address of a 738550397Sobrien real constructor. 738650397Sobrien * typeck2.c (digest_init): Simplify. 738750397Sobrien (store_init_value): Don't pedwarn about using { } for pmfs. 738818334Speter 738950397SobrienThu Apr 9 22:16:57 1998 Per Bothner <bothner@cygnus.com> 739018334Speter 739152284Sobrien * cp-tree.h (start_decl): Update prototype. 739252284Sobrien * decl.c (start_decl): Like the C version, new parameters 739352284Sobrien for the attributes. Call cplus_decl_attributes here, 739452284Sobrien (pushdecl): Like C version, do build_type_copy if TYPE_DECL, 739552284Sobrien (grokdeclarator): Pass NULL for new start_decl arguments. 739652284Sobrien * pt.c (tsubst_expr): Likewise. 739752284Sobrien * parse.y: Merge cplus_decl_attribute calls into start_decl calls. 739850397Sobrien * typeck.c (common_type): Check TYPE_MAIN_VARIANT. 739950397Sobrien * lex.c (build_lang_decl): Add lang_name_java. 740050397Sobrien * class.c (push_lang_context): Add lang_name_java. 740150397Sobrien * method.c (build_mangled_name): Check for is_java_type. 740218334Speter 740350397SobrienThu Apr 9 22:16:57 1998 Benjamin Kosnik <bkoz@loony.cygnus.com> 740418334Speter 740550397Sobrien * decl.c (grokdeclarator): Check TYPE_MAIN_VARIANT. 740650397Sobrien * call.c (build_scoped_method_call): Check for TREE_CODE for 740750397Sobrien VOID_TYPE instead of type == void_type_node. 740852284Sobrien (build_method_call): Likewise. 740952284Sobrien * decl.c (lookup_name_real): Likewise. 741052284Sobrien (grokdeclarator): Likewise. 741152284Sobrien (start_decl): Likewise. 741252284Sobrien (grokparms): Likewise. 741352284Sobrien (start_function): Likewise. 741452284Sobrien (finish_function): Likewise. 741552284Sobrien (start_method): Likewise. 741618334Speter 741750397SobrienThu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) 741818334Speter 741950397Sobrien * lex.c (finput): New variable. 742050397Sobrien (init_cpp_parse): Renamed from init_parse. 742150397Sobrien (init_parse): Handle !USE_CPPLIB. Call init_cpp_parse when finished. 742250397Sobrien (finish_parse): New function. 742350397Sobrien * cp-tree.h (init_lex, init_parse): Remove declarations. 742418334Speter 742550397SobrienMon Apr 6 02:25:05 1998 Jason Merrill <jason@yorick.cygnus.com> 742618334Speter 742750397Sobrien * call.c (build_call): Still evaluate the actual argument. 742850397Sobrien * class.c (is_empty_class): Update for -fnew-abi. 742918334Speter 743050397Sobrien * decl2.c: -fnew-abi implies -fsquangle. 743118334Speter 743250397Sobrien * method.c (do_build_assign_ref): Don't do anything to copy 743350397Sobrien an empty class. 743450397Sobrien (do_build_copy_constructor): Likewise. 743550397Sobrien * call.c (build_over_call): Likewise. 743618334Speter 743750397SobrienSat Apr 4 18:43:58 1998 Jason Merrill <jason@yorick.cygnus.com> 743818334Speter 743950397Sobrien * tree.c (avoid_overlap): Return a value. 744018334Speter 744150397SobrienSat Apr 4 12:52:35 1998 Jeffrey A Law (law@cygnus.com) 744218334Speter 744350397Sobrien * method.c (check_btype): Add missing argument to xrealloc. 744450397Sobrien (check_ktype): Likewise. 744518334Speter 744650397SobrienFri Apr 3 02:22:59 1998 Jason Merrill <jason@yorick.cygnus.com> 744718334Speter 744850397Sobrien Implement empty base optimization. 744952284Sobrien * class.c (finish_struct_1): Add vbase fields earlier. Set 745050397Sobrien CLASSTYPE_SIZE of an empty base to 0. Types with bases can be empty. 745150397Sobrien * search.c (dfs_check_overlap, dfs_no_overlap_yet): New fns. 745250397Sobrien (types_overlap_p): New fn. 745350397Sobrien * tree.c (avoid_overlap): New fn. 745450397Sobrien (build_base_fields): Use it to avoid overlapping empty bases. 745550397Sobrien * cp-tree.h, decl2.c, lang-options.h: Add -fnew-abi. 745618334Speter 745750397Sobrien * decl.c (cplus_expand_expr_stmt): Strip unused INDIRECT_REFs. 745818334Speter 745950397Sobrien Re-implement allocation of base class subobjects. 746050397Sobrien * tree.c (unshare_base_binfos): New fn. 746150397Sobrien (layout_basetypes): Use it. Now handles offsets of both virtual and 746250397Sobrien non-virtual bases, after layout_type. 746350397Sobrien (layout_vbasetypes): Remove. 746450397Sobrien (build_base_fields): Generate FIELD_DECLs for each non-virtual base. 746550397Sobrien (build_vbase_pointer_fields): Split out from old layout_basetypes. 746650397Sobrien * class.c (finish_base_struct): Lose offset handling code. 746750397Sobrien Move nonvdtor warning here. Don't mess with t_binfo anymore. 746850397Sobrien (finish_struct_1): Don't mess with t_binfo anymore. Use fns above. 746950397Sobrien * cp-tree.h: Adjust. 747018334Speter 747150397SobrienThu Apr 2 14:25:13 1998 Jason Merrill <jason@yorick.cygnus.com> 747218334Speter 747350397Sobrien * cp-tree.h: Lose CLASSTYPE_VBASE_SIZE, some unused stuff. 747450397Sobrien * decl.c, decl2.c, pt.c, ptree.c, lex.c: Likewise. 747550397Sobrien * class.c (duplicate_tag_error): Likewise. 747650397Sobrien (finish_struct_1): Set CLASSTYPE_SIZE, CLASSTYPE_MODE, CLASSTYPE_ALIGN. 747750397Sobrien * tree.c (layout_vbasetypes): Update from layout_record, remove 747850397Sobrien var_size support, use CLASSTYPE_SIZE instead of CLASSTYPE_VBASE_SIZE. 747950397Sobrien (layout_basetypes): Likewise. 748018334Speter 748150397SobrienWed Apr 1 18:22:25 1998 Jeffrey A Law (law@cygnus.com) 748218334Speter 748350397Sobrien * class.c, Make sure system.h is included just after config.h. 748450397Sobrien Delete lingering stdio and errno references too. 748550397Sobrien * decl.c, errfn.c, parse.y, ptree.c search.c, xref.c: Likewise. 748652284Sobrien 748750397SobrienWed Apr 1 15:38:36 1998 Jason Merrill <jason@yorick.cygnus.com> 748818334Speter 748950397Sobrien * friend.c (is_friend): Fix access control for local classes. 749018334Speter 749150397Sobrien * class.c (is_empty_class): New fn. 749250397Sobrien * call.c (build_call): Don't pass empty class objects to a function. 749318334Speter 749450397SobrienWed Apr 1 14:58:35 1998 Mark Mitchell <mmitchell@usa.net> 749518334Speter 749650397Sobrien * call.c (build_over_call): Do name resolution for default 749750397Sobrien arguments of function templates in the scope of the templates. 749818334Speter 749950397SobrienTue Mar 31 13:43:57 1998 Jeffrey A Law (law@cygnus.com) 750018334Speter 750150397Sobrien * call.c: Include system.h. Remove includes, declarations and 750250397Sobrien defines provided by system.h. 750350397Sobrien * class.c, cvt.c, decl.c, decl2.c, errfn.c error.c: Likewise. 750450397Sobrien * except.c, expr.c friend.c, g++spec.c, init.c, input.c: Likewise. 750550397Sobrien * lex.c, parse.y, pt.c, ptree.c repo.c rtti.c, search.c: Likewise. 750650397Sobrien * semantics.c, sig.c, spew.c, tree.c, typeck.c: Likewise. 750750397Sobrien * typeck2.c, xref.c: Likewise. 750850397Sobrien * Makefile.in: Dependencies updated as appropriate. 750950397Sobrien * Make-lang.in: Likewise. 751018334Speter 751150397SobrienMon Mar 30 12:15:00 1998 Mark Mitchell <mmitchell@usa.net> 751218334Speter 751352284Sobrien * pt.c (fn_type_unification): Allow incomplete unification without 751450397Sobrien an immediate error message. 751518334Speter 751650397SobrienMon Mar 30 08:55:42 1998 Jason Merrill <jason@yorick.cygnus.com> 751718334Speter 751850397Sobrien * tree.c (member_p): New fn. 751950397Sobrien * decl2.c (finish_file): Only set DECL_STATIC_FUNCTION_P for 752050397Sobrien initializing class members. 752118334Speter 752250397Sobrien * cp-tree.def (TEMPLATE_PARM_INDEX): Class 'x'. 752350397Sobrien * ptree.c (lang_print_xnode): Handle TEMPLATE_PARM_INDEX. 752418334Speter 752550397Sobrien * call.c (build_method_call): Handle non-scoped destructors, too. 752650397Sobrien * pt.c (tsubst_copy): Likewise. 752718334Speter 752850397Sobrien * pt.c (print_template_context): Split out... 752950397Sobrien (push_tinst_level): ...from here. 753018334Speter 753150397Sobrien * friend.c (is_friend): Don't pass a type to decl_function_context. 753218334Speter 753350397Sobrien * typeck.c (convert_for_initialization): Always hand off 753450397Sobrien conversions to class type. 753518334Speter 753650397SobrienSun Mar 29 20:01:59 1998 Jason Merrill <jason@yorick.cygnus.com> 753718334Speter 753850397Sobrien * friend.c (is_friend): Local classes have the same access as the 753950397Sobrien enclosing function. 754018334Speter 754150397SobrienSun Mar 29 00:47:32 1998 Jeffrey A Law (law@cygnus.com) 754218334Speter 754350397Sobrien * typeck.c (expand_target_expr): Delete dead function. 754418334Speter 754550397Sobrien * search.c: Put various prototypes inside #ifdef MI_MATRIX. 754618334Speter 754750397Sobrien * repo.c (save_string): Delete dead function. 754818334Speter 754950397Sobrien * method.c (thunk_printable_name): Delete dead function. 755018334Speter 755150397Sobrien * lex.c (yynextch): Delete dead function. 755218334Speter 755350397Sobrien * expr.c (tree_extract_aggr_init): #if 0 out. 755418334Speter 755550397Sobrien * except.c (do_unwind): Delete dead function. 755650397Sobrien (easy_expand_asm): Likewise. 755718334Speter 755850397Sobrien * cvt.c (build_conversion_type_1): Delete dead function. 755918334Speter 756050397Sobrien * cp-tree.h (push_expression_obstack): Declare. 756118334Speter 756250397Sobrien * call.c (source_type): #if 0 out. 756318334Speter 756450397Sobrien * class.c (alter_access): Remove unused label. Add braces 756550397Sobrien around empty else clause. 756618334Speter 756750397Sobrien * lex.c (yyprint): Fix argument to printf. 756818334Speter 756950397SobrienSat Mar 28 17:43:52 1998 Mark Mitchell <mmitchell@usa.net> 757018334Speter 757150397Sobrien * pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs. 757218334Speter 757350397Sobrien * pt.c (instantiate_class_template): Make sure template 757450397Sobrien arguments are permanent. 757550397Sobrien * init.c (resolve_offset_ref): Don't go looking around in 757650397Sobrien template types. 757718334Speter 757850397Sobrien * semantics.c: Add routines to handle expressions, and some 757950397Sobrien declaration processing. 758050397Sobrien * parse.y: Use them. 758150397Sobrien (current_class_depth): Move declaration to cp-tree.h. 758250397Sobrien * parse.c: Regenerated. 758350397Sobrien * cp-tree.h: Use them. 758450397Sobrien (current_class_depth): Declare. 758550397Sobrien * pt.c (tsubst_copy): Use begin_stmt_expr and finish_stmt_expr. 758618334Speter 758750397SobrienFri Mar 27 20:23:18 1998 Mark Mitchell <mmitchell@usa.net> 758818334Speter 758950397Sobrien * error.c (dump_decl): Be a bit more explicit with template 759050397Sobrien type arguments, when verbose. 759152284Sobrien 759250397SobrienFri Mar 27 18:16:40 1998 Jason Merrill <jason@yorick.cygnus.com> 759318334Speter 759450397Sobrien * inc/exception: Reorder closing braces. 759518334Speter 759650397SobrienFri Mar 27 13:22:18 1998 Mark Mitchell <mmitchell@usa.net> 759718334Speter 759850397Sobrien * pt.c (redeclare_class_template): New function. 759950397Sobrien * cp_tree.h (redeclare_class_template): Declare it. 760050397Sobrien * decl.c (xref_tag): Use it. 760118334Speter 760250397SobrienThu Mar 26 11:16:30 1998 Jason Merrill <jason@yorick.cygnus.com> 760318334Speter 760452284Sobrien * call.c (build_over_call): Check IS_AGGR_TYPE, not 760550397Sobrien TYPE_LANG_SPECIFIC. 760650397Sobrien * typeck.c (convert_arguments): Likewise. 760718334Speter 760850397Sobrien * decl.c (grokdeclarator): Remove const and volatile from type after 760950397Sobrien setting constp and volatilep. 761018334Speter 761150397Sobrien * class.c (finish_struct_1): Don't warn about bool bitfield larger 761250397Sobrien than one bit. 761318334Speter 761450397SobrienThu Mar 26 10:25:52 1998 Mark Mitchell <mmitchell@usa.net> 761518334Speter 761650397Sobrien * pt.c (convert_nontype_argument): STRIP_NOPS where appropriate. 761718334Speter 761850397SobrienThu Mar 26 10:24:05 1998 Mark Mitchell <mmitchell@usa.net> 761918334Speter 762050397Sobrien * call.c (build_object_call): Complain about ambiguous operator(), 762150397Sobrien rather that crashing. 762250397Sobrien (build_new_op): Likewise. 762350397Sobrien (build_op_delete_call): Likewise. 762418334Speter 762550397SobrienThu Mar 26 10:23:24 1998 Mark Mitchell <mmitchell@usa.net> 762618334Speter 762750397Sobrien * cvt.c (perform_qualification_conversions): Use comp_target_types 762850397Sobrien instead of comp_ptr_ttypes. 762918334Speter 763050397SobrienWed Mar 25 16:10:50 1998 Mark Mitchell <mmitchell@usa.net> 763118334Speter 763250397Sobrien * cp-tree.h (enforce_access): Declare. 763350397Sobrien * call.c (enforce_access): Make it extern, not static. 763450397Sobrien * class.c (alter_access): Use enforce_access; modify code for ISO 763550397Sobrien compliance, rather than ARM rules. 763618334Speter 763750397SobrienWed Mar 25 12:10:45 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 763818334Speter 763950397Sobrien * cp-tree.h: Fix typo. 764018334Speter 764150397SobrienWed Mar 25 02:01:02 1998 Jason Merrill <jason@yorick.cygnus.com> 764218334Speter 764350397Sobrien * expr.c (cplus_expand_expr): Only do PCC_STATIC_STRUCT_RETURN thing 764450397Sobrien if (aggregate_value_p (type)). 764518334Speter 764650397Sobrien * decl2.c (constructor_name_full): Handle TYPENAME_TYPE. 764718334Speter 764850397SobrienTue Mar 24 16:12:01 1998 Mark Mitchell <mmitchell@usa.net> 764918334Speter 765050397Sobrien * tree.c (mapcar): When dealing with a DECL, use it's constant 765150397Sobrien value, if any. 765250397Sobrien * pt.c (lookup_template_class): Don't mangle the names of template 765350397Sobrien classes whose arguments are unknown. 765418334Speter 765550397Sobrien * pt.c (tsubst_expr): Handle GOTO_STMT correctly. 765618334Speter 765750397SobrienTue Mar 24 12:21:55 1998 Benjamin Kosnik <bkoz@lisa.cygnus.com> 765818334Speter 765950397Sobrien * decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1. 766018334Speter 766150397SobrienTue Mar 24 12:21:48 1998 Jim Wilson <wilson@cygnus.com> 766218334Speter 766352284Sobrien * decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for 766452284Sobrien boolean_type_node to 1. 766518334Speter 766650397SobrienTue Mar 24 10:23:47 1998 Mark Mitchell <mmitchell@usa.net> 766718334Speter 766850397Sobrien * error.c (dump_expr): Remove unused variable `l'. 766918334Speter 767050397Sobrien * pt.c (for_each_template_parm): New function, created by 767150397Sobrien converting uses_template_parms. 767250397Sobrien (tree_fn_t): New typedef. 767350397Sobrien (uses_template_parms): Use it. 767450397Sobrien (mark_template_parm): New function. 767550397Sobrien (push_template_decl): Check that the argument list of a partial 767650397Sobrien specialization uses all the template parameters. 767718334Speter 767850397Sobrien * Make-lang.in (c++filt): Don't delete cxxmain.c after we're done 767950397Sobrien with it; we might want it for debugging. 768050397Sobrien * cp-tree.h (type_unification): Change interface. 768150397Sobrien * class.c (finish_struct_1): Skip nested template types, just like 768250397Sobrien ordinary nested types. 768350397Sobrien (instantiate_type): Use new interface to type_unification. 768450397Sobrien * lex.c (init_lex): Add __sz as opname for sizeof. 768550397Sobrien * method.c (build_overload_scope_ref): New function. 768650397Sobrien (build_overload_int): Handle complex expressions. Set 768750397Sobrien numeric_output_need_bar if necessary. 768850397Sobrien (build_overload_value): Handle non-PARM_DECL nodes; this 768950397Sobrien routine is now used by build_overload_int. Remove some 769050397Sobrien assignments to numeric_output_need_bar. Use 769150397Sobrien build_overload_scope_ref. 769250397Sobrien (build_qualified_name): Note that some template mangled names end 769350397Sobrien with digits, and set numeric_output_need_bar appropriately. Use 769450397Sobrien build_underscore_int. 769550397Sobrien * pt.c (unify): Change interface. 769650397Sobrien (type_unification_real): Likewise. 769750397Sobrien (determine_specialization): Use new interfaces. 769850397Sobrien (tsubst): Deal gracefully with situations in which the argument 769950397Sobrien vector is not fully filled. 770050397Sobrien (fn_type_unification): Use new interfaces. 770150397Sobrien (type_unification): Likewise. Remove NOP_EXPR hack. 770250397Sobrien (type_unification_real): Likewise. 770352284Sobrien (unify): Likewise. Deal with unification of complex expressions. 770418334Speter 770550397SobrienMon Mar 23 12:24:37 1998 Jason Merrill <jason@yorick.cygnus.com> 770618334Speter 770750397Sobrien * pt.c (complete_template_args): Initialize skip properly. 770818334Speter 770950397Sobrien * decl.c (make_typename_type): Revert. 771050397Sobrien (make_implicit_typename): Remove. 771150397Sobrien (lookup_name_real): Don't call it. Call lookup_field if we see a 771250397Sobrien TYPE_DECL from a template base. 771350397Sobrien * search.c (lookup_field): Do implicit typename stuff. 771418334Speter 771550397SobrienSun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com> 771652284Sobrien Geoff Noer <noer@cygnus.com> 771718334Speter 771850397Sobrien * Makefile.in: Various fixes for building cygwin32 native toolchains. 771950397Sobrien * Make-lang.in: Likewise. 772018334Speter 772150397SobrienFri Mar 20 18:07:39 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 772218334Speter 772350397Sobrien * pt.c (tsubst, TEMPLATE_TEMPLATE_PARM): Simplify. 772418334Speter 772550397SobrienFri Mar 20 10:42:07 1998 Jason Merrill <jason@yorick.cygnus.com> 772618334Speter 772750397Sobrien * decl.c (make_implicit_typename): Rewrite removed code. 772850397Sobrien (make_typename_type): Call it if the type we look up comes from 772950397Sobrien a base that uses template parms. 773018334Speter 773150397Sobrien * pt.c (complete_template_args): Rewrite. 773250397Sobrien (tsubst, FUNCTION_DECL): Use it. 773318334Speter 773450397SobrienFri Mar 20 08:12:43 1998 H.J. Lu (hjl@gnu.org) 773518334Speter 773652284Sobrien * semantics.c (finish_asm_stmt): Fix combine strings. Call 773750397Sobrien c_expand_asm_operands () if output_operands, input_operands or 773850397Sobrien clobbers is not NULL_TREE. 773918334Speter 774050397SobrienFri Mar 20 00:10:19 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 774118334Speter 774250397Sobrien * pt.c (complete_template_args): New function. 774350397Sobrien (get_bindings): Deal with specializations of function templates 774452284Sobrien with return type containing parameters from outer class 774550397Sobrien templates. 774650397Sobrien (tsubst, TEMPLATE_TEMPLATE_PARM): When reducing parameter level, 774750397Sobrien substitute arguments and compose a new type. 774818334Speter 774950397SobrienThu Mar 19 19:01:48 1998 Mark Mitchell <mmitchell@usa.net> 775018334Speter 775150397Sobrien * pt.c (tsubst): Clear DECL_PENDING_INLINE_INFO for new 775250397Sobrien FUNCTION_DECLs. 775318334Speter 775450397SobrienThu Mar 19 11:51:58 1998 Jason Merrill <jason@yorick.cygnus.com> 775518334Speter 775650397Sobrien * decl.c (make_implicit_typename): Lose useless code. 775718334Speter 775850397Sobrien * call.c (standard_conversion): Handle A* -> const A* properly. 775918334Speter 776052284Sobrien * pt.c (get_bindings_real): Rename from get_bindings. Add 776150397Sobrien check_rettype parm. 776250397Sobrien (get_bindings): Pass 1. 776350397Sobrien (get_bindings_overload): Pass 0. 776418334Speter 776550397SobrienWed Mar 19 09:08:12 1998 Mark Mitchell <mmitchell@usa.net> 776618334Speter 776750397Sobrien * pt.c (check_explicit_specialization): When reverting a static 776850397Sobrien member function, also remove the `this' parameter from 776950397Sobrien last_function_parms. 777018334Speter 777150397SobrienThu Mar 19 02:27:48 1998 Jason Merrill <jason@yorick.cygnus.com> 777218334Speter 777350397Sobrien * pt.c (tsubst_copy, CONST_DECL): Don't bother tsubsting 777450397Sobrien a function context. 777518334Speter 777650397Sobrien * decl.c (store_bindings): Use free_binding_vecs. 777750397Sobrien (pop_from_top_level): Likewise. 777818334Speter 777950397SobrienWed Mar 18 12:41:43 1998 Jason Merrill <jason@yorick.cygnus.com> 778018334Speter 778152284Sobrien * decl.c (make_implicit_typename): Only change the type of a 778250397Sobrien TYPENAME_TYPE. 778318334Speter 778450397SobrienWed Mar 18 10:09:51 1998 Mark Mitchell <mmitchell@usa.net> 778518334Speter 778650397Sobrien * semantics.c: New file, containing routines to perform the 778750397Sobrien semantic phase of parsing. 778850397Sobrien * parse.y: Use it. 778950397Sobrien * pt.c (tsubst_expr): Likewise. 779050397Sobrien * cp-tree.h: Declare the various functions in semantics.c. 779150397Sobrien Provide macros to access _STMT tree nodes. 779250397Sobrien * cp-tree.def: Add ASM_STMT tree node. 779350397Sobrien * Makefile.in, Make-lang.in: Add dependencies on and for 779450397Sobrien semantics.c. 779552284Sobrien 779650397SobrienWed Mar 18 00:24:10 1998 Jason Merrill <jason@yorick.cygnus.com> 779718334Speter 779850397Sobrien * pt.c (push_template_decl): Only check primary templates. 779918334Speter 780050397Sobrien * pt.c (check_explicit_specialization): Complain about default args 780150397Sobrien in explicit specialization. 780218334Speter 780352284Sobrien * parse.y (nomods_initdcl0): Also call cp_finish_decl for a 780450397Sobrien constructor_declarator. 780518334Speter 780650397SobrienTue Mar 17 14:44:54 1998 Mark Mitchell <mmitchell@usa.net> 780718334Speter 780850397Sobrien * typeck2.c (build_x_arrow): Don't crash when an aggregate type 780950397Sobrien has no overloaded operator ->. 781018334Speter 781150397Sobrien * call.c (build_field_call): Don't crash when presented with a 781250397Sobrien field that is actually a nested type. 781318334Speter 781450397Sobrien * decl.c (pushtag): Deal with friend class injection in local 781550397Sobrien classes. 781618334Speter 781750397Sobrien * call.c (build_object_call): Don't crash if OBJ is a 781850397Sobrien pointer-to-member-function. 781918334Speter 782050397SobrienTue Mar 17 11:40:26 1998 Jason Merrill <jason@yorick.cygnus.com> 782118334Speter 782250397Sobrien * pt.c (push_template_decl): Complain about template with C linkage, 782350397Sobrien anonymous template class. 782418334Speter 782550397SobrienMon Mar 16 12:10:39 1998 Jason Merrill <jason@yorick.cygnus.com> 782618334Speter 782750397Sobrien * class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX. 782850397Sobrien * search.c: Likewise. 782950397Sobrien 783052284Sobrien * lex.c (do_pending_defargs): Only call 783150397Sobrien maybe_{begin,end}_member_template_processing for FUNCTION_DECLs. 783250397Sobrien 783350397Sobrien * parse.y (initdcl0_innards): Move maybeasm back into initdcl0 et al. 783450397Sobrien 783550397SobrienMon Mar 16 10:47:22 1998 Mark Mitchell <mmitchell@usa.net> 783650397Sobrien 783750397Sobrien * parse.y: Deal with CONSTRUCTORS in new_initializers. 783850397Sobrien 783950397SobrienMon Mar 16 10:54:21 1998 Mark Mitchell <mmitchell@usa.net> 784050397Sobrien 784150397Sobrien * pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more 784250397Sobrien closely mimics the behavior in parse.y. 784352284Sobrien (tsubst_expr): Return the resulting BLOCK when making a tsubst'ing 784450397Sobrien into a compound statement. 784552284Sobrien 784650397SobrienSun Mar 15 02:07:26 1998 Jason Merrill <jason@yorick.cygnus.com> 784718334Speter 784850397Sobrien * cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro. 784950397Sobrien * pt.c (inline_needs_template_parms): New fn. 785050397Sobrien (original_template): New fn. 785150397Sobrien (push_inline_template_parms_recursive): New fn. 785250397Sobrien (maybe_begin_member_template_processing): Use them. 785350397Sobrien (maybe_end_member_template_processing): Likewise. 785450397Sobrien (is_member_or_friend_template): Rename to is_member_template. 785550397Sobrien Member functions of local classes are never member templates. 785618334Speter 785750397SobrienSun Mar 15 01:14:22 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 785818334Speter 785950397Sobrien * lex.c (do_identifier): Handle TEMPLATE_DECL that was 786050397Sobrien added in the class scope to catch redefinition error. 786118334Speter 786252284Sobrien * pt.c (reduce_template_parm_level): Also copy 786350397Sobrien the DECL_TEMPLATE_PARMS field. 786418334Speter 786550397SobrienSun Mar 15 10:54:08 1998 Mark Mitchell <mmitchell@usa.net> 786618334Speter 786750397Sobrien * pt.c (tsubst): Clear TYPE_REFERENCE_TO when creating a 786852284Sobrien reduced-level template type parameter. 786918334Speter 787050397SobrienSun Mar 15 12:26:02 1998 Manfred Hollstein <manfred@s-direktnet.de> 787118334Speter 787250397Sobrien * cp-tree.h (struct lang_decl_flags): Add needs_final_overrider. 787350397Sobrien (DECL_NEEDS_FINAL_OVERRIDER_P): New macro. 787450397Sobrien * class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P. 787550397Sobrien * decl.c (duplicate_decls): Propagate it. 787650397Sobrien * typeck2.c (abstract_virtuals_error): Use two loops to emit 787750397Sobrien abstract virtual functions and virtual functions which need a 787850397Sobrien final overrider separately. 787952284Sobrien 788050397SobrienThu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de> 788118334Speter 788252284Sobrien * lang-specs.h: Properly put brackets around array elements in 788350397Sobrien initializer. 788418334Speter 788550397Sobrien * typeck.c (build_binary_op_nodefault): Correctly place parens around 788650397Sobrien && and || in expression. 788718334Speter 788850397SobrienThu Mar 12 09:26:04 1998 Manfred Hollstein <manfred@s-direktnet.de> 788918334Speter 789050397Sobrien * call.c (default_parm_conversions): Remove prototype definition. 789150397Sobrien (build_method_call): Remove unused variable result. 789218334Speter 789350397Sobrien * cvt.c (ocp_convert): Remove unused variable conversion. 789418334Speter 789550397Sobrien * decl2.c (ambiguous_decl): Add explicit parameter definition for name. 789618334Speter 789750397Sobrien * except.c (do_unwind): #if 0 definition of unused variables fcall 789850397Sobrien and next_pc. 789918334Speter 790052284Sobrien * expr.c (extract_scalar_init): #if 0 prototype and function 790150397Sobrien definition. 790218334Speter 790350397Sobrien * init.c (expand_aggr_init_1): Remove unused variable init_type. 790450397Sobrien (build_new_1): Remove unused variable t. 790518334Speter 790650397Sobrien * pt.c (instantiate_class_template): Remove unused variable newtag; 790750397Sobrien cast called function return value to void. 790850397Sobrien (do_decl_instantiation): Remove unused variables name and fn. 790918334Speter 791050397Sobrien * tree.c (get_type_decl): Add default return to shut up compiler from 791150397Sobrien complaining control reaches end of non-void function. 791218334Speter 791350397Sobrien * typeck.c (build_x_conditional_expr): Remove unused variable rval. 791418334Speter 791550397SobrienThu Mar 12 09:12:15 1998 Manfred Hollstein <manfred@s-direktnet.de> 791618334Speter 791750397Sobrien * call.c (default_parm_conversions): Remove prototype definition. 791850397Sobrien (build_method_call): Remove unused variable result. 791950397Sobrien (build_over_call): Add default case in enumeration switch. 792018334Speter 792150397SobrienThu Mar 12 08:39:13 1998 Manfred Hollstein <manfred@s-direktnet.de> 792218334Speter 792350397Sobrien * decl2.c (lang_decode_option): Change j's type to size_t. 792418334Speter 792550397Sobrien * tree.c (layout_vbasetypes): record_align and desired_align are of 792650397Sobrien type unsigned int; const_size and nonvirtual_const_size likewise. 792718334Speter 792850397SobrienWed Mar 11 07:25:20 1998 Mark Mitchell <mmitchell@usa.net> 792918334Speter 793050397Sobrien * parse.y (new_initializer): Make sure all initializers are 793150397Sobrien lists. 793218334Speter 793350397SobrienTue Mar 10 07:32:36 1998 Mark Mitchell <mmitchell@usa.net> 793418334Speter 793550397Sobrien * decl2.c (import_export_decl): Mark tinfo functions for 793650397Sobrien cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN. 793718334Speter 793850397SobrienFri Mar 6 23:27:35 1998 Jeffrey A Law (law@cygnus.com) 793918334Speter 794050397Sobrien * method.c: Fix typo. 794118334Speter 794250397SobrienFri Mar 6 10:06:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 794318334Speter 794452284Sobrien * method.c: Include "system.h" to get stdlib.h, stdio.h, 794552284Sobrien ctype.h, string.h, etc. 794652284Sobrien (issue_nrepeats): Add default case in enumeration switch. 794752284Sobrien (check_btype): Likewise. 794852284Sobrien (process_overload_item): Likewise. 794918334Speter 795052284Sobrien * Makefile.in (method.o): Depend on system.h. 795152284Sobrien 795250397SobrienWed Mar 4 22:26:53 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 795318334Speter 795450397Sobrien * lex.c (do_scoped_id): Fix parenthesizing. 795518334Speter 795650397SobrienWed Mar 4 12:11:53 1998 Michael Tiemann <tiemann@axon.cygnus.com> 795718334Speter 795850397Sobrien * rtti.c (get_tinfo_fn_dynamic): If this function is called an 795950397Sobrien FLAG_RTTI is unset, initialize type info machinery and continue 796050397Sobrien with FLAG_RTTI enabled. 796152284Sobrien (get_typeid): Likewise. 796218334Speter 796350397SobrienWed Mar 4 11:47:55 1998 Jason Merrill <jason@yorick.cygnus.com> 796418334Speter 796550397Sobrien * typeck.c (unary_complex_lvalue): &D::i has type B::* if i comes 796650397Sobrien from B. 796718334Speter 796850397SobrienWed Mar 4 11:28:08 1998 Mark Mitchell <mmitchell@usa.net> 796918334Speter 797050397Sobrien * pt.c (finish_member_template_decl): Deal more gracefully with 797150397Sobrien invalid declarations. 797218334Speter 797350397SobrienTue Mar 3 01:38:17 1998 Jason Merrill <jason@yorick.cygnus.com> 797418334Speter 797550397Sobrien * cvt.c, decl.c, decl2.c, init.c, rtti.c, typeck.c, typeck2.c, 797650397Sobrien cp-tree.h: Clean up more old overloading code, old RTTI code, and 797750397Sobrien some formatting quirks. 797818334Speter 797950397Sobrien * call.c, class.c, cp-tree.h, cvt.c, decl.c, init.c, lex.c, 798052284Sobrien method.c, pt.c, ptree.c, typeck.c: Remove support for 798150397Sobrien -fno-ansi-overloading and overloading METHOD_CALL_EXPR. 798250397Sobrien * class.h: Remove. 798350397Sobrien * Makefile.in: Adjust. 798418334Speter 798550397Sobrien * pt.c (unify): Don't allow reduced cv-quals when strict. 798618334Speter 798750397Sobrien * call.c, class.c, pt.c, cp-tree.h: Remove nsubsts parm from 798850397Sobrien *type_unification* and unify. 798918334Speter 799050397SobrienMon Mar 2 12:11:06 1998 Jason Merrill <jason@yorick.cygnus.com> 799118334Speter 799250397Sobrien * parse.y (explicit_template_type): Remove TEMPLATE keyword. 799350397Sobrien (nested_name_specifier): And add it before this use. 799450397Sobrien (typename_sub0): And this use. Also add use without the keyword. 799550397Sobrien (typename_sub1): Likewise. 799652284Sobrien * pt.c (instantiate_class_template): Don't actually instantiate 799750397Sobrien anything if our type uses template parms. 799818334Speter 799950397SobrienMon Mar 2 11:04:59 1998 Jim Wilson <wilson@cygnus.com> 800018334Speter 800150397Sobrien * decl.c (start_function): Don't call temporary_allocation for a 800250397Sobrien nested function. 800318334Speter 800450397SobrienSun Mar 1 21:06:37 1998 Jason Merrill <jason@yorick.cygnus.com> 800518334Speter 800650397Sobrien * pt.c (instantiate_class_template): Don't mess with friends if 800750397Sobrien our type uses template parms. 800818334Speter 800950397SobrienSat Feb 28 12:06:44 1998 Jason Merrill <jason@yorick.cygnus.com> 801018334Speter 801150397Sobrien * parse.y (nested_name_specifier): Use explicit_template_type. 801250397Sobrien (typename_sub): Allow a template_type, an explicit_template_type, 801350397Sobrien or an implicit template type at the end. 801450397Sobrien * lex.c (yyprint): Handle a PTYPENAME being a TEMPLATE_DECL. 801550397Sobrien * decl.c (make_typename_type): Handle template-id where the name 801650397Sobrien is a TEMPLATE_DECL. 801752284Sobrien * call.c (build_scoped_method_call): Handle member template 801850397Sobrien destructor call. 801952284Sobrien * pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member 802050397Sobrien destructor is represented by the type. 802118334Speter 802250397Sobrien * cp-tree.h (TYPENAME_TYPE_FULLNAME): New macro. 802350397Sobrien * parse.y (nested_name_specifier): Add 'template' case. 802450397Sobrien (explicit_template_type): New rule. 802550397Sobrien (typename_sub): Use it. 802650397Sobrien * decl.c (make_typename_type): Handle getting a template-id for NAME. 802750397Sobrien * pt.c (tsubst): Likewise. 802818334Speter 802950397SobrienFri Feb 27 11:17:50 1998 Jason Merrill <jason@yorick.cygnus.com> 803018334Speter 803150397Sobrien * pt.c (add_to_template_args): Fix thinko. 803250397Sobrien (instantiate_class_template): Call it later. 803318334Speter 803450397Sobrien * pt.c (get_class_bindings): Add outer_args parm. 803550397Sobrien (most_specialized_class): Likewise. 803650397Sobrien (instantiate_class_template): Pass it. 803750397Sobrien (more_specialized_class): Likewise. 803850397Sobrien (lookup_template_class): Get context from template if none 803950397Sobrien was specified. 804050397Sobrien (finish_member_template_decl): Don't do anything with a 804150397Sobrien partial specialization. 804250397Sobrien * decl2.c (check_member_template): Use IS_AGGR_TYPE instead of 804350397Sobrien AGGREGATE_TYPE_P. 804450397Sobrien * class.c (finish_struct): Member class templates have already been 804550397Sobrien checked for name clashes. 804650397Sobrien * decl.c (pushdecl_with_scope): Handle pushing at class level. 804718334Speter 804850397SobrienFri Feb 27 02:25:16 1998 Jason Merrill <jason@yorick.cygnus.com> 804918334Speter 805050397Sobrien * pt.c (tsubst, TEMPLATE_DECL): Support member class templates. 805150397Sobrien (tsubst, *_PARM): Support multiple levels of template classes. 805250397Sobrien (instantiate_class_template): Look up the pattern from the 805350397Sobrien original template. 805450397Sobrien (lookup_template_class): Handle getting a template for d1. 805550397Sobrien (push_template_decl): Correct setting of 'primary'. 805650397Sobrien (reduce_template_parm_level): Add 'levels' parm. 805750397Sobrien (finish_member_template_decl): Support member class templates. 805850397Sobrien (template_class_depth): Handle multiple levels. 805950397Sobrien * parse.y (component_decl_1, fn.def2): Remove member template case. 806050397Sobrien (component_decl): Add member template cases. 806150397Sobrien * decl2.c (check_member_template): We now handle member template 806250397Sobrien classes. 806350397Sobrien * decl.c (pushtag): Handle member templates. 806450397Sobrien * method.c (do_inline_function_hair): Don't touch 806550397Sobrien IDENTIFIER_GLOBAL_VALUE. 806652284Sobrien * init.c (build_offset_ref): If name isn't an identifier, just 806750397Sobrien return it. 806850397Sobrien * spew.c (yylex): Handle PTYPENAME like TYPENAME. 806918334Speter 807050397Sobrien * typeck.c (get_delta_difference): Do adjust for conversions to 807150397Sobrien and from virtual base. 807218334Speter 807350397SobrienWed Feb 25 09:51:29 1998 Jason Merrill <jason@yorick.cygnus.com> 807418334Speter 807550397Sobrien * typeck.c (get_delta_difference): Give hard error for conversion 807650397Sobrien from virtual base. 807718334Speter 807850397Sobrien * cp-tree.h: Tweak formatting. 807918334Speter 808050397SobrienWed Feb 25 00:35:33 1998 Jason Merrill <jason@yorick.cygnus.com> 808118334Speter 808250397Sobrien * decl.c (push_namespace): Handle redeclaration error. 808318334Speter 808450397Sobrien * cp-tree.h (IDENTIFIER_NAMESPACE_VALUE): New macro. 808550397Sobrien (IDENTIFIER_NAMESPACE_BINDINGS): New macro. 808650397Sobrien (NAMESPACE_BINDING): New macro. 808750397Sobrien (IDENTIFIER_GLOBAL_VALUE): Use NAMESPACE_BINDING. 808850397Sobrien * *.c: Use them. 808918334Speter 809050397Sobrien * pt.c (push_template_decl): Use innermost_args. 809118334Speter 809250397Sobrien * decl.c (get_unique_name): Tweak from earlier in the name. 809318334Speter 809450397SobrienTue Feb 24 22:15:04 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> 809518334Speter 809650397Sobrien * cp-tree.def: Add CPLUS_BINDING node. 809752284Sobrien * cp-tree.h (tree_binding): New struct. 809852284Sobrien (BINDING_SCOPE, BINDING_VALUE): New macros. 809952284Sobrien (current_namespace, global_namespace): Declare extern. 810052284Sobrien (struct lang_decl_flags): New field in_namespace. 810152284Sobrien (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): New macros. 810252284Sobrien (DECL_NAMESPACE, SET_DECL_NAMESPACE): New macros. 810352284Sobrien (TREE_INDIRECT_USING): New macro. 810450397Sobrien * decl2.c (current_namespace, global_namespace): Declare. The 810550397Sobrien value is a NAMESPACE_DECL now, not a TREE_LIST. 810652284Sobrien (is_namespace_ancestor, namespace_ancestor): New static functions. 810752284Sobrien (add_using_namespace, ambiguous_decl): Likewise. 810852284Sobrien (lookup_using_namespace): New support function for lookup_name. 810952284Sobrien (qualified_lookup_using_namespace): New support function for 811052284Sobrien do_scoped_id and lookup_namespace_name. 811152284Sobrien (get_namespace_id): Mark as obsolete. 811250397Sobrien (current_namespace_id): Likewise. 811350397Sobrien (do_namespace_alias): Implement. 811450397Sobrien (do_using_directive): Implement as call to add_using_namespace. 811552284Sobrien * decl.c (binding_for_name): New function. 811652284Sobrien (push_namespace, pop_namespace): Implement. 811752284Sobrien (push_decl): Don't install a FUNCTION_DECL in the global branch. 811852284Sobrien (lookup_namespace_name): Implement using qualified lookup. 811950397Sobrien (lookup_name_real): For global scoping, lookup in 812052284Sobrien global_namespace. For namespace scoping, lookup in given 812152284Sobrien namespace. For unscoped lookup, iterate over namespace, 812250397Sobrien considering using directives. 812352284Sobrien (init_decl_processing): Initialize global_namespace. 812450397Sobrien (grokvardecl): Build assembler name as static name for globals. 812550397Sobrien (grokdeclarator): Remove old namespace mangling. 812650397Sobrien (xref_tag): When installing a global binding for the 812750397Sobrien tag, make sure we have an identifier. 812852284Sobrien * method.c (build_overload_nested_name): Mangle namespaces. 812950397Sobrien (build_qualified_name): Likewise. 813050397Sobrien (build_decl_overload_real): Likewise. 813152284Sobrien * lex.c (build_lang_decl): Set namespace for new declaration to 813250397Sobrien current_namespace. 813352284Sobrien (do_scoped_id): Find global names in global or current 813450397Sobrien namespace, or using qualified namespace lookup, depending on 813550397Sobrien context. 813650397Sobrien * init.c (build_member_call): When scope is namespace, use 813750397Sobrien build_x_function_call instead. 813850397Sobrien (build_offset_ref): When scope is namespace, collapse processing 813950397Sobrien to lookup_namespace_name instead. 814050397Sobrien * error.c (dump_decl): Support NAMESPACE_DECL. 814150397Sobrien * decl.c (pushdecl): Bind globals to current namespace. 814250397Sobrien (push_overloaded_decl): Likewise. 814350397Sobrien (lookup_tag): Likewise. 814450397Sobrien (lookup_name_current_level): Likewise. 814550397Sobrien (xref_tag): Likewise. 814650397Sobrien (start_function): Likewise. 814750397Sobrien * lex.c (do_identifier): Likewise. 814850397Sobrien (identifier_typedecl_value): Likewise. 814950397Sobrien (real_yylex): Likewise. 815050397Sobrien * method.c (do_inline_function_hair): Likewise. 815150397Sobrien * parse.y (unscoped): Likewise. 815250397Sobrien * pt.c (check_explicit_specialization): Likewise. 815350397Sobrien (lookup_template_class): Likewise. 815450397Sobrien * rtti.c (call_void_fn): Likewise. 815550397Sobrien * sig.c (build_sigtable): Likewise. 815650397Sobrien * ptree.c (lang_print_xnode): New function. 815718334Speter 815850397SobrienTue Feb 24 01:40:24 1998 Jason Merrill <jason@yorick.cygnus.com> 815918334Speter 816050397Sobrien * pt.c (instantiate_class_template): Don't instantiate if pedantic 816150397Sobrien and the args use template parms. 816218334Speter 816352284Sobrien * pt.c (push_tinst_level): If the instantiation uses template parms, 816450397Sobrien fail silently. 816550397Sobrien * decl.c (xref_basetypes): Do call complete_type for basetypes 816650397Sobrien that involve template parameters. 816718334Speter 816850397SobrienTue Feb 24 00:36:43 1998 Jason Merrill <jason@yorick.cygnus.com> 816918334Speter 817050397Sobrien * typeck2.c (process_init_constructor): Fix labeled init check. 817118334Speter 817250397SobrienMon Feb 23 05:08:55 1998 Jason Merrill <jason@yorick.cygnus.com> 817318334Speter 817450397Sobrien * pt.c, call.c, decl.c, method.c, cp-tree.h: Remove unused NARGS 817550397Sobrien argument to tsubst and friends. 817618334Speter 817750397Sobrien * pt.c (tsubst, FUNCTION_DECL): Tidy. 817818334Speter 817950397Sobrien * typeck.c (build_x_function_call): Handle static member function 818050397Sobrien templates like non-templates. Handle friend templates like normal 818150397Sobrien function templates. 818250397Sobrien * pt.c (tsubst, *_PARM): Don't use orig_level. 818350397Sobrien (get_bindings): Don't call add_to_template_args. 818450397Sobrien (instantiate_template): Likewise. 818550397Sobrien (tsubst, FUNCTION_DECL): Call add_to_template_args as appropriate. 818650397Sobrien * ptree.c (print_lang_type): Print index/level for template parms. 818718334Speter 818850397SobrienMon Feb 23 02:52:29 1998 Mark Mitchell <mmitchell@usa.net> 818918334Speter 819050397Sobrien * Make-lang.in (cc1plus): Note that cc1plus depends on 819150397Sobrien cp/cp-tree.h and cp/cp-tree.def. 819252284Sobrien 819350397Sobrien * cp-tree.def (TEMPLATE_CONST_PARM): Remove. 819450397Sobrien (TEMPLATE_PARM_INDEX): New tree code, used to indicate a 819550397Sobrien position in a template parameter list. 819650397Sobrien * cp-tree.h (template_parm_index): New structure, used as the tree 819750397Sobrien structure for a TEMPLATE_PARM_INDEX. 819850397Sobrien (TEMPLATE_PARM_IDX): New macro. 819950397Sobrien (TEMPLATE_PARM_LEVEL): Likewise. 820050397Sobrien (TEMPLATE_PARM_DESCENDANTS): Likewise. 820150397Sobrien (TEMPLATE_PARM_ORIG_LEVEL): Likewise. 820250397Sobrien (TEMPLATE_PARM_DECL): Likewise. 820350397Sobrien (TEMPLATE_TYPE_PARM_INDEX): Likewise. 820450397Sobrien (TEMPLATE_TYPE_ORIG_LEVEL): Likewise. 820550397Sobrien (TEMPLATE_TYPE_DECL): Likewise. 820650397Sobrien (TEMPLATE_CONST_IDX): Remove. 820750397Sobrien (TEMPLATE_CONST_LEVEL): Likewise. 820850397Sobrien (TEMPLATE_CONST_SET_INFO): Likewise. 820950397Sobrien (TEMPLATE_TYPE_SET_INFO): Likewise. 821050397Sobrien (TEMPLATE_TYPE_IDX): Redefine in terms of TEMPLATE_PARM_INDEX 821150397Sobrien node. 821250397Sobrien (TEMPLATE_TYPE_LEVEL): Likewise. 821350397Sobrien * decl.c (decls_match): Call comp_template_parms, rather than 821450397Sobrien expanding it inline. 821550397Sobrien (duplicate_decls): If two template declarations are being merged, 821650397Sobrien then their TEMPLATE_INFOs should be merged as well. 821750397Sobrien (grokfndecl): Save template-id information when declaring a friend 821850397Sobrien with explicit template arguments. Pass arguments to 821950397Sobrien check_explicit_specialization via correct convention; at some 822050397Sobrien point check_explicit_specialization changed, but these call-sites 822150397Sobrien did not. 822250397Sobrien (grokdeclarator): Tidy up slightly. 822350397Sobrien * decl2.c (check_classfn): Tidy up slightly. Don't assume that 822450397Sobrien two template functions with the same DECL_ASSEMBLER_NAME the same, 822550397Sobrien since the names are not yet mangled. 822650397Sobrien * error.c (dump_decl): Use TEMPLATE_PARM_INDEX instead of 822752284Sobrien TEMPLATE_CONST_PARM. 822850397Sobrien (dump_expr): Likewise. Use the TEMPLATE_PARM_DECL to get at the 822950397Sobrien decl for a non-type parameter, rather than printing `<tparm ...>'. 823050397Sobrien * friend.c (is_friend): Handle TEMPLATE_DECL friends. 823150397Sobrien (do_friend): Deal with template friends. 823250397Sobrien * lex.c (do_pending_inlines): Call 823350397Sobrien maybe_begin_member_template_processing, rather than 823450397Sobrien conditionally calling begin_member_template_processing. 823550397Sobrien (process_next_inline): Likewise. Call 823650397Sobrien maybe_end_member_template_processing, rather than 823750397Sobrien conditionally calling end_member_template_processing. 823850397Sobrien (do_pending_defargs): Likewise. 823950397Sobrien (do_identifier): Use TEMPLATE_PARM_INDEX instead of 824052284Sobrien TEMPLATE_CONST_PARM. 824150397Sobrien * method.c (build_mangled_template_parm_index): New function. 824250397Sobrien (build_overload_value): Use it. 824350397Sobrien (build_overload_name): Likewise. 824450397Sobrien * pt.c (finish_member_template_decl): Allow friend declarations. 824550397Sobrien (template_class_depth): New function. 824650397Sobrien (is_member_template): Rename, and modify, to become... 824750397Sobrien (is_member_or_friend_template): New function. 824850397Sobrien (end_member_template_processing): Rename, and modify, to become... 824950397Sobrien (maybe_end_member_template_processing). 825050397Sobrien (build_template_parm_index): New function. 825150397Sobrien (reduce_template_parm_level): New function. 825250397Sobrien (process_template_parm): Modify to use build_template_parm_index. 825350397Sobrien (push_template_decl): Deal with friend templates. 825450397Sobrien (uses_template_parms): Use TEMPLATE_PARM_INDEX instead of 825550397Sobrien TEMPLATE_CONST_PARM. 825650397Sobrien (tsubst_friend_function): New function. 825750397Sobrien (instantiate_class_template): Generate the DECL_FRIENDLIST 825850397Sobrien for a new instantiation by using tsubst_friend_function rather 825950397Sobrien than just tsubst. 826050397Sobrien (tsubst): Don't tsubst into a type which is a TEMPLATE_DECL. 826150397Sobrien Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM, and the 826250397Sobrien appropriate new macros. Use reduce_template_parm_level to 826350397Sobrien generate lower-level template parameters. Handle tsubst'ing into 826450397Sobrien TEMPLATE_DECLS that declare TEMPLATE_TEMPLATE_PARMS. Don't forget 826550397Sobrien to tsubst the DECL_CONTEXT and DECL_CLASS_CONTEXT of newly created 826650397Sobrien templates. Similarly for the template parameters for a new 826750397Sobrien template. 826850397Sobrien (tsubst_copy): Tidy up slightly. Use TEMPLATE_PARM_INDEX instead 826950397Sobrien of TEMPLATE_CONST_PARM. Handle TYPE_DECLs by tsubsting into them. 827052284Sobrien (unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. 827150397Sobrien (get_bindings): Call add_to_template_args if necessary. 827250397Sobrien (instantiate_decl): Handle instantiations of friend templates. 827350397Sobrien * search.c (lookup_field_1): Don't treat the TYPE_FIELDS of a 827450397Sobrien TEMPLATE_TYPE_PARM as a list of fields; it's not! 827552284Sobrien * spew.c (yylex): Do a little manual constant propagation to 827650397Sobrien clarify the code. 827752284Sobrien 827850397SobrienSun Feb 22 19:53:29 1998 Jeffrey A Law (law@cygnus.com) 827918334Speter 828050397Sobrien * error.c: Include sys/types.h. 828118334Speter 828250397SobrienThu Feb 19 14:49:09 1998 Jeffrey A Law (law@cygnus.com) 828318334Speter 828450397Sobrien * method.c (build_mangled_name): Start CPP directives in column zero. 828518334Speter 828650397SobrienThu Feb 19 10:36:48 1998 Jason Merrill <jason@yorick.cygnus.com> 828718334Speter 828850397Sobrien * typeck2.c (process_init_constructor): Sorry about non-trivial 828950397Sobrien labeled initializers. 829052284Sobrien * parse.y (initlist): Re-enable labeled initializers. 829118334Speter 829250397SobrienThu Feb 19 10:15:55 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 829318334Speter 829452284Sobrien * pt.c (coerce_template_parms): Add a new parameter, is_tmpl_parm, 829552284Sobrien all callers changed. Rely on the new parameter instead of arg 829650397Sobrien being a TREE_LIST when determine whether we are working inside 829750397Sobrien template template parameter. Clean up is_type test. 829852284Sobrien 829950397SobrienThu Feb 19 10:04:12 1998 Jason Merrill <jason@yorick.cygnus.com> 830018334Speter 830150397Sobrien * cvt.c (cp_convert_to_pointer): Preserve TREE_CONSTANT. 830250397Sobrien * typeck2.c (initializer_constant_valid_p): Allow conversions 830352284Sobrien between pointers and references. 830418334Speter 830550397Sobrien1998-02-19 Brendan Kehoe <brendan@cygnus.com> 830618334Speter 830750397Sobrien * typeck.c (build_unary_op): Only warn about incr/decr a pointer 830850397Sobrien if pedantic || warn_pointer_arith. 830918334Speter 831050397SobrienThu Feb 19 09:37:21 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 831118334Speter 831250397Sobrien * pt.c (unify): Handle TEMPLATE_DECL. 831318334Speter 831450397Sobrien1998-02-18 Brendan Kehoe <brendan@cygnus.com> 831518334Speter 831650397Sobrien * cp-tree.h (strip_attrs): Remove decl. 831718334Speter 831850397Sobrien1998-02-18 Doug Evans <devans@cygnus.com> 831918334Speter 832050397Sobrien * decl.c (duplicate_decls): Call merge_machine_decl_attributes. 832150397Sobrien Update olddecl's attributes too. 832250397Sobrien (strip_attrs): Remove function. 832350397Sobrien * typeck.c (common_type): Call merge_machine_type_attributes. 832418334Speter 832550397SobrienTue Feb 17 14:07:52 1998 Mark Mitchell <mmitchell@usa.net> 832618334Speter 832750397Sobrien * parse.y (initdcl0_innards): New grammar symbol. 832850397Sobrien (nomods_initdecls, nomods_initdcl0): Change type from itype to 832950397Sobrien none, since the resulting value is never used. 833050397Sobrien (parse_decl): New function. 833150397Sobrien (datadef): Remove redundant actions. 833250397Sobrien (initdcl0, notype_initdcl0, nomods_initdcl0): Use initdcl0_innards. 833350397Sobrien * parse.c: Regenerated. 833452284Sobrien 833550397SobrienTue Feb 17 11:54:16 1998 Jason Merrill <jason@yorick.cygnus.com> 833618334Speter 833750397Sobrien * parse.y (simple_stmt): Use getdecls() to check for decl. 833818334Speter 833950397SobrienSat Feb 14 11:50:51 1998 Manfred Hollstein <manfred@s-direktnet.de> 834018334Speter 834152284Sobrien * Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): New 834250397Sobrien macros. 834350397Sobrien (c++.install-common): Install c++filt properly as native or as cross 834450397Sobrien variant. 834550397Sobrien (c++.uninstall): Add c++filt. 834618334Speter 834750397SobrienFri Feb 13 14:55:37 1998 Jason Merrill <jason@yorick.cygnus.com> 834818334Speter 834950397Sobrien * call.c (standard_conversion): Fix multi-level ptr conversions. 835018334Speter 835150397SobrienFri Feb 13 14:06:22 1998 Mike Stump <mrs@wrs.com> 835218334Speter 835350397Sobrien * init.c (build_new): Propagate error_mark_node up. 835418334Speter 835550397SobrienFri Feb 13 13:24:32 1998 Jason Merrill <jason@yorick.cygnus.com> 835618334Speter 835752284Sobrien * parse.y (simple_stmt): If the condition isn't a declaration, 835850397Sobrien start the controlled block after the test. 835918334Speter 836050397SobrienFri Feb 13 02:26:10 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 836118334Speter 836250397Sobrien * call.c (build_over_call): Convert builtin abs, labs and fabs to 836350397Sobrien tree-codes. 836452284Sobrien * decl.c (init_decl_processing): Re-enable abs, labs and fabs as 836550397Sobrien builtins. 836618334Speter 836750397SobrienFri Feb 13 01:36:42 1998 Jason Merrill <jason@yorick.cygnus.com> 836818334Speter 836950397Sobrien * call.c (standard_conversion): A BASE_CONV replaces an RVALUE_CONV. 837018334Speter 837150397SobrienFri Feb 13 00:21:59 1998 Jason Merrill <jason@yorick.cygnus.com> 837218334Speter 837350397Sobrien * cp-tree.h: Add access_protected_virtual_node. 837450397Sobrien * class.c (init_class_processing): Initialize it. 837550397Sobrien * decl.c (xref_basetypes): Use it. 837650397Sobrien * parse.y (base_class_access_list): Likewise. 837718334Speter 837850397Sobrien * Make-lang.in (DEMANGLER_PROG): Add $(exeext). 837950397Sobrien (c++.install-common): Install c++filt. 838018334Speter 838150397SobrienThu Feb 12 12:46:51 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 838218334Speter 838350397Sobrien * decl.c (shadow_tag): Give error for typedef-ing built-in types. 838418334Speter 838550397SobrienWed Feb 11 23:28:05 1998 Mark Mitchell <mmitchell@usa.net> 838618334Speter 838750397Sobrien * call.c (reference_binding): Use comptypes when comparing 838850397Sobrien TYPE_MAIN_VARIANTS to handle non-canonical array/index types. 838918334Speter 839050397SobrienWed Feb 11 16:42:04 1998 Mark Mitchell <mmitchell@usa.net> 839118334Speter 839250397Sobrien * tree.c (is_overloaded_fn): Use really_overloaded_fn. 839352284Sobrien (really_overloaded_fn): Move check here from is_overloaded_fn. 839450397Sobrien (get_first_fn): Use really_overloaded_fn and is_overloaded_fn. 839518334Speter 839650397SobrienWed Feb 11 15:54:18 1998 Mark Mitchell <mmitchell@usa.net> 839718334Speter 839850397Sobrien * typeck.c (build_ptrmemfunc): Type-check pointer-to-member 839950397Sobrien conversions. 840018334Speter 840150397SobrienMon Feb 9 22:23:31 1998 Mark Mitchell <mmitchell@usa.net> 840218334Speter 840350397Sobrien * cp-tree.h (push_template_decl): Return the decl passed in, or an 840450397Sobrien equivalent duplicate. 840550397Sobrien * decl.c (pushtag): Use the return value from push_template_decl. 840650397Sobrien (duplicate_decls): When duplicating a template declaration, merge 840750397Sobrien the DECL_TEMPLATE_RESULTs as well. 840850397Sobrien (make_implicit_typename): Don't try to dive into typename types to 840950397Sobrien find a context for making a new implicit typename. 841050397Sobrien (start_decl): Use the return value from push_template_decl. 841150397Sobrien (grokdeclarator): Complain about declarations list `const operator 841250397Sobrien int'. Since we don't correctly handle in-class initializations of 841350397Sobrien non-static data members, complain about this (now illegal) 841450397Sobrien practice. Issue an error for initializations of non-const statics 841550397Sobrien since that is illegal as well, and since we don't handle that case 841650397Sobrien correctly either. 841750397Sobrien (start_function): Use the return value from push_template_decl. 841850397Sobrien (start_method): Likewise. 841950397Sobrien * decl2.c (grokfield): Likewise. Since the change to 842050397Sobrien grokdeclarator ensures that all initialized fields are in fact 842150397Sobrien static, remove a redundant test for TREE_PUBLIC. 842250397Sobrien * parse.y (initlist): Disable labeled initializers since they do 842350397Sobrien not work as per the documentation, and since they do not use the 842450397Sobrien same syntax as the C front end. 842550397Sobrien * pt.c (push_template_decl): Return the decl passed in, or an 842650397Sobrien equivalent duplicate. 842750397Sobrien (lookup_template_class): When searching in a nested context, 842850397Sobrien use the right arguments. 842950397Sobrien (uses_template_parms): Handle the DECL_INITIAL for a CONST_DECL. 843050397Sobrien * typeck.c (build_component_ref): Assign the correct type to the 843150397Sobrien result of build_vfn_ref. 843252284Sobrien 843350397SobrienTue Feb 10 23:56:46 1998 Jason Merrill <jason@yorick.cygnus.com> 843418334Speter 843550397Sobrien * pt.c (convert_nontype_argument): Fix typo. 843650397Sobrien (check_explicit_specialization): Allow old-style specialization 843750397Sobrien of class template members. 843818334Speter 843950397SobrienTue Feb 10 20:36:52 1998 Jason Merrill <jason@yorick.cygnus.com> 844050397Sobrien Manfred Hollstein <manfred@s-direktnet.de> 844118334Speter 844250397Sobrien * decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead 844350397Sobrien when deciding to override DECL_ASSEMBLER_NAME. 844418334Speter 844552284SobrienTue Feb 10 15:30:55 1998 Andrew MacLeod <amacleod@torpedo.to.cygnus.com> 844618334Speter 844750397Sobrien * decl2.c (lang_f_options): Add -fsquangle to option processing list. 844850397Sobrien * cp-tree.h (flag_do_squangling): Add declaration. 844950397Sobrien * lang-options.h: Add -fsquangle and -fno-squangle. 845050397Sobrien * method.c: Add macros and static variables for squangling. 845152284Sobrien (build_overload_name): Rename to build_mangled_name, add logic for B 845252284Sobrien compression, and split into process_modifiers and 845350397Sobrien process_overload_item. 845452284Sobrien (process_modifiers): New function, to handle constant, reference, 845552284Sobrien and pointer types. 845650397Sobrien (process_overload_item): New function, handles issue of type codes. 845752284Sobrien (build_overload_name): New function, start squangling and call 845850397Sobrien build_mangled_name. 845950397Sobrien (ALLOCATE_TYPEVEC, DEALLOCATE_TYPEVEC): Remove macro and expand inline. 846050397Sobrien (start_squangling): New function to initialize squangling structs. 846150397Sobrien (end_squangling): New function to destroy squangling structs. 846250397Sobrien (nrepeats): Rename variable to Nrepeats. 846350397Sobrien (issue_nrepeats): New function for issuing 'n' type repeats. 846450397Sobrien (check_ktype): New function to check for type K name compression. 846550397Sobrien (build_overload_nested_name): Add a check for K name compression. 846650397Sobrien (build_qualified_name): Add a check for K name compression and don't 846750397Sobrien use DECL_ASSEMBLER_NAME when squangling is on. 846850397Sobrien (check_btype): New function, checks for B type compression. 846950397Sobrien (build_static_name, build_decl_overload_real): Initiate squangling. 847052284Sobrien (build_typename_overload, build_overload_with_type): Initiate 847150397Sobrien squangling 847218334Speter 847350397SobrienSun Feb 8 23:47:38 1998 scott snyder <sss@d0linux01.fnal.gov> 847418334Speter 847550397Sobrien * method.c (make_thunk): Avoid name buffer overflow. 847618334Speter 847750397SobrienSat Feb 7 16:48:54 1998 Jason Merrill <jason@yorick.cygnus.com> 847818334Speter 847950397Sobrien * pt.c (instantiate_decl): Call cp_finish_decl for vars even if we 848050397Sobrien don't define them yet. 848118334Speter 848250397Sobrien * parse.y (nomods_initdcl0): Add constructor_declarator case. 848318334Speter 848450397SobrienFri Feb 6 21:32:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 848518334Speter 848650397Sobrien * config-lang.in (diff_excludes): Use basename only. 848718334Speter 848850397SobrienThu Feb 5 19:10:40 1998 Jason Merrill <jason@yorick.cygnus.com> 848918334Speter 849050397Sobrien * tinfo2.cc: Add tinfo for signed char. 849118334Speter 849250397SobrienThu Feb 5 14:38:23 1998 Mike Stump <mrs@wrs.com> 849318334Speter 849450397Sobrien * search.c (compute_access): Handle protected constructors in derived 849550397Sobrien classes as accessible. 849618334Speter 849750397SobrienWed Feb 4 01:26:49 1998 Jason Merrill <jason@yorick.cygnus.com> 849818334Speter 849950397Sobrien * expr.c (cplus_expand_expr, PCC_STATIC_STRUCT_RETURN code): 850050397Sobrien Call convert_from_reference sooner. 850118334Speter 850250397SobrienTue Feb 3 23:50:52 1998 Mark Mitchell <mmitchell@usa.net> 850318334Speter 850450397Sobrien * cvt.c (ocp_convert): Obtain the constant values from constant 850550397Sobrien decls even if the destination type is the same as the type of the 850652284Sobrien decl. 850718334Speter 850850397Sobrien * decl2.c (finish_file): Make sure that static inlines with 850950397Sobrien definitions are not marked DECL_EXTERNAL before returning. 851018334Speter 851150397SobrienTue Feb 3 22:43:42 1998 Jason Merrill <jason@yorick.cygnus.com> 851218334Speter 851350397Sobrien * decl.c: Lose arg_looking_for_template. 851450397Sobrien (lookup_name_real): Likewise. 851552284Sobrien * parse.y: Lose processing_template_arg, template_arg1. 851650397Sobrien (primary): Likewise. 851750397Sobrien * spew.c (yylex): Set lastiddecl for PTYPENAMEs, too. 851818334Speter 851950397SobrienTue Feb 3 22:04:01 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 852018334Speter 852150397Sobrien * error.c (dump_decl): Fix type of default arguments for template 852250397Sobrien template parameters and nontype template parameters. 852352284Sobrien * parse.y (template_parm): Handle invalid default template 852450397Sobrien template arguments here. 852518334Speter 852652284Sobrien * parse.y (template_parm): Use template_arg instead of PTYPENAME 852750397Sobrien for default template template argument. 852852284Sobrien * pt.c (coerce_template_parms): Merge default template argument 852950397Sobrien codes. Can treat RECORD_TYPE as template name if it is implicitly 853050397Sobrien created. Fix argument index in error message. 853152284Sobrien * typeck.c (comptypes): Merge template argument comparison codes in 853250397Sobrien TEMPLATE_TEMPLATE_PARM and RECORD_TYPE. 853318334Speter 853452284SobrienTue Jan 6 01:42:44 1998 Mumit Khan <khan@xraylith.wisc.edu> 853518334Speter 853650397Sobrien * lex.c (file_name_nondirectory): Also check for '/'. 853718334Speter 853850397SobrienMon Feb 2 11:24:22 1998 Mark Mitchell <mmitchell@usa.net> 853918334Speter 854050397Sobrien * parse.y (primary): Deal with statement-expressions in 854152284Sobrien templates. 854250397Sobrien * pt.c (tsubst_copy): Handle BIND_EXPR. 854350397Sobrien * tree.c (mapcar): Likewise. 854418334Speter 854550397Sobrien * call.c (add_template_candidate_real): Pass extra parameter to 854652284Sobrien fn_type_unification. 854750397Sobrien * cp-tree.h (fn_type_unification): Add parameter. 854850397Sobrien * pt.c (fn_type_unification): Add additional parameter to deal with 854950397Sobrien static member functions. 855050397Sobrien (get_bindings): Deal with static member functions. 855118334Speter 855252284Sobrien * cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro. 855350397Sobrien (revert_static_member_fn): Declare. 855450397Sobrien * decl.c (revert_static_member_fn): Remove declaration. Change 855550397Sobrien linkage from internal to external. 855650397Sobrien (cp_finish_decl): Deal with virtual functions in classes local to 855750397Sobrien template functions. 855850397Sobrien * decl2.c (finish_file): Don't forget to emit increment/decrement 855950397Sobrien expressions in initializers for file-scope variables. 856050397Sobrien * parse.y (typename_sub2): If the typename doesn't names a 856150397Sobrien template, rather than a type, issue an error message. 856250397Sobrien * pt.c (check_explicit_specialization): Handle specializations of 856350397Sobrien static member functions. 856450397Sobrien (coerce_template_parms): Handle offset references to lists of 856550397Sobrien member functions. 856650397Sobrien * search.c (note_debug_info_needed): Don't crash when handed a 856750397Sobrien type which is being defined. 856850397Sobrien * typeck.c (complete_type): Don't crash when handed NULL_TREE; 856950397Sobrien that can happen with some illegal code. 857018334Speter 857150397SobrienMon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 857218334Speter 857350397Sobrien * call.c (user_harshness): Initialize `code' to 0. 857450397Sobrien (build_method_call): Initialize `candidates', `cp' and `len' to 0. 857550397Sobrien (null_ptr_cst_p): Add parentheses around && within ||. 857650397Sobrien (standard_conversion): Likewise. 857750397Sobrien (z_candidate): Likewise. 857850397Sobrien (build_user_type_conversion_1): Initialize `args' to NULL_TREE. 857950397Sobrien (build_object_call): Likewise for `mem_args'. 858050397Sobrien (build_new_op): Likewise for `mem_arglist'. Add `return' from 858150397Sobrien default case in enumeration switch. 858218334Speter 858350397Sobrien * class.c (build_vtable_entry): Add explicit braces to avoid 858450397Sobrien ambiguous `else'. 858550397Sobrien (build_class_init_list): Likewise. 858650397Sobrien (finish_struct_1): Initialize `width' to 0. 858750397Sobrien (instantiate_type): Initialize `name' to NULL_TREE. Add 858850397Sobrien explicit braces to avoid ambiguous `else'. 858918334Speter 859050397Sobrien * cvt.c (convert_to_aggr): Add explicit braces to avoid ambiguous 859150397Sobrien `else'. 859218334Speter 859350397Sobrien * decl.c (grok_reference_init): Eliminate unused parameter, all 859450397Sobrien callers changed. 859550397Sobrien (record_builtin_type): Initialize `tdecl' to NULL_TREE. 859650397Sobrien (init_decl_processing): Initialize `vb_off_identifier' to NULL_TREE. 859750397Sobrien (cp_finish_decl): Initialize `ttype' to NULL_TREE. 859850397Sobrien (grokdeclarator): Add parentheses around && within ||. Add 859950397Sobrien explicit braces to avoid ambiguous `else'. 860050397Sobrien (grokparms): Initialize `type' to NULL_TREE. 860152284Sobrien (xref_tag): Remove unused label `just_return'. 860250397Sobrien (finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE. 860350397Sobrien (finish_function): Initialize `cond' and `thenclause' to NULL_TREE. 860450397Sobrien (hack_incomplete_structures): Add parentheses around assignment 860550397Sobrien used as truth value. 860618334Speter 860750397Sobrien * decl2.c (coerce_delete_type): Hide definition of `e3'. 860818334Speter 860950397Sobrien * error.c: Include <stdlib.h>. 861050397Sobrien (dump_expr): Change the type of `i' to size_t. Remove unused 861152284Sobrien label `error'. 861218334Speter 861350397Sobrien * except.c (init_exception_processing): Remove unused variable `d'. 861450397Sobrien (expand_throw): Likewise for `label'. 861518334Speter 861650397Sobrien * friend.c (add_friends): Add explicit braces to avoid ambiguous 861750397Sobrien `else'. 861818334Speter 861950397Sobrien * init.c (sort_member_init): Initialize `last_field' to NULL_TREE. 862050397Sobrien (sort_base_init): Likewise for `binfo'. 862150397Sobrien (expand_member_init): Likewise for `rval'. 862250397Sobrien (build_member_call): Add parentheses around assignment used as 862350397Sobrien truth value. 862450397Sobrien (build_offset_ref): Add explicit braces to avoid ambiguous `else'. 862550397Sobrien (build_new): Initialize `nelts' to NULL_TREE. Initialize 862650397Sobrien `old_immediate_size_expand' to 0. 862750397Sobrien (build_new_1): Initialize `nelts' and `alloc_node' to NULL_TREE. 862850397Sobrien (build_vec_delete_1): Remove unused variable `block'. 862950397Sobrien (expand_vec_init): Initialize `itype' to NULL_TREE. 863018334Speter 863150397Sobrien * lex.c: Include <strings.h> if we don't have <string.h>. Protect 863250397Sobrien declaration of `index' and `rindex' with autoconf macros. 863350397Sobrien (reinit_parse_for_expr): Remove unused variables 863450397Sobrien `look_for_semicolon' and `look_for_lbrac'. 863550397Sobrien (cons_up_default_function): Initialize `args' to NULL_TREE. 863650397Sobrien (readescape): Initialize `firstdig' to 0. 863752284Sobrien (real_yylex): Add parentheses around assignment used as truth value. 863818334Speter 863950397Sobrien * method.c: Include <strings.h> if we don't have <string.h>. 864050397Sobrien Protect declaration of `index' with autoconf macro. 864118334Speter 864250397Sobrien * parse.y (primary): Add explicit braces to avoid ambiguous `else'. 864350397Sobrien Initialize `type' to NULL_TREE. 864450397Sobrien (structsp): Remove unused variable `id'. 864518334Speter 864650397Sobrien * pt.c (coerce_template_parms): Add explicit braces to avoid 864750397Sobrien ambiguous `else'. 864850397Sobrien (lookup_template_class): Initialize `template' to NULL_TREE. 864950397Sobrien (instantiate_class_template): Remove unused variable `name' and `e'. 865050397Sobrien (tsubst): Likewise for `i'. Initialize `last' to NULL_TREE. 865150397Sobrien (do_poplevel): Initialize `saved_warn_unused' to 0. 865250397Sobrien (type_unification): Remove unused varable `parm'. 865350397Sobrien (unify): Likewise for `j'. 865418334Speter 865550397Sobrien * repo.c (init_repo): Add parentheses around assignment used as 865650397Sobrien truth value. 865750397Sobrien (finish_repo): Remove unused varable `p'. 865852284Sobrien 865952284Sobrien * search.c (get_binfo): Initialize `type' to NULL_TREE. 866050397Sobrien (get_base_distance): Likewise. 866150397Sobrien (lookup_field): Initialize `rval_binfo_h', `type', `basetype_path' 866250397Sobrien and `new_v' to NULL_TREE. 866350397Sobrien (lookup_fnfields): Likewise for `rval_binfo_h'. 866450397Sobrien (breadth_first_search): Add parentheses around assignment used as 866550397Sobrien truth value. 866650397Sobrien (get_template_base): Initialize `type' to NULL_TREE. 866718334Speter 866850397Sobrien * sig.c (append_signature_fields): Initialize `last_mfptr' to 866950397Sobrien NULL_TREE. 867050397Sobrien (build_signature_table_constructor): Likewise for 867150397Sobrien `last_rhs_field', `pfn' and `vt_off'. 867250397Sobrien (build_sigtable): Likewise for `init'. 867318334Speter 867450397Sobrien * tree.c (break_out_calls): Initialize `t2' to NULL_TREE. 867550397Sobrien (propagate_binfo_offsets): Likewise for `delta'. 867650397Sobrien (hash_tree_cons): Initialize hashcode to 0. 867750397Sobrien (can_free): Likewise for `size'. 867850397Sobrien (cp_tree_equal): Add explicit braces to avoid ambiguous `else'. 867952284Sobrien 868050397Sobrien * typeck.c (convert_sequence): Hide prototype. 868150397Sobrien (common_type): Add explicit braces to avoid ambiguous `else'. 868250397Sobrien (comp_target_types): Likewise. 868350397Sobrien (build_x_function_call): Initialize `ctypeptr' to NULL_TREE. 868450397Sobrien (build_function_call_real): Add explicit braces to avoid ambiguous 868550397Sobrien `else'. 868650397Sobrien (convert_arguments): Initialize `called_thing' to 0. 868750397Sobrien (convert_for_initialization): Initialize `savew' and `savee' to 0. 868818334Speter 868950397Sobrien * typeck2.c (incomplete_type_error): Initialize `errmsg' to 0. 869050397Sobrien (digest_init): Initialize `old_tail_contents' to NULL_TREE. 869150397Sobrien (build_x_arrow): Likewise for `last_rval'. 869218334Speter 869350397Sobrien * xref.c (GNU_xref_decl): Initialize `cls' to 0. 869418334Speter 869552284SobrienSun Feb 1 12:45:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk> 869618334Speter 869750397Sobrien * decl.c (init_decl_processing): Use set_sizetype. 869850397Sobrien * decl2.c (sizetype): Don't declare. 869950397Sobrien * typeck.c (c_sizeof): Convert result of *_DIV_EXPR to sizetype. 870050397Sobrien (c_sizeof_nowarn, build_binary_op_nodefault): Likewise. 870150397Sobrien (build_component_addr, unary_complex_lvalue): Likewise. 870250397Sobrien * rtti.c (expand_class_desc): Likewise. 870350397Sobrien * class.c (get_vfield_offset): Likewise. 870418334Speter 870550397SobrienThu Jan 29 10:39:30 1998 Mark Mitchell <mmitchell@usa.net> 870618334Speter 870750397Sobrien * pt.c (convert_nontype_argument): Move check for is_overloaded_fn 870850397Sobrien early to avoid bogus error. Handle overloaded function 870950397Sobrien names provided as template arguments correctly. 871050397Sobrien (coerce_template_parms): Don't mishandle overloaded functions when 871150397Sobrien dealing with template template parameters. 871250397Sobrien (lookup_template_class): Issue an error message, rather than 871350397Sobrien crashing, when the TYPE_DECL provided is not a template type. 871418334Speter 871550397SobrienWed Jan 28 23:14:44 1998 Jason Merrill <jason@yorick.cygnus.com> 871618334Speter 871750397Sobrien * class.c (instantiate_type): Don't just return a known type if 871852284Sobrien it's wrong. 871918334Speter 872050397SobrienWed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net> 872118334Speter 872250397Sobrien * class.c (instantiate_type): Remove handling of FUNCTION_DECL 872350397Sobrien since that code could never be reached. 872452284Sobrien 872550397Sobrien * error.c (dump_decl): Avoid aborting in the midst of printing an 872650397Sobrien error message about an illegal template declaration. 872718334Speter 872850397Sobrien * parse.y (structsp): Print an error message, rather than crashing, 872950397Sobrien when a class-head does not name a class. 873018334Speter 873150397Sobrien * pt.c (convert_nontype_argument): Allow REAL_TYPE and COMPLEX_TYPE 873250397Sobrien template arguments as a g++ extension. 873352284Sobrien 873450397Sobrien * cp-tree.def (ALIGNOF_EXPR): New tree code. 873550397Sobrien * decl2.c (grok_alignof): If processing_template_decl, just store 873650397Sobrien the expression. 873750397Sobrien * typeck.c (c_alignof): Likewise. 873850397Sobrien * decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR. 873950397Sobrien * error.c (dump_expr): Likewise. 874050397Sobrien * pt.c (tsubst_copy): Likewise. 874150397Sobrien * tree.c (cp_tree_equal): Likewise. 874250397Sobrien * pt.c (uses_template_parms): Correctly determine whether or not a 874350397Sobrien SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant 874450397Sobrien folding can be done. 874552284Sobrien 874650397Sobrien * cp-tree.h (grok_enum_decls): Remove type parameter. 874750397Sobrien * decl.c (grok_enum_decls): Likewise. 874850397Sobrien * decl2.c (grok_x_components): Call grok_enum_decls 874950397Sobrien unconditionally, since it will do nothing if there is no 875050397Sobrien current_local_enum. Use the new calling sequence. 875150397Sobrien * pt.c (tsubst_enum): Use the new calling sequence for 875250397Sobrien grok_enum_decls. 875318334Speter 875450397Sobrien * decl.c (start_function): Make member functions of local classes 875550397Sobrien in extern inline functions have comdat linkage here... 875650397Sobrien (grokdeclarator): Rather than here. 875752284Sobrien 875850397SobrienWed Jan 28 10:55:47 1998 Jason Merrill <jason@yorick.cygnus.com> 875918334Speter 876050397Sobrien * pt.c (convert_nontype_argument): Use decl_constant_value. 876118334Speter 876250397SobrienTue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net> 876318334Speter 876450397Sobrien * call.c (add_template_candidate_real): New function. 876550397Sobrien (add_template_candidate): Use it. 876650397Sobrien (add_template_conv_candidate): Likewise. 876750397Sobrien (joust): Pass extra argument to more_specialized. 876850397Sobrien * class.c (instantiate_type): Handle a single FUNCTION_DECL. 876950397Sobrien (is_local_class): Remove. 877050397Sobrien (finish_struct): Check TI_PENDING_SPECIALIZATION_FLAG. 877150397Sobrien * cp-tree.h (is_local_class): Remove. 877250397Sobrien (perform_array_to_pointer_conversion): Likewise. 877350397Sobrien (finish_member_template_decl): Add. 877450397Sobrien (check_explicit_specialization): Return a tree, not an int. 877550397Sobrien (more_specialized): Take additional argument. 877650397Sobrien (get_bindings): Likewise. 877750397Sobrien (TI_PENDING_SPECIALIZATION_FLAG): New macro. 877850397Sobrien * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes. 877950397Sobrien (perform_array_to_pointer_conversion): Remove. 878050397Sobrien * decl.c (saved_scope): Add processing_specialization, 878150397Sobrien processing_explicit_instantiation fields. 878250397Sobrien (maybe_push_to_top_level): Save them. 878350397Sobrien (pop_from_top_level): Restore them. 878450397Sobrien (grokfndecl): Use new return value from 878552284Sobrien check_explicit_specialization. 878650397Sobrien (start_decl): Don't check flag_guiding_decls before pushing 878752284Sobrien decls. 878850397Sobrien (cp_finish_decl): Remove previous (bogus) change. 878950397Sobrien (grok_declarator): Use decl_function_context rather than 879052284Sobrien is_local_class. 879150397Sobrien * decl2.c (finish_file): Pass extra argument to get_bindings. 879252284Sobrien (build_expr_from_tree): Let build_x_component_ref check 879350397Sobrien validity of arguments rather than doing it here. 879450397Sobrien * lex.c (cons_up_default_function): Remove code fooling with 879550397Sobrien processing_specialization, processing_explicit_instantiation 879652284Sobrien flags, as that is now done in {maybe_push_top,pop_from}_top_level. 879750397Sobrien * method.c (build_overload_identifier): Mangle local classes in 879850397Sobrien template functions correctly. 879950397Sobrien * parse.y (finish_member_template_decl): Move to pt.c. 880050397Sobrien * pt.c (finish_member_template_decl): Moved here from parse.y. 880150397Sobrien (print_candidates): New function. 880250397Sobrien (determine_specialization): Change interface. Properly look for 880350397Sobrien most specialized versions of template candidates. 880450397Sobrien (check_explicit_specialization): Fully process explicit 880552284Sobrien instantiations. 880650397Sobrien (push_template_decl): Avoid looking at CLASSTYPE fields in 880752284Sobrien FUNCTION_DECLS. 880850397Sobrien (determine_overloaded_function): Remove. 880950397Sobrien (convert_nontype_argument): Change name from 881050397Sobrien convert_nontype_parameter. Use determine_overloaded_function 881150397Sobrien instead of instantiate_type. 881250397Sobrien (mangle_class_name_for_template): Handle type contexts as well as 881350397Sobrien function contexts. 881450397Sobrien (classtype_mangled_name): Likewise. 881550397Sobrien (lookup_template_class): Likewise. 881650397Sobrien (tsubst): Likewise. 881750397Sobrien (more_specialized): Take explict template arguments as a 881852284Sobrien parameter. 881950397Sobrien (most_specialized): Likewise. 882050397Sobrien (get_bindings): Likewise. Check that return types match before 882150397Sobrien proclaiming a function a match. 882250397Sobrien (do_decl_instantiation): Remove code searching for function to 882350397Sobrien instantiate; that is now done in check_explicit_specialization. 882450397Sobrien (add_maybe_template): Pass extra argument to get_bindings. 882550397Sobrien * tree.c (really_overloaded_fn): Use is_overloaded_fn to simplify 882650397Sobrien implementation. 882750397Sobrien * typeck.c (build_component_ref): Check for invalid arguments. 882818334Speter 882950397SobrienTue Jan 27 01:44:02 1998 Jason Merrill <jason@yorick.cygnus.com> 883018334Speter 883152284Sobrien * expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that 883250397Sobrien return_target and call_target are equivalent. 883318334Speter 883450397Sobrien * pt.c (type_unification_real): Just accept function parms that 883550397Sobrien don't use any template parms. 883618334Speter 883750397SobrienSun Jan 25 03:30:00 1998 Jason Merrill <jason@yorick.cygnus.com> 883818334Speter 883950397Sobrien * decl.c (cp_finish_decl): When bailing on a comdat variable, also 884050397Sobrien unset DECL_NOT_REALLY_EXTERN. 884118334Speter 884250397Sobrien * parse.y (typename_sub*): Fix std::. 884318334Speter 884450397SobrienSat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com> 884518334Speter 884650397Sobrien * error.c (dump_decl): Fix type default template args. 884750397Sobrien (dump_type): Hand TEMPLATE_DECL off to dump_decl. 884818334Speter 884952284SobrienFri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu> 885018334Speter 885150397Sobrien * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined. 885250397Sobrien (file_name_nondirectory): Use. 885318334Speter 885450397SobrienWed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 885518334Speter 885650397Sobrien * pt.c (coerce_template_parms): Don't access elements of ARGLIST 885752284Sobrien that are not really present. Substitute default arguments in 885852284Sobrien template template arguments. Correctly convert TEMPLATE_DECL to 885950397Sobrien TEMPLATE_TEMPLATE_PARM. 886052284Sobrien (comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM 886150397Sobrien are no longer treated specially here. 886250397Sobrien * parse.y (template_template_parm): Fix copy error. 886350397Sobrien * decl.c (grokdeclarator): Warn about missing `typename' for nested 886450397Sobrien type created from template template parameters. 886550397Sobrien * parse.y (bad_parm): Likewise 886618334Speter 886750397Sobrien * class.c (finish_struct): Handle TEMPLATE_TEMPLATE_PARM. 886850397Sobrien (push_nested_class): Likewise. 886950397Sobrien * cp-tree.def (TEMPLATE_TEMPLATE_PARM): New tree code. 887050397Sobrien * cp-tree.h (DECL_TEMPLATE_TEMPLATE_PARM_P): New macro. 887150397Sobrien (copy_template_template_parm): Declare. 887250397Sobrien * decl.c (arg_looking_for_template): New variable. 887350397Sobrien (lookup_name_real): Handle TEMPLATE_TEMPLATE_PARM. 887450397Sobrien Try to return TEMPLATE_DECL or TEMPLATE_TEMPLATE_PARM 887550397Sobrien node if arg_looking_for_template is nonzero. 887650397Sobrien (pushdecl): Handle TEMPLATE_TEMPLATE_PARM. 887750397Sobrien (grok_op_properties, xref_tag, xref_basetypes): Likewise. 887850397Sobrien (grokdeclarator): Handle TEMPLATE_DECL. 887950397Sobrien * decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM. 888050397Sobrien * error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM. 888152284Sobrien (dump_type_prefix, dump_type_suffix): Handle TEMPLATE_TEMPLATE_PARM. 888250397Sobrien (dump_decl): Handle unnamed template type parameters. 888350397Sobrien Handle template template parameters. 888450397Sobrien (dump_function_name): Handle template template parameters. 888552284Sobrien * init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef): 888650397Sobrien Handle TEMPLATE_TEMPLATE_PARM. 888750397Sobrien * method.c (build_template_template_parm_names): New function. 888850397Sobrien (build_template_parm_names): Handle TEMPLATE_DECL. 888952284Sobrien (build_overload_nested_name, build_overload_name): 889050397Sobrien Handle TEMPLATE_TEMPLATE_PARM. 889150397Sobrien * parse.y (maybe_identifier): New nonterminal. 889250397Sobrien (template_type_parm): Use it. 889350397Sobrien (template_template_parm, template_arg1): New nonterminal. 889450397Sobrien (template_parm): Add template_template_parm rules. 889550397Sobrien (template_arg): Set processing_template_arg. 889650397Sobrien (template_arg1): Rules moved from template_arg. 889750397Sobrien (primary, nonnested_type): Set arg_looking_for_template if we are 889850397Sobrien processing template arguments. 889950397Sobrien * pt.c (begin_member_template_processing): Handle TEMPLATE_DECL. 890050397Sobrien (process_template_parm): Handle template template parameters. 890150397Sobrien (coerce_template_parms, comp_template_args): Likewise. 890250397Sobrien (mangle_class_name_for_template, lookup_template_class): Likewise. 890352284Sobrien (uses_template_parms): Handle TEMPLATE_DECL and 890450397Sobrien TEMPLATE_TEMPLATE_PARM. 890550397Sobrien (current_template_args): Handle TEMPLATE_DECL. 890650397Sobrien (tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM. 890752284Sobrien * search.c (dfs_walk, dfs_record_inheritance): 890850397Sobrien Handle TEMPLATE_TEMPLATE_PARM. 890950397Sobrien * tree.c (copy_template_template_parm): New function. 891050397Sobrien (mapcar): Handle TEMPLATE_TEMPLATE_PARM. 891150397Sobrien * typeck.c (comptypes): Handle TEMPLATE_TEMPLATE_PARM. 891218334Speter 891350397SobrienMon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> 891418334Speter 891550397Sobrien * decl.c (start_decl): Don't allow duplicate definitions of static 891650397Sobrien data members. 891718334Speter 891850397Sobrien * call.c (build_user_type_conversion_1): Handle user-defined 891950397Sobrien template conversion operators correctly. 892018334Speter 892150397Sobrien * decl2.c (build_expr_from_tree): Issue an error message if the 892250397Sobrien object in a COMPONENT_REF is a TEMPLATE_DECL. 892352284Sobrien 892450397Sobrien * typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs. 892552284Sobrien 892650397Sobrien * class.c (is_local_class): New function. 892750397Sobrien * cp-tree.h (is_local_class): Declare it. 892850397Sobrien (last_tree): Likewise. 892950397Sobrien (begin_tree): Likewise. 893050397Sobrien (end_tree): Likewise. 893150397Sobrien (lookup_template_class): Change prototype. 893252284Sobrien * decl.c (cp_finish_decl): Check for NULL where necessary. 893350397Sobrien Consider FUNCTION_DECLS to declare objects with top-level binding, 893450397Sobrien when calling make_decl_rtl. 893550397Sobrien (grokdeclarator): Give members of local classes internal linkage. 893650397Sobrien (start_function): Remove declaration of last_tree. 893750397Sobrien (finish_function): Set flag_keep_inline_functions around call to 893850397Sobrien rest_of_compilation if we are processing a member function in a 893950397Sobrien local class. 894050397Sobrien (start_method): Call push_template_decl for member functions of 894150397Sobrien local classes in template functions. 894250397Sobrien * decl2.c (import_export_decl): Don't give external linkage to 894350397Sobrien instantiations of templates with internal linkage. 894450397Sobrien * parse.y (last_tree): Remove declaration. 894550397Sobrien (template_type): Pass extra parameter to lookup_template_class. 894650397Sobrien (self_template_type): Likewise. 894750397Sobrien (structsp): Move call to reset_specialization into left_curly. 894850397Sobrien (left_curly): Call reset_specialization, and begin_tree. 894950397Sobrien * pt.c (saved_trees): New variable. 895050397Sobrien (mangle_class_name_for_template): Change prototype. Use 895150397Sobrien additional function context to name local classes in templates 895252284Sobrien correctly. 895350397Sobrien (classtype_mangled_name): Pass the context. 895450397Sobrien (push_template_decl): Handle local classes and templates, and 895550397Sobrien member functions for such classes. 895650397Sobrien (convert_nontype_parameter): Fix handling of pointer-to-member 895752284Sobrien constants. 895850397Sobrien (lookup_template_class): Handle local classes in templates. 895950397Sobrien (tsubst): Likewise. Don't assume that template instantiations 896052284Sobrien have external linkage; pay attention to the template declaration. 896150397Sobrien (mark_decl_instantiated): Likewise. 896250397Sobrien (begin_tree): New function. 896350397Sobrien (end_tree): Likewise. 896452284Sobrien 896550397Sobrien * decl.c (xref_basetypes): Don't call complete_type for basetypes 896650397Sobrien that involve template parameters; that can lead to infinite 896750397Sobrien recursion unnecessarily. 896818334Speter 896950397Sobrien * pt.c (register_specialization): Do not register specializations 897050397Sobrien that aren't ready to be registered yet. 897150397Sobrien (check_explicit_specialization): Handle explicit specialization of 897250397Sobrien constructors and destructors. 897350397Sobrien (build_template_decl): New function. 897450397Sobrien (push_template_delc): Handle out-of-class specializations of 897550397Sobrien member templates. 897618334Speter 897752284Sobrien * pt.c (check_explicit_specialization): Set up the template 897852284Sobrien information before registering the specialization. 897952284Sobrien (coerce_template_parms): Fix thinko. 898052284Sobrien (tsubst): Handle specializations of member templates correctly. 898152284Sobrien 898250397Sobrien * class.c (finish_struct_methods): Remove calls to 898350397Sobrien check_explicit_specialization from here. 898450397Sobrien (finish_struct): And insert them here. 898550397Sobrien * cp-tree.h (perform_qualification_conversions): New function. 898650397Sobrien (perform_array_to_pointer_conversion): Likewise. 898750397Sobrien (begin_explicit_instantiation): Likewise. 898850397Sobrien (end_explicit_instantiation): Likewise. 898950397Sobrien (determine_specialization): Renamed from 899052284Sobrien determine_explicit_specialization. 899150397Sobrien (comp_template_parms): New function. 899250397Sobrien (processing_explicit_instantiation): New variable. 899350397Sobrien * cvt.c (perform_qualification_conversions): New function. 899450397Sobrien (perform_array_to_pointer_conversion): Likewise. 899550397Sobrien * decl.c (duplicate_decls): Don't consider template functions 899650397Sobrien alike unless they have the same parameters. Refine handling of 899750397Sobrien instantiation/specialization mismatches. 899850397Sobrien (start_decl): Don't call pushdecl for template specializations, 899950397Sobrien since they don't affect overloading. 900052284Sobrien (start_function): Likewise. 900150397Sobrien (grokfndecl): Call check_explicit_specialization a little later. 900250397Sobrien Don't call duplicate_decls for memberm template specializations. 900350397Sobrien (grokdeclarator): Don't update template_count for classes that are 900450397Sobrien themselves specializations. Remove use of `2' as parameter to 900550397Sobrien grokfndecl since that value isn't used. 900650397Sobrien * lex.c (cons_up_default_function): Save and restore 900750397Sobrien processing_explicit_instantiation around calls to grokfield. 900850397Sobrien * parse.y (finish_member_template_decl): New function. 900950397Sobrien (component_decl_1): Use it. 901050397Sobrien (fn.def2): Likewise. 901152284Sobrien (template_arg_list_opt): New nonterminal. 901250397Sobrien (template_type): Use it. 901350397Sobrien (self_template_type): Likewise. 901450397Sobrien (template_id): Likewise. 901550397Sobrien (object_template_id): Likewise. 901650397Sobrien (notype_template_declarator): Likwise. 901750397Sobrien (begin_explicit_instantiation): Likewise. 901850397Sobrien (end_explicit_instantiation): Likewise. 901950397Sobrien (explicit_instantiation): Use them. 902050397Sobrien * pt.c (coerce_template_parms): Add parameters. 902150397Sobrien (processing_explicit_instantiation): New variable. 902250397Sobrien (convert_nontype_parameter): New function. 902350397Sobrien (determine_overloaded_function): Likewise. 902450397Sobrien (begin_explicit_instantiation): Likewise. 902550397Sobrien (end_explicit_instantiation): Likewise. 902650397Sobrien (retrieve_specialization): Likewise. 902750397Sobrien (register_specialization): Likewise. 902850397Sobrien (processing_explicit_specialization): Removed. 902950397Sobrien (determine_specialization): Handle specializations of member 903050397Sobrien functions of template class instantiations. 903150397Sobrien (check_explicit_specialization): Refine to conform to standard. 903250397Sobrien (comp_template_parms): New function. 903350397Sobrien (coerce_template_parms): Call convert_nontype_parameter. 903450397Sobrien (tsubst): Refine handling of member templates. Use 903552284Sobrien register_specialization. 903650397Sobrien (instantiate_template): Use retrieve_specialization. 903750397Sobrien (do_decl_instantiation): Likewise. 903850397Sobrien (instantiate_decl): Likewise. 903950397Sobrien (type_unification): Improve handling of explict template 904052284Sobrien arguments. 904150397Sobrien * tree.c (mapcar): Return error_mark_node, rather than aborting, 904250397Sobrien on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS. 904350397Sobrien * typeck.c (build_unary_op): Call determine_specialization, rather 904450397Sobrien than determine_explicit_specialization. 904518334Speter 904650397SobrienMon Jan 19 13:18:51 1998 Jason Merrill <jason@yorick.cygnus.com> 904718334Speter 904850397Sobrien * cvt.c (build_up_reference): A TARGET_EXPR has side effects. 904918334Speter 905050397SobrienFri Jan 16 11:40:50 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 905118334Speter 905252284Sobrien * error.c (dump_decl): For enum tags, output the tag, not its value. 905318334Speter 905450397Sobrien1998-01-13 Brendan Kehoe <brendan@cygnus.com> 905518334Speter 905650397Sobrien * decl.c (init_decl_processing): Only call init_rtti_processing 905750397Sobrien FLAG_RTTI is set. 905818334Speter 905950397SobrienMon Jan 12 01:35:18 1998 Jason Merrill <jason@yorick.cygnus.com> 906018334Speter 906150397Sobrien * init.c (build_new_1): Split out from build_new. 906250397Sobrien (build_new): Just return a NEW_EXPR. 906350397Sobrien * expr.c (cplus_expand_expr): Handle NEW_EXPR. 906418334Speter 906550397Sobrien * decl2.c (get_temp_regvar): Tweak. 906618334Speter 906750397Sobrien * cp-tree.h (TREE_CALLS_NEW): Comment out. 906850397Sobrien * class.c (resolves_to_fixed_type_p): Remove use. 906950397Sobrien * method.c (build_opfncall): Likewise. 907050397Sobrien * call.c (build_new_op): Likewise. 907118334Speter 907250397SobrienWed Jan 7 23:47:13 1998 Jason Merrill <jason@yorick.cygnus.com> 907318334Speter 907450397Sobrien * exception.cc (__eh_alloc, __eh_free): New fns. 907550397Sobrien (__cp_push_exception, __cp_pop_exception): Use them. 907650397Sobrien (__uncatch_exception): Call terminate here if no exception. 907750397Sobrien * except.c (build_terminate_handler): New fn. 907850397Sobrien (expand_start_catch_block): Use it. 907950397Sobrien (expand_exception_blocks): Likewise. 908050397Sobrien (alloc_eh_object): New fn. 908150397Sobrien (expand_throw): Use it. Protect exception init with terminate. 908252284Sobrien * typeck.c (build_modify_expr): Remove code that ignores trivial 908350397Sobrien methods. 908418334Speter 908550397SobrienMon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 908652284Sobrien 908750397Sobrien * call.c (add_builtin_candidate): Add default case in enumeration 908850397Sobrien switch. 908950397Sobrien (build_new_op): Likewise. 909050397Sobrien (convert_like): Likewise. 909150397Sobrien * cvt.c (build_expr_type_conversion): Likewise. 909250397Sobrien * tree.c (real_lvalue_p): Likewise. 909350397Sobrien (lvalue_p): Likewise. 909450397Sobrien (cp_tree_equal): Likewise. 909550397Sobrien * typeck.c (comptypes): Likewise. 909650397Sobrien (build_component_ref): Likewise. 909750397Sobrien (build_function_call_real): Likewise. 909850397Sobrien (build_binary_op_nodefault): Likewise. 909950397Sobrien (build_unary_op): Likewise. 910050397Sobrien (build_modify_expr): Likewise. 910150397Sobrien * typeck2.c (initializer_constant_valid_p): Likewise. 910218334Speter 910350397SobrienSun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com> 910418334Speter 910550397Sobrien * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas. 910618334Speter 910750397SobrienThu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net> 910818334Speter 910950397Sobrien * pt.c (coerce_template_parms): Make sure to digest_init if 911050397Sobrien possible. 911118334Speter 911250397Sobrien * decl.c (duplicate_decls): Make the newdecl virtual if the 911350397Sobrien olddecl was, just as is done with other attributes of olddecl. 911418334Speter 911550397SobrienThu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com> 911618334Speter 911752284Sobrien * typeck.c (unary_complex_lvalue): Ignore op0 when taking the 911850397Sobrien address of an OFFSET_REF. 911918334Speter 912050397Sobrien * cp-tree.def: Add AGGR_INIT_EXPR. 912150397Sobrien * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with 912250397Sobrien AGGR_INIT_EXPR where appropriate. 912350397Sobrien * expr.c (cplus_expand_expr): Likewise. Simplify. 912418334Speter 912550397Sobrien * decl2.c (finish_file): Remove call to register_exception_table. 912618334Speter 912750397SobrienWed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 912818334Speter 912950397Sobrien * pt.c (instantiate_class_template): Don't do injection when 913052284Sobrien processing_template_decl is true, as pollutes current_binding_level 913152284Sobrien for base classes. 913218334Speter 913352284SobrienWed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de> 913418334Speter 913550397Sobrien * pt.c (maybe_fold_nontype_arg): Add prototype. 913618334Speter 913750397SobrienTue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com> 913818334Speter 913950397Sobrien * tree.c (mapcar): Handle TRY_CATCH_EXPR et al. 914050397Sobrien * error.c (dump_expr): Likewise. 914118334Speter 914250397SobrienMon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com> 914318334Speter 914450397Sobrien * typeck.c (build_function_call_real): Remove "inline called before 914550397Sobrien definition" pedwarn. 914618334Speter 914750397Sobrien * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg. 914818334Speter 914950397SobrienSun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com> 915018334Speter 915150397Sobrien * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's. 915218334Speter 915352284Sobrien * pt.c (type_unification_real): Change __null to type void* with 915450397Sobrien a warning. 915518334Speter 915650397SobrienSun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net> 915718334Speter 915850397Sobrien * call.c (implicit_conversion): Don't call 915950397Sobrien build_user_type_conversion_1 with a NULL expr, since it will 916052284Sobrien crash. 916118334Speter 916250397Sobrien * pt.c (unify): Don't try to unify array bounds if either array is 916350397Sobrien unbounded. 916418334Speter 916550397SobrienFri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com> 916618334Speter 916752284Sobrien * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at): 916850397Sobrien Replace extern decls with casts. 916918334Speter 917050397Sobrien * decl.c (expand_start_early_try_stmts): Don't mess with a sequence. 917150397Sobrien Update last_parm_cleanup_insn. 917250397Sobrien (store_after_parms): Remove. 917350397Sobrien * cp-tree.h: Adjust. 917418334Speter 917550397SobrienThu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com> 917618334Speter 917750397Sobrien * decl2.c (comdat_linkage): Also set DECL_COMDAT. 917850397Sobrien (finish_file): Check DECL_COMDAT instead of weak|one_only. 917950397Sobrien (import_export_vtable): Use make_decl_one_only instead of 918052284Sobrien comdat_linkage for win32 tweak. 918150397Sobrien (import_export_decl): Likewise. 918250397Sobrien * pt.c (mark_decl_instantiated): Likewise. 918318334Speter 918450397Sobrien * decl2.c (finish_file): Lose handling of templates in pending_statics. 918518334Speter 918650397SobrienThu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com> 918718334Speter 918850397Sobrien * decl2.c (finish_file): Lose call to expand_builtin_throw. 918950397Sobrien * except.c (expand_builtin_throw): Remove. 919050397Sobrien * cp-tree.h: Remove ptr_ptr_type_node. 919150397Sobrien * decl.c: Likewise. 919218334Speter 919350397SobrienThu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com> 919452284Sobrien 919550397Sobrien * decl.c (ptr_ptr_type_node): Define. 919650397Sobrien (init_decl_processing): Initialize it. 919750397Sobrien * cp-tree.h: Declare it. 919850397Sobrien * exception.cc (__cp_exception_info): Use __get_eh_info. 919952284Sobrien (__cp_push_exception): Likewise. 920052284Sobrien (__cp_pop_exception): Likewise. 920118334Speter 920250397Sobrien From Scott Snyder <snyder@d0sgif.fnal.gov>: 920352284Sobrien * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of 920450397Sobrien saved_pc. 920550397Sobrien (init_exception_processing): Removed saved_pc initialization. 920618334Speter 920750397SobrienWed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com> 920818334Speter 920950397Sobrien * pt.c (instantiate_decl): Defer all templates but inline functions. 921018334Speter 921150397SobrienMon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com> 921218334Speter 921350397Sobrien * init.c (expand_vec_init): Don't fold a list of parameters. 921418334Speter 921550397Sobrien * decl.c (copy_args_p): Handle copy elision for types with virtual 921652284Sobrien bases. 921752284Sobrien * call.c (build_over_call): Likewise. 921818334Speter 921950397SobrienSun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net> 922018334Speter 922150397Sobrien * pt.c (lookup_template_function): Copy the template arguments, 922250397Sobrien not just the list containing them, to the permanent obstack. 922318334Speter 922450397SobrienSun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com> 922518334Speter 922650397Sobrien * except.c (expand_start_catch_block): suspend_momentary for the 922750397Sobrien terminate handler. 922818334Speter 922950397Sobrien * error.c (dump_decl): Handle LOOKUP_EXPR. 923018334Speter 923150397SobrienSun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net> 923218334Speter 923350397Sobrien * rtti.c (build_dynamic_cast): Copy the cast-to type to the 923450397Sobrien permanent obstack if we are processing a template decl. 923550397Sobrien * typeck.c (build_static_cast): Likewise. 923650397Sobrien (build_const_cast): Likewise. 923750397Sobrien (build_reinterpret_cast): Likewise. 923818334Speter 923950397Sobrien * pt.c (coerce_template_parms): Coerce some expressions, even 924050397Sobrien when processing_template_decl. 924118334Speter 924250397SobrienSun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 924318334Speter 924450397Sobrien * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric 924550397Sobrien handling of pointer difference expressions. 924618334Speter 924750397Sobrien * typeck.c (comp_target_types): Comparison of function/method types 924850397Sobrien is independent of nptrs. 924918334Speter 925050397SobrienSun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net> 925118334Speter 925250397Sobrien * pt.c (tsubst): Avoid creating pointer to reference and 925350397Sobrien reference to reference types. 925418334Speter 925550397SobrienSat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com> 925618334Speter 925750397Sobrien * parse.y (do_id): New nonterminal. 925850397Sobrien (template_id): Use it. 925918334Speter 926050397SobrienFri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com> 926118334Speter 926250397Sobrien * parse.y (template_id): do_identifier for PFUNCNAMEs, too. 926350397Sobrien * spew.c (yylex): Don't do_identifier here. 926450397Sobrien * decl2.c (build_expr_from_tree): Revert last change. 926518334Speter 926650397Sobrien * decl2.c (build_expr_from_tree): Expand the name for a method call. 926750397Sobrien * parse.y (object_template_id): Don't try to take the DECL_NAME. 926818334Speter 926950397SobrienWed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com> 927018334Speter 927150397Sobrien * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for 927252284Sobrien alloc_expr. 927352284Sobrien * call.c (build_op_delete_call): Adjust. 927418334Speter 927550397Sobrien * except.c (expand_end_catch_block): Lose rethrow region. 927650397Sobrien (expand_start_catch_block): Likewise. 927750397Sobrien (expand_end_catch_block): Don't expand_leftover_cleanups. 927818334Speter 927950397SobrienWed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 928018334Speter 928150397Sobrien * pt.c (tsubst): Remove tree_cons call (places redundant info into 928252284Sobrien DECL_TEMPLATE_INSTANTIATION). 928318334Speter 928450397SobrienWed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com> 928518334Speter 928650397Sobrien * tree.c (is_overloaded_fn): Handle getting a fn template. 928750397Sobrien (really_overloaded_fn): Likewise. 928850397Sobrien * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better. 928950397Sobrien * pt.c (check_explicit_specialization): Tweak. 929050397Sobrien (determine_explicit_specialization): Tweak. 929118334Speter 929250397Sobrien * tree.c, cp-tree.h (get_target_expr): New fn. 929318334Speter 929450397SobrienWed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com> 929518334Speter 929650397Sobrien * pt.c (check_explicit_specialization): Fix misspelling in 929750397Sobrien diagnostic: `preceeded'. 929850397Sobrien * typeck.c (get_delta_difference): Fix misspelling in diagnostic: 929950397Sobrien `conversiona'. 930018334Speter 930150397Sobrien1997-12-02 Mark Mitchell <mmitchell@usa.net> 930218334Speter 930350397Sobrien * pt.c (determine_explicit_specialization): Avoid an internal 930450397Sobrien error for bad specializations. 930518334Speter 930650397Sobrien * method.c (build_overload_value): Handle SCOPE_REF. 930718334Speter 930850397SobrienTue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com> 930918334Speter 931050397Sobrien * class.c (prepare_fresh_vtable): Enable even more complex MI 931150397Sobrien vtable names. 931218334Speter 931350397SobrienTue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com> 931418334Speter 931550397Sobrien * exception.cc (__check_eh_spec): Optimize a bit. 931618334Speter 931750397Sobrien * exception.cc (__cp_pop_exception): Lose handler arg. 931850397Sobrien * except.c (do_pop_exception): Likewise. 931950397Sobrien (push_eh_cleanup): Let the cleanup mechanism supply the handler. 932050397Sobrien (expand_end_catch_block): Likewise. 932118334Speter 932250397SobrienFri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com> 932318334Speter 932452284Sobrien * pt.c (check_explicit_specialization): Complain about using a 932550397Sobrien template-id for a non-specialization. 932618334Speter 932750397SobrienFri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com> 932818334Speter 932950397Sobrien * repo.c: Prototype rindex only if needed. 933050397Sobrien * xref.c: Likewise. 933118334Speter 933250397SobrienFri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 933318334Speter 933452284Sobrien * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. 933518334Speter 933650397SobrienThu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com> 933718334Speter 933850397Sobrien * typeck.c (build_const_cast): Handle references here instead of 933950397Sobrien handing off to convert_to_reference. 934018334Speter 934150397Sobrien * except.c: Lose Unexpected, SetTerminate, SetUnexpected, 934252284Sobrien TerminateFunctionCall. 934350397Sobrien (init_exception_processing): Likewise. Terminate et al are now 934452284Sobrien the fns, not ADDR_EXPRs. 934550397Sobrien (various): Lose redundant assemble_external calls. 934650397Sobrien (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/. 934718334Speter 934850397Sobrien * cp-tree.h (struct lang_decl_flags): Add comdat. 934950397Sobrien (DECL_COMDAT): New macro. 935050397Sobrien * decl.c (duplicate_decls): Propagate it. 935150397Sobrien (cp_finish_decl): Handle it. 935250397Sobrien * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs. 935318334Speter 935450397Sobrien * class.c: Remove static pending_hard_virtuals. 935552284Sobrien (add_virtual_function): Take pointers to pending_virtuals 935650397Sobrien and pending_hard_virtuals. 935750397Sobrien (finish_struct_1): Pass them. Declare pending_hard_virtuals. 935818334Speter 935950397SobrienWed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com> 936018334Speter 936150397Sobrien * decl2.c (import_export_vtable): If we support one_only but not 936250397Sobrien weak symbols, mark instantiated template vtables one_only. 936350397Sobrien (import_export_decl): Likewise for tinfo functions. 936452284Sobrien (finish_vtable_vardecl): Also write out vtables from explicitly 936550397Sobrien instantiated template classes. 936650397Sobrien * pt.c (mark_class_instantiated): Revert last change. 936718334Speter 936850397Sobrien * except.c (expand_throw): Call mark_used on the destructor. 936918334Speter 937050397SobrienWed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com) 937118334Speter 937250397Sobrien * lex.c (lang_init): Enable flag_exceptions by default if no 937350397Sobrien command line switch was specified. 937418334Speter 937550397Sobrien1997-11-26 Mark Mitchell <mmitchell@usa.net> 937618334Speter 937750397Sobrien * pt.c (unify): Handle `void' template parameters in 937850397Sobrien specializations. 937918334Speter 938050397SobrienWed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com> 938118334Speter 938250397Sobrien * rtti.c (build_dynamic_cast): Handle template case here. 938350397Sobrien (build_dynamic_cast_1): Not here. 938418334Speter 938550397Sobrien * typeck2.c (digest_init): Make copies where appropriate. 938618334Speter 938750397Sobrien * decl2.c (delete_sanity): resolve_offset_ref. 938818334Speter 938950397Sobrien * except.c: Call terminate without caching so many bits. 939018334Speter 939150397Sobrien * except.c (expand_start_catch_block): Fix catching a reference 939250397Sobrien to pointer. 939318334Speter 939450397SobrienTue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com> 939518334Speter 939650397Sobrien * init.c (build_new): Copy size to the saveable obstack. 939718334Speter 939850397Sobrien * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the 939952284Sobrien TRY_CATCH_EXPR for now. 940018334Speter 940150397SobrienMon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com> 940218334Speter 940350397Sobrien * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL 940450397Sobrien has DECL_LANG_SPECIFIC. 940518334Speter 940650397Sobrien * exception.cc (struct cp_eh_info): Add handlers field. 940750397Sobrien (__cp_push_exception): Initialize it. 940850397Sobrien (__cp_pop_exception): Decrement it. Don't pop unless it's 0. 940950397Sobrien (__throw_bad_exception): Remove. 941050397Sobrien * except.c (call_eh_info): Add handlers field. 941150397Sobrien (get_eh_handlers): New fn. 941250397Sobrien (push_eh_cleanup): Increment handlers. 941318334Speter 941450397SobrienFri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com> 941518334Speter 941650397Sobrien * except.c (expand_start_eh_spec): Use the try/catch code. 941750397Sobrien (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of 941850397Sobrien doing everything inline. 941950397Sobrien (init_exception_processing): throw_type_match now takes 942052284Sobrien const void pointers. 942150397Sobrien * exception.cc (__check_eh_spec): New fn. 942250397Sobrien * inc/exception: Neither terminate nor unexpected return. 942350397Sobrien * decl.c: Make const_ptr_type_node public. 942450397Sobrien * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly. 942518334Speter 942650397Sobrien * except.c (expand_start_catch_block): We only need the rethrow 942752284Sobrien region for non-sjlj exceptions. 942850397Sobrien (expand_end_catch_block): Likewise. Use outer_context_label_stack. 942918334Speter 943050397SobrienThu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com> 943118334Speter 943250397Sobrien * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs. 943350397Sobrien (various.o): Likewise. 943450397Sobrien * inc/new: Add placement deletes. Add throw specs for default new. 943550397Sobrien * new.cc (set_new_handler): Move here from libgcc2. 943650397Sobrien * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler. 943750397Sobrien (new): Move from libgcc2. Throw bad_alloc. 943850397Sobrien * new2.cc: Move the rest of the op news and op deletes from libgcc2. 943950397Sobrien * decl.c (init_decl_processing): Update exception specs on new and 944050397Sobrien delete. 944118334Speter 944252284Sobrien * method.c (build_decl_overload_real): Don't mess with global 944350397Sobrien placement delete. 944418334Speter 944550397Sobrien * init.c (build_new): Check for null throw spec, not nothrow_t. 944618334Speter 944750397Sobrien * decl.c (duplicate_decls): Don't complain about different exceptions 944850397Sobrien from an internal declaration. 944918334Speter 945050397Sobrien * call.c (build_op_delete_call): Fix check for member fns again. 945118334Speter 945250397Sobrien * decl2.c (import_export_decl): Interface hackery affects 945350397Sobrien virtual synthesized methods. 945418334Speter 945550397SobrienWed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com> 945618334Speter 945752284Sobrien * decl.c (start_decl): Don't just complain about a mismatched 945850397Sobrien scope, fix it. 945918334Speter 946050397Sobrien * decl.c (make_implicit_typename): Handle case where t is not 946152284Sobrien actually from context. 946250397Sobrien * tree.c (get_type_decl): Lose identifier case. 946352284Sobrien * spew.c (yylex): Lose useless call to identifier_typedecl_value. 946450397Sobrien * parse.y (nonnested_type): Just use lookup_name. 946550397Sobrien (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE. 946618334Speter 946750397SobrienWed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com> 946818334Speter 946950397Sobrien * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case 947050397Sobrien T was built in C language context (for example, by 947150397Sobrien output_func_start_profiler). 947218334Speter 947350397SobrienWed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com> 947418334Speter 947550397Sobrien * decl.c (make_implicit_typename): New fn. 947650397Sobrien (lookup_name_real): Use it. Use current_class_type as the context. 947718334Speter 947852284SobrienMon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr> 947918334Speter 948050397Sobrien * pt.c (do_poplevel): Don't prohibit jumps into this contour. 948118334Speter 948250397SobrienMon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com> 948318334Speter 948450397Sobrien * friend.c (do_friend): Warn about non-template friends in templates. 948518334Speter 948650397Sobrien * call.c (build_op_delete_call): Fix handling of inherited delete. 948718334Speter 948850397Sobrien * search.c (dfs_record_inheritance): Ignore template type parms. 948918334Speter 949050397SobrienSat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com> 949118334Speter 949250397Sobrien * call.c (build_new_op): Fix copy error. 949350397Sobrien (build_op_new_call): New fn. 949450397Sobrien (build_op_delete_call): New fn. 949550397Sobrien * cp-tree.h: Declare them. 949650397Sobrien * init.c (build_new): Use them. Support placement delete. 949750397Sobrien (build_x_delete): Use build_op_delete_call. 949850397Sobrien (build_delete): Likewise. 949950397Sobrien * decl2.c (delete_sanity): Likewise. 950050397Sobrien (coerce_delete_type): Don't complain about placement delete. 950118334Speter 950250397SobrienThu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com> 950318334Speter 950450397Sobrien * call.c (build_new_function_call): Remove unused 'obj' parm. 950550397Sobrien * cp-tree.h, typeck.c: Adjust. 950618334Speter 950750397Sobrien * init.c (build_new): Make the cleanup last longer. 950850397Sobrien (expand_vec_init): Call do_pending_stack_adjust. 950918334Speter 951050397SobrienWed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com> 951118334Speter 951250397Sobrien * pt.c (do_type_instantiation): Fix typo. 951352284Sobrien (mark_class_instantiated): If we support one_only but not weak 951450397Sobrien symbols, don't mark this as known. 951550397Sobrien 951650397Sobrien * init.c (build_new): Handle vec delete in EH cleanup. 951750397Sobrien 951850397SobrienWed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 951950397Sobrien 952050397Sobrien * call.c (build_method_call): Call complete_type before checking 952152284Sobrien for destructor. 952250397Sobrien 952350397SobrienSun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com) 952450397Sobrien 952550397Sobrien * decl.c (add_block_current_level): Delete. 952650397Sobrien * init.c (build_vec_delete_1): Delete build_block and 952750397Sobrien add_block_current_level calls. 952850397Sobrien 952950397SobrienWed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com> 953050397Sobrien 953150397Sobrien * init.c (build_new): Handle freeing allocated memory when the 953250397Sobrien constructor throws. 953350397Sobrien 953450397Sobrien * call.c (build_new_method_call): Fix flags arg. 953550397Sobrien 953650397Sobrien * pt.c (do_type_instantiation): Don't try to instantiate 953750397Sobrien member templates. 953850397Sobrien (mark_decl_instantiated): If we support one_only but not 953950397Sobrien weak symbols, mark this one_only. 954050397Sobrien * decl2.c (import_export_vtable): Don't defer handling of vtables 954150397Sobrien if MULTIPLE_SYMBOL_SPACES. 954250397Sobrien 954350397SobrienTue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com> 954450397Sobrien 954550397Sobrien * except.c (expand_end_catch_block): Lose call to __sjpopnthrow. 954650397Sobrien 954750397SobrienTue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com> 954850397Sobrien 954950397Sobrien * except.c (do_pop_exception): Return a value. 955050397Sobrien 955150397SobrienMon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com> 955250397Sobrien 955350397Sobrien * call.c (build_new_method_call): Handle getting a 955452284Sobrien TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field 955552284Sobrien if we got template parms. 955650397Sobrien * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR, 955752284Sobrien not just the args. 955850397Sobrien * decl2.c (build_expr_from_tree): Tweak last change. 955950397Sobrien * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE. 956050397Sobrien (maybe_fold_nontype_arg): Split out from tsubst_copy. 956150397Sobrien * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR. 956250397Sobrien 956352284SobrienMon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 956450397Sobrien 956552284Sobrien * pt.c (tsubst_copy): Handle explicit template arguments in 956650397Sobrien function calls. 956750397Sobrien * typeck.c (build_x_function_call): Likewise. 956852284Sobrien * decl2.c (build_expr_from_tree): Lookup function name if it 956950397Sobrien hasn't been done. 957050397Sobrien 957152284Sobrien * pt.c (tsubst): Instantiate template functions properly when 957252284Sobrien template parameter does not appear in function arguments and return 957318334Speter type. 957450397Sobrien (comp_template_args): Handle member templates required by tsubst. 957518334Speter 957650397SobrienMon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com> 957718334Speter 957850397Sobrien * decl.c (grokdeclarator): Tweak conditions for pedwarn in 957952284Sobrien previous change. 958018334Speter 958150397SobrienMon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 958218334Speter 958350397Sobrien * pt.c (coerce_template_parms): Tweak error message. 958418334Speter 958550397Sobrien * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a 958650397Sobrien return type defaults to `int', even if there are storage-class 958750397Sobrien specifiers. 958818334Speter 958950397SobrienMon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com> 959018334Speter 959150397Sobrien Complete nested exception support. 959250397Sobrien * except.c (do_pop_exception): Split out... 959350397Sobrien (push_eh_cleanup): From here. Handle the EH region by hand. 959450397Sobrien (expand_start_catch_block): Add a new level for the catch parm. 959550397Sobrien Move the rethrow region outside the two cleanup regions. 959650397Sobrien Protect the initializer for the catch parm with terminate. 959750397Sobrien (expand_end_catch_block): Likewise. End the region for the eh_cleanup. 959850397Sobrien * exception.cc (__cp_pop_exception): Now takes two parms. Handle 959950397Sobrien popping off the middle of the stack. 960052284Sobrien * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR, 960150397Sobrien WITH_CLEANUP_EXPR, and UNSAVE_EXPR. 960250397Sobrien (build_cplus_new): Only wrap CALL_EXPRs. 960352284Sobrien * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around 960450397Sobrien the constructor call. 960518334Speter 960650397SobrienSun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 960718334Speter 960850397Sobrien * Make-lang.in (c++.distdir): Make inc subdirectory. 960918334Speter 961050397SobrienFri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com> 961118334Speter 961250397Sobrien * decl2.c (finish_file): Put back some code. 961318334Speter 961450397SobrienThu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com> 961518334Speter 961650397Sobrien * decl2.c (finish_file): Remove redundant code. 961750397Sobrien * method.c (emit_thunk): Don't let the backend defer generic thunks. 961818334Speter 961950397SobrienWed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com> 962018334Speter 962150397Sobrien * except.c (call_eh_info): Split out... 962250397Sobrien (push_eh_info): From here. 962350397Sobrien (expand_builtin_throw): Use it. 962450397Sobrien (expand_start_catch_block): Move region start back. 962518334Speter 962650397SobrienTue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com> 962718334Speter 962850397Sobrien * lex.c (MULTIBYTE_CHARS): #undef if cross compiling. 962950397Sobrien (real_yylex): Record wide strings using target endianness, not host. 963018334Speter 963150397Sobrien1997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com> 963218334Speter 963350397Sobrien * repo.c (rindex): Add decl unconditionally. 963450397Sobrien (get_base_filename, open_repo_file): Don't cast rindex. 963550397Sobrien * xref.c (rindex): Add decl unconditionally. 963650397Sobrien (index): Remove unused decl. 963750397Sobrien (open_xref_file): Don't cast rindex. 963818334Speter 963950397SobrienSun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com> 964018334Speter 964150397Sobrien * class.c (build_vbase_path): Propagate the result type properly. 964218334Speter 964350397Sobrien1997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com> 964418334Speter 964550397Sobrien * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace 964650397Sobrien remaining use of saved_throw_type with a call to get_eh_type. 964718334Speter 964850397Sobrien1997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com> 964918334Speter 965050397Sobrien * lex.c (FILE_NAME_NONDIRECTORY): Delete macro. 965150397Sobrien (file_name_nondirectory): New function, doing the same as the macro. 965250397Sobrien (set_typedecl_interface_info): Use it instead of the macro. 965350397Sobrien (check_newline): Likewise. 965450397Sobrien (handle_cp_pragma): Likewise. 965518334Speter 965650397Sobrien * repo.c (get_base_filename): Cast result of rindex to char*. 965750397Sobrien (open_repo_file): Likewise. 965850397Sobrien * xref.c (open_xref_file): Likewise. 965950397Sobrien * error.c (dump_char): Make its arg int, not char. 966018334Speter 966150397Sobrien * except.c (push_eh_info): Pass the number of fields - 1 down, not 966250397Sobrien the exact number of fields. 966318334Speter 966450397SobrienFri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com> 966518334Speter 966650397Sobrien Support for nested exceptions. 966750397Sobrien * tinfo2.cc (__is_pointer): New fn. 966850397Sobrien * exception.cc (struct cp_eh_info): Define. 966950397Sobrien (__cp_exception_info, __uncatch_exception): New fns. 967050397Sobrien (__cp_push_exception, __cp_pop_exception): New fns. 967150397Sobrien * except.c: Lose saved_throw_{type,value,cleanup,in_catch}. 967252284Sobrien Lose empty_fndecl. 967350397Sobrien (init_exception_processing): Likewise. __eh_pc is now external. 967450397Sobrien (push_eh_info): New fn. 967550397Sobrien (get_eh_{info,value,type,caught}): New fns. 967650397Sobrien (push_eh_cleanup): Just call __cp_pop_exception. 967750397Sobrien (expand_start_catch_block): Use push_eh_info. Start the eh region 967850397Sobrien sooner. 967950397Sobrien (expand_end_eh_spec): Use push_eh_info. 968050397Sobrien (expand_throw): Call __cp_push_exception to set up the exception info. 968150397Sobrien Just pass the destructor or 0 as the cleanup. Call __uncatch_exception 968250397Sobrien when we rethrow. 968350397Sobrien (expand_builtin_throw): Don't refer to empty_fndecl. 968418334Speter 968550397SobrienThu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com> 968618334Speter 968750397Sobrien * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl. 968818334Speter 968950397Sobrien1997-10-22 Brendan Kehoe <brendan@cygnus.com> 969018334Speter 969150397Sobrien * method.c (build_template_parm_names, build_decl_overload_real): 969250397Sobrien Add static to definitions. 969350397Sobrien * pt.c (add_to_template_args, note_template_header, 969450397Sobrien processing_explicit_specialization, type_unification_real): Likewise. 969550397Sobrien ({determine,check}_explicit_specialization): Use a single string for 969650397Sobrien error messages. 969718334Speter 969850397SobrienMon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com> 969918334Speter 970052284Sobrien * except.c (expand_exception_blocks): Call do_pending_stack_adjust. 970150397Sobrien (expand_end_catch_block): Likewise. 970250397Sobrien (expand_end_eh_spec): Likewise. 970318334Speter 970450397SobrienMon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net> 970518334Speter 970650397Sobrien * decl.c (duplicate_decls): Handle template specializations 970752284Sobrien correctly. 970850397Sobrien * error.c (dump_function_name): Fix printing of specializations of 970950397Sobrien member functions that are not member templates. 971050397Sobrien * cp-tree.h (processing_specialization): Make global. 971150397Sobrien * pt.c (processing_specialization): Likewise. 971250397Sobrien * lex.c (cons_up_default_function): Save and restore 971350397Sobrien processing_specialization to avoid confusion. 971452284Sobrien 971550397SobrienMon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com> 971618334Speter 971750397Sobrien * decl.c (init_decl_processing): Give null_node unknown* type. 971850397Sobrien * typeck.c (comp_target_types): Handle UNKNOWN_TYPE. 971950397Sobrien (common_type): Likewise. 972050397Sobrien * error.c (args_as_string): Recognize null_node. 972118334Speter 972250397SobrienSun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 972318334Speter 972450397Sobrien * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR. 972550397Sobrien (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR. 972618334Speter 972750397Sobrien * decl.c (init_decl_processing): Call using_eh_for_cleanups. 972818334Speter 972950397Sobrien * Make-lang.in (g++): Include prefix.o. 973018334Speter 973152284SobrienThu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com> 973218334Speter 973350397Sobrien * pt.c (determine_explicit_specialization): Initialize "dummy" 973450397Sobrien to keep Purify quiet. 973518334Speter 973650397SobrienThu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com> 973718334Speter 973850397Sobrien * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here. 973950397Sobrien (build_overload_int): Not here. 974018334Speter 974150397SobrienWed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com> 974218334Speter 974350397Sobrien * class.c (build_type_pathname): Remove. 974450397Sobrien (prepare_fresh_vtable): Fix problem with complex MI vtable names. 974518334Speter 974650397Sobrien1997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com> 974718334Speter 974850397Sobrien * parse.y (unary_expr): Give a pedwarn if someone tries to use the 974950397Sobrien &&label GNU extension. 975018334Speter 975150397SobrienTue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net> 975218334Speter 975350397Sobrien * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it, 975450397Sobrien so as to avoid incorrect manglings. 975550397Sobrien * method.c (build_decl_overload_real): Don't mangle return types 975650397Sobrien for constructors. 975752284Sobrien 975850397SobrienTue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com> 975918334Speter 976050397Sobrien * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec, 976150397Sobrien scratch_tree_cons): Define as macros for now. 976252284Sobrien * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c, 976350397Sobrien lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c, 976450397Sobrien typeck2.c: Use them and the expression_obstack variants. 976518334Speter 976650397SobrienMon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 976718334Speter 976850397Sobrien * decl.c (store_return_init): Allow classes with explicit ctors to 976952284Sobrien be used with the named return values extension. 977018334Speter 977150397SobrienFri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com> 977218334Speter 977350397Sobrien * pt.c (instantiate_decl): Fix previous change. 977418334Speter 977550397SobrienThu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com> 977618334Speter 977750397Sobrien * pt.c (tsubst): Fix thinko. 977850397Sobrien (instantiate_decl): Really use the original template. 977918334Speter 978050397Sobrien * call.c (build_new_method_call): Use simple constructor_name for 978150397Sobrien error messages. 978218334Speter 978352284SobrienWed Oct 8 22:44:42 1997 Jeffrey A Law <law@cygnus.com> 978418334Speter 978550397Sobrien * method.c (build_underscore_int): Don't use ANSI specific 978650397Sobrien features. 978718334Speter 978850397SobrienWed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com> 978918334Speter 979050397Sobrien * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN 979150397Sobrien for our key method; it might have been inlined by -O3. 979218334Speter 979350397SobrienTue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net> 979418334Speter 979550397Sobrien * decl.c (make_typename_type): Do not try to call lookup_field for 979650397Sobrien non-aggregate types. 979718334Speter 979850397SobrienTue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com> 979918334Speter 980050397Sobrien * typeck.c (build_reinterpret_cast): Tweak. 980118334Speter 980250397SobrienTue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 980318334Speter 980452284Sobrien * typeck.c (build_reinterpret_cast): Converting a void pointer 980550397Sobrien to function pointer with a reinterpret_cast produces a warning 980652284Sobrien if -pedantic is issued. 980718334Speter 980850397SobrienTue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 980918334Speter 981050397Sobrien * typeck.c (c_expand_return): Don't warn about returning a 981150397Sobrien reference-type variable as a reference. 981218334Speter 981350397SobrienTue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com> 981418334Speter 981550397Sobrien * method.c (build_static_name): Fix typo. 981618334Speter 981750397Sobrien1997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com> 981818334Speter 981950397Sobrien * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on 982050397Sobrien OLDDECL before we try to do DECL_USE_TEMPLATE. 982118334Speter 982250397SobrienTue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com> 982318334Speter 982450397Sobrien * decl.c (duplicate_decls): Don't warn about template instances. 982518334Speter 982650397Sobrien * typeck.c (mark_addressable): Lose ancient code that unsets 982750397Sobrien DECL_EXTERNAL. 982818334Speter 982950397Sobrien * pt.c (do_decl_instantiation): Lose support for instantiating 983050397Sobrien non-templates. 983118334Speter 983250397Sobrien * call.c (build_new_function_call): Fix handling of null explicit 983352284Sobrien template args. 983450397Sobrien (build_new_method_call): Likewise. 983518334Speter 983650397SobrienMon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net> 983718334Speter 983850397Sobrien * method.c (build_underscore_int): Fix typo. 983918334Speter 984050397Sobrien1997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com> 984118334Speter 984250397Sobrien * tree.c (print_lang_statistics): #if 0 call to 984350397Sobrien print_inline_obstack_statistics until its definition is checked in. 984418334Speter 984550397SobrienMon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com> 984618334Speter 984750397Sobrien * decl2.c (finish_file): Move dump_tree_statistics to end. 984818334Speter 984950397Sobrien * pt.c (instantiate_decl): Look for the original template. 985050397Sobrien (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations 985150397Sobrien of member templates. 985218334Speter 985350397SobrienWed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com> 985418334Speter 985550397Sobrien * Makefile.in (g++FAQ.*): New rules. 985650397Sobrien (CONFLICTS): Update. 985750397Sobrien * g++FAQ.texi: Moved from libg++. 985818334Speter 985950397Sobrien * parse.y (PFUNCNAME): Only specify the type once. 986018334Speter 986150397Sobrien1997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com> 986218334Speter 986350397Sobrien * lex.c (real_yylex): Clean up the code to fully behave the way 986450397Sobrien the c-lex.c parser does for complex and real numbers. 986518334Speter 986650397SobrienTue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com> 986718334Speter 986850397Sobrien * method.c (build_decl_overload_real): Reformat. 986918334Speter 987050397SobrienTue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com> 987118334Speter 987250397Sobrien * method.c (synthesize_method): If at_eof, determine our linkage. 987318334Speter 987450397Sobrien1997-09-29 Paul Eggert <eggert@twinsun.com> 987518334Speter 987650397Sobrien * lex.c (real_yylex): Treat `$' just like `_', except issue a 987750397Sobrien diagnostic if !dollars_in_ident or if pedantic. 987818334Speter 987950397Sobrien * lang-specs.h (@c++): -ansi no longer implies -$. 988018334Speter 988150397Sobrien * decl2.c (lang_decode_option): 988250397Sobrien -traditional and -ansi now do not mess with 988350397Sobrien dollars_in_ident. 988418334Speter 988552284SobrienMon Sep 29 19:57:51 1997 H.J. Lu <hjl@gnu.ai.mit.edu> 988618334Speter 988750397Sobrien * Makefile.in (parse.o, decl.o): Also depend on 988850397Sobrien $(srcdir)/../except.h $(srcdir)/../output.h. 988950397Sobrien (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h 989050397Sobrien $(srcdir)/../except.h $(srcdir)/../output.h. 989150397Sobrien (typeck.o, init.o): Also depend on $(srcdir)/../expr.h 989250397Sobrien ../insn-codes.h. 989318334Speter 989450397Sobrien * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping. 989518334Speter 989652284Sobrien * expr.c (cplus_expand_expr): Make it static. 989718334Speter 989850397Sobrien * decl2.c, init.c, typeck.c: Include "expr.h". 989950397Sobrien (expand_expr): Use proper values when calling the function. 990018334Speter 990150397SobrienMon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 990218334Speter 990352284Sobrien * lang-options.h: New -Wold-style-cast flag. 990452284Sobrien * cp-tree.h (warn_old_style_cast): New variable. 990552284Sobrien * decl2.c (warn_old_style_cast): Likewise. 990652284Sobrien (lang_decode_option): Support -Wold-style-cast. 990752284Sobrien (reparse_absdcl_as_casts): Produce old-style-cast warning. 990818334Speter 990950397SobrienMon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 991018334Speter 991150397Sobrien * decl.c (cp_finish_decl): Allow expand_aggr_init to set 991252284Sobrien TREE_USED, reset value based on already_used. 991318334Speter 991450397Sobrien * init.c (expand_member_init): Revert change. 991552284Sobrien 991650397SobrienMon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com> 991718334Speter 991850397Sobrien * cp-tree.h, decl.c, decl2.c, pt.c: 991952284Sobrien Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public. 992018334Speter 992150397Sobrien * decl2.c (lang_decode_option): Add missing ;. 992218334Speter 992350397SobrienSat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com> 992418334Speter 992550397Sobrien * friend.c (do_friend): Disable injection for all template-derived 992652284Sobrien decls. 992750397Sobrien * decl2.c (lang_decode_option): Handle -fguiding-decls. 992850397Sobrien * parse.y (notype_template_declarator): New nonterminal. 992950397Sobrien (direct_notype_declarator): Use it. 993050397Sobrien (complex_direct_notype_declarator): Likewise. 993150397Sobrien (object_template_id): Accept any kind of identifier after TEMPLATE. 993250397Sobrien (notype_qualified_id): Don't add template declarators here. 993318334Speter 993450397SobrienSat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net> 993518334Speter 993652284Sobrien * call.c (add_template_candidate): Add explicit_targs parameter. 993752284Sobrien (build_scoped_method_call): Use it. 993852284Sobrien (build_overload_call_real): Likewise. 993952284Sobrien (build_user_type_conversion_1): Likewise. 994052284Sobrien (build_new_function_call): Likewise. 994152284Sobrien (build_object_call): Likewise. 994252284Sobrien (build_new_op): Likewise. 994352284Sobrien (build_new_method_call): Likewise. 994452284Sobrien (build_new_function_call): Handle TEMPLATE_ID_EXPR. 994552284Sobrien (build_new_method_call): Likewise. 994618334Speter 994752284Sobrien * class.c (finish_struct_methods): Add specialization pass to 994852284Sobrien determine which methods were specializing which other methods. 994952284Sobrien (instantiate_type): Handle TEMPLATE_ID_EXPR. 995018334Speter 995152284Sobrien * cp-tree.def (TEMPLATE_ID_EXPR): New tree code. 995218334Speter 995352284Sobrien * cp-tree.h (name_mangling_version): New variable. 995450397Sobrien (flag_guiding_decls): Likewise. 995552284Sobrien (build_template_decl_overload): New function. 995652284Sobrien (begin_specialization): Likewise. 995752284Sobrien (reset_specialization): Likewise. 995852284Sobrien (end_specialization): Likewise. 995952284Sobrien (determine_explicit_specialization): Likewise. 996052284Sobrien (check_explicit_specialization): Likewise. 996152284Sobrien (lookup_template_function): Likewise. 996252284Sobrien (fn_type_unification): Add explicit_targs parameter. 996352284Sobrien (type_unification): Likewise. 996418334Speter 996552284Sobrien * decl.c (duplicate_decls): Add smarts for explicit 996652284Sobrien specializations. 996752284Sobrien (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function 996852284Sobrien specializations. 996952284Sobrien (grokfndecl): Call check_explicit_specialization. 997018334Speter 997152284Sobrien * decl2.c (lang_decode_option): Handle -fname-mangling-version. 997252284Sobrien (build_expr_from_tree): Handle TEMPLATE_ID_EXPR. 997352284Sobrien (check_classfn): Handle specializations. 997418334Speter 997552284Sobrien * error.c (dump_function_name): Print specialization arguments. 997618334Speter 997752284Sobrien * friend.c (do_friend): Don't call pushdecl for template 997852284Sobrien instantiations. 997918334Speter 998052284Sobrien * init.c (build_member_call): Handle TEMPLATE_ID_EXPR. 998118334Speter 998252284Sobrien * lang-options.h: Add -fname-mangling-version, -fguiding-decls, 998350397Sobrien and -fno-guiding-decls. 998418334Speter 998552284Sobrien * lex.c (identifier_type): Return PFUNCNAME for template function 998652284Sobrien names. 998718334Speter 998852284Sobrien * method.c (build_decl_overload_real): New function. 998952284Sobrien (build_template_parm_names): New function. 999052284Sobrien (build_overload_identifier): Use it. 999152284Sobrien (build_underscore_int): New function. 999252284Sobrien (build_overload_int): Use it. Add levels for template 999352284Sobrien parameters. 999452284Sobrien (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs. 999552284Sobrien (build_overload_nested_names): Handle template type parameters. 999652284Sobrien (build_template_decl_overload): New function. 999718334Speter 999852284Sobrien * parse.y (YYSTYPE): New ntype member. 999952284Sobrien (nested_name_specifier): Use it. 1000052284Sobrien (nested_name_specifier_1): Likewise. 1000152284Sobrien (PFUNCNAME): New token. 1000252284Sobrien (template_id, object_template_id): New non-terminals. 1000352284Sobrien (template_parm_list): Note specializations. 1000452284Sobrien (template_def): Likewise. 1000552284Sobrien (structsp): Likewise. 1000652284Sobrien (fn.def2): Handle member template specializations. 1000752284Sobrien (component_decl_1): Likewise. 1000852284Sobrien (direct_notype_declarator): Handle template-ids. 1000952284Sobrien (component_decl_1): Likewise. 1001052284Sobrien (direct_notype_declarator): Handle template-ids. 1001152284Sobrien (primary): Handle TEMPLATE_ID_EXPR, and template-ids. 1001218334Speter 1001352284Sobrien * pt.c (processing_specializations): New variable. 1001452284Sobrien (template_header_count): Likewise. 1001552284Sobrien (type_unification_real): New function. 1001652284Sobrien (processing_explicit_specialization): Likewise. 1001752284Sobrien (note_template_header): Likewise. 1001852284Sobrien (is_member_template): Handle specializations. 1001952284Sobrien (end_template_decl): Call reset_specialization. 1002052284Sobrien (push_template_decl): Handle member template specializations. 1002152284Sobrien (tsubst): Likewise. 1002252284Sobrien (tsubst_copy): Handle TEMPLATE_ID_EXPR. 1002352284Sobrien (instantiate_template): Handle specializations. 1002452284Sobrien (instantiate_decl): Likewise. 1002552284Sobrien (fn_type_unification): Handle explicit_targs. 1002652284Sobrien (type_unification): Likewise. Allow incomplete unification 1002752284Sobrien without an error message, if allow_incomplete. 1002852284Sobrien (get_bindings): Use new calling sequence for fn_type_unification. 1002918334Speter 1003052284Sobrien * spew.c (yylex): Handle PFUNCNAME. 1003118334Speter 1003252284Sobrien * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR. 1003352284Sobrien (really_overloaded_fn): Likewise. 1003452284Sobrien (get_first_fn): Handle function templates. 1003518334Speter 1003652284Sobrien * typeck.c (build_x_function_call): Use really_overloaded_fn. 1003752284Sobrien Handle TEMPLATE_ID_EXPR. 1003852284Sobrien (build_x_unary_op): Likewise. 1003952284Sobrien (build_unary_op): Likewise. 1004052284Sobrien (mark_addressable): Templates whose address is taken are marked 1004152284Sobrien as used. 1004218334Speter 1004350397Sobrien1997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1004418334Speter 1004550397Sobrien * decl.c (init_decl_processing): Declare __builtin_constant_p as 1004650397Sobrien accepting any kind of type, not only int. 1004718334Speter 1004850397SobrienFri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1004918334Speter 1005050397Sobrien * search.c (get_matching_virtual): Notice virtual bases when sorrying 1005150397Sobrien about covariant returns. 1005218334Speter 1005350397Sobrien * parse.y (member_init): Also imply typename here. Remove ancient 1005450397Sobrien extension for initializing base members. 1005518334Speter 1005650397SobrienThu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1005718334Speter 1005850397Sobrien Handle multi-level typenames and implicit typename in base list. 1005950397Sobrien * parse.y (typename_sub{,[0-2]}): New rules. 1006050397Sobrien (structsp, rule TYPENAME_KEYWORD): Use typename_sub. 1006150397Sobrien (nonnested_type): New rule. 1006250397Sobrien (complete_type_name): Use it. 1006350397Sobrien (base_class.1): Use typename_sub and nonnested_type. 1006450397Sobrien (nested_name_specifier): Don't elide std:: here. 1006550397Sobrien * decl.c (make_typename_type): Handle getting a type for NAME. 1006650397Sobrien (lookup_name_real): Turn std:: into :: here. 1006718334Speter 1006850397Sobrien Rvalue conversions were removed in London. 1006950397Sobrien * call.c (is_subseq): Don't consider lvalue transformations. 1007050397Sobrien (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK. 1007152284Sobrien (joust): Re-enable ?: kludge. 1007218334Speter 1007350397Sobrien1997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com> 1007418334Speter 1007550397Sobrien * decl.c (start_function): Up warning of no return type to be a 1007650397Sobrien pedwarn. 1007718334Speter 1007850397SobrienMon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1007918334Speter 1008050397Sobrien * init.c (expand_member_init): Don't set TREE_USED. 1008150397Sobrien * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED 1008250397Sobrien set,don't clear TREE_USED wholesale. 1008318334Speter 1008450397SobrienSat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com> 1008518334Speter 1008650397Sobrien * call.c (build_over_call): Do require_complete_type before 1008750397Sobrien build_cplus_new. 1008818334Speter 1008950397SobrienThu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com> 1009018334Speter 1009150397Sobrien * search.c (lookup_field): Call complete_type in all cases. 1009218334Speter 1009350397Sobrien * decl.c (finish_function): Just warn about flowing off the end. 1009418334Speter 1009550397SobrienWed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1009618334Speter 1009750397Sobrien * decl.c (grokparms): Don't bash a permanent list node if we're 1009850397Sobrien in a function. 1009918334Speter 1010050397Sobrien1997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com> 1010118334Speter 1010250397Sobrien * Makefile.in (CONFLICTS): Fix s/r conflict count to 18. 1010318334Speter 1010450397SobrienTue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1010518334Speter 1010650397Sobrien * call.c (build_new_op): Give better error for syntactically 1010752284Sobrien correct, but semantically invalid, use of undeclared template. 1010818334Speter 1010950397Sobrien * call.c (compare_qual): Handle pmfs. 1011018334Speter 1011150397Sobrien * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn 1011252284Sobrien after the exception spec. 1011318334Speter 1011450397SobrienMon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1011518334Speter 1011650397Sobrien * call.c (null_ptr_cst_p): Integer type, not integral type. 1011718334Speter 1011850397Sobrien * call.c (joust): Disable warnings until they can be moved to the 1011950397Sobrien right place. 1012018334Speter 1012150397SobrienFri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com> 1012218334Speter 1012350397Sobrien * Makefile.in, config-lang.in: Convert to autoconf. 1012418334Speter 1012550397SobrienThu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com> 1012618334Speter 1012750397Sobrien * decl.c (lookup_name_real): Add implicit 'typename' to types from 1012850397Sobrien base classes. 1012918334Speter 1013050397Sobrien * pt.c (most_specialized_class): Fix typo. 1013150397Sobrien (tsubst): Move constant folding to TREE_VEC case. 1013218334Speter 1013350397SobrienThu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net> 1013418334Speter 1013550397Sobrien * pt.c (do_poplevel): Don't warn about unused local variables 1013650397Sobrien while processing_template_decl since we don't always know whether 1013750397Sobrien or not they will need constructing/destructing. 1013818334Speter 1013950397Sobrien * pt.c (uses_template_parms): Check the values of an enumeration 1014050397Sobrien type to make sure they don't depend on template parms. 1014118334Speter 1014250397Sobrien * decl.c (make_typename_type): Don't lookup the field if the 1014350397Sobrien context uses template parms, even if we're not 1014450397Sobrien processing_template_decl at the moment. 1014518334Speter 1014650397Sobrien * pt.c (coerce_template_parms): Avoid looking at the 1014750397Sobrien TYPE_LANG_DECL portion of a typename type, since there won't be 1014852284Sobrien one. 1014950397Sobrien (tsubst): Do constant folding as necessary to make sure that 1015052284Sobrien arguments passed to lookup_template_class really are constants. 1015118334Speter 1015250397SobrienWed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com> 1015318334Speter 1015450397Sobrien * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO. 1015550397Sobrien * decl2.c (finish_file): Only register exception tables if we 1015650397Sobrien need to. 1015718334Speter 1015850397Sobrien * decl.c (init_decl_processing): Add __builtin_[fs]p. 1015918334Speter 1016050397SobrienTue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com> 1016118334Speter 1016250397Sobrien * pt.c (unify): Just return 0 for a TYPENAME_TYPE. 1016318334Speter 1016450397SobrienTue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net> 1016518334Speter 1016650397Sobrien * error.c (dump_decl): Avoid crashing when presented with a 1016752284Sobrien uninitialized constant, as can occur with a template parameter. 1016850397Sobrien (dump_expr): Make sure that there are enough levels of 1016952284Sobrien current_template_parms before we start diving through them. 1017018334Speter 1017150397Sobrien1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com> 1017218334Speter 1017350397Sobrien * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to 1017450397Sobrien c-typeck.c. 1017518334Speter 1017650397SobrienTue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1017718334Speter 1017852284Sobrien * except.c (expand_throw): Call build_delete for all 1017950397Sobrien exception types, not just objects with destructors. 1018018334Speter 1018150397SobrienMon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net> 1018218334Speter 1018350397Sobrien * decl.c (current_local_enum): Remove static. 1018450397Sobrien * pt.c (tsubst_enum): Save and restore value of current_local_enum 1018550397Sobrien in case template is expanded in enum decl. 1018652284Sobrien (instantiate_class_template): Use new tsubst_enum signature. 1018750397Sobrien (tsubst_expr): Likewise. 1018818334Speter 1018950397SobrienMon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> 1019018334Speter 1019150397Sobrien * pt.c (begin_member_template_processing): Take a function as 1019250397Sobrien argument, not a set of template arguments. Use the template 1019350397Sobrien parameters, rather than the arguments. Handle non-type parameters 1019450397Sobrien correctly. Push a binding level for the parameters so that multiple 1019550397Sobrien member templates using the same parameter names can be declared. 1019650397Sobrien (end_member_template_processing): Pop the binding level. 1019750397Sobrien (push_template_decl): Mark member templates as static when 1019852284Sobrien appropriate. 1019918334Speter 1020050397Sobrien * lex.c (do_pending_inlines): Pass the function, not its template 1020150397Sobrien arguments, to begin_member_template_processing. 1020250397Sobrien (process_next_inline): Likewise. 1020350397Sobrien (do_pending_defargs): Likewise. 1020418334Speter 1020550397Sobrien * error.c (dump_expr): Obtain the correct declaration for a 1020652284Sobrien TEMPLATE_CONST_PARM. 1020718334Speter 1020850397Sobrien * call.c (add_template_conv_candidate): New function. 1020950397Sobrien (build_object_call): Handle member templates, as done in the other 1021050397Sobrien build_ functions. 1021152284Sobrien 1021250397SobrienSat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net> 1021318334Speter 1021450397Sobrien * decl.c (replace_defag): Undo previous change. 1021550397Sobrien * lex.c (do_pending_defargs): Deal with member templates. 1021652284Sobrien 1021750397Sobrien * pt.c (is_member_template): Avoid crashing when passed a 1021850397Sobrien non-function argument. 1021918334Speter 1022050397SobrienFri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com> 1022118334Speter 1022250397Sobrien * class.c (grow_method): Remove check for redeclaration. 1022318334Speter 1022450397SobrienFri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net> 1022518334Speter 1022650397Sobrien * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro. 1022750397Sobrien (DECL_INNERMOST_TEMPLATE_PARMS): Likewise. 1022850397Sobrien (PRIMARY_TEMPLATE_P): Use it. 1022950397Sobrien * call.c (build_overload_call_real): Use it. 1023050397Sobrien * class.c (instantiate_type): Likewise. 1023150397Sobrien * decl.c (decls_match): Likewise. 1023250397Sobrien * method.c (build_overload_identifier): Likewise. 1023350397Sobrien * pt.c (push_template_decl): Likewise. 1023450397Sobrien (classtype_mangled_name): Likewise. 1023550397Sobrien (lookup_template_class): Likewise. 1023652284Sobrien 1023750397Sobrien * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to 1023850397Sobrien DECL_NTPARMS to conform to usage elsewhere. 1023950397Sobrien * call.c (add_template_candidate): Likewise. 1024050397Sobrien * class.c (instantiate_type): Likewise. 1024150397Sobrien * pt.c (instantiate_template): Likewise. 1024250397Sobrien (get_bindings): Likewise. 1024352284Sobrien 1024450397Sobrien * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of 1024550397Sobrien is_member_template. 1024618334Speter 1024750397Sobrien * pt.c (unify): Undo changes to allow multiple levels of template 1024852284Sobrien parameters. 1024950397Sobrien (type_unification): Likewise. 1025050397Sobrien (fn_type_unification): Likewise. 1025150397Sobrien (get_class_bindings): Likewise. 1025250397Sobrien * cp-tree.h (Likewise). 1025352284Sobrien 1025450397Sobrien * decl.c (replace_defarg): Check that the type of the default 1025550397Sobrien parameter does not invlove a template type before complaining 1025650397Sobrien about the initialization. 1025718334Speter 1025850397Sobrien * error.c (dump_expr): Deal with template constant parameters in 1025950397Sobrien member templates correctly. 1026018334Speter 1026150397Sobrien * pt.c (is_member_template): Deal with class specializations 1026252284Sobrien correctly. 1026350397Sobrien (tsubst): Handle "partial instantiation" of member templates 1026452284Sobrien correctly. 1026518334Speter 1026650397SobrienWed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> 1026718334Speter 1026852284Sobrien * pt.c (type_unification): Change calling sequence to allow for 1026950397Sobrien multiple levels of template parameters. 1027050397Sobrien (tsubst_expr): Likewise. 1027150397Sobrien (tsubst): Likewise. 1027250397Sobrien (tsubst_copy): Likewise. 1027350397Sobrien (instantiate_template): Likewise. 1027450397Sobrien (unify): Likewise. 1027550397Sobrien * call.c (build_overload_call_real): Use it. 1027650397Sobrien (add_builtin_candidate): Use it. 1027750397Sobrien (build_new_method_call): Use it. 1027850397Sobrien * class.c (instantiate_type): Use it. 1027950397Sobrien * decl.c (grokdeclarator): Use it. 1028050397Sobrien * decl2.c (finish_file): Use it. 1028150397Sobrien * method.c (build_overload_identifier): Use it. 1028252284Sobrien 1028350397Sobrien * call.c (add_template_candidate): Add additional parameter for 1028450397Sobrien the function return type. Call fn_type_unification istead of 1028550397Sobrien type_unification. 1028650397Sobrien (build_user_type_conversion_1): Handle member templates. 1028750397Sobrien (build_new_function_call): Likewise. 1028850397Sobrien (build_new_op): Likewise. 1028950397Sobrien (build_new_method_call): Likewise. 1029052284Sobrien 1029150397Sobrien * class.c (grow_method): Don't give an error message indicating 1029252284Sobrien that two member templates with the same name are ambiguous. 1029350397Sobrien (finish_struct): Treat member template functions just like member 1029452284Sobrien functions. 1029552284Sobrien 1029650397Sobrien * cp-tree.h (check_member_template): Add declaration. 1029750397Sobrien (begin_member_template_processing): Likewise. 1029850397Sobrien (end_member_template_processing): Likewise. 1029950397Sobrien (fn_type_unification): Likewise. 1030050397Sobrien (is_member_template): Likewise. 1030150397Sobrien (tsubst): Change prototype. 1030250397Sobrien (tsubst_expr): Likewise. 1030350397Sobrien (tsubst_copy): Likewise. 1030450397Sobrien (instantiate_template): Likewise. 1030550397Sobrien (get_bindings): Likewise. 1030618334Speter 1030750397Sobrien * decl.c (decls_match): Handle multiple levels of template 1030852284Sobrien parameters. 1030950397Sobrien (pushdecl): Handle template type params just like other type 1031052284Sobrien declarations. 1031150397Sobrien (push_class_level_binding): Return immediately if the 1031250397Sobrien class_binding_level is NULL. 1031350397Sobrien (grokfndecl): If check_classfn() returns a member_template, use 1031450397Sobrien the result of the template, not the template itself. 1031552284Sobrien 1031650397Sobrien * decl2.c (check_member_template): New function. Check to see 1031750397Sobrien that the entity declared to be a member template can be one. 1031850397Sobrien (check_classfn): Allow redeclaration of member template functions 1031950397Sobrien with different types; the new functions can be specializations or 1032050397Sobrien explicit instantiations. 1032152284Sobrien 1032250397Sobrien * error.c (dump_decl): Handle multiple levels of template 1032352284Sobrien parameters. 1032452284Sobrien (dump_function_decl): Update to handle function templates. 1032518334Speter 1032650397Sobrien * lex.c (do_pending_inlines): Set up template parameter context 1032750397Sobrien for member templates. 1032850397Sobrien (process_next_inline): Likewise. 1032918334Speter 1033052284Sobrien * method.c (build_overload_identifier): Adjust for multiple levels 1033150397Sobrien of template parameters. 1033252284Sobrien 1033350397Sobrien * parse.y (fn.def2): Add member templates. 1033450397Sobrien (component_decl_1): Likewise. 1033518334Speter 1033650397Sobrien * pt.c (begin_member_template_processing): New function. 1033750397Sobrien (end_member_template_processing): Likewise. 1033850397Sobrien (is_member_template): Likewise. 1033950397Sobrien (fn_type_unification): Likewise. 1034050397Sobrien (current_template_parms): Return a vector of all the template 1034150397Sobrien parms, not just the innermost level of parms. 1034250397Sobrien (push_template_decl): Deal with the possibility of member 1034352284Sobrien templates. 1034450397Sobrien (lookup_template_class): Likewise. 1034550397Sobrien (uses_template_parms): Likewise. 1034650397Sobrien (tsubst): Modify processing to TEMPLATE_TYPE_PARM and 1034750397Sobrien TEMPLATE_CONST_PARM to deal with multiple levels of template 1034850397Sobrien arguments. Add processing of TEMPLATE_DECL to produce new 1034950397Sobrien TEMPLATE_DECLs from old ones. 1035050397Sobrien (do_decl_instantiation): Handle member templates. 1035118334Speter 1035250397Sobrien * search.c (lookup_fnfields_1): Handle member template conversion 1035352284Sobrien operators. 1035418334Speter 1035550397Sobrien * tree.c (cp_tree_equal): Check the levels, as well as the 1035650397Sobrien indices, of TEMPLATE_CONST_PARMs. 1035718334Speter 1035850397Sobrien * typeck.c (comptypes): Check the levels, as well as the indices, 1035950397Sobrien fo TEMPLATE_TYPE_PARMs. 1036050397Sobrien (build_x_function_call): Treat member templates like member 1036152284Sobrien functions. 1036252284Sobrien 1036350397SobrienWed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1036418334Speter 1036550397Sobrien * typeck.c (c_expand_return): Always convert_for_initialization 1036652284Sobrien before checking for returning a pointer to local. 1036718334Speter 1036850397Sobrien * pt.c (type_unification): If strict and the function parm doesn't 1036950397Sobrien use template parms, just compare types. 1037018334Speter 1037150397SobrienWed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de> 1037218334Speter 1037350397Sobrien * method.c (build_overloaded_value): Replace direct call 1037450397Sobrien to the floating point emulator with REAL_VALUE_TO_DECIMAL macro. 1037518334Speter 1037650397SobrienWed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com> 1037718334Speter 1037850397Sobrien * typeck.c (convert_arguments): Don't arbitrarily choose the first 1037952284Sobrien of a set of overloaded functions. 1038018334Speter 1038150397SobrienTue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1038218334Speter 1038350397Sobrien * lex.c (real_yylex): Don't elide __FUNCTION__. 1038418334Speter 1038550397Sobrien * method.c (build_overload_value): Add in_template parm. 1038650397Sobrien (build_overload_int): Likewise. 1038750397Sobrien (build_overload_identifier): Pass it. 1038818334Speter 1038950397Sobrien * decl.c (duplicate_decls): Don't bash a previous template 1039052284Sobrien definition with a redeclaration. 1039118334Speter 1039250397Sobrien * pt.c (unify): float doesn't match double. 1039318334Speter 1039450397Sobrien * pt.c (do_type_instantiation): Handle getting a _TYPE or a 1039552284Sobrien TYPE_DECL. Handle getting non-template types. 1039650397Sobrien * parse.y (explicit_instantiation): Use typespec instead of 1039750397Sobrien aggr template_type. 1039818334Speter 1039950397SobrienTue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com> 1040018334Speter 1040150397Sobrien * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings. 1040218334Speter 1040352284SobrienMon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru> 1040418334Speter 1040550397Sobrien * call.c (add_builtin_candidate): Add missing TREE_TYPE. 1040650397Sobrien (compare_ics): Likewise. 1040718334Speter 1040850397SobrienMon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com> 1040918334Speter 1041050397Sobrien * call.c (joust): Warn about choosing one conversion op over 1041152284Sobrien another because of 'this' argument when the other return type is 1041252284Sobrien better. 1041350397Sobrien (source_type): New fn. 1041418334Speter 1041550397Sobrien * call.c (build_new_op): Strip leading REF_BIND from first operand 1041650397Sobrien to builtin operator. 1041718334Speter 1041850397Sobrien * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we 1041950397Sobrien use its RTL. 1042018334Speter 1042150397SobrienThu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1042218334Speter 1042350397Sobrien * call.c (null_ptr_cst_p): Remove support for (void*)0. 1042418334Speter 1042552284SobrienWed Aug 27 02:03:34 1997 Jeffrey A Law <law@cygnus.com> 1042618334Speter 1042750397Sobrien * typeck.c (expand_target_expr): Make definition match declaration. 1042818334Speter 1042950397Sobrien * class.c (get_basefndecls): Make definition match declaration. 1043018334Speter 1043150397SobrienMon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com> 1043218334Speter 1043350397Sobrien * input.c (sub_getch): Eventually give up and release the input file. 1043418334Speter 1043550397Sobrien * decl.c (cp_finish_decl): If #p i/i, put inline statics in the 1043650397Sobrien right place. 1043718334Speter 1043850397Sobrien * call.c (joust): Tweak message. 1043918334Speter 1044050397SobrienSat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net> 1044118334Speter 1044250397Sobrien * error.c (type_as_string): Put const/volatile on template type 1044350397Sobrien parameters where appropriate. 1044418334Speter 1044552284SobrienSat Aug 23 17:47:22 1997 Jeffrey A Law <law@cygnus.com> 1044618334Speter 1044750397Sobrien * call.c (strictly_better): Make arguments unsigned ints. 1044818334Speter 1044950397SobrienThu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com> 1045018334Speter 1045150397Sobrien * lex.c (real_yylex): Refer to __complex instead of complex. 1045218334Speter 1045352284SobrienThu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk> 1045418334Speter 1045550397Sobrien * lex.c (real_yylex): Don't use getc directly. 1045618334Speter 1045750397SobrienWed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1045818334Speter 1045950397Sobrien * call.c (is_subseq): Don't try to be clever. 1046018334Speter 1046150397SobrienWed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 1046218334Speter 1046350397Sobrien * parse.y, pt.c: Include "except.h". 1046450397Sobrien * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c, 1046552284Sobrien error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c, 1046652284Sobrien lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c, 1046752284Sobrien sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish 1046852284Sobrien prototyping. 1046918334Speter 1047050397SobrienWed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1047118334Speter 1047250397Sobrien * decl2.c (mark_vtable_entries): Instead of replacing pure 1047350397Sobrien virtuals with a reference to __pure_virtual, copy the decl and 1047450397Sobrien change the RTL. 1047518334Speter 1047650397SobrienTue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com> 1047718334Speter 1047850397Sobrien * pt.c (lookup_nested_type_by_name): Handle typedef wierdness. 1047918334Speter 1048050397Sobrien * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com. 1048118334Speter 1048250397Sobrien * pt.c (instantiate_class_template): Call repo_template_used 1048350397Sobrien before finish_prevtable_vardecl. 1048418334Speter 1048550397Sobrien * call.c (is_subseq): New fn. 1048650397Sobrien (compare_ics): Use it. 1048718334Speter 1048850397Sobrien * repo.c (finish_repo): Don't crash on no args. 1048918334Speter 1049050397Sobrien * parse.y (named_complex_class_head_sans_basetype): Handle 1049152284Sobrien explicit global scope. 1049250397Sobrien * decl2.c (handle_class_head): New fn. 1049318334Speter 1049450397Sobrien * pt.c (unify): Add CONST_DECL case. 1049518334Speter 1049650397SobrienThu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1049718334Speter 1049850397Sobrien * rtti.c (permanent_obstack): Fix decl to not be a pointer. 1049918334Speter 1050050397Sobrien * cp-tree.h (report_type_mismatch): Add prototype. 1050150397Sobrien * call.c (build_overload_call_real): Remove erroneous fourth 1050250397Sobrien argument to report_type_mismatch. 1050350397Sobrien (build_user_type_conversion_1): Remove erroneous second arg to 1050450397Sobrien tourney. 1050550397Sobrien (build_new_function_call): Likewise. 1050650397Sobrien (build_object_call): Likewise. 1050750397Sobrien (build_new_op): Likewise. 1050850397Sobrien (build_new_method_call): Likewise. 1050918334Speter 1051050397SobrienWed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1051118334Speter 1051250397Sobrien * error.c (dump_decl): Don't bother processing a function with no 1051350397Sobrien DECL_LANG_SPECIFIC. 1051418334Speter 1051550397Sobrien * method.c (emit_thunk): Call init_function_start in the macro case. 1051618334Speter 1051750397SobrienWed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 1051818334Speter 1051950397Sobrien * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not 1052050397Sobrien defined and used to set flag_vtable_thunks. 1052118334Speter 1052250397SobrienTue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1052318334Speter 1052452284Sobrien * parse.y: Don't clear the inlines from their obstack until they've 1052550397Sobrien all been processed. 1052618334Speter 1052750397Sobrien * decl.c (duplicate_decls): Don't complain about exception 1052852284Sobrien specification mismatch if flag_exceptions is off. 1052918334Speter 1053052284SobrienMon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com> 1053118334Speter 1053250397Sobrien * Make-lang.in (c++.distclean): Remove g++.c on make distclean. 1053318334Speter 1053450397SobrienSun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com> 1053518334Speter 1053650397Sobrien * cp-tree.h: Replace STDIO_PROTO with PROTO in include files. 1053750397Sobrien * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c: 1053852284Sobrien Include <stdio.h> before include files that formerly used STDIO_PROTO. 1053918334Speter 1054050397Sobrien * decl.c, g++spec.c, lex.c, method.c, repo.c: 1054152284Sobrien Include "config.h" first, as per autoconf manual. 1054218334Speter 1054350397SobrienFri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com> 1054418334Speter 1054550397Sobrien * decl.c (duplicate_decls): Tweak wording. 1054650397Sobrien * lex.c (do_pending_defargs): Don't die if we see a default arg 1054750397Sobrien that isn't a DEFAULT_ARG. 1054850397Sobrien * error.c (dump_expr): Handle DEFAULT_ARG. 1054918334Speter 1055050397Sobrien * decl2.c (lang_decode_option): Handle -fhandle-exceptions. 1055150397Sobrien * lang-options.h: Add -fhandle-exceptions. 1055218334Speter 1055352284Sobrien * class.c (build_vtable): Vtables are artificial. 1055450397Sobrien (prepare_fresh_vtable): Likewise. 1055518334Speter 1055650397SobrienWed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 1055718334Speter 1055850397Sobrien * cvt.c (ocp_convert): After converting to the target type, set 1055952284Sobrien LOOKUP_NO_CONVERSION. 1056018334Speter 1056150397Sobrien * call.c (joust): Warn about potentially confusing promotion rules 1056250397Sobrien with -Wsign-promo. 1056350397Sobrien * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo. 1056418334Speter 1056550397SobrienTue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com> 1056618334Speter 1056750397Sobrien * exception.cc: Declare __terminate_func with noreturn attribute. 1056818334Speter 1056950397SobrienFri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com> 1057018334Speter 1057150397Sobrien * parse.y: Break out eat_saved_input, handle errors. 1057250397Sobrien (function_try_block): Use compstmt instead of compstmt_or_error. 1057318334Speter 1057450397SobrienThu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com> 1057518334Speter 1057650397Sobrien * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE. 1057718334Speter 1057850397SobrienFri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1057918334Speter 1058050397Sobrien * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for 1058150397Sobrien existence of cc1plus check whether $(LANGUAGES) contains C++. 1058218334Speter 1058350397SobrienWed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1058418334Speter 1058550397Sobrien * method.c (do_build_copy_constructor): When copying an anonymous 1058650397Sobrien union member loop around to handle nested anonymous unions. Use 1058750397Sobrien the offset of the member relative to the outer structure, not the 1058850397Sobrien union. 1058918334Speter 1059050397SobrienTue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1059118334Speter 1059250397Sobrien * call.c (resolve_args): New fn. 1059350397Sobrien (build_new_function_call): Use it. 1059450397Sobrien (build_object_call): Likewise. 1059550397Sobrien (build_new_method_call): Likewise. 1059618334Speter 1059750397SobrienMon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 1059818334Speter 1059950397Sobrien * call.c (build_over_call): tsubst all default parms from templates. 1060018334Speter 1060150397SobrienWed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1060218334Speter 1060350397Sobrien * decl.c (struct cp_function): Add static_labelno. 1060450397Sobrien (push_cp_function_context): Save it. 1060550397Sobrien (pop_cp_function_context): Restore it. 1060618334Speter 1060750397SobrienTue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1060818334Speter 1060950397Sobrien * typeck.c (build_component_ref_1): Convert from reference. 1061018334Speter 1061150397SobrienTue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1061218334Speter 1061350397Sobrien * parse.y (current_declspecs, prefix_attributes): Initialize to 1061450397Sobrien NULL_TREE. 1061518334Speter 1061650397Sobrien * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil 1061750397Sobrien before we try to force it to be a TREE_LIST. 1061850397Sobrien (decl): Make sure $1.t is non-nil. 1061918334Speter 1062050397SobrienSun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com> 1062118334Speter 1062250397Sobrien * pt.c (uses_template_parms): Handle template first-parse codes. 1062318334Speter 1062450397Sobrien * decl.c (cp_finish_decl): Only warn about user-defined statics. 1062518334Speter 1062650397SobrienFri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1062718334Speter 1062850397Sobrien * pt.c (unify): Handle BOOLEAN_TYPE. 1062918334Speter 1063050397Sobrien * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE. 1063150397Sobrien * pt.c (tsubst): Don't set it. 1063250397Sobrien * call.c (build_over_call): Use uses_template_parms. 1063318334Speter 1063450397SobrienThu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com> 1063518334Speter 1063650397Sobrien * method.c (build_overload_nested_name): Use static_labelno 1063752284Sobrien instead of var_labelno. 1063850397Sobrien (build_qualified_name): New fn. 1063950397Sobrien (build_overload_name): Split out from here. 1064050397Sobrien (build_static_name): Use build_qualified_name. 1064152284Sobrien * decl.c (cp_finish_decl): Statics in extern inline functions 1064250397Sobrien have comdat linkage. 1064350397Sobrien (start_function): Initialize static_labelno. 1064418334Speter 1064550397SobrienThu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1064618334Speter 1064752284Sobrien * class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy 1064852284Sobrien before "all member functions in class [] are private". 1064918334Speter 1065050397SobrienWed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1065118334Speter 1065250397Sobrien * lex.c (do_scoped_id): convert_from_reference. 1065350397Sobrien * init.c (build_offset_ref): Likewise. 1065418334Speter 1065550397SobrienWed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com> 1065618334Speter 1065750397Sobrien * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list. 1065818334Speter 1065950397SobrienMon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com> 1066018334Speter 1066150397Sobrien * typeck.c (get_member_function_from_ptrfunc): Promote index 1066252284Sobrien before saving it. 1066318334Speter 1066450397SobrienSun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com> 1066518334Speter 1066650397Sobrien * tree.c (layout_basetypes): Move non-virtual destructor warning. 1066750397Sobrien * decl.c (xref_basetypes): Remove non-virtual destructor warning. 1066818334Speter 1066950397SobrienSat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1067018334Speter 1067150397Sobrien * decl.c (grokdeclarator): Call add_defarg_fn for the function 1067250397Sobrien type, too. 1067350397Sobrien * lex.c (add_defarg_fn): Adjust. 1067450397Sobrien (do_pending_defargs): Adjust. Don't skip the first parm. 1067518334Speter 1067650397SobrienFri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com> 1067718334Speter 1067850397Sobrien * decl.c (build_enumerator): Global enumerators are also readonly. 1067918334Speter 1068050397Sobrien * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast. 1068150397Sobrien (build_dynamic_cast): Call it and convert_from_reference. 1068218334Speter 1068350397Sobrien * lex.c (add_defarg_fn): New fn. 1068450397Sobrien (snarf_defarg): Don't add to defarg_types. 1068550397Sobrien (do_pending_defargs): Lose defarg_types. All fns we process now 1068650397Sobrien have defargs. 1068750397Sobrien * decl.c (grokfndecl): Call add_defarg_fn. 1068818334Speter 1068950397Sobrien * Makefile.in (CONFLICTS): Expect 18 s/r conflicts. 1069050397Sobrien * cp-tree.def: Add DEFAULT_ARG. 1069150397Sobrien * spew.c (yylex): Call snarf_defarg as appropriate. 1069250397Sobrien * parse.y: New tokens DEFARG and DEFARG_MARKER. 1069350397Sobrien (defarg_again, pending_defargs, defarg, defarg1): New rules. 1069450397Sobrien (structsp): Use pending_defargs. 1069550397Sobrien (parms, full_parm): Use defarg. 1069650397Sobrien * lex.c (init_lex): Initialize inline_text_firstobj. 1069750397Sobrien (do_pending_inlines): Never pass the obstack to feed_input. 1069850397Sobrien (process_next_inline): Call end_input instead of restore_pending_input. 1069950397Sobrien (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs, 1070050397Sobrien finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns. 1070150397Sobrien * input.c (end_input): New fn. 1070250397Sobrien (sub_getch): At the end of some fed input, just keep returning EOF 1070350397Sobrien until someone calls end_input. 1070450397Sobrien Remove 'obstack' field from struct input_source. 1070550397Sobrien * decl.c (grokparms): Handle DEFAULT_ARG. 1070650397Sobrien (replace_defarg): New fn. 1070750397Sobrien * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros. 1070818334Speter 1070950397SobrienWed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1071018334Speter 1071150397Sobrien * call.c (implicit_conversion): If nothing else works, try binding 1071250397Sobrien an rvalue to a reference. 1071318334Speter 1071450397SobrienWed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com> 1071518334Speter 1071652284Sobrien * decl.c (init_decl_processing): Fix Jun 30 patch -- move 1071750397Sobrien ifndef for Cygwin32 to include SIGSEGV. 1071818334Speter 1071950397SobrienThu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1072018334Speter 1072150397Sobrien * class.c (finish_struct_1): Only complain about pointers without 1072250397Sobrien copy stuff if there are any constructors. 1072318334Speter 1072450397Sobrien * rtti.c (build_dynamic_cast): Call complete_type on the types. 1072518334Speter 1072650397Sobrien * decl.c (grokfndecl): If the function we chose doesn't actually 1072752284Sobrien match, die. 1072818334Speter 1072950397Sobrien * decl2.c (grokclassfn): Don't specify 'const int' for the 1073052284Sobrien artificial destructor parm. 1073118334Speter 1073252284Sobrien * pt.c (type_unification): If we are called recursively, nothing 1073350397Sobrien decays. 1073418334Speter 1073550397SobrienMon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com> 1073618334Speter 1073752284Sobrien * decl.c (init_decl_processing): Stop trying to catch signals 1073850397Sobrien other than SIGABRT since the Cygwin32 library doesn't support 1073950397Sobrien them correctly yet. This fixes a situation in which g++ causes 1074050397Sobrien a hang on SIGSEGVs and other such signals in our Win32-hosted 1074150397Sobrien tools. 1074218334Speter 1074350397SobrienMon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com> 1074418334Speter 1074550397Sobrien * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data. 1074618334Speter 1074750397SobrienFri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com> 1074818334Speter 1074952284Sobrien * typeck2.c (store_init_value): Always return the value if our 1075050397Sobrien type needs constructing. 1075118334Speter 1075250397Sobrien * method.c (hack_identifier): Convert class statics from 1075352284Sobrien reference, too. 1075418334Speter 1075550397SobrienThu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com> 1075618334Speter 1075750397Sobrien * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency. 1075818334Speter 1075950397SobrienThu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com> 1076018334Speter 1076150397Sobrien * typeck.c (c_expand_return): Make sure we clean up temporaries at 1076250397Sobrien the end of return x; 1076318334Speter 1076450397SobrienThu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1076518334Speter 1076650397Sobrien * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER. 1076718334Speter 1076850397SobrienTue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com> 1076918334Speter 1077050397Sobrien * except.c (expand_builtin_throw): Add support 1077152284Sobrien -fno-sjlj-exceptions -fPIC exception handling on the SPARC. 1077218334Speter 1077350397SobrienMon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com> 1077418334Speter 1077550397Sobrien * repo.c (extract_string): Null-terminate. 1077618334Speter 1077750397Sobrien * cp-tree.h (TI_SPEC_INFO): New macro. 1077850397Sobrien (CLASSTYPE_TI_SPEC_INFO): New macro. 1077952284Sobrien * pt.c (push_template_decl): Correctly determine # of template parms 1078050397Sobrien for partial specs. 1078118334Speter 1078250397Sobrien * call.c (compare_ics): Really fix 'this' conversions. 1078318334Speter 1078450397Sobrien * pt.c (do_decl_instantiation): Don't crash on explicit inst of 1078550397Sobrien non-template fn. 1078618334Speter 1078750397Sobrien * pt.c (push_template_decl): Complain about mismatch in # of 1078852284Sobrien template parms between a class template and a member template. 1078918334Speter 1079050397SobrienSun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com> 1079118334Speter 1079250397Sobrien * method.c (synthesize_method): You can't call 1079352284Sobrien function_cannot_inline_p after finish_function. 1079450397Sobrien * decl.c (finish_function): Turn on flag_inline_functions and turn 1079552284Sobrien off DECL_INLINE before handing a synthesized method to the 1079652284Sobrien backend. 1079718334Speter 1079850397SobrienThu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1079918334Speter 1080050397Sobrien * method.c (synthesize_method): Remove July 30 change to never set 1080152284Sobrien DECL_INLINE if at_eof. 1080218334Speter 1080350397SobrienThu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com> 1080418334Speter 1080550397Sobrien * xref.c (GNU_xref_member): Ensure that the node has a 1080650397Sobrien decl_lang_specific part before checking DECL_FRIEND_P. 1080718334Speter 1080850397SobrienThu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1080918334Speter 1081050397Sobrien * pt.c (instantiate_class_template): Diagnose non-class types used 1081150397Sobrien as bases. 1081218334Speter 1081350397SobrienWed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1081418334Speter 1081550397Sobrien * typeck.c (build_conditional_expr): Use convert_for_initialization 1081650397Sobrien instead of convert_and_check. 1081718334Speter 1081850397SobrienWed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1081918334Speter 1082050397Sobrien * parse.y (typespec): Don't pedwarn for typeof. 1082118334Speter 1082250397SobrienTue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com> 1082318334Speter 1082450397Sobrien * repo.c (finish_repo): Only check changes if we would write a 1082550397Sobrien repo file. 1082618334Speter 1082750397Sobrien * call.c (compare_ics): Fix handling of 'this' conversions. 1082818334Speter 1082950397Sobrien * pt.c (do_decl_instantiation): Support static data too. Rename 1083050397Sobrien from do_function_instantiation. 1083150397Sobrien * cp-tree.h: Adjust. 1083250397Sobrien * parse.y: Adjust. 1083318334Speter 1083450397Sobrien * repo.c (extract_string): New fn. 1083550397Sobrien (get_base_filename): Use it. 1083650397Sobrien (init_repo): Compare old args with current args. 1083718334Speter 1083850397SobrienMon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com> 1083918334Speter 1084050397Sobrien * Makefile.in, Make-lang.in: Protect C-ls with a comment 1084152284Sobrien character, idea from Paul Eggert <eggert@twinsun.com>. 1084218334Speter 1084350397SobrienMon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com> 1084418334Speter 1084550397Sobrien * typeck.c (c_expand_return): Be more persistent in looking for 1084652284Sobrien returned temps. 1084718334Speter 1084850397Sobrien * cvt.c (build_up_reference): Use NOP_EXPR for switching from 1084952284Sobrien pointer to reference. 1085018334Speter 1085150397Sobrien * class.c (build_vbase_path): Don't do anything if PATH has no steps. 1085218334Speter 1085350397SobrienSun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1085418334Speter 1085550397Sobrien * init.c (build_member_call, build_offset_ref): 1085652284Sobrien Use do_scoped_id instead of do_identifier. 1085718334Speter 1085850397Sobrien * cvt.c (convert): Remove bogosity. 1085918334Speter 1086050397SobrienSat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1086118334Speter 1086250397Sobrien * cvt.c (build_up_reference): Do checks of ARGTYPE and 1086350397Sobrien TARGET_TYPE before trying to use get_binfo. 1086418334Speter 1086550397SobrienFri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com> 1086618334Speter 1086750397Sobrien * cvt.c (build_up_reference): Call get_binfo to get access control. 1086818334Speter 1086950397Sobrien * decl2.c (import_export_decl): If we don't support weaks, leave 1087052284Sobrien statics undefined. 1087118334Speter 1087250397SobrienFri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com> 1087318334Speter 1087450397Sobrien * except.c (expand_builtin_throw): Add support for machines that 1087552284Sobrien cannot access globals after throw's epilogue when 1087652284Sobrien -fno-sjlj-exceptions is used. 1087718334Speter 1087850397SobrienThu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com> 1087918334Speter 1088050397Sobrien * parse.y: 'std::' becomes '::'. 1088150397Sobrien * lex.c (real_yylex): Remove 'namespace' warning. 1088250397Sobrien * init.c (build_member_call): Ignore 'std::'. 1088350397Sobrien (build_offset_ref): Likewise. 1088450397Sobrien * decl2.c (do_using_directive): Ignore 'using namespace std;'. 1088550397Sobrien (do_toplevel_using_decl): Ignore 'using std::whatever'. 1088650397Sobrien * decl.c (push_namespace): Just sorry. 1088750397Sobrien (pop_namespace): Nop. 1088850397Sobrien (init_decl_processing): Declare std namespace. 1088918334Speter 1089050397SobrienTue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1089118334Speter 1089250397Sobrien * search.c (push_class_decls): A name which ambiguously refers to 1089352284Sobrien several instantiations of the same template just refers to the 1089452284Sobrien template. 1089518334Speter 1089650397SobrienTue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com> 1089718334Speter 1089852284Sobrien * decl.c (build_enumerator): Fix problem with unsigned long 1089950397Sobrien enumerated values being smashed to ints, causing overflow 1090052284Sobrien when computing next enumerated value (for enum values around 1090150397Sobrien MAX_VAL). 1090218334Speter 1090350397SobrienMon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1090418334Speter 1090550397Sobrien * typeck.c (build_component_ref): Only call mark_used on a decl. 1090618334Speter 1090750397SobrienThu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1090818334Speter 1090950397Sobrien * typeck.c (build_c_cast): Make the check for a ptr to function 1091050397Sobrien more specific before possible default_conversion call. 1091118334Speter 1091250397SobrienThu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com> 1091318334Speter 1091450397Sobrien * except.c (expand_exception_blocks): Simplify and fix and make 1091550397Sobrien sure we don't end a region in a sequence, as expand_end_bindings 1091650397Sobrien doesn't like it. 1091718334Speter 1091850397SobrienWed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com> 1091918334Speter 1092050397Sobrien * except.c (init_exception_processing): Mark terminate as not 1092150397Sobrien returning so that the optimizer can optimize better. 1092218334Speter 1092350397SobrienTue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com> 1092418334Speter 1092550397Sobrien * cvt.c (convert): Don't do any extra work, if we can avoid it 1092650397Sobrien easily. 1092718334Speter 1092850397SobrienTue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com> 1092918334Speter 1093050397Sobrien * *.[chy]: Change cp_convert to ocp_convert, change convert to 1093150397Sobrien cp_convert. convert is now reserved for the backend, and doesn't 1093250397Sobrien have the semantics a frontend person should ever want. 1093318334Speter 1093450397SobrienFri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com> 1093518334Speter 1093650397Sobrien * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled. 1093750397Sobrien Lose -traditional support. 1093818334Speter 1093950397SobrienThu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1094018334Speter 1094150397Sobrien * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype). 1094218334Speter 1094350397Sobrien * parse.y (self_reference): Do it for templates, too. 1094450397Sobrien * class.c (pushclass): Don't overload_template_name; the alias 1094550397Sobrien generated by build_self_reference serves the same purpose. 1094618334Speter 1094750397Sobrien * tree.c (list_hash): Make static, take more args. 1094850397Sobrien (list_hash_lookup): Likewise. 1094950397Sobrien (list_hash_add): Make static. 1095050397Sobrien (list_hash_canon): Lose. 1095150397Sobrien (hash_tree_cons): Only build a new node if one isn't already in the 1095250397Sobrien hashtable. 1095350397Sobrien (hash_tree_chain): Use hash_tree_cons. 1095450397Sobrien * cp-tree.h: Adjust. 1095550397Sobrien * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead 1095650397Sobrien of calling lookup_name. 1095718334Speter 1095850397SobrienWed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com> 1095918334Speter 1096050397Sobrien * pt.c (instantiate_class_template): TYPE_VALUES for an enum 1096150397Sobrien doesn't refer to the CONST_DECLs. 1096218334Speter 1096350397SobrienTue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com> 1096418334Speter 1096550397Sobrien * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever 1096650397Sobrien is bigger. 1096750397Sobrien (expand_class_desc): Convert the last argument to a sizetype. 1096818334Speter 1096950397SobrienTue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1097018334Speter 1097150397Sobrien * gxx.gperf (__complex, __complex__, __imag, __imag__, __real, 1097250397Sobrien __real__): Add reswords. 1097350397Sobrien * hash.h: Regenerate. 1097450397Sobrien * lex.h (rid): Add RID_COMPLEX. 1097550397Sobrien (RID_LAST_MODIFIER): Set to RID_COMPLEX. 1097650397Sobrien * lex.c (init_lex): Add building of RID_COMPLEX. 1097750397Sobrien (real_yylex): General cleanup in line with what c-lex.c also has, 1097850397Sobrien sans the cruft for traditional; add handling of SPEC_IMAG, complex 1097950397Sobrien types, and imaginary numeric constants. 1098050397Sobrien * parse.y (REALPART, IMAGPART): Add tokens. 1098150397Sobrien (unary_expr): Add REALPART and IMAGPART rules. 1098250397Sobrien * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare. 1098350397Sobrien * decl.c (complex_{integer,float,double,long}_type_node): Define 1098450397Sobrien types. 1098550397Sobrien (init_decl_processing): Set up the types. 1098650397Sobrien (grokdeclarator): Add handling of RID_COMPLEX. Set and use 1098750397Sobrien DEFAULTED_INT instead of EXPLICIT_INT when we default to int type. 1098850397Sobrien * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases. 1098950397Sobrien * cvt.c (cp_convert): Handle COMPLEX_TYPE. 1099050397Sobrien * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add 1099150397Sobrien COMPLEX_TYPE case. 1099250397Sobrien * method.c (build_overload_name): Add handling of the different 1099350397Sobrien COMPLEX_TYPEs, prefixing them with `J'. 1099450397Sobrien * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE 1099550397Sobrien as a template parm. 1099650397Sobrien (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case. 1099750397Sobrien * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases. 1099850397Sobrien (mapcar): Handle COMPLEX_CST. 1099950397Sobrien * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE. 1100050397Sobrien (common_type): Add code for complex types. 1100150397Sobrien (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases. 1100250397Sobrien (convert_for_assignment): Likewise. 1100350397Sobrien (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases. 1100418334Speter 1100550397SobrienMon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com> 1100618334Speter 1100750397Sobrien * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to 1100850397Sobrien tsubst_expr, as it might try to do overload resolution. 1100918334Speter 1101050397SobrienSat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com> 1101118334Speter 1101250397Sobrien * pt.c (instantiate_class_template): Oops. 1101318334Speter 1101450397SobrienFri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1101518334Speter 1101650397Sobrien * cp-tree.def: Add TAG_DEFN. 1101750397Sobrien * pt.c (tsubst_enum): New fn. 1101850397Sobrien (instantiate_class_template): Use it. 1101950397Sobrien (tsubst_expr): Support TAG_DEFN. 1102050397Sobrien (tsubst): Support local enums. 1102150397Sobrien (tsubst_copy): Likewise. 1102250397Sobrien * decl.c (finish_enum): Likewise. 1102350397Sobrien (start_enum): If this is a local enum, switch to permanent_obstack. 1102418334Speter 1102550397SobrienWed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com> 1102618334Speter 1102750397Sobrien * decl.c (store_parm_decls): Set last_parm_cleanup_insn here. 1102850397Sobrien (finish_function): Put the base init code for constructors just 1102950397Sobrien after the parm cleanup insns. 1103050397Sobrien (struct cp_function): Add last_parm_cleanup_insn. 1103150397Sobrien (push_cp_function_context): Likewise. 1103250397Sobrien (pop_cp_function_context): Likewise. 1103352284Sobrien 1103450397SobrienTue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com> 1103518334Speter 1103650397Sobrien * pt.c (tsubst_copy): Handle BIT_NOT_EXPR. 1103718334Speter 1103850397SobrienWed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1103918334Speter 1104050397Sobrien * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL 1104150397Sobrien for THUNK_FNDECL before we switch to temporary allocation. 1104218334Speter 1104350397SobrienMon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com> 1104418334Speter 1104550397Sobrien * call.c (build_new_op): Handle null arg2 for ?:. 1104618334Speter 1104750397SobrienThu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com> 1104818334Speter 1104950397Sobrien * except.c (expand_exception_blocks): Ensure that we flow through 1105050397Sobrien the end of the exception region for the exception specification. 1105150397Sobrien Move exception region for the exception specification in, so that 1105250397Sobrien it doesn't protect the parm cleanup. Remove some obsolete code. 1105350397Sobrien * decl.c (store_parm_decls): Likewise. 1105450397Sobrien (finish_function): Likewise. 1105518334Speter 1105650397SobrienTue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com> 1105718334Speter 1105850397Sobrien * init.c (build_new): Fix nothrow handling. 1105918334Speter 1106050397SobrienTue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1106118334Speter 1106250397Sobrien * init.c (emit_base_init): Don't warn about the initialization 1106350397Sobrien list for an artificial member. 1106418334Speter 1106550397SobrienFri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1106618334Speter 1106750397Sobrien * expr.c (do_case): Handle !START case for the error msg. 1106818334Speter 1106950397SobrienFri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1107018334Speter 1107150397Sobrien * decl2.c, lang-options.h: New option -Weffc++. 1107250397Sobrien * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings 1107350397Sobrien to -Weffc++. 1107418334Speter 1107550397Sobrien * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS 1107650397Sobrien to MULTIPLE_SYMBOL_SPACES. 1107718334Speter 1107850397SobrienWed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com> 1107918334Speter 1108050397Sobrien * method.c (emit_thunk, generic case): Set current_function_is_thunk. 1108118334Speter 1108250397Sobrien * method.c (emit_thunk, macro case): Set up DECL_RESULT. 1108318334Speter 1108450397Sobrien * typeck.c (c_expand_return): Don't complain about returning void 1108550397Sobrien to void in an artificial function. 1108652284Sobrien * method.c (make_thunk): Change settings of READONLY/VOLATILE, 1108750397Sobrien don't set DECL_RESULT, set DECL_ARTIFICIAL. 1108852284Sobrien (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC. 1108918334Speter 1109050397SobrienWed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com> 1109118334Speter 1109252284Sobrien * init.c (init_decl_processing): Add support for setjmp/longjmp based 1109350397Sobrien exception handling. 1109450397Sobrien * except.c (init_exception_processing): Likewise. 1109550397Sobrien (expand_end_catch_block): Likewise. 1109650397Sobrien (expand_exception_blocks): Likewise. 1109750397Sobrien (expand_throw): Likewise. 1109850397Sobrien * exception.cc (__default_terminate): Likewise. 1109918334Speter 1110050397Sobrien * init.c (perform_member_init): Use new method of expr level 1110150397Sobrien cleanups, instead of cleanups_this_call and friends. 1110250397Sobrien (emit_base_init): Likewise. 1110350397Sobrien (expand_aggr_vbase_init_1): Likewise. 1110450397Sobrien (expand_vec_init): Likewise. 1110550397Sobrien * decl.c (cp_finish_decl): Likewise. 1110650397Sobrien (expand_static_init): Likewise. 1110750397Sobrien (store_parm_decls): Likewise. 1110850397Sobrien (cplus_expand_expr_stmt): Likewise. 1110950397Sobrien * decl2.c (finish_file): Likewise. 1111052284Sobrien 1111150397Sobrien * Make-lang.in (exception.o): Ok to compile with -O now. 1111218334Speter 1111350397Sobrien * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as 1111450397Sobrien we know it will be done later by the backend. 1111518334Speter 1111650397Sobrien * decl2.c (lang_f_options): Remove support for short temps. 1111750397Sobrien * lang-options.h: Likewise. 1111852284Sobrien 1111950397SobrienWed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com> 1112018334Speter 1112150397Sobrien * tree.c (varargs_function_p): New fn. 1112250397Sobrien * method.c (emit_thunk): Replace broken generic code with code to 1112350397Sobrien generate a heavyweight thunk function. 1112418334Speter 1112550397SobrienTue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com> 1112618334Speter 1112750397Sobrien * pt.c (process_template_parm): pedwarn about floating-point parms. 1112818334Speter 1112950397Sobrien * decl.c (grokdeclarator): inline no longer implies static. 1113018334Speter 1113150397Sobrien * spew.c (yylex): Always return the TYPE_DECL if we got a scope. 1113218334Speter 1113350397SobrienMon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com> 1113418334Speter 1113550397Sobrien * class.c (check_for_override): The signature of an overriding 1113650397Sobrien function is not changed. 1113718334Speter 1113850397Sobrien * call.c (build_over_call): Move setting of conv into the loop. 1113950397Sobrien Note: this change, along with the related changes of the 18th thru 1114050397Sobrien the 20th of April, fix an infinite loop problem in conversions. 1114118334Speter 1114250397SobrienSun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1114318334Speter 1114450397Sobrien * call.c (build_user_type_conversion_1): Really ignore rvalue 1114550397Sobrien conversions when looking for a REFERENCE_TYPE. 1114618334Speter 1114750397Sobrien * cvt.c (build_up_reference): Eviscerate, use build_unary_op. 1114850397Sobrien * cp-tree.h (TREE_REFERENCE_EXPR): #if 0. 1114950397Sobrien * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR. 1115050397Sobrien (build_unary_op): Likewise. 1115150397Sobrien * call.c (build_over_call): See through a CONVERT_EXPR around the 1115250397Sobrien ADDR_EXPR for on a temporary. 1115350397Sobrien * typeck.c (c_expand_return): See through a CONVERT_EXPR around 1115450397Sobrien the ADDR_EXPR for a local variable. 1115518334Speter 1115650397SobrienFri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com> 1115718334Speter 1115850397Sobrien * call.c (build_user_type_conversion_1): If we're trying to 1115950397Sobrien convert to a REFERENCE_TYPE, only consider lvalue conversions. 1116050397Sobrien (build_new_function_call): Print candidates. 1116150397Sobrien (implicit_conversion): Try a temp binding if the lvalue conv is BAD. 1116250397Sobrien (reference_binding): Binding a temporary of a reference-related type 1116350397Sobrien is BAD. 1116418334Speter 1116550397SobrienThu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1116618334Speter 1116750397Sobrien * inc/typeinfo (type_info::before): Add cv-qualifier-seq. 1116850397Sobrien * tinfo2.cc (type_info::before): Likewise. 1116918334Speter 1117050397SobrienMon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com> 1117118334Speter 1117250397Sobrien * call.c (implicit_conversion): Oops. 1117318334Speter 1117450397SobrienFri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com> 1117518334Speter 1117650397Sobrien * call.c (implicit_conversion): Try to find a reference conversion 1117750397Sobrien before binding a const reference to a temporary. 1117818334Speter 1117950397SobrienWed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com> 1118018334Speter 1118150397Sobrien * exception.cc (__default_unexpected): Call terminate by default, 1118250397Sobrien so that if the user overrides terminate, the correct function will 1118350397Sobrien be called. 1118452284Sobrien 1118550397SobrienWed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com> 1118618334Speter 1118750397Sobrien * parse.y (left_curly): Avoid trying to use any fields of 1118850397Sobrien error_mark_node, as there aren't any. 1118918334Speter 1119050397SobrienThu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com> 1119118334Speter 1119250397Sobrien * lex.c (do_identifier): Avoid breaking on overloaded methods 1119350397Sobrien as default arguments. 1119418334Speter 1119550397SobrienWed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se> 1119618334Speter 1119750397Sobrien * call.c (add_template_candidate): Initialize the variable "dummy". 1119818334Speter 1119950397SobrienMon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com> 1120018334Speter 1120150397Sobrien * decl.c (start_decl): Make sure TYPE isn't an error_mark_node 1120250397Sobrien before we try to use TYPE_SIZE and TREE_CONSTANT on it. 1120318334Speter 1120450397SobrienFri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1120518334Speter 1120650397Sobrien * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl. 1120750397Sobrien (debug_binfo): Delete decl, not needed. 1120818334Speter 1120950397Sobrien * tree.c (fnaddr_from_vtable_entry, function_arg_chain, 1121050397Sobrien promotes_to_aggr_type): Delete fns. 1121150397Sobrien * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY, 1121250397Sobrien SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN, 1121350397Sobrien PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1. 1121418334Speter 1121550397Sobrien * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars. 1121618334Speter 1121750397Sobrien * friend.c (is_friend_type): Delete fn. 1121850397Sobrien * cp-tree.h (is_friend_type): Delete decl. 1121918334Speter 1122050397Sobrien * decl.c (original_result_rtx, double_ftype_double, 1122150397Sobrien double_ftype_double_double, int_ftype_int, long_ftype_long, 1122250397Sobrien float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static. 1122350397Sobrien * typeck.c (original_result_rtx, warn_synth): Delete extern decls. 1122418334Speter 1122550397Sobrien * decl.c (push_overloaded_decl{,_top_level}): Make static, adding 1122650397Sobrien fwd decls. 1122750397Sobrien * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls. 1122818334Speter 1122950397Sobrien * decl.c (pushdecl_nonclass_level): #if 0, unused. 1123050397Sobrien * cp-tree.h (pushdecl_nonclass_level): #if 0 decl. 1123118334Speter 1123250397Sobrien * lex.c (reinit_lang_specific): #if 0, unused. 1123350397Sobrien * cp-tree.h (reinit_lang_specific): #if 0 decl. 1123418334Speter 1123550397Sobrien * decl.c (revert_static_member_fn): Make static, adding fwd decl. 1123650397Sobrien * cp-tree.h (revert_static_member_fn): Delete decl. 1123718334Speter 1123850397Sobrien * class.c (root_lang_context_p): Delete fn. 1123950397Sobrien * cp-tree.h (root_lang_context_p): Delete decl. 1124018334Speter 1124150397Sobrien * decl.c (set_current_level_tags_transparency): #if 0, unused. 1124250397Sobrien * cp-tree.h (set_current_level_tags_transparency): #if 0 decl. 1124318334Speter 1124450397Sobrien * lex.c (set_vardecl_interface_info): Make static. 1124550397Sobrien * cp-tree.h (set_vardecl_interface_info): Delete decl. 1124618334Speter 1124750397Sobrien * call.c (find_scoped_type): Make static. 1124850397Sobrien * cp-tree.h (find_scoped_type): Delete decl. 1124918334Speter 1125050397Sobrien * search.c (convert_pointer_to_vbase): Make static. 1125150397Sobrien * cp-tree.h (convert_pointer_to_vbase): Delete decl. 1125218334Speter 1125350397Sobrien * decl.c (const_ptr_type_node): Likewise. 1125450397Sobrien * cp-tree.h (const_ptr_type_node): Delete decl. 1125518334Speter 1125650397Sobrien * typeck.c (common_base_type): Make static. 1125750397Sobrien * cp-tree.h (common_base_types): Delete erroneous decl. 1125818334Speter 1125950397Sobrien * pt.c (classtype_mangled_name): Make static. 1126050397Sobrien * cp-tree.h (classtype_mangled_name): Delete decl. 1126118334Speter 1126250397Sobrien * lex.c (check_newline): Make static. 1126350397Sobrien * cp-tree.h (check_newline): Delete decl. 1126418334Speter 1126550397Sobrien * typeck.c (build_x_array_ref): Delete fn, same idea as 1126650397Sobrien grok_array_decl. 1126750397Sobrien * cp-tree.h (build_x_array_ref): Delete decl. 1126818334Speter 1126950397Sobrien * lex.c (copy_decl_lang_specific): Delete fn, same idea as 1127050397Sobrien copy_lang_decl. 1127150397Sobrien * cp-tree.h (copy_decl_lang_specific): #if 0 decl. 1127218334Speter 1127350397Sobrien * class.c (build_vtable_entry): Make static. 1127450397Sobrien * cp-tree.h (build_vtable_entry): Delete decl. 1127518334Speter 1127650397Sobrien * class.c (build_vbase_pointer): Make static. 1127750397Sobrien * cp-tree.h (build_vbase_pointer): Delete decl. 1127818334Speter 1127950397Sobrien * sig.c (build_sptr_ref): Add forward decl and make static. 1128050397Sobrien * cp-tree.h (build_sptr_ref): Delete decl. 1128118334Speter 1128250397Sobrien * call.c (build_new_method_call): Add forward decl and make static. 1128350397Sobrien * cp-tree.h (build_new_method_call): Delete decl. 1128418334Speter 1128550397Sobrien * call.c (build_object_call): Make static. 1128650397Sobrien * class.c (check_for_override, complete_type_p, mark_overriders): 1128750397Sobrien Likewise. 1128850397Sobrien * decl.c (cp_function_chain): Likewise. 1128950397Sobrien * lex.c (set_typedecl_interface_info, reinit_parse_for_block): 1129050397Sobrien Likewise. 1129150397Sobrien * pt.c (comp_template_args, get_class_bindings, push_tinst_level): 1129250397Sobrien Likewise. 1129350397Sobrien * tree.c (build_cplus_array_type_1): Likewise. 1129450397Sobrien * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise. 1129550397Sobrien (comp_target_parms): Likewise. 1129618334Speter 1129750397Sobrien * init.c (build_builtin_call): Make static. 1129850397Sobrien * cp-tree.h (build_builtin_call): Delete decl. 1129918334Speter 1130050397Sobrien * typeck.c (binary_op_error): Delete decl. 1130150397Sobrien * cp-tree.h (binary_op_error): Likewise. 1130218334Speter 1130350397SobrienThu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1130418334Speter 1130550397Sobrien * call.c (build_method_call): Compare against error_mark_node 1130650397Sobrien directly, rather than the ERROR_MARK tree code. 1130750397Sobrien * cvt.c (cp_convert): Likewise. 1130850397Sobrien * decl.c (print_binding_level): Likewise. 1130950397Sobrien (duplicate_decls): Likewise. 1131050397Sobrien (grokdeclarator): Likewise. 1131150397Sobrien (grokdeclarator): Likewise. 1131250397Sobrien * init.c (expand_aggr_init_1): Likewise. 1131350397Sobrien (decl_constant_value): Likewise. 1131450397Sobrien * method.c (build_opfncall): Likewise. 1131550397Sobrien (hack_identifier): Likewise. 1131650397Sobrien * typeck.c (build_modify_expr): Likewise. 1131718334Speter 1131850397Sobrien * typeck.c (build_c_cast): Don't decl TYPE as register tree. 1131918334Speter 1132050397SobrienSun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 1132118334Speter 1132250397Sobrien * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values. 1132318334Speter 1132450397Sobrien * pt.c (coerce_template_parms): Add new error message. 1132518334Speter 1132650397Sobrien * method.c (build_overload_value): Implement name mangling for 1132750397Sobrien floating-point template arguments. 1132818334Speter 1132950397Sobrien * method.c (build_overload_int, icat, dicat): Fix mangling of template 1133050397Sobrien arguments whose absolute value doesn't fit in a signed word. 1133118334Speter 1133250397SobrienMon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1133318334Speter 1133450397Sobrien * friend.c: New file; put all of the friend stuff in here. 1133550397Sobrien * init.c: Instead of here. 1133650397Sobrien * Makefile.in (CXX_OBJS): Add friend.o. 1133750397Sobrien (friend.o): Add dependencies. 1133850397Sobrien * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c. 1133918334Speter 1134050397SobrienSun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com> 1134118334Speter 1134250397Sobrien * call.c (build_scoped_method_call): Complain if the scope isn't a 1134350397Sobrien base. 1134418334Speter 1134550397SobrienWed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com> 1134618334Speter 1134750397Sobrien * parse.y (left_curly): Don't crash on erroneous type. 1134818334Speter 1134950397Sobrien * init.c (build_delete): Fix type of ref. 1135018334Speter 1135150397SobrienTue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com> 1135218334Speter 1135350397Sobrien * search.c (get_vbase_1): Renamed from get_vbase. 1135450397Sobrien (get_vbase): Wrapper, now non-static. 1135550397Sobrien (convert_pointer_to_vbase): Now static. 1135618334Speter 1135750397Sobrien * call.c (build_scoped_method_call): Accept a binfo for BASETYPE. 1135850397Sobrien * init.c (build_delete): Pass one. 1135950397Sobrien (build_partial_cleanup_for): Use build_scoped_method_call. 1136050397Sobrien * decl.c (finish_function): Pass a binfo. 1136118334Speter 1136250397SobrienMon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1136318334Speter 1136450397Sobrien * call.c (build_over_call): Only synthesize non-trivial copy ctors. 1136518334Speter 1136650397Sobrien * typeck.c (build_c_cast): Lose other reference to flag. 1136718334Speter 1136850397Sobrien * call.c (build_field_call): Don't look for [cd]tor_identifier. 1136950397Sobrien * decl2.c (delete_sanity): Remove meaningless use of 1137050397Sobrien LOOKUP_HAS_IN_CHARGE. 1137150397Sobrien * decl.c (finish_function): Use build_scoped_method_call instead 1137250397Sobrien of build_delete for running vbase dtors. 1137350397Sobrien * init.c (build_delete): Call overload resolution code instead of 1137450397Sobrien duplicating it badly. 1137518334Speter 1137650397SobrienThu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com> 1137718334Speter 1137850397Sobrien * call.c (build_over_call): Call mark_used before trying to elide 1137950397Sobrien the call. 1138018334Speter 1138150397Sobrien * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL. 1138218334Speter 1138350397SobrienWed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1138418334Speter 1138550397Sobrien * typeck.c (build_modify_expr): Always pedwarn for a cast to 1138650397Sobrien non-reference used as an lvalue. 1138718334Speter 1138850397SobrienWed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com> 1138918334Speter 1139050397Sobrien * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly. 1139118334Speter 1139250397SobrienTue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1139318334Speter 1139450397Sobrien * parse.y (handler): Fix template typo. 1139518334Speter 1139650397SobrienSun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1139718334Speter 1139850397Sobrien * error.c (lang_decl_name): New fn. 1139950397Sobrien * tree.c (lang_printable_name): Use it. 1140018334Speter 1140150397SobrienFri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com> 1140218334Speter 1140350397Sobrien * g++spec.c: Include config.h so that we can catch bzero #defines 1140450397Sobrien from the config file. 1140518334Speter 1140650397SobrienTue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com> 1140718334Speter 1140850397Sobrien * new1.cc: Include a declaration for malloc, to avoid warning, and 1140950397Sobrien avoid lossing on systems that require one (ones that define malloc 1141050397Sobrien in xm.h). 1141118334Speter 1141252284SobrienMon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 1141318334Speter 1141450397Sobrien * decl2.c (max_tinst_depth): New variable. 1141550397Sobrien (lang_decode_option): Parse "-ftemplate-depth-NN" command line 1141650397Sobrien option. 1141750397Sobrien * pt.c (max_tinst_depth): Variable moved. 1141850397Sobrien * lang-options.h: Declare "-ftemplate-depth-NN" command line option 1141950397Sobrien as legal. 1142018334Speter 1142150397SobrienFri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com> 1142218334Speter 1142350397Sobrien * decl.c (xref_basetypes): Allow a base class that depends on 1142450397Sobrien template parms to be incomplete. 1142518334Speter 1142650397Sobrien * decl2.c (build_expr_from_tree): Support typeid(type). 1142750397Sobrien * rtti.c (get_typeid): Support templates. 1142850397Sobrien (expand_si_desc, expand_class_desc): Fix string length. 1142950397Sobrien (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise. 1143018334Speter 1143150397SobrienTue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com> 1143218334Speter 1143350397Sobrien * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal. 1143418334Speter 1143550397Sobrien * pt.c (tsubst): Put it back for -fno-ansi-overloading. 1143618334Speter 1143750397SobrienMon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1143818334Speter 1143950397Sobrien * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that 1144050397Sobrien smashes together template and non-template decls of the same 1144150397Sobrien signature. 1144218334Speter 1144350397SobrienThu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com> 1144418334Speter 1144550397Sobrien * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE. 1144618334Speter 1144750397SobrienWed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1144818334Speter 1144950397Sobrien * decl.c (duplicate_decls): Next route, pedwarn about different 1145050397Sobrien exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER. 1145118334Speter 1145250397SobrienTue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1145318334Speter 1145450397Sobrien * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro. 1145550397Sobrien (struct lang_type): Delete has_default_implementation member. 1145650397Sobrien Increase dummy to 21. 1145750397Sobrien * decl.c (start_method): Delete usage. 1145818334Speter 1145950397Sobrien * cp-tree.h (build_call, null_ptr_cst_p, in_function_p, 1146050397Sobrien store_after_parms, start_decl_1, auto_function): Add decls. 1146150397Sobrien (get_arglist_len_in_bytes, declare_implicit_exception, 1146250397Sobrien have_exceptions_p, make_type_decl, typedecl_for_tag, 1146350397Sobrien store_in_parms, pop_implicit_try_blocks, push_exception_cleanup, 1146450397Sobrien build_component_type_expr, cplus_exception_name, 1146550397Sobrien {make,clear}_anon_parm_name, dont_see_typename): Removed decls. 1146650397Sobrien * call.c (build_this): Make static. 1146750397Sobrien (is_complete): Likewise. 1146850397Sobrien (implicit_conversion): Likewise. 1146950397Sobrien (reference_binding): Likewise. 1147050397Sobrien (standard_conversion): Likewise. 1147150397Sobrien (strip_top_quals): Likewise. 1147250397Sobrien (non_reference): Likewise. 1147350397Sobrien (build_conv): Likewise. 1147450397Sobrien (user_harshness): Likewise. 1147550397Sobrien (rank_for_ideal): Likewise. 1147650397Sobrien * decl.c (start_decl_1): Delete forward decl. 1147750397Sobrien (push_decl_level): Make static. 1147850397Sobrien (resume_binding_level): Make static. 1147950397Sobrien (namespace_bindings_p): Make static. 1148050397Sobrien (declare_namespace_level): Make static. 1148150397Sobrien (lookup_name_real): Make static. 1148250397Sobrien (duplicate_decls): Make static. Take register off NEWDECL and 1148350397Sobrien OLDDECL parm decls. 1148450397Sobrien * decl2.c (get_sentry): Make static. 1148550397Sobrien (temp_name_p): Delete fn. 1148650397Sobrien * except.c (auto_function): Delete decl. 1148750397Sobrien * lex.c (handle_{cp,sysv}_pragma): Make static. 1148850397Sobrien (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl. 1148950397Sobrien * method.c (do_build_{copy_constructor,assign_ref}): Make static. 1149050397Sobrien * pt.c (tsubst_expr_values): Make static. 1149150397Sobrien * rtti.c (combine_strings): Delete decl. 1149218334Speter 1149350397SobrienTue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1149418334Speter 1149550397Sobrien * pt.c (push_template_decl): Handle getting a typedef. 1149618334Speter 1149750397Sobrien * call.c (build_new_function_call): Complain about void arg. 1149818334Speter 1149950397SobrienTue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1150018334Speter 1150150397Sobrien * decl.c (duplicate_decls): Give pedwarn of different exceptions 1150250397Sobrien if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER. 1150318334Speter 1150450397SobrienMon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com> 1150518334Speter 1150650397Sobrien * except.c (expand_throw): Don't expand the cleanup tree here, 1150750397Sobrien since we are not going to write the rtl out. Fixes problem with 1150850397Sobrien -g -O on SPARC. 1150918334Speter 1151050397SobrienMon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com> 1151118334Speter 1151250397Sobrien * Make-lang.in: Add $(exeext) as necessary. 1151318334Speter 1151450397SobrienMon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com> 1151518334Speter 1151650397Sobrien * parse.y (handler_seq): Must have at least one catch clause. 1151718334Speter 1151850397SobrienSat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1151918334Speter 1152050397Sobrien * call.c (add_builtin_candidate): Restore ?: hack. 1152118334Speter 1152250397Sobrien * decl.c (grok_op_properties): More warnings. 1152318334Speter 1152450397SobrienSat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1152518334Speter 1152650397Sobrien * decl.c (duplicate_decls): On second thought, do it as a pedwarn 1152750397Sobrien still but only if !DECL_IN_SYSTEM_HEADER (olddecl). 1152818334Speter 1152950397Sobrien * decl.c (duplicate_decls): Scale back to a warning, and only do 1153050397Sobrien 'em if -pedantic. 1153118334Speter 1153250397SobrienFri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com> 1153318334Speter 1153450397Sobrien * decl.c (duplicate_decls): pedwarn mismatched exception 1153550397Sobrien specifications. 1153618334Speter 1153750397SobrienThu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com> 1153818334Speter 1153950397Sobrien * call.c (build_new_method_call): Don't display the invisible 1154050397Sobrien argument for controlling virtual bases. 1154118334Speter 1154250397SobrienThu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com> 1154318334Speter 1154450397Sobrien * new: Add nothrow new and delete, bad_alloc and throw specifications 1154550397Sobrien for delete. 1154650397Sobrien * decl.c (init_decl_processing): Add throw specification for delete. 1154750397Sobrien * new.cc (nothrow): Define. 1154850397Sobrien * lex.c (real_yylex): Removing warning that throw and friends are 1154950397Sobrien keywords. 1155050397Sobrien * new1.cc (operator new (size_t sz, const nothrow_t&)): Define. 1155150397Sobrien * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define. 1155250397Sobrien * Make-lang.in: Add new{1,2}.{cc,o}. 1155318334Speter 1155450397SobrienThu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com> 1155518334Speter 1155650397Sobrien * lex.c (cons_up_default_function): Fix return type of synth op=. 1155718334Speter 1155850397Sobrien * init.c (emit_base_init): Add warnings for uninitialized members 1155950397Sobrien and bases. 1156018334Speter 1156150397Sobrien * decl.c (xref_basetypes): Add warning for non-polymorphic type 1156250397Sobrien with destructor used as base type. 1156318334Speter 1156450397Sobrien * decl.c (grok_op_properties): Add warning for op= returning void. 1156550397Sobrien * typeck.c (c_expand_return): Add warning for op= returning anything 1156650397Sobrien other than *this. 1156718334Speter 1156850397Sobrien * class.c (finish_struct_1): Add warning for class with pointers 1156950397Sobrien but not copy ctor or copy op=. 1157018334Speter 1157150397Sobrien * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro. 1157250397Sobrien * pt.c (add_pending_template): Use it instead of LANG_FLAG_0. 1157350397Sobrien (instantiate_template): If -fexternal-templates, add this 1157450397Sobrien instantiation to pending_templates. 1157518334Speter 1157650397Sobrien * decl2.c (copy_assignment_arg_p): Disable old hack to support 1157750397Sobrien Booch components. 1157818334Speter 1157950397SobrienTue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com> 1158018334Speter 1158152284Sobrien * cvt.c (cp_convert): pedwarn enum to pointer conversions. 1158218334Speter 1158350397SobrienMon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com> 1158418334Speter 1158550397Sobrien * call.c (standard_conversion): Handle getting references. Tack 1158650397Sobrien on RVALUE_CONV here. Do it for non-class types, too. 1158750397Sobrien (reference_binding): Pass references to standard_conversion. 1158850397Sobrien (implicit_conversion): Likewise. 1158950397Sobrien (add_builtin_candidate): Disable one ?: kludge. 1159050397Sobrien (convert_like): Handle RVALUE_CONVs for non-class types. 1159150397Sobrien (joust): Disable the other ?: kludge. 1159218334Speter 1159350397SobrienMon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1159418334Speter 1159550397Sobrien * decl.c (init_decl_processing): Add code to build up common 1159650397Sobrien function types beforehand, to avoid creation then removal of 1159750397Sobrien things already in the hash table. 1159818334Speter 1159950397SobrienMon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com> 1160018334Speter 1160150397Sobrien * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for 1160250397Sobrien the arguments. 1160318334Speter 1160450397Sobrien * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require 1160550397Sobrien current_template_parms. 1160618334Speter 1160750397SobrienFri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com> 1160818334Speter 1160950397Sobrien * search.c (lookup_field): Don't return a function, check want_type. 1161018334Speter 1161150397SobrienThu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1161218334Speter 1161350397Sobrien * init.c (build_new): Make sure PLACEMENT has a type. 1161418334Speter 1161550397SobrienThu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1161618334Speter 1161750397Sobrien * init.c (build_new): Support new (nothrow). 1161818334Speter 1161950397SobrienWed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com> 1162018334Speter 1162150397Sobrien * pt.c (instantiate_decl): Also do push_to_top_level before setting 1162250397Sobrien up DECL_INITIAL. 1162318334Speter 1162450397Sobrien * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro. 1162550397Sobrien * pt.c (tsubst): Defer instantiation of default args. 1162650397Sobrien * call.c (build_over_call): Until here. 1162718334Speter 1162850397SobrienWed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1162918334Speter 1163050397Sobrien * search.c (lookup_field): Make sure we have an 1163150397Sobrien IDENTIFIER_CLASS_VALUE before we try to return it. 1163218334Speter 1163350397SobrienThu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1163418334Speter 1163550397Sobrien * call.c (build_method_call): Delete unused var PARM. 1163650397Sobrien (build_overload_call_real): Likewise. 1163750397Sobrien (build_object_call): Delete unused var P. 1163850397Sobrien (build_new_op): Likewise. 1163950397Sobrien * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static 1164050397Sobrien var definitions, which are never used. 1164150397Sobrien (shadow_tag): Delete unused var FN. 1164250397Sobrien * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET. 1164350397Sobrien * init.c (build_new): Delete unused var ALLOC_TEMP. 1164450397Sobrien * method.c (hack_identifier): Delete unused var CONTEXT. 1164550397Sobrien (do_build_copy_constructor): Delete unused var NAME. 1164650397Sobrien (synthesize_method): Delete unused var BASE. 1164750397Sobrien * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE. 1164850397Sobrien * rtti.c (build_headof): Delete unused var VPTR. 1164950397Sobrien (get_typeid): Delete unused var T. 1165050397Sobrien * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1 1165150397Sobrien and ORIG_OP2. 1165250397Sobrien (build_ptrmemfunc): Delete unused vars U and NINDEX. 1165350397Sobrien * typeck2.c (build_functional_cast): Delete unused var BINFO. 1165418334Speter 1165550397SobrienWed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com> 1165618334Speter 1165750397Sobrien * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up 1165850397Sobrien things in a type being defined. 1165950397Sobrien * decl.c (finish_enum): Reverse the values so that they are in 1166050397Sobrien the correct order. 1166118334Speter 1166250397Sobrien * pt.c (instantiate_class_template): Don't initialize 1166350397Sobrien BINFO_BASETYPES until the vector is filled out. 1166450397Sobrien (unify): Don't abort on conflicting bindings, just fail. 1166550397Sobrien (instantiate_decl): Do push_tinst_level before any tsubsting. 1166618334Speter 1166750397Sobrien * method.c (build_overload_value): Handle getting a 1166850397Sobrien TEMPLATE_CONST_PARM for a pointer. 1166918334Speter 1167050397SobrienTue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com> 1167118334Speter 1167250397Sobrien * init.c (expand_member_init): Don't give 'not a base' error for 1167350397Sobrien templates. 1167418334Speter 1167550397Sobrien * pt.c (instantiate_decl): Call import_export_decl later. 1167618334Speter 1167750397Sobrien * pt.c (instantiate_class_template): Return a value. 1167818334Speter 1167950397Sobrien * parse.y (extension): New rule for __extension__. 1168050397Sobrien (extdef, unary_expr, decl, component_decl): Use it. 1168118334Speter 1168250397SobrienTue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com> 1168318334Speter 1168450397Sobrien * class.c (base_binfo): Remove unused base_has_virtual member. 1168550397Sobrien (finish_base_struct): Likewise. 1168650397Sobrien (finish_struct_1): Likewise. 1168718334Speter 1168850397SobrienTue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com> 1168918334Speter 1169050397Sobrien * search.c (expand_upcast_fixups): Fix bogus code generation 1169150397Sobrien problem where the generated code uses the wrong index into the 1169250397Sobrien runtime built vtable on the stack. Old code could clobber random 1169350397Sobrien stack values. 1169418334Speter 1169550397SobrienTue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com> 1169618334Speter 1169750397Sobrien * init.c (perform_member_init): Make sure the partial EH cleanups 1169850397Sobrien live on the function_obstack. 1169918334Speter 1170050397SobrienFri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com> 1170118334Speter 1170250397Sobrien * Make-lang.in (g++spec.o): Don't use $< with an explicit target; 1170350397Sobrien this isn't portable to some versions of `make' (e.g. Solaris 2.5.1). 1170418334Speter 1170552284SobrienTue Dec 24 10:24:03 1996 Jeffrey A Law <law@cygnus.com> 1170618334Speter 1170750397Sobrien * decl.c (grokvardecl): Avoid ANSI style initialization. 1170818334Speter 1170950397SobrienSun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com> 1171018334Speter 1171150397Sobrien * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE. 1171218334Speter 1171350397SobrienFri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com> 1171418334Speter 1171550397Sobrien * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties. 1171618334Speter 1171750397SobrienFri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1171818334Speter 1171950397Sobrien * g++spec.c (lang_specific_driver): Put missing hyphen in front of 1172050397Sobrien arguments we compare against. Start the count of I at 1, not 0, 1172150397Sobrien since argv[0] is still the command. 1172218334Speter 1172350397SobrienThu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com> 1172418334Speter 1172550397Sobrien * lang-specs.h: Accept .cp as an C++ extension. 1172618334Speter 1172750397SobrienMon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1172818334Speter 1172950397Sobrien * cp-tree.h (ptr_reasonably_similar): Add decl. 1173018334Speter 1173150397SobrienThu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1173218334Speter 1173350397Sobrien * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN 1173450397Sobrien pointer. New local SPECBITS with the parm's value. 1173550397Sobrien (grokdeclarator): Pass &specbits down. 1173618334Speter 1173750397Sobrien * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node 1173850397Sobrien before we try to do C_SET_EXP_ORIGINAL_CODE on it. 1173918334Speter 1174050397Sobrien * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of 1174150397Sobrien CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM. 1174218334Speter 1174350397Sobrien * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is 1174450397Sobrien not an error_mark_node. 1174518334Speter 1174650397SobrienSat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1174718334Speter 1174850397Sobrien * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL. 1174950397Sobrien * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate. 1175052284Sobrien 1175150397SobrienFri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1175218334Speter 1175350397Sobrien * decl.c (grokdeclarator): When giving an anonymous struct a name, 1175450397Sobrien replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is 1175550397Sobrien not affected). 1175618334Speter 1175750397Sobrien * typeck2.c (build_m_component_ref): If component is a pointer 1175850397Sobrien to data member, resolve the OFFSET_REF now. 1175918334Speter 1176050397Sobrien * call.c (convert_like): Don't go into infinite recursion. 1176118334Speter 1176250397Sobrien * pt.c (coerce_template_parms): Use tsubst_expr for non-type args. 1176318334Speter 1176450397Sobrien * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr. 1176550397Sobrien * tree.c (layout_basetypes): And on the vbase ptr. 1176618334Speter 1176750397SobrienThu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1176818334Speter 1176950397Sobrien * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or 1177050397Sobrien CHAR_TYPE_SIZE so bool is always the same size as another type. 1177118334Speter 1177250397Sobrien * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too. 1177318334Speter 1177450397SobrienTue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com> 1177518334Speter 1177650397Sobrien * decl2.c (grok_x_components): Remove synthesized methods from 1177750397Sobrien TYPE_METHODS of an anonymous union, complain about member 1177850397Sobrien functions. 1177950397Sobrien * decl.c (shadow_tag): Wipe out memory of synthesized methods in 1178050397Sobrien anonymous unions. 1178150397Sobrien (finish_function): Just clear the DECL_RTL of our arguments. 1178250397Sobrien 1178350397SobrienFri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1178450397Sobrien 1178550397Sobrien * decl2.c (finish_file): Emit DWARF debugging info for static data 1178618334Speter members. 1178718334Speter 1178850397Sobrien * pt.c (tsubst): If t is a stub decl, return the stub decl for type. 1178918334Speter 1179050397SobrienWed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com> 1179118334Speter 1179250397Sobrien * typeck.c (build_component_ref): Don't die if COMPONENT isn't a 1179350397Sobrien IDENTIFIER_NODE. 1179418334Speter 1179550397SobrienWed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1179618334Speter 1179750397Sobrien * Make-lang.in (g++-cross$(exeext)): Fix typo. 1179818334Speter 1179950397SobrienWed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1180018334Speter 1180150397Sobrien Make the g++ driver now be a standalone program, rather than one 1180250397Sobrien that tries to run the gcc driver after munging up the options. 1180350397Sobrien * Make-lang.in (g++.c, g++spec.o): New rules. 1180450397Sobrien (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER 1180550397Sobrien added. 1180650397Sobrien (g++$(exeext)): New rule, based on xgcc rule. 1180750397Sobrien (g++-cross$(exeext)): Now just copies g++$(exeext) over. 1180850397Sobrien * g++spec.c: New file. 1180950397Sobrien * g++.c: Removed file. 1181018334Speter 1181150397SobrienTue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com> 1181218334Speter 1181350397Sobrien * cvt.c (build_up_reference): Arrange for any temporary values 1181450397Sobrien that have been keep in registers until now to be put into memory. 1181518334Speter 1181650397SobrienMon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1181718334Speter 1181850397Sobrien * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so 1181950397Sobrien that make -j3 bootstrap works better. 1182018334Speter 1182150397SobrienSun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com> 1182218334Speter 1182350397Sobrien * decl.c (pushtag): Do pushdecl for anon tags. 1182418334Speter 1182550397SobrienThu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com> 1182618334Speter 1182750397Sobrien * typeck.c (c_expand_return): Fix logic. 1182850397Sobrien (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR. 1182918334Speter 1183050397SobrienWed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com> 1183118334Speter 1183250397Sobrien * g++.c (main): Make sure arglist has a final NULL entry. Add 1183350397Sobrien PEXECUTE_LAST to the flags passed to pexecute, as otherwise 1183450397Sobrien stdin/stdout of the invoked program are redirected to 1183550397Sobrien nowheresville. 1183618334Speter 1183750397SobrienTue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1183818334Speter 1183950397Sobrien * decl.c (implicitly_declare): Set DECL_ARTIFICIAL. 1184018334Speter 1184150397SobrienTue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com> 1184218334Speter 1184350397Sobrien * init.c (resolve_offset_ref): Handle obj.vfn better. 1184450397Sobrien * typeck.c (build_component_ref): Set TREE_TYPE on result from 1184550397Sobrien build_vfn_ref. 1184618334Speter 1184750397SobrienTue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com> 1184818334Speter 1184950397Sobrien * typeck.c (convert_for_assignment): Also handle anachronistic 1185050397Sobrien implicit conversions from (::*)() to cv void*. 1185150397Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 1185218334Speter 1185350397SobrienMon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com> 1185418334Speter 1185550397Sobrien * lex.c (handle_cp_pragma): Fix bogus warning. 1185618334Speter 1185750397SobrienMon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com> 1185818334Speter 1185950397Sobrien * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE 1186050397Sobrien (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P. 1186118334Speter 1186250397SobrienThu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1186318334Speter 1186450397Sobrien * class.c (finish_struct_1): Support DWARF2_DEBUG. 1186550397Sobrien * search.c (dfs_debug_mark): Likewise. 1186650397Sobrien * decl2.c (finish_vtable_vardecl): Likewise. 1186750397Sobrien * decl.c (pushtag, finish_enum): Likewise. 1186850397Sobrien * lex.c (check_newline): Use debug_* instead of calling *out 1186950397Sobrien functions directly. 1187018334Speter 1187150397SobrienThu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1187218334Speter 1187350397Sobrien * Make-lang.in (cplib2.ready): Add else clause to avoid problems 1187450397Sobrien on some picky hosts. 1187518334Speter 1187650397SobrienWed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1187718334Speter 1187850397Sobrien * class.c (finish_struct_1): A class has a non-trivial copy 1187950397Sobrien constructor if it has virtual functions. 1188018334Speter 1188150397Sobrien * cvt.c (cp_convert): Always call a constructor. 1188218334Speter 1188350397Sobrien * call.c (reference_binding): Still tack on a REF_BIND 1188450397Sobrien for bad conversions. 1188550397Sobrien (build_user_type_conversion_1): Propagate ICS_BAD_FLAG. 1188618334Speter 1188750397Sobrien * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING. 1188850397Sobrien (c_expand_return): Likewise. 1188950397Sobrien * typeck2.c (digest_init): Likewise for { }. 1189050397Sobrien * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling. 1189150397Sobrien * cvt.c (cp_convert): Handle failure better. 1189218334Speter 1189350397SobrienWed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1189418334Speter 1189550397Sobrien * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation 1189652284Sobrien of GCC be path-relative. 1189718334Speter 1189850397SobrienWed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1189918334Speter 1190050397Sobrien * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but 1190150397Sobrien it does need choose-temp.o and pexecute.o. 1190218334Speter 1190350397SobrienWed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1190418334Speter 1190550397Sobrien * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time 1190650397Sobrien that we still use it. 1190750397Sobrien (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros. 1190818334Speter 1190950397SobrienWed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com> 1191018334Speter 1191152284Sobrien * init.c (expand_default_init): Avoid calling constructors to 1191250397Sobrien initialize reference temps. 1191318334Speter 1191450397Sobrien * cvt.c (convert_to_reference): Fix. 1191518334Speter 1191650397SobrienTue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1191718334Speter 1191850397Sobrien * cvt.c (cp_convert): Simplify for flag_ansi_overloading. 1191950397Sobrien (convert_to_reference): Likewise. 1192050397Sobrien * typeck.c (convert_for_initialization): Likewise. 1192150397Sobrien * init.c (expand_default_init): Likewise. 1192250397Sobrien (expand_aggr_init_1): Likewise. 1192350397Sobrien * cp-tree.h (CONV_NONCONVERTING): Lose. 1192450397Sobrien * typeck.c (build_c_cast): Lose allow_nonconverting parm. 1192550397Sobrien * *.c: Adjust. 1192650397Sobrien * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING. 1192718334Speter 1192850397SobrienTue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com> 1192918334Speter 1193050397Sobrien * pt.c (tsubst_expr): Reverse args to expand_start_catch_block. 1193118334Speter 1193250397SobrienTue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1193318334Speter 1193450397Sobrien * init.c (expand_aggr_init_1): Don't crash on non-constructor 1193550397Sobrien TARGET_EXPR. 1193618334Speter 1193750397SobrienTue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1193818334Speter 1193950397Sobrien * g++.c: Include gansidecl.h. 1194050397Sobrien (VPROTO, PVPROTO, VA_START): Delete. 1194150397Sobrien (choose_temp_base_try, choose_temp_base, perror_exec, 1194250397Sobrien run_dos) [__MSDOS__]: Delete fns. 1194350397Sobrien (pfatal_with_name): Delete fn. 1194450397Sobrien (temp_filename): Declare like in gcc.c. 1194550397Sobrien (pexecute, pwait, choose_temp_base): Declare from gcc.c. 1194650397Sobrien (error_count, signal_count): Define. 1194750397Sobrien (error): Delete both definitions. 1194850397Sobrien (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c. 1194950397Sobrien (pfatal_pexecute): Add fn from gcc.c. 1195050397Sobrien (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the 1195150397Sobrien code to use the pexecute stuff also used by gcc.c. 1195250397Sobrien (MIN_FATAL_STATUS): Define. 1195350397Sobrien * Make-lang.in (g++): Add dependency on and linking with 1195450397Sobrien choose-temp.o and pexecute.o. 1195518334Speter 1195650397Sobrien * cp-tree.h: Include gansidecl.h. 1195750397Sobrien (STDIO_PROTO): Delete #undef/#define. 1195850397Sobrien * cvt.c (NULL): Delete #undef/#define. 1195950397Sobrien * expr.c (NULL): Likewise. 1196050397Sobrien * init.c (NULL): Likewise. 1196150397Sobrien * rtti.c (NULL): Likewise. 1196250397Sobrien * xref.c (NULL): Likewise. 1196318334Speter 1196450397Sobrien * cp-tree.h (build_user_type_conversion): Add prototype. 1196550397Sobrien * call.c (build_user_type_conversion): Delete prototype. Correct 1196650397Sobrien decl of FLAGS arg to be an int. 1196750397Sobrien * cvt.c (build_user_type_conversion): Likewise. 1196818334Speter 1196950397SobrienTue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com> 1197018334Speter 1197150397Sobrien * cp-tree.def: Add TRY_BLOCK and HANDLER. 1197250397Sobrien * except.c (expand_start_catch_block): Support templates. 1197350397Sobrien * parse.y (try_block, handler_seq): Likewise. 1197450397Sobrien * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER. 1197518334Speter 1197650397SobrienMon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com> 1197718334Speter 1197850397Sobrien * pt.c (current_template_args): New fn. 1197950397Sobrien (push_template_decl): Use it. 1198050397Sobrien * decl.c (grokdeclarator): Use it. 1198118334Speter 1198250397Sobrien * decl2.c (build_expr_from_tree): Dereference ref vars. 1198318334Speter 1198450397Sobrien * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in 1198550397Sobrien the decl-specifier-seq. 1198618334Speter 1198750397Sobrien * decl.c (grok_op_properties): Don't force the type of a conversion 1198850397Sobrien op to be complete. Don't warn about converting to the same type 1198950397Sobrien for template instantiations. 1199018334Speter 1199150397Sobrien * decl2.c (finish_file): Don't call instantiate_decl on synthesized 1199250397Sobrien methods. 1199318334Speter 1199450397SobrienMon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com> 1199518334Speter 1199650397Sobrien * typeck.c (get_delta_difference): Remove previous bogusness. 1199750397Sobrien Don't give errors if force is set. 1199818334Speter 1199950397SobrienFri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1200018334Speter 1200150397Sobrien * decl2.c (finish_file): Don't emit debug info. 1200250397Sobrien * decl.c (pushdecl): Lose obsolete code. 1200350397Sobrien (grokdeclarator): Still do the long long thing after complaining. 1200452284Sobrien * search.c (note_debug_info_needed): Don't do anything if we're in a 1200550397Sobrien template. 1200650397Sobrien * method.c (synthesize_method): For non-local classes, 1200750397Sobrien push_to_top_level first. 1200818334Speter 1200950397SobrienFri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com> 1201018334Speter 1201150397Sobrien * typeck.c (get_delta_difference): Add no_error parameter. 1201250397Sobrien (build_ptrmemfunc): Call get_delta_difference with no_error set; 1201350397Sobrien we don't want error messages when converting unrelated 1201450397Sobrien pointer-to-member functions. 1201518334Speter 1201650397SobrienThu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com> 1201718334Speter 1201850397Sobrien * error.c (dump_expr): Improve the wording on error messages that 1201950397Sobrien involve pointer to member functions. 1202018334Speter 1202150397SobrienTue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com> 1202218334Speter 1202350397Sobrien * cvt.c (cp_convert_to_pointer): Move code for conversions from 1202450397Sobrien (::*)() to void* or (*)() up a bit, so that we can convert from 1202550397Sobrien METHOD_TYPEs as well. 1202618334Speter 1202750397SobrienTue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1202818334Speter 1202950397Sobrien * rtti.c (get_tinfo_fn): Make sure 'type' is permanent. 1203050397Sobrien There are no 'member' types. 1203150397Sobrien (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn. 1203250397Sobrien (build_x_typeid): Handle errors. 1203318334Speter 1203450397SobrienMon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com> 1203518334Speter 1203650397Sobrien * typeck.c (convert_for_assignment): Handle anachronistic implicit 1203750397Sobrien conversions from (::*)() to void* or (*)(). 1203850397Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 1203950397Sobrien (cp_convert_to_pointer_force): Remove cp_convert_to_pointer 1204050397Sobrien conversions from here. 1204150397Sobrien * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions. 1204250397Sobrien * lang-options.h: Likewise. 1204350397Sobrien * decl2.c (warn_pmf2ptr): Define. 1204450397Sobrien * cp-tree.h: Declare it. 1204550397Sobrien * typeck2.c (digest_init): Allow pmfs down into 1204650397Sobrien convert_for_initialization. 1204718334Speter 1204850397SobrienSun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com> 1204918334Speter 1205050397Sobrien * typeck.c (c_expand_return): Fix for returning overloaded fn. 1205118334Speter 1205250397SobrienFri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1205318334Speter 1205450397Sobrien * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND. 1205550397Sobrien * decl.c (grok_reference_init): Pass DIRECT_BIND. 1205650397Sobrien * cvt.c (build_up_reference): Don't mark 'this' addressable. Use 1205750397Sobrien DIRECT_BIND. 1205850397Sobrien * call.c (convert_like): Don't pass INDIRECT_BIND. 1205950397Sobrien * typeck.c (convert_arguments): Likewise. 1206050397Sobrien * typeck.c (mark_addressable): Allow &this if flag_this_is_variable. 1206118334Speter 1206250397SobrienThu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com> 1206318334Speter 1206450397Sobrien * typeck.c (mark_addressable): Support TARGET_EXPR, unify with 1206550397Sobrien similar code in build_up_ref. 1206650397Sobrien * cvt.c (build_up_reference): Drastically simplify. 1206718334Speter 1206852284SobrienMon Oct 28 12:45:05 1996 Jeffrey A Law <law@cygnus.com> 1206918334Speter 1207050397Sobrien * typeck.c (signed_or_unsigned_type): If the given type already 1207150397Sobrien as the correct signedness, then just return it. 1207218334Speter 1207350397Sobrien * typeck.c ({un,}signed_type): If can't do anything, call 1207450397Sobrien signed_or_unsigned_type. 1207518334Speter 1207650397SobrienThu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com> 1207718334Speter 1207850397Sobrien * decl2.c (copy_assignment_arg_p): Don't buy the farm if 1207950397Sobrien current_class_type is NULL. 1208018334Speter 1208150397SobrienWed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com> 1208218334Speter 1208350397Sobrien * class.c (finish_struct_1): Avoid empty structs by adding a field 1208450397Sobrien so layout_type gets the mode right. 1208518334Speter 1208650397Sobrien * typeck.c (c_expand_return): Drastically simplify. 1208718334Speter 1208850397SobrienMon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com> 1208918334Speter 1209050397Sobrien * typeck.c (decay_conversion): Handle overloaded methods. 1209118334Speter 1209250397SobrienFri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com> 1209318334Speter 1209450397Sobrien * call.c (build_over_call): A TARGET_EXPR has side-effects. 1209518334Speter 1209650397SobrienThu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com> 1209718334Speter 1209850397Sobrien * cvt.c (convert_to_pointer_force): Add code to support pointer to 1209950397Sobrien member function to pointer to function conversions. 1210050397Sobrien * init.c (resolve_offset_ref): Add code to allow faked up objects, 1210150397Sobrien ignoring them if they are not used, and giving an error, if they 1210250397Sobrien are needed. 1210350397Sobrien * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve 1210450397Sobrien code, and so that we can give an error, if we needed an object, 1210550397Sobrien and one was not provided. 1210650397Sobrien (build_c_cast): Don't call default_conversion when we want to 1210750397Sobrien convert to pointer to function from a METHOD_TYPE. 1210818334Speter 1210950397SobrienMon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com> 1211018334Speter 1211150397Sobrien * Make-lang.in (cplib2.ready): Fix logic. 1211218334Speter 1211350397Sobrien * decl.c (shadow_tag): Only complain about non-artificial function 1211450397Sobrien members. 1211518334Speter 1211650397Sobrien * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS. 1211718334Speter 1211850397SobrienFri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com> 1211918334Speter 1212050397Sobrien * expr.c (cplus_expand_expr): Pre-tweak call_target like 1212150397Sobrien expand_inline_function would. 1212218334Speter 1212350397Sobrien * pt.c (mark_decl_instantiated): If extern_p, call 1212450397Sobrien mark_inline_for_output. 1212518334Speter 1212650397SobrienThu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com> 1212718334Speter 1212850397Sobrien * typeck.c (unary_complex_lvalue): Add code to handle intermediate 1212950397Sobrien pmd conversions. 1213018334Speter 1213150397Sobrien * typeck.c (get_delta_difference): Fix wording, as we can be used 1213250397Sobrien for pointer to data members. 1213318334Speter 1213450397SobrienTue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com> 1213518334Speter 1213650397Sobrien * pt.c (tsubst): If the function decl isn't a member of this 1213750397Sobrien template, return a copy of the decl (including copying the 1213850397Sobrien lang-specific part) so we don't hose ourselves later. 1213918334Speter 1214050397SobrienThu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1214118334Speter 1214250397Sobrien * class.c (finish_struct): Remove DWARF-specific tag handling. 1214350397Sobrien * decl.c (pushtag): Likewise. 1214450397Sobrien (finish_function): Always clear DECL_ARGUMENTS on function decls with 1214550397Sobrien no saved RTX. 1214650397Sobrien * decl2.c (finish_file): Emit DWARF debugging info for static data 1214750397Sobrien members. 1214818334Speter 1214950397SobrienWed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com> 1215018334Speter 1215150397Sobrien * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC 1215250397Sobrien isn't the same as the new one before we whack it. 1215318334Speter 1215450397SobrienMon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com> 1215518334Speter 1215650397Sobrien * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h, 1215750397Sobrien lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove 1215850397Sobrien warn_traditional and warn_strict_prototypes; remove ancient 1215950397Sobrien 'overload' code; remove references to flag_traditional. 1216018334Speter 1216150397SobrienMon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com> 1216218334Speter 1216350397Sobrien * input.c (sub_getch): Handle 8-bit characters in string literals. 1216418334Speter 1216550397SobrienSun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com> 1216618334Speter 1216750397Sobrien * tree.c (mapcar): Handle CONSTRUCTORs. 1216850397Sobrien (copy_to_permanent): Handle expression_obstack properly. 1216918334Speter 1217050397Sobrien * Make-lang.in (cplib2.txt): Also depend on the headers. 1217118334Speter 1217250397Sobrien * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE == 1217350397Sobrien INT_TYPE_SIZE. 1217450397Sobrien (expand_class_desc): Use USItype for offset field. 1217550397Sobrien * tinfo.h (struct __class_type_info): Likewise. 1217618334Speter 1217750397Sobrien * method.c (build_overload_int): TYPE_PRECISION should be applied 1217850397Sobrien to types. 1217918334Speter 1218050397SobrienSat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com> 1218118334Speter 1218250397Sobrien * call.c (build_new_op): A COND_EXPR involving void must be a 1218350397Sobrien builtin. 1218418334Speter 1218550397SobrienFri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1218618334Speter 1218750397Sobrien * typeck.c (build_x_component_ref): New fn. 1218850397Sobrien (build_object_ref): Use it. 1218950397Sobrien * parse.y (primary): Use it. 1219050397Sobrien * decl2.c (build_expr_from_tree): Use it. 1219150397Sobrien * cp-tree.h: Declare it. 1219218334Speter 1219352284Sobrien * decl.c (start_decl): Variable-sized arrays cannot be initialized. 1219450397Sobrien * error.c (dump_type_suffix): Handle variable arrays. 1219518334Speter 1219650397SobrienFri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1219718334Speter 1219850397Sobrien * Make-lang.in (exception.o): Put back compiling it with -fPIC. 1219918334Speter 1220050397SobrienFri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1220118334Speter 1220250397Sobrien * decl.c (lookup_name_real): Don't try to look up anything in a 1220350397Sobrien TYPENAME_TYPE. 1220418334Speter 1220550397Sobrien * tinfo2.cc (__throw_type_match_rtti): Oops. 1220618334Speter 1220750397SobrienThu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1220818334Speter 1220950397Sobrien * Make-lang.in (exception.o): Use -fno-PIC for now. 1221018334Speter 1221150397SobrienThu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com> 1221218334Speter 1221350397Sobrien * rtti.c (build_dynamic_cast): Pass tinfo fns rather than 1221450397Sobrien calling them. 1221550397Sobrien (get_tinfo_fn_dynamic): Extracted from build_typeid. 1221650397Sobrien * tinfo2.cc (__dynamic_cast): Adjust. 1221752284Sobrien 1221850397Sobrien * rtti.c (build_typeid): Use resolves_to_fixed_type_p. 1221950397Sobrien (build_x_typeid): Likewise. 1222018334Speter 1222150397Sobrien * parse.y: Call build_x_typeid instead of build_typeid. 1222250397Sobrien * cp-tree.def: Add TYPEID_EXPR. 1222350397Sobrien * pt.c (tsubst_copy): Handle typeid. 1222450397Sobrien * decl2.c (build_expr_from_tree): Likewise. 1222550397Sobrien * rtti.c (build_x_typeid): Throw bad_typeid from here. 1222650397Sobrien (build_typeid): Not here. 1222750397Sobrien * cp-tree.h: Declare build_x_typeid. 1222818334Speter 1222950397SobrienWed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com> 1223018334Speter 1223150397Sobrien * call.c (convert_like): Pull out constant values. 1223218334Speter 1223350397Sobrien * tree.c (mapcar): Use build_cplus_array_type, not build_array_type. 1223418334Speter 1223550397SobrienWed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1223618334Speter 1223750397Sobrien * decl.c (init_decl_processing): Create short int types before 1223850397Sobrien creating size_t in case a machine description needs to use 1223950397Sobrien unsigned short for size_t. 1224018334Speter 1224150397SobrienTue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1224218334Speter 1224350397Sobrien * Make-lang.in (exception.o): Turn off pic. 1224418334Speter 1224550397Sobrien * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same 1224650397Sobrien type, multi-level ptr conversions. 1224718334Speter 1224850397Sobrien * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast. 1224950397Sobrien (throw_bad_cast): Use it. 1225050397Sobrien (throw_bad_typeid): New fn. 1225150397Sobrien (build_typeid): Throw bad_typeid as needed. 1225250397Sobrien Use build_call. 1225350397Sobrien (synthesize_tinfo_fn): Handle functions and arrays before checking 1225450397Sobrien for cv-quals. 1225518334Speter 1225650397Sobrien * Remove .h from standard C++ headers, add new.h, move into inc 1225750397Sobrien subdirectory. 1225818334Speter 1225950397Sobrien * exception*: Remove pointer from object, constructors. Add 1226050397Sobrien default exception::what that uses type_info::name. Add 1226150397Sobrien __throw_bad_typeid. 1226218334Speter 1226350397Sobrien * init.c (build_new): Don't add a cookie to new (void *) T[2]. 1226418334Speter 1226550397SobrienMon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com> 1226618334Speter 1226750397Sobrien * Make-lang.in: Building C++ code depends on cc1plus. 1226818334Speter 1226950397SobrienMon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1227018334Speter 1227150397Sobrien * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as 1227250397Sobrien a HOST_WIDE_INT, not a tree. 1227318334Speter 1227450397SobrienMon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com> 1227518334Speter 1227650397Sobrien * exception.cc: Don't include <stdlib.h>. 1227718334Speter 1227850397Sobrien * Make-lang.in (c++.clean): Remove cplib2.*. 1227918334Speter 1228050397SobrienMon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com> 1228118334Speter 1228250397Sobrien * parse.y (component_decl_1, component_costructor_declarator case): 1228350397Sobrien Pass attributes/prefix_attributes in tree list. 1228418334Speter 1228550397SobrienMon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com> 1228618334Speter 1228750397Sobrien * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>. 1228818334Speter 1228950397SobrienSun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1229018334Speter 1229150397Sobrien * lex.c (do_identifier): Don't do deferred lookup in a template 1229250397Sobrien header. 1229318334Speter 1229450397Sobrien * typeck2.c (store_init_value): Oops. 1229518334Speter 1229652284Sobrien * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}: 1229750397Sobrien New files for C++ lang-support library. 1229850397Sobrien * Make-lang.in (CXX_EXTRA_HEADERS): Define. 1229950397Sobrien (CXX_LIB2FUNCS): Define. 1230050397Sobrien And rules for building the C++ lang-support code. 1230150397Sobrien * config-lang.in (headers): Define. 1230250397Sobrien (lib2funcs): Define. 1230318334Speter 1230450397SobrienSat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1230518334Speter 1230650397Sobrien * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call 1230750397Sobrien digest_init. 1230850397Sobrien * pt.c (tsubst_copy): Compute type for CONSTRUCTOR. 1230950397Sobrien * typeck2.c (store_init_value): Check for initializing pmf with { } 1231050397Sobrien here. 1231150397Sobrien (process_init_constructor): Not here. 1231218334Speter 1231350397SobrienThu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1231418334Speter 1231550397Sobrien * pt.c (begin_template_parm_list): Increment 1231650397Sobrien processing_template_decl here. 1231750397Sobrien (end_template_parm_list): Not here. 1231850397Sobrien (process_template_parm): No need to add 1 to it now. 1231950397Sobrien * *.c: Use processing_template_decl instead of current_template_parms 1232050397Sobrien to check for being in a template. 1232118334Speter 1232250397Sobrien * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR. 1232350397Sobrien (tsubst_copy): Handle CONSTRUCTOR. 1232450397Sobrien (instantiate_decl): Set up context properly for variables. 1232550397Sobrien * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR. 1232650397Sobrien * class.c (finish_struct): Reverse CLASSTYPE_TAGS. 1232718334Speter 1232850397SobrienWed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1232918334Speter 1233050397Sobrien * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back. 1233118334Speter 1233250397SobrienWed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1233318334Speter 1233450397Sobrien * method.c (make_thunk): Call comdat_linkage before setting the 1233550397Sobrien TREE_CODE. 1233618334Speter 1233750397Sobrien * decl2.c (comdat_linkage): Use make_decl_one_only. 1233850397Sobrien (import_export_decl): Likewise. 1233950397Sobrien * decl.c (init_decl_processing): Check supports_one_only instead of 1234050397Sobrien SUPPORTS_WEAK. 1234118334Speter 1234250397SobrienSat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com> 1234318334Speter 1234450397Sobrien * decl2.c (grokfield): Tighten checking for access decls. 1234518334Speter 1234650397Sobrien * decl.c (make_typename_type): Resolve references to 1234750397Sobrien current_class_type. Set CLASSTYPE_GOT_SEMICOLON. 1234850397Sobrien (lookup_name_real): Types that depend on a template parameter get 1234950397Sobrien an implicit 'typename' unless they're in the current scope. 1235050397Sobrien (start_decl_1): We don't care about incomplete types that depend 1235150397Sobrien on a template parm. 1235250397Sobrien (grokdeclarator): Resolve 'typename's in the type specifier that 1235350397Sobrien refer to members of the current scope. 1235418334Speter 1235550397Sobrien * call.c (build_over_call): Remove 'inline called before 1235650397Sobrien definition' diagnostic. 1235750397Sobrien (build_method_call): Likewise. 1235850397Sobrien * decl.c (duplicate_decls): Downgrade 'used before declared 1235950397Sobrien inline' to a warning, only with -Winline. 1236018334Speter 1236150397SobrienFri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com> 1236218334Speter 1236350397Sobrien * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile. 1236418334Speter 1236550397SobrienWed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu> 1236618334Speter 1236750397Sobrien * call.c (build_method_call): When calling a signature 1236850397Sobrien default implementation, as in other cases, let instance_ptr simply 1236950397Sobrien be instance. 1237018334Speter 1237150397SobrienWed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com> 1237218334Speter 1237350397Sobrien * parse.y (simple_stmt): Cleanup and use do_poplevel (). 1237418334Speter 1237550397SobrienWed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com> 1237618334Speter 1237750397Sobrien * except.c (expand_start_catch_block): Add a pushlevel so that -g 1237850397Sobrien works on hppa and SPARC. 1237918334Speter 1238050397SobrienWed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1238118334Speter 1238250397Sobrien * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node. 1238318334Speter 1238450397SobrienMon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu> 1238518334Speter 1238650397Sobrien * call.c (build_over_call): Check first whether DECL_CONTEXT exists 1238750397Sobrien before testing whether it's a signature. 1238818334Speter 1238950397SobrienSun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu> 1239018334Speter 1239150397Sobrien * call.c (build_new_method_call): Don't complain about signature 1239250397Sobrien pointers and references not being an aggr type. 1239350397Sobrien (build_this): If a signature pointer or reference was passed in, 1239450397Sobrien just return it. 1239550397Sobrien (build_new_method_call): If instance is a signature pointer, set 1239650397Sobrien basetype to the signature type of instance. 1239750397Sobrien * sig.c (build_signature_method_call): Deleted basetype and 1239850397Sobrien instance parameters, they can be found as the DECL_CONTEXT of 1239950397Sobrien function and as the first argument passed in. 1240050397Sobrien * cp-tree.h: Changed declaration of build_signature_method_call. 1240150397Sobrien * call.c (build_method_call): Deleted first two arguments in call 1240250397Sobrien of build_signature_method_call. 1240350397Sobrien (build_over_call): Added call to build_signature_method_call. 1240418334Speter 1240550397SobrienThu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1240618334Speter 1240750397Sobrien * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a 1240850397Sobrien target_expr. 1240918334Speter 1241050397SobrienThu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1241118334Speter 1241250397Sobrien * cvt.c (convert_to_reference): Use %#T, not %#D, for error. 1241318334Speter 1241450397SobrienWed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com> 1241518334Speter 1241650397Sobrien * except.c (expand_start_try_stmts): Move to except.c in the backend. 1241750397Sobrien (expand_end_try_stmts): Remove. 1241818334Speter 1241950397Sobrien * init.c (perform_member_init): Use add_partial_entry () instead 1242050397Sobrien of directly manipulating lists. 1242152284Sobrien (emit_base_init): Likewise. 1242218334Speter 1242350397SobrienWed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com> 1242418334Speter 1242550397Sobrien * except.c (expand_exception_blocks): Always make sure USE and 1242650397Sobrien CLOBBER insns that came at the end still do, the backend relies 1242750397Sobrien upon this. 1242818334Speter 1242950397SobrienWed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com> 1243018334Speter 1243150397Sobrien * call.c (build_over_call): We can only use a TARGET_EXPR of the 1243250397Sobrien right type. 1243318334Speter 1243450397SobrienTue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com> 1243518334Speter 1243650397Sobrien * cvt.c (convert_to_reference): Revert last change, don't complain 1243750397Sobrien about temp without target decl. 1243818334Speter 1243950397SobrienTue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com> 1244018334Speter 1244150397Sobrien * decl.c (grokdeclarator): Don't core dump when void() is given. 1244218334Speter 1244350397SobrienTue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com> 1244418334Speter 1244550397Sobrien * decl.c (copy_args_p): Don't crash. 1244650397Sobrien 1244750397SobrienFri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com> 1244850397Sobrien 1244950397Sobrien * pt.c (tsubst): And support template args inside the exception 1245050397Sobrien specification. 1245150397Sobrien 1245250397Sobrien * pt.c (tsubst): Add support for exception specifications in 1245350397Sobrien template functions. 1245450397Sobrien 1245550397SobrienFri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com> 1245650397Sobrien 1245750397Sobrien * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3 1245850397Sobrien fields now. 1245950397Sobrien * cp-tree.h (start_decl): Eliminate the throw spec parameter. 1246050397Sobrien (start_function): Likewise. 1246150397Sobrien (start_method): Likewise. 1246250397Sobrien (grokfield): Likewise. 1246350397Sobrien (make_call_declarator): Add throw spec parameter. 1246450397Sobrien (set_quals_and_spec): Add routine. 1246550397Sobrien * lex.c (set_quals_and_spec): Likewise. 1246650397Sobrien * decl.h (grokdeclarator): Eliminate the throw spec parameter. 1246750397Sobrien * decl.c (shadow_tag): Eliminate the throw spec parameter to 1246850397Sobrien grokdeclarator. 1246950397Sobrien (groktypename): Likewise. 1247050397Sobrien (start_decl): Eliminate the throw spec parameter. Eliminate the 1247150397Sobrien throw spec parameter to grokdeclarator. Eliminate the throw spec 1247250397Sobrien field in DECL_STMT. 1247350397Sobrien (cp_finish_decl): Eliminate the throw spec field in DECL_STMT. 1247450397Sobrien (grokfndecl): Remove useless set of raises. 1247550397Sobrien (grokdeclarator): Eliminate the throw spec parameter. Eliminate 1247650397Sobrien the throw spec parameter to start_decl. Pull the throw spec out 1247750397Sobrien of the call declarator. 1247850397Sobrien (grokparms): Eliminate the throw spec parameter to grokdeclarator. 1247950397Sobrien (start_function): Eliminate the throw spec parameter. Eliminate 1248050397Sobrien the throw spec parameter to grokdeclarator. 1248150397Sobrien (start_method): Likewise. 1248250397Sobrien * decl2.c (grokfield): Likewise. 1248350397Sobrien (grokbitfield): Eliminate the throw spec parameter to grokdeclarator. 1248450397Sobrien (grokoptypename): Likewise. 1248550397Sobrien (finish_file): Eliminate the throw spec parameter to 1248650397Sobrien start_function. Add throw spec to make_call_declarator. 1248750397Sobrien * except.c (init_exception_processing): Add throw spec to 1248850397Sobrien make_call_declarator. Eliminate the throw spec parameter to 1248950397Sobrien start_decl. 1249050397Sobrien (expand_start_catch_block): Eliminate the throw spec parameter to 1249150397Sobrien grokdeclarator. 1249250397Sobrien (expand_builtin_throw): Add throw spec to make_call_declarator. 1249350397Sobrien Eliminate the throw spec parameter to start_function. 1249450397Sobrien (start_anon_func): Likewise. 1249550397Sobrien * lex.c (make_call_declarator): Add throw spec parameter. 1249650397Sobrien (set_quals_and_spec): New routine. 1249750397Sobrien (cons_up_default_function): Add throw spec to make_call_declarator. 1249850397Sobrien Eliminate the throw spec parameter to grokfield. 1249950397Sobrien * method.c (synthesize_method): Eliminate the throw spec parameter 1250050397Sobrien to start_function. 1250150397Sobrien * pt.c (process_template_parm): Eliminate the throw spec parameter 1250250397Sobrien to grokdeclarator. 1250350397Sobrien (tsubst): Add throw spec to make_call_declarator. 1250450397Sobrien (tsubst_expr): Eliminate the throw spec parameter to start_decl. 1250550397Sobrien (do_function_instantiation): Eliminate the throw spec parameter to 1250650397Sobrien grokdeclarator. Eliminate the throw spec parameter to 1250750397Sobrien start_function. 1250850397Sobrien * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter 1250950397Sobrien to start_function. 1251050397Sobrien * parse.y (datadef): Remove non-winning optimization. 1251150397Sobrien (decl): Likewise. 1251252284Sobrien (fndef): Remove ambiguous error productions uncovered by grammar 1251350397Sobrien fixing. 1251450397Sobrien (constructor_declarator): Add exception_specification_opt here. 1251550397Sobrien (component_constructor_declarator): Likewise. 1251650397Sobrien (direct_after_type_declarator): Likewise. 1251750397Sobrien (complex_direct_notype_declarator): Likewise. 1251850397Sobrien (direct_abstract_declarator): Likewise. 1251950397Sobrien (fn.def1): Remove exception_specification_opt. 1252050397Sobrien (fn.def2): Likewise. 1252150397Sobrien (condition): Likewise. 1252250397Sobrien (initdcl0): Likewise. 1252350397Sobrien (initdcl): Likewise. 1252450397Sobrien (notype_initdcl0): Likewise. 1252550397Sobrien (nomods_initdcl0): Likewise. 1252650397Sobrien (component_decl_1): Likewise. 1252750397Sobrien (component_declarator): Likewise. 1252850397Sobrien (after_type_component_declarator0): Likewise. 1252950397Sobrien (after_type_component_declarator): Likewise. 1253050397Sobrien (notype_component_declarator): Likewise. 1253150397Sobrien 1253250397SobrienWed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1253350397Sobrien 1253450397Sobrien * call.c (build_over_call): Also use an INIT_EXPR when 1253550397Sobrien initializing anything from an rvalue. 1253650397Sobrien 1253750397Sobrien * call.c (build_over_call): Call stabilize_reference when building 1253850397Sobrien an INIT_EXPR instead of calling the copy ctor. 1253950397Sobrien 1254050397Sobrien * call.c (joust): Extend the previous change to all comparisons. 1254150397Sobrien 1254252284Sobrien * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and 1254350397Sobrien NO_LINKAGE_HEURISTICS. 1254450397Sobrien 1254550397Sobrien * decl2.c (finish_file): Emit any statics that weren't already. 1254650397Sobrien 1254750397Sobrien * typeck.c (build_static_cast): Implement. 1254850397Sobrien * tree.c (build_cplus_new): Handle getting a TARGET_EXPR. 1254950397Sobrien * decl.c (grokparms): Use can_convert_arg instead of 1255050397Sobrien implicit_conversion directly. 1255150397Sobrien (copy_args_p): New fn. 1255250397Sobrien * cvt.c (convert_to_reference): Don't complain about temp with 1255350397Sobrien static_cast. 1255450397Sobrien (build_up_reference): Handle TARGET_EXPRs. 1255550397Sobrien * call.c (build_over_call): Elide unnecessary temps. 1255650397Sobrien (can_convert*): Use new overloading code. 1255750397Sobrien 1255850397SobrienTue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com> 1255950397Sobrien 1256050397Sobrien * call.c: Move TYPE_PTR*_MACROS ... 1256150397Sobrien * cp-tree.h: To here. 1256250397Sobrien * typeck.c (build_reinterpret_cast): Implement. 1256350397Sobrien 1256450397Sobrien * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of 1256550397Sobrien ptr_complete_ob. 1256650397Sobrien (joust): If we're comparing a function to a builtin and the worst 1256750397Sobrien conversion for the builtin is worse than the worst conversion for the 1256850397Sobrien function, take the function. 1256950397Sobrien 1257050397Sobrien * typeck.c (build_const_cast): Implement. 1257150397Sobrien (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast. 1257250397Sobrien (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast. 1257350397Sobrien 1257450397SobrienTue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com> 1257550397Sobrien 1257650397Sobrien * rtti.c (build_dynamic_cast): Don't try to dereference exprtype 1257752284Sobrien too early. Make sure we explode if exprtype turns out to be a 1257850397Sobrien NULL_TREE when it shouldn't be. 1257950397Sobrien 1258050397SobrienTue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com> 1258150397Sobrien 1258250397Sobrien * cp-tree.h: New routine make_call_declarator. 1258350397Sobrien * lex.c (make_call_declarator): Define it. 1258450397Sobrien * except.c (init_exception_processing): Use it. 1258550397Sobrien (expand_builtin_throw): Likewise. 1258650397Sobrien (start_anon_func): Likewise. 1258750397Sobrien * decl2.c (finish_file): Likewise. 1258850397Sobrien * lex.c (cons_up_default_function): Likewise. 1258950397Sobrien * parse.y: Likewise. 1259050397Sobrien * pt.c (tsubst): Likewise. 1259152284Sobrien 1259250397SobrienMon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com> 1259318334Speter 1259450397Sobrien * decl2.c (groktypefield): Remove unused code. 1259518334Speter 1259650397SobrienMon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com> 1259718334Speter 1259850397Sobrien * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER. 1259950397Sobrien * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier. 1260050397Sobrien Change type_quals into cv_qualifiers. Change nonempty_type_quals into 1260150397Sobrien nonempty_cv_qualifiers. 1260250397Sobrien * hash.h: Rebuild. 1260352284Sobrien 1260450397Sobrien * lex.c (make_pointer_declarator): Change type_quals into 1260550397Sobrien cv_qualifiers. 1260650397Sobrien (make_reference_declarator): Likewise. 1260752284Sobrien 1260850397SobrienThu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1260918334Speter 1261050397Sobrien * decl.c (start_function): Only check interface_* for templates 1261150397Sobrien with flag_alt_external_templates. 1261218334Speter 1261350397Sobrien * call.c (build_new_op): Check for comparison of different enum types. 1261450397Sobrien (build_over_call): Fix arg # output. 1261518334Speter 1261650397Sobrien * typeck.c (build_component_ref): Handle pre-found TYPE_DECL. 1261718334Speter 1261850397SobrienWed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com> 1261918334Speter 1262050397Sobrien * call.c (build_new_op): Check for erroneous args. 1262118334Speter 1262250397Sobrien * call.c (build_new_method_call): Add missing args to cp_error. 1262318334Speter 1262452284Sobrien * tree.c (error_type): Don't print reference-to-array. 1262518334Speter 1262650397Sobrien * typeck.c (convert_for_assignment): Don't say contravariance for 1262750397Sobrien removing const. 1262818334Speter 1262950397SobrienTue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com> 1263018334Speter 1263150397Sobrien * call.c (build_over_call): Diagnose bad convs for `this'. 1263218334Speter 1263350397Sobrien * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL 1263450397Sobrien on _ctor_arg. 1263518334Speter 1263650397Sobrien * call.c (convert_like): Handle bad convs. 1263750397Sobrien (build_over_call): Handle bad convs better. 1263818334Speter 1263950397Sobrien * decl2.c: -fansi-overloading is now the default. 1264018334Speter 1264150397Sobrien * call.c (build_new_method_call): Check for erroneous args. 1264218334Speter 1264350397Sobrien * pt.c (instantiate_class_template): Propagate 1264450397Sobrien TYPE_USES_MULTIPLE_INHERITANCE. 1264518334Speter 1264650397SobrienTue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com> 1264718334Speter 1264850397Sobrien * call.c (enforce_access): Add static to routine. 1264918334Speter 1265050397SobrienSun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com> 1265118334Speter 1265250397Sobrien * call.c (build_user_type_conversion_1): Fix bad handling. 1265350397Sobrien (compare_ics): Likewise. 1265418334Speter 1265550397SobrienSat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com> 1265618334Speter 1265750397Sobrien * call.c (standard_conversion): Oops. 1265818334Speter 1265950397SobrienSat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com> 1266018334Speter 1266150397Sobrien * g++.c: Update test for win32 (&& ! cygwin32). 1266218334Speter 1266350397SobrienSat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com> 1266418334Speter 1266550397Sobrien * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly. 1266650397Sobrien (ptr_reasonably_similar): New fn. 1266750397Sobrien * call.c (BAD_RANK): New rank. 1266850397Sobrien (ICS_BAD_FLAG): New macro. 1266950397Sobrien (standard_conversion): Handle almost-right pointer conversions. 1267050397Sobrien (reference_binding): Handle bad rvalue bindings. 1267150397Sobrien (add_*_candidate): Stuff. 1267250397Sobrien (build_over_call): Pass bad conversions to convert_for_initialization. 1267350397Sobrien (compare_ics): Handle bad convs. 1267450397Sobrien (joust): Likewise. 1267518334Speter 1267650397SobrienFri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com> 1267718334Speter 1267850397Sobrien * init.c (expand_vec_init): Use ptrdiff_type_node instead of 1267950397Sobrien integer_type_node when computing pointer offsets. 1268018334Speter 1268150397SobrienFri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com> 1268218334Speter 1268350397Sobrien * tree.c (lvalue_type): New fn. 1268450397Sobrien (error_type): New fn. 1268550397Sobrien * call.c (op_error): Use error_type. 1268650397Sobrien (add_conv_candidate): Use lvalue_type. 1268750397Sobrien (add_builtin_candidates): Likewise. 1268850397Sobrien * error.c (args_as_string): Use error_type. 1268918334Speter 1269050397SobrienThu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com> 1269118334Speter 1269250397Sobrien * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here. 1269350397Sobrien (tsubst): Not here. 1269418334Speter 1269550397Sobrien * decl.c (init_decl_processing): With -ansi, __null's type is the 1269650397Sobrien signed integral type with the same number of bits as a pointer. 1269750397Sobrien Introduce a new variable null_node for it. 1269850397Sobrien * cp-tree.h: Adjust. 1269950397Sobrien * call.c (null_ptr_cst_p): Adjust. 1270018334Speter 1270150397SobrienThu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com> 1270218334Speter 1270350397Sobrien * except.c (do_unwind): Mark %i7 as used on the SPARC so we can 1270450397Sobrien optimize. 1270518334Speter 1270650397SobrienThu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com> 1270718334Speter 1270850397Sobrien * decl2.c (import_export_decl): Ignore #pragma interface for tinfo 1270950397Sobrien fns of classes without virtual functions. 1271018334Speter 1271150397Sobrien * call.c (add_function_candidate): Handle `this' specially. 1271250397Sobrien (compare_ics): Likewise. 1271318334Speter 1271450397SobrienTue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com> 1271518334Speter 1271650397Sobrien * typeck.c (build_conditional_expr): Fix handling of __null. 1271718334Speter 1271850397Sobrien * decl2.c (comdat_linkage): New fn. 1271950397Sobrien (import_export_vtable): Use it. 1272050397Sobrien (import_export_decl): Use it. 1272150397Sobrien * method.c (make_thunk): Use it. 1272218334Speter 1272350397SobrienMon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com> 1272418334Speter 1272550397Sobrien * pt.c (end_template_decl): If we don't actually have parms, return. 1272650397Sobrien * parse.y (template_header): Accept 'template <>'. 1272718334Speter 1272850397Sobrien * errfn.c: Allow 5 args. 1272918334Speter 1273050397SobrienSun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com> 1273118334Speter 1273250397Sobrien * tree.c (make_temp_vec): New fn. 1273350397Sobrien * pt.c (push_template_decl): Handle partial specs. 1273450397Sobrien (instantiate_class_template): Likewise. 1273550397Sobrien (more_specialized): Use get_bindings. 1273650397Sobrien (more_specialized_class): New fn. 1273750397Sobrien (get_class_bindings): New fn. 1273850397Sobrien (most_specialized_class): New fn. 1273950397Sobrien (do_function_instantiation): List candidates for ambiguous case. 1274050397Sobrien * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS. 1274150397Sobrien (shadow_tag): Call push_template_decl for partial specializations. 1274250397Sobrien * parse.y: Likewise. 1274350397Sobrien * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces 1274450397Sobrien DECL_TEMPLATE_MEMBERS. 1274550397Sobrien * call.c (print_z_candidates): Reduce duplication. 1274618334Speter 1274750397SobrienFri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1274818334Speter 1274950397Sobrien * decl2.c (lang_decode_option): Allow -fansi-overloading. 1275018334Speter 1275150397SobrienThu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com> 1275218334Speter 1275350397Sobrien * pt.c (get_bindings): New fn. 1275450397Sobrien (most_specialized): Likewise. 1275550397Sobrien (do_function_instantiation): Use them. 1275650397Sobrien (add_maybe_template): New fn. 1275750397Sobrien * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro. 1275850397Sobrien * call.c (build_new_op): Handle guiding decls. 1275950397Sobrien (build_new_function_call): Likewise. 1276050397Sobrien * decl2.c (finish_file): Likewise. 1276118334Speter 1276250397Sobrien * decl2.c (mark_used): Do synthesis here. 1276350397Sobrien * call.c (build_method_call): Not here. 1276450397Sobrien (build_over_call): Or here. 1276550397Sobrien * typeck.c (build_function_call_real): Or here. 1276650397Sobrien * tree.c (bot_manip): Call mark_used on functions used in default 1276750397Sobrien args. 1276818334Speter 1276950397SobrienThu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1277018334Speter 1277150397Sobrien * decl2.c (import_export_vtable): Delete code that disabled vtable 1277250397Sobrien heuristic on systems with ASM_OUTPUT_EXTERNAL. 1277318334Speter 1277450397SobrienWed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com> 1277518334Speter 1277650397Sobrien * typeck.c (build_x_function_call): Handle static call context 1277750397Sobrien better. 1277818334Speter 1277950397Sobrien * decl.c (finish_function): Set the DECL_CONTEXT of the result to 1278050397Sobrien the function, not its outer block. 1278118334Speter 1278250397Sobrien * call.c (build_field_call): Pass fields on to build_opfncall 1278350397Sobrien regardless of TYPE_OVERLOADS_CALL_EXPR. 1278450397Sobrien (build_method_call): Pass on to build_new_method_call sooner. 1278518334Speter 1278650397Sobrien * typeck.c (build_ptrmemfunc): Just return what instantiate_type 1278750397Sobrien gives us. 1278850397Sobrien * class.c (instantiate_type): Don't put a POINTER_TYPE to 1278950397Sobrien METHOD_TYPE on an expression. Also make a copy of rhs instead of 1279050397Sobrien modifying it. 1279118334Speter 1279250397SobrienTue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com> 1279318334Speter 1279450397Sobrien * call.c (compare_ics): Handle qual_conv after lvalue_conv. 1279550397Sobrien (add_builtin_candidate): Don't take enums for ++. 1279650397Sobrien (build_new_method_call): Handle non-aggregates and field calls. 1279750397Sobrien Move new overloading code from... 1279850397Sobrien * cvt.c: Here. 1279918334Speter 1280050397Sobrien * decl.c (grokparms): Don't check default args in templates. 1280118334Speter 1280250397SobrienMon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com> 1280318334Speter 1280450397Sobrien * cvt.c (build_new_op): Fix args to build_unary_op. 1280550397Sobrien (add_builtin_candidates): Don't call type_promotes_to on float. 1280618334Speter 1280750397Sobrien * decl.c (grokparms): Check the type of the default arg. 1280818334Speter 1280950397Sobrien * cvt.c (build_new_op): Pass non-overloaded cases on rather than 1281050397Sobrien returning NULL_TREE. 1281118334Speter 1281250397Sobrien * typeck.c (build_x_binary_op): Avoid doing extra work. 1281350397Sobrien (build_x_unary_op): Likewise. 1281450397Sobrien (build_x_conditional_expr): Likewise. 1281550397Sobrien * cvt.c (build_over_call): Return. 1281650397Sobrien (add_builtin_candidate): Fix MEMBER_REF. 1281750397Sobrien (build_new_op): Likewise. 1281818334Speter 1281950397SobrienMon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com> 1282018334Speter 1282150397Sobrien * method.c (build_overload_name): Put bug fix into code but leave 1282250397Sobrien disabled for now so we can be bug compatible with older releases 1282350397Sobrien that do repeats incorrectly. In the future, we can enable it. 1282418334Speter 1282550397SobrienMon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1282618334Speter 1282750397Sobrien * cvt.c (convert_like): Don't call build_cplus_new twice. 1282818334Speter 1282950397Sobrien * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c: 1283050397Sobrien Control new overloading code with -fansi-overloading. 1283118334Speter 1283250397SobrienSun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com> 1283318334Speter 1283450397Sobrien * cvt.c (build_over_call): Call build_cplus_new. 1283550397Sobrien * call.c (build_method_call): Likewise. 1283650397Sobrien * typeck.c (build_function_call_real): Likewise. 1283750397Sobrien (build_conditional_expr): If both operands are TARGET_EXPRs, wrap 1283850397Sobrien the COND_EXPR in a TARGET_EXPR so they use the same slot. 1283918334Speter 1284052284Sobrien * cvt.c (build_up_reference): Propagate INDIRECT_BIND to 1284150397Sobrien recursive calls. 1284250397Sobrien * typeck.c (complete_type): Propagate 1284350397Sobrien TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}. 1284418334Speter 1284550397SobrienSat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1284618334Speter 1284750397Sobrien * cvt.c (joust): More ?: kludging. Sigh. 1284850397Sobrien (build_over_call): Don't try to synthesize global fns. 1284918334Speter 1285050397Sobrien * search.c (lookup_conversions): Use binfo marking. 1285118334Speter 1285250397SobrienSat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com> 1285318334Speter 1285450397Sobrien * search.c (build_mi_matrix): Use the correct value of cid 1285550397Sobrien when determining the new mi_size. 1285618334Speter 1285750397SobrienSat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com> 1285818334Speter 1285950397Sobrien * cvt.c (add_builtin_candidates): Do consider type conversion ops 1286050397Sobrien for the first parms of += et al. 1286150397Sobrien (strip_top_quals): New fn. 1286250397Sobrien (reference_binding): Use it instead of TYPE_MAIN_VARIANT. 1286350397Sobrien (implicit_conversion): Likewise. 1286450397Sobrien (add_builtin_candidates): Be careful about arrays. 1286550397Sobrien (build_new_method_call): Handle vtable optimization. 1286618334Speter 1286750397SobrienFri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com> 1286818334Speter 1286950397Sobrien * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag. 1287050397Sobrien * cvt.c (reference_binding): Use it. 1287150397Sobrien (implicit_conversion): Use it. 1287250397Sobrien (add_builtin_candidate, COND_EXPR): Use it. 1287318334Speter 1287450397Sobrien * cvt.c (build_new_function_call): Check for error args. 1287518334Speter 1287650397Sobrien * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY. 1287718334Speter 1287850397Sobrien * gxx.gperf: Add __null. 1287950397Sobrien * hash.h: Regenerate. 1288050397Sobrien * lex.h: Add RID_NULL. 1288150397Sobrien * lex.c (init_lex): Create null_pointer_node here, stick it in 1288250397Sobrien RID_NULL. 1288350397Sobrien * decl.c (init_decl_processing): Still set its type here. 1288450397Sobrien * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node. 1288550397Sobrien (convert_to_pointer_force): Likewise. 1288650397Sobrien (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0 1288750397Sobrien if (! pedantic). 1288850397Sobrien * call.c (convert_harshness): Use null_ptr_cst_p. 1288950397Sobrien * typeck.c (convert_for_assignment): Likewise. Don't produce 1289050397Sobrien null_pointer_node. 1289118334Speter 1289250397Sobrien * error.c (args_as_string): Handle lists of actual args, too. 1289350397Sobrien * cvt.c (null_ptr_cst): Support (void*)0 for now. 1289450397Sobrien (build_user_type_conversion_1): Improve diagnostics. 1289550397Sobrien (build_new_function_call): Likewise. 1289650397Sobrien (build_object_call): Likewise. 1289750397Sobrien (build_new_method_call): Likewise. Move call before def diagnostic... 1289850397Sobrien (build_over_call): Here. 1289918334Speter 1290050397Sobrien * cvt.c (build_new_method_call): Don't complain about no match if 1290150397Sobrien LOOKUP_SPECULATIVELY. 1290250397Sobrien (build_over_call): Fix 'this' for virtual fn. 1290350397Sobrien (build_new_method_call): Add diagnostic. 1290418334Speter 1290550397SobrienThu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1290618334Speter 1290750397Sobrien * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for 1290850397Sobrien constructors to be passed in. 1290950397Sobrien (build_over_call): Likewise. 1291050397Sobrien (build_user_type_conversion_1): Pass them in. 1291150397Sobrien (convert_like): Likewise. 1291250397Sobrien (build_object_call): Handle overloaded conversions. 1291350397Sobrien (build_over_call): Pass the right args to build_vfn_ref. 1291450397Sobrien (standard_conversion): Fix pmf convs. 1291550397Sobrien (joust): Handle comparing statics and non-statics. 1291650397Sobrien (build_new_method_call): New fn. 1291750397Sobrien * call.c (build_method_call): Call it if NEW_OVER. 1291818334Speter 1291950397SobrienThu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com> 1292018334Speter 1292150397Sobrien * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use 1292250397Sobrien %D instead. 1292318334Speter 1292450397SobrienThu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com> 1292518334Speter 1292650397Sobrien * except.c (expand_throw): Use maybe_build_cleanup_and_delete 1292750397Sobrien instead of just maybe_build_cleanup so that we deallocate the 1292850397Sobrien thrown object. 1292918334Speter 1293050397SobrienThu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1293118334Speter 1293250397Sobrien * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use. 1293350397Sobrien * cp-tree.h (finish_prevtable_vardecl): Add decl. 1293418334Speter 1293550397SobrienThu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com> 1293618334Speter 1293752284Sobrien * pt.c (instantiate_class_template): Call complete_type. Also, if 1293850397Sobrien we're at the end of the file and we just instantiated a template 1293950397Sobrien class with a vtable, call finish_prevtable_vardecl. 1294018334Speter 1294150397Sobrien * error.c (dump_decl): Don't explode (or explode more gracefully 1294250397Sobrien as appropriate) if the object being dumped has a null type. 1294350397Sobrien (dump_expr): Likewise. 1294418334Speter 1294550397Sobrien * search.c (build_mi_matrix): Ensure that mi_size is large enough, 1294650397Sobrien by counting the number of nodes that we'll need before allocating 1294750397Sobrien the array. 1294850397Sobrien (lookup_fnfields): Fix comment. 1294950397Sobrien (breadth_first_search): Fix comment. 1295018334Speter 1295150397SobrienWed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com> 1295218334Speter 1295350397Sobrien * pt.c (instantiate_class_template): Propagate TYPE_PACKED and 1295450397Sobrien TYPE_ALIGN. 1295550397Sobrien * class.c (finish_struct): Call cplus_decl_attributes here. 1295650397Sobrien (finish_struct_1): Not here. 1295750397Sobrien * cp-tree.h: Adjust. 1295818334Speter 1295950397Sobrien * pt.c (type_unification): New parameter STRICT. 1296050397Sobrien (unify): If STRICT, don't allow cv addition or base deduction. 1296150397Sobrien * call.c, class.c, cvt.c, cp-tree.h: Adjust. 1296218334Speter 1296350397SobrienTue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com> 1296418334Speter 1296550397Sobrien * search.c (get_template_base{_recursive}): New fns. 1296650397Sobrien * pt.c (more_specialized): New fn. 1296750397Sobrien (do_function_instantiation): Use it. 1296850397Sobrien (unify): Handle base deduction. 1296950397Sobrien * cvt.c (joust): Use more_specialized. 1297050397Sobrien Don't arbitrarily choose between non-builtin candidates. 1297150397Sobrien (build_over_call): Call require_complete_type. 1297218334Speter 1297350397Sobrien * decl.c (start_function): Statics are static even in a #pragma 1297450397Sobrien interface file. 1297518334Speter 1297650397Sobrien * decl2.c (import_export_vtable): Disable vtable heuristic on 1297750397Sobrien systems with ASM_OUTPUT_EXTERNAL. 1297818334Speter 1297950397Sobrien * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV. 1298050397Sobrien (standard_conversion): No std conv to enum type. 1298118334Speter 1298250397Sobrien * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P 1298350397Sobrien for ptm's. 1298418334Speter 1298550397Sobrien * cvt.c (reference_binding): Bind directly to a base subobject of 1298650397Sobrien a class rvalue. 1298718334Speter 1298850397Sobrien * cvt.c (build_new_op): Enforce access control. 1298918334Speter 1299050397SobrienTue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com> 1299118334Speter 1299250397Sobrien * typeck2.c (process_init_constructor): When scanning the 1299350397Sobrien union for a named field, skip things that aren't FIELD_DECLs. 1299418334Speter 1299550397Sobrien * method.c (synthesize_method): Don't scan fndecl's rtl if 1299650397Sobrien we're at the end of the file; just assume the function can't 1299750397Sobrien be inlined. 1299818334Speter 1299950397SobrienMon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1300018334Speter 1300150397Sobrien * cvt.c (build_builtin_candidate): Stick a dummy conversion in if 1300250397Sobrien it failed. 1300318334Speter 1300450397Sobrien * cvt.c (build_user_type_conversion_1): Handle overloaded 1300550397Sobrien conversion ops. 1300618334Speter 1300750397Sobrien * cvt.c (add_builtin_candidates): Don't consider type conversion 1300850397Sobrien operators for the first parameter of operator=. 1300918334Speter 1301050397SobrienMon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com> 1301118334Speter 1301250397Sobrien * typeck.c (complete_type): Only call layout_type if we're not 1301350397Sobrien expanding a template. 1301418334Speter 1301550397SobrienMon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com> 1301618334Speter 1301750397Sobrien * cvt.c (compare_ics): Oops. 1301818334Speter 1301950397Sobrien * cvt.c (op_error): Oops. 1302018334Speter 1302150397Sobrien * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV. 1302250397Sobrien * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p. 1302350397Sobrien (build_conv): Use them. 1302450397Sobrien (implicit_conversion): Use them. 1302550397Sobrien (convert_like): Handle them. 1302650397Sobrien (build_new_op): Handle builtin COND_EXPR again. 1302750397Sobrien (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums 1302850397Sobrien in lists of types for COND_EXPR. 1302950397Sobrien (add_builtin_candidate): Add enum candidates for COND_EXPR. 1303018334Speter 1303150397SobrienMon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com> 1303218334Speter 1303350397Sobrien * typeck.c (build_modify_expr): Always attempt to build a call to 1303450397Sobrien the assignment operator, even if we're using a default one. 1303550397Sobrien (convert_for_initialization): Call complete_type. 1303618334Speter 1303750397SobrienMon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1303818334Speter 1303950397Sobrien * cvt.c (reference_binding): A REF_BIND gets the reference type. 1304050397Sobrien (implicit_conversion): Likewise. 1304150397Sobrien (convert_like): Likewise. 1304250397Sobrien (compare_ics): Likewise. 1304350397Sobrien (compare_qual): Likewise. 1304450397Sobrien (print_z_candidates): Handle no candidates. 1304550397Sobrien (build_new_op): Don't handle builtin COND_EXPR for now. 1304618334Speter 1304750397SobrienSat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com> 1304818334Speter 1304950397Sobrien * cvt.c (build_builtin_candidate): Init local var in an ANSI way. 1305018334Speter 1305150397SobrienFri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1305218334Speter 1305350397Sobrien * cvt.c (joust): If the candidates are the same, arbitrarily pick one. 1305418334Speter 1305550397Sobrien * cvt.c (build_builtin_candidate): Oops. 1305650397Sobrien (build_new_op): Oops. 1305718334Speter 1305850397Sobrien * method.c (build_opfncall): Pass COND_EXPR on. 1305950397Sobrien * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR. 1306050397Sobrien (add_builtin_candidate{,s}): Likewise. 1306150397Sobrien (add_builtin_candidates): Likewise. 1306250397Sobrien (print_z_candidates, op_error, build_new_op): Likewise. 1306350397Sobrien (type_decays_to): New fn. 1306450397Sobrien * lex.c (init_lex): Just say ?: for COND_EXPR. 1306518334Speter 1306650397SobrienThu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1306718334Speter 1306850397Sobrien * typeck.c (complete_type): Call layout_type rather than building 1306950397Sobrien a new array type. 1307018334Speter 1307150397Sobrien * cvt.c (add_builtin_candidate): Pointer arithmetic candidates 1307250397Sobrien only use ptrdiff_t. 1307318334Speter 1307450397SobrienWed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1307518334Speter 1307650397Sobrien * cvt.c: Always compile the new overloading code (but don't use it). 1307750397Sobrien (implicit_conversion): Add a BASE_CONV when converting to 1307850397Sobrien the same class type. 1307950397Sobrien (convert_like): Handle BASE_CONV. 1308018334Speter 1308150397SobrienTue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1308218334Speter 1308350397Sobrien * cvt.c (build_new_op): Support {MAX,MIN}_EXPR. 1308450397Sobrien (add_builtin_candidate): Likewise. 1308518334Speter 1308650397Sobrien NEW_OVER changes: 1308750397Sobrien * typeck.c (build_x_function_call): Try an operator function 1308850397Sobrien whenever we call an object of class type. 1308950397Sobrien * method.c (build_opfncall): Pass CALL_EXPRs through. 1309050397Sobrien * cvt.c (implicit_conversion): Do const-ref case first. 1309150397Sobrien (add_conv_candidate, build_object_call, op_error): New fns. 1309250397Sobrien (ptr_complete_ob, TYPE_PTROB_P): void is not an object type. 1309352284Sobrien ({add,build}_builtin_candidate{,s}, print_z_candidates): Display 1309450397Sobrien builtin candidates. 1309550397Sobrien (build_new_op): Handle CALL_EXPR. Don't try to decay void. 1309652284Sobrien Fall back on preincrement handling. Use op_error. 1309750397Sobrien Handle warn_synth. 1309852284Sobrien (convert_like): Pass INDIRECT_BIND. Don't try to do anything with 1309950397Sobrien an error_mark_node. 1310050397Sobrien (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions 1310150397Sobrien properly. 1310218334Speter 1310350397SobrienMon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com> 1310418334Speter 1310550397Sobrien * pt.c (tsubst_expr): Handle CONTINUE_STMT. 1310618334Speter 1310750397SobrienMon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com> 1310818334Speter 1310950397Sobrien * typeck.c (build_component_ref_1): Use build_component_ref 1311050397Sobrien instead of open coding it here. 1311118334Speter 1311250397SobrienMon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com> 1311318334Speter 1311450397Sobrien * g++.c (main): Don't link with -lg++. 1311518334Speter 1311650397Sobrien NEW_OVER changes: 1311752284Sobrien * cvt.c (convert_to_reference): Don't use convert_from_reference on 1311850397Sobrien result of build_type_conversion. 1311950397Sobrien (cp_convert): Only call build_method_call for ctors if 1312050397Sobrien build_type_conversion failed. 1312150397Sobrien (ptr_complete_ob): New function. 1312250397Sobrien (TYPE_PTR{,OB,MEM}_P): New macros. 1312350397Sobrien ({add,build}_builtin_candidate{,s}): New functions. 1312450397Sobrien (print_z_candidates): Handle builtins. 1312552284Sobrien (build_user_type_conversion_1): Don't use conversion fns for 1312650397Sobrien converting to a base type. 1312750397Sobrien (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs. 1312850397Sobrien (build_user_type_conversion): Use convert_from_reference. 1312950397Sobrien (build_new_op): New function. 1313050397Sobrien (build_over_call): Fix handling of methods. 1313150397Sobrien (compare_ics): Handle AMBIG_CONV properly. 1313250397Sobrien * typeck2.c: Increment abort count. 1313350397Sobrien * method.c (build_opfncall): Forward most requests to build_new_op. 1313450397Sobrien * cp-tree.h (IS_OVERLOAD_TYPE): Tweak. 1313518334Speter 1313650397SobrienFri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1313718334Speter 1313850397Sobrien * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out 1313950397Sobrien invalid second argument to dump_expr_list. 1314018334Speter 1314150397SobrienFri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com> 1314218334Speter 1314350397Sobrien * decl.c (lookup_name_real): Make sure we do obj->X::i correctly. 1314418334Speter 1314550397SobrienThu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com> 1314618334Speter 1314750397Sobrien * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not 1314850397Sobrien ASSEMBLE_EXTERNAL. 1314918334Speter 1315050397SobrienMon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com> 1315118334Speter 1315250397Sobrien * typeck2.c (process_init_constructor): New pedwarn for using { } 1315350397Sobrien to initialize a pointer to member function. 1315450397Sobrien * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that 1315550397Sobrien we can avoid the new error. 1315618334Speter 1315750397SobrienMon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com> 1315818334Speter 1315950397Sobrien * typeck.c (build_ptrmemfunc1): New function to hide details of 1316050397Sobrien pointer to member functions better. 1316118334Speter 1316250397SobrienMon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com> 1316318334Speter 1316450397Sobrien * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are 1316550397Sobrien methods into the actual method, as we know the implied object is 1316650397Sobrien not used. 1316718334Speter 1316850397SobrienMon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1316918334Speter 1317050397Sobrien * parse.y (maybecomma_warn): Only emit the pedwarn if we're not 1317150397Sobrien inside a system header. 1317218334Speter 1317350397SobrienFri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com> 1317418334Speter 1317550397Sobrien * call.c (build_method_call): Call complete_type on the 1317650397Sobrien instance type. 1317750397Sobrien 1317850397SobrienThu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com> 1317950397Sobrien 1318050397Sobrien * typeck.c (build_component_ref): Always build up an OFFSET_REF 1318150397Sobrien for obj_ptr->func so that we can know which object to use in a 1318250397Sobrien method call. 1318350397Sobrien 1318450397SobrienWed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com> 1318550397Sobrien 1318650397Sobrien * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast 1318750397Sobrien around things. Also improve maintainability. 1318850397Sobrien 1318950397SobrienWed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com> 1319050397Sobrien 1319150397Sobrien * decl.c (grokdeclarator): Check for overflow when evaluating an 1319250397Sobrien array dimension. 1319350397Sobrien 1319450397SobrienWed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com> 1319550397Sobrien 1319650397Sobrien * cvt.c (cp_convert): Don't check for ambiguity with constructor 1319750397Sobrien if NEW_OVER. 1319850397Sobrien 1319950397Sobrien * typeck.c (build_x_function_call): Pass function overload 1320050397Sobrien questions to new overloading code if NEW_OVER. 1320150397Sobrien * init.c (expand_aggr_init_1): Only check for type conversion ops 1320250397Sobrien if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING). 1320350397Sobrien Don't check for ambiguity with constructor if NEW_OVER. 1320450397Sobrien * cvt.c (convert_to_reference): Dereference the result of a type 1320518334Speter conversion operator. 1320650397Sobrien (build_conv): Propagate ICS_USER_FLAG. 1320750397Sobrien (implicit_conversion): Call instantiate_type. 1320850397Sobrien Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL. 1320950397Sobrien (add_function_candidate): Fix cv-quals on argtype. 1321050397Sobrien (print_z_candidates): New function. 1321150397Sobrien (build_new_function_call): Call it. 1321250397Sobrien (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't 1321350397Sobrien consider non-converting constructors. 1321450397Sobrien Call print_z_candidates. 1321550397Sobrien Return an AMBIG_CONV for an ambiguous conversion. 1321650397Sobrien (build_user_type_conversion): Handle AMBIG_CONV. 1321750397Sobrien (convert_like): Fix test for building TARGET_EXPR. 1321850397Sobrien Call instantiate_type. 1321950397Sobrien Handle AMBIG_CONV and LVALUE_CONV. 1322050397Sobrien (build_over_call): Handle 0 args and ellipsis. 1322150397Sobrien * cp-tree.def: Add AMBIG_CONV. 1322218334Speter 1322350397SobrienTue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com> 1322418334Speter 1322550397Sobrien * decl.c (lookup_name_real): If we find mem in obj when parsing 1322650397Sobrien `obj->mem', make sure we return the right value. 1322718334Speter 1322850397SobrienTue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com> 1322918334Speter 1323050397Sobrien * search.c (get_base_distance): Call complete_type. 1323118334Speter 1323250397SobrienTue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com> 1323318334Speter 1323450397Sobrien * decl.c (store_bindings): Make static. 1323518334Speter 1323650397SobrienMon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com> 1323718334Speter 1323850397Sobrien * init.c (expand_aggr_init_1): Don't check type conversions if 1323950397Sobrien NEW_OVER. 1324018334Speter 1324150397Sobrien * cvt.c (z_candidate): Put back template field. 1324250397Sobrien (add_function_candidate): Set it. 1324350397Sobrien (add_template_candidate): Likewise. 1324450397Sobrien (joust): Use it. 1324550397Sobrien (compare_qual): Handle references and pointers to members. 1324650397Sobrien (compare_ics): Handle reference bindings. 1324718334Speter 1324850397Sobrien * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY. 1324918334Speter 1325050397SobrienMon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com> 1325118334Speter 1325250397Sobrien * call.c (compute_conversion_costs): Call complete_type. 1325318334Speter 1325450397Sobrien * tree.c (vec_binfo_member): Use comptypes instead of comparing 1325550397Sobrien pointers, so we can handle template parameters. 1325618334Speter 1325750397SobrienFri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com> 1325818334Speter 1325950397Sobrien * cvt.c (cp_convert_to_pointer): We have to call complete_type 1326050397Sobrien here; let's make it explicit instead of a side effect of an 1326150397Sobrien error check. 1326218334Speter 1326350397SobrienWed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com> 1326418334Speter 1326550397Sobrien * cvt.c (z_candidate): Remove template field. 1326650397Sobrien (reference_binding): Handle binding to temporary. 1326750397Sobrien (implicit_conversion): Likewise. 1326850397Sobrien (add_function_candidate): Handle artificial constructor parms. 1326950397Sobrien Handle functions with too few parms. 1327050397Sobrien (add_template_candidate): New function. 1327150397Sobrien (build_user_type_conversion_1): Handle constructors. 1327250397Sobrien (convert_like): Likewise. 1327350397Sobrien (build_over_call): Likewise. 1327450397Sobrien (build_new_function_call): Support templates. 1327550397Sobrien (compare_ics): Fix reference, inheritance handling. 1327618334Speter 1327750397SobrienMon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com> 1327818334Speter 1327950397Sobrien * decl.c: Add signed_size_zero_node. 1328050397Sobrien (init_decl_processing): Build it. 1328150397Sobrien * class.c (prepare_fresh_vtable): Use it instead of size_zero_node 1328250397Sobrien when we're trying to make a negative delta. 1328318334Speter 1328450397SobrienMon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1328518334Speter 1328650397Sobrien Stop doing this damn index==strchr variable name confusion. 1328750397Sobrien * class.c (add_virtual_function): Change local var INDEX to be 1328850397Sobrien named IDX. 1328950397Sobrien (add_method): Likewise. 1329050397Sobrien * lex.c (print_parse_statistics): Likewise. 1329150397Sobrien * search.c (make_memoized_table_entry): Likewise. 1329250397Sobrien (lookup_fnfields_here): Likewise. 1329350397Sobrien (lookup_field): Likewise. 1329450397Sobrien (lookup_fnfields): Likewise. 1329550397Sobrien (get_baselinks): Likewise. 1329650397Sobrien * sig.c (build_signature_table_constructor): Likewise. 1329750397Sobrien (build_signature_method_call): Likewise. 1329850397Sobrien * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX. 1329950397Sobrien (get_member_function_from_ptrfunc): Likewise. 1330050397Sobrien (build_ptrmemfunc): Change local var INDEX to be IDX. 1330150397Sobrien (c_expand_start_case): Likewise. 1330218334Speter 1330350397SobrienSat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com> 1330418334Speter 1330550397Sobrien * cvt.c (cp_convert_to_pointer): Move user-defined type conversion 1330650397Sobrien handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE. 1330750397Sobrien (convert_to_reference): Use build_type_conversion to convert to 1330850397Sobrien the reference type directly. 1330950397Sobrien (standard_conversion): Fix void* case, non-conversions. 1331050397Sobrien (reference_binding): Fix expr == 0 case, non-conversions. 1331150397Sobrien (convert_like): Support REF_BIND. 1331250397Sobrien (compare_qual): Split out from compare_ics. 1331350397Sobrien (compare_ics): Use it, handle icses with only a qual_conv. 1331418334Speter 1331550397Sobrien * init.c (expand_vec_init): Don't crash if decl is NULL. 1331618334Speter 1331750397SobrienFri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com> 1331818334Speter 1331950397Sobrien * mpw-config.in: New file, configury for Mac MPW. 1332050397Sobrien * mpw-make.sed: New file, makefile editing for MPW. 1332118334Speter 1332250397SobrienThu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1332318334Speter 1332450397Sobrien * pt.c (instantiate_class_template): Call repo_template_used. 1332518334Speter 1332650397Sobrien * search.c (lookup_conversions): Only lookup conversions in 1332750397Sobrien complete types. 1332818334Speter 1332950397SobrienThu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1333018334Speter 1333150397Sobrien * cp-tree.def: Renamed from tree.def, to avoid confusion with 1333250397Sobrien gcc's tree.def. 1333350397Sobrien * cp-tree.h, lex.c: Include cp-tree.def. 1333450397Sobrien * Makefile.in (CXX_TREE_H): Reference cp-tree.def. 1333518334Speter 1333650397SobrienWed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com> 1333718334Speter 1333850397Sobrien * init.c (build_vec_delete_1): Call complete_type. 1333918334Speter 1334050397SobrienMon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com> 1334118334Speter 1334250397Sobrien * except.c (start_anon_func): Make sure anonymous functions are 1334350397Sobrien never external. 1334418334Speter 1334550397SobrienFri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com> 1334618334Speter 1334750397Sobrien * decl.c (finish_function): If function_depth > 1, set nested. 1334818334Speter 1334950397Sobrien * decl2.c (grokbitfield): Revert Bob's change. 1335050397Sobrien * class.c (finish_struct_1): Fix handling of named bitfield widths. 1335118334Speter 1335250397SobrienThu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com> 1335318334Speter 1335450397Sobrien * pt.c (add_pending_template): Handle types. 1335550397Sobrien (lookup_template_class): With -fexternal-templates, just add the class 1335650397Sobrien to pending_templates instead of instantiating it now. 1335750397Sobrien * decl2.c (finish_file): Handle types in pending_templates. 1335818334Speter 1335950397SobrienThu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com> 1336018334Speter 1336150397Sobrien * decl2.c (grokbitfield): Handle constant decls appropriately. 1336250397Sobrien Give an appropriate error message now instead of spewing core 1336350397Sobrien later. 1336418334Speter 1336550397SobrienThu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com> 1336618334Speter 1336750397Sobrien * decl2.c: Don't turn on thunks by default for now. 1336818334Speter 1336950397SobrienWed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com> 1337018334Speter 1337150397Sobrien * typeck.c (complete_type): Handle error_mark_node. 1337250397Sobrien (common_type, OFFSET_TYPE): Handle template_type_parms. 1337318334Speter 1337450397SobrienTue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com> 1337518334Speter 1337650397Sobrien * pt.c (instantiate_decl): If at_eof, call import_export_decl 1337750397Sobrien regardless of DECL_INLINE. 1337818334Speter 1337950397Sobrien * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs. 1338018334Speter 1338150397Sobrien * class.c (finish_struct_bits): Copy TYPE_SIZE. 1338218334Speter 1338350397Sobrien * rtti.c (build_dynamic_cast): Support templates. 1338450397Sobrien * tree.def: Support DYNAMIC_CAST_EXPR. 1338550397Sobrien * pt.c (tsubst_copy): Likewise. 1338650397Sobrien * decl2.c (build_expr_from_tree): Likewise. 1338718334Speter 1338850397SobrienMon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com> 1338918334Speter 1339050397Sobrien * typeck.c (build_static_cast): Support templates. 1339150397Sobrien (build_const_cast): Likewise. 1339250397Sobrien * tree.def: Support CONST/STATIC_CAST_EXPR. 1339350397Sobrien * pt.c (tsubst_copy): Likewise. 1339450397Sobrien * decl2.c (build_expr_from_tree): Likewise. 1339518334Speter 1339650397SobrienSun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com> 1339718334Speter 1339850397Sobrien * decl2.c (finish_vtable_vardecl): Don't trust 1339950397Sobrien TREE_SYMBOL_REFERENCED for vtables of local classes. 1340018334Speter 1340150397SobrienFri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com> 1340218334Speter 1340350397Sobrien * pt.c (tsubst_copy): Handle operator T. 1340418334Speter 1340550397SobrienWed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1340618334Speter 1340750397Sobrien * init.c (build_delete): Move creation of PARMS inside test of 1340850397Sobrien TYPE_HAS_DESTRUCTOR, since it's never used outside of that block. 1340918334Speter 1341050397SobrienTue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com> 1341118334Speter 1341250397Sobrien * typeck.c (build_conditional_expr): Don't assume that 1341350397Sobrien the arguments to ?: are always pointers or records. 1341418334Speter 1341550397SobrienTue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com> 1341618334Speter 1341750397Sobrien * decl2.c (import_export_decl): Still emit static/weak/comdat 1341850397Sobrien copies of inline template functions with -fno-implicit-templates. 1341918334Speter 1342050397SobrienTue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com> 1342118334Speter 1342250397Sobrien * init.c (build_delete): Determine the complete basetype 1342350397Sobrien path to the destructor we're calling. 1342418334Speter 1342550397SobrienFri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com> 1342618334Speter 1342750397Sobrien * decl.c (build_enumerator): Always copy the INTEGER_CST used to 1342850397Sobrien initialize the enum, because we really and truly don't know where 1342950397Sobrien it came from. 1343050397Sobrien (start_enum): Don't copy integer_zero_node because 1343150397Sobrien build_enumerator will do it. 1343218334Speter 1343350397SobrienFri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1343418334Speter 1343550397Sobrien * decl.c (finish_function): Do access control on base destructors. 1343618334Speter 1343750397Sobrien * pt.c (tsubst, case FUNCTION_DECL): Set up 1343850397Sobrien IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't 1343950397Sobrien hose us. 1344018334Speter 1344150397SobrienFri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com> 1344218334Speter 1344350397Sobrien * cvt.c (build_up_reference): If we have already extended the 1344450397Sobrien lifetime of the temporary, don't try it again. 1344550397Sobrien * typeck.c (c_expand_return): Don't try and convert the return 1344650397Sobrien value twice when we want a reference, once is enough. 1344752284Sobrien 1344850397SobrienTue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com> 1344918334Speter 1345050397Sobrien * pt.c (tsubst_expr, case DECL_STMT): Don't pass 1345150397Sobrien LOOKUP_ONLYCONVERTING at all for now. 1345218334Speter 1345350397Sobrien * search.c (add_conversions): Put the conversion function in 1345450397Sobrien TREE_VALUE, the basetype in TREE_PURPOSE. 1345550397Sobrien * cvt.c (build_type_conversion): Adjust. 1345650397Sobrien * cvt.c (build_expr_type_conversion): Adjust. 1345750397Sobrien * call.c (user_harshness): Adjust. 1345818334Speter 1345950397SobrienMon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com> 1346018334Speter 1346150397Sobrien * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the 1346250397Sobrien backend's benefit. 1346318334Speter 1346450397SobrienMon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com> 1346518334Speter 1346650397Sobrien * except.c (expand_start_catch_block): Add a dummy region, if we 1346750397Sobrien get an error, so that we can avoid core dumping later. 1346818334Speter 1346950397SobrienFri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com> 1347018334Speter 1347150397Sobrien * cp-tree.h (OFFSET_REF): Remove. 1347250397Sobrien * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF. 1347350397Sobrien * expr.c (cplus_expand_expr): Cleanup callers of expand_expr. 1347450397Sobrien * init.c (expand_aggr_init_1): Likewise. 1347550397Sobrien (build_new): Likewise. 1347650397Sobrien * typeck.c (expand_target_expr): Likewise. 1347718334Speter 1347850397SobrienFri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1347918334Speter 1348050397Sobrien * typeck.c (build_modify_expr): Don't use TREE_VALUE on a 1348150397Sobrien TARGET_EXPR. 1348218334Speter 1348350397SobrienWed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com> 1348418334Speter 1348550397Sobrien * cvt.c (build_up_reference): Redo how and when temporaries are 1348650397Sobrien created. 1348750397Sobrien * decl.c (grok_reference_init): Don't try and be smart about 1348850397Sobrien running cleanups. 1348918334Speter 1349050397SobrienWed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com> 1349118334Speter 1349250397Sobrien * cvt.c (build_up_reference): Add NULL_TREE to all calls to build 1349350397Sobrien (TARGET_EXPR...), now that it has 4 arguments. 1349450397Sobrien * tree.c (build_cplus_new): Likewise. 1349518334Speter 1349650397SobrienThu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1349718334Speter 1349850397Sobrien * error.c (dump_expr, case CAST_EXPR): Handle T() properly. 1349918334Speter 1350050397Sobrien * pt.c (instantiate_decl): Don't call push/pop_cp_function_context. 1350150397Sobrien * decl.c (struct saved_scope): Remove named_labels, 1350250397Sobrien {base,member}_init_list. 1350350397Sobrien (maybe_push_to_top_level): Don't set them. Call 1350450397Sobrien push_cp_function_context if appropriate. 1350550397Sobrien (pop_from_top_level): Likewise. 1350618334Speter 1350750397Sobrien * method.c (do_build_assign_ref): Remove obsolete check of 1350850397Sobrien TYPE_HAS_ASSIGN_REF (basetype). 1350918334Speter 1351050397Sobrien * decl.c (grokfndecl): Diagnose user definition of 1351150397Sobrien implicitly-declared methods. 1351218334Speter 1351350397SobrienThu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com> 1351418334Speter 1351550397Sobrien * method.c (do_build_copy_constructor): Add code to give 1351650397Sobrien meaningful error messages instead of crashing. 1351750397Sobrien (do_build_assign_ref): Don't synthesize assignment operators for 1351850397Sobrien classes containing reference or const members. 1351918334Speter 1352050397Sobrien * class.c (struct base_info): Remove cant_synth_copy_ctor 1352150397Sobrien and cant_synth_asn_ref. 1352250397Sobrien (finish_base_struct): Remove the code that tries to conditionalize 1352350397Sobrien synthesis of copy constructors & assignment operators based on 1352452284Sobrien access permissions. Instead, let it fail when it tries to 1352552284Sobrien synthesize the copy constructor. This will give meaningful error 1352650397Sobrien messages instead of silently generating code to perform a bitcopy. 1352718334Speter 1352850397SobrienWed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com> 1352918334Speter 1353050397Sobrien * lex.c (real_yylex): Remove old-n-crufty #if 0 code for 1353150397Sobrien determining types for constant values. 1353218334Speter 1353350397Sobrien * decl.c (struct named_label_list): Use instead of stuffing 1353450397Sobrien random items into a TREE_LIST node. 1353550397Sobrien (named_label_uses): Use the new struct. 1353650397Sobrien (poplevel): Likewise. 1353750397Sobrien (lookup_label): Likewise. 1353850397Sobrien (define_label): Add an error message to tell the user the line 1353950397Sobrien where the goto is located in addition to the destination of the 1354050397Sobrien goto. 1354150397Sobrien (init_decl_processing): Use NULL instead of NULL_TREE to initialize 1354250397Sobrien named_label_uses. 1354350397Sobrien (finish_function): Likewise. 1354452284Sobrien 1354550397Sobrien (start_decl): Complain about defining a static data member 1354650397Sobrien in a different type from which it was declared. 1354718334Speter 1354850397SobrienWed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com> 1354918334Speter 1355050397Sobrien * cvt.c (build_expr_type_conversion): Adjust. 1355118334Speter 1355250397SobrienTue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com> 1355318334Speter 1355450397Sobrien * call.c (build_method_call): Always convert 'this' to the 1355550397Sobrien appropriate type. 1355618334Speter 1355750397Sobrien * search.c (add_conversions): Put the conversion function in 1355850397Sobrien TREE_VALUE, the type in TREE_PURPOSE. 1355950397Sobrien * cvt.c (build_type_conversion): Adjust. 1356050397Sobrien * call.c (user_harshness): Adjust. 1356118334Speter 1356250397Sobrien * method.c (emit_thunk): Call temporary_allocation and 1356350397Sobrien permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too. 1356418334Speter 1356550397Sobrien * tree.c (build_cplus_array_type): Handle tweaking of 1356650397Sobrien TYPE_MAIN_VARIANT here. 1356750397Sobrien * typeck.c (common_type): Not here. 1356818334Speter 1356950397Sobrien * typeck.c (complete_type): Only try to complete an array type if 1357050397Sobrien it has a domain. 1357118334Speter 1357250397SobrienMon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com> 1357318334Speter 1357450397Sobrien * decl.c (grokvardecl): Call complete_type. 1357550397Sobrien (grokdeclarator): Call complete_type for PARM_DECLs. 1357618334Speter 1357750397SobrienFri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1357818334Speter 1357950397Sobrien * pt.c (instantiate_class_template): Re-set 1358050397Sobrien CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1. 1358118334Speter 1358250397SobrienFri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com> 1358318334Speter 1358450397Sobrien * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now 1358550397Sobrien smart enough to do it right. 1358650397Sobrien * tree.c (cp_expand_decl_cleanup): Likewise. 1358750397Sobrien * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of 1358850397Sobrien cp_expand_decl_cleanup. 1358950397Sobrien (store_parm_decls): Likewise. 1359050397Sobrien (hack_incomplete_structures): Likewise. 1359150397Sobrien * except.c (push_eh_cleanup): Likewise. 1359218334Speter 1359350397SobrienFri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com> 1359418334Speter 1359550397Sobrien * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++ 1359650397Sobrien frontend to the backend where it belongs. 1359750397Sobrien * tree.c (unsave_expr): Likewise. 1359850397Sobrien (unsave_expr_now): Likewise. 1359950397Sobrien * tree.def (UNSAVE_EXPR): Likewise. 1360050397Sobrien * cp-tree.h (unsave_expr): Likewise. 1360150397Sobrien (unsave_expr_now): Likewise. 1360218334Speter 1360350397SobrienFri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com> 1360418334Speter 1360550397Sobrien * init.c (emit_base_init): Make sure the partial EH cleanups live 1360650397Sobrien on the function_obstack. 1360718334Speter 1360850397SobrienThu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com> 1360918334Speter 1361050397Sobrien * expr.c (do_case): Don't try to dereference null TREE_TYPEs 1361150397Sobrien when checking for pointer types. 1361218334Speter 1361350397SobrienThu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com> 1361418334Speter 1361550397Sobrien * pt.c (instantiate_class_template): Remove obsolete check for 1361650397Sobrien access declarations. 1361718334Speter 1361850397SobrienThu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com> 1361918334Speter 1362050397Sobrien * call.c (build_overload_call): Simplify calls to 1362150397Sobrien build_overload_call by removing last parameter. 1362250397Sobrien (build_method_call): Likewise. 1362350397Sobrien * cp-tree.h: Likewise. 1362450397Sobrien * method.c (build_opfncall): Likewise. 1362550397Sobrien * typeck.c (build_x_function_call): Likewise. 1362618334Speter 1362750397SobrienThu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com> 1362818334Speter 1362950397Sobrien * call.c (default_parm_conversions): Factor out common code. 1363050397Sobrien (build_method_call): Use it. 1363150397Sobrien (build_overload_call_real): Use it. 1363218334Speter 1363350397SobrienWed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com> 1363418334Speter 1363550397Sobrien * call.c (build_method_call): Allow implicit & on METHOD_TYPEs, 1363650397Sobrien but pedwarn as the code is bogus. 1363750397Sobrien * typeck.c (decay_conversion): Likewise. 1363850397Sobrien (build_function_call_real): Use build_addr_func instead of 1363950397Sobrien default_conversion. Don't allow pointer-to-method functions down 1364050397Sobrien here. 1364150397Sobrien (build_unary_op): Use real pointer-to-member functions instead of 1364250397Sobrien fake ones. 1364350397Sobrien (build_ptrmemfunc): Use build_addr_func instead of build_unary_op. 1364450397Sobrien (convert_for_assignment): Removed some obsolete code. 1364550397Sobrien * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to 1364650397Sobrien build_x_function_call instead of current_class_ptr. Only call 1364750397Sobrien digest_init once on an initializer, we do this just checking 1364850397Sobrien TREE_TYPE. 1364950397Sobrien (build_expr_from_tree): Pass current_class_ref to 1365050397Sobrien build_x_function_call instead of current_class_ptr. 1365150397Sobrien * init.c (build_member_call): Likewise. 1365250397Sobrien * pase.y: Likewise. 1365350397Sobrien * error.c (dump_expr): Handle OFFSET_REFs better. 1365450397Sobrien * pt.c (unify): Handle pointer-to-member functions better. 1365550397Sobrien * decl.c (finish_function): Clear out current_class_ref just like 1365650397Sobrien we do for current_class_ptr. 1365718334Speter 1365850397Sobrien * typeck.c (get_delta_difference): Handle virtual bases better. 1365918334Speter 1366050397SobrienTue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com> 1366118334Speter 1366250397Sobrien * sig.c (build_signature_table_constructor): Use the delta for 1366350397Sobrien the original basetype for this virtual function with thunks. 1366450397Sobrien (build_signature_method_call): We still need to adjust 'this' 1366550397Sobrien with thunks. 1366618334Speter 1366750397SobrienTue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com> 1366818334Speter 1366950397Sobrien * call.c (build_addr_func): New routine. Used to get the `real' 1367050397Sobrien address of a function or a method. Needed to avoid getting a 1367150397Sobrien pointer-to-member function. 1367250397Sobrien (build_call): New routine to build CALL_EXPRs. 1367350397Sobrien (build_method_call): Use it. 1367450397Sobrien * cvt.c (convert_to_aggr): Likewise. 1367550397Sobrien * typeck.c (build_function_call_real): Likewise. 1367650397Sobrien * sig.c (build_signature_table_constructor): Use build_addr_func. 1367750397Sobrien * cp-tree.h (build_call, build_addr_func): Declare them. 1367818334Speter 1367950397SobrienTue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com> 1368018334Speter 1368150397Sobrien * cp-tree.h (LOOKUP_AGGR): Remove, unused. 1368250397Sobrien * parse.y: Remove uses of LOOKUP_AGGR. 1368318334Speter 1368450397SobrienTue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com> 1368518334Speter 1368650397Sobrien * *.[chy]: Rename current_class_decl to current_class_ptr, and 1368750397Sobrien C_C_D to current_class_ref. 1368818334Speter 1368950397SobrienMon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com> 1369018334Speter 1369150397Sobrien * call.c (convert_harshness): Tighten up pointer conversions. 1369218334Speter 1369350397SobrienSat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com> 1369418334Speter 1369550397Sobrien * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef. 1369650397Sobrien (finish_file): Likewise. 1369718334Speter 1369850397SobrienFri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com> 1369918334Speter 1370050397Sobrien * cvt.c (convert_fn_ptr): We don't use thunks for pmfs. 1370118334Speter 1370250397Sobrien * method.c (emit_thunk): Set flag_omit_frame_pointer in default 1370350397Sobrien code. 1370418334Speter 1370550397SobrienThu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1370618334Speter 1370750397Sobrien * decl2.c: Turn on thunks by default where supported. 1370818334Speter 1370950397SobrienTue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com> 1371018334Speter 1371150397Sobrien * cp-tree.h (build_overload_call_maybe): Removed. 1371250397Sobrien * call.c (build_overload_call_real): Invert meaning of last arg to 1371350397Sobrien be require_complete. 1371450397Sobrien (build_overload_call): Likewise. 1371550397Sobrien * typeck.c (build_x_function_call): Use build_overload_call_real 1371650397Sobrien instead of build_overload_call_maybe. 1371718334Speter 1371850397SobrienMon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com> 1371918334Speter 1372050397Sobrien * decl2.c (finish_file): Don't try to emit functions that haven't 1372150397Sobrien been compiled. 1372218334Speter 1372350397SobrienFri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com> 1372418334Speter 1372550397Sobrien * decl2.c (finish_vtable_vardecl): Oops. 1372618334Speter 1372750397Sobrien * decl.c (maybe_push_to_top_level): Do save previous_class_*. 1372850397Sobrien Also store the bindings from previous_class_values. 1372950397Sobrien (pop_from_top_level): Restore them. 1373018334Speter 1373150397SobrienThu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com> 1373218334Speter 1373350397Sobrien * decl2.c (finish_vtable_vardecl): Only write out vtable if its 1373450397Sobrien symbol has been referenced. 1373550397Sobrien (finish_file): Re-join synthesis/vtable loop with inline emission 1373650397Sobrien loop, disable inlining when an inline is output. 1373718334Speter 1373850397SobrienThu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com> 1373918334Speter 1374050397Sobrien * except.c (init_exception_processing): Setup saved_in_catch. 1374150397Sobrien (push_eh_cleanup): Reset __eh_in_catch. 1374250397Sobrien (expand_start_catch_block): Set __eh_in_catch. 1374318334Speter 1374450397SobrienThu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com> 1374518334Speter 1374650397Sobrien * except.c (push_eh_cleanup): Add tracking for whether or not we 1374750397Sobrien have an active exception object. 1374850397Sobrien (expand_builtin_throw): Use it to make sure a rethrow without an 1374950397Sobrien exception object is caught. 1375018334Speter 1375150397SobrienThu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com> 1375218334Speter 1375350397Sobrien * decl.c (maybe_push_to_top_level): Clear out class-level bindings 1375450397Sobrien cache. 1375518334Speter 1375650397SobrienWed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com> 1375718334Speter 1375850397Sobrien * decl2.c (finish_file): Also use sentries for vars with 1375950397Sobrien DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be 1376050397Sobrien created). 1376118334Speter 1376250397Sobrien * lex.c (handle_cp_pragma): Disable #pragma 1376350397Sobrien interface/implementation if SUPPORTS_ONE_ONLY > 1. 1376418334Speter 1376550397SobrienTue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com> 1376618334Speter 1376750397Sobrien * method.c (emit_thunk): Wrap default case in 1376850397Sobrien temporary/permanent_allocation. 1376918334Speter 1377050397Sobrien * method.c (make_thunk): Use DECL_ONE_ONLY. 1377150397Sobrien (emit_thunk): Call assemble_end_function. 1377218334Speter 1377350397SobrienMon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com> 1377418334Speter 1377550397Sobrien * decl2.c (import_export_vtable): Use DECL_ONE_ONLY. 1377650397Sobrien (import_export_decl): Likewise. 1377750397Sobrien (finish_prevtable_vardecl): Disable vtable hack if 1377850397Sobrien SUPPORTS_ONE_ONLY > 1. 1377918334Speter 1378050397SobrienMon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com> 1378118334Speter 1378250397Sobrien * typeck.c (build_modify_expr): PREINCREMENT_EXPR and 1378350397Sobrien PREDECREMENT_EXPRs take two arguments, not one. 1378418334Speter 1378550397SobrienMon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com> 1378618334Speter 1378750397Sobrien * class.c (build_vtable_entry): Don't build thunks for abstract 1378850397Sobrien virtuals. 1378918334Speter 1379050397Sobrien * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C 1379150397Sobrien frontend. 1379218334Speter 1379350397SobrienSat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com> 1379418334Speter 1379550397Sobrien * class.c (set_rtti_entry): Use size_zero_node. 1379650397Sobrien (build_vtable): Likewise. 1379718334Speter 1379850397SobrienSat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com> 1379918334Speter 1380050397Sobrien * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry. 1380150397Sobrien (prepare_fresh_vtable): Likewise. 1380218334Speter 1380350397SobrienFri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com> 1380418334Speter 1380550397Sobrien * method.c (emit_thunk): Call mark_used on the target function. 1380618334Speter 1380750397Sobrien * call.c (build_method_call): Don't warn about pending templates. 1380818334Speter 1380950397SobrienThu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1381018334Speter 1381150397Sobrien * decl2.c (finish_file): Fix list walking logic. 1381218334Speter 1381350397Sobrien * typeck2.c (check_for_new_type): Only warn if -pedantic. 1381418334Speter 1381550397SobrienWed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com> 1381618334Speter 1381750397Sobrien * class.c (finish_struct_1): Remove old code for 1381850397Sobrien dont_allow_type_definitions. 1381950397Sobrien * cp-tree.h: Likewise. 1382050397Sobrien * spew.c: Make sure cp-tree.h is included before parse.h, so the 1382150397Sobrien definition of flagged_type_tree is found before it is used. 1382250397Sobrien * lex.c: Likewise. 1382350397Sobrien * parse.y: Added the ftype member to the type union, and changed a 1382452284Sobrien number of rules to use it instead of ttype. Added calls to 1382550397Sobrien check_for_new_type() as appropriate. 1382650397Sobrien * typeck2.c (check_for_new_type): New function for checking 1382750397Sobrien if a newly defined type appears in the specified tree. 1382852284Sobrien * cp-tree.h: Add new type flagged_type_tree. Add a prototype 1382950397Sobrien for check_for_new_type(). 1383018334Speter 1383150397SobrienWed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com> 1383218334Speter 1383350397Sobrien * decl2.c (finish_file): Only use a sentry if the decl is public. 1383418334Speter 1383550397Sobrien * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer, 1383650397Sobrien don't pass LOOKUP_ONLYCONVERTING. 1383718334Speter 1383850397SobrienTue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com> 1383918334Speter 1384050397Sobrien * typeck.c (common_type): Fix the ARRAY_TYPE case so it 1384150397Sobrien properly keeps track of const and volatile type modifiers. 1384218334Speter 1384350397SobrienTue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com> 1384418334Speter 1384550397Sobrien * tree.c (cp_tree_equal): C++ version of simple_cst_equal. 1384650397Sobrien * pt.c (comp_template_args): Use it. 1384718334Speter 1384850397Sobrien * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call 1384950397Sobrien assemble_external for artificial function decls. 1385018334Speter 1385150397Sobrien * decl.c (cp_finish_decl): Oops. 1385218334Speter 1385350397SobrienMon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com> 1385418334Speter 1385550397Sobrien * decl2.c (import_export_decl): Put static data member templates 1385650397Sobrien into common storage, or make them weak, depending on whether they 1385750397Sobrien are dynamically or statically initialized. 1385850397Sobrien (get_sentry): New function. 1385950397Sobrien (finish_file): Do import_export_decl for static data members before 1386050397Sobrien building the init/fini functions. Don't init/fini a variable that's 1386150397Sobrien EXTERNAL. Use a sentry for variables in common. Fix mismatching 1386250397Sobrien push/pop_temp_slots. 1386350397Sobrien * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the 1386450397Sobrien expand_static_init thang. 1386550397Sobrien * method.c (get_id_2): New function. 1386618334Speter 1386750397SobrienMon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com> 1386818334Speter 1386950397Sobrien * parse.y (empty_parms): Make sure we use C++-style prototypes 1387050397Sobrien when we're declaring member functions. 1387118334Speter 1387250397SobrienSun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1387318334Speter 1387450397Sobrien * Makefile.in (CONFLICTS): 16 s/r conflicts. 1387550397Sobrien * parse.y (self_template_type): New nonterminal. 1387618334Speter 1387750397SobrienThu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com> 1387818334Speter 1387950397Sobrien * decl.c (make_typename_type): Handle getting a TYPE_DECL for a 1388050397Sobrien name. 1388150397Sobrien * parse.y (base_class.1): Allow 'typename foo::bar'. 1388218334Speter 1388350397Sobrien * lex.c (check_newline): Remove #pragma code that plays with the 1388450397Sobrien input stream, since we now deal with tokens. Clear nextchar when 1388550397Sobrien we're done. 1388650397Sobrien (handle_cp_pragma): Use real_yylex. 1388750397Sobrien (handle_sysv_pragma): Don't do skipline here. Only call real_yylex 1388850397Sobrien in one place. 1388918334Speter 1389050397Sobrien * lex.c (check_for_missing_semicolon): Handle SELFNAME. 1389118334Speter 1389250397Sobrien * lex.c (handle_cp_pragma): Fix "#pragma implementation". 1389318334Speter 1389450397SobrienWed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1389518334Speter 1389650397Sobrien * parse.y: New token SELFNAME for potential constructor. 1389750397Sobrien * spew.c (yylex): Handle it. 1389850397Sobrien * lex.c (identifier_type): Produce it. 1389918334Speter 1390050397Sobrien * parse.y (complete_type_name): In :: case, don't push class binding. 1390150397Sobrien (complex_type_name): Likewise. 1390218334Speter 1390350397SobrienWed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com> 1390418334Speter 1390550397Sobrien * typeck.c (build_reinterpret_cast): Handle pointer to member 1390650397Sobrien functions. 1390718334Speter 1390850397SobrienWed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1390918334Speter 1391050397Sobrien * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus 1391150397Sobrien pragmas. 1391250397Sobrien (check_newline): Put the vtable/unit/implementation/interface pragma 1391350397Sobrien code into handle_cp_pragma, replacing it with a call. 1391450397Sobrien (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN 1391550397Sobrien args. Get the next token after handling the pragma token. 1391618334Speter 1391750397SobrienWed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com> 1391818334Speter 1391950397Sobrien * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs. 1392050397Sobrien (convert_to_pointer_force): Likewise. 1392118334Speter 1392250397Sobrien * init.c (build_new): Fix array new without -fcheck-new. 1392318334Speter 1392450397SobrienTue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com> 1392518334Speter 1392650397Sobrien * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c, 1392750397Sobrien tree.c: Lose TYPE_NESTED_NAME. 1392818334Speter 1392950397Sobrien * parse.y (nested_name_specifier_1): Don't treat non-identifiers 1393050397Sobrien as identifiers. 1393118334Speter 1393250397Sobrien * tree.def: Add VEC_INIT_EXPR. 1393350397Sobrien * expr.c (cplus_expand_expr): Handle it. 1393450397Sobrien * init.c (build_new): Use it instead of the RTL_EXPR nastiness and 1393550397Sobrien the extra file-scope symbol nastiness. 1393618334Speter 1393750397SobrienMon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com> 1393818334Speter 1393950397Sobrien * method.c (make_thunk): Thunks are static. 1394050397Sobrien (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined. 1394118334Speter 1394250397Sobrien * decl2.c (mark_vtable_entries): Emit thunks as needed. 1394350397Sobrien (finish_file): Don't emit them here. 1394418334Speter 1394550397SobrienSun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com> 1394618334Speter 1394750397Sobrien * rtti.c (build_dynamic_cast): Handle null pointers. 1394850397Sobrien (ifnonnull): New function. 1394918334Speter 1395050397SobrienFri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com> 1395118334Speter 1395250397Sobrien * call.c (build_method_call): Remember the original basetype we 1395352284Sobrien were called with. Give an error message instead of trying 1395450397Sobrien (incorrectly) to call a non-static member function through a 1395550397Sobrien non-inherited class. 1395618334Speter 1395750397Sobrien * search.c (expand_upcast_fixups): Mark the new fixup as 1395850397Sobrien DECL_ARTIFICIAL. 1395918334Speter 1396050397SobrienThu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1396118334Speter 1396250397Sobrien * init.c (build_new): Use a TARGET_EXPR for alloc_expr. 1396318334Speter 1396450397Sobrien * class.c (set_rtti_entry): Fix for thunks. 1396518334Speter 1396650397Sobrien * decl2.c (import_export_decl): Still emit typeinfo fns for 1396750397Sobrien cv-variants of builtin types. 1396818334Speter 1396950397Sobrien * rtti.c (expand_class_desc): Set up base_info_type_node here. 1397050397Sobrien (init_rtti_processing): Instead of here. 1397118334Speter 1397250397SobrienWed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com> 1397318334Speter 1397450397Sobrien * rtti.c (init_rtti_processing): Do init regardless of -frtti. 1397550397Sobrien (build_typeid): Only complain about taking dynamic typeid without 1397650397Sobrien -frtti. 1397718334Speter 1397850397Sobrien * decl2.c: flag_rtti defaults to 1. 1397918334Speter 1398050397Sobrien * rtti.c (get_tinfo_var): The general class case is now smaller. 1398150397Sobrien (init_rtti_processing): Pack the latter three fields of base_info 1398250397Sobrien into 32 bits. 1398318334Speter 1398450397SobrienWed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com> 1398518334Speter 1398650397Sobrien * init.c (expand_member_init): Don't dump if name is NULL_TREE. 1398718334Speter 1398850397SobrienWed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com> 1398918334Speter 1399050397Sobrien * search.c (make_memoized_table_entry): Undefer the pop, if necessary. 1399150397Sobrien (push_memoized_context): Split out code to undefer pop_type_level to 1399250397Sobrien (clear_memoized_cache): here. 1399350397Sobrien (pop_memoized_context): We can only handle one layer of deferral of 1399450397Sobrien pop_type_level so clear the cache, if there was a previous level. 1399518334Speter 1399650397SobrienTue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1399718334Speter 1399850397Sobrien * rtti.c (init_rtti_processing): Build up base_info_type_node. 1399950397Sobrien (expand_class_desc): Use one pointer to an array of base_info 1400050397Sobrien structs, passed using a CONSTRUCTOR. 1400118334Speter 1400250397SobrienTue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com> 1400318334Speter 1400450397Sobrien * class.c (build_vbase_path): Remove block extern for 1400550397Sobrien flag_assume_nonnull_objects here. 1400650397Sobrien (build_vfn_ref): Split out functionality into build_vtbl_ref. 1400750397Sobrien (build_vtbl_ref): New routine. 1400850397Sobrien (build_vtable): Set up rtti info here. 1400950397Sobrien (add_virtual_function): Note in CLASSTYPE_RTTI the best 1401050397Sobrien place where we can get the rtti pointers from to avoid having to 1401150397Sobrien search around for a place. 1401250397Sobrien (finish_base_struct): Likewise. 1401350397Sobrien (finish_struct_1): Likewise. Never create totally new vtables 1401450397Sobrien with totally new vtable pointers for rtti. Disable code to layout 1401550397Sobrien vtable pointers better until we want to break binary 1401650397Sobrien compatibility. 1401750397Sobrien * rtti.c (build_headof_sub): New routine to convert down to a 1401850397Sobrien sub-object that has an rtti pointer in the vtable. 1401950397Sobrien (build_headof): Use it. Also, use build_vtbl_ref now to be more 1402050397Sobrien maintainable. 1402150397Sobrien (build_dynamic_cast): Make sure we have saved it, if we need to. 1402250397Sobrien * search.c (dfs_init_vbase_pointers): Disable code that deals with 1402350397Sobrien a more efficient vtable layout, enable later. 1402450397Sobrien * call.c (flag_assume_nonnull_objects): Moved declaration to 1402550397Sobrien * cp-tree.h: here. Declare build_vtbl_ref. 1402650397Sobrien * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in 1402750397Sobrien function calls that want a tree. 1402818334Speter 1402950397SobrienTue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com> 1403018334Speter 1403150397Sobrien * rtti.c (build_dynamic_cast): Handle downcasting to X* given 1403250397Sobrien other X subobjects in the most derived type. Ack. 1403318334Speter 1403450397Sobrien * rtti.c (build_dynamic_cast): No need to strip cv-quals here, 1403550397Sobrien get_typeid will do it for us. 1403650397Sobrien (get_typeid_1): Break out call-building for expand_*_desc to use. 1403750397Sobrien (get_typeid): Call it. 1403850397Sobrien (expand_*_desc): Likewise. 1403950397Sobrien * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char * 1404050397Sobrien and void *. 1404150397Sobrien (init_decl_processing): Lose builtin_type_tdescs lossage. 1404250397Sobrien * decl2.c (finish_vtable_vardecl): Remove obsolete code. 1404318334Speter 1404450397SobrienMon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com> 1404518334Speter 1404650397Sobrien * pt.c (tsubst): When calling set_nested_typename, use 1404750397Sobrien TYPE_NESTED_NAME (current_class_type) instead of 1404850397Sobrien current_class_name. 1404918334Speter 1405050397Sobrien * decl.c (pushdecl): Likewise. 1405150397Sobrien (pushdecl_class_level): Likewise. 1405250397Sobrien (grokdeclarator): Use NULL_TREE instead of 0 in the call to 1405350397Sobrien set_nested_typename. 1405418334Speter 1405550397SobrienSun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com> 1405618334Speter 1405750397Sobrien * rtti.c (synthesize_tinfo_fn): Handle arrays. 1405818334Speter 1405950397Sobrien * cp-tree.h (DECL_REALLY_EXTERN): New macro. 1406018334Speter 1406150397SobrienSat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com> 1406218334Speter 1406350397Sobrien * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast. 1406450397Sobrien (init_rtti_processing): Lose bad_cast_type. 1406550397Sobrien (build_dynamic_cast): Use throw_bad_cast. 1406618334Speter 1406750397Sobrien * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs. 1406818334Speter 1406950397Sobrien * decl2.c (finish_file): Don't synthesize artificial functions 1407050397Sobrien that are external and not inline. 1407118334Speter 1407250397Sobrien * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl. 1407318334Speter 1407450397Sobrien * decl2.c (finish_file): Handle having new inlines added to 1407550397Sobrien saved_inlines by synthesis. 1407618334Speter 1407750397Sobrien * rtti.c (get_bad_cast_node): Don't require <typeinfo>. 1407818334Speter 1407950397SobrienFri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1408018334Speter 1408150397Sobrien RTTI rewrite to initialize nodes as needed, not require that 1408252284Sobrien users #include <typeinfo>, complete functionality and reduce wasted 1408350397Sobrien space. 1408450397Sobrien * rtti.c (init_rtti_processing): New fn. 1408550397Sobrien (build_typeid): The vtable entry is now a function. 1408650397Sobrien (get_tinfo_var): New fn. 1408750397Sobrien (get_tinfo_fn): Likewise. 1408850397Sobrien (get_typeid): Use it. 1408950397Sobrien (build_dynamic_cast): Declare and use entry point __dynamic_cast. 1409050397Sobrien (build_*_desc): Rename to expand_*_desc and rewrite to use entry 1409150397Sobrien points __rtti_*. 1409250397Sobrien (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose. 1409350397Sobrien (synthesize_tinfo_fn): New fn. 1409450397Sobrien * method.c (build_t_desc_overload): Lose. 1409550397Sobrien (build_overload_with_type): More generic. 1409650397Sobrien * decl.c (init_decl_processing): Call init_rtti_processing. 1409750397Sobrien * class.c (set_rtti_entry): Use get_tinfo_fn. 1409850397Sobrien * decl2.c (mark_vtable_entries): Mark the rtti function. 1409950397Sobrien (finish_prevtable_vardecl): Don't build_t_desc. 1410050397Sobrien (import_export_decl): Handle tinfo functions. 1410150397Sobrien (finish_file): Likewise. 1410250397Sobrien * typeck.c (inline_conversion): New fn. 1410350397Sobrien (build_function_call_real): Use it. 1410450397Sobrien * cp-tree.h: Add decls. 1410518334Speter 1410650397Sobrien * method.c (hack_identifier): Also convert component_refs from 1410750397Sobrien references. 1410818334Speter 1410950397Sobrien * lex.c (cons_up_default_function): Use the type, not the name, in 1411050397Sobrien declspecs. 1411118334Speter 1411250397Sobrien * decl2.c (import_export_vtable): Fix weak vtables. 1411318334Speter 1411450397SobrienFri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com> 1411518334Speter 1411650397Sobrien * search.c (get_base_distance_recursive): Fix access checks for 1411750397Sobrien protected bases. 1411818334Speter 1411950397SobrienFri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1412018334Speter 1412150397Sobrien * call.c (unary_complex_lvalue): Delete unneeded decl, it's in 1412250397Sobrien cp-tree.h. 1412350397Sobrien (convert_harshness): Add prototypes wrapped by PROTO. 1412450397Sobrien * decl2.c (grok_function_init): Likewise. 1412550397Sobrien (do_toplevel_using_decl): Change to void return type. 1412650397Sobrien * class.c (build_vtable_entry): Remove decl of make_thunk. 1412750397Sobrien (merge_overrides): Fix order of arg definitions. 1412850397Sobrien (finish_vtbls): Likewise. 1412950397Sobrien (fixup_vtable_deltas): Likewise. 1413050397Sobrien (modify_all_direct_vtables): Likewise. 1413150397Sobrien (modify_all_indirect_vtables): Likewise. 1413250397Sobrien * search.c (get_base_distance_recursive): Likewise. 1413350397Sobrien (get_abstract_virtuals_1): Likewise. 1413450397Sobrien (fixup_virtual_upcast_offsets): Likewise. 1413550397Sobrien (lookup_fnfields_1): Add prototypes wrapped by PROTO. 1413650397Sobrien * init.c (perform_member_init): Fix order of arg definitions. 1413750397Sobrien (expand_aggr_init_1): Add prototypes wrapped by PROTO. 1413850397Sobrien * cp-tree.h (make_thunk): Add decl. 1413950397Sobrien (overload_template_name, push_template_decl): Add decls. 1414050397Sobrien (do_toplevel_using_decl): Change to void return type. 1414150397Sobrien (vec_binfo_member): Add decl. 1414218334Speter 1414350397SobrienThu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1414418334Speter 1414550397Sobrien * typeck.c (mark_addressable, convert_for_assignment, 1414650397Sobrien convert_for_initialization, pointer_int_sum, pointer_diff, 1414750397Sobrien unary_complex_lvalue): Add prototypes wrapped by PROTO. 1414850397Sobrien (convert_sequence): #if 0 fn decl, since definition also is. 1414918334Speter 1415050397SobrienThu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com> 1415118334Speter 1415250397Sobrien * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on 1415350397Sobrien cast to pointer types for type searching. 1415418334Speter 1415550397SobrienWed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1415618334Speter 1415750397Sobrien * typeck.c (get_delta_difference): Use cp_error, not error, in the 1415850397Sobrien case where BINFO == 0. 1415918334Speter 1416050397SobrienWed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com> 1416118334Speter 1416250397Sobrien * call.c (build_method_call): Fix wording of error messages so 1416350397Sobrien constructors come out right. 1416418334Speter 1416550397SobrienTue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com> 1416618334Speter 1416750397Sobrien * decl.c (push_overloaded_decl): Don't warn about hidden 1416850397Sobrien constructors when both the type and the function are declared 1416950397Sobrien in a system header file. 1417018334Speter 1417150397SobrienMon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com> 1417218334Speter 1417350397Sobrien * class.c (finish_struct_1): Propagate the TYPE_PACKED 1417450397Sobrien flag for the type to the type's fields. 1417518334Speter 1417650397SobrienSat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1417718334Speter 1417850397Sobrien * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning. 1417918334Speter 1418050397SobrienFri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com> 1418118334Speter 1418252284Sobrien * class.c (base_info, finish_base_struct): Replace 1418350397Sobrien needs_virtual_dtor with base_has_virtual. 1418418334Speter 1418550397Sobrien (finish_struct_1): Remove the old code that tried to make default 1418652284Sobrien destructors virtual. Use base_has_virtual when checking if we need 1418750397Sobrien to add a vtable entry for the rtti code. 1418818334Speter 1418950397SobrienFri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com> 1419018334Speter 1419150397Sobrien * pt.c (push_template_decl): Complain about template decl with 1419250397Sobrien inappropriate declaration. 1419318334Speter 1419450397SobrienFri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com> 1419518334Speter 1419650397Sobrien * typeck.c (build_x_unary_op): Remove bogus check for taking 1419750397Sobrien the address of a member function. 1419818334Speter 1419950397SobrienFri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com> 1420018334Speter 1420150397Sobrien * parse.y (constructor_declarator): Only push the class if 1420250397Sobrien we are not already in the class. 1420318334Speter 1420450397SobrienFri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com> 1420518334Speter 1420650397Sobrien * method.c (emit_thunk): Remove current_call_is_indirect nonsense. 1420750397Sobrien Add additional argument to INIT_CUMULATIVE_ARGS. 1420818334Speter 1420950397SobrienThu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com> 1421018334Speter 1421150397Sobrien * decl.c (shadow_tag): Fix error about anon union with methods. 1421218334Speter 1421350397Sobrien * parse.y (self_reference): Only generate a self-reference if this 1421450397Sobrien is a non-template class. 1421550397Sobrien (opt.component_decl_list): Only use it if it was generated. 1421618334Speter 1421750397Sobrien * parse.y (component_decl_1): Use constructor_declarator. 1421850397Sobrien (fn.def2): Likewise. 1421950397Sobrien (notype_component_declarator0): Likewise. 1422018334Speter 1422150397SobrienThu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com> 1422218334Speter 1422350397Sobrien * typeck.c (build_x_unary_op): Add checks for taking the address 1422450397Sobrien of a TARGET_EXPR or of a member function, and give appropriate 1422550397Sobrien warnings. 1422618334Speter 1422750397SobrienThu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com> 1422818334Speter 1422950397Sobrien * pt.c (process_template_parm): Allow template type parms to be 1423050397Sobrien used as types for template const parms. 1423118334Speter 1423250397SobrienWed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com> 1423318334Speter 1423450397Sobrien * init.c (expand_vec_init): Ensure the eh cleanups are on the 1423550397Sobrien function_obstack. 1423618334Speter 1423750397SobrienWed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1423818334Speter 1423950397Sobrien * decl.c (lookup_name_real): Be even more picky about the 1424050397Sobrien ambiguous lookup warning. 1424150397Sobrien (grokdeclarator): Tweak SCOPE_REF constructor declarators here. 1424250397Sobrien * parse.y (constructor_declarator): Rather than here. 1424318334Speter 1424450397Sobrien * parse.y (constructor_declarator): New nonterminal. 1424550397Sobrien (fn.def1): Use it. 1424650397Sobrien (explicit_instantiation): Likewise. 1424718334Speter 1424850397SobrienTue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1424918334Speter 1425050397Sobrien Add implicit declaration of class name at class scope. 1425150397Sobrien * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup. 1425250397Sobrien * parse.y (self_reference): New nonterminal. 1425350397Sobrien (opt.component_decl_list): Use it. 1425450397Sobrien (fn.def1): Add nested_name_specifier type_name cases. 1425550397Sobrien * class.c (build_self_reference): New function. 1425650397Sobrien (finish_struct): Handle access_default later, move self-reference 1425750397Sobrien decl to the end. 1425850397Sobrien * pt.c (lookup_template_class): Handle getting a TYPE_DECL. 1425950397Sobrien * cp-tree.h: Adjust. 1426018334Speter 1426150397Sobrien * pt.c (do_function_instantiation): Separate handling of member 1426250397Sobrien functions and non-member functions properly. 1426318334Speter 1426450397SobrienMon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1426518334Speter 1426650397Sobrien * pt.c (process_template_parm): Improve error for 'volatile class K'. 1426718334Speter 1426850397Sobrien * class.c (finish_struct_1): Check the right slot for destructors. 1426918334Speter 1427050397Sobrien * decl.c (start_enum): Complain about enum templates. 1427118334Speter 1427250397SobrienMon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com> 1427318334Speter 1427450397Sobrien * init.c (resolve_offset_ref): Offset pointers to member data by one. 1427550397Sobrien * typeck.c (unary_complex_lvalue): Likewise. 1427618334Speter 1427750397SobrienMon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com> 1427818334Speter 1427950397Sobrien * typeck.c (c_expand_return): Check for a returned local 1428050397Sobrien array name, similar to the check for an ADDR_EXPR. 1428118334Speter 1428250397SobrienMon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com> 1428318334Speter 1428450397Sobrien * decl.c (cp_finish_decl): Don't build cleanups for static 1428550397Sobrien variables here. 1428618334Speter 1428750397SobrienFri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com> 1428818334Speter 1428950397Sobrien * typeck.c (build_modify_expr): Fix error messages to be more 1429050397Sobrien accurate. 1429150397Sobrien * cp-tree.h (assop_as_string): Parallel to op_as_string, but for 1429250397Sobrien assignment operators. 1429350397Sobrien * error.c (assop_as_string): Likewise. Add support for `%Q' for 1429450397Sobrien assignment operators. 1429518334Speter 1429650397SobrienFri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com> 1429718334Speter 1429850397Sobrien * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also 1429952284Sobrien give an error if initialized. pedwarn about nested type with the 1430050397Sobrien same name as its enclosing class. 1430118334Speter 1430250397Sobrien * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT. 1430318334Speter 1430450397Sobrien * typeck.c (require_complete_type): Be sure to instantiate the 1430550397Sobrien MAIN_VARIANT of the type. 1430618334Speter 1430750397Sobrien * decl2.c (finish_file): Instantiate pending templates before 1430850397Sobrien processing static constructors and destructors. 1430918334Speter 1431050397Sobrien * pt.c (instantiate_decl): Don't instantiate functions at toplevel 1431150397Sobrien unless at_eof. 1431218334Speter 1431350397SobrienFri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com> 1431418334Speter 1431550397Sobrien * decl2.c (delete_sanity): If error_mark_node is passed 1431650397Sobrien in as an expression, quit while we're ahead. 1431718334Speter 1431850397Sobrien * decl.c (grokdeclarator): Give an error message if `friend' 1431950397Sobrien is combined with any storage class specifiers. 1432018334Speter 1432150397SobrienWed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com> 1432218334Speter 1432350397Sobrien * parse.y (named_complex_class_head_sans_basetype): Don't crash on 1432450397Sobrien definition of nonexistent nested type. 1432518334Speter 1432650397Sobrien * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or 1432750397Sobrien not to say 'typedef'. 1432818334Speter 1432950397SobrienWed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1433018334Speter 1433150397Sobrien * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*. 1433250397Sobrien * search.c (dfs_walk, dfs_init_vbase_pointers, 1433350397Sobrien expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT. 1433450397Sobrien (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init. 1433518334Speter 1433650397SobrienTue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com> 1433718334Speter 1433850397Sobrien * except.c (build_throw): Support minimal parse. 1433950397Sobrien * pt.c (tsubst_copy): Support THROW_EXPR. 1434050397Sobrien * decl2.c (build_expr_from_tree): Likewise. 1434118334Speter 1434250397Sobrien * pt.c (mangle_class_name_for_template): Always allocate 1434350397Sobrien scratch_firstobj. 1434418334Speter 1434550397SobrienTue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com> 1434618334Speter 1434750397Sobrien * cvt.c (cp_convert_to_pointer): Give an appropriate error 1434850397Sobrien when trying to cast from an incomplete type. 1434918334Speter 1435050397SobrienTue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1435118334Speter 1435250397Sobrien * pt.c (instantiate_class_template): Don't bother setting up 1435350397Sobrien CLASSTYPE_TAGS explicitly, as the nested types will add 1435450397Sobrien themselves. 1435518334Speter 1435650397SobrienTue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com> 1435718334Speter 1435850397Sobrien * decl.c (shadow_tag): Remove old error check for usage of 1435950397Sobrien an enum without a previous declaration. 1436050397Sobrien (xref_tag): Add error message about usage of enums without a 1436150397Sobrien previous declaration. 1436218334Speter 1436350397SobrienTue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com> 1436418334Speter 1436550397Sobrien * lex.c (do_identifier): Only do name consistency check if we're 1436650397Sobrien parsing. 1436718334Speter 1436850397Sobrien * pt.c (push_template_decl): Don't crash if we get a member defn 1436950397Sobrien that doesn't match. 1437018334Speter 1437150397Sobrien * decl.c (xref_tag_from_type): New function to do an xref without 1437250397Sobrien always having to figure out code_type_node. 1437350397Sobrien * cp-tree.h: Declare it. 1437450397Sobrien * pt.c (instantiate_class_template): Use it for friend classes. 1437550397Sobrien (lookup_template_class): Use it. 1437618334Speter 1437750397Sobrien * typeck2.c (build_functional_cast): Pull out a single parm before 1437850397Sobrien passing it to build_c_cast. 1437918334Speter 1438050397SobrienTue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com> 1438118334Speter 1438250397Sobrien * expr.c (do_case): Give an error message if a pointer is 1438350397Sobrien given as a case value. 1438418334Speter 1438550397SobrienMon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com> 1438618334Speter 1438750397Sobrien * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of 1438850397Sobrien an overload list. 1438918334Speter 1439050397Sobrien * lex.c (cons_up_default_function): Really, now, interface hackery 1439150397Sobrien does not apply to synthesized methods. 1439218334Speter 1439350397SobrienMon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com> 1439418334Speter 1439550397Sobrien * call.c (build_method_call): Ctors and dtors now have special names 1439650397Sobrien with respect to lookups. 1439750397Sobrien * class.c (add_method): Likewise. 1439850397Sobrien (grow_method): Likewise. 1439950397Sobrien (finish_struct_methods): Likewise. 1440050397Sobrien (warn_hidden): Likewise. 1440150397Sobrien (finish_struct_1): Likewise. 1440250397Sobrien * cvt.c (convert_to_reference): Likewise. 1440350397Sobrien (convert_to_aggr): Likewise. 1440450397Sobrien (cp_convert): Likewise. 1440550397Sobrien * decl2.c (check_classfn): Likewise. 1440650397Sobrien * init.c (expand_member_init): Likewise. 1440750397Sobrien (expand_default_init): Likewise. 1440850397Sobrien (expand_aggr_init_1): Likewise. 1440950397Sobrien (build_offset_ref): Likewise. 1441050397Sobrien (build_new): Likewise. 1441150397Sobrien (build_delete): Likewise. 1441250397Sobrien * lex.c (do_inline_function_hair): Likewise. 1441350397Sobrien * search.c (lookup_field_1): Likewise. 1441450397Sobrien (lookup_fnfields_here): Likewise. 1441550397Sobrien (lookup_field): Likewise. 1441650397Sobrien (lookup_fnfields): Likewise. 1441750397Sobrien (get_virtual_destructor): Likewise. 1441850397Sobrien (dfs_debug_mark): Likewise. 1441950397Sobrien (dfs_pushdecls): Likewise. 1442050397Sobrien (dfs_compress_decls): Likewise. 1442150397Sobrien * tree.c (layout_basetypes): Likewise. 1442250397Sobrien * typeck.c (build_component_ref): Likewise. 1442350397Sobrien (build_x_function_call): Likewise. 1442450397Sobrien (build_modify_expr): Likewise. 1442550397Sobrien (convert_for_initialization): Likewise. 1442650397Sobrien (build_functional_cast): Likewise. 1442750397Sobrien * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise. 1442850397Sobrien (CTOR_NAME): New. 1442950397Sobrien (DTOR_NAME): New. 1443050397Sobrien * decl.c (ctor_identifier): New. 1443150397Sobrien (dtor_identifier): New. 1443250397Sobrien (init_decl_processing): Set them. 1443318334Speter 1443450397SobrienMon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com> 1443518334Speter 1443650397Sobrien * typeck.c (build_component_ref): Don't get confused by fields whose 1443750397Sobrien context has no type name, like pointer to member functions. 1443818334Speter 1443950397SobrienMon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com> 1444018334Speter 1444150397Sobrien * decl.c (grokdeclarator): Handle typedef without declarator. 1444218334Speter 1444350397Sobrien * pt.c (tsubst): Handle SCOPE_REF in declarator. 1444418334Speter 1444550397Sobrien * parse.y (bad_parm): Catch another case of missing `typename'. 1444618334Speter 1444750397Sobrien * lex.c (yyprint): Handle TYPE_DECLs. 1444818334Speter 1444950397Sobrien * decl.c (start_function): Don't try to be clever. 1445018334Speter 1445150397Sobrien * lex.c: Lose compiler_error_with_decl. 1445250397Sobrien * typeck2.c: Lose error_with_aggr_type. 1445350397Sobrien (incomplete_type_error): Use cp_* instead of old functions. 1445450397Sobrien (readonly_error): Likewise. 1445550397Sobrien * typeck.c (convert_arguments): Likewise. 1445650397Sobrien * search.c (lookup_nested_field): Likewise. 1445750397Sobrien * method.c (make_thunk): Likewise. 1445850397Sobrien * decl.c (grokparms): Likewise. 1445950397Sobrien * cp-tree.h: Update. 1446018334Speter 1446150397Sobrien * tree.c (min_tree_cons): Call copy_to_permanent for the purpose 1446250397Sobrien and value. 1446318334Speter 1446450397SobrienMon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com> 1446518334Speter 1446650397Sobrien * method.c (build_opfncall): When deleting a pointer to an 1446750397Sobrien array, build a new pointer to the tree past any ARRAY_TYPE 1446850397Sobrien nodes. 1446918334Speter 1447050397SobrienMon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1447118334Speter 1447250397Sobrien * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE. 1447318334Speter 1447450397SobrienFri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com> 1447518334Speter 1447650397Sobrien * pt.c (instantiate_decl): Only call import_export_decl if at_eof 1447750397Sobrien and ! DECL_INLINE. 1447818334Speter 1447950397Sobrien * decl.c (finish_function): Don't set nested based on 1448050397Sobrien hack_decl_function_context. 1448150397Sobrien * parse.y (function_try_block): Check for nested function. 1448250397Sobrien (pending_inlines): Likewise. 1448318334Speter 1448450397Sobrien * decl2.c (build_expr_from_tree): If a unary op already has a 1448550397Sobrien type, just return it. 1448618334Speter 1448750397Sobrien * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE. 1448818334Speter 1448950397Sobrien * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does. 1449050397Sobrien (finish_file): Check the return value of walk_vtables. 1449150397Sobrien (finish_prevtable_vardecl): Return int. 1449250397Sobrien (finish_vtable_vardecl): Likewise. 1449350397Sobrien (prune_vtable_vardecl): Likewise. 1449450397Sobrien * lex.c (set_vardecl_interface_info): Likewise. 1449550397Sobrien * cp-tree.h: Adjust return types. 1449618334Speter 1449750397Sobrien * class.c (delete_duplicate_fields_1): Don't complain about 1449850397Sobrien duplicate nested types if they're the same type. 1449950397Sobrien (finish_struct): Remove check for duplicate. 1450050397Sobrien * decl2.c (grokfield): Don't check for typedef of anonymous type. 1450118334Speter 1450250397SobrienThu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com> 1450318334Speter 1450450397Sobrien * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF. 1450518334Speter 1450650397Sobrien * decl.c (grokdeclarator): Lose special handling of class-level 1450750397Sobrien typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set 1450850397Sobrien SIGNATURE_HAS_OPAQUE_TYPEDECLS later. 1450918334Speter 1451050397Sobrien * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion. 1451118334Speter 1451250397Sobrien * pt.c (tsubst_copy): Strip cv-quals from destructor name types. 1451318334Speter 1451450397Sobrien * search.c (compute_access): Fix handling of anonymous union 1451550397Sobrien members. 1451650397Sobrien * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED} 1451750397Sobrien from anonymous unions to their members. 1451818334Speter 1451950397Sobrien * typeck.c (build_x_function_call): For static member functions, 1452050397Sobrien hand off to build_member_call. 1452118334Speter 1452250397SobrienWed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com> 1452318334Speter 1452450397Sobrien * typeck.c (build_component_ref): Handle OFFSET_REFs. 1452518334Speter 1452650397Sobrien * init.c (expand_vec_init): Fix init == 0 case. 1452718334Speter 1452850397SobrienTue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com> 1452918334Speter 1453052284Sobrien * init.c (build_new): pedwarn about init and array new. 1453150397Sobrien (expand_vec_init): Handle lists, use convert_for_initialization. 1453218334Speter 1453350397Sobrien * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION 1453450397Sobrien when converting to an aggregate type. 1453550397Sobrien * cvt.c (cp_convert): Pass it through. 1453618334Speter 1453750397Sobrien * typeck.c (build_conditional_expr): Handle user-defined 1453850397Sobrien conversions to slightly different types. 1453918334Speter 1454050397Sobrien * decl.c (grokdeclarator): Force an array type in a parm to be 1454150397Sobrien permanent. 1454218334Speter 1454350397Sobrien * decl2.c (do_using_directive): Sorry. 1454450397Sobrien (do_namespace_alias): Likewise. 1454550397Sobrien * lex.c (real_yylex): Warn about using the `namespace' keyword. 1454618334Speter 1454750397SobrienSun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1454818334Speter 1454950397Sobrien * parse.y (datadef): Move call to note_list_got_semicolon up. 1455018334Speter 1455150397SobrienFri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com> 1455218334Speter 1455350397Sobrien * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs. 1455418334Speter 1455550397SobrienFri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com> 1455618334Speter 1455750397Sobrien * decl.c (cp_finish_decl): The exception regions have to be 1455850397Sobrien nested, not overlapping. We start the exception region for a 1455950397Sobrien decl, after it has been fully built, and all temporaries for it 1456050397Sobrien have been cleaned up. 1456118334Speter 1456250397SobrienThu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com> 1456318334Speter 1456450397Sobrien * tree.c (vec_binfo_member): Don't core dump if we have no bases. 1456518334Speter 1456650397SobrienThu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com> 1456718334Speter 1456850397Sobrien * tree.def: Add RETURN_INIT. 1456950397Sobrien * pt.c (instantiate_decl): Handle RETURN_INIT. 1457050397Sobrien * decl.c (store_return_init): Handle minimal_parse_mode. 1457118334Speter 1457250397Sobrien * tree.c (cp_build_type_variant): Just return an error_mark_node. 1457350397Sobrien * decl.c (make_typename_type): Don't try to get the file and line 1457450397Sobrien of an identifier. 1457550397Sobrien * typeck.c (comptypes): Handle TYPENAME_TYPE. 1457618334Speter 1457750397SobrienWed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com> 1457818334Speter 1457950397Sobrien * decl.c (poplevel): Make sure we clear out and restore old local 1458050397Sobrien non-VAR_DECL values by default when they go out of scope. 1458118334Speter 1458250397SobrienWed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com> 1458318334Speter 1458450397Sobrien * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in 1458550397Sobrien referring to addresses of variables and functions. 1458618334Speter 1458750397Sobrien * error.c (dump_expr): Support SIZEOF_EXPR. 1458818334Speter 1458950397Sobrien * init.c (do_friend): Use the return value of check_classfn. 1459018334Speter 1459150397Sobrien * typeck.c (convert_arguments): Call complete_type. 1459218334Speter 1459350397Sobrien * method.c (hack_identifier): After giving an error, set value to 1459450397Sobrien error_mark_node. 1459518334Speter 1459650397SobrienTue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com> 1459718334Speter 1459850397Sobrien * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT 1459950397Sobrien lossage for local classes. 1460050397Sobrien * cp-tree.h: Declare it. 1460150397Sobrien * decl.c (lookup_name_real): Evil, painful hack for local classes. 1460250397Sobrien (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here. 1460350397Sobrien Use hack_decl_function_context. 1460450397Sobrien (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here. 1460550397Sobrien (start_function): Use hack_decl_function_context. 1460650397Sobrien (finish_function): Likewise. 1460750397Sobrien * method.c (synthesize_method): Likewise. 1460850397Sobrien * lex.c (process_next_inline): Likewise. 1460950397Sobrien (do_pending_inlines): Likewise. 1461050397Sobrien * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're 1461150397Sobrien done with it. 1461218334Speter 1461350397SobrienMon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu> 1461450397Sobrien 1461550397Sobrien * sig.c (build_signature_pointer_or_reference_type): Align 1461650397Sobrien signature pointers/references on 8-byte boundaries so they can be 1461750397Sobrien grabbed 2 words at a time on a Sparc. 1461850397Sobrien 1461950397SobrienTue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com> 1462050397Sobrien 1462150397Sobrien * method.c (hack_identifier): Requiring a static chain is now a 1462250397Sobrien hard error. 1462350397Sobrien * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested 1462450397Sobrien functions. 1462550397Sobrien 1462650397SobrienMon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1462750397Sobrien 1462850397Sobrien * init.c (build_offset_ref): Call complete_type. 1462950397Sobrien 1463050397Sobrien * decl.c (pop_from_top_level): Always pop previous_class_type. 1463150397Sobrien 1463250397Sobrien * parse.y: Handle multiple decls in a for-init-statement. 1463350397Sobrien * pt.c (tsubst_expr): Likewise. 1463450397Sobrien 1463550397Sobrien * pt.c (tsubst): Use tsubst_expr for the second operand of an 1463650397Sobrien ARRAY_REF. 1463750397Sobrien 1463850397Sobrien * decl.c (maybe_push_to_top_level): Don't save previous_class_type. 1463950397Sobrien (poplevel_class): Set it here. 1464050397Sobrien (pop_from_top_level): Pop it here if we're returning to class scope. 1464150397Sobrien * class.c (pushclass): Don't set it here. 1464250397Sobrien 1464350397Sobrien * decl.c (maybe_push_to_top_level): Save current_template_parms, 1464450397Sobrien and clear it if !pseudo. 1464550397Sobrien (pop_from_top_level): Restore it. 1464650397Sobrien 1464750397Sobrien * decl2.c (finish_file): Push the dummy each time we walk the list 1464850397Sobrien of vtables. 1464950397Sobrien 1465050397Sobrien * error.c (dump_expr): Support LOOKUP_EXPR and actually do 1465150397Sobrien something for CAST_EXPR. 1465252284Sobrien 1465350397SobrienMon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 1465418334Speter 1465550397Sobrien * cvt.c (cp_convert): Warn about implicit conversion of the 1465650397Sobrien address of a function to bool, as it is always true. 1465718334Speter 1465850397SobrienFri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 1465918334Speter 1466050397Sobrien * typeck.c (c_expand_return): Fix warning for local externs returned. 1466118334Speter 1466250397SobrienMon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com> 1466318334Speter 1466450397Sobrien * tree.c (mapcar): Propagate const and volatile properly. 1466518334Speter 1466650397Sobrien * typeck.c (complete_type): Be sure to instantiate the 1466750397Sobrien MAIN_VARIANT of the type. 1466818334Speter 1466950397Sobrien * method.c (synthesize_method): Class interface hackery does not 1467050397Sobrien apply to synthesized methods. 1467118334Speter 1467250397SobrienMon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com> 1467318334Speter 1467450397Sobrien * pt.c (comp_template_args): Use comptypes rather than just 1467550397Sobrien checking for TEMPLATE_TYPE_PARM equivalence. 1467618334Speter 1467750397Sobrien * typeck.c (build_x_function_call): Call complete_type before 1467850397Sobrien checking TYPE_OVERLOADS_CALL_EXPR. 1467918334Speter 1468050397SobrienMon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de> 1468118334Speter 1468250397Sobrien * g++.c (main): Check also for new define ALT_LIBM. 1468318334Speter 1468450397SobrienFri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1468518334Speter 1468650397Sobrien * pt.c (instantiate_class_template): If we don't have a pattern 1468750397Sobrien yet, that's OK. 1468850397Sobrien (coerce_template_parms): If we see a local class, bail. 1468918334Speter 1469050397Sobrien * decl.c (grok_reference_init): Make sure there's a type before 1469150397Sobrien checking its code. 1469218334Speter 1469350397Sobrien * pt.c (do_function_instantiation): Avoid crashing on invalid decls. 1469450397Sobrien (push_template_decl): Likewise. 1469518334Speter 1469650397Sobrien * parse.y (named_class_head): Set 1469750397Sobrien CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes. 1469818334Speter 1469950397Sobrien * decl.c (xref_tag): Diagnose redeclaration of template 1470050397Sobrien type-parameter name. 1470118334Speter 1470250397Sobrien * error.c (dump_type): Handle anonymous template type parms. 1470318334Speter 1470450397Sobrien * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of 1470550397Sobrien TYPE_STUB_DECL. 1470650397Sobrien (coerce_template_parms): Likewise. 1470718334Speter 1470850397SobrienThu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com> 1470918334Speter 1471050397Sobrien * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF, 1471150397Sobrien case ADDR_EXPR): Don't modify rhs if a subinstantiation fails. 1471218334Speter 1471350397SobrienThu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com> 1471418334Speter 1471550397Sobrien * pt.c (instantiate_template): Take the MAIN_VARIANT of the type 1471650397Sobrien before trying to get its STUB_DECL. 1471750397Sobrien (coerce_template_parms): Likewise. 1471818334Speter 1471950397Sobrien * parse.y (template_type_parm): If they didn't use 'class', 1472050397Sobrien pretend they did after giving an error. 1472118334Speter 1472250397Sobrien * pt.c (coerce_template_parms): Diagnose use of local class. 1472318334Speter 1472450397Sobrien * decl.c (grok_reference_init): Use instantiate_type. 1472518334Speter 1472650397Sobrien * error.c (dump_expr): Handle TEMPLATE_DECLs. 1472718334Speter 1472850397Sobrien * parse.y (named_class_head): Diagnose mismatching types and tags. 1472918334Speter 1473050397Sobrien * decl.c (pushdecl): Type decls and class templates clash with 1473150397Sobrien artificial type decls, not hide them. 1473218334Speter 1473350397Sobrien * decl.c (redeclaration_error_message): Diagnose redefinition of 1473450397Sobrien templates properly. 1473550397Sobrien (duplicate_decls): Diagnose disallowed overloads for template 1473650397Sobrien functions, too. 1473718334Speter 1473850397Sobrien * decl.c (start_decl): Call complete_type before checking for a 1473950397Sobrien destructor. 1474018334Speter 1474150397Sobrien * pt.c (tsubst): Use tsubst_expr on the elts of a VEC. 1474218334Speter 1474350397Sobrien * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match. 1474418334Speter 1474550397SobrienWed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1474650397Sobrien 1474750397Sobrien * decl.c (grok_op_properties): Don't check for operator++(int) in 1474850397Sobrien a template. 1474950397Sobrien 1475050397Sobrien * tree.c (perm_manip): Return a copy of variable and function 1475150397Sobrien decls with external linkage. 1475250397Sobrien 1475350397Sobrien * tree.def: Change some of the min tree codes to type "1". 1475450397Sobrien * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs. 1475550397Sobrien * method.c (build_overload_int): Emit something arbitrary for 1475650397Sobrien anything but an INTEGER_CST if we're in a template. 1475750397Sobrien 1475850397Sobrien * decl.c (cp_finish_decl): Call complete_type before deciding 1475950397Sobrien whether or not to lay out the decl. 1476050397Sobrien 1476150397Sobrien * lex.c (do_identifier): Check for DECL_INITIAL before using it. 1476250397Sobrien 1476350397SobrienTue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com> 1476450397Sobrien 1476550397Sobrien * typeck2.c (build_x_arrow): Call complete_type. 1476650397Sobrien 1476750397Sobrien * pt.c (add_pending_template): Broken out. 1476850397Sobrien (lookup_template_class): If -fexternal-templates, call it for all 1476950397Sobrien the methods of implemented types. 1477050397Sobrien (instantiate_class_template): Instead of instantiating them here. 1477150397Sobrien (instantiate_decl): Handle -fexternal-templates earlier. 1477250397Sobrien 1477350397SobrienTue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1477450397Sobrien 1477550397Sobrien * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the 1477650397Sobrien memoized lookup stuff inside GATHER_STATISTICS. 1477750397Sobrien 1477850397SobrienTue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1477950397Sobrien 1478050397Sobrien * decl.c (start_decl): Complain about array of incomplete type 1478118334Speter here. 1478250397Sobrien (grokdeclarator): Not here. 1478318334Speter 1478450397Sobrien * parse.y (template_parm): Expand full_parm inline so we can set 1478550397Sobrien the rule's precedence. 1478618334Speter 1478750397Sobrien * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy. 1478850397Sobrien (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs. 1478950397Sobrien * decl2.c (grokbitfield): Don't check for integer constant here. 1479050397Sobrien * class.c (finish_struct_1): Check here. 1479118334Speter 1479250397Sobrien * decl.c (define_label): Make the min decl go on permanent_obstack. 1479318334Speter 1479450397Sobrien * pt.c (unify): Don't handle CONST_DECLs. 1479550397Sobrien (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL. 1479650397Sobrien (tsubst_copy): Likewise. 1479718334Speter 1479850397Sobrien * lex.c (do_identifier): Do pull the DECL_INITIAL out of a 1479950397Sobrien CONST_DECL for a template parm. 1480018334Speter 1480150397SobrienMon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com> 1480218334Speter 1480350397Sobrien * decl.c (grokdeclarator): Complain about array of incomplete type 1480450397Sobrien here. 1480550397Sobrien (start_decl_1): Not here. 1480618334Speter 1480750397Sobrien * pt.c (tsubst): Handle pointer-to-function declarators. 1480818334Speter 1480950397Sobrien * method.c (hack_identifier): If pedantic, diagnose local class 1481050397Sobrien methods that require a static chain. 1481118334Speter 1481250397Sobrien * decl.c (grok_op_properties): No longer static. 1481350397Sobrien * cp-tree.h: Declare it. 1481450397Sobrien * pt.c (tsubst): Call it for operators. 1481550397Sobrien Use tsubst_copy for TREE_VECs. 1481618334Speter 1481750397Sobrien * parse.y (template_arg): The expr has precedence like '>'. 1481818334Speter 1481950397SobrienFri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com> 1482018334Speter 1482150397Sobrien * pt.c (coerce_template_parms): Don't coerce an expression using 1482250397Sobrien template parms. 1482350397Sobrien (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs. 1482450397Sobrien (tsubst): Don't use build_index_2_type if the max_value uses template 1482550397Sobrien parms. 1482650397Sobrien * method.c (build_overload_int): Emit something arbitrary for an 1482750397Sobrien expression using template parms. 1482818334Speter 1482950397Sobrien * parse.y (template_close_bracket): New non-terminal to catch use 1483050397Sobrien of '>>' instead of '> >' in template class names. 1483150397Sobrien (template_type): Use it. 1483250397Sobrien * Makefile.in (CONFLICTS): Causes one more r/r conflict. 1483318334Speter 1483450397Sobrien * tree.def: Add CAST_EXPR. 1483550397Sobrien * typeck2.c (build_functional_cast): Use CAST_EXPR instead of 1483650397Sobrien CONVERT_EXPR for minimal_parse_mode. 1483750397Sobrien * typeck.c (build_c_cast): Likewise. 1483850397Sobrien * pt.c (tsubst_copy): Likewise. 1483950397Sobrien * decl2.c (build_expr_from_tree): Likewise. 1484050397Sobrien * error.c (dump_expr): Likewise. 1484118334Speter 1484250397SobrienFri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1484318334Speter 1484450397Sobrien * except.c (SetTerminate, SetUnexpected): Put back global vars. 1484550397Sobrien (init_exception_processing): Put back decl/init of 1484650397Sobrien set_unexpected_fndecl and set_terminate_fndecl, needed to get the 1484750397Sobrien fns from libstdc++. 1484818334Speter 1484950397Sobrien * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield. 1485050397Sobrien (declare_uninstantiated_type_level, uninstantiated_type_level_p): 1485150397Sobrien Delete unused fns. 1485250397Sobrien * cp-tree.h (declare_uninstantiated_type_level, 1485350397Sobrien uninstantiated_type_level_p): Delete prototypes. 1485418334Speter 1485550397SobrienThu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com> 1485618334Speter 1485750397Sobrien * pt.c (tsubst_expr): Add default return. 1485818334Speter 1485950397SobrienThu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1486018334Speter 1486150397Sobrien * error.c (fndecl_as_string): Delete unused arg CNAME. 1486250397Sobrien * sig.c (build_signature_table_constructor, 1486350397Sobrien build_signature_method_call): Fix calls. 1486418334Speter 1486550397Sobrien * class.c (the_null_vtable_entry): Delete var definition. 1486650397Sobrien (init_class_processing): Delete tree the_null_vtable_entry init. 1486750397Sobrien * decl.c (no_print_{functions, builtins}): Declare as static. 1486850397Sobrien (__tp_desc_type_node): #if 0 var definition. 1486950397Sobrien (init_type_desc): #if 0 init of __tp_desc_type_node. 1487050397Sobrien (vb_off_identifier): Move var decl into init_decl_processing. 1487150397Sobrien (current_function_assigns_this): Declare as static. 1487250397Sobrien (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls. 1487350397Sobrien (init_decl_processing): Delete init of void_ftype_ptr_ptr_int. 1487450397Sobrien Move decls of string_ftype_ptr_ptr and int_ftype_string_string here. 1487550397Sobrien * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE. 1487650397Sobrien * init.c (BI_header_type, BI_header_size): Declare as static. 1487750397Sobrien * pt.c (template_classes): Delete unused var. 1487850397Sobrien (add_pending_template): Delete decl for non-existent fn. 1487950397Sobrien (lookup_template_class): Delete vars CODE and TAG_CODE. 1488050397Sobrien (instantiate_template): Delete unused var TARGS. 1488150397Sobrien * cp-tree.h (vb_off_identifier, current_function_assigns_this): 1488250397Sobrien Delete decls. 1488350397Sobrien (__tp_desc_type_node): #if 0 var decl. 1488450397Sobrien (fndecl_as_string): Fix prototype. 1488518334Speter 1488650397SobrienThu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com> 1488718334Speter 1488850397Sobrien * tree.def: Add GOTO_STMT. 1488950397Sobrien * pt.c (tsubst_expr): Support goto and labels. 1489050397Sobrien * decl.c (define_label): Support minimal parsing. 1489150397Sobrien * parse.y (simple_stmt): Likewise. 1489218334Speter 1489350397SobrienThu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1489418334Speter 1489550397Sobrien * xref.c (GNU_xref_member): Only define/set var I if 1489650397Sobrien XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually 1489750397Sobrien used. 1489850397Sobrien (GNU_xref_end_scope): Delete unused fifth arg TRNS. 1489950397Sobrien (GNU_xref_end): Fix call. 1490050397Sobrien * decl.c (poplevel, poplevel_class, finish_method): Fix calls. 1490150397Sobrien * cp-tree.h (GNU_xref_end_scope): Fix prototype. 1490218334Speter 1490350397Sobrien * tree.c (build_exception_variant): Delete unused vars I, A, T, 1490450397Sobrien T2, and CNAME. 1490550397Sobrien (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE. 1490650397Sobrien (mapcar): Delete unused var CODE. 1490750397Sobrien (build_cplus_new): Delete unused arg WITH_CLEANUP_P. 1490850397Sobrien (break_out_cleanups): Fix call. 1490950397Sobrien (bot_manip): Likewise. 1491050397Sobrien * call.c (build_method_call): Likewise. 1491150397Sobrien * cvt.c (build_up_reference, convert_to_reference, cp_convert): 1491250397Sobrien Likewise. 1491350397Sobrien * typeck.c (unary_complex_lvalue, build_modify_expr, 1491450397Sobrien convert_for_initialization): Likewise. 1491550397Sobrien * typeck2.c (build_functional_cast): Likewise. 1491650397Sobrien * cp-tree.h (build_cplus_new): Fix prototype. 1491718334Speter 1491850397Sobrien * repo.c (open_repo_file): Delete unused var Q. 1491950397Sobrien (repo_compile_flags, repo_template_declared, 1492050397Sobrien repo_template_defined, repo_class_defined, repo_inline_used, 1492150397Sobrien repo_vtable_used, repo_tinfo_used): #if 0 unused fns. 1492252284Sobrien (repo_get_id, repo_vtable_used): Declare as static. 1492350397Sobrien * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add 1492450397Sobrien prototypes. 1492518334Speter 1492650397SobrienThu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com> 1492718334Speter 1492850397Sobrien * parse.y (pending_inlines): Add function_try_block case. 1492918334Speter 1493050397Sobrien * pt.c (unify): Fix for template const parms. 1493118334Speter 1493250397SobrienThu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1493318334Speter 1493450397Sobrien * lex.c (extract_interface_info): Delete forward decl. 1493550397Sobrien (default_copy_constructor_body, default_assign_ref_body): Delete 1493650397Sobrien decls for non-existent functions. 1493750397Sobrien (synth_firstobj, inline_text_firstobjs): Delete unused vars. 1493850397Sobrien (init_lex): Delete setting them. 1493950397Sobrien (cons_up_default_function): Delete unused vars FUNC_BUF, 1494050397Sobrien FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old 1494150397Sobrien #if 0'd synth code. 1494250397Sobrien (toplevel, expression_obstack): Delete unused extern decls. 1494350397Sobrien (tree_node_kind): Delete unused enum. 1494450397Sobrien (tree_node_counts, tree_node_sizes): Wrap with #ifdef 1494550397Sobrien GATHER_STATISTICS. 1494650397Sobrien (tree_node_kind_names): Delete unused extern decl. 1494750397Sobrien (synth_obstack): Delete unused var. 1494850397Sobrien (init_lex): Don't set it. 1494950397Sobrien (init_parse): Add decl before use. 1495050397Sobrien (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH. 1495152284Sobrien (current_unit_{name, language}): Delete unused vars. 1495250397Sobrien (check_newline): Don't bother setting them, just accept the #pragma. 1495350397Sobrien * cp-tree.h (init_repo, peek_yylex): Add prototypes. 1495450397Sobrien (current_unit_{name, language}): Delete decls. 1495518334Speter 1495650397Sobrien * search.c: Wrap all of the memoized functions, macros, and 1495750397Sobrien variables inside #ifdef GATHER_STATISTICS. 1495850397Sobrien (lookup_field, lookup_fnfields): Likewise. 1495950397Sobrien (init_search_processing): Likewise. 1496050397Sobrien (reinit_search_statistics): Wrap whole function. 1496150397Sobrien * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics. 1496218334Speter 1496350397Sobrien * decl.c (finish_function): Only call pop_memoized_context if 1496450397Sobrien GATHER_STATISTICS is defined. 1496550397Sobrien (start_function): Likewise for push_memoized_context. 1496650397Sobrien * class.c (pushclass, popclass): Likewise. 1496718334Speter 1496850397Sobrien * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here... 1496950397Sobrien * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here. 1497018334Speter 1497150397Sobrien * cvt.c (cp_convert): Delete unused local var FORM. 1497250397Sobrien * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add 1497350397Sobrien prototypes. 1497418334Speter 1497550397SobrienThu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1497618334Speter 1497750397Sobrien * pt.c (do_poplevel): Oops; really return what we get from 1497850397Sobrien poplevel this time. 1497918334Speter 1498050397SobrienThu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1498118334Speter 1498250397Sobrien * cp-tree.h (is_aggr_type): Add prototype. 1498318334Speter 1498450397Sobrien * cp-tree.h ({push,pop}_cp_function_context): Add decls. 1498550397Sobrien * method.c ({push,pop}_cp_function_context): Delete decls. 1498650397Sobrien * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void. 1498750397Sobrien (SetUnexpected, SetTerminate): Delete unused vars. 1498850397Sobrien (init_exception_processing): Don't set SetUnexpected or 1498950397Sobrien SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL. 1499050397Sobrien (output_exception_table_entry): Delete unused array LABEL. 1499150397Sobrien (expand_internal_throw): Delete unused var PARAMS. 1499250397Sobrien (expand_start_catch_block): Delete unused var CLEANUP. 1499350397Sobrien (emit_exception_table): Delete unused var EH_NODE_DECL. 1499450397Sobrien (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and 1499550397Sobrien GOTO_UNWIND_AND_THROW. Don't set them. 1499650397Sobrien (end_eh_unwinder): Add top decl. 1499750397Sobrien (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK. 1499850397Sobrien (exception_section, push_rtl_perm, do_function_call, 1499950397Sobrien lang_interim_eh, push_eh_cleanup, eh_outer_context, 1500050397Sobrien expand_end_eh_spec, end_eh_unwinder): Declare as static. 1500150397Sobrien (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup, 1500250397Sobrien throw_used): Likewise. 1500350397Sobrien * cp-tree.h (expand_end_eh_spec): Delete prototype. 1500418334Speter 1500550397Sobrien * search.c (dfs_mark, dfs_mark_vtable_path, 1500650397Sobrien dfs_unmark_vtable_path, dfs_mark_new_vtable, 1500750397Sobrien dfs_unmark_new_vtable, dfs_clear_search_slot, 1500850397Sobrien dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp, 1500950397Sobrien bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp, 1501050397Sobrien bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused 1501150397Sobrien functions. 1501250397Sobrien (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1, 1501350397Sobrien n_calls_lookup_fnfields, n_calls_lookup_fnfields_1, 1501450397Sobrien n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved): 1501550397Sobrien Only define #ifdef GATHER_STATISTICS. 1501650397Sobrien (reinit_search_statistics): Only init some vars if GATHER_STATISTICS 1501750397Sobrien is defined. 1501850397Sobrien (vbase_decl): Delete var definition. 1501950397Sobrien (init_search): Delete old decl. 1502050397Sobrien (init_vbase_pointers): Delete building of VBASE_DECL, since it's 1502150397Sobrien never actually used. 1502250397Sobrien (expand_indirect_vtbls_init): Delete init of VBASE_DECL. 1502350397Sobrien (get_base_distance_recursive): Delete unused fourth arg 1502450397Sobrien BASETYPE_PATH. Fix call . 1502550397Sobrien (get_base_distance): Fix call. 1502650397Sobrien (push_class_decls): Delete unused var ID. 1502750397Sobrien (make_memoized_table_entry): Declare as static. 1502850397Sobrien (breadth_first_search): Declare as static. 1502950397Sobrien (tree_has_any_destructor_p): Declare as static. 1503050397Sobrien (pop_class_decls): Delete unused arg pop_class_decls. 1503150397Sobrien * class.c (popclass): Fix call to pop_class_decls. 1503250397Sobrien * cp-tree.h (make_memoized_table_entry, breadth_first_search, 1503350397Sobrien tree_has_any_destructor_p): Delete prototypes. 1503418334Speter 1503550397Sobrien * rtti.c (build_ptmf_desc): Delete unused arg TYPE. 1503650397Sobrien (build_t_desc): Fix call. Delete unused vars ELEMS and TT. 1503750397Sobrien (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL. 1503850397Sobrien (build_user_desc): Delete unused var T. 1503950397Sobrien (build_class_desc): Delete unused vars T and OFF. 1504050397Sobrien (build_t_desc): Delete unused var NAME_STRING. 1504150397Sobrien (build_headof): Make static. 1504250397Sobrien (get_bad_cast_node): Likewise. 1504350397Sobrien (get_def_to_follow): Likewise. 1504450397Sobrien * cp-tree.h (init_type_desc): Add prototype. 1504550397Sobrien (build_headof): Remove prototype. 1504618334Speter 1504750397SobrienThu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1504818334Speter 1504950397Sobrien * pt.c (tsubst): Only look for matching decls at file scope for 1505050397Sobrien non-member functions. 1505118334Speter 1505250397Sobrien * call.c (build_scoped_method_call): Handle scoped destructor 1505350397Sobrien calls in templates. 1505418334Speter 1505550397Sobrien * decl.c (*_top_level): Also save previous_class_values. 1505618334Speter 1505750397Sobrien * pt.c (tsubst_expr): Support do {} while loops. 1505850397Sobrien * parse.y (simple_stmt): Likewise. 1505950397Sobrien * tree.def: Likewise. 1506018334Speter 1506150397Sobrien * method.c (build_overload_identifier): For a class nested in a 1506250397Sobrien template class, don't mangle in the template parms from our 1506350397Sobrien context. 1506418334Speter 1506550397Sobrien * lex.c, cp-tree.h: Remove support for template instantiations in 1506650397Sobrien the pending_inlines code. 1506750397Sobrien * pt.c: Remove dead functions and unused arguments. 1506850397Sobrien (uses_template_parms): TYPENAME_TYPEs always use template parms. 1506950397Sobrien * parse.y: Stop passing anything to end_template_decl. 1507050397Sobrien * tree.c (print_lang_statistics): Only print tinst info #ifdef 1507150397Sobrien GATHER_STATISTICS. 1507218334Speter 1507350397SobrienWed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1507418334Speter 1507552284Sobrien * init.c (expand_recursive_init{,_1}): Delete decls. 1507650397Sobrien (sort_member_init): Delete unused var INIT. 1507750397Sobrien (emit_base_init): Delete unused var X. 1507850397Sobrien (build_offset_ref): Delete unused var CNAME. 1507950397Sobrien (sort_member_init): Delete unused var FIELDS_TO_UNMARK. 1508050397Sobrien (emit_base_init): Delete unused local var BASE. Delete extern 1508150397Sobrien decl of IN_CHARGE_IDENTIFIER. 1508250397Sobrien (build_delete): Delete unused local var VIRTUAL_SIZE. 1508318334Speter 1508450397Sobrien * init.c (build_vec_delete): Delete unused third arg ELT_SIZE. 1508550397Sobrien (build_delete): Fix call. 1508650397Sobrien * decl2.c (delete_sanity): Likewise. 1508750397Sobrien * cp-tree.h (build_vec_delete): Update prototype. 1508818334Speter 1508950397Sobrien * typeck.c (common_base_type): Delete unused var TMP. 1509050397Sobrien (build_binary_op): Delete local var ARGS_SAVE. 1509150397Sobrien (build_array_ref): Delete unused var ITYPE. 1509250397Sobrien (c_expand_return): Delete unused var USE_TEMP. 1509318334Speter 1509450397Sobrien * typeck.c (compexcepttypes): Delete unused arg STRICT. 1509550397Sobrien (comptypes): Fix calls. 1509650397Sobrien * decl.c (duplicate_decls): Likewise. 1509750397Sobrien * cp-tree.h (compexcepttypes): Delete extra arg. 1509818334Speter 1509950397Sobrien * decl2.c (check_classfn): Delete unused second arg CNAME. 1510050397Sobrien * decl.c (start_decl, grokfndecl): Fix calls. 1510150397Sobrien * init.c (do_friend): Likewise. 1510250397Sobrien * cp-tree.h (check_classfn): Update prototype. 1510318334Speter 1510450397Sobrien * cp-tree.h (signature_error, import_export_vtable, 1510550397Sobrien append_signature_fields, id_in_current_class, mark_used, 1510650397Sobrien copy_assignment_arg_p): Add decls. 1510750397Sobrien * decl2.c (mark_used): Delete decl. 1510818334Speter 1510950397Sobrien * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS. 1511018334Speter 1511152284Sobrien * class.c (get_vtable_entry): Disable unused function. 1511250397Sobrien (doing_hard_virtuals): Delete unused static global var. 1511350397Sobrien (finish_struct_1): Don't init DOING_HARD_VIRTUALS. 1511450397Sobrien (prepare_fresh_vtable): Delete unused vars PATH and RESULT. 1511550397Sobrien (overrides): Delete unused vars RETTYPE and BASE_RETTYPE. 1511650397Sobrien (modify_one_vtable): Delete unused var OLD_RTTI. 1511750397Sobrien (finish_struct_anon): Delete unused vars OFFSET and X. 1511850397Sobrien (finish_struct_bits): Delete unused var METHOD_VEC. 1511950397Sobrien (get_basefndecls): Delete unused var PURPOSE. Delete unused 1512050397Sobrien for-scope local variable METHODS. 1512118334Speter 1512250397Sobrien * call.c (user_harshness): Delete unused/unneeded arg PARM. 1512350397Sobrien (ideal_candidate): Delete unused args BASETYPE and PARMS. 1512450397Sobrien (build_method_call): Delete unused args passed into ideal_candidate. 1512550397Sobrien (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME. 1512650397Sobrien * cp-tree.h (synthesize_method): Add decl. 1512718334Speter 1512850397Sobrien * decl.c (note_level_for_for): Give void return type. 1512950397Sobrien (pushdecl_nonclass_level): Likewise. 1513050397Sobrien (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS. 1513150397Sobrien (poplevel): Delete unused var IMPLICIT_TRY_BLOCK. 1513250397Sobrien (suspend_binding_level): Delete unused var LEVEL. 1513350397Sobrien (duplicate_decls): Delete unused var CTYPE. 1513450397Sobrien (duplicate_decls): Delete unused var PREVIOUS_C_DECL. 1513550397Sobrien (init_decl_processing): Delete unused vars FLOAT_ENDLINK and 1513650397Sobrien PTR_ENDLINK. 1513750397Sobrien (grokdeclarator): Delete unused var C. 1513850397Sobrien (grokdeclarator): Delete unused var SIZE_VARIES. 1513950397Sobrien (grokparms): Delete unused var SAW_VOID. 1514050397Sobrien (start_function): Delete unused var OLDDECL. 1514150397Sobrien (cplus_expand_expr_stmt): Delete unused var 1514252284Sobrien REMOVE_IMPLICIT_IMMEDIATELY. 1514318334Speter 1514450397Sobrien * cp-tree.h (pushdecl_nonclass_level): Fix prototype. 1514518334Speter 1514650397Sobrien * Makefile.in (CONFLICTS): Update to 12 shift/reduce. 1514718334Speter 1514850397SobrienWed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1514918334Speter 1515050397Sobrien * tree.c (build_min): Set TREE_COMPLEXITY to lineno. 1515150397Sobrien (build_min_nt): Likewise. 1515250397Sobrien * pt.c (do_pushlevel): Emit line note. 1515350397Sobrien (do_poplevel): Return what we get from poplevel. 1515450397Sobrien (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes. 1515550397Sobrien * parse.y: Use do_pushlevel and do_poplevel. 1515650397Sobrien * cp-tree.h: Declare do_poplevel. 1515752284Sobrien 1515850397Sobrien * cp-tree.h: Declare at_eof. 1515950397Sobrien * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation. 1516050397Sobrien * decl2.c (import_export_decl): Renamed from import_export_inline. 1516150397Sobrien (finish_file): Call it to do interface handling for statics. 1516250397Sobrien * pt.c (tsubst_copy): Call mark_used on variables and functions 1516350397Sobrien used here. 1516418334Speter 1516550397Sobrien * decl2.c (finish_file): Don't emit statics we can't generate. 1516650397Sobrien * pt.c (instantiate_decl): Don't set interface on instantiations 1516750397Sobrien we can't generate. 1516818334Speter 1516950397Sobrien * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'. 1517050397Sobrien * tree.c (print_lang_statistics): Print max template depth. 1517150397Sobrien * pt.c (push_tinst_level): Dump entire instantiation context. 1517250397Sobrien (instantiate_class_template): Use it and pop_tinst_level. 1517350397Sobrien (instantiate_decl): Likewise. 1517418334Speter 1517550397Sobrien * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c 1517650397Sobrien pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE. 1517718334Speter 1517850397SobrienTue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com> 1517918334Speter 1518050397Sobrien * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c 1518150397Sobrien init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c 1518250397Sobrien tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for 1518350397Sobrien the new template implementation. 1518418334Speter 1518550397SobrienTue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1518618334Speter 1518750397Sobrien * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS. 1518818334Speter 1518950397SobrienThu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com> 1519018334Speter 1519150397Sobrien * decl.c (cp_finish_decl): Delay emitting the debug information for 1519250397Sobrien a typedef that has been installed as the canonical typedef, if the 1519350397Sobrien type has not yet been defined. 1519418334Speter 1519550397SobrienThu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1519618334Speter 1519750397Sobrien * decl2.c (grokfield): Still call pop_nested_class for access decls. 1519818334Speter 1519950397SobrienWed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1520018334Speter 1520150397Sobrien * decl.c (lookup_label): Call label_rtx. 1520218334Speter 1520350397Sobrien * decl.c (make_binding_level): New function. 1520450397Sobrien (pushlevel, pushlevel_class): Call it instead of explicit 1520550397Sobrien duplicate calls to xmalloc. 1520618334Speter 1520750397Sobrien * decl.c (init_decl_processing): Delete useless build_pointer_type 1520850397Sobrien call. 1520918334Speter 1521050397Sobrien * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions. 1521150397Sobrien (sizet_ftype_string): Delete variable. 1521250397Sobrien (init_decl_processing): Add built-in functions fabsf, fabsl, 1521350397Sobrien sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local 1521450397Sobrien variable strlen_ftype, used for strlen. 1521518334Speter 1521650397SobrienWed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com> 1521718334Speter 1521850397Sobrien * decl.c (push_to_top_level): Start from current_binding_level 1521950397Sobrien again for now; the stl hacks depend on g++ being broken in this 1522050397Sobrien way, and it'll be fixed in the template rewrite. 1522118334Speter 1522250397Sobrien * tree.def: Add USING_DECL. 1522350397Sobrien * decl2.c (do_class_using_decl): Implement. 1522450397Sobrien (grokfield): Pass access decls off to do_class_using_decl instead of 1522550397Sobrien grokdeclarator. 1522650397Sobrien * error.c (dump_decl): Handle USING_DECLs. 1522750397Sobrien * decl.c (grokdeclarator): Remove code for handling access decls. 1522850397Sobrien * class.c (finish_struct_1): Adjust accordingly, treat using-decls 1522950397Sobrien as access decls for now. 1523050397Sobrien (finish_struct): Don't check USING_DECLs for other uses of the name. 1523118334Speter 1523250397Sobrien * search.c (get_matching_virtual): Use cp_error_at. 1523318334Speter 1523450397SobrienWed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1523518334Speter 1523650397Sobrien * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to 1523750397Sobrien match c-typeck.c. 1523850397Sobrien (self_promoting_args_p): Move the check that TYPE is non-nil 1523950397Sobrien before trying to look at its main variant. 1524050397Sobrien (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes. 1524118334Speter 1524250397Sobrien * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS): 1524350397Sobrien Delete macros. 1524450397Sobrien * init.c (xref_friend, embrace_waiting_friends): Delete functions. 1524550397Sobrien (do_friend): Delete call to xref_friend. 1524650397Sobrien * class.c (finish_struct_1): Delete call to embrace_waiting_friends. 1524718334Speter 1524850397Sobrien * typeck.c (convert_sequence): #if 0 unused function. 1524918334Speter 1525050397Sobrien * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to 1525150397Sobrien be in decl_in_memory_p. 1525250397Sobrien (decl_in_memory_p): Delete decl. 1525350397Sobrien * expr.c (decl_in_memory_p): Delete fn. 1525450397Sobrien * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P. 1525518334Speter 1525650397Sobrien * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P. 1525718334Speter 1525850397SobrienTue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com> 1525918334Speter 1526050397Sobrien * class.c (finish_struct_1): Check for a pure-specifier on a 1526150397Sobrien non-virtual function here. 1526218334Speter 1526350397Sobrien * decl2.c (grok_function_init): Don't check whether the function 1526450397Sobrien is virtual here. 1526550397Sobrien (grokfield): Don't call check_for_override here. 1526618334Speter 1526750397Sobrien * decl.c (push_to_top_level): Start from inner_binding_level, 1526850397Sobrien check class_shadowed in class levels. 1526918334Speter 1527050397SobrienMon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com> 1527118334Speter 1527250397Sobrien * decl.c (resume_level): Ignore things that don't have names, instead 1527350397Sobrien of core dumping. 1527418334Speter 1527550397SobrienMon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1527618334Speter 1527750397Sobrien * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs. 1527818334Speter 1527950397SobrienSat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com> 1528018334Speter 1528150397Sobrien * class.c (finish_struct_1): Set DECL_VINDEX properly on a 1528250397Sobrien synthesized dtor. 1528318334Speter 1528450397Sobrien * parse.y (complete_type_name): Bind global_scope earlier. 1528550397Sobrien (complex_type_name): Likewise. 1528650397Sobrien (qualified_type_name): Remove. 1528718334Speter 1528850397SobrienThu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com> 1528918334Speter 1529050397Sobrien * decl.c (grokfndecl): Move code that looks for virtuals in base 1529150397Sobrien classes... 1529250397Sobrien * class.c (check_for_override): ... to a new function. 1529350397Sobrien (finish_struct_1): Call it. 1529418334Speter 1529550397Sobrien * cp-tree.h: Declare warn_sign_compare. 1529618334Speter 1529750397Sobrien * typeck.c (build_binary_op_nodefault): Check warn_sign_compare 1529850397Sobrien rather than extra_warnings to decide whether to warn about 1529950397Sobrien comparison of signed and unsigned. 1530018334Speter 1530150397Sobrien * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall 1530250397Sobrien implies -Wsign-compare. -Wall doesn't imply -W. 1530318334Speter 1530450397SobrienWed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com> 1530518334Speter 1530650397Sobrien * typeck.c (build_component_ref): Fix to handle anon unions in base 1530750397Sobrien classes as well. 1530818334Speter 1530950397SobrienWed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1531018334Speter 1531150397Sobrien * class.c (resolves_to_fixed_type_p): Delete code dealing with 1531250397Sobrien a WITH_CLEANUP_EXPR, since we don't generate them any more. 1531350397Sobrien * cvt.c (build_up_reference): Likewise. 1531450397Sobrien * decl.c (grok_reference_init): Likewise. 1531550397Sobrien (cp_finish_decl): Likewise. 1531650397Sobrien * error.c (dump_expr): Likewise. 1531750397Sobrien * tree.c (real_lvalue_p): Likewise. 1531850397Sobrien (lvalue_p): Likewise. 1531950397Sobrien (build_cplus_new): Likewise. 1532050397Sobrien (unsave_expr_now): Likewise. 1532150397Sobrien * typeck.c (unary_complex_lvalue, build_modify_expr, 1532250397Sobrien c_expand_return): Likewise. 1532318334Speter 1532450397SobrienTue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1532518334Speter 1532650397Sobrien Make the C++ front-end pay attention to attributes for structures. 1532750397Sobrien * class.c (finish_struct): New argument ATTRIBUTES, passed down into 1532850397Sobrien finish_struct_1. 1532950397Sobrien (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes. 1533050397Sobrien Take out old round_up_size use and setting the DECL_ALIGN possibly 1533150397Sobrien using it. Take out setting of TYPE_ALIGN to round_up_size, which 1533250397Sobrien can override what the attribute set. 1533350397Sobrien * cp-tree.h (finish_struct): Update prototype. 1533450397Sobrien * parse.y (template_instantiate_once): Pass a NULL_TREE for the 1533550397Sobrien attributes to finish_struct. 1533650397Sobrien (structsp): For a CLASS decl, add maybe_attribute to rule and pass that 1533750397Sobrien value down into finish_struct. 1533850397Sobrien * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts. 1533918334Speter 1534050397SobrienTue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com> 1534118334Speter 1534250397Sobrien * decl.c (poplevel): Re-word dead for local handling. 1534350397Sobrien (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test. 1534450397Sobrien (cp_finish_decl): If is_for_scope, check for duplicates so 1534550397Sobrien we can disable is_for_scope. Otherwise, preserve_temp_slots. 1534618334Speter 1534750397Sobrien * lex.c (do_identifier): Use global binding in preference of 1534850397Sobrien dead for local variable. 1534918334Speter 1535050397SobrienMon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com> 1535118334Speter 1535250397Sobrien * init.c (initializing_context): Handle anon union changes, the 1535350397Sobrien context where fields of anon unions can be initialized now has to be 1535450397Sobrien found by walking up the TYPE_CONTEXT chain. 1535518334Speter 1535650397SobrienFri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com> 1535718334Speter 1535850397Sobrien * decl.c (start_decl): #ifdef out code to set DECL_COMMON 1535950397Sobrien if ASM_OUTPUT{,_ALIGNED}_BSS is defined. 1536050397Sobrien (obscure_complex_init): If bss is supported, always set 1536150397Sobrien DECL_INITIAL to error_mark_node. 1536218334Speter 1536350397SobrienThu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1536418334Speter 1536550397Sobrien * init.c (is_friend): Make sure there's a context before we see if 1536650397Sobrien it's an aggr type. 1536718334Speter 1536850397SobrienThu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com> 1536918334Speter 1537050397Sobrien * init.c (is_friend): Classes are not friendly with nested classes. 1537118334Speter 1537250397SobrienThu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com> 1537318334Speter 1537450397Sobrien * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA, 1537550397Sobrien and record its result. 1537618334Speter 1537750397SobrienThu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com> 1537818334Speter 1537950397Sobrien * class.c (finish_struct_anon): Switch around code to not move anon 1538050397Sobrien union elements around, nor mess up their contexts, nor offsets, 1538150397Sobrien instead we now build up the right number of COMPONENT_REFs for all 1538250397Sobrien the anon unions that may be present at build_component_ref time. 1538350397Sobrien * typeck.c (lookup_anon_field): New routine to handle field lookup 1538450397Sobrien on fields without names. We find them, based upon their unique type 1538550397Sobrien instead. 1538650397Sobrien * typeck.c (build_component_ref): Allow FIELD_DECL components. 1538750397Sobrien Handle finding components in anonymous unions, and ensure that a 1538850397Sobrien COMPONENT_REF is built for each level as necessary. 1538918334Speter 1539050397SobrienTue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com> 1539118334Speter 1539250397Sobrien * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after 1539350397Sobrien code that ensures that copy ctors are used if appropriate. 1539418334Speter 1539550397SobrienTue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1539618334Speter 1539750397Sobrien * init.c (build_vec_delete): Only give an error if base isn't an 1539850397Sobrien error_mark_node. 1539918334Speter 1540050397SobrienMon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com> 1540118334Speter 1540250397Sobrien * spew.c (do_aggr): `new struct S;' isn't a forward declaration. 1540350397Sobrien (yylex): If we see `new', keep slurping. 1540418334Speter 1540550397SobrienThu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com> 1540618334Speter 1540750397Sobrien * class.c (finish_struct_1): Move code for handling anon unions... 1540850397Sobrien (finish_struct_anon): to here. Fixup so that we do the offset 1540950397Sobrien calculations right, and so that the fields are physically moved to 1541050397Sobrien the containers's chain. 1541118334Speter 1541250397SobrienThu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1541318334Speter 1541450397Sobrien * decl.c (grokdeclarator): Avoid trying to get an operand off an 1541550397Sobrien identifier node. 1541618334Speter 1541750397SobrienWed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com> 1541818334Speter 1541950397Sobrien * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not 1542050397Sobrien POINTER_SIZE to agree with expr.c. 1542118334Speter 1542250397SobrienThu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com> 1542318334Speter 1542450397Sobrien * search.c (lookup_field): Don't report ambiguities if protect is 0, 1542550397Sobrien instead return NULL_TREE. 1542618334Speter 1542750397SobrienWed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com> 1542818334Speter 1542950397Sobrien * class.c (finish_struct_1): Call warn_hidden if we want warnings 1543050397Sobrien about overloaded virtual functions. 1543150397Sobrien (warn_hidden): New routine to warn of virtual functions that are 1543250397Sobrien hidden by other virtual functions, that are not overridden. 1543350397Sobrien (get_basefndecls): New routine, used by warn_hidden. 1543450397Sobrien (mark_overriders): New routine, used by warn_hidden. 1543550397Sobrien * search.c (get_matching_virtual): Remove old warning that just 1543650397Sobrien isn't very useful. 1543718334Speter 1543850397SobrienTue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1543918334Speter 1544050397Sobrien * decl.c (output_builtin_tdesc_entries): #if 0 the function definition. 1544118334Speter 1544250397Sobrien * typeck.c (null_ptr_cst_p): Delete unused fn. 1544350397Sobrien (build_function_call_maybe): Delete unused fn. 1544418334Speter 1544550397Sobrien * expr.c (extract_init): #if 0 the code after unconditional return 0 1544650397Sobrien for now. 1544718334Speter 1544850397Sobrien Delete old cadillac code. 1544950397Sobrien * edsel.c: Remove file. 1545050397Sobrien * Make-lang.in (CXX_SRCS): Take edsel.c off the list. 1545150397Sobrien * Makefile.in (CXX_OBJS): Delete edsel.o. 1545250397Sobrien (edsel.o): Delete rule. 1545350397Sobrien * cp-tree.h (flag_cadillac): Delete var decl. 1545450397Sobrien * lang-options.h: Delete "-fcadillac" and "-fno-cadillac". 1545550397Sobrien * decl2.c (flag_cadillac): Delete var definition. 1545650397Sobrien (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac. 1545750397Sobrien (grokfield): Delete code depending on flag_cadillac. 1545850397Sobrien (finish_anon_union): Likewise. 1545950397Sobrien * class.c (finish_struct_1): Likewise. 1546050397Sobrien (pushclass): Likewise. 1546150397Sobrien (popclass): Likewise. 1546250397Sobrien (push_lang_context): Likewise. 1546350397Sobrien (pop_lang_context): Likewise. 1546450397Sobrien * decl.c (init_decl_processing): Likewise. 1546550397Sobrien (start_decl): Likewise. 1546650397Sobrien (cp_finish_decl): Likewise. 1546750397Sobrien (xref_tag): Likewise. 1546850397Sobrien (finish_enum): Likewise. 1546950397Sobrien (start_function): Likewise. 1547050397Sobrien (finish_function): Likewise. 1547150397Sobrien (finish_stmt): Likewise. 1547250397Sobrien * lex.c (lang_init): Likewise. 1547350397Sobrien (check_newline): Likewise. 1547418334Speter 1547550397Sobrien * lex.c (do_pending_inlines): Delete synthesized method kludge. 1547618334Speter 1547750397Sobrien Delete defunct, ancient garbage collection implementation. 1547850397Sobrien * rtti.c: New file with the RTTI stuff from gc.c. 1547950397Sobrien * gc.c: Removed file (moved the remaining stuff into rtti.c). 1548050397Sobrien * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o. 1548150397Sobrien (rtti.o): New rule, replacing gc.o. 1548250397Sobrien * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c. 1548350397Sobrien * cp-tree.h: Delete gc-related fn decls. 1548450397Sobrien (DECL_GC_OFFSET): Delete macro. 1548550397Sobrien (flag_gc): Delete extern decl. 1548650397Sobrien * decl.c (current_function_obstack_index): Delete var decl. 1548750397Sobrien (current_function_obstack_usage): Delete var decl. 1548850397Sobrien (start_function): Delete clearing of current_function_obstack_index 1548950397Sobrien and current_function_obstack_usage. 1549050397Sobrien (init_decl_processing): Delete code relying on -fgc. 1549150397Sobrien Delete call to init_gc_processing. 1549250397Sobrien (cp_finish_decl): Delete calls to build_static_gc_entry and 1549350397Sobrien type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET. 1549450397Sobrien (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup 1549550397Sobrien and to expand_expr of a __gc_main call. 1549650397Sobrien (maybe_gc_cleanup): Delete var decl. 1549750397Sobrien (finish_function): Delete call to expand_gc_prologue_and_epilogue. 1549850397Sobrien * decl2.c (flag_gc): Delete var decl. 1549950397Sobrien (lang_f_options): Delete offering of -fgc. 1550050397Sobrien (lang_decode_option): Delete -fgc and -fno-gc handling. 1550150397Sobrien (get_temp_regvar): Delete gc code. 1550250397Sobrien * init.c (build_new): Delete gc code. 1550350397Sobrien * lex.c (init_lex): Delete checking of flag_gc. 1550418334Speter 1550550397Sobrien * typeck.c (convert_arguments): Delete gc code. 1550650397Sobrien (build_component_addr): Delete -fgc warning. 1550750397Sobrien (build_modify_expr): Delete gc code. 1550818334Speter 1550950397Sobrien * decl2.c (build_push_scope): Delete fn. 1551050397Sobrien * cp-tree.h (build_push_scope): Delete decl. 1551118334Speter 1551250397Sobrien * search.c (clear_search_slots): Delete fn. 1551350397Sobrien * cp-tree.h (clear_search_slots): Delete decl. 1551418334Speter 1551550397Sobrien * search.c (tree_needs_constructor_p): Delete fn. 1551650397Sobrien * cp-tree.h (tree_needs_constructor_p): Delete decl. 1551718334Speter 1551850397Sobrien * tree.c (id_cmp): Delete fn. 1551918334Speter 1552050397Sobrien * tree.c (set_fnaddr_from_vtable_entry): Delete fn. 1552150397Sobrien * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl. 1552218334Speter 1552350397Sobrien * tree.c (decl_value_member): Delete fn. 1552450397Sobrien * cp-tree.h (decl_value_member): Delete decl. 1552518334Speter 1552650397Sobrien * tree.c (list_hash_lookup_or_cons): Delete fn. 1552750397Sobrien * cp-tree.h (list_hash_lookup_or_cons): Delete decl. 1552818334Speter 1552950397Sobrien * method.c (cplus_exception_name): Delete fn. 1553050397Sobrien (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros. 1553118334Speter 1553250397Sobrien * spew.c (shift_tokens): Delete fn. 1553318334Speter 1553450397SobrienMon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1553518334Speter 1553650397Sobrien * except.c (init_exception_processing): Pass 1 to needs_pop in calls 1553750397Sobrien to cp_finish_decl. 1553850397Sobrien * parse.y: Likewise. 1553918334Speter 1554050397SobrienMon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1554118334Speter 1554250397Sobrien * tree.c (build_cplus_staticfn_type): Delete function definition; 1554350397Sobrien never used. 1554450397Sobrien * cp-tree.h (build_cplus_staticfn_type): Delete decl. 1554518334Speter 1554650397Sobrien * tree.c (virtual_member): Delete function definition; never used. 1554750397Sobrien * cp-tree.h (virtual_member): Delete decl. 1554818334Speter 1554950397SobrienFri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com> 1555018334Speter 1555150397Sobrien * typeck.c (build_component_ref): Handle getting vbase pointers 1555250397Sobrien out of complex multiple inheritance better. 1555318334Speter 1555450397SobrienFri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com> 1555518334Speter 1555650397Sobrien * typeck.c (build_object_ref): Make sure we use the real type, not 1555750397Sobrien any reference type. 1555818334Speter 1555950397SobrienFri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com> 1556018334Speter 1556150397Sobrien * tree.c (build_exception_variant): Don't create new types if we 1556250397Sobrien don't have to, also build new types on the right obstack. 1556318334Speter 1556450397SobrienFri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1556518334Speter 1556650397Sobrien * decl.c (store_bindings): Split out from push_to_top_level. 1556750397Sobrien (push_to_top_level): Call it for b->type_shadowed on class binding 1556850397Sobrien levels. 1556918334Speter 1557050397SobrienFri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com> 1557118334Speter 1557250397Sobrien * search.c (expand_upcast_fixups): Fix so that offsets stored in 1557350397Sobrien vbase_offsets are always right. Fixes a problem where virtual base 1557450397Sobrien upcasting and downcasting could be wrong during conversions on this 1557550397Sobrien during virtual function dispatch at ctor/dtor time when dynamic 1557650397Sobrien vtable fixups for deltas are needed. This only sounds easier than 1557750397Sobrien it is. :-) 1557850397Sobrien (fixup_virtual_upcast_offsets): Change to reflect new calling 1557950397Sobrien convention for expand_upcast_fixups. 1558018334Speter 1558150397SobrienFri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1558218334Speter 1558350397Sobrien * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we 1558450397Sobrien check that it's usable as the bitfield width. 1558518334Speter 1558650397SobrienWed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1558718334Speter 1558850397Sobrien * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist. 1558950397Sobrien Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's 1559050397Sobrien only ever used for functions in it. 1559118334Speter 1559250397SobrienWed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com> 1559318334Speter 1559450397Sobrien * parse.y (qualified_type_name): Use the TYPE_DECL, not the type. 1559550397Sobrien (nested_type): Likewise. 1559650397Sobrien (nested_name_specifier): Use lastiddecl. 1559718334Speter 1559850397Sobrien * decl.c (grokdeclarator): Adjust accordingly. 1559950397Sobrien * init.c (expand_member_init): Likewise. 1560050397Sobrien * parse.y (base_class): Likewise. 1560150397Sobrien * typeck2.c (build_functional_cast): Likewise. 1560218334Speter 1560350397Sobrien * typeck2.c (build_functional_cast): Fill in name after we've 1560450397Sobrien checked for non-aggr type. 1560518334Speter 1560650397SobrienWed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com> 1560718334Speter 1560850397Sobrien * decl2.c (warn_pointer_arith): Default to on. 1560918334Speter 1561050397SobrienTue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com> 1561118334Speter 1561250397Sobrien * lex.c (is_rid): New function. 1561350397Sobrien * decl.c (grokdeclarator): Diagnose reserved words used as 1561450397Sobrien declarator-ids. 1561518334Speter 1561650397SobrienTue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com> 1561718334Speter 1561850397Sobrien * tree.c (get_decl_list): Don't lose cv-quals. 1561918334Speter 1562050397Sobrien * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose 1562150397Sobrien typespecs used as declarator-ids. 1562218334Speter 1562350397SobrienTue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com> 1562418334Speter 1562550397Sobrien * decl.c (poplevel): When poping a level, don't give a warning for 1562650397Sobrien any subblocks that already exist. 1562718334Speter 1562850397SobrienTue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1562918334Speter 1563050397Sobrien * typeck.c (build_object_ref): Finish what I started. 1563118334Speter 1563250397Sobrien * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN. 1563318334Speter 1563450397Sobrien * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs. 1563518334Speter 1563650397Sobrien * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a 1563750397Sobrien scope. 1563818334Speter 1563950397SobrienMon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com> 1564018334Speter 1564150397Sobrien * decl.c (xref_tag): Handle passing a type in directly. 1564218334Speter 1564350397Sobrien * parse.y (qualified_type_name): Pull out the type. 1564450397Sobrien (nested_type): Likewise. 1564550397Sobrien Take types directly instead of as identifiers. 1564650397Sobrien * call.c (build_scoped_method_call): Take types directly instead of 1564750397Sobrien as identifiers. 1564850397Sobrien * decl.c (xref_basetypes): Likewise. 1564950397Sobrien * init.c (expand_member_init): Likewise. 1565050397Sobrien (build_member_call): Likewise. 1565150397Sobrien (build_offset_ref): Likewise. 1565250397Sobrien * typeck2.c (build_scoped_ref): Likewise, remove bogus code. 1565350397Sobrien * method.c (do_build_assign_ref): Likewise. 1565450397Sobrien * decl.c (grokdeclarator): Handle a type appearing as the 1565550397Sobrien declarator-id for constructors. 1565650397Sobrien * method.c (do_build_copy_constructor): current_base_init_list now 1565750397Sobrien uses the types directly, not their names. 1565850397Sobrien * init.c (sort_base_init): Likewise. 1565950397Sobrien (expand_member_init): Likewise. 1566050397Sobrien * init.c (is_aggr_type): New function, like is_aggr_typedef. 1566118334Speter 1566250397SobrienMon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com> 1566318334Speter 1566450397Sobrien * tree.c (layout_basetypes): Call build_lang_field_decl instead 1566550397Sobrien of build_lang_decl if first arg is a FIELD_DECL. 1566618334Speter 1566750397SobrienThu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1566818334Speter 1566950397Sobrien * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is 1567050397Sobrien non-empty. 1567150397Sobrien * except.c (expand_start_catch_block): Set TREE_USED to avoid 1567250397Sobrien warnings about the catch handler. 1567318334Speter 1567450397SobrienMon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com> 1567518334Speter 1567650397Sobrien * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of 1567750397Sobrien expand_target_expr. 1567818334Speter 1567950397SobrienThu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1568018334Speter 1568150397Sobrien Fix access control to use trees rather than integers. 1568250397Sobrien * class.c (access_{default, public, protected, private, 1568350397Sobrien default_virtual, public_virtual, private_virtual}_node): Add 1568450397Sobrien definitions. 1568550397Sobrien (init_class_processing): Do creation of those nodes. 1568650397Sobrien * cp-tree.h (access_type): Delete enum decl. 1568750397Sobrien (access_{default, public, protected, private, default_virtual, 1568850397Sobrien public_virtual, private_virtual}_node): Add decls. 1568950397Sobrien (compute_access): Change return type. 1569050397Sobrien * search.c (compute_access): Have tree return type, instead of enum. 1569150397Sobrien (lookup_field): Declare THIS_V and NEW_V to be tree nodes. 1569250397Sobrien * lex.c (real_yylex): Use yylval.ttype for giving the value of the 1569350397Sobrien access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}. 1569450397Sobrien * parse.y (VISSPEC): Make ttype rather than itype. 1569550397Sobrien (base_class_access_list): Likewise. 1569650397Sobrien * *.[cy]: Change all refs of `access_public' to `access_public_node', 1569750397Sobrien etc. 1569850397Sobrien * call.c (build_method_call): Make ACCESS be a tree. 1569950397Sobrien * class.c (alter_access, finish_struct_1, filter_struct): Likewise. 1570050397Sobrien * cvt.c (convert_to_aggr): Likewise. 1570150397Sobrien * init.c (build_offset_ref, resolve_offset_ref, build_delete): 1570250397Sobrien Likewise. 1570350397Sobrien * method.c (hack_identifier): Likewise. 1570450397Sobrien * typeck.c (build_component_ref_1, build_component_ref): ): Likewise. 1570518334Speter 1570650397SobrienThu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com> 1570718334Speter 1570850397Sobrien * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C 1570950397Sobrien frontend, and make it more consistent with respect to 1571050397Sobrien warn_pointer_arith. 1571118334Speter 1571250397SobrienTue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 1571318334Speter 1571450397Sobrien * decl.c (pushdecl): Check for duplicate parameter names. 1571518334Speter 1571650397SobrienWed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com> 1571718334Speter 1571850397Sobrien * decl.c (expand_static_init): Call assemble_external for atexit. 1571918334Speter 1572050397SobrienWed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com> 1572118334Speter 1572250397Sobrien * except.c (do_unwind): Remove some generated dead code. 1572350397Sobrien (eh_outer_context): New routine, factor out some common code from 1572450397Sobrien expand_builtin_throw and end_eh_unwinder. Add code to do return 1572550397Sobrien address masking for the PA. 1572650397Sobrien (expand_builtin_throw): Use eh_outer_context instead of open coding 1572750397Sobrien it here. 1572850397Sobrien (end_eh_unwinder): Likewise. 1572918334Speter 1573050397SobrienTue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com> 1573118334Speter 1573250397Sobrien * except.c (expand_throw): Call assemble_external for __empty, if we 1573350397Sobrien use it. 1573418334Speter 1573550397SobrienThu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com> 1573618334Speter 1573750397Sobrien * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of 1573850397Sobrien NORMAL_RETURN_ADDR_OFFSET. 1573950397Sobrien (end_eh_unwinder): Likewise. 1574018334Speter 1574150397SobrienWed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com> 1574218334Speter 1574350397Sobrien * gc.c (build_dynamic_cast): Make sure we don't cast away const 1574450397Sobrien when dealing with references, and make sure we handle dynamic 1574550397Sobrien casting to a cv qualified reference. 1574618334Speter 1574750397SobrienThu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com> 1574818334Speter 1574950397Sobrien * except.c (struct eh_context): New structure top hold eh context 1575050397Sobrien information. 1575150397Sobrien (push_eh_context): New routine. 1575250397Sobrien (pop_eh_context): Likewise. 1575350397Sobrien * decl.c (push_cp_function_context): Use them. 1575450397Sobrien (pop_cp_function_context): Likewise. 1575518334Speter 1575650397SobrienWed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com> 1575718334Speter 1575850397Sobrien * decl2.c (finish_file): Also prune uninteresting functions in the 1575950397Sobrien inline emission loop. 1576018334Speter 1576150397SobrienWed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com> 1576218334Speter 1576350397Sobrien * sig.c (build_signature_table_constructor): Mark functions 1576450397Sobrien in the signature as referenced. 1576518334Speter 1576650397SobrienTue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com> 1576718334Speter 1576850397Sobrien * decl2.c (finish_file): Do all the vtable/synthesis stuff before 1576950397Sobrien the inline emission stuff. 1577018334Speter 1577150397SobrienMon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com> 1577218334Speter 1577350397Sobrien * cp-tree.h, decl2.c (flag_weak): New flag to control the use of 1577452284Sobrien weak symbols. 1577550397Sobrien * lang-options.h: Add -f{no-,}weak. 1577650397Sobrien * decl.c (init_decl_processing): If the target does not support weak 1577750397Sobrien symbols, don't use them. 1577850397Sobrien * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/. 1577918334Speter 1578050397SobrienSun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au> 1578118334Speter 1578250397Sobrien * init.c (expand_member_init): warning for base init after members. 1578318334Speter 1578450397SobrienFri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com> 1578518334Speter 1578650397Sobrien * cvt.c (build_expr_type_conversion): Don't convert to a reference 1578750397Sobrien type. 1578818334Speter 1578950397SobrienThu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com> 1579018334Speter 1579150397Sobrien * method.c (report_type_mismatch): Improve wording for volatile 1579250397Sobrien mismatches. 1579318334Speter 1579450397SobrienThu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com> 1579518334Speter 1579650397Sobrien * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of 1579750397Sobrien expand_assignment, as the later doesn't handle things that have 1579850397Sobrien copy constructors well. The compiler would do bitwise copying, 1579950397Sobrien instead of ctor calling in some cases. 1580018334Speter 1580152284SobrienWed Dec 13 17:05:54 1995 Paul Eggert <eggert@twinsun.com> 1580218334Speter 1580350397Sobrien * g++.c (my_strerror): Return "cannot access" if errno is 0. 1580450397Sobrien (pfatal_with_name, perror_exec): Don't assume that 1580550397Sobrien the returned value from my_strerror contains no '%'s. 1580650397Sobrien (concat): Remove. 1580750397Sobrien (sys_nerror): Declare only if HAVE_STRERROR is not defined. 1580818334Speter 1580950397SobrienWed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com> 1581018334Speter 1581150397Sobrien Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make 1581252284Sobrien TYPE_METHODS/TREE_CHAIN mean what they used to. 1581350397Sobrien * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC 1581450397Sobrien instead of TYPE_METHODS. 1581550397Sobrien * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD. 1581650397Sobrien * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise. 1581750397Sobrien * cp-tree.h (CLASSTYPE_METHODS): Lose. 1581850397Sobrien (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of 1581950397Sobrien TYPE_METHODS. 1582050397Sobrien (struct lang_decl): Lose next_method field. 1582150397Sobrien (DECL_NEXT_METHOD): Lose. 1582250397Sobrien * class.c (finish_struct_methods): Don't mess with TYPE_METHODS. 1582350397Sobrien (finish_struct): Just use TYPE_METHODS; we don't need fn_fields 1582450397Sobrien anymore. 1582550397Sobrien (finish_struct_methods): Don't mess with the TREE_CHAINs in 1582650397Sobrien fn_fields. 1582718334Speter 1582850397Sobrien * search.c (add_conversions): Don't use TREE_CHAIN to traverse method 1582950397Sobrien vector. 1583018334Speter 1583150397Sobrien * call.c (build_method_call): Synthesize here even when not inlining. 1583250397Sobrien * typeck.c (build_function_call_real): Likewise. 1583318334Speter 1583450397SobrienWed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com> 1583518334Speter 1583650397Sobrien * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols 1583750397Sobrien == DBX_DEBUG, call dbxout_start_new_source_file and 1583850397Sobrien dbxout_resume_previous_source_file when appropriate. 1583918334Speter 1584050397SobrienTue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com> 1584118334Speter 1584250397Sobrien * except.c (start_anon_func): Push to the top level. 1584350397Sobrien (end_anon_func): Pop from the top level. 1584418334Speter 1584550397SobrienMon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com> 1584618334Speter 1584750397Sobrien * cp-tree.h (build_cleanup): New routine to build cleanups. 1584850397Sobrien * decl.c (expand_static_init): Use build_cleanup to build a cleanup 1584950397Sobrien call at ctor time and use atexit to run it later. 1585050397Sobrien * decl2.c (build_cleanup): New routine, taken from finish_file. 1585150397Sobrien (finish_file): Use build_cleanup instead, and don't put function 1585250397Sobrien local statics in global dtor list. 1585352284Sobrien 1585450397SobrienWed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com> 1585518334Speter 1585650397Sobrien * except.c (expand_throw): Ensure that we have cleanups, if we try 1585750397Sobrien and expand cleanups. 1585818334Speter 1585950397SobrienWed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com> 1586018334Speter 1586150397Sobrien * except.c (expand_throw): Add logic to manage dynamic cleanups for 1586250397Sobrien the EH object. 1586350397Sobrien (expand_end_catch_block): Use the magic of expand_goto, instead of 1586450397Sobrien emit_jump so that we get the cleanup for any catch clause parameter 1586550397Sobrien and the cleanup for the exception object. Update to reflect label 1586650397Sobrien changes. 1586750397Sobrien (push_eh_cleanup): New routine to register a cleanup for an 1586850397Sobrien exception object. 1586950397Sobrien (empty_fndecl): Used to default cleanup actions to 1587050397Sobrien nothing. 1587150397Sobrien (init_exception_processing): Setup empty_fndecl. Setup 1587250397Sobrien saved_cleanup. 1587350397Sobrien (expand_start_catch_block): Update to reflect label changes. Call 1587450397Sobrien push_eh_object to register the cleanup for the EH object. 1587550397Sobrien (start_anon_func): New routine to start building lambda expressions 1587650397Sobrien from trees. 1587750397Sobrien (end_anon_func): New routine to end them. 1587850397Sobrien (struct labelNode): Change so that we can use tree labels, or rtx 1587950397Sobrien labels. 1588050397Sobrien (saved_cleanup): Object to check for dynamic cleanups for the 1588150397Sobrien exception handling object. 1588250397Sobrien (push_label_entry): Change so that we can use tree labels, or rtx 1588350397Sobrien labels. 1588450397Sobrien (pop_label_entry): Likewise. 1588550397Sobrien (top_label_entry): Likewise. 1588650397Sobrien (expand_start_all_catch): Use tree label instead of rtx label, so 1588750397Sobrien that we can get the magic of expand_goto. 1588850397Sobrien (expand_end_all_catch): Update to reflect label changes. 1588918334Speter 1589050397Sobrien * class.c (build_vfn_ref): Remove building_cleanup logic, as we now 1589150397Sobrien use UNSAVE_EXPRs. 1589252284Sobrien * typeck.c (get_member_function_from_ptrfunc): Remove remnants of 1589350397Sobrien building_cleanup logic, as we now use UNSAVE_EXPRs. 1589450397Sobrien * cp-tree.h (unsave_expr): Declare it. 1589550397Sobrien * decl.c (building_cleanup): Remove. 1589650397Sobrien (maybe_build_cleanup): Remove building_cleanup logic, and use 1589750397Sobrien UNSAVE_EXPR instead. 1589818334Speter 1589950397SobrienSun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com> 1590018334Speter 1590150397Sobrien * gc.c (build_t_desc): Update error message to say <typeinfo>. 1590218334Speter 1590350397SobrienThu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1590418334Speter 1590550397Sobrien * decl.c (pushdecl): Only warn about shadowing a local variable if 1590650397Sobrien warn_shadow is true. 1590718334Speter 1590850397SobrienSun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au> 1590918334Speter 1591050397Sobrien * typeck.c (build_binary_op_nodefault): Added warning about 1591150397Sobrien comparisons between different enum types with -Wall, unless 1591250397Sobrien -fenum-int-equiv set. 1591318334Speter 1591450397SobrienWed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com> 1591518334Speter 1591650397Sobrien * class.c (finish_struct_1): Skip down to the inner type in 1591750397Sobrien multidimensional arrays. Ensures ctors will be made for types that 1591850397Sobrien need constructing. 1591918334Speter 1592050397SobrienWed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com> 1592118334Speter 1592250397Sobrien * decl.c (last_dtor_insn): New to track the last compiler generated 1592350397Sobrien insn in a dtor. 1592450397Sobrien (store_parm_decls): Set it. 1592550397Sobrien (finish_function): Use it to see if the dtor is empty. Avoid doing 1592650397Sobrien vtable setup all the time, if we can. 1592750397Sobrien (struct cp_function): Add last_dtor_insn. 1592850397Sobrien (push_cp_function_context): Save it. 1592950397Sobrien (pop_cp_function_context): Restore it. 1593018334Speter 1593150397SobrienWed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au> 1593218334Speter 1593350397Sobrien * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid 1593450397Sobrien warnings. 1593518334Speter 1593650397SobrienTue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com> 1593718334Speter 1593850397Sobrien * typeck.c (expand_target_expr): Make sure targets get put into the 1593950397Sobrien current temp_slot_level, so that the free_temp_slots call will reuse 1594050397Sobrien them. 1594118334Speter 1594250397SobrienTue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com> 1594318334Speter 1594450397Sobrien * class.c (finish_struct_1): Delay delta fixups for virtual bases 1594550397Sobrien until after we have done the hard virtuals, to avoid a bogus `every 1594650397Sobrien virtual function must have a unique final overrider' for virtual 1594750397Sobrien functions that are only overridden by hard virtuals. 1594818334Speter 1594950397SobrienThu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com> 1595018334Speter 1595150397Sobrien * pt.c (do_function_instantiation): Don't try to find a file-scope 1595250397Sobrien template for a member function. 1595318334Speter 1595450397SobrienTue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com> 1595518334Speter 1595650397Sobrien * g++.c (main): Add handling of -nodefaultlibs. 1595718334Speter 1595850397SobrienMon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com> 1595918334Speter 1596050397Sobrien * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to 1596150397Sobrien distinguish between direct bindings of reference variables, and 1596250397Sobrien indirect bindings of reference variables. 1596350397Sobrien * cvt.c (build_up_reference): Use it. 1596450397Sobrien * typeck.c (convert_arguments): Use it to indicate this is an 1596550397Sobrien indirect binding. 1596650397Sobrien * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast 1596750397Sobrien as they are unused. 1596850397Sobrien (expand_static_init): Likewise. 1596950397Sobrien (cplus_expand_expr_stmt): Likewise. 1597050397Sobrien * decl2.c (finish_file): Likewise. 1597150397Sobrien * init.c (perform_member_init): Likewise. 1597250397Sobrien (emit_base_init): Likewise. 1597350397Sobrien (expand_aggr_vbase_init_1): Likewise. 1597418334Speter 1597550397SobrienFri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1597618334Speter 1597750397Sobrien * decl.c (push_namespace): Rewrite to use build_lang_decl, so we 1597850397Sobrien get a DECL_LANG_SPECIFIC node. 1597950397Sobrien * cp-tree.h (lang_decl_flags): Add new member `level'. 1598050397Sobrien (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the 1598150397Sobrien decl_flags level member. 1598218334Speter 1598350397SobrienMon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1598418334Speter 1598550397Sobrien * call.c (build_method_call): Make sure instance has a 1598652284Sobrien TYPE_LANG_SPECIFIC node before we dive into it. 1598718334Speter 1598850397SobrienSat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com> 1598918334Speter 1599052284Sobrien * method.c (make_thunk): Use TREE_SET_CODE to set thunk's tree code. 1599118334Speter 1599250397SobrienThu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com> 1599318334Speter 1599450397Sobrien * decl.c (duplicate_decls): When smashing decls, smash staticness in 1599550397Sobrien the usual way. 1599618334Speter 1599750397SobrienThu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com> 1599818334Speter 1599950397Sobrien * decl.c (poplevel): Handle the merging of subblocks of cleanups 1600050397Sobrien when finishing blocks that have already been created (usually due to 1600150397Sobrien the fixup goto code). Fixes bad debugging information. 1600218334Speter 1600350397SobrienWed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com> 1600418334Speter 1600550397Sobrien * method.c (hack_identifier): Don't abort when we get a TREE_LIST 1600650397Sobrien that's not a list of overloaded functions. 1600718334Speter 1600850397SobrienWed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1600918334Speter 1601050397Sobrien * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn 1601150397Sobrien before trying to use DECL_ABSTRACT_VIRTUAL_P. 1601218334Speter 1601350397SobrienTue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com> 1601418334Speter 1601550397Sobrien * decl2.c (mark_used): New function for hooking into setting of 1601650397Sobrien TREE_USED on decls. 1601750397Sobrien * call.c (build_method_call): Use it. 1601850397Sobrien * class.c (instantiate_type): Likewise. 1601950397Sobrien * init.c (build_offset_ref): Likewise. Don't call assemble_external 1602050397Sobrien for all like-named functions. 1602150397Sobrien * method.c (hack_identifier): Likewise. 1602250397Sobrien (emit_thunk): Don't call assemble_external. 1602350397Sobrien (make_thunk): Create thunk as a FUNCTION_DECL so that it 1602450397Sobrien gets the right mode and ENCODE_SECTION_INFO works. 1602552284Sobrien 1602650397Sobrien * parse.y: Use mark_used. Pass operator names to do_identifier. 1602750397Sobrien * lex.c (do_identifier): Handle operator names. 1602818334Speter 1602950397Sobrien * decl2.c (grokclassfn): Tweak __in_chrg attributes. 1603018334Speter 1603150397SobrienThu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1603218334Speter 1603350397Sobrien * errfn.c: Include stdio.h. 1603450397Sobrien (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*. 1603518334Speter 1603650397SobrienWed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com> 1603718334Speter 1603850397Sobrien * typeck2.c (digest_init): Always convert initializers to the 1603950397Sobrien right type. 1604018334Speter 1604150397SobrienWed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com> 1604218334Speter 1604350397Sobrien * init.c (member_init_ok_or_else): Don't allow member initializers 1604450397Sobrien for indirect members, as it is invalid. 1604518334Speter 1604650397SobrienWed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1604718334Speter 1604850397Sobrien * decl.c (grokdeclarator): Don't allow `friend signed ()'. 1604918334Speter 1605050397SobrienFri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com> 1605118334Speter 1605250397Sobrien * parse.y (for.init.statement): Catch compound statements inside for 1605350397Sobrien initializations, if we're being pedantic. 1605418334Speter 1605550397SobrienFri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com> 1605618334Speter 1605750397Sobrien * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are 1605850397Sobrien looking for. 1605918334Speter 1606050397SobrienThu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com> 1606118334Speter 1606250397Sobrien * error.c (dump_expr): Don't core dump when a boolean expression is 1606350397Sobrien used as a default argument. 1606418334Speter 1606550397SobrienThu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com> 1606650397Sobrien 1606750397Sobrien * class.c (finish_struct_bits): Check aggregate_value_p instead of 1606850397Sobrien RETURN_IN_MEMORY. 1606950397Sobrien 1607050397SobrienWed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com> 1607150397Sobrien 1607250397Sobrien * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a 1607350397Sobrien BLKmode type that would otherwise be returned in registers. 1607450397Sobrien 1607550397SobrienMon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1607650397Sobrien 1607750397Sobrien * g++.c (WITHLIBC): New macro. 1607850397Sobrien (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set 1607950397Sobrien saw_libc and pass it at the end if it was set. 1608050397Sobrien 1608150397SobrienWed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1608250397Sobrien 1608350397Sobrien * parse.y (fn.def1): Call split_specs_attrs in 1608450397Sobrien declmods notype_declarator case. 16085